annotate src/fftw-3.3.3/api/fftw3q.f03 @ 70:9e21af8f0420

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