annotate src/fftw-3.3.3/mpi/fftw3l-mpi.f03.in @ 83:ae30d91d2ffe

Replace these with versions built using an older toolset (so as to avoid ABI compatibilities when linking on Ubuntu 14.04 for packaging purposes)
author Chris Cannam
date Fri, 07 Feb 2020 11:51:13 +0000
parents 37bf6b4a2645
children
rev   line source
Chris@10 1 ! Generated automatically. DO NOT EDIT!
Chris@10 2
Chris@10 3 include 'fftw3l.f03'
Chris@10 4
Chris@10 5
Chris@10 6 type, bind(C) :: fftwl_mpi_ddim
Chris@10 7 integer(C_INTPTR_T) n, ib, ob
Chris@10 8 end type fftwl_mpi_ddim
Chris@10 9
Chris@10 10 interface
Chris@10 11 subroutine fftwl_mpi_init() bind(C, name='fftwl_mpi_init')
Chris@10 12 import
Chris@10 13 end subroutine fftwl_mpi_init
Chris@10 14
Chris@10 15 subroutine fftwl_mpi_cleanup() bind(C, name='fftwl_mpi_cleanup')
Chris@10 16 import
Chris@10 17 end subroutine fftwl_mpi_cleanup
Chris@10 18
Chris@10 19 integer(C_INTPTR_T) function fftwl_mpi_local_size_many_transposed(rnk,n,howmany,block0,block1,comm,local_n0,local_0_start, &
Chris@10 20 local_n1,local_1_start) &
Chris@10 21 bind(C, name='fftwl_mpi_local_size_many_transposed_f03')
Chris@10 22 import
Chris@10 23 integer(C_INT), value :: rnk
Chris@10 24 integer(C_INTPTR_T), dimension(*), intent(in) :: n
Chris@10 25 integer(C_INTPTR_T), value :: howmany
Chris@10 26 integer(C_INTPTR_T), value :: block0
Chris@10 27 integer(C_INTPTR_T), value :: block1
Chris@10 28 integer(C_MPI_FINT), value :: comm
Chris@10 29 integer(C_INTPTR_T), intent(out) :: local_n0
Chris@10 30 integer(C_INTPTR_T), intent(out) :: local_0_start
Chris@10 31 integer(C_INTPTR_T), intent(out) :: local_n1
Chris@10 32 integer(C_INTPTR_T), intent(out) :: local_1_start
Chris@10 33 end function fftwl_mpi_local_size_many_transposed
Chris@10 34
Chris@10 35 integer(C_INTPTR_T) function fftwl_mpi_local_size_many(rnk,n,howmany,block0,comm,local_n0,local_0_start) &
Chris@10 36 bind(C, name='fftwl_mpi_local_size_many_f03')
Chris@10 37 import
Chris@10 38 integer(C_INT), value :: rnk
Chris@10 39 integer(C_INTPTR_T), dimension(*), intent(in) :: n
Chris@10 40 integer(C_INTPTR_T), value :: howmany
Chris@10 41 integer(C_INTPTR_T), value :: block0
Chris@10 42 integer(C_MPI_FINT), value :: comm
Chris@10 43 integer(C_INTPTR_T), intent(out) :: local_n0
Chris@10 44 integer(C_INTPTR_T), intent(out) :: local_0_start
Chris@10 45 end function fftwl_mpi_local_size_many
Chris@10 46
Chris@10 47 integer(C_INTPTR_T) function fftwl_mpi_local_size_transposed(rnk,n,comm,local_n0,local_0_start,local_n1,local_1_start) &
Chris@10 48 bind(C, name='fftwl_mpi_local_size_transposed_f03')
Chris@10 49 import
Chris@10 50 integer(C_INT), value :: rnk
Chris@10 51 integer(C_INTPTR_T), dimension(*), intent(in) :: n
Chris@10 52 integer(C_MPI_FINT), value :: comm
Chris@10 53 integer(C_INTPTR_T), intent(out) :: local_n0
Chris@10 54 integer(C_INTPTR_T), intent(out) :: local_0_start
Chris@10 55 integer(C_INTPTR_T), intent(out) :: local_n1
Chris@10 56 integer(C_INTPTR_T), intent(out) :: local_1_start
Chris@10 57 end function fftwl_mpi_local_size_transposed
Chris@10 58
Chris@10 59 integer(C_INTPTR_T) function fftwl_mpi_local_size(rnk,n,comm,local_n0,local_0_start) bind(C, name='fftwl_mpi_local_size_f03')
Chris@10 60 import
Chris@10 61 integer(C_INT), value :: rnk
Chris@10 62 integer(C_INTPTR_T), dimension(*), intent(in) :: n
Chris@10 63 integer(C_MPI_FINT), value :: comm
Chris@10 64 integer(C_INTPTR_T), intent(out) :: local_n0
Chris@10 65 integer(C_INTPTR_T), intent(out) :: local_0_start
Chris@10 66 end function fftwl_mpi_local_size
Chris@10 67
Chris@10 68 integer(C_INTPTR_T) function fftwl_mpi_local_size_many_1d(n0,howmany,comm,sign,flags,local_ni,local_i_start,local_no, &
Chris@10 69 local_o_start) bind(C, name='fftwl_mpi_local_size_many_1d_f03')
Chris@10 70 import
Chris@10 71 integer(C_INTPTR_T), value :: n0
Chris@10 72 integer(C_INTPTR_T), value :: howmany
Chris@10 73 integer(C_MPI_FINT), value :: comm
Chris@10 74 integer(C_INT), value :: sign
Chris@10 75 integer(C_INT), value :: flags
Chris@10 76 integer(C_INTPTR_T), intent(out) :: local_ni
Chris@10 77 integer(C_INTPTR_T), intent(out) :: local_i_start
Chris@10 78 integer(C_INTPTR_T), intent(out) :: local_no
Chris@10 79 integer(C_INTPTR_T), intent(out) :: local_o_start
Chris@10 80 end function fftwl_mpi_local_size_many_1d
Chris@10 81
Chris@10 82 integer(C_INTPTR_T) function fftwl_mpi_local_size_1d(n0,comm,sign,flags,local_ni,local_i_start,local_no,local_o_start) &
Chris@10 83 bind(C, name='fftwl_mpi_local_size_1d_f03')
Chris@10 84 import
Chris@10 85 integer(C_INTPTR_T), value :: n0
Chris@10 86 integer(C_MPI_FINT), value :: comm
Chris@10 87 integer(C_INT), value :: sign
Chris@10 88 integer(C_INT), value :: flags
Chris@10 89 integer(C_INTPTR_T), intent(out) :: local_ni
Chris@10 90 integer(C_INTPTR_T), intent(out) :: local_i_start
Chris@10 91 integer(C_INTPTR_T), intent(out) :: local_no
Chris@10 92 integer(C_INTPTR_T), intent(out) :: local_o_start
Chris@10 93 end function fftwl_mpi_local_size_1d
Chris@10 94
Chris@10 95 integer(C_INTPTR_T) function fftwl_mpi_local_size_2d(n0,n1,comm,local_n0,local_0_start) &
Chris@10 96 bind(C, name='fftwl_mpi_local_size_2d_f03')
Chris@10 97 import
Chris@10 98 integer(C_INTPTR_T), value :: n0
Chris@10 99 integer(C_INTPTR_T), value :: n1
Chris@10 100 integer(C_MPI_FINT), value :: comm
Chris@10 101 integer(C_INTPTR_T), intent(out) :: local_n0
Chris@10 102 integer(C_INTPTR_T), intent(out) :: local_0_start
Chris@10 103 end function fftwl_mpi_local_size_2d
Chris@10 104
Chris@10 105 integer(C_INTPTR_T) function fftwl_mpi_local_size_2d_transposed(n0,n1,comm,local_n0,local_0_start,local_n1,local_1_start) &
Chris@10 106 bind(C, name='fftwl_mpi_local_size_2d_transposed_f03')
Chris@10 107 import
Chris@10 108 integer(C_INTPTR_T), value :: n0
Chris@10 109 integer(C_INTPTR_T), value :: n1
Chris@10 110 integer(C_MPI_FINT), value :: comm
Chris@10 111 integer(C_INTPTR_T), intent(out) :: local_n0
Chris@10 112 integer(C_INTPTR_T), intent(out) :: local_0_start
Chris@10 113 integer(C_INTPTR_T), intent(out) :: local_n1
Chris@10 114 integer(C_INTPTR_T), intent(out) :: local_1_start
Chris@10 115 end function fftwl_mpi_local_size_2d_transposed
Chris@10 116
Chris@10 117 integer(C_INTPTR_T) function fftwl_mpi_local_size_3d(n0,n1,n2,comm,local_n0,local_0_start) &
Chris@10 118 bind(C, name='fftwl_mpi_local_size_3d_f03')
Chris@10 119 import
Chris@10 120 integer(C_INTPTR_T), value :: n0
Chris@10 121 integer(C_INTPTR_T), value :: n1
Chris@10 122 integer(C_INTPTR_T), value :: n2
Chris@10 123 integer(C_MPI_FINT), value :: comm
Chris@10 124 integer(C_INTPTR_T), intent(out) :: local_n0
Chris@10 125 integer(C_INTPTR_T), intent(out) :: local_0_start
Chris@10 126 end function fftwl_mpi_local_size_3d
Chris@10 127
Chris@10 128 integer(C_INTPTR_T) function fftwl_mpi_local_size_3d_transposed(n0,n1,n2,comm,local_n0,local_0_start,local_n1,local_1_start) &
Chris@10 129 bind(C, name='fftwl_mpi_local_size_3d_transposed_f03')
Chris@10 130 import
Chris@10 131 integer(C_INTPTR_T), value :: n0
Chris@10 132 integer(C_INTPTR_T), value :: n1
Chris@10 133 integer(C_INTPTR_T), value :: n2
Chris@10 134 integer(C_MPI_FINT), value :: comm
Chris@10 135 integer(C_INTPTR_T), intent(out) :: local_n0
Chris@10 136 integer(C_INTPTR_T), intent(out) :: local_0_start
Chris@10 137 integer(C_INTPTR_T), intent(out) :: local_n1
Chris@10 138 integer(C_INTPTR_T), intent(out) :: local_1_start
Chris@10 139 end function fftwl_mpi_local_size_3d_transposed
Chris@10 140
Chris@10 141 type(C_PTR) function fftwl_mpi_plan_many_transpose(n0,n1,howmany,block0,block1,in,out,comm,flags) &
Chris@10 142 bind(C, name='fftwl_mpi_plan_many_transpose_f03')
Chris@10 143 import
Chris@10 144 integer(C_INTPTR_T), value :: n0
Chris@10 145 integer(C_INTPTR_T), value :: n1
Chris@10 146 integer(C_INTPTR_T), value :: howmany
Chris@10 147 integer(C_INTPTR_T), value :: block0
Chris@10 148 integer(C_INTPTR_T), value :: block1
Chris@10 149 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@10 150 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@10 151 integer(C_MPI_FINT), value :: comm
Chris@10 152 integer(C_INT), value :: flags
Chris@10 153 end function fftwl_mpi_plan_many_transpose
Chris@10 154
Chris@10 155 type(C_PTR) function fftwl_mpi_plan_transpose(n0,n1,in,out,comm,flags) bind(C, name='fftwl_mpi_plan_transpose_f03')
Chris@10 156 import
Chris@10 157 integer(C_INTPTR_T), value :: n0
Chris@10 158 integer(C_INTPTR_T), value :: n1
Chris@10 159 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@10 160 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@10 161 integer(C_MPI_FINT), value :: comm
Chris@10 162 integer(C_INT), value :: flags
Chris@10 163 end function fftwl_mpi_plan_transpose
Chris@10 164
Chris@10 165 type(C_PTR) function fftwl_mpi_plan_many_dft(rnk,n,howmany,block,tblock,in,out,comm,sign,flags) &
Chris@10 166 bind(C, name='fftwl_mpi_plan_many_dft_f03')
Chris@10 167 import
Chris@10 168 integer(C_INT), value :: rnk
Chris@10 169 integer(C_INTPTR_T), dimension(*), intent(in) :: n
Chris@10 170 integer(C_INTPTR_T), value :: howmany
Chris@10 171 integer(C_INTPTR_T), value :: block
Chris@10 172 integer(C_INTPTR_T), value :: tblock
Chris@10 173 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@10 174 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@10 175 integer(C_MPI_FINT), value :: comm
Chris@10 176 integer(C_INT), value :: sign
Chris@10 177 integer(C_INT), value :: flags
Chris@10 178 end function fftwl_mpi_plan_many_dft
Chris@10 179
Chris@10 180 type(C_PTR) function fftwl_mpi_plan_dft(rnk,n,in,out,comm,sign,flags) bind(C, name='fftwl_mpi_plan_dft_f03')
Chris@10 181 import
Chris@10 182 integer(C_INT), value :: rnk
Chris@10 183 integer(C_INTPTR_T), dimension(*), intent(in) :: n
Chris@10 184 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@10 185 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@10 186 integer(C_MPI_FINT), value :: comm
Chris@10 187 integer(C_INT), value :: sign
Chris@10 188 integer(C_INT), value :: flags
Chris@10 189 end function fftwl_mpi_plan_dft
Chris@10 190
Chris@10 191 type(C_PTR) function fftwl_mpi_plan_dft_1d(n0,in,out,comm,sign,flags) bind(C, name='fftwl_mpi_plan_dft_1d_f03')
Chris@10 192 import
Chris@10 193 integer(C_INTPTR_T), value :: n0
Chris@10 194 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@10 195 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@10 196 integer(C_MPI_FINT), value :: comm
Chris@10 197 integer(C_INT), value :: sign
Chris@10 198 integer(C_INT), value :: flags
Chris@10 199 end function fftwl_mpi_plan_dft_1d
Chris@10 200
Chris@10 201 type(C_PTR) function fftwl_mpi_plan_dft_2d(n0,n1,in,out,comm,sign,flags) bind(C, name='fftwl_mpi_plan_dft_2d_f03')
Chris@10 202 import
Chris@10 203 integer(C_INTPTR_T), value :: n0
Chris@10 204 integer(C_INTPTR_T), value :: n1
Chris@10 205 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@10 206 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@10 207 integer(C_MPI_FINT), value :: comm
Chris@10 208 integer(C_INT), value :: sign
Chris@10 209 integer(C_INT), value :: flags
Chris@10 210 end function fftwl_mpi_plan_dft_2d
Chris@10 211
Chris@10 212 type(C_PTR) function fftwl_mpi_plan_dft_3d(n0,n1,n2,in,out,comm,sign,flags) bind(C, name='fftwl_mpi_plan_dft_3d_f03')
Chris@10 213 import
Chris@10 214 integer(C_INTPTR_T), value :: n0
Chris@10 215 integer(C_INTPTR_T), value :: n1
Chris@10 216 integer(C_INTPTR_T), value :: n2
Chris@10 217 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@10 218 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@10 219 integer(C_MPI_FINT), value :: comm
Chris@10 220 integer(C_INT), value :: sign
Chris@10 221 integer(C_INT), value :: flags
Chris@10 222 end function fftwl_mpi_plan_dft_3d
Chris@10 223
Chris@10 224 type(C_PTR) function fftwl_mpi_plan_many_r2r(rnk,n,howmany,iblock,oblock,in,out,comm,kind,flags) &
Chris@10 225 bind(C, name='fftwl_mpi_plan_many_r2r_f03')
Chris@10 226 import
Chris@10 227 integer(C_INT), value :: rnk
Chris@10 228 integer(C_INTPTR_T), dimension(*), intent(in) :: n
Chris@10 229 integer(C_INTPTR_T), value :: howmany
Chris@10 230 integer(C_INTPTR_T), value :: iblock
Chris@10 231 integer(C_INTPTR_T), value :: oblock
Chris@10 232 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@10 233 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@10 234 integer(C_MPI_FINT), value :: comm
Chris@10 235 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind
Chris@10 236 integer(C_INT), value :: flags
Chris@10 237 end function fftwl_mpi_plan_many_r2r
Chris@10 238
Chris@10 239 type(C_PTR) function fftwl_mpi_plan_r2r(rnk,n,in,out,comm,kind,flags) bind(C, name='fftwl_mpi_plan_r2r_f03')
Chris@10 240 import
Chris@10 241 integer(C_INT), value :: rnk
Chris@10 242 integer(C_INTPTR_T), dimension(*), intent(in) :: n
Chris@10 243 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@10 244 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@10 245 integer(C_MPI_FINT), value :: comm
Chris@10 246 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind
Chris@10 247 integer(C_INT), value :: flags
Chris@10 248 end function fftwl_mpi_plan_r2r
Chris@10 249
Chris@10 250 type(C_PTR) function fftwl_mpi_plan_r2r_2d(n0,n1,in,out,comm,kind0,kind1,flags) bind(C, name='fftwl_mpi_plan_r2r_2d_f03')
Chris@10 251 import
Chris@10 252 integer(C_INTPTR_T), value :: n0
Chris@10 253 integer(C_INTPTR_T), value :: n1
Chris@10 254 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@10 255 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@10 256 integer(C_MPI_FINT), value :: comm
Chris@10 257 integer(C_FFTW_R2R_KIND), value :: kind0
Chris@10 258 integer(C_FFTW_R2R_KIND), value :: kind1
Chris@10 259 integer(C_INT), value :: flags
Chris@10 260 end function fftwl_mpi_plan_r2r_2d
Chris@10 261
Chris@10 262 type(C_PTR) function fftwl_mpi_plan_r2r_3d(n0,n1,n2,in,out,comm,kind0,kind1,kind2,flags) &
Chris@10 263 bind(C, name='fftwl_mpi_plan_r2r_3d_f03')
Chris@10 264 import
Chris@10 265 integer(C_INTPTR_T), value :: n0
Chris@10 266 integer(C_INTPTR_T), value :: n1
Chris@10 267 integer(C_INTPTR_T), value :: n2
Chris@10 268 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@10 269 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@10 270 integer(C_MPI_FINT), value :: comm
Chris@10 271 integer(C_FFTW_R2R_KIND), value :: kind0
Chris@10 272 integer(C_FFTW_R2R_KIND), value :: kind1
Chris@10 273 integer(C_FFTW_R2R_KIND), value :: kind2
Chris@10 274 integer(C_INT), value :: flags
Chris@10 275 end function fftwl_mpi_plan_r2r_3d
Chris@10 276
Chris@10 277 type(C_PTR) function fftwl_mpi_plan_many_dft_r2c(rnk,n,howmany,iblock,oblock,in,out,comm,flags) &
Chris@10 278 bind(C, name='fftwl_mpi_plan_many_dft_r2c_f03')
Chris@10 279 import
Chris@10 280 integer(C_INT), value :: rnk
Chris@10 281 integer(C_INTPTR_T), dimension(*), intent(in) :: n
Chris@10 282 integer(C_INTPTR_T), value :: howmany
Chris@10 283 integer(C_INTPTR_T), value :: iblock
Chris@10 284 integer(C_INTPTR_T), value :: oblock
Chris@10 285 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@10 286 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@10 287 integer(C_MPI_FINT), value :: comm
Chris@10 288 integer(C_INT), value :: flags
Chris@10 289 end function fftwl_mpi_plan_many_dft_r2c
Chris@10 290
Chris@10 291 type(C_PTR) function fftwl_mpi_plan_dft_r2c(rnk,n,in,out,comm,flags) bind(C, name='fftwl_mpi_plan_dft_r2c_f03')
Chris@10 292 import
Chris@10 293 integer(C_INT), value :: rnk
Chris@10 294 integer(C_INTPTR_T), dimension(*), intent(in) :: n
Chris@10 295 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@10 296 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@10 297 integer(C_MPI_FINT), value :: comm
Chris@10 298 integer(C_INT), value :: flags
Chris@10 299 end function fftwl_mpi_plan_dft_r2c
Chris@10 300
Chris@10 301 type(C_PTR) function fftwl_mpi_plan_dft_r2c_2d(n0,n1,in,out,comm,flags) bind(C, name='fftwl_mpi_plan_dft_r2c_2d_f03')
Chris@10 302 import
Chris@10 303 integer(C_INTPTR_T), value :: n0
Chris@10 304 integer(C_INTPTR_T), value :: n1
Chris@10 305 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@10 306 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@10 307 integer(C_MPI_FINT), value :: comm
Chris@10 308 integer(C_INT), value :: flags
Chris@10 309 end function fftwl_mpi_plan_dft_r2c_2d
Chris@10 310
Chris@10 311 type(C_PTR) function fftwl_mpi_plan_dft_r2c_3d(n0,n1,n2,in,out,comm,flags) bind(C, name='fftwl_mpi_plan_dft_r2c_3d_f03')
Chris@10 312 import
Chris@10 313 integer(C_INTPTR_T), value :: n0
Chris@10 314 integer(C_INTPTR_T), value :: n1
Chris@10 315 integer(C_INTPTR_T), value :: n2
Chris@10 316 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@10 317 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@10 318 integer(C_MPI_FINT), value :: comm
Chris@10 319 integer(C_INT), value :: flags
Chris@10 320 end function fftwl_mpi_plan_dft_r2c_3d
Chris@10 321
Chris@10 322 type(C_PTR) function fftwl_mpi_plan_many_dft_c2r(rnk,n,howmany,iblock,oblock,in,out,comm,flags) &
Chris@10 323 bind(C, name='fftwl_mpi_plan_many_dft_c2r_f03')
Chris@10 324 import
Chris@10 325 integer(C_INT), value :: rnk
Chris@10 326 integer(C_INTPTR_T), dimension(*), intent(in) :: n
Chris@10 327 integer(C_INTPTR_T), value :: howmany
Chris@10 328 integer(C_INTPTR_T), value :: iblock
Chris@10 329 integer(C_INTPTR_T), value :: oblock
Chris@10 330 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@10 331 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@10 332 integer(C_MPI_FINT), value :: comm
Chris@10 333 integer(C_INT), value :: flags
Chris@10 334 end function fftwl_mpi_plan_many_dft_c2r
Chris@10 335
Chris@10 336 type(C_PTR) function fftwl_mpi_plan_dft_c2r(rnk,n,in,out,comm,flags) bind(C, name='fftwl_mpi_plan_dft_c2r_f03')
Chris@10 337 import
Chris@10 338 integer(C_INT), value :: rnk
Chris@10 339 integer(C_INTPTR_T), dimension(*), intent(in) :: n
Chris@10 340 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@10 341 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@10 342 integer(C_MPI_FINT), value :: comm
Chris@10 343 integer(C_INT), value :: flags
Chris@10 344 end function fftwl_mpi_plan_dft_c2r
Chris@10 345
Chris@10 346 type(C_PTR) function fftwl_mpi_plan_dft_c2r_2d(n0,n1,in,out,comm,flags) bind(C, name='fftwl_mpi_plan_dft_c2r_2d_f03')
Chris@10 347 import
Chris@10 348 integer(C_INTPTR_T), value :: n0
Chris@10 349 integer(C_INTPTR_T), value :: n1
Chris@10 350 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@10 351 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@10 352 integer(C_MPI_FINT), value :: comm
Chris@10 353 integer(C_INT), value :: flags
Chris@10 354 end function fftwl_mpi_plan_dft_c2r_2d
Chris@10 355
Chris@10 356 type(C_PTR) function fftwl_mpi_plan_dft_c2r_3d(n0,n1,n2,in,out,comm,flags) bind(C, name='fftwl_mpi_plan_dft_c2r_3d_f03')
Chris@10 357 import
Chris@10 358 integer(C_INTPTR_T), value :: n0
Chris@10 359 integer(C_INTPTR_T), value :: n1
Chris@10 360 integer(C_INTPTR_T), value :: n2
Chris@10 361 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@10 362 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@10 363 integer(C_MPI_FINT), value :: comm
Chris@10 364 integer(C_INT), value :: flags
Chris@10 365 end function fftwl_mpi_plan_dft_c2r_3d
Chris@10 366
Chris@10 367 subroutine fftwl_mpi_gather_wisdom(comm_) bind(C, name='fftwl_mpi_gather_wisdom_f03')
Chris@10 368 import
Chris@10 369 integer(C_MPI_FINT), value :: comm_
Chris@10 370 end subroutine fftwl_mpi_gather_wisdom
Chris@10 371
Chris@10 372 subroutine fftwl_mpi_broadcast_wisdom(comm_) bind(C, name='fftwl_mpi_broadcast_wisdom_f03')
Chris@10 373 import
Chris@10 374 integer(C_MPI_FINT), value :: comm_
Chris@10 375 end subroutine fftwl_mpi_broadcast_wisdom
Chris@10 376
Chris@10 377 subroutine fftwl_mpi_execute_dft(p,in,out) bind(C, name='fftwl_mpi_execute_dft')
Chris@10 378 import
Chris@10 379 type(C_PTR), value :: p
Chris@10 380 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(inout) :: in
Chris@10 381 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@10 382 end subroutine fftwl_mpi_execute_dft
Chris@10 383
Chris@10 384 subroutine fftwl_mpi_execute_dft_r2c(p,in,out) bind(C, name='fftwl_mpi_execute_dft_r2c')
Chris@10 385 import
Chris@10 386 type(C_PTR), value :: p
Chris@10 387 real(C_LONG_DOUBLE), dimension(*), intent(inout) :: in
Chris@10 388 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@10 389 end subroutine fftwl_mpi_execute_dft_r2c
Chris@10 390
Chris@10 391 subroutine fftwl_mpi_execute_dft_c2r(p,in,out) bind(C, name='fftwl_mpi_execute_dft_c2r')
Chris@10 392 import
Chris@10 393 type(C_PTR), value :: p
Chris@10 394 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(inout) :: in
Chris@10 395 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@10 396 end subroutine fftwl_mpi_execute_dft_c2r
Chris@10 397
Chris@10 398 subroutine fftwl_mpi_execute_r2r(p,in,out) bind(C, name='fftwl_mpi_execute_r2r')
Chris@10 399 import
Chris@10 400 type(C_PTR), value :: p
Chris@10 401 real(C_LONG_DOUBLE), dimension(*), intent(inout) :: in
Chris@10 402 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@10 403 end subroutine fftwl_mpi_execute_r2r
Chris@10 404
Chris@10 405 end interface