annotate src/fftw-3.3.3/api/fftw3l.f03 @ 44:9894b839b0cb

Updated MSVC
author Chris Cannam
date Tue, 18 Oct 2016 15:58:42 +0100
parents 37bf6b4a2645
children
rev   line source
Chris@10 1 ! Generated automatically. DO NOT EDIT!
Chris@10 2
Chris@10 3
Chris@10 4 type, bind(C) :: fftwl_iodim
Chris@10 5 integer(C_INT) n, is, os
Chris@10 6 end type fftwl_iodim
Chris@10 7 type, bind(C) :: fftwl_iodim64
Chris@10 8 integer(C_INTPTR_T) n, is, os
Chris@10 9 end type fftwl_iodim64
Chris@10 10
Chris@10 11 interface
Chris@10 12 type(C_PTR) function fftwl_plan_dft(rank,n,in,out,sign,flags) bind(C, name='fftwl_plan_dft')
Chris@10 13 import
Chris@10 14 integer(C_INT), value :: rank
Chris@10 15 integer(C_INT), dimension(*), intent(in) :: n
Chris@10 16 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@10 17 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@10 18 integer(C_INT), value :: sign
Chris@10 19 integer(C_INT), value :: flags
Chris@10 20 end function fftwl_plan_dft
Chris@10 21
Chris@10 22 type(C_PTR) function fftwl_plan_dft_1d(n,in,out,sign,flags) bind(C, name='fftwl_plan_dft_1d')
Chris@10 23 import
Chris@10 24 integer(C_INT), value :: n
Chris@10 25 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@10 26 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@10 27 integer(C_INT), value :: sign
Chris@10 28 integer(C_INT), value :: flags
Chris@10 29 end function fftwl_plan_dft_1d
Chris@10 30
Chris@10 31 type(C_PTR) function fftwl_plan_dft_2d(n0,n1,in,out,sign,flags) bind(C, name='fftwl_plan_dft_2d')
Chris@10 32 import
Chris@10 33 integer(C_INT), value :: n0
Chris@10 34 integer(C_INT), value :: n1
Chris@10 35 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@10 36 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@10 37 integer(C_INT), value :: sign
Chris@10 38 integer(C_INT), value :: flags
Chris@10 39 end function fftwl_plan_dft_2d
Chris@10 40
Chris@10 41 type(C_PTR) function fftwl_plan_dft_3d(n0,n1,n2,in,out,sign,flags) bind(C, name='fftwl_plan_dft_3d')
Chris@10 42 import
Chris@10 43 integer(C_INT), value :: n0
Chris@10 44 integer(C_INT), value :: n1
Chris@10 45 integer(C_INT), value :: n2
Chris@10 46 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@10 47 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@10 48 integer(C_INT), value :: sign
Chris@10 49 integer(C_INT), value :: flags
Chris@10 50 end function fftwl_plan_dft_3d
Chris@10 51
Chris@10 52 type(C_PTR) function fftwl_plan_many_dft(rank,n,howmany,in,inembed,istride,idist,out,onembed,ostride,odist,sign,flags) &
Chris@10 53 bind(C, name='fftwl_plan_many_dft')
Chris@10 54 import
Chris@10 55 integer(C_INT), value :: rank
Chris@10 56 integer(C_INT), dimension(*), intent(in) :: n
Chris@10 57 integer(C_INT), value :: howmany
Chris@10 58 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@10 59 integer(C_INT), dimension(*), intent(in) :: inembed
Chris@10 60 integer(C_INT), value :: istride
Chris@10 61 integer(C_INT), value :: idist
Chris@10 62 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@10 63 integer(C_INT), dimension(*), intent(in) :: onembed
Chris@10 64 integer(C_INT), value :: ostride
Chris@10 65 integer(C_INT), value :: odist
Chris@10 66 integer(C_INT), value :: sign
Chris@10 67 integer(C_INT), value :: flags
Chris@10 68 end function fftwl_plan_many_dft
Chris@10 69
Chris@10 70 type(C_PTR) function fftwl_plan_guru_dft(rank,dims,howmany_rank,howmany_dims,in,out,sign,flags) &
Chris@10 71 bind(C, name='fftwl_plan_guru_dft')
Chris@10 72 import
Chris@10 73 integer(C_INT), value :: rank
Chris@10 74 type(fftwl_iodim), dimension(*), intent(in) :: dims
Chris@10 75 integer(C_INT), value :: howmany_rank
Chris@10 76 type(fftwl_iodim), dimension(*), intent(in) :: howmany_dims
Chris@10 77 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@10 78 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@10 79 integer(C_INT), value :: sign
Chris@10 80 integer(C_INT), value :: flags
Chris@10 81 end function fftwl_plan_guru_dft
Chris@10 82
Chris@10 83 type(C_PTR) function fftwl_plan_guru_split_dft(rank,dims,howmany_rank,howmany_dims,ri,ii,ro,io,flags) &
Chris@10 84 bind(C, name='fftwl_plan_guru_split_dft')
Chris@10 85 import
Chris@10 86 integer(C_INT), value :: rank
Chris@10 87 type(fftwl_iodim), dimension(*), intent(in) :: dims
Chris@10 88 integer(C_INT), value :: howmany_rank
Chris@10 89 type(fftwl_iodim), dimension(*), intent(in) :: howmany_dims
Chris@10 90 real(C_LONG_DOUBLE), dimension(*), intent(out) :: ri
Chris@10 91 real(C_LONG_DOUBLE), dimension(*), intent(out) :: ii
Chris@10 92 real(C_LONG_DOUBLE), dimension(*), intent(out) :: ro
Chris@10 93 real(C_LONG_DOUBLE), dimension(*), intent(out) :: io
Chris@10 94 integer(C_INT), value :: flags
Chris@10 95 end function fftwl_plan_guru_split_dft
Chris@10 96
Chris@10 97 type(C_PTR) function fftwl_plan_guru64_dft(rank,dims,howmany_rank,howmany_dims,in,out,sign,flags) &
Chris@10 98 bind(C, name='fftwl_plan_guru64_dft')
Chris@10 99 import
Chris@10 100 integer(C_INT), value :: rank
Chris@10 101 type(fftwl_iodim64), dimension(*), intent(in) :: dims
Chris@10 102 integer(C_INT), value :: howmany_rank
Chris@10 103 type(fftwl_iodim64), dimension(*), intent(in) :: howmany_dims
Chris@10 104 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@10 105 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@10 106 integer(C_INT), value :: sign
Chris@10 107 integer(C_INT), value :: flags
Chris@10 108 end function fftwl_plan_guru64_dft
Chris@10 109
Chris@10 110 type(C_PTR) function fftwl_plan_guru64_split_dft(rank,dims,howmany_rank,howmany_dims,ri,ii,ro,io,flags) &
Chris@10 111 bind(C, name='fftwl_plan_guru64_split_dft')
Chris@10 112 import
Chris@10 113 integer(C_INT), value :: rank
Chris@10 114 type(fftwl_iodim64), dimension(*), intent(in) :: dims
Chris@10 115 integer(C_INT), value :: howmany_rank
Chris@10 116 type(fftwl_iodim64), dimension(*), intent(in) :: howmany_dims
Chris@10 117 real(C_LONG_DOUBLE), dimension(*), intent(out) :: ri
Chris@10 118 real(C_LONG_DOUBLE), dimension(*), intent(out) :: ii
Chris@10 119 real(C_LONG_DOUBLE), dimension(*), intent(out) :: ro
Chris@10 120 real(C_LONG_DOUBLE), dimension(*), intent(out) :: io
Chris@10 121 integer(C_INT), value :: flags
Chris@10 122 end function fftwl_plan_guru64_split_dft
Chris@10 123
Chris@10 124 subroutine fftwl_execute_dft(p,in,out) bind(C, name='fftwl_execute_dft')
Chris@10 125 import
Chris@10 126 type(C_PTR), value :: p
Chris@10 127 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(inout) :: in
Chris@10 128 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@10 129 end subroutine fftwl_execute_dft
Chris@10 130
Chris@10 131 subroutine fftwl_execute_split_dft(p,ri,ii,ro,io) bind(C, name='fftwl_execute_split_dft')
Chris@10 132 import
Chris@10 133 type(C_PTR), value :: p
Chris@10 134 real(C_LONG_DOUBLE), dimension(*), intent(inout) :: ri
Chris@10 135 real(C_LONG_DOUBLE), dimension(*), intent(inout) :: ii
Chris@10 136 real(C_LONG_DOUBLE), dimension(*), intent(out) :: ro
Chris@10 137 real(C_LONG_DOUBLE), dimension(*), intent(out) :: io
Chris@10 138 end subroutine fftwl_execute_split_dft
Chris@10 139
Chris@10 140 type(C_PTR) function fftwl_plan_many_dft_r2c(rank,n,howmany,in,inembed,istride,idist,out,onembed,ostride,odist,flags) &
Chris@10 141 bind(C, name='fftwl_plan_many_dft_r2c')
Chris@10 142 import
Chris@10 143 integer(C_INT), value :: rank
Chris@10 144 integer(C_INT), dimension(*), intent(in) :: n
Chris@10 145 integer(C_INT), value :: howmany
Chris@10 146 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@10 147 integer(C_INT), dimension(*), intent(in) :: inembed
Chris@10 148 integer(C_INT), value :: istride
Chris@10 149 integer(C_INT), value :: idist
Chris@10 150 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@10 151 integer(C_INT), dimension(*), intent(in) :: onembed
Chris@10 152 integer(C_INT), value :: ostride
Chris@10 153 integer(C_INT), value :: odist
Chris@10 154 integer(C_INT), value :: flags
Chris@10 155 end function fftwl_plan_many_dft_r2c
Chris@10 156
Chris@10 157 type(C_PTR) function fftwl_plan_dft_r2c(rank,n,in,out,flags) bind(C, name='fftwl_plan_dft_r2c')
Chris@10 158 import
Chris@10 159 integer(C_INT), value :: rank
Chris@10 160 integer(C_INT), dimension(*), intent(in) :: n
Chris@10 161 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@10 162 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@10 163 integer(C_INT), value :: flags
Chris@10 164 end function fftwl_plan_dft_r2c
Chris@10 165
Chris@10 166 type(C_PTR) function fftwl_plan_dft_r2c_1d(n,in,out,flags) bind(C, name='fftwl_plan_dft_r2c_1d')
Chris@10 167 import
Chris@10 168 integer(C_INT), value :: n
Chris@10 169 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@10 170 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@10 171 integer(C_INT), value :: flags
Chris@10 172 end function fftwl_plan_dft_r2c_1d
Chris@10 173
Chris@10 174 type(C_PTR) function fftwl_plan_dft_r2c_2d(n0,n1,in,out,flags) bind(C, name='fftwl_plan_dft_r2c_2d')
Chris@10 175 import
Chris@10 176 integer(C_INT), value :: n0
Chris@10 177 integer(C_INT), value :: n1
Chris@10 178 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@10 179 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@10 180 integer(C_INT), value :: flags
Chris@10 181 end function fftwl_plan_dft_r2c_2d
Chris@10 182
Chris@10 183 type(C_PTR) function fftwl_plan_dft_r2c_3d(n0,n1,n2,in,out,flags) bind(C, name='fftwl_plan_dft_r2c_3d')
Chris@10 184 import
Chris@10 185 integer(C_INT), value :: n0
Chris@10 186 integer(C_INT), value :: n1
Chris@10 187 integer(C_INT), value :: n2
Chris@10 188 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@10 189 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@10 190 integer(C_INT), value :: flags
Chris@10 191 end function fftwl_plan_dft_r2c_3d
Chris@10 192
Chris@10 193 type(C_PTR) function fftwl_plan_many_dft_c2r(rank,n,howmany,in,inembed,istride,idist,out,onembed,ostride,odist,flags) &
Chris@10 194 bind(C, name='fftwl_plan_many_dft_c2r')
Chris@10 195 import
Chris@10 196 integer(C_INT), value :: rank
Chris@10 197 integer(C_INT), dimension(*), intent(in) :: n
Chris@10 198 integer(C_INT), value :: howmany
Chris@10 199 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@10 200 integer(C_INT), dimension(*), intent(in) :: inembed
Chris@10 201 integer(C_INT), value :: istride
Chris@10 202 integer(C_INT), value :: idist
Chris@10 203 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@10 204 integer(C_INT), dimension(*), intent(in) :: onembed
Chris@10 205 integer(C_INT), value :: ostride
Chris@10 206 integer(C_INT), value :: odist
Chris@10 207 integer(C_INT), value :: flags
Chris@10 208 end function fftwl_plan_many_dft_c2r
Chris@10 209
Chris@10 210 type(C_PTR) function fftwl_plan_dft_c2r(rank,n,in,out,flags) bind(C, name='fftwl_plan_dft_c2r')
Chris@10 211 import
Chris@10 212 integer(C_INT), value :: rank
Chris@10 213 integer(C_INT), dimension(*), intent(in) :: n
Chris@10 214 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@10 215 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@10 216 integer(C_INT), value :: flags
Chris@10 217 end function fftwl_plan_dft_c2r
Chris@10 218
Chris@10 219 type(C_PTR) function fftwl_plan_dft_c2r_1d(n,in,out,flags) bind(C, name='fftwl_plan_dft_c2r_1d')
Chris@10 220 import
Chris@10 221 integer(C_INT), value :: n
Chris@10 222 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@10 223 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@10 224 integer(C_INT), value :: flags
Chris@10 225 end function fftwl_plan_dft_c2r_1d
Chris@10 226
Chris@10 227 type(C_PTR) function fftwl_plan_dft_c2r_2d(n0,n1,in,out,flags) bind(C, name='fftwl_plan_dft_c2r_2d')
Chris@10 228 import
Chris@10 229 integer(C_INT), value :: n0
Chris@10 230 integer(C_INT), value :: n1
Chris@10 231 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@10 232 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@10 233 integer(C_INT), value :: flags
Chris@10 234 end function fftwl_plan_dft_c2r_2d
Chris@10 235
Chris@10 236 type(C_PTR) function fftwl_plan_dft_c2r_3d(n0,n1,n2,in,out,flags) bind(C, name='fftwl_plan_dft_c2r_3d')
Chris@10 237 import
Chris@10 238 integer(C_INT), value :: n0
Chris@10 239 integer(C_INT), value :: n1
Chris@10 240 integer(C_INT), value :: n2
Chris@10 241 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@10 242 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@10 243 integer(C_INT), value :: flags
Chris@10 244 end function fftwl_plan_dft_c2r_3d
Chris@10 245
Chris@10 246 type(C_PTR) function fftwl_plan_guru_dft_r2c(rank,dims,howmany_rank,howmany_dims,in,out,flags) &
Chris@10 247 bind(C, name='fftwl_plan_guru_dft_r2c')
Chris@10 248 import
Chris@10 249 integer(C_INT), value :: rank
Chris@10 250 type(fftwl_iodim), dimension(*), intent(in) :: dims
Chris@10 251 integer(C_INT), value :: howmany_rank
Chris@10 252 type(fftwl_iodim), dimension(*), intent(in) :: howmany_dims
Chris@10 253 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@10 254 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@10 255 integer(C_INT), value :: flags
Chris@10 256 end function fftwl_plan_guru_dft_r2c
Chris@10 257
Chris@10 258 type(C_PTR) function fftwl_plan_guru_dft_c2r(rank,dims,howmany_rank,howmany_dims,in,out,flags) &
Chris@10 259 bind(C, name='fftwl_plan_guru_dft_c2r')
Chris@10 260 import
Chris@10 261 integer(C_INT), value :: rank
Chris@10 262 type(fftwl_iodim), dimension(*), intent(in) :: dims
Chris@10 263 integer(C_INT), value :: howmany_rank
Chris@10 264 type(fftwl_iodim), dimension(*), intent(in) :: howmany_dims
Chris@10 265 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@10 266 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@10 267 integer(C_INT), value :: flags
Chris@10 268 end function fftwl_plan_guru_dft_c2r
Chris@10 269
Chris@10 270 type(C_PTR) function fftwl_plan_guru_split_dft_r2c(rank,dims,howmany_rank,howmany_dims,in,ro,io,flags) &
Chris@10 271 bind(C, name='fftwl_plan_guru_split_dft_r2c')
Chris@10 272 import
Chris@10 273 integer(C_INT), value :: rank
Chris@10 274 type(fftwl_iodim), dimension(*), intent(in) :: dims
Chris@10 275 integer(C_INT), value :: howmany_rank
Chris@10 276 type(fftwl_iodim), dimension(*), intent(in) :: howmany_dims
Chris@10 277 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@10 278 real(C_LONG_DOUBLE), dimension(*), intent(out) :: ro
Chris@10 279 real(C_LONG_DOUBLE), dimension(*), intent(out) :: io
Chris@10 280 integer(C_INT), value :: flags
Chris@10 281 end function fftwl_plan_guru_split_dft_r2c
Chris@10 282
Chris@10 283 type(C_PTR) function fftwl_plan_guru_split_dft_c2r(rank,dims,howmany_rank,howmany_dims,ri,ii,out,flags) &
Chris@10 284 bind(C, name='fftwl_plan_guru_split_dft_c2r')
Chris@10 285 import
Chris@10 286 integer(C_INT), value :: rank
Chris@10 287 type(fftwl_iodim), dimension(*), intent(in) :: dims
Chris@10 288 integer(C_INT), value :: howmany_rank
Chris@10 289 type(fftwl_iodim), dimension(*), intent(in) :: howmany_dims
Chris@10 290 real(C_LONG_DOUBLE), dimension(*), intent(out) :: ri
Chris@10 291 real(C_LONG_DOUBLE), dimension(*), intent(out) :: ii
Chris@10 292 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@10 293 integer(C_INT), value :: flags
Chris@10 294 end function fftwl_plan_guru_split_dft_c2r
Chris@10 295
Chris@10 296 type(C_PTR) function fftwl_plan_guru64_dft_r2c(rank,dims,howmany_rank,howmany_dims,in,out,flags) &
Chris@10 297 bind(C, name='fftwl_plan_guru64_dft_r2c')
Chris@10 298 import
Chris@10 299 integer(C_INT), value :: rank
Chris@10 300 type(fftwl_iodim64), dimension(*), intent(in) :: dims
Chris@10 301 integer(C_INT), value :: howmany_rank
Chris@10 302 type(fftwl_iodim64), dimension(*), intent(in) :: howmany_dims
Chris@10 303 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@10 304 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@10 305 integer(C_INT), value :: flags
Chris@10 306 end function fftwl_plan_guru64_dft_r2c
Chris@10 307
Chris@10 308 type(C_PTR) function fftwl_plan_guru64_dft_c2r(rank,dims,howmany_rank,howmany_dims,in,out,flags) &
Chris@10 309 bind(C, name='fftwl_plan_guru64_dft_c2r')
Chris@10 310 import
Chris@10 311 integer(C_INT), value :: rank
Chris@10 312 type(fftwl_iodim64), dimension(*), intent(in) :: dims
Chris@10 313 integer(C_INT), value :: howmany_rank
Chris@10 314 type(fftwl_iodim64), dimension(*), intent(in) :: howmany_dims
Chris@10 315 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@10 316 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@10 317 integer(C_INT), value :: flags
Chris@10 318 end function fftwl_plan_guru64_dft_c2r
Chris@10 319
Chris@10 320 type(C_PTR) function fftwl_plan_guru64_split_dft_r2c(rank,dims,howmany_rank,howmany_dims,in,ro,io,flags) &
Chris@10 321 bind(C, name='fftwl_plan_guru64_split_dft_r2c')
Chris@10 322 import
Chris@10 323 integer(C_INT), value :: rank
Chris@10 324 type(fftwl_iodim64), dimension(*), intent(in) :: dims
Chris@10 325 integer(C_INT), value :: howmany_rank
Chris@10 326 type(fftwl_iodim64), dimension(*), intent(in) :: howmany_dims
Chris@10 327 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@10 328 real(C_LONG_DOUBLE), dimension(*), intent(out) :: ro
Chris@10 329 real(C_LONG_DOUBLE), dimension(*), intent(out) :: io
Chris@10 330 integer(C_INT), value :: flags
Chris@10 331 end function fftwl_plan_guru64_split_dft_r2c
Chris@10 332
Chris@10 333 type(C_PTR) function fftwl_plan_guru64_split_dft_c2r(rank,dims,howmany_rank,howmany_dims,ri,ii,out,flags) &
Chris@10 334 bind(C, name='fftwl_plan_guru64_split_dft_c2r')
Chris@10 335 import
Chris@10 336 integer(C_INT), value :: rank
Chris@10 337 type(fftwl_iodim64), dimension(*), intent(in) :: dims
Chris@10 338 integer(C_INT), value :: howmany_rank
Chris@10 339 type(fftwl_iodim64), dimension(*), intent(in) :: howmany_dims
Chris@10 340 real(C_LONG_DOUBLE), dimension(*), intent(out) :: ri
Chris@10 341 real(C_LONG_DOUBLE), dimension(*), intent(out) :: ii
Chris@10 342 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@10 343 integer(C_INT), value :: flags
Chris@10 344 end function fftwl_plan_guru64_split_dft_c2r
Chris@10 345
Chris@10 346 subroutine fftwl_execute_dft_r2c(p,in,out) bind(C, name='fftwl_execute_dft_r2c')
Chris@10 347 import
Chris@10 348 type(C_PTR), value :: p
Chris@10 349 real(C_LONG_DOUBLE), dimension(*), intent(inout) :: in
Chris@10 350 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@10 351 end subroutine fftwl_execute_dft_r2c
Chris@10 352
Chris@10 353 subroutine fftwl_execute_dft_c2r(p,in,out) bind(C, name='fftwl_execute_dft_c2r')
Chris@10 354 import
Chris@10 355 type(C_PTR), value :: p
Chris@10 356 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(inout) :: in
Chris@10 357 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@10 358 end subroutine fftwl_execute_dft_c2r
Chris@10 359
Chris@10 360 subroutine fftwl_execute_split_dft_r2c(p,in,ro,io) bind(C, name='fftwl_execute_split_dft_r2c')
Chris@10 361 import
Chris@10 362 type(C_PTR), value :: p
Chris@10 363 real(C_LONG_DOUBLE), dimension(*), intent(inout) :: in
Chris@10 364 real(C_LONG_DOUBLE), dimension(*), intent(out) :: ro
Chris@10 365 real(C_LONG_DOUBLE), dimension(*), intent(out) :: io
Chris@10 366 end subroutine fftwl_execute_split_dft_r2c
Chris@10 367
Chris@10 368 subroutine fftwl_execute_split_dft_c2r(p,ri,ii,out) bind(C, name='fftwl_execute_split_dft_c2r')
Chris@10 369 import
Chris@10 370 type(C_PTR), value :: p
Chris@10 371 real(C_LONG_DOUBLE), dimension(*), intent(inout) :: ri
Chris@10 372 real(C_LONG_DOUBLE), dimension(*), intent(inout) :: ii
Chris@10 373 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@10 374 end subroutine fftwl_execute_split_dft_c2r
Chris@10 375
Chris@10 376 type(C_PTR) function fftwl_plan_many_r2r(rank,n,howmany,in,inembed,istride,idist,out,onembed,ostride,odist,kind,flags) &
Chris@10 377 bind(C, name='fftwl_plan_many_r2r')
Chris@10 378 import
Chris@10 379 integer(C_INT), value :: rank
Chris@10 380 integer(C_INT), dimension(*), intent(in) :: n
Chris@10 381 integer(C_INT), value :: howmany
Chris@10 382 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@10 383 integer(C_INT), dimension(*), intent(in) :: inembed
Chris@10 384 integer(C_INT), value :: istride
Chris@10 385 integer(C_INT), value :: idist
Chris@10 386 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@10 387 integer(C_INT), dimension(*), intent(in) :: onembed
Chris@10 388 integer(C_INT), value :: ostride
Chris@10 389 integer(C_INT), value :: odist
Chris@10 390 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind
Chris@10 391 integer(C_INT), value :: flags
Chris@10 392 end function fftwl_plan_many_r2r
Chris@10 393
Chris@10 394 type(C_PTR) function fftwl_plan_r2r(rank,n,in,out,kind,flags) bind(C, name='fftwl_plan_r2r')
Chris@10 395 import
Chris@10 396 integer(C_INT), value :: rank
Chris@10 397 integer(C_INT), dimension(*), intent(in) :: n
Chris@10 398 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@10 399 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@10 400 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind
Chris@10 401 integer(C_INT), value :: flags
Chris@10 402 end function fftwl_plan_r2r
Chris@10 403
Chris@10 404 type(C_PTR) function fftwl_plan_r2r_1d(n,in,out,kind,flags) bind(C, name='fftwl_plan_r2r_1d')
Chris@10 405 import
Chris@10 406 integer(C_INT), value :: n
Chris@10 407 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@10 408 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@10 409 integer(C_FFTW_R2R_KIND), value :: kind
Chris@10 410 integer(C_INT), value :: flags
Chris@10 411 end function fftwl_plan_r2r_1d
Chris@10 412
Chris@10 413 type(C_PTR) function fftwl_plan_r2r_2d(n0,n1,in,out,kind0,kind1,flags) bind(C, name='fftwl_plan_r2r_2d')
Chris@10 414 import
Chris@10 415 integer(C_INT), value :: n0
Chris@10 416 integer(C_INT), value :: n1
Chris@10 417 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@10 418 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@10 419 integer(C_FFTW_R2R_KIND), value :: kind0
Chris@10 420 integer(C_FFTW_R2R_KIND), value :: kind1
Chris@10 421 integer(C_INT), value :: flags
Chris@10 422 end function fftwl_plan_r2r_2d
Chris@10 423
Chris@10 424 type(C_PTR) function fftwl_plan_r2r_3d(n0,n1,n2,in,out,kind0,kind1,kind2,flags) bind(C, name='fftwl_plan_r2r_3d')
Chris@10 425 import
Chris@10 426 integer(C_INT), value :: n0
Chris@10 427 integer(C_INT), value :: n1
Chris@10 428 integer(C_INT), value :: n2
Chris@10 429 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@10 430 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@10 431 integer(C_FFTW_R2R_KIND), value :: kind0
Chris@10 432 integer(C_FFTW_R2R_KIND), value :: kind1
Chris@10 433 integer(C_FFTW_R2R_KIND), value :: kind2
Chris@10 434 integer(C_INT), value :: flags
Chris@10 435 end function fftwl_plan_r2r_3d
Chris@10 436
Chris@10 437 type(C_PTR) function fftwl_plan_guru_r2r(rank,dims,howmany_rank,howmany_dims,in,out,kind,flags) &
Chris@10 438 bind(C, name='fftwl_plan_guru_r2r')
Chris@10 439 import
Chris@10 440 integer(C_INT), value :: rank
Chris@10 441 type(fftwl_iodim), dimension(*), intent(in) :: dims
Chris@10 442 integer(C_INT), value :: howmany_rank
Chris@10 443 type(fftwl_iodim), dimension(*), intent(in) :: howmany_dims
Chris@10 444 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@10 445 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@10 446 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind
Chris@10 447 integer(C_INT), value :: flags
Chris@10 448 end function fftwl_plan_guru_r2r
Chris@10 449
Chris@10 450 type(C_PTR) function fftwl_plan_guru64_r2r(rank,dims,howmany_rank,howmany_dims,in,out,kind,flags) &
Chris@10 451 bind(C, name='fftwl_plan_guru64_r2r')
Chris@10 452 import
Chris@10 453 integer(C_INT), value :: rank
Chris@10 454 type(fftwl_iodim64), dimension(*), intent(in) :: dims
Chris@10 455 integer(C_INT), value :: howmany_rank
Chris@10 456 type(fftwl_iodim64), dimension(*), intent(in) :: howmany_dims
Chris@10 457 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@10 458 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@10 459 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind
Chris@10 460 integer(C_INT), value :: flags
Chris@10 461 end function fftwl_plan_guru64_r2r
Chris@10 462
Chris@10 463 subroutine fftwl_execute_r2r(p,in,out) bind(C, name='fftwl_execute_r2r')
Chris@10 464 import
Chris@10 465 type(C_PTR), value :: p
Chris@10 466 real(C_LONG_DOUBLE), dimension(*), intent(inout) :: in
Chris@10 467 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@10 468 end subroutine fftwl_execute_r2r
Chris@10 469
Chris@10 470 subroutine fftwl_destroy_plan(p) bind(C, name='fftwl_destroy_plan')
Chris@10 471 import
Chris@10 472 type(C_PTR), value :: p
Chris@10 473 end subroutine fftwl_destroy_plan
Chris@10 474
Chris@10 475 subroutine fftwl_forget_wisdom() bind(C, name='fftwl_forget_wisdom')
Chris@10 476 import
Chris@10 477 end subroutine fftwl_forget_wisdom
Chris@10 478
Chris@10 479 subroutine fftwl_cleanup() bind(C, name='fftwl_cleanup')
Chris@10 480 import
Chris@10 481 end subroutine fftwl_cleanup
Chris@10 482
Chris@10 483 subroutine fftwl_set_timelimit(t) bind(C, name='fftwl_set_timelimit')
Chris@10 484 import
Chris@10 485 real(C_DOUBLE), value :: t
Chris@10 486 end subroutine fftwl_set_timelimit
Chris@10 487
Chris@10 488 subroutine fftwl_plan_with_nthreads(nthreads) bind(C, name='fftwl_plan_with_nthreads')
Chris@10 489 import
Chris@10 490 integer(C_INT), value :: nthreads
Chris@10 491 end subroutine fftwl_plan_with_nthreads
Chris@10 492
Chris@10 493 integer(C_INT) function fftwl_init_threads() bind(C, name='fftwl_init_threads')
Chris@10 494 import
Chris@10 495 end function fftwl_init_threads
Chris@10 496
Chris@10 497 subroutine fftwl_cleanup_threads() bind(C, name='fftwl_cleanup_threads')
Chris@10 498 import
Chris@10 499 end subroutine fftwl_cleanup_threads
Chris@10 500
Chris@10 501 integer(C_INT) function fftwl_export_wisdom_to_filename(filename) bind(C, name='fftwl_export_wisdom_to_filename')
Chris@10 502 import
Chris@10 503 character(C_CHAR), dimension(*), intent(in) :: filename
Chris@10 504 end function fftwl_export_wisdom_to_filename
Chris@10 505
Chris@10 506 subroutine fftwl_export_wisdom_to_file(output_file) bind(C, name='fftwl_export_wisdom_to_file')
Chris@10 507 import
Chris@10 508 type(C_PTR), value :: output_file
Chris@10 509 end subroutine fftwl_export_wisdom_to_file
Chris@10 510
Chris@10 511 type(C_PTR) function fftwl_export_wisdom_to_string() bind(C, name='fftwl_export_wisdom_to_string')
Chris@10 512 import
Chris@10 513 end function fftwl_export_wisdom_to_string
Chris@10 514
Chris@10 515 subroutine fftwl_export_wisdom(write_char,data) bind(C, name='fftwl_export_wisdom')
Chris@10 516 import
Chris@10 517 type(C_FUNPTR), value :: write_char
Chris@10 518 type(C_PTR), value :: data
Chris@10 519 end subroutine fftwl_export_wisdom
Chris@10 520
Chris@10 521 integer(C_INT) function fftwl_import_system_wisdom() bind(C, name='fftwl_import_system_wisdom')
Chris@10 522 import
Chris@10 523 end function fftwl_import_system_wisdom
Chris@10 524
Chris@10 525 integer(C_INT) function fftwl_import_wisdom_from_filename(filename) bind(C, name='fftwl_import_wisdom_from_filename')
Chris@10 526 import
Chris@10 527 character(C_CHAR), dimension(*), intent(in) :: filename
Chris@10 528 end function fftwl_import_wisdom_from_filename
Chris@10 529
Chris@10 530 integer(C_INT) function fftwl_import_wisdom_from_file(input_file) bind(C, name='fftwl_import_wisdom_from_file')
Chris@10 531 import
Chris@10 532 type(C_PTR), value :: input_file
Chris@10 533 end function fftwl_import_wisdom_from_file
Chris@10 534
Chris@10 535 integer(C_INT) function fftwl_import_wisdom_from_string(input_string) bind(C, name='fftwl_import_wisdom_from_string')
Chris@10 536 import
Chris@10 537 character(C_CHAR), dimension(*), intent(in) :: input_string
Chris@10 538 end function fftwl_import_wisdom_from_string
Chris@10 539
Chris@10 540 integer(C_INT) function fftwl_import_wisdom(read_char,data) bind(C, name='fftwl_import_wisdom')
Chris@10 541 import
Chris@10 542 type(C_FUNPTR), value :: read_char
Chris@10 543 type(C_PTR), value :: data
Chris@10 544 end function fftwl_import_wisdom
Chris@10 545
Chris@10 546 subroutine fftwl_fprint_plan(p,output_file) bind(C, name='fftwl_fprint_plan')
Chris@10 547 import
Chris@10 548 type(C_PTR), value :: p
Chris@10 549 type(C_PTR), value :: output_file
Chris@10 550 end subroutine fftwl_fprint_plan
Chris@10 551
Chris@10 552 subroutine fftwl_print_plan(p) bind(C, name='fftwl_print_plan')
Chris@10 553 import
Chris@10 554 type(C_PTR), value :: p
Chris@10 555 end subroutine fftwl_print_plan
Chris@10 556
Chris@10 557 type(C_PTR) function fftwl_malloc(n) bind(C, name='fftwl_malloc')
Chris@10 558 import
Chris@10 559 integer(C_SIZE_T), value :: n
Chris@10 560 end function fftwl_malloc
Chris@10 561
Chris@10 562 type(C_PTR) function fftwl_alloc_real(n) bind(C, name='fftwl_alloc_real')
Chris@10 563 import
Chris@10 564 integer(C_SIZE_T), value :: n
Chris@10 565 end function fftwl_alloc_real
Chris@10 566
Chris@10 567 type(C_PTR) function fftwl_alloc_complex(n) bind(C, name='fftwl_alloc_complex')
Chris@10 568 import
Chris@10 569 integer(C_SIZE_T), value :: n
Chris@10 570 end function fftwl_alloc_complex
Chris@10 571
Chris@10 572 subroutine fftwl_free(p) bind(C, name='fftwl_free')
Chris@10 573 import
Chris@10 574 type(C_PTR), value :: p
Chris@10 575 end subroutine fftwl_free
Chris@10 576
Chris@10 577 subroutine fftwl_flops(p,add,mul,fmas) bind(C, name='fftwl_flops')
Chris@10 578 import
Chris@10 579 type(C_PTR), value :: p
Chris@10 580 real(C_DOUBLE), intent(out) :: add
Chris@10 581 real(C_DOUBLE), intent(out) :: mul
Chris@10 582 real(C_DOUBLE), intent(out) :: fmas
Chris@10 583 end subroutine fftwl_flops
Chris@10 584
Chris@10 585 real(C_DOUBLE) function fftwl_estimate_cost(p) bind(C, name='fftwl_estimate_cost')
Chris@10 586 import
Chris@10 587 type(C_PTR), value :: p
Chris@10 588 end function fftwl_estimate_cost
Chris@10 589
Chris@10 590 real(C_DOUBLE) function fftwl_cost(p) bind(C, name='fftwl_cost')
Chris@10 591 import
Chris@10 592 type(C_PTR), value :: p
Chris@10 593 end function fftwl_cost
Chris@10 594
Chris@10 595 end interface