annotate src/fftw-3.3.3/mpi/fftw3-mpi.f03.in @ 23:619f715526df sv_v2.1

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