annotate src/fftw-3.3.5/mpi/fftw3-mpi.f03.in @ 43:5ea0608b923f

Current zlib source
author Chris Cannam
date Tue, 18 Oct 2016 14:33:52 +0100
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