annotate fft/fftw/fftw-3.3.4/mpi/fftw3-mpi.f03.in @ 40:223f770b5341 kissfft-double tip

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