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