annotate src/fftw-3.3.5/api/fftw3q.f03 @ 83:ae30d91d2ffe

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