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