annotate src/fftw-3.3.8/api/fftw3.f03.in @ 84:08ae793730bd

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