annotate src/fftw-3.3.5/mpi/fftw3-mpi.f03.in @ 83:ae30d91d2ffe

Replace these with versions built using an older toolset (so as to avoid ABI compatibilities when linking on Ubuntu 14.04 for packaging purposes)
author Chris Cannam
date Fri, 07 Feb 2020 11:51:13 +0000
parents 2cd0e3b3e1fd
children
rev   line source
Chris@42 1 ! Generated automatically. DO NOT EDIT!
Chris@42 2
Chris@42 3 include 'fftw3.f03'
Chris@42 4
Chris@42 5 integer(C_INTPTR_T), parameter :: FFTW_MPI_DEFAULT_BLOCK = 0
Chris@42 6 integer(C_INT), parameter :: FFTW_MPI_SCRAMBLED_IN = 134217728
Chris@42 7 integer(C_INT), parameter :: FFTW_MPI_SCRAMBLED_OUT = 268435456
Chris@42 8 integer(C_INT), parameter :: FFTW_MPI_TRANSPOSED_IN = 536870912
Chris@42 9 integer(C_INT), parameter :: FFTW_MPI_TRANSPOSED_OUT = 1073741824
Chris@42 10
Chris@42 11 type, bind(C) :: fftw_mpi_ddim
Chris@42 12 integer(C_INTPTR_T) n, ib, ob
Chris@42 13 end type fftw_mpi_ddim
Chris@42 14
Chris@42 15 interface
Chris@42 16 subroutine fftw_mpi_init() bind(C, name='fftw_mpi_init')
Chris@42 17 import
Chris@42 18 end subroutine fftw_mpi_init
Chris@42 19
Chris@42 20 subroutine fftw_mpi_cleanup() bind(C, name='fftw_mpi_cleanup')
Chris@42 21 import
Chris@42 22 end subroutine fftw_mpi_cleanup
Chris@42 23
Chris@42 24 integer(C_INTPTR_T) function fftw_mpi_local_size_many_transposed(rnk,n,howmany,block0,block1,comm,local_n0,local_0_start, &
Chris@42 25 local_n1,local_1_start) &
Chris@42 26 bind(C, name='fftw_mpi_local_size_many_transposed_f03')
Chris@42 27 import
Chris@42 28 integer(C_INT), value :: rnk
Chris@42 29 integer(C_INTPTR_T), dimension(*), intent(in) :: n
Chris@42 30 integer(C_INTPTR_T), value :: howmany
Chris@42 31 integer(C_INTPTR_T), value :: block0
Chris@42 32 integer(C_INTPTR_T), value :: block1
Chris@42 33 integer(C_MPI_FINT), value :: comm
Chris@42 34 integer(C_INTPTR_T), intent(out) :: local_n0
Chris@42 35 integer(C_INTPTR_T), intent(out) :: local_0_start
Chris@42 36 integer(C_INTPTR_T), intent(out) :: local_n1
Chris@42 37 integer(C_INTPTR_T), intent(out) :: local_1_start
Chris@42 38 end function fftw_mpi_local_size_many_transposed
Chris@42 39
Chris@42 40 integer(C_INTPTR_T) function fftw_mpi_local_size_many(rnk,n,howmany,block0,comm,local_n0,local_0_start) &
Chris@42 41 bind(C, name='fftw_mpi_local_size_many_f03')
Chris@42 42 import
Chris@42 43 integer(C_INT), value :: rnk
Chris@42 44 integer(C_INTPTR_T), dimension(*), intent(in) :: n
Chris@42 45 integer(C_INTPTR_T), value :: howmany
Chris@42 46 integer(C_INTPTR_T), value :: block0
Chris@42 47 integer(C_MPI_FINT), value :: comm
Chris@42 48 integer(C_INTPTR_T), intent(out) :: local_n0
Chris@42 49 integer(C_INTPTR_T), intent(out) :: local_0_start
Chris@42 50 end function fftw_mpi_local_size_many
Chris@42 51
Chris@42 52 integer(C_INTPTR_T) function fftw_mpi_local_size_transposed(rnk,n,comm,local_n0,local_0_start,local_n1,local_1_start) &
Chris@42 53 bind(C, name='fftw_mpi_local_size_transposed_f03')
Chris@42 54 import
Chris@42 55 integer(C_INT), value :: rnk
Chris@42 56 integer(C_INTPTR_T), dimension(*), intent(in) :: n
Chris@42 57 integer(C_MPI_FINT), value :: comm
Chris@42 58 integer(C_INTPTR_T), intent(out) :: local_n0
Chris@42 59 integer(C_INTPTR_T), intent(out) :: local_0_start
Chris@42 60 integer(C_INTPTR_T), intent(out) :: local_n1
Chris@42 61 integer(C_INTPTR_T), intent(out) :: local_1_start
Chris@42 62 end function fftw_mpi_local_size_transposed
Chris@42 63
Chris@42 64 integer(C_INTPTR_T) function fftw_mpi_local_size(rnk,n,comm,local_n0,local_0_start) bind(C, name='fftw_mpi_local_size_f03')
Chris@42 65 import
Chris@42 66 integer(C_INT), value :: rnk
Chris@42 67 integer(C_INTPTR_T), dimension(*), intent(in) :: n
Chris@42 68 integer(C_MPI_FINT), value :: comm
Chris@42 69 integer(C_INTPTR_T), intent(out) :: local_n0
Chris@42 70 integer(C_INTPTR_T), intent(out) :: local_0_start
Chris@42 71 end function fftw_mpi_local_size
Chris@42 72
Chris@42 73 integer(C_INTPTR_T) function fftw_mpi_local_size_many_1d(n0,howmany,comm,sign,flags,local_ni,local_i_start,local_no, &
Chris@42 74 local_o_start) bind(C, name='fftw_mpi_local_size_many_1d_f03')
Chris@42 75 import
Chris@42 76 integer(C_INTPTR_T), value :: n0
Chris@42 77 integer(C_INTPTR_T), value :: howmany
Chris@42 78 integer(C_MPI_FINT), value :: comm
Chris@42 79 integer(C_INT), value :: sign
Chris@42 80 integer(C_INT), value :: flags
Chris@42 81 integer(C_INTPTR_T), intent(out) :: local_ni
Chris@42 82 integer(C_INTPTR_T), intent(out) :: local_i_start
Chris@42 83 integer(C_INTPTR_T), intent(out) :: local_no
Chris@42 84 integer(C_INTPTR_T), intent(out) :: local_o_start
Chris@42 85 end function fftw_mpi_local_size_many_1d
Chris@42 86
Chris@42 87 integer(C_INTPTR_T) function fftw_mpi_local_size_1d(n0,comm,sign,flags,local_ni,local_i_start,local_no,local_o_start) &
Chris@42 88 bind(C, name='fftw_mpi_local_size_1d_f03')
Chris@42 89 import
Chris@42 90 integer(C_INTPTR_T), value :: n0
Chris@42 91 integer(C_MPI_FINT), value :: comm
Chris@42 92 integer(C_INT), value :: sign
Chris@42 93 integer(C_INT), value :: flags
Chris@42 94 integer(C_INTPTR_T), intent(out) :: local_ni
Chris@42 95 integer(C_INTPTR_T), intent(out) :: local_i_start
Chris@42 96 integer(C_INTPTR_T), intent(out) :: local_no
Chris@42 97 integer(C_INTPTR_T), intent(out) :: local_o_start
Chris@42 98 end function fftw_mpi_local_size_1d
Chris@42 99
Chris@42 100 integer(C_INTPTR_T) function fftw_mpi_local_size_2d(n0,n1,comm,local_n0,local_0_start) &
Chris@42 101 bind(C, name='fftw_mpi_local_size_2d_f03')
Chris@42 102 import
Chris@42 103 integer(C_INTPTR_T), value :: n0
Chris@42 104 integer(C_INTPTR_T), value :: n1
Chris@42 105 integer(C_MPI_FINT), value :: comm
Chris@42 106 integer(C_INTPTR_T), intent(out) :: local_n0
Chris@42 107 integer(C_INTPTR_T), intent(out) :: local_0_start
Chris@42 108 end function fftw_mpi_local_size_2d
Chris@42 109
Chris@42 110 integer(C_INTPTR_T) function fftw_mpi_local_size_2d_transposed(n0,n1,comm,local_n0,local_0_start,local_n1,local_1_start) &
Chris@42 111 bind(C, name='fftw_mpi_local_size_2d_transposed_f03')
Chris@42 112 import
Chris@42 113 integer(C_INTPTR_T), value :: n0
Chris@42 114 integer(C_INTPTR_T), value :: n1
Chris@42 115 integer(C_MPI_FINT), value :: comm
Chris@42 116 integer(C_INTPTR_T), intent(out) :: local_n0
Chris@42 117 integer(C_INTPTR_T), intent(out) :: local_0_start
Chris@42 118 integer(C_INTPTR_T), intent(out) :: local_n1
Chris@42 119 integer(C_INTPTR_T), intent(out) :: local_1_start
Chris@42 120 end function fftw_mpi_local_size_2d_transposed
Chris@42 121
Chris@42 122 integer(C_INTPTR_T) function fftw_mpi_local_size_3d(n0,n1,n2,comm,local_n0,local_0_start) &
Chris@42 123 bind(C, name='fftw_mpi_local_size_3d_f03')
Chris@42 124 import
Chris@42 125 integer(C_INTPTR_T), value :: n0
Chris@42 126 integer(C_INTPTR_T), value :: n1
Chris@42 127 integer(C_INTPTR_T), value :: n2
Chris@42 128 integer(C_MPI_FINT), value :: comm
Chris@42 129 integer(C_INTPTR_T), intent(out) :: local_n0
Chris@42 130 integer(C_INTPTR_T), intent(out) :: local_0_start
Chris@42 131 end function fftw_mpi_local_size_3d
Chris@42 132
Chris@42 133 integer(C_INTPTR_T) function fftw_mpi_local_size_3d_transposed(n0,n1,n2,comm,local_n0,local_0_start,local_n1,local_1_start) &
Chris@42 134 bind(C, name='fftw_mpi_local_size_3d_transposed_f03')
Chris@42 135 import
Chris@42 136 integer(C_INTPTR_T), value :: n0
Chris@42 137 integer(C_INTPTR_T), value :: n1
Chris@42 138 integer(C_INTPTR_T), value :: n2
Chris@42 139 integer(C_MPI_FINT), value :: comm
Chris@42 140 integer(C_INTPTR_T), intent(out) :: local_n0
Chris@42 141 integer(C_INTPTR_T), intent(out) :: local_0_start
Chris@42 142 integer(C_INTPTR_T), intent(out) :: local_n1
Chris@42 143 integer(C_INTPTR_T), intent(out) :: local_1_start
Chris@42 144 end function fftw_mpi_local_size_3d_transposed
Chris@42 145
Chris@42 146 type(C_PTR) function fftw_mpi_plan_many_transpose(n0,n1,howmany,block0,block1,in,out,comm,flags) &
Chris@42 147 bind(C, name='fftw_mpi_plan_many_transpose_f03')
Chris@42 148 import
Chris@42 149 integer(C_INTPTR_T), value :: n0
Chris@42 150 integer(C_INTPTR_T), value :: n1
Chris@42 151 integer(C_INTPTR_T), value :: howmany
Chris@42 152 integer(C_INTPTR_T), value :: block0
Chris@42 153 integer(C_INTPTR_T), value :: block1
Chris@42 154 real(C_DOUBLE), dimension(*), intent(out) :: in
Chris@42 155 real(C_DOUBLE), dimension(*), intent(out) :: out
Chris@42 156 integer(C_MPI_FINT), value :: comm
Chris@42 157 integer(C_INT), value :: flags
Chris@42 158 end function fftw_mpi_plan_many_transpose
Chris@42 159
Chris@42 160 type(C_PTR) function fftw_mpi_plan_transpose(n0,n1,in,out,comm,flags) bind(C, name='fftw_mpi_plan_transpose_f03')
Chris@42 161 import
Chris@42 162 integer(C_INTPTR_T), value :: n0
Chris@42 163 integer(C_INTPTR_T), value :: n1
Chris@42 164 real(C_DOUBLE), dimension(*), intent(out) :: in
Chris@42 165 real(C_DOUBLE), dimension(*), intent(out) :: out
Chris@42 166 integer(C_MPI_FINT), value :: comm
Chris@42 167 integer(C_INT), value :: flags
Chris@42 168 end function fftw_mpi_plan_transpose
Chris@42 169
Chris@42 170 type(C_PTR) function fftw_mpi_plan_many_dft(rnk,n,howmany,block,tblock,in,out,comm,sign,flags) &
Chris@42 171 bind(C, name='fftw_mpi_plan_many_dft_f03')
Chris@42 172 import
Chris@42 173 integer(C_INT), value :: rnk
Chris@42 174 integer(C_INTPTR_T), dimension(*), intent(in) :: n
Chris@42 175 integer(C_INTPTR_T), value :: howmany
Chris@42 176 integer(C_INTPTR_T), value :: block
Chris@42 177 integer(C_INTPTR_T), value :: tblock
Chris@42 178 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@42 179 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 180 integer(C_MPI_FINT), value :: comm
Chris@42 181 integer(C_INT), value :: sign
Chris@42 182 integer(C_INT), value :: flags
Chris@42 183 end function fftw_mpi_plan_many_dft
Chris@42 184
Chris@42 185 type(C_PTR) function fftw_mpi_plan_dft(rnk,n,in,out,comm,sign,flags) bind(C, name='fftw_mpi_plan_dft_f03')
Chris@42 186 import
Chris@42 187 integer(C_INT), value :: rnk
Chris@42 188 integer(C_INTPTR_T), dimension(*), intent(in) :: n
Chris@42 189 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@42 190 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 191 integer(C_MPI_FINT), value :: comm
Chris@42 192 integer(C_INT), value :: sign
Chris@42 193 integer(C_INT), value :: flags
Chris@42 194 end function fftw_mpi_plan_dft
Chris@42 195
Chris@42 196 type(C_PTR) function fftw_mpi_plan_dft_1d(n0,in,out,comm,sign,flags) bind(C, name='fftw_mpi_plan_dft_1d_f03')
Chris@42 197 import
Chris@42 198 integer(C_INTPTR_T), value :: n0
Chris@42 199 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@42 200 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 201 integer(C_MPI_FINT), value :: comm
Chris@42 202 integer(C_INT), value :: sign
Chris@42 203 integer(C_INT), value :: flags
Chris@42 204 end function fftw_mpi_plan_dft_1d
Chris@42 205
Chris@42 206 type(C_PTR) function fftw_mpi_plan_dft_2d(n0,n1,in,out,comm,sign,flags) bind(C, name='fftw_mpi_plan_dft_2d_f03')
Chris@42 207 import
Chris@42 208 integer(C_INTPTR_T), value :: n0
Chris@42 209 integer(C_INTPTR_T), value :: n1
Chris@42 210 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@42 211 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 212 integer(C_MPI_FINT), value :: comm
Chris@42 213 integer(C_INT), value :: sign
Chris@42 214 integer(C_INT), value :: flags
Chris@42 215 end function fftw_mpi_plan_dft_2d
Chris@42 216
Chris@42 217 type(C_PTR) function fftw_mpi_plan_dft_3d(n0,n1,n2,in,out,comm,sign,flags) bind(C, name='fftw_mpi_plan_dft_3d_f03')
Chris@42 218 import
Chris@42 219 integer(C_INTPTR_T), value :: n0
Chris@42 220 integer(C_INTPTR_T), value :: n1
Chris@42 221 integer(C_INTPTR_T), value :: n2
Chris@42 222 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@42 223 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 224 integer(C_MPI_FINT), value :: comm
Chris@42 225 integer(C_INT), value :: sign
Chris@42 226 integer(C_INT), value :: flags
Chris@42 227 end function fftw_mpi_plan_dft_3d
Chris@42 228
Chris@42 229 type(C_PTR) function fftw_mpi_plan_many_r2r(rnk,n,howmany,iblock,oblock,in,out,comm,kind,flags) &
Chris@42 230 bind(C, name='fftw_mpi_plan_many_r2r_f03')
Chris@42 231 import
Chris@42 232 integer(C_INT), value :: rnk
Chris@42 233 integer(C_INTPTR_T), dimension(*), intent(in) :: n
Chris@42 234 integer(C_INTPTR_T), value :: howmany
Chris@42 235 integer(C_INTPTR_T), value :: iblock
Chris@42 236 integer(C_INTPTR_T), value :: oblock
Chris@42 237 real(C_DOUBLE), dimension(*), intent(out) :: in
Chris@42 238 real(C_DOUBLE), dimension(*), intent(out) :: out
Chris@42 239 integer(C_MPI_FINT), value :: comm
Chris@42 240 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind
Chris@42 241 integer(C_INT), value :: flags
Chris@42 242 end function fftw_mpi_plan_many_r2r
Chris@42 243
Chris@42 244 type(C_PTR) function fftw_mpi_plan_r2r(rnk,n,in,out,comm,kind,flags) bind(C, name='fftw_mpi_plan_r2r_f03')
Chris@42 245 import
Chris@42 246 integer(C_INT), value :: rnk
Chris@42 247 integer(C_INTPTR_T), dimension(*), intent(in) :: n
Chris@42 248 real(C_DOUBLE), dimension(*), intent(out) :: in
Chris@42 249 real(C_DOUBLE), dimension(*), intent(out) :: out
Chris@42 250 integer(C_MPI_FINT), value :: comm
Chris@42 251 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind
Chris@42 252 integer(C_INT), value :: flags
Chris@42 253 end function fftw_mpi_plan_r2r
Chris@42 254
Chris@42 255 type(C_PTR) function fftw_mpi_plan_r2r_2d(n0,n1,in,out,comm,kind0,kind1,flags) bind(C, name='fftw_mpi_plan_r2r_2d_f03')
Chris@42 256 import
Chris@42 257 integer(C_INTPTR_T), value :: n0
Chris@42 258 integer(C_INTPTR_T), value :: n1
Chris@42 259 real(C_DOUBLE), dimension(*), intent(out) :: in
Chris@42 260 real(C_DOUBLE), dimension(*), intent(out) :: out
Chris@42 261 integer(C_MPI_FINT), value :: comm
Chris@42 262 integer(C_FFTW_R2R_KIND), value :: kind0
Chris@42 263 integer(C_FFTW_R2R_KIND), value :: kind1
Chris@42 264 integer(C_INT), value :: flags
Chris@42 265 end function fftw_mpi_plan_r2r_2d
Chris@42 266
Chris@42 267 type(C_PTR) function fftw_mpi_plan_r2r_3d(n0,n1,n2,in,out,comm,kind0,kind1,kind2,flags) bind(C, name='fftw_mpi_plan_r2r_3d_f03')
Chris@42 268 import
Chris@42 269 integer(C_INTPTR_T), value :: n0
Chris@42 270 integer(C_INTPTR_T), value :: n1
Chris@42 271 integer(C_INTPTR_T), value :: n2
Chris@42 272 real(C_DOUBLE), dimension(*), intent(out) :: in
Chris@42 273 real(C_DOUBLE), dimension(*), intent(out) :: out
Chris@42 274 integer(C_MPI_FINT), value :: comm
Chris@42 275 integer(C_FFTW_R2R_KIND), value :: kind0
Chris@42 276 integer(C_FFTW_R2R_KIND), value :: kind1
Chris@42 277 integer(C_FFTW_R2R_KIND), value :: kind2
Chris@42 278 integer(C_INT), value :: flags
Chris@42 279 end function fftw_mpi_plan_r2r_3d
Chris@42 280
Chris@42 281 type(C_PTR) function fftw_mpi_plan_many_dft_r2c(rnk,n,howmany,iblock,oblock,in,out,comm,flags) &
Chris@42 282 bind(C, name='fftw_mpi_plan_many_dft_r2c_f03')
Chris@42 283 import
Chris@42 284 integer(C_INT), value :: rnk
Chris@42 285 integer(C_INTPTR_T), dimension(*), intent(in) :: n
Chris@42 286 integer(C_INTPTR_T), value :: howmany
Chris@42 287 integer(C_INTPTR_T), value :: iblock
Chris@42 288 integer(C_INTPTR_T), value :: oblock
Chris@42 289 real(C_DOUBLE), dimension(*), intent(out) :: in
Chris@42 290 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 291 integer(C_MPI_FINT), value :: comm
Chris@42 292 integer(C_INT), value :: flags
Chris@42 293 end function fftw_mpi_plan_many_dft_r2c
Chris@42 294
Chris@42 295 type(C_PTR) function fftw_mpi_plan_dft_r2c(rnk,n,in,out,comm,flags) bind(C, name='fftw_mpi_plan_dft_r2c_f03')
Chris@42 296 import
Chris@42 297 integer(C_INT), value :: rnk
Chris@42 298 integer(C_INTPTR_T), dimension(*), intent(in) :: n
Chris@42 299 real(C_DOUBLE), dimension(*), intent(out) :: in
Chris@42 300 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 301 integer(C_MPI_FINT), value :: comm
Chris@42 302 integer(C_INT), value :: flags
Chris@42 303 end function fftw_mpi_plan_dft_r2c
Chris@42 304
Chris@42 305 type(C_PTR) function fftw_mpi_plan_dft_r2c_2d(n0,n1,in,out,comm,flags) bind(C, name='fftw_mpi_plan_dft_r2c_2d_f03')
Chris@42 306 import
Chris@42 307 integer(C_INTPTR_T), value :: n0
Chris@42 308 integer(C_INTPTR_T), value :: n1
Chris@42 309 real(C_DOUBLE), dimension(*), intent(out) :: in
Chris@42 310 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 311 integer(C_MPI_FINT), value :: comm
Chris@42 312 integer(C_INT), value :: flags
Chris@42 313 end function fftw_mpi_plan_dft_r2c_2d
Chris@42 314
Chris@42 315 type(C_PTR) function fftw_mpi_plan_dft_r2c_3d(n0,n1,n2,in,out,comm,flags) bind(C, name='fftw_mpi_plan_dft_r2c_3d_f03')
Chris@42 316 import
Chris@42 317 integer(C_INTPTR_T), value :: n0
Chris@42 318 integer(C_INTPTR_T), value :: n1
Chris@42 319 integer(C_INTPTR_T), value :: n2
Chris@42 320 real(C_DOUBLE), dimension(*), intent(out) :: in
Chris@42 321 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 322 integer(C_MPI_FINT), value :: comm
Chris@42 323 integer(C_INT), value :: flags
Chris@42 324 end function fftw_mpi_plan_dft_r2c_3d
Chris@42 325
Chris@42 326 type(C_PTR) function fftw_mpi_plan_many_dft_c2r(rnk,n,howmany,iblock,oblock,in,out,comm,flags) &
Chris@42 327 bind(C, name='fftw_mpi_plan_many_dft_c2r_f03')
Chris@42 328 import
Chris@42 329 integer(C_INT), value :: rnk
Chris@42 330 integer(C_INTPTR_T), dimension(*), intent(in) :: n
Chris@42 331 integer(C_INTPTR_T), value :: howmany
Chris@42 332 integer(C_INTPTR_T), value :: iblock
Chris@42 333 integer(C_INTPTR_T), value :: oblock
Chris@42 334 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@42 335 real(C_DOUBLE), dimension(*), intent(out) :: out
Chris@42 336 integer(C_MPI_FINT), value :: comm
Chris@42 337 integer(C_INT), value :: flags
Chris@42 338 end function fftw_mpi_plan_many_dft_c2r
Chris@42 339
Chris@42 340 type(C_PTR) function fftw_mpi_plan_dft_c2r(rnk,n,in,out,comm,flags) bind(C, name='fftw_mpi_plan_dft_c2r_f03')
Chris@42 341 import
Chris@42 342 integer(C_INT), value :: rnk
Chris@42 343 integer(C_INTPTR_T), dimension(*), intent(in) :: n
Chris@42 344 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@42 345 real(C_DOUBLE), dimension(*), intent(out) :: out
Chris@42 346 integer(C_MPI_FINT), value :: comm
Chris@42 347 integer(C_INT), value :: flags
Chris@42 348 end function fftw_mpi_plan_dft_c2r
Chris@42 349
Chris@42 350 type(C_PTR) function fftw_mpi_plan_dft_c2r_2d(n0,n1,in,out,comm,flags) bind(C, name='fftw_mpi_plan_dft_c2r_2d_f03')
Chris@42 351 import
Chris@42 352 integer(C_INTPTR_T), value :: n0
Chris@42 353 integer(C_INTPTR_T), value :: n1
Chris@42 354 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@42 355 real(C_DOUBLE), dimension(*), intent(out) :: out
Chris@42 356 integer(C_MPI_FINT), value :: comm
Chris@42 357 integer(C_INT), value :: flags
Chris@42 358 end function fftw_mpi_plan_dft_c2r_2d
Chris@42 359
Chris@42 360 type(C_PTR) function fftw_mpi_plan_dft_c2r_3d(n0,n1,n2,in,out,comm,flags) bind(C, name='fftw_mpi_plan_dft_c2r_3d_f03')
Chris@42 361 import
Chris@42 362 integer(C_INTPTR_T), value :: n0
Chris@42 363 integer(C_INTPTR_T), value :: n1
Chris@42 364 integer(C_INTPTR_T), value :: n2
Chris@42 365 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@42 366 real(C_DOUBLE), dimension(*), intent(out) :: out
Chris@42 367 integer(C_MPI_FINT), value :: comm
Chris@42 368 integer(C_INT), value :: flags
Chris@42 369 end function fftw_mpi_plan_dft_c2r_3d
Chris@42 370
Chris@42 371 subroutine fftw_mpi_gather_wisdom(comm_) bind(C, name='fftw_mpi_gather_wisdom_f03')
Chris@42 372 import
Chris@42 373 integer(C_MPI_FINT), value :: comm_
Chris@42 374 end subroutine fftw_mpi_gather_wisdom
Chris@42 375
Chris@42 376 subroutine fftw_mpi_broadcast_wisdom(comm_) bind(C, name='fftw_mpi_broadcast_wisdom_f03')
Chris@42 377 import
Chris@42 378 integer(C_MPI_FINT), value :: comm_
Chris@42 379 end subroutine fftw_mpi_broadcast_wisdom
Chris@42 380
Chris@42 381 subroutine fftw_mpi_execute_dft(p,in,out) bind(C, name='fftw_mpi_execute_dft')
Chris@42 382 import
Chris@42 383 type(C_PTR), value :: p
Chris@42 384 complex(C_DOUBLE_COMPLEX), dimension(*), intent(inout) :: in
Chris@42 385 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 386 end subroutine fftw_mpi_execute_dft
Chris@42 387
Chris@42 388 subroutine fftw_mpi_execute_dft_r2c(p,in,out) bind(C, name='fftw_mpi_execute_dft_r2c')
Chris@42 389 import
Chris@42 390 type(C_PTR), value :: p
Chris@42 391 real(C_DOUBLE), dimension(*), intent(inout) :: in
Chris@42 392 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 393 end subroutine fftw_mpi_execute_dft_r2c
Chris@42 394
Chris@42 395 subroutine fftw_mpi_execute_dft_c2r(p,in,out) bind(C, name='fftw_mpi_execute_dft_c2r')
Chris@42 396 import
Chris@42 397 type(C_PTR), value :: p
Chris@42 398 complex(C_DOUBLE_COMPLEX), dimension(*), intent(inout) :: in
Chris@42 399 real(C_DOUBLE), dimension(*), intent(out) :: out
Chris@42 400 end subroutine fftw_mpi_execute_dft_c2r
Chris@42 401
Chris@42 402 subroutine fftw_mpi_execute_r2r(p,in,out) bind(C, name='fftw_mpi_execute_r2r')
Chris@42 403 import
Chris@42 404 type(C_PTR), value :: p
Chris@42 405 real(C_DOUBLE), dimension(*), intent(inout) :: in
Chris@42 406 real(C_DOUBLE), dimension(*), intent(out) :: out
Chris@42 407 end subroutine fftw_mpi_execute_r2r
Chris@42 408
Chris@42 409 end interface
Chris@42 410
Chris@42 411 type, bind(C) :: fftwf_mpi_ddim
Chris@42 412 integer(C_INTPTR_T) n, ib, ob
Chris@42 413 end type fftwf_mpi_ddim
Chris@42 414
Chris@42 415 interface
Chris@42 416 subroutine fftwf_mpi_init() bind(C, name='fftwf_mpi_init')
Chris@42 417 import
Chris@42 418 end subroutine fftwf_mpi_init
Chris@42 419
Chris@42 420 subroutine fftwf_mpi_cleanup() bind(C, name='fftwf_mpi_cleanup')
Chris@42 421 import
Chris@42 422 end subroutine fftwf_mpi_cleanup
Chris@42 423
Chris@42 424 integer(C_INTPTR_T) function fftwf_mpi_local_size_many_transposed(rnk,n,howmany,block0,block1,comm,local_n0,local_0_start, &
Chris@42 425 local_n1,local_1_start) &
Chris@42 426 bind(C, name='fftwf_mpi_local_size_many_transposed_f03')
Chris@42 427 import
Chris@42 428 integer(C_INT), value :: rnk
Chris@42 429 integer(C_INTPTR_T), dimension(*), intent(in) :: n
Chris@42 430 integer(C_INTPTR_T), value :: howmany
Chris@42 431 integer(C_INTPTR_T), value :: block0
Chris@42 432 integer(C_INTPTR_T), value :: block1
Chris@42 433 integer(C_MPI_FINT), value :: comm
Chris@42 434 integer(C_INTPTR_T), intent(out) :: local_n0
Chris@42 435 integer(C_INTPTR_T), intent(out) :: local_0_start
Chris@42 436 integer(C_INTPTR_T), intent(out) :: local_n1
Chris@42 437 integer(C_INTPTR_T), intent(out) :: local_1_start
Chris@42 438 end function fftwf_mpi_local_size_many_transposed
Chris@42 439
Chris@42 440 integer(C_INTPTR_T) function fftwf_mpi_local_size_many(rnk,n,howmany,block0,comm,local_n0,local_0_start) &
Chris@42 441 bind(C, name='fftwf_mpi_local_size_many_f03')
Chris@42 442 import
Chris@42 443 integer(C_INT), value :: rnk
Chris@42 444 integer(C_INTPTR_T), dimension(*), intent(in) :: n
Chris@42 445 integer(C_INTPTR_T), value :: howmany
Chris@42 446 integer(C_INTPTR_T), value :: block0
Chris@42 447 integer(C_MPI_FINT), value :: comm
Chris@42 448 integer(C_INTPTR_T), intent(out) :: local_n0
Chris@42 449 integer(C_INTPTR_T), intent(out) :: local_0_start
Chris@42 450 end function fftwf_mpi_local_size_many
Chris@42 451
Chris@42 452 integer(C_INTPTR_T) function fftwf_mpi_local_size_transposed(rnk,n,comm,local_n0,local_0_start,local_n1,local_1_start) &
Chris@42 453 bind(C, name='fftwf_mpi_local_size_transposed_f03')
Chris@42 454 import
Chris@42 455 integer(C_INT), value :: rnk
Chris@42 456 integer(C_INTPTR_T), dimension(*), intent(in) :: n
Chris@42 457 integer(C_MPI_FINT), value :: comm
Chris@42 458 integer(C_INTPTR_T), intent(out) :: local_n0
Chris@42 459 integer(C_INTPTR_T), intent(out) :: local_0_start
Chris@42 460 integer(C_INTPTR_T), intent(out) :: local_n1
Chris@42 461 integer(C_INTPTR_T), intent(out) :: local_1_start
Chris@42 462 end function fftwf_mpi_local_size_transposed
Chris@42 463
Chris@42 464 integer(C_INTPTR_T) function fftwf_mpi_local_size(rnk,n,comm,local_n0,local_0_start) bind(C, name='fftwf_mpi_local_size_f03')
Chris@42 465 import
Chris@42 466 integer(C_INT), value :: rnk
Chris@42 467 integer(C_INTPTR_T), dimension(*), intent(in) :: n
Chris@42 468 integer(C_MPI_FINT), value :: comm
Chris@42 469 integer(C_INTPTR_T), intent(out) :: local_n0
Chris@42 470 integer(C_INTPTR_T), intent(out) :: local_0_start
Chris@42 471 end function fftwf_mpi_local_size
Chris@42 472
Chris@42 473 integer(C_INTPTR_T) function fftwf_mpi_local_size_many_1d(n0,howmany,comm,sign,flags,local_ni,local_i_start,local_no, &
Chris@42 474 local_o_start) bind(C, name='fftwf_mpi_local_size_many_1d_f03')
Chris@42 475 import
Chris@42 476 integer(C_INTPTR_T), value :: n0
Chris@42 477 integer(C_INTPTR_T), value :: howmany
Chris@42 478 integer(C_MPI_FINT), value :: comm
Chris@42 479 integer(C_INT), value :: sign
Chris@42 480 integer(C_INT), value :: flags
Chris@42 481 integer(C_INTPTR_T), intent(out) :: local_ni
Chris@42 482 integer(C_INTPTR_T), intent(out) :: local_i_start
Chris@42 483 integer(C_INTPTR_T), intent(out) :: local_no
Chris@42 484 integer(C_INTPTR_T), intent(out) :: local_o_start
Chris@42 485 end function fftwf_mpi_local_size_many_1d
Chris@42 486
Chris@42 487 integer(C_INTPTR_T) function fftwf_mpi_local_size_1d(n0,comm,sign,flags,local_ni,local_i_start,local_no,local_o_start) &
Chris@42 488 bind(C, name='fftwf_mpi_local_size_1d_f03')
Chris@42 489 import
Chris@42 490 integer(C_INTPTR_T), value :: n0
Chris@42 491 integer(C_MPI_FINT), value :: comm
Chris@42 492 integer(C_INT), value :: sign
Chris@42 493 integer(C_INT), value :: flags
Chris@42 494 integer(C_INTPTR_T), intent(out) :: local_ni
Chris@42 495 integer(C_INTPTR_T), intent(out) :: local_i_start
Chris@42 496 integer(C_INTPTR_T), intent(out) :: local_no
Chris@42 497 integer(C_INTPTR_T), intent(out) :: local_o_start
Chris@42 498 end function fftwf_mpi_local_size_1d
Chris@42 499
Chris@42 500 integer(C_INTPTR_T) function fftwf_mpi_local_size_2d(n0,n1,comm,local_n0,local_0_start) &
Chris@42 501 bind(C, name='fftwf_mpi_local_size_2d_f03')
Chris@42 502 import
Chris@42 503 integer(C_INTPTR_T), value :: n0
Chris@42 504 integer(C_INTPTR_T), value :: n1
Chris@42 505 integer(C_MPI_FINT), value :: comm
Chris@42 506 integer(C_INTPTR_T), intent(out) :: local_n0
Chris@42 507 integer(C_INTPTR_T), intent(out) :: local_0_start
Chris@42 508 end function fftwf_mpi_local_size_2d
Chris@42 509
Chris@42 510 integer(C_INTPTR_T) function fftwf_mpi_local_size_2d_transposed(n0,n1,comm,local_n0,local_0_start,local_n1,local_1_start) &
Chris@42 511 bind(C, name='fftwf_mpi_local_size_2d_transposed_f03')
Chris@42 512 import
Chris@42 513 integer(C_INTPTR_T), value :: n0
Chris@42 514 integer(C_INTPTR_T), value :: n1
Chris@42 515 integer(C_MPI_FINT), value :: comm
Chris@42 516 integer(C_INTPTR_T), intent(out) :: local_n0
Chris@42 517 integer(C_INTPTR_T), intent(out) :: local_0_start
Chris@42 518 integer(C_INTPTR_T), intent(out) :: local_n1
Chris@42 519 integer(C_INTPTR_T), intent(out) :: local_1_start
Chris@42 520 end function fftwf_mpi_local_size_2d_transposed
Chris@42 521
Chris@42 522 integer(C_INTPTR_T) function fftwf_mpi_local_size_3d(n0,n1,n2,comm,local_n0,local_0_start) &
Chris@42 523 bind(C, name='fftwf_mpi_local_size_3d_f03')
Chris@42 524 import
Chris@42 525 integer(C_INTPTR_T), value :: n0
Chris@42 526 integer(C_INTPTR_T), value :: n1
Chris@42 527 integer(C_INTPTR_T), value :: n2
Chris@42 528 integer(C_MPI_FINT), value :: comm
Chris@42 529 integer(C_INTPTR_T), intent(out) :: local_n0
Chris@42 530 integer(C_INTPTR_T), intent(out) :: local_0_start
Chris@42 531 end function fftwf_mpi_local_size_3d
Chris@42 532
Chris@42 533 integer(C_INTPTR_T) function fftwf_mpi_local_size_3d_transposed(n0,n1,n2,comm,local_n0,local_0_start,local_n1,local_1_start) &
Chris@42 534 bind(C, name='fftwf_mpi_local_size_3d_transposed_f03')
Chris@42 535 import
Chris@42 536 integer(C_INTPTR_T), value :: n0
Chris@42 537 integer(C_INTPTR_T), value :: n1
Chris@42 538 integer(C_INTPTR_T), value :: n2
Chris@42 539 integer(C_MPI_FINT), value :: comm
Chris@42 540 integer(C_INTPTR_T), intent(out) :: local_n0
Chris@42 541 integer(C_INTPTR_T), intent(out) :: local_0_start
Chris@42 542 integer(C_INTPTR_T), intent(out) :: local_n1
Chris@42 543 integer(C_INTPTR_T), intent(out) :: local_1_start
Chris@42 544 end function fftwf_mpi_local_size_3d_transposed
Chris@42 545
Chris@42 546 type(C_PTR) function fftwf_mpi_plan_many_transpose(n0,n1,howmany,block0,block1,in,out,comm,flags) &
Chris@42 547 bind(C, name='fftwf_mpi_plan_many_transpose_f03')
Chris@42 548 import
Chris@42 549 integer(C_INTPTR_T), value :: n0
Chris@42 550 integer(C_INTPTR_T), value :: n1
Chris@42 551 integer(C_INTPTR_T), value :: howmany
Chris@42 552 integer(C_INTPTR_T), value :: block0
Chris@42 553 integer(C_INTPTR_T), value :: block1
Chris@42 554 real(C_FLOAT), dimension(*), intent(out) :: in
Chris@42 555 real(C_FLOAT), dimension(*), intent(out) :: out
Chris@42 556 integer(C_MPI_FINT), value :: comm
Chris@42 557 integer(C_INT), value :: flags
Chris@42 558 end function fftwf_mpi_plan_many_transpose
Chris@42 559
Chris@42 560 type(C_PTR) function fftwf_mpi_plan_transpose(n0,n1,in,out,comm,flags) bind(C, name='fftwf_mpi_plan_transpose_f03')
Chris@42 561 import
Chris@42 562 integer(C_INTPTR_T), value :: n0
Chris@42 563 integer(C_INTPTR_T), value :: n1
Chris@42 564 real(C_FLOAT), dimension(*), intent(out) :: in
Chris@42 565 real(C_FLOAT), dimension(*), intent(out) :: out
Chris@42 566 integer(C_MPI_FINT), value :: comm
Chris@42 567 integer(C_INT), value :: flags
Chris@42 568 end function fftwf_mpi_plan_transpose
Chris@42 569
Chris@42 570 type(C_PTR) function fftwf_mpi_plan_many_dft(rnk,n,howmany,block,tblock,in,out,comm,sign,flags) &
Chris@42 571 bind(C, name='fftwf_mpi_plan_many_dft_f03')
Chris@42 572 import
Chris@42 573 integer(C_INT), value :: rnk
Chris@42 574 integer(C_INTPTR_T), dimension(*), intent(in) :: n
Chris@42 575 integer(C_INTPTR_T), value :: howmany
Chris@42 576 integer(C_INTPTR_T), value :: block
Chris@42 577 integer(C_INTPTR_T), value :: tblock
Chris@42 578 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in
Chris@42 579 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
Chris@42 580 integer(C_MPI_FINT), value :: comm
Chris@42 581 integer(C_INT), value :: sign
Chris@42 582 integer(C_INT), value :: flags
Chris@42 583 end function fftwf_mpi_plan_many_dft
Chris@42 584
Chris@42 585 type(C_PTR) function fftwf_mpi_plan_dft(rnk,n,in,out,comm,sign,flags) bind(C, name='fftwf_mpi_plan_dft_f03')
Chris@42 586 import
Chris@42 587 integer(C_INT), value :: rnk
Chris@42 588 integer(C_INTPTR_T), dimension(*), intent(in) :: n
Chris@42 589 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in
Chris@42 590 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
Chris@42 591 integer(C_MPI_FINT), value :: comm
Chris@42 592 integer(C_INT), value :: sign
Chris@42 593 integer(C_INT), value :: flags
Chris@42 594 end function fftwf_mpi_plan_dft
Chris@42 595
Chris@42 596 type(C_PTR) function fftwf_mpi_plan_dft_1d(n0,in,out,comm,sign,flags) bind(C, name='fftwf_mpi_plan_dft_1d_f03')
Chris@42 597 import
Chris@42 598 integer(C_INTPTR_T), value :: n0
Chris@42 599 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in
Chris@42 600 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
Chris@42 601 integer(C_MPI_FINT), value :: comm
Chris@42 602 integer(C_INT), value :: sign
Chris@42 603 integer(C_INT), value :: flags
Chris@42 604 end function fftwf_mpi_plan_dft_1d
Chris@42 605
Chris@42 606 type(C_PTR) function fftwf_mpi_plan_dft_2d(n0,n1,in,out,comm,sign,flags) bind(C, name='fftwf_mpi_plan_dft_2d_f03')
Chris@42 607 import
Chris@42 608 integer(C_INTPTR_T), value :: n0
Chris@42 609 integer(C_INTPTR_T), value :: n1
Chris@42 610 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in
Chris@42 611 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
Chris@42 612 integer(C_MPI_FINT), value :: comm
Chris@42 613 integer(C_INT), value :: sign
Chris@42 614 integer(C_INT), value :: flags
Chris@42 615 end function fftwf_mpi_plan_dft_2d
Chris@42 616
Chris@42 617 type(C_PTR) function fftwf_mpi_plan_dft_3d(n0,n1,n2,in,out,comm,sign,flags) bind(C, name='fftwf_mpi_plan_dft_3d_f03')
Chris@42 618 import
Chris@42 619 integer(C_INTPTR_T), value :: n0
Chris@42 620 integer(C_INTPTR_T), value :: n1
Chris@42 621 integer(C_INTPTR_T), value :: n2
Chris@42 622 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in
Chris@42 623 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
Chris@42 624 integer(C_MPI_FINT), value :: comm
Chris@42 625 integer(C_INT), value :: sign
Chris@42 626 integer(C_INT), value :: flags
Chris@42 627 end function fftwf_mpi_plan_dft_3d
Chris@42 628
Chris@42 629 type(C_PTR) function fftwf_mpi_plan_many_r2r(rnk,n,howmany,iblock,oblock,in,out,comm,kind,flags) &
Chris@42 630 bind(C, name='fftwf_mpi_plan_many_r2r_f03')
Chris@42 631 import
Chris@42 632 integer(C_INT), value :: rnk
Chris@42 633 integer(C_INTPTR_T), dimension(*), intent(in) :: n
Chris@42 634 integer(C_INTPTR_T), value :: howmany
Chris@42 635 integer(C_INTPTR_T), value :: iblock
Chris@42 636 integer(C_INTPTR_T), value :: oblock
Chris@42 637 real(C_FLOAT), dimension(*), intent(out) :: in
Chris@42 638 real(C_FLOAT), dimension(*), intent(out) :: out
Chris@42 639 integer(C_MPI_FINT), value :: comm
Chris@42 640 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind
Chris@42 641 integer(C_INT), value :: flags
Chris@42 642 end function fftwf_mpi_plan_many_r2r
Chris@42 643
Chris@42 644 type(C_PTR) function fftwf_mpi_plan_r2r(rnk,n,in,out,comm,kind,flags) bind(C, name='fftwf_mpi_plan_r2r_f03')
Chris@42 645 import
Chris@42 646 integer(C_INT), value :: rnk
Chris@42 647 integer(C_INTPTR_T), dimension(*), intent(in) :: n
Chris@42 648 real(C_FLOAT), dimension(*), intent(out) :: in
Chris@42 649 real(C_FLOAT), dimension(*), intent(out) :: out
Chris@42 650 integer(C_MPI_FINT), value :: comm
Chris@42 651 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind
Chris@42 652 integer(C_INT), value :: flags
Chris@42 653 end function fftwf_mpi_plan_r2r
Chris@42 654
Chris@42 655 type(C_PTR) function fftwf_mpi_plan_r2r_2d(n0,n1,in,out,comm,kind0,kind1,flags) bind(C, name='fftwf_mpi_plan_r2r_2d_f03')
Chris@42 656 import
Chris@42 657 integer(C_INTPTR_T), value :: n0
Chris@42 658 integer(C_INTPTR_T), value :: n1
Chris@42 659 real(C_FLOAT), dimension(*), intent(out) :: in
Chris@42 660 real(C_FLOAT), dimension(*), intent(out) :: out
Chris@42 661 integer(C_MPI_FINT), value :: comm
Chris@42 662 integer(C_FFTW_R2R_KIND), value :: kind0
Chris@42 663 integer(C_FFTW_R2R_KIND), value :: kind1
Chris@42 664 integer(C_INT), value :: flags
Chris@42 665 end function fftwf_mpi_plan_r2r_2d
Chris@42 666
Chris@42 667 type(C_PTR) function fftwf_mpi_plan_r2r_3d(n0,n1,n2,in,out,comm,kind0,kind1,kind2,flags) &
Chris@42 668 bind(C, name='fftwf_mpi_plan_r2r_3d_f03')
Chris@42 669 import
Chris@42 670 integer(C_INTPTR_T), value :: n0
Chris@42 671 integer(C_INTPTR_T), value :: n1
Chris@42 672 integer(C_INTPTR_T), value :: n2
Chris@42 673 real(C_FLOAT), dimension(*), intent(out) :: in
Chris@42 674 real(C_FLOAT), dimension(*), intent(out) :: out
Chris@42 675 integer(C_MPI_FINT), value :: comm
Chris@42 676 integer(C_FFTW_R2R_KIND), value :: kind0
Chris@42 677 integer(C_FFTW_R2R_KIND), value :: kind1
Chris@42 678 integer(C_FFTW_R2R_KIND), value :: kind2
Chris@42 679 integer(C_INT), value :: flags
Chris@42 680 end function fftwf_mpi_plan_r2r_3d
Chris@42 681
Chris@42 682 type(C_PTR) function fftwf_mpi_plan_many_dft_r2c(rnk,n,howmany,iblock,oblock,in,out,comm,flags) &
Chris@42 683 bind(C, name='fftwf_mpi_plan_many_dft_r2c_f03')
Chris@42 684 import
Chris@42 685 integer(C_INT), value :: rnk
Chris@42 686 integer(C_INTPTR_T), dimension(*), intent(in) :: n
Chris@42 687 integer(C_INTPTR_T), value :: howmany
Chris@42 688 integer(C_INTPTR_T), value :: iblock
Chris@42 689 integer(C_INTPTR_T), value :: oblock
Chris@42 690 real(C_FLOAT), dimension(*), intent(out) :: in
Chris@42 691 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
Chris@42 692 integer(C_MPI_FINT), value :: comm
Chris@42 693 integer(C_INT), value :: flags
Chris@42 694 end function fftwf_mpi_plan_many_dft_r2c
Chris@42 695
Chris@42 696 type(C_PTR) function fftwf_mpi_plan_dft_r2c(rnk,n,in,out,comm,flags) bind(C, name='fftwf_mpi_plan_dft_r2c_f03')
Chris@42 697 import
Chris@42 698 integer(C_INT), value :: rnk
Chris@42 699 integer(C_INTPTR_T), dimension(*), intent(in) :: n
Chris@42 700 real(C_FLOAT), dimension(*), intent(out) :: in
Chris@42 701 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
Chris@42 702 integer(C_MPI_FINT), value :: comm
Chris@42 703 integer(C_INT), value :: flags
Chris@42 704 end function fftwf_mpi_plan_dft_r2c
Chris@42 705
Chris@42 706 type(C_PTR) function fftwf_mpi_plan_dft_r2c_2d(n0,n1,in,out,comm,flags) bind(C, name='fftwf_mpi_plan_dft_r2c_2d_f03')
Chris@42 707 import
Chris@42 708 integer(C_INTPTR_T), value :: n0
Chris@42 709 integer(C_INTPTR_T), value :: n1
Chris@42 710 real(C_FLOAT), dimension(*), intent(out) :: in
Chris@42 711 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
Chris@42 712 integer(C_MPI_FINT), value :: comm
Chris@42 713 integer(C_INT), value :: flags
Chris@42 714 end function fftwf_mpi_plan_dft_r2c_2d
Chris@42 715
Chris@42 716 type(C_PTR) function fftwf_mpi_plan_dft_r2c_3d(n0,n1,n2,in,out,comm,flags) bind(C, name='fftwf_mpi_plan_dft_r2c_3d_f03')
Chris@42 717 import
Chris@42 718 integer(C_INTPTR_T), value :: n0
Chris@42 719 integer(C_INTPTR_T), value :: n1
Chris@42 720 integer(C_INTPTR_T), value :: n2
Chris@42 721 real(C_FLOAT), dimension(*), intent(out) :: in
Chris@42 722 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
Chris@42 723 integer(C_MPI_FINT), value :: comm
Chris@42 724 integer(C_INT), value :: flags
Chris@42 725 end function fftwf_mpi_plan_dft_r2c_3d
Chris@42 726
Chris@42 727 type(C_PTR) function fftwf_mpi_plan_many_dft_c2r(rnk,n,howmany,iblock,oblock,in,out,comm,flags) &
Chris@42 728 bind(C, name='fftwf_mpi_plan_many_dft_c2r_f03')
Chris@42 729 import
Chris@42 730 integer(C_INT), value :: rnk
Chris@42 731 integer(C_INTPTR_T), dimension(*), intent(in) :: n
Chris@42 732 integer(C_INTPTR_T), value :: howmany
Chris@42 733 integer(C_INTPTR_T), value :: iblock
Chris@42 734 integer(C_INTPTR_T), value :: oblock
Chris@42 735 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in
Chris@42 736 real(C_FLOAT), dimension(*), intent(out) :: out
Chris@42 737 integer(C_MPI_FINT), value :: comm
Chris@42 738 integer(C_INT), value :: flags
Chris@42 739 end function fftwf_mpi_plan_many_dft_c2r
Chris@42 740
Chris@42 741 type(C_PTR) function fftwf_mpi_plan_dft_c2r(rnk,n,in,out,comm,flags) bind(C, name='fftwf_mpi_plan_dft_c2r_f03')
Chris@42 742 import
Chris@42 743 integer(C_INT), value :: rnk
Chris@42 744 integer(C_INTPTR_T), dimension(*), intent(in) :: n
Chris@42 745 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in
Chris@42 746 real(C_FLOAT), dimension(*), intent(out) :: out
Chris@42 747 integer(C_MPI_FINT), value :: comm
Chris@42 748 integer(C_INT), value :: flags
Chris@42 749 end function fftwf_mpi_plan_dft_c2r
Chris@42 750
Chris@42 751 type(C_PTR) function fftwf_mpi_plan_dft_c2r_2d(n0,n1,in,out,comm,flags) bind(C, name='fftwf_mpi_plan_dft_c2r_2d_f03')
Chris@42 752 import
Chris@42 753 integer(C_INTPTR_T), value :: n0
Chris@42 754 integer(C_INTPTR_T), value :: n1
Chris@42 755 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in
Chris@42 756 real(C_FLOAT), dimension(*), intent(out) :: out
Chris@42 757 integer(C_MPI_FINT), value :: comm
Chris@42 758 integer(C_INT), value :: flags
Chris@42 759 end function fftwf_mpi_plan_dft_c2r_2d
Chris@42 760
Chris@42 761 type(C_PTR) function fftwf_mpi_plan_dft_c2r_3d(n0,n1,n2,in,out,comm,flags) bind(C, name='fftwf_mpi_plan_dft_c2r_3d_f03')
Chris@42 762 import
Chris@42 763 integer(C_INTPTR_T), value :: n0
Chris@42 764 integer(C_INTPTR_T), value :: n1
Chris@42 765 integer(C_INTPTR_T), value :: n2
Chris@42 766 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in
Chris@42 767 real(C_FLOAT), dimension(*), intent(out) :: out
Chris@42 768 integer(C_MPI_FINT), value :: comm
Chris@42 769 integer(C_INT), value :: flags
Chris@42 770 end function fftwf_mpi_plan_dft_c2r_3d
Chris@42 771
Chris@42 772 subroutine fftwf_mpi_gather_wisdom(comm_) bind(C, name='fftwf_mpi_gather_wisdom_f03')
Chris@42 773 import
Chris@42 774 integer(C_MPI_FINT), value :: comm_
Chris@42 775 end subroutine fftwf_mpi_gather_wisdom
Chris@42 776
Chris@42 777 subroutine fftwf_mpi_broadcast_wisdom(comm_) bind(C, name='fftwf_mpi_broadcast_wisdom_f03')
Chris@42 778 import
Chris@42 779 integer(C_MPI_FINT), value :: comm_
Chris@42 780 end subroutine fftwf_mpi_broadcast_wisdom
Chris@42 781
Chris@42 782 subroutine fftwf_mpi_execute_dft(p,in,out) bind(C, name='fftwf_mpi_execute_dft')
Chris@42 783 import
Chris@42 784 type(C_PTR), value :: p
Chris@42 785 complex(C_FLOAT_COMPLEX), dimension(*), intent(inout) :: in
Chris@42 786 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
Chris@42 787 end subroutine fftwf_mpi_execute_dft
Chris@42 788
Chris@42 789 subroutine fftwf_mpi_execute_dft_r2c(p,in,out) bind(C, name='fftwf_mpi_execute_dft_r2c')
Chris@42 790 import
Chris@42 791 type(C_PTR), value :: p
Chris@42 792 real(C_FLOAT), dimension(*), intent(inout) :: in
Chris@42 793 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
Chris@42 794 end subroutine fftwf_mpi_execute_dft_r2c
Chris@42 795
Chris@42 796 subroutine fftwf_mpi_execute_dft_c2r(p,in,out) bind(C, name='fftwf_mpi_execute_dft_c2r')
Chris@42 797 import
Chris@42 798 type(C_PTR), value :: p
Chris@42 799 complex(C_FLOAT_COMPLEX), dimension(*), intent(inout) :: in
Chris@42 800 real(C_FLOAT), dimension(*), intent(out) :: out
Chris@42 801 end subroutine fftwf_mpi_execute_dft_c2r
Chris@42 802
Chris@42 803 subroutine fftwf_mpi_execute_r2r(p,in,out) bind(C, name='fftwf_mpi_execute_r2r')
Chris@42 804 import
Chris@42 805 type(C_PTR), value :: p
Chris@42 806 real(C_FLOAT), dimension(*), intent(inout) :: in
Chris@42 807 real(C_FLOAT), dimension(*), intent(out) :: out
Chris@42 808 end subroutine fftwf_mpi_execute_r2r
Chris@42 809
Chris@42 810 end interface