annotate src/fftw-3.3.8/mpi/fftw3-mpi.f03.in @ 84:08ae793730bd

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