annotate src/fftw-3.3.8/api/fftw3l.f03 @ 169:223a55898ab9 tip default

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