annotate src/fftw-3.3.8/mpi/fftw3l-mpi.f03.in @ 169:223a55898ab9 tip default

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