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