annotate src/fftw-3.3.5/api/fftw3.f03.in @ 47:d93140aac40b

Current Capnp libs and headers from git
author Chris Cannam
date Thu, 20 Oct 2016 18:15:38 +0100
parents 2cd0e3b3e1fd
children
rev   line source
Chris@42 1 ! Generated automatically. DO NOT EDIT!
Chris@42 2
Chris@42 3 integer(C_INT), parameter :: FFTW_R2HC = 0
Chris@42 4 integer(C_INT), parameter :: FFTW_HC2R = 1
Chris@42 5 integer(C_INT), parameter :: FFTW_DHT = 2
Chris@42 6 integer(C_INT), parameter :: FFTW_REDFT00 = 3
Chris@42 7 integer(C_INT), parameter :: FFTW_REDFT01 = 4
Chris@42 8 integer(C_INT), parameter :: FFTW_REDFT10 = 5
Chris@42 9 integer(C_INT), parameter :: FFTW_REDFT11 = 6
Chris@42 10 integer(C_INT), parameter :: FFTW_RODFT00 = 7
Chris@42 11 integer(C_INT), parameter :: FFTW_RODFT01 = 8
Chris@42 12 integer(C_INT), parameter :: FFTW_RODFT10 = 9
Chris@42 13 integer(C_INT), parameter :: FFTW_RODFT11 = 10
Chris@42 14 integer(C_INT), parameter :: FFTW_FORWARD = -1
Chris@42 15 integer(C_INT), parameter :: FFTW_BACKWARD = +1
Chris@42 16 integer(C_INT), parameter :: FFTW_MEASURE = 0
Chris@42 17 integer(C_INT), parameter :: FFTW_DESTROY_INPUT = 1
Chris@42 18 integer(C_INT), parameter :: FFTW_UNALIGNED = 2
Chris@42 19 integer(C_INT), parameter :: FFTW_CONSERVE_MEMORY = 4
Chris@42 20 integer(C_INT), parameter :: FFTW_EXHAUSTIVE = 8
Chris@42 21 integer(C_INT), parameter :: FFTW_PRESERVE_INPUT = 16
Chris@42 22 integer(C_INT), parameter :: FFTW_PATIENT = 32
Chris@42 23 integer(C_INT), parameter :: FFTW_ESTIMATE = 64
Chris@42 24 integer(C_INT), parameter :: FFTW_WISDOM_ONLY = 2097152
Chris@42 25 integer(C_INT), parameter :: FFTW_ESTIMATE_PATIENT = 128
Chris@42 26 integer(C_INT), parameter :: FFTW_BELIEVE_PCOST = 256
Chris@42 27 integer(C_INT), parameter :: FFTW_NO_DFT_R2HC = 512
Chris@42 28 integer(C_INT), parameter :: FFTW_NO_NONTHREADED = 1024
Chris@42 29 integer(C_INT), parameter :: FFTW_NO_BUFFERING = 2048
Chris@42 30 integer(C_INT), parameter :: FFTW_NO_INDIRECT_OP = 4096
Chris@42 31 integer(C_INT), parameter :: FFTW_ALLOW_LARGE_GENERIC = 8192
Chris@42 32 integer(C_INT), parameter :: FFTW_NO_RANK_SPLITS = 16384
Chris@42 33 integer(C_INT), parameter :: FFTW_NO_VRANK_SPLITS = 32768
Chris@42 34 integer(C_INT), parameter :: FFTW_NO_VRECURSE = 65536
Chris@42 35 integer(C_INT), parameter :: FFTW_NO_SIMD = 131072
Chris@42 36 integer(C_INT), parameter :: FFTW_NO_SLOW = 262144
Chris@42 37 integer(C_INT), parameter :: FFTW_NO_FIXED_RADIX_LARGE_N = 524288
Chris@42 38 integer(C_INT), parameter :: FFTW_ALLOW_PRUNING = 1048576
Chris@42 39
Chris@42 40 type, bind(C) :: fftw_iodim
Chris@42 41 integer(C_INT) n, is, os
Chris@42 42 end type fftw_iodim
Chris@42 43 type, bind(C) :: fftw_iodim64
Chris@42 44 integer(C_INTPTR_T) n, is, os
Chris@42 45 end type fftw_iodim64
Chris@42 46
Chris@42 47 interface
Chris@42 48 type(C_PTR) function fftw_plan_dft(rank,n,in,out,sign,flags) bind(C, name='fftw_plan_dft')
Chris@42 49 import
Chris@42 50 integer(C_INT), value :: rank
Chris@42 51 integer(C_INT), dimension(*), intent(in) :: n
Chris@42 52 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@42 53 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 54 integer(C_INT), value :: sign
Chris@42 55 integer(C_INT), value :: flags
Chris@42 56 end function fftw_plan_dft
Chris@42 57
Chris@42 58 type(C_PTR) function fftw_plan_dft_1d(n,in,out,sign,flags) bind(C, name='fftw_plan_dft_1d')
Chris@42 59 import
Chris@42 60 integer(C_INT), value :: n
Chris@42 61 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@42 62 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 63 integer(C_INT), value :: sign
Chris@42 64 integer(C_INT), value :: flags
Chris@42 65 end function fftw_plan_dft_1d
Chris@42 66
Chris@42 67 type(C_PTR) function fftw_plan_dft_2d(n0,n1,in,out,sign,flags) bind(C, name='fftw_plan_dft_2d')
Chris@42 68 import
Chris@42 69 integer(C_INT), value :: n0
Chris@42 70 integer(C_INT), value :: n1
Chris@42 71 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@42 72 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 73 integer(C_INT), value :: sign
Chris@42 74 integer(C_INT), value :: flags
Chris@42 75 end function fftw_plan_dft_2d
Chris@42 76
Chris@42 77 type(C_PTR) function fftw_plan_dft_3d(n0,n1,n2,in,out,sign,flags) bind(C, name='fftw_plan_dft_3d')
Chris@42 78 import
Chris@42 79 integer(C_INT), value :: n0
Chris@42 80 integer(C_INT), value :: n1
Chris@42 81 integer(C_INT), value :: n2
Chris@42 82 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@42 83 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 84 integer(C_INT), value :: sign
Chris@42 85 integer(C_INT), value :: flags
Chris@42 86 end function fftw_plan_dft_3d
Chris@42 87
Chris@42 88 type(C_PTR) function fftw_plan_many_dft(rank,n,howmany,in,inembed,istride,idist,out,onembed,ostride,odist,sign,flags) &
Chris@42 89 bind(C, name='fftw_plan_many_dft')
Chris@42 90 import
Chris@42 91 integer(C_INT), value :: rank
Chris@42 92 integer(C_INT), dimension(*), intent(in) :: n
Chris@42 93 integer(C_INT), value :: howmany
Chris@42 94 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@42 95 integer(C_INT), dimension(*), intent(in) :: inembed
Chris@42 96 integer(C_INT), value :: istride
Chris@42 97 integer(C_INT), value :: idist
Chris@42 98 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 99 integer(C_INT), dimension(*), intent(in) :: onembed
Chris@42 100 integer(C_INT), value :: ostride
Chris@42 101 integer(C_INT), value :: odist
Chris@42 102 integer(C_INT), value :: sign
Chris@42 103 integer(C_INT), value :: flags
Chris@42 104 end function fftw_plan_many_dft
Chris@42 105
Chris@42 106 type(C_PTR) function fftw_plan_guru_dft(rank,dims,howmany_rank,howmany_dims,in,out,sign,flags) &
Chris@42 107 bind(C, name='fftw_plan_guru_dft')
Chris@42 108 import
Chris@42 109 integer(C_INT), value :: rank
Chris@42 110 type(fftw_iodim), dimension(*), intent(in) :: dims
Chris@42 111 integer(C_INT), value :: howmany_rank
Chris@42 112 type(fftw_iodim), dimension(*), intent(in) :: howmany_dims
Chris@42 113 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@42 114 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 115 integer(C_INT), value :: sign
Chris@42 116 integer(C_INT), value :: flags
Chris@42 117 end function fftw_plan_guru_dft
Chris@42 118
Chris@42 119 type(C_PTR) function fftw_plan_guru_split_dft(rank,dims,howmany_rank,howmany_dims,ri,ii,ro,io,flags) &
Chris@42 120 bind(C, name='fftw_plan_guru_split_dft')
Chris@42 121 import
Chris@42 122 integer(C_INT), value :: rank
Chris@42 123 type(fftw_iodim), dimension(*), intent(in) :: dims
Chris@42 124 integer(C_INT), value :: howmany_rank
Chris@42 125 type(fftw_iodim), dimension(*), intent(in) :: howmany_dims
Chris@42 126 real(C_DOUBLE), dimension(*), intent(out) :: ri
Chris@42 127 real(C_DOUBLE), dimension(*), intent(out) :: ii
Chris@42 128 real(C_DOUBLE), dimension(*), intent(out) :: ro
Chris@42 129 real(C_DOUBLE), dimension(*), intent(out) :: io
Chris@42 130 integer(C_INT), value :: flags
Chris@42 131 end function fftw_plan_guru_split_dft
Chris@42 132
Chris@42 133 type(C_PTR) function fftw_plan_guru64_dft(rank,dims,howmany_rank,howmany_dims,in,out,sign,flags) &
Chris@42 134 bind(C, name='fftw_plan_guru64_dft')
Chris@42 135 import
Chris@42 136 integer(C_INT), value :: rank
Chris@42 137 type(fftw_iodim64), dimension(*), intent(in) :: dims
Chris@42 138 integer(C_INT), value :: howmany_rank
Chris@42 139 type(fftw_iodim64), dimension(*), intent(in) :: howmany_dims
Chris@42 140 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@42 141 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 142 integer(C_INT), value :: sign
Chris@42 143 integer(C_INT), value :: flags
Chris@42 144 end function fftw_plan_guru64_dft
Chris@42 145
Chris@42 146 type(C_PTR) function fftw_plan_guru64_split_dft(rank,dims,howmany_rank,howmany_dims,ri,ii,ro,io,flags) &
Chris@42 147 bind(C, name='fftw_plan_guru64_split_dft')
Chris@42 148 import
Chris@42 149 integer(C_INT), value :: rank
Chris@42 150 type(fftw_iodim64), dimension(*), intent(in) :: dims
Chris@42 151 integer(C_INT), value :: howmany_rank
Chris@42 152 type(fftw_iodim64), dimension(*), intent(in) :: howmany_dims
Chris@42 153 real(C_DOUBLE), dimension(*), intent(out) :: ri
Chris@42 154 real(C_DOUBLE), dimension(*), intent(out) :: ii
Chris@42 155 real(C_DOUBLE), dimension(*), intent(out) :: ro
Chris@42 156 real(C_DOUBLE), dimension(*), intent(out) :: io
Chris@42 157 integer(C_INT), value :: flags
Chris@42 158 end function fftw_plan_guru64_split_dft
Chris@42 159
Chris@42 160 subroutine fftw_execute_dft(p,in,out) bind(C, name='fftw_execute_dft')
Chris@42 161 import
Chris@42 162 type(C_PTR), value :: p
Chris@42 163 complex(C_DOUBLE_COMPLEX), dimension(*), intent(inout) :: in
Chris@42 164 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 165 end subroutine fftw_execute_dft
Chris@42 166
Chris@42 167 subroutine fftw_execute_split_dft(p,ri,ii,ro,io) bind(C, name='fftw_execute_split_dft')
Chris@42 168 import
Chris@42 169 type(C_PTR), value :: p
Chris@42 170 real(C_DOUBLE), dimension(*), intent(inout) :: ri
Chris@42 171 real(C_DOUBLE), dimension(*), intent(inout) :: ii
Chris@42 172 real(C_DOUBLE), dimension(*), intent(out) :: ro
Chris@42 173 real(C_DOUBLE), dimension(*), intent(out) :: io
Chris@42 174 end subroutine fftw_execute_split_dft
Chris@42 175
Chris@42 176 type(C_PTR) function fftw_plan_many_dft_r2c(rank,n,howmany,in,inembed,istride,idist,out,onembed,ostride,odist,flags) &
Chris@42 177 bind(C, name='fftw_plan_many_dft_r2c')
Chris@42 178 import
Chris@42 179 integer(C_INT), value :: rank
Chris@42 180 integer(C_INT), dimension(*), intent(in) :: n
Chris@42 181 integer(C_INT), value :: howmany
Chris@42 182 real(C_DOUBLE), dimension(*), intent(out) :: in
Chris@42 183 integer(C_INT), dimension(*), intent(in) :: inembed
Chris@42 184 integer(C_INT), value :: istride
Chris@42 185 integer(C_INT), value :: idist
Chris@42 186 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 187 integer(C_INT), dimension(*), intent(in) :: onembed
Chris@42 188 integer(C_INT), value :: ostride
Chris@42 189 integer(C_INT), value :: odist
Chris@42 190 integer(C_INT), value :: flags
Chris@42 191 end function fftw_plan_many_dft_r2c
Chris@42 192
Chris@42 193 type(C_PTR) function fftw_plan_dft_r2c(rank,n,in,out,flags) bind(C, name='fftw_plan_dft_r2c')
Chris@42 194 import
Chris@42 195 integer(C_INT), value :: rank
Chris@42 196 integer(C_INT), dimension(*), intent(in) :: n
Chris@42 197 real(C_DOUBLE), dimension(*), intent(out) :: in
Chris@42 198 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 199 integer(C_INT), value :: flags
Chris@42 200 end function fftw_plan_dft_r2c
Chris@42 201
Chris@42 202 type(C_PTR) function fftw_plan_dft_r2c_1d(n,in,out,flags) bind(C, name='fftw_plan_dft_r2c_1d')
Chris@42 203 import
Chris@42 204 integer(C_INT), value :: n
Chris@42 205 real(C_DOUBLE), dimension(*), intent(out) :: in
Chris@42 206 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 207 integer(C_INT), value :: flags
Chris@42 208 end function fftw_plan_dft_r2c_1d
Chris@42 209
Chris@42 210 type(C_PTR) function fftw_plan_dft_r2c_2d(n0,n1,in,out,flags) bind(C, name='fftw_plan_dft_r2c_2d')
Chris@42 211 import
Chris@42 212 integer(C_INT), value :: n0
Chris@42 213 integer(C_INT), value :: n1
Chris@42 214 real(C_DOUBLE), dimension(*), intent(out) :: in
Chris@42 215 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 216 integer(C_INT), value :: flags
Chris@42 217 end function fftw_plan_dft_r2c_2d
Chris@42 218
Chris@42 219 type(C_PTR) function fftw_plan_dft_r2c_3d(n0,n1,n2,in,out,flags) bind(C, name='fftw_plan_dft_r2c_3d')
Chris@42 220 import
Chris@42 221 integer(C_INT), value :: n0
Chris@42 222 integer(C_INT), value :: n1
Chris@42 223 integer(C_INT), value :: n2
Chris@42 224 real(C_DOUBLE), dimension(*), intent(out) :: in
Chris@42 225 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 226 integer(C_INT), value :: flags
Chris@42 227 end function fftw_plan_dft_r2c_3d
Chris@42 228
Chris@42 229 type(C_PTR) function fftw_plan_many_dft_c2r(rank,n,howmany,in,inembed,istride,idist,out,onembed,ostride,odist,flags) &
Chris@42 230 bind(C, name='fftw_plan_many_dft_c2r')
Chris@42 231 import
Chris@42 232 integer(C_INT), value :: rank
Chris@42 233 integer(C_INT), dimension(*), intent(in) :: n
Chris@42 234 integer(C_INT), value :: howmany
Chris@42 235 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@42 236 integer(C_INT), dimension(*), intent(in) :: inembed
Chris@42 237 integer(C_INT), value :: istride
Chris@42 238 integer(C_INT), value :: idist
Chris@42 239 real(C_DOUBLE), dimension(*), intent(out) :: out
Chris@42 240 integer(C_INT), dimension(*), intent(in) :: onembed
Chris@42 241 integer(C_INT), value :: ostride
Chris@42 242 integer(C_INT), value :: odist
Chris@42 243 integer(C_INT), value :: flags
Chris@42 244 end function fftw_plan_many_dft_c2r
Chris@42 245
Chris@42 246 type(C_PTR) function fftw_plan_dft_c2r(rank,n,in,out,flags) bind(C, name='fftw_plan_dft_c2r')
Chris@42 247 import
Chris@42 248 integer(C_INT), value :: rank
Chris@42 249 integer(C_INT), dimension(*), intent(in) :: n
Chris@42 250 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@42 251 real(C_DOUBLE), dimension(*), intent(out) :: out
Chris@42 252 integer(C_INT), value :: flags
Chris@42 253 end function fftw_plan_dft_c2r
Chris@42 254
Chris@42 255 type(C_PTR) function fftw_plan_dft_c2r_1d(n,in,out,flags) bind(C, name='fftw_plan_dft_c2r_1d')
Chris@42 256 import
Chris@42 257 integer(C_INT), value :: n
Chris@42 258 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@42 259 real(C_DOUBLE), dimension(*), intent(out) :: out
Chris@42 260 integer(C_INT), value :: flags
Chris@42 261 end function fftw_plan_dft_c2r_1d
Chris@42 262
Chris@42 263 type(C_PTR) function fftw_plan_dft_c2r_2d(n0,n1,in,out,flags) bind(C, name='fftw_plan_dft_c2r_2d')
Chris@42 264 import
Chris@42 265 integer(C_INT), value :: n0
Chris@42 266 integer(C_INT), value :: n1
Chris@42 267 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@42 268 real(C_DOUBLE), dimension(*), intent(out) :: out
Chris@42 269 integer(C_INT), value :: flags
Chris@42 270 end function fftw_plan_dft_c2r_2d
Chris@42 271
Chris@42 272 type(C_PTR) function fftw_plan_dft_c2r_3d(n0,n1,n2,in,out,flags) bind(C, name='fftw_plan_dft_c2r_3d')
Chris@42 273 import
Chris@42 274 integer(C_INT), value :: n0
Chris@42 275 integer(C_INT), value :: n1
Chris@42 276 integer(C_INT), value :: n2
Chris@42 277 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@42 278 real(C_DOUBLE), dimension(*), intent(out) :: out
Chris@42 279 integer(C_INT), value :: flags
Chris@42 280 end function fftw_plan_dft_c2r_3d
Chris@42 281
Chris@42 282 type(C_PTR) function fftw_plan_guru_dft_r2c(rank,dims,howmany_rank,howmany_dims,in,out,flags) &
Chris@42 283 bind(C, name='fftw_plan_guru_dft_r2c')
Chris@42 284 import
Chris@42 285 integer(C_INT), value :: rank
Chris@42 286 type(fftw_iodim), dimension(*), intent(in) :: dims
Chris@42 287 integer(C_INT), value :: howmany_rank
Chris@42 288 type(fftw_iodim), dimension(*), intent(in) :: howmany_dims
Chris@42 289 real(C_DOUBLE), dimension(*), intent(out) :: in
Chris@42 290 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 291 integer(C_INT), value :: flags
Chris@42 292 end function fftw_plan_guru_dft_r2c
Chris@42 293
Chris@42 294 type(C_PTR) function fftw_plan_guru_dft_c2r(rank,dims,howmany_rank,howmany_dims,in,out,flags) &
Chris@42 295 bind(C, name='fftw_plan_guru_dft_c2r')
Chris@42 296 import
Chris@42 297 integer(C_INT), value :: rank
Chris@42 298 type(fftw_iodim), dimension(*), intent(in) :: dims
Chris@42 299 integer(C_INT), value :: howmany_rank
Chris@42 300 type(fftw_iodim), dimension(*), intent(in) :: howmany_dims
Chris@42 301 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@42 302 real(C_DOUBLE), dimension(*), intent(out) :: out
Chris@42 303 integer(C_INT), value :: flags
Chris@42 304 end function fftw_plan_guru_dft_c2r
Chris@42 305
Chris@42 306 type(C_PTR) function fftw_plan_guru_split_dft_r2c(rank,dims,howmany_rank,howmany_dims,in,ro,io,flags) &
Chris@42 307 bind(C, name='fftw_plan_guru_split_dft_r2c')
Chris@42 308 import
Chris@42 309 integer(C_INT), value :: rank
Chris@42 310 type(fftw_iodim), dimension(*), intent(in) :: dims
Chris@42 311 integer(C_INT), value :: howmany_rank
Chris@42 312 type(fftw_iodim), dimension(*), intent(in) :: howmany_dims
Chris@42 313 real(C_DOUBLE), dimension(*), intent(out) :: in
Chris@42 314 real(C_DOUBLE), dimension(*), intent(out) :: ro
Chris@42 315 real(C_DOUBLE), dimension(*), intent(out) :: io
Chris@42 316 integer(C_INT), value :: flags
Chris@42 317 end function fftw_plan_guru_split_dft_r2c
Chris@42 318
Chris@42 319 type(C_PTR) function fftw_plan_guru_split_dft_c2r(rank,dims,howmany_rank,howmany_dims,ri,ii,out,flags) &
Chris@42 320 bind(C, name='fftw_plan_guru_split_dft_c2r')
Chris@42 321 import
Chris@42 322 integer(C_INT), value :: rank
Chris@42 323 type(fftw_iodim), dimension(*), intent(in) :: dims
Chris@42 324 integer(C_INT), value :: howmany_rank
Chris@42 325 type(fftw_iodim), dimension(*), intent(in) :: howmany_dims
Chris@42 326 real(C_DOUBLE), dimension(*), intent(out) :: ri
Chris@42 327 real(C_DOUBLE), dimension(*), intent(out) :: ii
Chris@42 328 real(C_DOUBLE), dimension(*), intent(out) :: out
Chris@42 329 integer(C_INT), value :: flags
Chris@42 330 end function fftw_plan_guru_split_dft_c2r
Chris@42 331
Chris@42 332 type(C_PTR) function fftw_plan_guru64_dft_r2c(rank,dims,howmany_rank,howmany_dims,in,out,flags) &
Chris@42 333 bind(C, name='fftw_plan_guru64_dft_r2c')
Chris@42 334 import
Chris@42 335 integer(C_INT), value :: rank
Chris@42 336 type(fftw_iodim64), dimension(*), intent(in) :: dims
Chris@42 337 integer(C_INT), value :: howmany_rank
Chris@42 338 type(fftw_iodim64), dimension(*), intent(in) :: howmany_dims
Chris@42 339 real(C_DOUBLE), dimension(*), intent(out) :: in
Chris@42 340 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 341 integer(C_INT), value :: flags
Chris@42 342 end function fftw_plan_guru64_dft_r2c
Chris@42 343
Chris@42 344 type(C_PTR) function fftw_plan_guru64_dft_c2r(rank,dims,howmany_rank,howmany_dims,in,out,flags) &
Chris@42 345 bind(C, name='fftw_plan_guru64_dft_c2r')
Chris@42 346 import
Chris@42 347 integer(C_INT), value :: rank
Chris@42 348 type(fftw_iodim64), dimension(*), intent(in) :: dims
Chris@42 349 integer(C_INT), value :: howmany_rank
Chris@42 350 type(fftw_iodim64), dimension(*), intent(in) :: howmany_dims
Chris@42 351 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@42 352 real(C_DOUBLE), dimension(*), intent(out) :: out
Chris@42 353 integer(C_INT), value :: flags
Chris@42 354 end function fftw_plan_guru64_dft_c2r
Chris@42 355
Chris@42 356 type(C_PTR) function fftw_plan_guru64_split_dft_r2c(rank,dims,howmany_rank,howmany_dims,in,ro,io,flags) &
Chris@42 357 bind(C, name='fftw_plan_guru64_split_dft_r2c')
Chris@42 358 import
Chris@42 359 integer(C_INT), value :: rank
Chris@42 360 type(fftw_iodim64), dimension(*), intent(in) :: dims
Chris@42 361 integer(C_INT), value :: howmany_rank
Chris@42 362 type(fftw_iodim64), dimension(*), intent(in) :: howmany_dims
Chris@42 363 real(C_DOUBLE), dimension(*), intent(out) :: in
Chris@42 364 real(C_DOUBLE), dimension(*), intent(out) :: ro
Chris@42 365 real(C_DOUBLE), dimension(*), intent(out) :: io
Chris@42 366 integer(C_INT), value :: flags
Chris@42 367 end function fftw_plan_guru64_split_dft_r2c
Chris@42 368
Chris@42 369 type(C_PTR) function fftw_plan_guru64_split_dft_c2r(rank,dims,howmany_rank,howmany_dims,ri,ii,out,flags) &
Chris@42 370 bind(C, name='fftw_plan_guru64_split_dft_c2r')
Chris@42 371 import
Chris@42 372 integer(C_INT), value :: rank
Chris@42 373 type(fftw_iodim64), dimension(*), intent(in) :: dims
Chris@42 374 integer(C_INT), value :: howmany_rank
Chris@42 375 type(fftw_iodim64), dimension(*), intent(in) :: howmany_dims
Chris@42 376 real(C_DOUBLE), dimension(*), intent(out) :: ri
Chris@42 377 real(C_DOUBLE), dimension(*), intent(out) :: ii
Chris@42 378 real(C_DOUBLE), dimension(*), intent(out) :: out
Chris@42 379 integer(C_INT), value :: flags
Chris@42 380 end function fftw_plan_guru64_split_dft_c2r
Chris@42 381
Chris@42 382 subroutine fftw_execute_dft_r2c(p,in,out) bind(C, name='fftw_execute_dft_r2c')
Chris@42 383 import
Chris@42 384 type(C_PTR), value :: p
Chris@42 385 real(C_DOUBLE), dimension(*), intent(inout) :: in
Chris@42 386 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 387 end subroutine fftw_execute_dft_r2c
Chris@42 388
Chris@42 389 subroutine fftw_execute_dft_c2r(p,in,out) bind(C, name='fftw_execute_dft_c2r')
Chris@42 390 import
Chris@42 391 type(C_PTR), value :: p
Chris@42 392 complex(C_DOUBLE_COMPLEX), dimension(*), intent(inout) :: in
Chris@42 393 real(C_DOUBLE), dimension(*), intent(out) :: out
Chris@42 394 end subroutine fftw_execute_dft_c2r
Chris@42 395
Chris@42 396 subroutine fftw_execute_split_dft_r2c(p,in,ro,io) bind(C, name='fftw_execute_split_dft_r2c')
Chris@42 397 import
Chris@42 398 type(C_PTR), value :: p
Chris@42 399 real(C_DOUBLE), dimension(*), intent(inout) :: in
Chris@42 400 real(C_DOUBLE), dimension(*), intent(out) :: ro
Chris@42 401 real(C_DOUBLE), dimension(*), intent(out) :: io
Chris@42 402 end subroutine fftw_execute_split_dft_r2c
Chris@42 403
Chris@42 404 subroutine fftw_execute_split_dft_c2r(p,ri,ii,out) bind(C, name='fftw_execute_split_dft_c2r')
Chris@42 405 import
Chris@42 406 type(C_PTR), value :: p
Chris@42 407 real(C_DOUBLE), dimension(*), intent(inout) :: ri
Chris@42 408 real(C_DOUBLE), dimension(*), intent(inout) :: ii
Chris@42 409 real(C_DOUBLE), dimension(*), intent(out) :: out
Chris@42 410 end subroutine fftw_execute_split_dft_c2r
Chris@42 411
Chris@42 412 type(C_PTR) function fftw_plan_many_r2r(rank,n,howmany,in,inembed,istride,idist,out,onembed,ostride,odist,kind,flags) &
Chris@42 413 bind(C, name='fftw_plan_many_r2r')
Chris@42 414 import
Chris@42 415 integer(C_INT), value :: rank
Chris@42 416 integer(C_INT), dimension(*), intent(in) :: n
Chris@42 417 integer(C_INT), value :: howmany
Chris@42 418 real(C_DOUBLE), dimension(*), intent(out) :: in
Chris@42 419 integer(C_INT), dimension(*), intent(in) :: inembed
Chris@42 420 integer(C_INT), value :: istride
Chris@42 421 integer(C_INT), value :: idist
Chris@42 422 real(C_DOUBLE), dimension(*), intent(out) :: out
Chris@42 423 integer(C_INT), dimension(*), intent(in) :: onembed
Chris@42 424 integer(C_INT), value :: ostride
Chris@42 425 integer(C_INT), value :: odist
Chris@42 426 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind
Chris@42 427 integer(C_INT), value :: flags
Chris@42 428 end function fftw_plan_many_r2r
Chris@42 429
Chris@42 430 type(C_PTR) function fftw_plan_r2r(rank,n,in,out,kind,flags) bind(C, name='fftw_plan_r2r')
Chris@42 431 import
Chris@42 432 integer(C_INT), value :: rank
Chris@42 433 integer(C_INT), dimension(*), intent(in) :: n
Chris@42 434 real(C_DOUBLE), dimension(*), intent(out) :: in
Chris@42 435 real(C_DOUBLE), dimension(*), intent(out) :: out
Chris@42 436 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind
Chris@42 437 integer(C_INT), value :: flags
Chris@42 438 end function fftw_plan_r2r
Chris@42 439
Chris@42 440 type(C_PTR) function fftw_plan_r2r_1d(n,in,out,kind,flags) bind(C, name='fftw_plan_r2r_1d')
Chris@42 441 import
Chris@42 442 integer(C_INT), value :: n
Chris@42 443 real(C_DOUBLE), dimension(*), intent(out) :: in
Chris@42 444 real(C_DOUBLE), dimension(*), intent(out) :: out
Chris@42 445 integer(C_FFTW_R2R_KIND), value :: kind
Chris@42 446 integer(C_INT), value :: flags
Chris@42 447 end function fftw_plan_r2r_1d
Chris@42 448
Chris@42 449 type(C_PTR) function fftw_plan_r2r_2d(n0,n1,in,out,kind0,kind1,flags) bind(C, name='fftw_plan_r2r_2d')
Chris@42 450 import
Chris@42 451 integer(C_INT), value :: n0
Chris@42 452 integer(C_INT), value :: n1
Chris@42 453 real(C_DOUBLE), dimension(*), intent(out) :: in
Chris@42 454 real(C_DOUBLE), dimension(*), intent(out) :: out
Chris@42 455 integer(C_FFTW_R2R_KIND), value :: kind0
Chris@42 456 integer(C_FFTW_R2R_KIND), value :: kind1
Chris@42 457 integer(C_INT), value :: flags
Chris@42 458 end function fftw_plan_r2r_2d
Chris@42 459
Chris@42 460 type(C_PTR) function fftw_plan_r2r_3d(n0,n1,n2,in,out,kind0,kind1,kind2,flags) bind(C, name='fftw_plan_r2r_3d')
Chris@42 461 import
Chris@42 462 integer(C_INT), value :: n0
Chris@42 463 integer(C_INT), value :: n1
Chris@42 464 integer(C_INT), value :: n2
Chris@42 465 real(C_DOUBLE), dimension(*), intent(out) :: in
Chris@42 466 real(C_DOUBLE), dimension(*), intent(out) :: out
Chris@42 467 integer(C_FFTW_R2R_KIND), value :: kind0
Chris@42 468 integer(C_FFTW_R2R_KIND), value :: kind1
Chris@42 469 integer(C_FFTW_R2R_KIND), value :: kind2
Chris@42 470 integer(C_INT), value :: flags
Chris@42 471 end function fftw_plan_r2r_3d
Chris@42 472
Chris@42 473 type(C_PTR) function fftw_plan_guru_r2r(rank,dims,howmany_rank,howmany_dims,in,out,kind,flags) &
Chris@42 474 bind(C, name='fftw_plan_guru_r2r')
Chris@42 475 import
Chris@42 476 integer(C_INT), value :: rank
Chris@42 477 type(fftw_iodim), dimension(*), intent(in) :: dims
Chris@42 478 integer(C_INT), value :: howmany_rank
Chris@42 479 type(fftw_iodim), dimension(*), intent(in) :: howmany_dims
Chris@42 480 real(C_DOUBLE), dimension(*), intent(out) :: in
Chris@42 481 real(C_DOUBLE), dimension(*), intent(out) :: out
Chris@42 482 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind
Chris@42 483 integer(C_INT), value :: flags
Chris@42 484 end function fftw_plan_guru_r2r
Chris@42 485
Chris@42 486 type(C_PTR) function fftw_plan_guru64_r2r(rank,dims,howmany_rank,howmany_dims,in,out,kind,flags) &
Chris@42 487 bind(C, name='fftw_plan_guru64_r2r')
Chris@42 488 import
Chris@42 489 integer(C_INT), value :: rank
Chris@42 490 type(fftw_iodim64), dimension(*), intent(in) :: dims
Chris@42 491 integer(C_INT), value :: howmany_rank
Chris@42 492 type(fftw_iodim64), dimension(*), intent(in) :: howmany_dims
Chris@42 493 real(C_DOUBLE), dimension(*), intent(out) :: in
Chris@42 494 real(C_DOUBLE), dimension(*), intent(out) :: out
Chris@42 495 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind
Chris@42 496 integer(C_INT), value :: flags
Chris@42 497 end function fftw_plan_guru64_r2r
Chris@42 498
Chris@42 499 subroutine fftw_execute_r2r(p,in,out) bind(C, name='fftw_execute_r2r')
Chris@42 500 import
Chris@42 501 type(C_PTR), value :: p
Chris@42 502 real(C_DOUBLE), dimension(*), intent(inout) :: in
Chris@42 503 real(C_DOUBLE), dimension(*), intent(out) :: out
Chris@42 504 end subroutine fftw_execute_r2r
Chris@42 505
Chris@42 506 subroutine fftw_destroy_plan(p) bind(C, name='fftw_destroy_plan')
Chris@42 507 import
Chris@42 508 type(C_PTR), value :: p
Chris@42 509 end subroutine fftw_destroy_plan
Chris@42 510
Chris@42 511 subroutine fftw_forget_wisdom() bind(C, name='fftw_forget_wisdom')
Chris@42 512 import
Chris@42 513 end subroutine fftw_forget_wisdom
Chris@42 514
Chris@42 515 subroutine fftw_cleanup() bind(C, name='fftw_cleanup')
Chris@42 516 import
Chris@42 517 end subroutine fftw_cleanup
Chris@42 518
Chris@42 519 subroutine fftw_set_timelimit(t) bind(C, name='fftw_set_timelimit')
Chris@42 520 import
Chris@42 521 real(C_DOUBLE), value :: t
Chris@42 522 end subroutine fftw_set_timelimit
Chris@42 523
Chris@42 524 subroutine fftw_plan_with_nthreads(nthreads) bind(C, name='fftw_plan_with_nthreads')
Chris@42 525 import
Chris@42 526 integer(C_INT), value :: nthreads
Chris@42 527 end subroutine fftw_plan_with_nthreads
Chris@42 528
Chris@42 529 integer(C_INT) function fftw_init_threads() bind(C, name='fftw_init_threads')
Chris@42 530 import
Chris@42 531 end function fftw_init_threads
Chris@42 532
Chris@42 533 subroutine fftw_cleanup_threads() bind(C, name='fftw_cleanup_threads')
Chris@42 534 import
Chris@42 535 end subroutine fftw_cleanup_threads
Chris@42 536
Chris@42 537 subroutine fftw_make_planner_thread_safe() bind(C, name='fftw_make_planner_thread_safe')
Chris@42 538 import
Chris@42 539 end subroutine fftw_make_planner_thread_safe
Chris@42 540
Chris@42 541 integer(C_INT) function fftw_export_wisdom_to_filename(filename) bind(C, name='fftw_export_wisdom_to_filename')
Chris@42 542 import
Chris@42 543 character(C_CHAR), dimension(*), intent(in) :: filename
Chris@42 544 end function fftw_export_wisdom_to_filename
Chris@42 545
Chris@42 546 subroutine fftw_export_wisdom_to_file(output_file) bind(C, name='fftw_export_wisdom_to_file')
Chris@42 547 import
Chris@42 548 type(C_PTR), value :: output_file
Chris@42 549 end subroutine fftw_export_wisdom_to_file
Chris@42 550
Chris@42 551 type(C_PTR) function fftw_export_wisdom_to_string() bind(C, name='fftw_export_wisdom_to_string')
Chris@42 552 import
Chris@42 553 end function fftw_export_wisdom_to_string
Chris@42 554
Chris@42 555 subroutine fftw_export_wisdom(write_char,data) bind(C, name='fftw_export_wisdom')
Chris@42 556 import
Chris@42 557 type(C_FUNPTR), value :: write_char
Chris@42 558 type(C_PTR), value :: data
Chris@42 559 end subroutine fftw_export_wisdom
Chris@42 560
Chris@42 561 integer(C_INT) function fftw_import_system_wisdom() bind(C, name='fftw_import_system_wisdom')
Chris@42 562 import
Chris@42 563 end function fftw_import_system_wisdom
Chris@42 564
Chris@42 565 integer(C_INT) function fftw_import_wisdom_from_filename(filename) bind(C, name='fftw_import_wisdom_from_filename')
Chris@42 566 import
Chris@42 567 character(C_CHAR), dimension(*), intent(in) :: filename
Chris@42 568 end function fftw_import_wisdom_from_filename
Chris@42 569
Chris@42 570 integer(C_INT) function fftw_import_wisdom_from_file(input_file) bind(C, name='fftw_import_wisdom_from_file')
Chris@42 571 import
Chris@42 572 type(C_PTR), value :: input_file
Chris@42 573 end function fftw_import_wisdom_from_file
Chris@42 574
Chris@42 575 integer(C_INT) function fftw_import_wisdom_from_string(input_string) bind(C, name='fftw_import_wisdom_from_string')
Chris@42 576 import
Chris@42 577 character(C_CHAR), dimension(*), intent(in) :: input_string
Chris@42 578 end function fftw_import_wisdom_from_string
Chris@42 579
Chris@42 580 integer(C_INT) function fftw_import_wisdom(read_char,data) bind(C, name='fftw_import_wisdom')
Chris@42 581 import
Chris@42 582 type(C_FUNPTR), value :: read_char
Chris@42 583 type(C_PTR), value :: data
Chris@42 584 end function fftw_import_wisdom
Chris@42 585
Chris@42 586 subroutine fftw_fprint_plan(p,output_file) bind(C, name='fftw_fprint_plan')
Chris@42 587 import
Chris@42 588 type(C_PTR), value :: p
Chris@42 589 type(C_PTR), value :: output_file
Chris@42 590 end subroutine fftw_fprint_plan
Chris@42 591
Chris@42 592 subroutine fftw_print_plan(p) bind(C, name='fftw_print_plan')
Chris@42 593 import
Chris@42 594 type(C_PTR), value :: p
Chris@42 595 end subroutine fftw_print_plan
Chris@42 596
Chris@42 597 type(C_PTR) function fftw_sprint_plan(p) bind(C, name='fftw_sprint_plan')
Chris@42 598 import
Chris@42 599 type(C_PTR), value :: p
Chris@42 600 end function fftw_sprint_plan
Chris@42 601
Chris@42 602 type(C_PTR) function fftw_malloc(n) bind(C, name='fftw_malloc')
Chris@42 603 import
Chris@42 604 integer(C_SIZE_T), value :: n
Chris@42 605 end function fftw_malloc
Chris@42 606
Chris@42 607 type(C_PTR) function fftw_alloc_real(n) bind(C, name='fftw_alloc_real')
Chris@42 608 import
Chris@42 609 integer(C_SIZE_T), value :: n
Chris@42 610 end function fftw_alloc_real
Chris@42 611
Chris@42 612 type(C_PTR) function fftw_alloc_complex(n) bind(C, name='fftw_alloc_complex')
Chris@42 613 import
Chris@42 614 integer(C_SIZE_T), value :: n
Chris@42 615 end function fftw_alloc_complex
Chris@42 616
Chris@42 617 subroutine fftw_free(p) bind(C, name='fftw_free')
Chris@42 618 import
Chris@42 619 type(C_PTR), value :: p
Chris@42 620 end subroutine fftw_free
Chris@42 621
Chris@42 622 subroutine fftw_flops(p,add,mul,fmas) bind(C, name='fftw_flops')
Chris@42 623 import
Chris@42 624 type(C_PTR), value :: p
Chris@42 625 real(C_DOUBLE), intent(out) :: add
Chris@42 626 real(C_DOUBLE), intent(out) :: mul
Chris@42 627 real(C_DOUBLE), intent(out) :: fmas
Chris@42 628 end subroutine fftw_flops
Chris@42 629
Chris@42 630 real(C_DOUBLE) function fftw_estimate_cost(p) bind(C, name='fftw_estimate_cost')
Chris@42 631 import
Chris@42 632 type(C_PTR), value :: p
Chris@42 633 end function fftw_estimate_cost
Chris@42 634
Chris@42 635 real(C_DOUBLE) function fftw_cost(p) bind(C, name='fftw_cost')
Chris@42 636 import
Chris@42 637 type(C_PTR), value :: p
Chris@42 638 end function fftw_cost
Chris@42 639
Chris@42 640 integer(C_INT) function fftw_alignment_of(p) bind(C, name='fftw_alignment_of')
Chris@42 641 import
Chris@42 642 real(C_DOUBLE), dimension(*), intent(out) :: p
Chris@42 643 end function fftw_alignment_of
Chris@42 644
Chris@42 645 end interface
Chris@42 646
Chris@42 647 type, bind(C) :: fftwf_iodim
Chris@42 648 integer(C_INT) n, is, os
Chris@42 649 end type fftwf_iodim
Chris@42 650 type, bind(C) :: fftwf_iodim64
Chris@42 651 integer(C_INTPTR_T) n, is, os
Chris@42 652 end type fftwf_iodim64
Chris@42 653
Chris@42 654 interface
Chris@42 655 type(C_PTR) function fftwf_plan_dft(rank,n,in,out,sign,flags) bind(C, name='fftwf_plan_dft')
Chris@42 656 import
Chris@42 657 integer(C_INT), value :: rank
Chris@42 658 integer(C_INT), dimension(*), intent(in) :: n
Chris@42 659 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in
Chris@42 660 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
Chris@42 661 integer(C_INT), value :: sign
Chris@42 662 integer(C_INT), value :: flags
Chris@42 663 end function fftwf_plan_dft
Chris@42 664
Chris@42 665 type(C_PTR) function fftwf_plan_dft_1d(n,in,out,sign,flags) bind(C, name='fftwf_plan_dft_1d')
Chris@42 666 import
Chris@42 667 integer(C_INT), value :: n
Chris@42 668 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in
Chris@42 669 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
Chris@42 670 integer(C_INT), value :: sign
Chris@42 671 integer(C_INT), value :: flags
Chris@42 672 end function fftwf_plan_dft_1d
Chris@42 673
Chris@42 674 type(C_PTR) function fftwf_plan_dft_2d(n0,n1,in,out,sign,flags) bind(C, name='fftwf_plan_dft_2d')
Chris@42 675 import
Chris@42 676 integer(C_INT), value :: n0
Chris@42 677 integer(C_INT), value :: n1
Chris@42 678 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in
Chris@42 679 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
Chris@42 680 integer(C_INT), value :: sign
Chris@42 681 integer(C_INT), value :: flags
Chris@42 682 end function fftwf_plan_dft_2d
Chris@42 683
Chris@42 684 type(C_PTR) function fftwf_plan_dft_3d(n0,n1,n2,in,out,sign,flags) bind(C, name='fftwf_plan_dft_3d')
Chris@42 685 import
Chris@42 686 integer(C_INT), value :: n0
Chris@42 687 integer(C_INT), value :: n1
Chris@42 688 integer(C_INT), value :: n2
Chris@42 689 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in
Chris@42 690 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
Chris@42 691 integer(C_INT), value :: sign
Chris@42 692 integer(C_INT), value :: flags
Chris@42 693 end function fftwf_plan_dft_3d
Chris@42 694
Chris@42 695 type(C_PTR) function fftwf_plan_many_dft(rank,n,howmany,in,inembed,istride,idist,out,onembed,ostride,odist,sign,flags) &
Chris@42 696 bind(C, name='fftwf_plan_many_dft')
Chris@42 697 import
Chris@42 698 integer(C_INT), value :: rank
Chris@42 699 integer(C_INT), dimension(*), intent(in) :: n
Chris@42 700 integer(C_INT), value :: howmany
Chris@42 701 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in
Chris@42 702 integer(C_INT), dimension(*), intent(in) :: inembed
Chris@42 703 integer(C_INT), value :: istride
Chris@42 704 integer(C_INT), value :: idist
Chris@42 705 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
Chris@42 706 integer(C_INT), dimension(*), intent(in) :: onembed
Chris@42 707 integer(C_INT), value :: ostride
Chris@42 708 integer(C_INT), value :: odist
Chris@42 709 integer(C_INT), value :: sign
Chris@42 710 integer(C_INT), value :: flags
Chris@42 711 end function fftwf_plan_many_dft
Chris@42 712
Chris@42 713 type(C_PTR) function fftwf_plan_guru_dft(rank,dims,howmany_rank,howmany_dims,in,out,sign,flags) &
Chris@42 714 bind(C, name='fftwf_plan_guru_dft')
Chris@42 715 import
Chris@42 716 integer(C_INT), value :: rank
Chris@42 717 type(fftwf_iodim), dimension(*), intent(in) :: dims
Chris@42 718 integer(C_INT), value :: howmany_rank
Chris@42 719 type(fftwf_iodim), dimension(*), intent(in) :: howmany_dims
Chris@42 720 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in
Chris@42 721 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
Chris@42 722 integer(C_INT), value :: sign
Chris@42 723 integer(C_INT), value :: flags
Chris@42 724 end function fftwf_plan_guru_dft
Chris@42 725
Chris@42 726 type(C_PTR) function fftwf_plan_guru_split_dft(rank,dims,howmany_rank,howmany_dims,ri,ii,ro,io,flags) &
Chris@42 727 bind(C, name='fftwf_plan_guru_split_dft')
Chris@42 728 import
Chris@42 729 integer(C_INT), value :: rank
Chris@42 730 type(fftwf_iodim), dimension(*), intent(in) :: dims
Chris@42 731 integer(C_INT), value :: howmany_rank
Chris@42 732 type(fftwf_iodim), dimension(*), intent(in) :: howmany_dims
Chris@42 733 real(C_FLOAT), dimension(*), intent(out) :: ri
Chris@42 734 real(C_FLOAT), dimension(*), intent(out) :: ii
Chris@42 735 real(C_FLOAT), dimension(*), intent(out) :: ro
Chris@42 736 real(C_FLOAT), dimension(*), intent(out) :: io
Chris@42 737 integer(C_INT), value :: flags
Chris@42 738 end function fftwf_plan_guru_split_dft
Chris@42 739
Chris@42 740 type(C_PTR) function fftwf_plan_guru64_dft(rank,dims,howmany_rank,howmany_dims,in,out,sign,flags) &
Chris@42 741 bind(C, name='fftwf_plan_guru64_dft')
Chris@42 742 import
Chris@42 743 integer(C_INT), value :: rank
Chris@42 744 type(fftwf_iodim64), dimension(*), intent(in) :: dims
Chris@42 745 integer(C_INT), value :: howmany_rank
Chris@42 746 type(fftwf_iodim64), dimension(*), intent(in) :: howmany_dims
Chris@42 747 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in
Chris@42 748 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
Chris@42 749 integer(C_INT), value :: sign
Chris@42 750 integer(C_INT), value :: flags
Chris@42 751 end function fftwf_plan_guru64_dft
Chris@42 752
Chris@42 753 type(C_PTR) function fftwf_plan_guru64_split_dft(rank,dims,howmany_rank,howmany_dims,ri,ii,ro,io,flags) &
Chris@42 754 bind(C, name='fftwf_plan_guru64_split_dft')
Chris@42 755 import
Chris@42 756 integer(C_INT), value :: rank
Chris@42 757 type(fftwf_iodim64), dimension(*), intent(in) :: dims
Chris@42 758 integer(C_INT), value :: howmany_rank
Chris@42 759 type(fftwf_iodim64), dimension(*), intent(in) :: howmany_dims
Chris@42 760 real(C_FLOAT), dimension(*), intent(out) :: ri
Chris@42 761 real(C_FLOAT), dimension(*), intent(out) :: ii
Chris@42 762 real(C_FLOAT), dimension(*), intent(out) :: ro
Chris@42 763 real(C_FLOAT), dimension(*), intent(out) :: io
Chris@42 764 integer(C_INT), value :: flags
Chris@42 765 end function fftwf_plan_guru64_split_dft
Chris@42 766
Chris@42 767 subroutine fftwf_execute_dft(p,in,out) bind(C, name='fftwf_execute_dft')
Chris@42 768 import
Chris@42 769 type(C_PTR), value :: p
Chris@42 770 complex(C_FLOAT_COMPLEX), dimension(*), intent(inout) :: in
Chris@42 771 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
Chris@42 772 end subroutine fftwf_execute_dft
Chris@42 773
Chris@42 774 subroutine fftwf_execute_split_dft(p,ri,ii,ro,io) bind(C, name='fftwf_execute_split_dft')
Chris@42 775 import
Chris@42 776 type(C_PTR), value :: p
Chris@42 777 real(C_FLOAT), dimension(*), intent(inout) :: ri
Chris@42 778 real(C_FLOAT), dimension(*), intent(inout) :: ii
Chris@42 779 real(C_FLOAT), dimension(*), intent(out) :: ro
Chris@42 780 real(C_FLOAT), dimension(*), intent(out) :: io
Chris@42 781 end subroutine fftwf_execute_split_dft
Chris@42 782
Chris@42 783 type(C_PTR) function fftwf_plan_many_dft_r2c(rank,n,howmany,in,inembed,istride,idist,out,onembed,ostride,odist,flags) &
Chris@42 784 bind(C, name='fftwf_plan_many_dft_r2c')
Chris@42 785 import
Chris@42 786 integer(C_INT), value :: rank
Chris@42 787 integer(C_INT), dimension(*), intent(in) :: n
Chris@42 788 integer(C_INT), value :: howmany
Chris@42 789 real(C_FLOAT), dimension(*), intent(out) :: in
Chris@42 790 integer(C_INT), dimension(*), intent(in) :: inembed
Chris@42 791 integer(C_INT), value :: istride
Chris@42 792 integer(C_INT), value :: idist
Chris@42 793 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
Chris@42 794 integer(C_INT), dimension(*), intent(in) :: onembed
Chris@42 795 integer(C_INT), value :: ostride
Chris@42 796 integer(C_INT), value :: odist
Chris@42 797 integer(C_INT), value :: flags
Chris@42 798 end function fftwf_plan_many_dft_r2c
Chris@42 799
Chris@42 800 type(C_PTR) function fftwf_plan_dft_r2c(rank,n,in,out,flags) bind(C, name='fftwf_plan_dft_r2c')
Chris@42 801 import
Chris@42 802 integer(C_INT), value :: rank
Chris@42 803 integer(C_INT), dimension(*), intent(in) :: n
Chris@42 804 real(C_FLOAT), dimension(*), intent(out) :: in
Chris@42 805 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
Chris@42 806 integer(C_INT), value :: flags
Chris@42 807 end function fftwf_plan_dft_r2c
Chris@42 808
Chris@42 809 type(C_PTR) function fftwf_plan_dft_r2c_1d(n,in,out,flags) bind(C, name='fftwf_plan_dft_r2c_1d')
Chris@42 810 import
Chris@42 811 integer(C_INT), value :: n
Chris@42 812 real(C_FLOAT), dimension(*), intent(out) :: in
Chris@42 813 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
Chris@42 814 integer(C_INT), value :: flags
Chris@42 815 end function fftwf_plan_dft_r2c_1d
Chris@42 816
Chris@42 817 type(C_PTR) function fftwf_plan_dft_r2c_2d(n0,n1,in,out,flags) bind(C, name='fftwf_plan_dft_r2c_2d')
Chris@42 818 import
Chris@42 819 integer(C_INT), value :: n0
Chris@42 820 integer(C_INT), value :: n1
Chris@42 821 real(C_FLOAT), dimension(*), intent(out) :: in
Chris@42 822 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
Chris@42 823 integer(C_INT), value :: flags
Chris@42 824 end function fftwf_plan_dft_r2c_2d
Chris@42 825
Chris@42 826 type(C_PTR) function fftwf_plan_dft_r2c_3d(n0,n1,n2,in,out,flags) bind(C, name='fftwf_plan_dft_r2c_3d')
Chris@42 827 import
Chris@42 828 integer(C_INT), value :: n0
Chris@42 829 integer(C_INT), value :: n1
Chris@42 830 integer(C_INT), value :: n2
Chris@42 831 real(C_FLOAT), dimension(*), intent(out) :: in
Chris@42 832 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
Chris@42 833 integer(C_INT), value :: flags
Chris@42 834 end function fftwf_plan_dft_r2c_3d
Chris@42 835
Chris@42 836 type(C_PTR) function fftwf_plan_many_dft_c2r(rank,n,howmany,in,inembed,istride,idist,out,onembed,ostride,odist,flags) &
Chris@42 837 bind(C, name='fftwf_plan_many_dft_c2r')
Chris@42 838 import
Chris@42 839 integer(C_INT), value :: rank
Chris@42 840 integer(C_INT), dimension(*), intent(in) :: n
Chris@42 841 integer(C_INT), value :: howmany
Chris@42 842 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in
Chris@42 843 integer(C_INT), dimension(*), intent(in) :: inembed
Chris@42 844 integer(C_INT), value :: istride
Chris@42 845 integer(C_INT), value :: idist
Chris@42 846 real(C_FLOAT), dimension(*), intent(out) :: out
Chris@42 847 integer(C_INT), dimension(*), intent(in) :: onembed
Chris@42 848 integer(C_INT), value :: ostride
Chris@42 849 integer(C_INT), value :: odist
Chris@42 850 integer(C_INT), value :: flags
Chris@42 851 end function fftwf_plan_many_dft_c2r
Chris@42 852
Chris@42 853 type(C_PTR) function fftwf_plan_dft_c2r(rank,n,in,out,flags) bind(C, name='fftwf_plan_dft_c2r')
Chris@42 854 import
Chris@42 855 integer(C_INT), value :: rank
Chris@42 856 integer(C_INT), dimension(*), intent(in) :: n
Chris@42 857 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in
Chris@42 858 real(C_FLOAT), dimension(*), intent(out) :: out
Chris@42 859 integer(C_INT), value :: flags
Chris@42 860 end function fftwf_plan_dft_c2r
Chris@42 861
Chris@42 862 type(C_PTR) function fftwf_plan_dft_c2r_1d(n,in,out,flags) bind(C, name='fftwf_plan_dft_c2r_1d')
Chris@42 863 import
Chris@42 864 integer(C_INT), value :: n
Chris@42 865 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in
Chris@42 866 real(C_FLOAT), dimension(*), intent(out) :: out
Chris@42 867 integer(C_INT), value :: flags
Chris@42 868 end function fftwf_plan_dft_c2r_1d
Chris@42 869
Chris@42 870 type(C_PTR) function fftwf_plan_dft_c2r_2d(n0,n1,in,out,flags) bind(C, name='fftwf_plan_dft_c2r_2d')
Chris@42 871 import
Chris@42 872 integer(C_INT), value :: n0
Chris@42 873 integer(C_INT), value :: n1
Chris@42 874 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in
Chris@42 875 real(C_FLOAT), dimension(*), intent(out) :: out
Chris@42 876 integer(C_INT), value :: flags
Chris@42 877 end function fftwf_plan_dft_c2r_2d
Chris@42 878
Chris@42 879 type(C_PTR) function fftwf_plan_dft_c2r_3d(n0,n1,n2,in,out,flags) bind(C, name='fftwf_plan_dft_c2r_3d')
Chris@42 880 import
Chris@42 881 integer(C_INT), value :: n0
Chris@42 882 integer(C_INT), value :: n1
Chris@42 883 integer(C_INT), value :: n2
Chris@42 884 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in
Chris@42 885 real(C_FLOAT), dimension(*), intent(out) :: out
Chris@42 886 integer(C_INT), value :: flags
Chris@42 887 end function fftwf_plan_dft_c2r_3d
Chris@42 888
Chris@42 889 type(C_PTR) function fftwf_plan_guru_dft_r2c(rank,dims,howmany_rank,howmany_dims,in,out,flags) &
Chris@42 890 bind(C, name='fftwf_plan_guru_dft_r2c')
Chris@42 891 import
Chris@42 892 integer(C_INT), value :: rank
Chris@42 893 type(fftwf_iodim), dimension(*), intent(in) :: dims
Chris@42 894 integer(C_INT), value :: howmany_rank
Chris@42 895 type(fftwf_iodim), dimension(*), intent(in) :: howmany_dims
Chris@42 896 real(C_FLOAT), dimension(*), intent(out) :: in
Chris@42 897 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
Chris@42 898 integer(C_INT), value :: flags
Chris@42 899 end function fftwf_plan_guru_dft_r2c
Chris@42 900
Chris@42 901 type(C_PTR) function fftwf_plan_guru_dft_c2r(rank,dims,howmany_rank,howmany_dims,in,out,flags) &
Chris@42 902 bind(C, name='fftwf_plan_guru_dft_c2r')
Chris@42 903 import
Chris@42 904 integer(C_INT), value :: rank
Chris@42 905 type(fftwf_iodim), dimension(*), intent(in) :: dims
Chris@42 906 integer(C_INT), value :: howmany_rank
Chris@42 907 type(fftwf_iodim), dimension(*), intent(in) :: howmany_dims
Chris@42 908 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in
Chris@42 909 real(C_FLOAT), dimension(*), intent(out) :: out
Chris@42 910 integer(C_INT), value :: flags
Chris@42 911 end function fftwf_plan_guru_dft_c2r
Chris@42 912
Chris@42 913 type(C_PTR) function fftwf_plan_guru_split_dft_r2c(rank,dims,howmany_rank,howmany_dims,in,ro,io,flags) &
Chris@42 914 bind(C, name='fftwf_plan_guru_split_dft_r2c')
Chris@42 915 import
Chris@42 916 integer(C_INT), value :: rank
Chris@42 917 type(fftwf_iodim), dimension(*), intent(in) :: dims
Chris@42 918 integer(C_INT), value :: howmany_rank
Chris@42 919 type(fftwf_iodim), dimension(*), intent(in) :: howmany_dims
Chris@42 920 real(C_FLOAT), dimension(*), intent(out) :: in
Chris@42 921 real(C_FLOAT), dimension(*), intent(out) :: ro
Chris@42 922 real(C_FLOAT), dimension(*), intent(out) :: io
Chris@42 923 integer(C_INT), value :: flags
Chris@42 924 end function fftwf_plan_guru_split_dft_r2c
Chris@42 925
Chris@42 926 type(C_PTR) function fftwf_plan_guru_split_dft_c2r(rank,dims,howmany_rank,howmany_dims,ri,ii,out,flags) &
Chris@42 927 bind(C, name='fftwf_plan_guru_split_dft_c2r')
Chris@42 928 import
Chris@42 929 integer(C_INT), value :: rank
Chris@42 930 type(fftwf_iodim), dimension(*), intent(in) :: dims
Chris@42 931 integer(C_INT), value :: howmany_rank
Chris@42 932 type(fftwf_iodim), dimension(*), intent(in) :: howmany_dims
Chris@42 933 real(C_FLOAT), dimension(*), intent(out) :: ri
Chris@42 934 real(C_FLOAT), dimension(*), intent(out) :: ii
Chris@42 935 real(C_FLOAT), dimension(*), intent(out) :: out
Chris@42 936 integer(C_INT), value :: flags
Chris@42 937 end function fftwf_plan_guru_split_dft_c2r
Chris@42 938
Chris@42 939 type(C_PTR) function fftwf_plan_guru64_dft_r2c(rank,dims,howmany_rank,howmany_dims,in,out,flags) &
Chris@42 940 bind(C, name='fftwf_plan_guru64_dft_r2c')
Chris@42 941 import
Chris@42 942 integer(C_INT), value :: rank
Chris@42 943 type(fftwf_iodim64), dimension(*), intent(in) :: dims
Chris@42 944 integer(C_INT), value :: howmany_rank
Chris@42 945 type(fftwf_iodim64), dimension(*), intent(in) :: howmany_dims
Chris@42 946 real(C_FLOAT), dimension(*), intent(out) :: in
Chris@42 947 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
Chris@42 948 integer(C_INT), value :: flags
Chris@42 949 end function fftwf_plan_guru64_dft_r2c
Chris@42 950
Chris@42 951 type(C_PTR) function fftwf_plan_guru64_dft_c2r(rank,dims,howmany_rank,howmany_dims,in,out,flags) &
Chris@42 952 bind(C, name='fftwf_plan_guru64_dft_c2r')
Chris@42 953 import
Chris@42 954 integer(C_INT), value :: rank
Chris@42 955 type(fftwf_iodim64), dimension(*), intent(in) :: dims
Chris@42 956 integer(C_INT), value :: howmany_rank
Chris@42 957 type(fftwf_iodim64), dimension(*), intent(in) :: howmany_dims
Chris@42 958 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in
Chris@42 959 real(C_FLOAT), dimension(*), intent(out) :: out
Chris@42 960 integer(C_INT), value :: flags
Chris@42 961 end function fftwf_plan_guru64_dft_c2r
Chris@42 962
Chris@42 963 type(C_PTR) function fftwf_plan_guru64_split_dft_r2c(rank,dims,howmany_rank,howmany_dims,in,ro,io,flags) &
Chris@42 964 bind(C, name='fftwf_plan_guru64_split_dft_r2c')
Chris@42 965 import
Chris@42 966 integer(C_INT), value :: rank
Chris@42 967 type(fftwf_iodim64), dimension(*), intent(in) :: dims
Chris@42 968 integer(C_INT), value :: howmany_rank
Chris@42 969 type(fftwf_iodim64), dimension(*), intent(in) :: howmany_dims
Chris@42 970 real(C_FLOAT), dimension(*), intent(out) :: in
Chris@42 971 real(C_FLOAT), dimension(*), intent(out) :: ro
Chris@42 972 real(C_FLOAT), dimension(*), intent(out) :: io
Chris@42 973 integer(C_INT), value :: flags
Chris@42 974 end function fftwf_plan_guru64_split_dft_r2c
Chris@42 975
Chris@42 976 type(C_PTR) function fftwf_plan_guru64_split_dft_c2r(rank,dims,howmany_rank,howmany_dims,ri,ii,out,flags) &
Chris@42 977 bind(C, name='fftwf_plan_guru64_split_dft_c2r')
Chris@42 978 import
Chris@42 979 integer(C_INT), value :: rank
Chris@42 980 type(fftwf_iodim64), dimension(*), intent(in) :: dims
Chris@42 981 integer(C_INT), value :: howmany_rank
Chris@42 982 type(fftwf_iodim64), dimension(*), intent(in) :: howmany_dims
Chris@42 983 real(C_FLOAT), dimension(*), intent(out) :: ri
Chris@42 984 real(C_FLOAT), dimension(*), intent(out) :: ii
Chris@42 985 real(C_FLOAT), dimension(*), intent(out) :: out
Chris@42 986 integer(C_INT), value :: flags
Chris@42 987 end function fftwf_plan_guru64_split_dft_c2r
Chris@42 988
Chris@42 989 subroutine fftwf_execute_dft_r2c(p,in,out) bind(C, name='fftwf_execute_dft_r2c')
Chris@42 990 import
Chris@42 991 type(C_PTR), value :: p
Chris@42 992 real(C_FLOAT), dimension(*), intent(inout) :: in
Chris@42 993 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
Chris@42 994 end subroutine fftwf_execute_dft_r2c
Chris@42 995
Chris@42 996 subroutine fftwf_execute_dft_c2r(p,in,out) bind(C, name='fftwf_execute_dft_c2r')
Chris@42 997 import
Chris@42 998 type(C_PTR), value :: p
Chris@42 999 complex(C_FLOAT_COMPLEX), dimension(*), intent(inout) :: in
Chris@42 1000 real(C_FLOAT), dimension(*), intent(out) :: out
Chris@42 1001 end subroutine fftwf_execute_dft_c2r
Chris@42 1002
Chris@42 1003 subroutine fftwf_execute_split_dft_r2c(p,in,ro,io) bind(C, name='fftwf_execute_split_dft_r2c')
Chris@42 1004 import
Chris@42 1005 type(C_PTR), value :: p
Chris@42 1006 real(C_FLOAT), dimension(*), intent(inout) :: in
Chris@42 1007 real(C_FLOAT), dimension(*), intent(out) :: ro
Chris@42 1008 real(C_FLOAT), dimension(*), intent(out) :: io
Chris@42 1009 end subroutine fftwf_execute_split_dft_r2c
Chris@42 1010
Chris@42 1011 subroutine fftwf_execute_split_dft_c2r(p,ri,ii,out) bind(C, name='fftwf_execute_split_dft_c2r')
Chris@42 1012 import
Chris@42 1013 type(C_PTR), value :: p
Chris@42 1014 real(C_FLOAT), dimension(*), intent(inout) :: ri
Chris@42 1015 real(C_FLOAT), dimension(*), intent(inout) :: ii
Chris@42 1016 real(C_FLOAT), dimension(*), intent(out) :: out
Chris@42 1017 end subroutine fftwf_execute_split_dft_c2r
Chris@42 1018
Chris@42 1019 type(C_PTR) function fftwf_plan_many_r2r(rank,n,howmany,in,inembed,istride,idist,out,onembed,ostride,odist,kind,flags) &
Chris@42 1020 bind(C, name='fftwf_plan_many_r2r')
Chris@42 1021 import
Chris@42 1022 integer(C_INT), value :: rank
Chris@42 1023 integer(C_INT), dimension(*), intent(in) :: n
Chris@42 1024 integer(C_INT), value :: howmany
Chris@42 1025 real(C_FLOAT), dimension(*), intent(out) :: in
Chris@42 1026 integer(C_INT), dimension(*), intent(in) :: inembed
Chris@42 1027 integer(C_INT), value :: istride
Chris@42 1028 integer(C_INT), value :: idist
Chris@42 1029 real(C_FLOAT), dimension(*), intent(out) :: out
Chris@42 1030 integer(C_INT), dimension(*), intent(in) :: onembed
Chris@42 1031 integer(C_INT), value :: ostride
Chris@42 1032 integer(C_INT), value :: odist
Chris@42 1033 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind
Chris@42 1034 integer(C_INT), value :: flags
Chris@42 1035 end function fftwf_plan_many_r2r
Chris@42 1036
Chris@42 1037 type(C_PTR) function fftwf_plan_r2r(rank,n,in,out,kind,flags) bind(C, name='fftwf_plan_r2r')
Chris@42 1038 import
Chris@42 1039 integer(C_INT), value :: rank
Chris@42 1040 integer(C_INT), dimension(*), intent(in) :: n
Chris@42 1041 real(C_FLOAT), dimension(*), intent(out) :: in
Chris@42 1042 real(C_FLOAT), dimension(*), intent(out) :: out
Chris@42 1043 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind
Chris@42 1044 integer(C_INT), value :: flags
Chris@42 1045 end function fftwf_plan_r2r
Chris@42 1046
Chris@42 1047 type(C_PTR) function fftwf_plan_r2r_1d(n,in,out,kind,flags) bind(C, name='fftwf_plan_r2r_1d')
Chris@42 1048 import
Chris@42 1049 integer(C_INT), value :: n
Chris@42 1050 real(C_FLOAT), dimension(*), intent(out) :: in
Chris@42 1051 real(C_FLOAT), dimension(*), intent(out) :: out
Chris@42 1052 integer(C_FFTW_R2R_KIND), value :: kind
Chris@42 1053 integer(C_INT), value :: flags
Chris@42 1054 end function fftwf_plan_r2r_1d
Chris@42 1055
Chris@42 1056 type(C_PTR) function fftwf_plan_r2r_2d(n0,n1,in,out,kind0,kind1,flags) bind(C, name='fftwf_plan_r2r_2d')
Chris@42 1057 import
Chris@42 1058 integer(C_INT), value :: n0
Chris@42 1059 integer(C_INT), value :: n1
Chris@42 1060 real(C_FLOAT), dimension(*), intent(out) :: in
Chris@42 1061 real(C_FLOAT), dimension(*), intent(out) :: out
Chris@42 1062 integer(C_FFTW_R2R_KIND), value :: kind0
Chris@42 1063 integer(C_FFTW_R2R_KIND), value :: kind1
Chris@42 1064 integer(C_INT), value :: flags
Chris@42 1065 end function fftwf_plan_r2r_2d
Chris@42 1066
Chris@42 1067 type(C_PTR) function fftwf_plan_r2r_3d(n0,n1,n2,in,out,kind0,kind1,kind2,flags) bind(C, name='fftwf_plan_r2r_3d')
Chris@42 1068 import
Chris@42 1069 integer(C_INT), value :: n0
Chris@42 1070 integer(C_INT), value :: n1
Chris@42 1071 integer(C_INT), value :: n2
Chris@42 1072 real(C_FLOAT), dimension(*), intent(out) :: in
Chris@42 1073 real(C_FLOAT), dimension(*), intent(out) :: out
Chris@42 1074 integer(C_FFTW_R2R_KIND), value :: kind0
Chris@42 1075 integer(C_FFTW_R2R_KIND), value :: kind1
Chris@42 1076 integer(C_FFTW_R2R_KIND), value :: kind2
Chris@42 1077 integer(C_INT), value :: flags
Chris@42 1078 end function fftwf_plan_r2r_3d
Chris@42 1079
Chris@42 1080 type(C_PTR) function fftwf_plan_guru_r2r(rank,dims,howmany_rank,howmany_dims,in,out,kind,flags) &
Chris@42 1081 bind(C, name='fftwf_plan_guru_r2r')
Chris@42 1082 import
Chris@42 1083 integer(C_INT), value :: rank
Chris@42 1084 type(fftwf_iodim), dimension(*), intent(in) :: dims
Chris@42 1085 integer(C_INT), value :: howmany_rank
Chris@42 1086 type(fftwf_iodim), dimension(*), intent(in) :: howmany_dims
Chris@42 1087 real(C_FLOAT), dimension(*), intent(out) :: in
Chris@42 1088 real(C_FLOAT), dimension(*), intent(out) :: out
Chris@42 1089 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind
Chris@42 1090 integer(C_INT), value :: flags
Chris@42 1091 end function fftwf_plan_guru_r2r
Chris@42 1092
Chris@42 1093 type(C_PTR) function fftwf_plan_guru64_r2r(rank,dims,howmany_rank,howmany_dims,in,out,kind,flags) &
Chris@42 1094 bind(C, name='fftwf_plan_guru64_r2r')
Chris@42 1095 import
Chris@42 1096 integer(C_INT), value :: rank
Chris@42 1097 type(fftwf_iodim64), dimension(*), intent(in) :: dims
Chris@42 1098 integer(C_INT), value :: howmany_rank
Chris@42 1099 type(fftwf_iodim64), dimension(*), intent(in) :: howmany_dims
Chris@42 1100 real(C_FLOAT), dimension(*), intent(out) :: in
Chris@42 1101 real(C_FLOAT), dimension(*), intent(out) :: out
Chris@42 1102 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind
Chris@42 1103 integer(C_INT), value :: flags
Chris@42 1104 end function fftwf_plan_guru64_r2r
Chris@42 1105
Chris@42 1106 subroutine fftwf_execute_r2r(p,in,out) bind(C, name='fftwf_execute_r2r')
Chris@42 1107 import
Chris@42 1108 type(C_PTR), value :: p
Chris@42 1109 real(C_FLOAT), dimension(*), intent(inout) :: in
Chris@42 1110 real(C_FLOAT), dimension(*), intent(out) :: out
Chris@42 1111 end subroutine fftwf_execute_r2r
Chris@42 1112
Chris@42 1113 subroutine fftwf_destroy_plan(p) bind(C, name='fftwf_destroy_plan')
Chris@42 1114 import
Chris@42 1115 type(C_PTR), value :: p
Chris@42 1116 end subroutine fftwf_destroy_plan
Chris@42 1117
Chris@42 1118 subroutine fftwf_forget_wisdom() bind(C, name='fftwf_forget_wisdom')
Chris@42 1119 import
Chris@42 1120 end subroutine fftwf_forget_wisdom
Chris@42 1121
Chris@42 1122 subroutine fftwf_cleanup() bind(C, name='fftwf_cleanup')
Chris@42 1123 import
Chris@42 1124 end subroutine fftwf_cleanup
Chris@42 1125
Chris@42 1126 subroutine fftwf_set_timelimit(t) bind(C, name='fftwf_set_timelimit')
Chris@42 1127 import
Chris@42 1128 real(C_DOUBLE), value :: t
Chris@42 1129 end subroutine fftwf_set_timelimit
Chris@42 1130
Chris@42 1131 subroutine fftwf_plan_with_nthreads(nthreads) bind(C, name='fftwf_plan_with_nthreads')
Chris@42 1132 import
Chris@42 1133 integer(C_INT), value :: nthreads
Chris@42 1134 end subroutine fftwf_plan_with_nthreads
Chris@42 1135
Chris@42 1136 integer(C_INT) function fftwf_init_threads() bind(C, name='fftwf_init_threads')
Chris@42 1137 import
Chris@42 1138 end function fftwf_init_threads
Chris@42 1139
Chris@42 1140 subroutine fftwf_cleanup_threads() bind(C, name='fftwf_cleanup_threads')
Chris@42 1141 import
Chris@42 1142 end subroutine fftwf_cleanup_threads
Chris@42 1143
Chris@42 1144 subroutine fftwf_make_planner_thread_safe() bind(C, name='fftwf_make_planner_thread_safe')
Chris@42 1145 import
Chris@42 1146 end subroutine fftwf_make_planner_thread_safe
Chris@42 1147
Chris@42 1148 integer(C_INT) function fftwf_export_wisdom_to_filename(filename) bind(C, name='fftwf_export_wisdom_to_filename')
Chris@42 1149 import
Chris@42 1150 character(C_CHAR), dimension(*), intent(in) :: filename
Chris@42 1151 end function fftwf_export_wisdom_to_filename
Chris@42 1152
Chris@42 1153 subroutine fftwf_export_wisdom_to_file(output_file) bind(C, name='fftwf_export_wisdom_to_file')
Chris@42 1154 import
Chris@42 1155 type(C_PTR), value :: output_file
Chris@42 1156 end subroutine fftwf_export_wisdom_to_file
Chris@42 1157
Chris@42 1158 type(C_PTR) function fftwf_export_wisdom_to_string() bind(C, name='fftwf_export_wisdom_to_string')
Chris@42 1159 import
Chris@42 1160 end function fftwf_export_wisdom_to_string
Chris@42 1161
Chris@42 1162 subroutine fftwf_export_wisdom(write_char,data) bind(C, name='fftwf_export_wisdom')
Chris@42 1163 import
Chris@42 1164 type(C_FUNPTR), value :: write_char
Chris@42 1165 type(C_PTR), value :: data
Chris@42 1166 end subroutine fftwf_export_wisdom
Chris@42 1167
Chris@42 1168 integer(C_INT) function fftwf_import_system_wisdom() bind(C, name='fftwf_import_system_wisdom')
Chris@42 1169 import
Chris@42 1170 end function fftwf_import_system_wisdom
Chris@42 1171
Chris@42 1172 integer(C_INT) function fftwf_import_wisdom_from_filename(filename) bind(C, name='fftwf_import_wisdom_from_filename')
Chris@42 1173 import
Chris@42 1174 character(C_CHAR), dimension(*), intent(in) :: filename
Chris@42 1175 end function fftwf_import_wisdom_from_filename
Chris@42 1176
Chris@42 1177 integer(C_INT) function fftwf_import_wisdom_from_file(input_file) bind(C, name='fftwf_import_wisdom_from_file')
Chris@42 1178 import
Chris@42 1179 type(C_PTR), value :: input_file
Chris@42 1180 end function fftwf_import_wisdom_from_file
Chris@42 1181
Chris@42 1182 integer(C_INT) function fftwf_import_wisdom_from_string(input_string) bind(C, name='fftwf_import_wisdom_from_string')
Chris@42 1183 import
Chris@42 1184 character(C_CHAR), dimension(*), intent(in) :: input_string
Chris@42 1185 end function fftwf_import_wisdom_from_string
Chris@42 1186
Chris@42 1187 integer(C_INT) function fftwf_import_wisdom(read_char,data) bind(C, name='fftwf_import_wisdom')
Chris@42 1188 import
Chris@42 1189 type(C_FUNPTR), value :: read_char
Chris@42 1190 type(C_PTR), value :: data
Chris@42 1191 end function fftwf_import_wisdom
Chris@42 1192
Chris@42 1193 subroutine fftwf_fprint_plan(p,output_file) bind(C, name='fftwf_fprint_plan')
Chris@42 1194 import
Chris@42 1195 type(C_PTR), value :: p
Chris@42 1196 type(C_PTR), value :: output_file
Chris@42 1197 end subroutine fftwf_fprint_plan
Chris@42 1198
Chris@42 1199 subroutine fftwf_print_plan(p) bind(C, name='fftwf_print_plan')
Chris@42 1200 import
Chris@42 1201 type(C_PTR), value :: p
Chris@42 1202 end subroutine fftwf_print_plan
Chris@42 1203
Chris@42 1204 type(C_PTR) function fftwf_sprint_plan(p) bind(C, name='fftwf_sprint_plan')
Chris@42 1205 import
Chris@42 1206 type(C_PTR), value :: p
Chris@42 1207 end function fftwf_sprint_plan
Chris@42 1208
Chris@42 1209 type(C_PTR) function fftwf_malloc(n) bind(C, name='fftwf_malloc')
Chris@42 1210 import
Chris@42 1211 integer(C_SIZE_T), value :: n
Chris@42 1212 end function fftwf_malloc
Chris@42 1213
Chris@42 1214 type(C_PTR) function fftwf_alloc_real(n) bind(C, name='fftwf_alloc_real')
Chris@42 1215 import
Chris@42 1216 integer(C_SIZE_T), value :: n
Chris@42 1217 end function fftwf_alloc_real
Chris@42 1218
Chris@42 1219 type(C_PTR) function fftwf_alloc_complex(n) bind(C, name='fftwf_alloc_complex')
Chris@42 1220 import
Chris@42 1221 integer(C_SIZE_T), value :: n
Chris@42 1222 end function fftwf_alloc_complex
Chris@42 1223
Chris@42 1224 subroutine fftwf_free(p) bind(C, name='fftwf_free')
Chris@42 1225 import
Chris@42 1226 type(C_PTR), value :: p
Chris@42 1227 end subroutine fftwf_free
Chris@42 1228
Chris@42 1229 subroutine fftwf_flops(p,add,mul,fmas) bind(C, name='fftwf_flops')
Chris@42 1230 import
Chris@42 1231 type(C_PTR), value :: p
Chris@42 1232 real(C_DOUBLE), intent(out) :: add
Chris@42 1233 real(C_DOUBLE), intent(out) :: mul
Chris@42 1234 real(C_DOUBLE), intent(out) :: fmas
Chris@42 1235 end subroutine fftwf_flops
Chris@42 1236
Chris@42 1237 real(C_DOUBLE) function fftwf_estimate_cost(p) bind(C, name='fftwf_estimate_cost')
Chris@42 1238 import
Chris@42 1239 type(C_PTR), value :: p
Chris@42 1240 end function fftwf_estimate_cost
Chris@42 1241
Chris@42 1242 real(C_DOUBLE) function fftwf_cost(p) bind(C, name='fftwf_cost')
Chris@42 1243 import
Chris@42 1244 type(C_PTR), value :: p
Chris@42 1245 end function fftwf_cost
Chris@42 1246
Chris@42 1247 integer(C_INT) function fftwf_alignment_of(p) bind(C, name='fftwf_alignment_of')
Chris@42 1248 import
Chris@42 1249 real(C_FLOAT), dimension(*), intent(out) :: p
Chris@42 1250 end function fftwf_alignment_of
Chris@42 1251
Chris@42 1252 end interface