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