Chris@10
|
1 ! Generated automatically. DO NOT EDIT!
|
Chris@10
|
2
|
Chris@10
|
3 integer(C_INT), parameter :: FFTW_R2HC = 0
|
Chris@10
|
4 integer(C_INT), parameter :: FFTW_HC2R = 1
|
Chris@10
|
5 integer(C_INT), parameter :: FFTW_DHT = 2
|
Chris@10
|
6 integer(C_INT), parameter :: FFTW_REDFT00 = 3
|
Chris@10
|
7 integer(C_INT), parameter :: FFTW_REDFT01 = 4
|
Chris@10
|
8 integer(C_INT), parameter :: FFTW_REDFT10 = 5
|
Chris@10
|
9 integer(C_INT), parameter :: FFTW_REDFT11 = 6
|
Chris@10
|
10 integer(C_INT), parameter :: FFTW_RODFT00 = 7
|
Chris@10
|
11 integer(C_INT), parameter :: FFTW_RODFT01 = 8
|
Chris@10
|
12 integer(C_INT), parameter :: FFTW_RODFT10 = 9
|
Chris@10
|
13 integer(C_INT), parameter :: FFTW_RODFT11 = 10
|
Chris@10
|
14 integer(C_INT), parameter :: FFTW_FORWARD = -1
|
Chris@10
|
15 integer(C_INT), parameter :: FFTW_BACKWARD = +1
|
Chris@10
|
16 integer(C_INT), parameter :: FFTW_MEASURE = 0
|
Chris@10
|
17 integer(C_INT), parameter :: FFTW_DESTROY_INPUT = 1
|
Chris@10
|
18 integer(C_INT), parameter :: FFTW_UNALIGNED = 2
|
Chris@10
|
19 integer(C_INT), parameter :: FFTW_CONSERVE_MEMORY = 4
|
Chris@10
|
20 integer(C_INT), parameter :: FFTW_EXHAUSTIVE = 8
|
Chris@10
|
21 integer(C_INT), parameter :: FFTW_PRESERVE_INPUT = 16
|
Chris@10
|
22 integer(C_INT), parameter :: FFTW_PATIENT = 32
|
Chris@10
|
23 integer(C_INT), parameter :: FFTW_ESTIMATE = 64
|
Chris@10
|
24 integer(C_INT), parameter :: FFTW_WISDOM_ONLY = 2097152
|
Chris@10
|
25 integer(C_INT), parameter :: FFTW_ESTIMATE_PATIENT = 128
|
Chris@10
|
26 integer(C_INT), parameter :: FFTW_BELIEVE_PCOST = 256
|
Chris@10
|
27 integer(C_INT), parameter :: FFTW_NO_DFT_R2HC = 512
|
Chris@10
|
28 integer(C_INT), parameter :: FFTW_NO_NONTHREADED = 1024
|
Chris@10
|
29 integer(C_INT), parameter :: FFTW_NO_BUFFERING = 2048
|
Chris@10
|
30 integer(C_INT), parameter :: FFTW_NO_INDIRECT_OP = 4096
|
Chris@10
|
31 integer(C_INT), parameter :: FFTW_ALLOW_LARGE_GENERIC = 8192
|
Chris@10
|
32 integer(C_INT), parameter :: FFTW_NO_RANK_SPLITS = 16384
|
Chris@10
|
33 integer(C_INT), parameter :: FFTW_NO_VRANK_SPLITS = 32768
|
Chris@10
|
34 integer(C_INT), parameter :: FFTW_NO_VRECURSE = 65536
|
Chris@10
|
35 integer(C_INT), parameter :: FFTW_NO_SIMD = 131072
|
Chris@10
|
36 integer(C_INT), parameter :: FFTW_NO_SLOW = 262144
|
Chris@10
|
37 integer(C_INT), parameter :: FFTW_NO_FIXED_RADIX_LARGE_N = 524288
|
Chris@10
|
38 integer(C_INT), parameter :: FFTW_ALLOW_PRUNING = 1048576
|
Chris@10
|
39
|
Chris@10
|
40 type, bind(C) :: fftw_iodim
|
Chris@10
|
41 integer(C_INT) n, is, os
|
Chris@10
|
42 end type fftw_iodim
|
Chris@10
|
43 type, bind(C) :: fftw_iodim64
|
Chris@10
|
44 integer(C_INTPTR_T) n, is, os
|
Chris@10
|
45 end type fftw_iodim64
|
Chris@10
|
46
|
Chris@10
|
47 interface
|
Chris@10
|
48 type(C_PTR) function fftw_plan_dft(rank,n,in,out,sign,flags) bind(C, name='fftw_plan_dft')
|
Chris@10
|
49 import
|
Chris@10
|
50 integer(C_INT), value :: rank
|
Chris@10
|
51 integer(C_INT), dimension(*), intent(in) :: n
|
Chris@10
|
52 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
|
Chris@10
|
53 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
|
Chris@10
|
54 integer(C_INT), value :: sign
|
Chris@10
|
55 integer(C_INT), value :: flags
|
Chris@10
|
56 end function fftw_plan_dft
|
Chris@10
|
57
|
Chris@10
|
58 type(C_PTR) function fftw_plan_dft_1d(n,in,out,sign,flags) bind(C, name='fftw_plan_dft_1d')
|
Chris@10
|
59 import
|
Chris@10
|
60 integer(C_INT), value :: n
|
Chris@10
|
61 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
|
Chris@10
|
62 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
|
Chris@10
|
63 integer(C_INT), value :: sign
|
Chris@10
|
64 integer(C_INT), value :: flags
|
Chris@10
|
65 end function fftw_plan_dft_1d
|
Chris@10
|
66
|
Chris@10
|
67 type(C_PTR) function fftw_plan_dft_2d(n0,n1,in,out,sign,flags) bind(C, name='fftw_plan_dft_2d')
|
Chris@10
|
68 import
|
Chris@10
|
69 integer(C_INT), value :: n0
|
Chris@10
|
70 integer(C_INT), value :: n1
|
Chris@10
|
71 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
|
Chris@10
|
72 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
|
Chris@10
|
73 integer(C_INT), value :: sign
|
Chris@10
|
74 integer(C_INT), value :: flags
|
Chris@10
|
75 end function fftw_plan_dft_2d
|
Chris@10
|
76
|
Chris@10
|
77 type(C_PTR) function fftw_plan_dft_3d(n0,n1,n2,in,out,sign,flags) bind(C, name='fftw_plan_dft_3d')
|
Chris@10
|
78 import
|
Chris@10
|
79 integer(C_INT), value :: n0
|
Chris@10
|
80 integer(C_INT), value :: n1
|
Chris@10
|
81 integer(C_INT), value :: n2
|
Chris@10
|
82 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
|
Chris@10
|
83 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
|
Chris@10
|
84 integer(C_INT), value :: sign
|
Chris@10
|
85 integer(C_INT), value :: flags
|
Chris@10
|
86 end function fftw_plan_dft_3d
|
Chris@10
|
87
|
Chris@10
|
88 type(C_PTR) function fftw_plan_many_dft(rank,n,howmany,in,inembed,istride,idist,out,onembed,ostride,odist,sign,flags) &
|
Chris@10
|
89 bind(C, name='fftw_plan_many_dft')
|
Chris@10
|
90 import
|
Chris@10
|
91 integer(C_INT), value :: rank
|
Chris@10
|
92 integer(C_INT), dimension(*), intent(in) :: n
|
Chris@10
|
93 integer(C_INT), value :: howmany
|
Chris@10
|
94 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
|
Chris@10
|
95 integer(C_INT), dimension(*), intent(in) :: inembed
|
Chris@10
|
96 integer(C_INT), value :: istride
|
Chris@10
|
97 integer(C_INT), value :: idist
|
Chris@10
|
98 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
|
Chris@10
|
99 integer(C_INT), dimension(*), intent(in) :: onembed
|
Chris@10
|
100 integer(C_INT), value :: ostride
|
Chris@10
|
101 integer(C_INT), value :: odist
|
Chris@10
|
102 integer(C_INT), value :: sign
|
Chris@10
|
103 integer(C_INT), value :: flags
|
Chris@10
|
104 end function fftw_plan_many_dft
|
Chris@10
|
105
|
Chris@10
|
106 type(C_PTR) function fftw_plan_guru_dft(rank,dims,howmany_rank,howmany_dims,in,out,sign,flags) &
|
Chris@10
|
107 bind(C, name='fftw_plan_guru_dft')
|
Chris@10
|
108 import
|
Chris@10
|
109 integer(C_INT), value :: rank
|
Chris@10
|
110 type(fftw_iodim), dimension(*), intent(in) :: dims
|
Chris@10
|
111 integer(C_INT), value :: howmany_rank
|
Chris@10
|
112 type(fftw_iodim), dimension(*), intent(in) :: howmany_dims
|
Chris@10
|
113 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
|
Chris@10
|
114 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
|
Chris@10
|
115 integer(C_INT), value :: sign
|
Chris@10
|
116 integer(C_INT), value :: flags
|
Chris@10
|
117 end function fftw_plan_guru_dft
|
Chris@10
|
118
|
Chris@10
|
119 type(C_PTR) function fftw_plan_guru_split_dft(rank,dims,howmany_rank,howmany_dims,ri,ii,ro,io,flags) &
|
Chris@10
|
120 bind(C, name='fftw_plan_guru_split_dft')
|
Chris@10
|
121 import
|
Chris@10
|
122 integer(C_INT), value :: rank
|
Chris@10
|
123 type(fftw_iodim), dimension(*), intent(in) :: dims
|
Chris@10
|
124 integer(C_INT), value :: howmany_rank
|
Chris@10
|
125 type(fftw_iodim), dimension(*), intent(in) :: howmany_dims
|
Chris@10
|
126 real(C_DOUBLE), dimension(*), intent(out) :: ri
|
Chris@10
|
127 real(C_DOUBLE), dimension(*), intent(out) :: ii
|
Chris@10
|
128 real(C_DOUBLE), dimension(*), intent(out) :: ro
|
Chris@10
|
129 real(C_DOUBLE), dimension(*), intent(out) :: io
|
Chris@10
|
130 integer(C_INT), value :: flags
|
Chris@10
|
131 end function fftw_plan_guru_split_dft
|
Chris@10
|
132
|
Chris@10
|
133 type(C_PTR) function fftw_plan_guru64_dft(rank,dims,howmany_rank,howmany_dims,in,out,sign,flags) &
|
Chris@10
|
134 bind(C, name='fftw_plan_guru64_dft')
|
Chris@10
|
135 import
|
Chris@10
|
136 integer(C_INT), value :: rank
|
Chris@10
|
137 type(fftw_iodim64), dimension(*), intent(in) :: dims
|
Chris@10
|
138 integer(C_INT), value :: howmany_rank
|
Chris@10
|
139 type(fftw_iodim64), dimension(*), intent(in) :: howmany_dims
|
Chris@10
|
140 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
|
Chris@10
|
141 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
|
Chris@10
|
142 integer(C_INT), value :: sign
|
Chris@10
|
143 integer(C_INT), value :: flags
|
Chris@10
|
144 end function fftw_plan_guru64_dft
|
Chris@10
|
145
|
Chris@10
|
146 type(C_PTR) function fftw_plan_guru64_split_dft(rank,dims,howmany_rank,howmany_dims,ri,ii,ro,io,flags) &
|
Chris@10
|
147 bind(C, name='fftw_plan_guru64_split_dft')
|
Chris@10
|
148 import
|
Chris@10
|
149 integer(C_INT), value :: rank
|
Chris@10
|
150 type(fftw_iodim64), dimension(*), intent(in) :: dims
|
Chris@10
|
151 integer(C_INT), value :: howmany_rank
|
Chris@10
|
152 type(fftw_iodim64), dimension(*), intent(in) :: howmany_dims
|
Chris@10
|
153 real(C_DOUBLE), dimension(*), intent(out) :: ri
|
Chris@10
|
154 real(C_DOUBLE), dimension(*), intent(out) :: ii
|
Chris@10
|
155 real(C_DOUBLE), dimension(*), intent(out) :: ro
|
Chris@10
|
156 real(C_DOUBLE), dimension(*), intent(out) :: io
|
Chris@10
|
157 integer(C_INT), value :: flags
|
Chris@10
|
158 end function fftw_plan_guru64_split_dft
|
Chris@10
|
159
|
Chris@10
|
160 subroutine fftw_execute_dft(p,in,out) bind(C, name='fftw_execute_dft')
|
Chris@10
|
161 import
|
Chris@10
|
162 type(C_PTR), value :: p
|
Chris@10
|
163 complex(C_DOUBLE_COMPLEX), dimension(*), intent(inout) :: in
|
Chris@10
|
164 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
|
Chris@10
|
165 end subroutine fftw_execute_dft
|
Chris@10
|
166
|
Chris@10
|
167 subroutine fftw_execute_split_dft(p,ri,ii,ro,io) bind(C, name='fftw_execute_split_dft')
|
Chris@10
|
168 import
|
Chris@10
|
169 type(C_PTR), value :: p
|
Chris@10
|
170 real(C_DOUBLE), dimension(*), intent(inout) :: ri
|
Chris@10
|
171 real(C_DOUBLE), dimension(*), intent(inout) :: ii
|
Chris@10
|
172 real(C_DOUBLE), dimension(*), intent(out) :: ro
|
Chris@10
|
173 real(C_DOUBLE), dimension(*), intent(out) :: io
|
Chris@10
|
174 end subroutine fftw_execute_split_dft
|
Chris@10
|
175
|
Chris@10
|
176 type(C_PTR) function fftw_plan_many_dft_r2c(rank,n,howmany,in,inembed,istride,idist,out,onembed,ostride,odist,flags) &
|
Chris@10
|
177 bind(C, name='fftw_plan_many_dft_r2c')
|
Chris@10
|
178 import
|
Chris@10
|
179 integer(C_INT), value :: rank
|
Chris@10
|
180 integer(C_INT), dimension(*), intent(in) :: n
|
Chris@10
|
181 integer(C_INT), value :: howmany
|
Chris@10
|
182 real(C_DOUBLE), dimension(*), intent(out) :: in
|
Chris@10
|
183 integer(C_INT), dimension(*), intent(in) :: inembed
|
Chris@10
|
184 integer(C_INT), value :: istride
|
Chris@10
|
185 integer(C_INT), value :: idist
|
Chris@10
|
186 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
|
Chris@10
|
187 integer(C_INT), dimension(*), intent(in) :: onembed
|
Chris@10
|
188 integer(C_INT), value :: ostride
|
Chris@10
|
189 integer(C_INT), value :: odist
|
Chris@10
|
190 integer(C_INT), value :: flags
|
Chris@10
|
191 end function fftw_plan_many_dft_r2c
|
Chris@10
|
192
|
Chris@10
|
193 type(C_PTR) function fftw_plan_dft_r2c(rank,n,in,out,flags) bind(C, name='fftw_plan_dft_r2c')
|
Chris@10
|
194 import
|
Chris@10
|
195 integer(C_INT), value :: rank
|
Chris@10
|
196 integer(C_INT), dimension(*), intent(in) :: n
|
Chris@10
|
197 real(C_DOUBLE), dimension(*), intent(out) :: in
|
Chris@10
|
198 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
|
Chris@10
|
199 integer(C_INT), value :: flags
|
Chris@10
|
200 end function fftw_plan_dft_r2c
|
Chris@10
|
201
|
Chris@10
|
202 type(C_PTR) function fftw_plan_dft_r2c_1d(n,in,out,flags) bind(C, name='fftw_plan_dft_r2c_1d')
|
Chris@10
|
203 import
|
Chris@10
|
204 integer(C_INT), value :: n
|
Chris@10
|
205 real(C_DOUBLE), dimension(*), intent(out) :: in
|
Chris@10
|
206 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
|
Chris@10
|
207 integer(C_INT), value :: flags
|
Chris@10
|
208 end function fftw_plan_dft_r2c_1d
|
Chris@10
|
209
|
Chris@10
|
210 type(C_PTR) function fftw_plan_dft_r2c_2d(n0,n1,in,out,flags) bind(C, name='fftw_plan_dft_r2c_2d')
|
Chris@10
|
211 import
|
Chris@10
|
212 integer(C_INT), value :: n0
|
Chris@10
|
213 integer(C_INT), value :: n1
|
Chris@10
|
214 real(C_DOUBLE), dimension(*), intent(out) :: in
|
Chris@10
|
215 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
|
Chris@10
|
216 integer(C_INT), value :: flags
|
Chris@10
|
217 end function fftw_plan_dft_r2c_2d
|
Chris@10
|
218
|
Chris@10
|
219 type(C_PTR) function fftw_plan_dft_r2c_3d(n0,n1,n2,in,out,flags) bind(C, name='fftw_plan_dft_r2c_3d')
|
Chris@10
|
220 import
|
Chris@10
|
221 integer(C_INT), value :: n0
|
Chris@10
|
222 integer(C_INT), value :: n1
|
Chris@10
|
223 integer(C_INT), value :: n2
|
Chris@10
|
224 real(C_DOUBLE), dimension(*), intent(out) :: in
|
Chris@10
|
225 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
|
Chris@10
|
226 integer(C_INT), value :: flags
|
Chris@10
|
227 end function fftw_plan_dft_r2c_3d
|
Chris@10
|
228
|
Chris@10
|
229 type(C_PTR) function fftw_plan_many_dft_c2r(rank,n,howmany,in,inembed,istride,idist,out,onembed,ostride,odist,flags) &
|
Chris@10
|
230 bind(C, name='fftw_plan_many_dft_c2r')
|
Chris@10
|
231 import
|
Chris@10
|
232 integer(C_INT), value :: rank
|
Chris@10
|
233 integer(C_INT), dimension(*), intent(in) :: n
|
Chris@10
|
234 integer(C_INT), value :: howmany
|
Chris@10
|
235 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
|
Chris@10
|
236 integer(C_INT), dimension(*), intent(in) :: inembed
|
Chris@10
|
237 integer(C_INT), value :: istride
|
Chris@10
|
238 integer(C_INT), value :: idist
|
Chris@10
|
239 real(C_DOUBLE), dimension(*), intent(out) :: out
|
Chris@10
|
240 integer(C_INT), dimension(*), intent(in) :: onembed
|
Chris@10
|
241 integer(C_INT), value :: ostride
|
Chris@10
|
242 integer(C_INT), value :: odist
|
Chris@10
|
243 integer(C_INT), value :: flags
|
Chris@10
|
244 end function fftw_plan_many_dft_c2r
|
Chris@10
|
245
|
Chris@10
|
246 type(C_PTR) function fftw_plan_dft_c2r(rank,n,in,out,flags) bind(C, name='fftw_plan_dft_c2r')
|
Chris@10
|
247 import
|
Chris@10
|
248 integer(C_INT), value :: rank
|
Chris@10
|
249 integer(C_INT), dimension(*), intent(in) :: n
|
Chris@10
|
250 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
|
Chris@10
|
251 real(C_DOUBLE), dimension(*), intent(out) :: out
|
Chris@10
|
252 integer(C_INT), value :: flags
|
Chris@10
|
253 end function fftw_plan_dft_c2r
|
Chris@10
|
254
|
Chris@10
|
255 type(C_PTR) function fftw_plan_dft_c2r_1d(n,in,out,flags) bind(C, name='fftw_plan_dft_c2r_1d')
|
Chris@10
|
256 import
|
Chris@10
|
257 integer(C_INT), value :: n
|
Chris@10
|
258 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
|
Chris@10
|
259 real(C_DOUBLE), dimension(*), intent(out) :: out
|
Chris@10
|
260 integer(C_INT), value :: flags
|
Chris@10
|
261 end function fftw_plan_dft_c2r_1d
|
Chris@10
|
262
|
Chris@10
|
263 type(C_PTR) function fftw_plan_dft_c2r_2d(n0,n1,in,out,flags) bind(C, name='fftw_plan_dft_c2r_2d')
|
Chris@10
|
264 import
|
Chris@10
|
265 integer(C_INT), value :: n0
|
Chris@10
|
266 integer(C_INT), value :: n1
|
Chris@10
|
267 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
|
Chris@10
|
268 real(C_DOUBLE), dimension(*), intent(out) :: out
|
Chris@10
|
269 integer(C_INT), value :: flags
|
Chris@10
|
270 end function fftw_plan_dft_c2r_2d
|
Chris@10
|
271
|
Chris@10
|
272 type(C_PTR) function fftw_plan_dft_c2r_3d(n0,n1,n2,in,out,flags) bind(C, name='fftw_plan_dft_c2r_3d')
|
Chris@10
|
273 import
|
Chris@10
|
274 integer(C_INT), value :: n0
|
Chris@10
|
275 integer(C_INT), value :: n1
|
Chris@10
|
276 integer(C_INT), value :: n2
|
Chris@10
|
277 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
|
Chris@10
|
278 real(C_DOUBLE), dimension(*), intent(out) :: out
|
Chris@10
|
279 integer(C_INT), value :: flags
|
Chris@10
|
280 end function fftw_plan_dft_c2r_3d
|
Chris@10
|
281
|
Chris@10
|
282 type(C_PTR) function fftw_plan_guru_dft_r2c(rank,dims,howmany_rank,howmany_dims,in,out,flags) &
|
Chris@10
|
283 bind(C, name='fftw_plan_guru_dft_r2c')
|
Chris@10
|
284 import
|
Chris@10
|
285 integer(C_INT), value :: rank
|
Chris@10
|
286 type(fftw_iodim), dimension(*), intent(in) :: dims
|
Chris@10
|
287 integer(C_INT), value :: howmany_rank
|
Chris@10
|
288 type(fftw_iodim), dimension(*), intent(in) :: howmany_dims
|
Chris@10
|
289 real(C_DOUBLE), dimension(*), intent(out) :: in
|
Chris@10
|
290 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
|
Chris@10
|
291 integer(C_INT), value :: flags
|
Chris@10
|
292 end function fftw_plan_guru_dft_r2c
|
Chris@10
|
293
|
Chris@10
|
294 type(C_PTR) function fftw_plan_guru_dft_c2r(rank,dims,howmany_rank,howmany_dims,in,out,flags) &
|
Chris@10
|
295 bind(C, name='fftw_plan_guru_dft_c2r')
|
Chris@10
|
296 import
|
Chris@10
|
297 integer(C_INT), value :: rank
|
Chris@10
|
298 type(fftw_iodim), dimension(*), intent(in) :: dims
|
Chris@10
|
299 integer(C_INT), value :: howmany_rank
|
Chris@10
|
300 type(fftw_iodim), dimension(*), intent(in) :: howmany_dims
|
Chris@10
|
301 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
|
Chris@10
|
302 real(C_DOUBLE), dimension(*), intent(out) :: out
|
Chris@10
|
303 integer(C_INT), value :: flags
|
Chris@10
|
304 end function fftw_plan_guru_dft_c2r
|
Chris@10
|
305
|
Chris@10
|
306 type(C_PTR) function fftw_plan_guru_split_dft_r2c(rank,dims,howmany_rank,howmany_dims,in,ro,io,flags) &
|
Chris@10
|
307 bind(C, name='fftw_plan_guru_split_dft_r2c')
|
Chris@10
|
308 import
|
Chris@10
|
309 integer(C_INT), value :: rank
|
Chris@10
|
310 type(fftw_iodim), dimension(*), intent(in) :: dims
|
Chris@10
|
311 integer(C_INT), value :: howmany_rank
|
Chris@10
|
312 type(fftw_iodim), dimension(*), intent(in) :: howmany_dims
|
Chris@10
|
313 real(C_DOUBLE), dimension(*), intent(out) :: in
|
Chris@10
|
314 real(C_DOUBLE), dimension(*), intent(out) :: ro
|
Chris@10
|
315 real(C_DOUBLE), dimension(*), intent(out) :: io
|
Chris@10
|
316 integer(C_INT), value :: flags
|
Chris@10
|
317 end function fftw_plan_guru_split_dft_r2c
|
Chris@10
|
318
|
Chris@10
|
319 type(C_PTR) function fftw_plan_guru_split_dft_c2r(rank,dims,howmany_rank,howmany_dims,ri,ii,out,flags) &
|
Chris@10
|
320 bind(C, name='fftw_plan_guru_split_dft_c2r')
|
Chris@10
|
321 import
|
Chris@10
|
322 integer(C_INT), value :: rank
|
Chris@10
|
323 type(fftw_iodim), dimension(*), intent(in) :: dims
|
Chris@10
|
324 integer(C_INT), value :: howmany_rank
|
Chris@10
|
325 type(fftw_iodim), dimension(*), intent(in) :: howmany_dims
|
Chris@10
|
326 real(C_DOUBLE), dimension(*), intent(out) :: ri
|
Chris@10
|
327 real(C_DOUBLE), dimension(*), intent(out) :: ii
|
Chris@10
|
328 real(C_DOUBLE), dimension(*), intent(out) :: out
|
Chris@10
|
329 integer(C_INT), value :: flags
|
Chris@10
|
330 end function fftw_plan_guru_split_dft_c2r
|
Chris@10
|
331
|
Chris@10
|
332 type(C_PTR) function fftw_plan_guru64_dft_r2c(rank,dims,howmany_rank,howmany_dims,in,out,flags) &
|
Chris@10
|
333 bind(C, name='fftw_plan_guru64_dft_r2c')
|
Chris@10
|
334 import
|
Chris@10
|
335 integer(C_INT), value :: rank
|
Chris@10
|
336 type(fftw_iodim64), dimension(*), intent(in) :: dims
|
Chris@10
|
337 integer(C_INT), value :: howmany_rank
|
Chris@10
|
338 type(fftw_iodim64), dimension(*), intent(in) :: howmany_dims
|
Chris@10
|
339 real(C_DOUBLE), dimension(*), intent(out) :: in
|
Chris@10
|
340 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
|
Chris@10
|
341 integer(C_INT), value :: flags
|
Chris@10
|
342 end function fftw_plan_guru64_dft_r2c
|
Chris@10
|
343
|
Chris@10
|
344 type(C_PTR) function fftw_plan_guru64_dft_c2r(rank,dims,howmany_rank,howmany_dims,in,out,flags) &
|
Chris@10
|
345 bind(C, name='fftw_plan_guru64_dft_c2r')
|
Chris@10
|
346 import
|
Chris@10
|
347 integer(C_INT), value :: rank
|
Chris@10
|
348 type(fftw_iodim64), dimension(*), intent(in) :: dims
|
Chris@10
|
349 integer(C_INT), value :: howmany_rank
|
Chris@10
|
350 type(fftw_iodim64), dimension(*), intent(in) :: howmany_dims
|
Chris@10
|
351 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
|
Chris@10
|
352 real(C_DOUBLE), dimension(*), intent(out) :: out
|
Chris@10
|
353 integer(C_INT), value :: flags
|
Chris@10
|
354 end function fftw_plan_guru64_dft_c2r
|
Chris@10
|
355
|
Chris@10
|
356 type(C_PTR) function fftw_plan_guru64_split_dft_r2c(rank,dims,howmany_rank,howmany_dims,in,ro,io,flags) &
|
Chris@10
|
357 bind(C, name='fftw_plan_guru64_split_dft_r2c')
|
Chris@10
|
358 import
|
Chris@10
|
359 integer(C_INT), value :: rank
|
Chris@10
|
360 type(fftw_iodim64), dimension(*), intent(in) :: dims
|
Chris@10
|
361 integer(C_INT), value :: howmany_rank
|
Chris@10
|
362 type(fftw_iodim64), dimension(*), intent(in) :: howmany_dims
|
Chris@10
|
363 real(C_DOUBLE), dimension(*), intent(out) :: in
|
Chris@10
|
364 real(C_DOUBLE), dimension(*), intent(out) :: ro
|
Chris@10
|
365 real(C_DOUBLE), dimension(*), intent(out) :: io
|
Chris@10
|
366 integer(C_INT), value :: flags
|
Chris@10
|
367 end function fftw_plan_guru64_split_dft_r2c
|
Chris@10
|
368
|
Chris@10
|
369 type(C_PTR) function fftw_plan_guru64_split_dft_c2r(rank,dims,howmany_rank,howmany_dims,ri,ii,out,flags) &
|
Chris@10
|
370 bind(C, name='fftw_plan_guru64_split_dft_c2r')
|
Chris@10
|
371 import
|
Chris@10
|
372 integer(C_INT), value :: rank
|
Chris@10
|
373 type(fftw_iodim64), dimension(*), intent(in) :: dims
|
Chris@10
|
374 integer(C_INT), value :: howmany_rank
|
Chris@10
|
375 type(fftw_iodim64), dimension(*), intent(in) :: howmany_dims
|
Chris@10
|
376 real(C_DOUBLE), dimension(*), intent(out) :: ri
|
Chris@10
|
377 real(C_DOUBLE), dimension(*), intent(out) :: ii
|
Chris@10
|
378 real(C_DOUBLE), dimension(*), intent(out) :: out
|
Chris@10
|
379 integer(C_INT), value :: flags
|
Chris@10
|
380 end function fftw_plan_guru64_split_dft_c2r
|
Chris@10
|
381
|
Chris@10
|
382 subroutine fftw_execute_dft_r2c(p,in,out) bind(C, name='fftw_execute_dft_r2c')
|
Chris@10
|
383 import
|
Chris@10
|
384 type(C_PTR), value :: p
|
Chris@10
|
385 real(C_DOUBLE), dimension(*), intent(inout) :: in
|
Chris@10
|
386 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
|
Chris@10
|
387 end subroutine fftw_execute_dft_r2c
|
Chris@10
|
388
|
Chris@10
|
389 subroutine fftw_execute_dft_c2r(p,in,out) bind(C, name='fftw_execute_dft_c2r')
|
Chris@10
|
390 import
|
Chris@10
|
391 type(C_PTR), value :: p
|
Chris@10
|
392 complex(C_DOUBLE_COMPLEX), dimension(*), intent(inout) :: in
|
Chris@10
|
393 real(C_DOUBLE), dimension(*), intent(out) :: out
|
Chris@10
|
394 end subroutine fftw_execute_dft_c2r
|
Chris@10
|
395
|
Chris@10
|
396 subroutine fftw_execute_split_dft_r2c(p,in,ro,io) bind(C, name='fftw_execute_split_dft_r2c')
|
Chris@10
|
397 import
|
Chris@10
|
398 type(C_PTR), value :: p
|
Chris@10
|
399 real(C_DOUBLE), dimension(*), intent(inout) :: in
|
Chris@10
|
400 real(C_DOUBLE), dimension(*), intent(out) :: ro
|
Chris@10
|
401 real(C_DOUBLE), dimension(*), intent(out) :: io
|
Chris@10
|
402 end subroutine fftw_execute_split_dft_r2c
|
Chris@10
|
403
|
Chris@10
|
404 subroutine fftw_execute_split_dft_c2r(p,ri,ii,out) bind(C, name='fftw_execute_split_dft_c2r')
|
Chris@10
|
405 import
|
Chris@10
|
406 type(C_PTR), value :: p
|
Chris@10
|
407 real(C_DOUBLE), dimension(*), intent(inout) :: ri
|
Chris@10
|
408 real(C_DOUBLE), dimension(*), intent(inout) :: ii
|
Chris@10
|
409 real(C_DOUBLE), dimension(*), intent(out) :: out
|
Chris@10
|
410 end subroutine fftw_execute_split_dft_c2r
|
Chris@10
|
411
|
Chris@10
|
412 type(C_PTR) function fftw_plan_many_r2r(rank,n,howmany,in,inembed,istride,idist,out,onembed,ostride,odist,kind,flags) &
|
Chris@10
|
413 bind(C, name='fftw_plan_many_r2r')
|
Chris@10
|
414 import
|
Chris@10
|
415 integer(C_INT), value :: rank
|
Chris@10
|
416 integer(C_INT), dimension(*), intent(in) :: n
|
Chris@10
|
417 integer(C_INT), value :: howmany
|
Chris@10
|
418 real(C_DOUBLE), dimension(*), intent(out) :: in
|
Chris@10
|
419 integer(C_INT), dimension(*), intent(in) :: inembed
|
Chris@10
|
420 integer(C_INT), value :: istride
|
Chris@10
|
421 integer(C_INT), value :: idist
|
Chris@10
|
422 real(C_DOUBLE), dimension(*), intent(out) :: out
|
Chris@10
|
423 integer(C_INT), dimension(*), intent(in) :: onembed
|
Chris@10
|
424 integer(C_INT), value :: ostride
|
Chris@10
|
425 integer(C_INT), value :: odist
|
Chris@10
|
426 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind
|
Chris@10
|
427 integer(C_INT), value :: flags
|
Chris@10
|
428 end function fftw_plan_many_r2r
|
Chris@10
|
429
|
Chris@10
|
430 type(C_PTR) function fftw_plan_r2r(rank,n,in,out,kind,flags) bind(C, name='fftw_plan_r2r')
|
Chris@10
|
431 import
|
Chris@10
|
432 integer(C_INT), value :: rank
|
Chris@10
|
433 integer(C_INT), dimension(*), intent(in) :: n
|
Chris@10
|
434 real(C_DOUBLE), dimension(*), intent(out) :: in
|
Chris@10
|
435 real(C_DOUBLE), dimension(*), intent(out) :: out
|
Chris@10
|
436 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind
|
Chris@10
|
437 integer(C_INT), value :: flags
|
Chris@10
|
438 end function fftw_plan_r2r
|
Chris@10
|
439
|
Chris@10
|
440 type(C_PTR) function fftw_plan_r2r_1d(n,in,out,kind,flags) bind(C, name='fftw_plan_r2r_1d')
|
Chris@10
|
441 import
|
Chris@10
|
442 integer(C_INT), value :: n
|
Chris@10
|
443 real(C_DOUBLE), dimension(*), intent(out) :: in
|
Chris@10
|
444 real(C_DOUBLE), dimension(*), intent(out) :: out
|
Chris@10
|
445 integer(C_FFTW_R2R_KIND), value :: kind
|
Chris@10
|
446 integer(C_INT), value :: flags
|
Chris@10
|
447 end function fftw_plan_r2r_1d
|
Chris@10
|
448
|
Chris@10
|
449 type(C_PTR) function fftw_plan_r2r_2d(n0,n1,in,out,kind0,kind1,flags) bind(C, name='fftw_plan_r2r_2d')
|
Chris@10
|
450 import
|
Chris@10
|
451 integer(C_INT), value :: n0
|
Chris@10
|
452 integer(C_INT), value :: n1
|
Chris@10
|
453 real(C_DOUBLE), dimension(*), intent(out) :: in
|
Chris@10
|
454 real(C_DOUBLE), dimension(*), intent(out) :: out
|
Chris@10
|
455 integer(C_FFTW_R2R_KIND), value :: kind0
|
Chris@10
|
456 integer(C_FFTW_R2R_KIND), value :: kind1
|
Chris@10
|
457 integer(C_INT), value :: flags
|
Chris@10
|
458 end function fftw_plan_r2r_2d
|
Chris@10
|
459
|
Chris@10
|
460 type(C_PTR) function fftw_plan_r2r_3d(n0,n1,n2,in,out,kind0,kind1,kind2,flags) bind(C, name='fftw_plan_r2r_3d')
|
Chris@10
|
461 import
|
Chris@10
|
462 integer(C_INT), value :: n0
|
Chris@10
|
463 integer(C_INT), value :: n1
|
Chris@10
|
464 integer(C_INT), value :: n2
|
Chris@10
|
465 real(C_DOUBLE), dimension(*), intent(out) :: in
|
Chris@10
|
466 real(C_DOUBLE), dimension(*), intent(out) :: out
|
Chris@10
|
467 integer(C_FFTW_R2R_KIND), value :: kind0
|
Chris@10
|
468 integer(C_FFTW_R2R_KIND), value :: kind1
|
Chris@10
|
469 integer(C_FFTW_R2R_KIND), value :: kind2
|
Chris@10
|
470 integer(C_INT), value :: flags
|
Chris@10
|
471 end function fftw_plan_r2r_3d
|
Chris@10
|
472
|
Chris@10
|
473 type(C_PTR) function fftw_plan_guru_r2r(rank,dims,howmany_rank,howmany_dims,in,out,kind,flags) &
|
Chris@10
|
474 bind(C, name='fftw_plan_guru_r2r')
|
Chris@10
|
475 import
|
Chris@10
|
476 integer(C_INT), value :: rank
|
Chris@10
|
477 type(fftw_iodim), dimension(*), intent(in) :: dims
|
Chris@10
|
478 integer(C_INT), value :: howmany_rank
|
Chris@10
|
479 type(fftw_iodim), dimension(*), intent(in) :: howmany_dims
|
Chris@10
|
480 real(C_DOUBLE), dimension(*), intent(out) :: in
|
Chris@10
|
481 real(C_DOUBLE), dimension(*), intent(out) :: out
|
Chris@10
|
482 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind
|
Chris@10
|
483 integer(C_INT), value :: flags
|
Chris@10
|
484 end function fftw_plan_guru_r2r
|
Chris@10
|
485
|
Chris@10
|
486 type(C_PTR) function fftw_plan_guru64_r2r(rank,dims,howmany_rank,howmany_dims,in,out,kind,flags) &
|
Chris@10
|
487 bind(C, name='fftw_plan_guru64_r2r')
|
Chris@10
|
488 import
|
Chris@10
|
489 integer(C_INT), value :: rank
|
Chris@10
|
490 type(fftw_iodim64), dimension(*), intent(in) :: dims
|
Chris@10
|
491 integer(C_INT), value :: howmany_rank
|
Chris@10
|
492 type(fftw_iodim64), dimension(*), intent(in) :: howmany_dims
|
Chris@10
|
493 real(C_DOUBLE), dimension(*), intent(out) :: in
|
Chris@10
|
494 real(C_DOUBLE), dimension(*), intent(out) :: out
|
Chris@10
|
495 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind
|
Chris@10
|
496 integer(C_INT), value :: flags
|
Chris@10
|
497 end function fftw_plan_guru64_r2r
|
Chris@10
|
498
|
Chris@10
|
499 subroutine fftw_execute_r2r(p,in,out) bind(C, name='fftw_execute_r2r')
|
Chris@10
|
500 import
|
Chris@10
|
501 type(C_PTR), value :: p
|
Chris@10
|
502 real(C_DOUBLE), dimension(*), intent(inout) :: in
|
Chris@10
|
503 real(C_DOUBLE), dimension(*), intent(out) :: out
|
Chris@10
|
504 end subroutine fftw_execute_r2r
|
Chris@10
|
505
|
Chris@10
|
506 subroutine fftw_destroy_plan(p) bind(C, name='fftw_destroy_plan')
|
Chris@10
|
507 import
|
Chris@10
|
508 type(C_PTR), value :: p
|
Chris@10
|
509 end subroutine fftw_destroy_plan
|
Chris@10
|
510
|
Chris@10
|
511 subroutine fftw_forget_wisdom() bind(C, name='fftw_forget_wisdom')
|
Chris@10
|
512 import
|
Chris@10
|
513 end subroutine fftw_forget_wisdom
|
Chris@10
|
514
|
Chris@10
|
515 subroutine fftw_cleanup() bind(C, name='fftw_cleanup')
|
Chris@10
|
516 import
|
Chris@10
|
517 end subroutine fftw_cleanup
|
Chris@10
|
518
|
Chris@10
|
519 subroutine fftw_set_timelimit(t) bind(C, name='fftw_set_timelimit')
|
Chris@10
|
520 import
|
Chris@10
|
521 real(C_DOUBLE), value :: t
|
Chris@10
|
522 end subroutine fftw_set_timelimit
|
Chris@10
|
523
|
Chris@10
|
524 subroutine fftw_plan_with_nthreads(nthreads) bind(C, name='fftw_plan_with_nthreads')
|
Chris@10
|
525 import
|
Chris@10
|
526 integer(C_INT), value :: nthreads
|
Chris@10
|
527 end subroutine fftw_plan_with_nthreads
|
Chris@10
|
528
|
Chris@10
|
529 integer(C_INT) function fftw_init_threads() bind(C, name='fftw_init_threads')
|
Chris@10
|
530 import
|
Chris@10
|
531 end function fftw_init_threads
|
Chris@10
|
532
|
Chris@10
|
533 subroutine fftw_cleanup_threads() bind(C, name='fftw_cleanup_threads')
|
Chris@10
|
534 import
|
Chris@10
|
535 end subroutine fftw_cleanup_threads
|
Chris@10
|
536
|
Chris@10
|
537 integer(C_INT) function fftw_export_wisdom_to_filename(filename) bind(C, name='fftw_export_wisdom_to_filename')
|
Chris@10
|
538 import
|
Chris@10
|
539 character(C_CHAR), dimension(*), intent(in) :: filename
|
Chris@10
|
540 end function fftw_export_wisdom_to_filename
|
Chris@10
|
541
|
Chris@10
|
542 subroutine fftw_export_wisdom_to_file(output_file) bind(C, name='fftw_export_wisdom_to_file')
|
Chris@10
|
543 import
|
Chris@10
|
544 type(C_PTR), value :: output_file
|
Chris@10
|
545 end subroutine fftw_export_wisdom_to_file
|
Chris@10
|
546
|
Chris@10
|
547 type(C_PTR) function fftw_export_wisdom_to_string() bind(C, name='fftw_export_wisdom_to_string')
|
Chris@10
|
548 import
|
Chris@10
|
549 end function fftw_export_wisdom_to_string
|
Chris@10
|
550
|
Chris@10
|
551 subroutine fftw_export_wisdom(write_char,data) bind(C, name='fftw_export_wisdom')
|
Chris@10
|
552 import
|
Chris@10
|
553 type(C_FUNPTR), value :: write_char
|
Chris@10
|
554 type(C_PTR), value :: data
|
Chris@10
|
555 end subroutine fftw_export_wisdom
|
Chris@10
|
556
|
Chris@10
|
557 integer(C_INT) function fftw_import_system_wisdom() bind(C, name='fftw_import_system_wisdom')
|
Chris@10
|
558 import
|
Chris@10
|
559 end function fftw_import_system_wisdom
|
Chris@10
|
560
|
Chris@10
|
561 integer(C_INT) function fftw_import_wisdom_from_filename(filename) bind(C, name='fftw_import_wisdom_from_filename')
|
Chris@10
|
562 import
|
Chris@10
|
563 character(C_CHAR), dimension(*), intent(in) :: filename
|
Chris@10
|
564 end function fftw_import_wisdom_from_filename
|
Chris@10
|
565
|
Chris@10
|
566 integer(C_INT) function fftw_import_wisdom_from_file(input_file) bind(C, name='fftw_import_wisdom_from_file')
|
Chris@10
|
567 import
|
Chris@10
|
568 type(C_PTR), value :: input_file
|
Chris@10
|
569 end function fftw_import_wisdom_from_file
|
Chris@10
|
570
|
Chris@10
|
571 integer(C_INT) function fftw_import_wisdom_from_string(input_string) bind(C, name='fftw_import_wisdom_from_string')
|
Chris@10
|
572 import
|
Chris@10
|
573 character(C_CHAR), dimension(*), intent(in) :: input_string
|
Chris@10
|
574 end function fftw_import_wisdom_from_string
|
Chris@10
|
575
|
Chris@10
|
576 integer(C_INT) function fftw_import_wisdom(read_char,data) bind(C, name='fftw_import_wisdom')
|
Chris@10
|
577 import
|
Chris@10
|
578 type(C_FUNPTR), value :: read_char
|
Chris@10
|
579 type(C_PTR), value :: data
|
Chris@10
|
580 end function fftw_import_wisdom
|
Chris@10
|
581
|
Chris@10
|
582 subroutine fftw_fprint_plan(p,output_file) bind(C, name='fftw_fprint_plan')
|
Chris@10
|
583 import
|
Chris@10
|
584 type(C_PTR), value :: p
|
Chris@10
|
585 type(C_PTR), value :: output_file
|
Chris@10
|
586 end subroutine fftw_fprint_plan
|
Chris@10
|
587
|
Chris@10
|
588 subroutine fftw_print_plan(p) bind(C, name='fftw_print_plan')
|
Chris@10
|
589 import
|
Chris@10
|
590 type(C_PTR), value :: p
|
Chris@10
|
591 end subroutine fftw_print_plan
|
Chris@10
|
592
|
Chris@10
|
593 type(C_PTR) function fftw_malloc(n) bind(C, name='fftw_malloc')
|
Chris@10
|
594 import
|
Chris@10
|
595 integer(C_SIZE_T), value :: n
|
Chris@10
|
596 end function fftw_malloc
|
Chris@10
|
597
|
Chris@10
|
598 type(C_PTR) function fftw_alloc_real(n) bind(C, name='fftw_alloc_real')
|
Chris@10
|
599 import
|
Chris@10
|
600 integer(C_SIZE_T), value :: n
|
Chris@10
|
601 end function fftw_alloc_real
|
Chris@10
|
602
|
Chris@10
|
603 type(C_PTR) function fftw_alloc_complex(n) bind(C, name='fftw_alloc_complex')
|
Chris@10
|
604 import
|
Chris@10
|
605 integer(C_SIZE_T), value :: n
|
Chris@10
|
606 end function fftw_alloc_complex
|
Chris@10
|
607
|
Chris@10
|
608 subroutine fftw_free(p) bind(C, name='fftw_free')
|
Chris@10
|
609 import
|
Chris@10
|
610 type(C_PTR), value :: p
|
Chris@10
|
611 end subroutine fftw_free
|
Chris@10
|
612
|
Chris@10
|
613 subroutine fftw_flops(p,add,mul,fmas) bind(C, name='fftw_flops')
|
Chris@10
|
614 import
|
Chris@10
|
615 type(C_PTR), value :: p
|
Chris@10
|
616 real(C_DOUBLE), intent(out) :: add
|
Chris@10
|
617 real(C_DOUBLE), intent(out) :: mul
|
Chris@10
|
618 real(C_DOUBLE), intent(out) :: fmas
|
Chris@10
|
619 end subroutine fftw_flops
|
Chris@10
|
620
|
Chris@10
|
621 real(C_DOUBLE) function fftw_estimate_cost(p) bind(C, name='fftw_estimate_cost')
|
Chris@10
|
622 import
|
Chris@10
|
623 type(C_PTR), value :: p
|
Chris@10
|
624 end function fftw_estimate_cost
|
Chris@10
|
625
|
Chris@10
|
626 real(C_DOUBLE) function fftw_cost(p) bind(C, name='fftw_cost')
|
Chris@10
|
627 import
|
Chris@10
|
628 type(C_PTR), value :: p
|
Chris@10
|
629 end function fftw_cost
|
Chris@10
|
630
|
Chris@10
|
631 end interface
|
Chris@10
|
632
|
Chris@10
|
633 type, bind(C) :: fftwf_iodim
|
Chris@10
|
634 integer(C_INT) n, is, os
|
Chris@10
|
635 end type fftwf_iodim
|
Chris@10
|
636 type, bind(C) :: fftwf_iodim64
|
Chris@10
|
637 integer(C_INTPTR_T) n, is, os
|
Chris@10
|
638 end type fftwf_iodim64
|
Chris@10
|
639
|
Chris@10
|
640 interface
|
Chris@10
|
641 type(C_PTR) function fftwf_plan_dft(rank,n,in,out,sign,flags) bind(C, name='fftwf_plan_dft')
|
Chris@10
|
642 import
|
Chris@10
|
643 integer(C_INT), value :: rank
|
Chris@10
|
644 integer(C_INT), dimension(*), intent(in) :: n
|
Chris@10
|
645 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in
|
Chris@10
|
646 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
|
Chris@10
|
647 integer(C_INT), value :: sign
|
Chris@10
|
648 integer(C_INT), value :: flags
|
Chris@10
|
649 end function fftwf_plan_dft
|
Chris@10
|
650
|
Chris@10
|
651 type(C_PTR) function fftwf_plan_dft_1d(n,in,out,sign,flags) bind(C, name='fftwf_plan_dft_1d')
|
Chris@10
|
652 import
|
Chris@10
|
653 integer(C_INT), value :: n
|
Chris@10
|
654 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in
|
Chris@10
|
655 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
|
Chris@10
|
656 integer(C_INT), value :: sign
|
Chris@10
|
657 integer(C_INT), value :: flags
|
Chris@10
|
658 end function fftwf_plan_dft_1d
|
Chris@10
|
659
|
Chris@10
|
660 type(C_PTR) function fftwf_plan_dft_2d(n0,n1,in,out,sign,flags) bind(C, name='fftwf_plan_dft_2d')
|
Chris@10
|
661 import
|
Chris@10
|
662 integer(C_INT), value :: n0
|
Chris@10
|
663 integer(C_INT), value :: n1
|
Chris@10
|
664 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in
|
Chris@10
|
665 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
|
Chris@10
|
666 integer(C_INT), value :: sign
|
Chris@10
|
667 integer(C_INT), value :: flags
|
Chris@10
|
668 end function fftwf_plan_dft_2d
|
Chris@10
|
669
|
Chris@10
|
670 type(C_PTR) function fftwf_plan_dft_3d(n0,n1,n2,in,out,sign,flags) bind(C, name='fftwf_plan_dft_3d')
|
Chris@10
|
671 import
|
Chris@10
|
672 integer(C_INT), value :: n0
|
Chris@10
|
673 integer(C_INT), value :: n1
|
Chris@10
|
674 integer(C_INT), value :: n2
|
Chris@10
|
675 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in
|
Chris@10
|
676 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
|
Chris@10
|
677 integer(C_INT), value :: sign
|
Chris@10
|
678 integer(C_INT), value :: flags
|
Chris@10
|
679 end function fftwf_plan_dft_3d
|
Chris@10
|
680
|
Chris@10
|
681 type(C_PTR) function fftwf_plan_many_dft(rank,n,howmany,in,inembed,istride,idist,out,onembed,ostride,odist,sign,flags) &
|
Chris@10
|
682 bind(C, name='fftwf_plan_many_dft')
|
Chris@10
|
683 import
|
Chris@10
|
684 integer(C_INT), value :: rank
|
Chris@10
|
685 integer(C_INT), dimension(*), intent(in) :: n
|
Chris@10
|
686 integer(C_INT), value :: howmany
|
Chris@10
|
687 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in
|
Chris@10
|
688 integer(C_INT), dimension(*), intent(in) :: inembed
|
Chris@10
|
689 integer(C_INT), value :: istride
|
Chris@10
|
690 integer(C_INT), value :: idist
|
Chris@10
|
691 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
|
Chris@10
|
692 integer(C_INT), dimension(*), intent(in) :: onembed
|
Chris@10
|
693 integer(C_INT), value :: ostride
|
Chris@10
|
694 integer(C_INT), value :: odist
|
Chris@10
|
695 integer(C_INT), value :: sign
|
Chris@10
|
696 integer(C_INT), value :: flags
|
Chris@10
|
697 end function fftwf_plan_many_dft
|
Chris@10
|
698
|
Chris@10
|
699 type(C_PTR) function fftwf_plan_guru_dft(rank,dims,howmany_rank,howmany_dims,in,out,sign,flags) &
|
Chris@10
|
700 bind(C, name='fftwf_plan_guru_dft')
|
Chris@10
|
701 import
|
Chris@10
|
702 integer(C_INT), value :: rank
|
Chris@10
|
703 type(fftwf_iodim), dimension(*), intent(in) :: dims
|
Chris@10
|
704 integer(C_INT), value :: howmany_rank
|
Chris@10
|
705 type(fftwf_iodim), dimension(*), intent(in) :: howmany_dims
|
Chris@10
|
706 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in
|
Chris@10
|
707 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
|
Chris@10
|
708 integer(C_INT), value :: sign
|
Chris@10
|
709 integer(C_INT), value :: flags
|
Chris@10
|
710 end function fftwf_plan_guru_dft
|
Chris@10
|
711
|
Chris@10
|
712 type(C_PTR) function fftwf_plan_guru_split_dft(rank,dims,howmany_rank,howmany_dims,ri,ii,ro,io,flags) &
|
Chris@10
|
713 bind(C, name='fftwf_plan_guru_split_dft')
|
Chris@10
|
714 import
|
Chris@10
|
715 integer(C_INT), value :: rank
|
Chris@10
|
716 type(fftwf_iodim), dimension(*), intent(in) :: dims
|
Chris@10
|
717 integer(C_INT), value :: howmany_rank
|
Chris@10
|
718 type(fftwf_iodim), dimension(*), intent(in) :: howmany_dims
|
Chris@10
|
719 real(C_FLOAT), dimension(*), intent(out) :: ri
|
Chris@10
|
720 real(C_FLOAT), dimension(*), intent(out) :: ii
|
Chris@10
|
721 real(C_FLOAT), dimension(*), intent(out) :: ro
|
Chris@10
|
722 real(C_FLOAT), dimension(*), intent(out) :: io
|
Chris@10
|
723 integer(C_INT), value :: flags
|
Chris@10
|
724 end function fftwf_plan_guru_split_dft
|
Chris@10
|
725
|
Chris@10
|
726 type(C_PTR) function fftwf_plan_guru64_dft(rank,dims,howmany_rank,howmany_dims,in,out,sign,flags) &
|
Chris@10
|
727 bind(C, name='fftwf_plan_guru64_dft')
|
Chris@10
|
728 import
|
Chris@10
|
729 integer(C_INT), value :: rank
|
Chris@10
|
730 type(fftwf_iodim64), dimension(*), intent(in) :: dims
|
Chris@10
|
731 integer(C_INT), value :: howmany_rank
|
Chris@10
|
732 type(fftwf_iodim64), dimension(*), intent(in) :: howmany_dims
|
Chris@10
|
733 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in
|
Chris@10
|
734 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
|
Chris@10
|
735 integer(C_INT), value :: sign
|
Chris@10
|
736 integer(C_INT), value :: flags
|
Chris@10
|
737 end function fftwf_plan_guru64_dft
|
Chris@10
|
738
|
Chris@10
|
739 type(C_PTR) function fftwf_plan_guru64_split_dft(rank,dims,howmany_rank,howmany_dims,ri,ii,ro,io,flags) &
|
Chris@10
|
740 bind(C, name='fftwf_plan_guru64_split_dft')
|
Chris@10
|
741 import
|
Chris@10
|
742 integer(C_INT), value :: rank
|
Chris@10
|
743 type(fftwf_iodim64), dimension(*), intent(in) :: dims
|
Chris@10
|
744 integer(C_INT), value :: howmany_rank
|
Chris@10
|
745 type(fftwf_iodim64), dimension(*), intent(in) :: howmany_dims
|
Chris@10
|
746 real(C_FLOAT), dimension(*), intent(out) :: ri
|
Chris@10
|
747 real(C_FLOAT), dimension(*), intent(out) :: ii
|
Chris@10
|
748 real(C_FLOAT), dimension(*), intent(out) :: ro
|
Chris@10
|
749 real(C_FLOAT), dimension(*), intent(out) :: io
|
Chris@10
|
750 integer(C_INT), value :: flags
|
Chris@10
|
751 end function fftwf_plan_guru64_split_dft
|
Chris@10
|
752
|
Chris@10
|
753 subroutine fftwf_execute_dft(p,in,out) bind(C, name='fftwf_execute_dft')
|
Chris@10
|
754 import
|
Chris@10
|
755 type(C_PTR), value :: p
|
Chris@10
|
756 complex(C_FLOAT_COMPLEX), dimension(*), intent(inout) :: in
|
Chris@10
|
757 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
|
Chris@10
|
758 end subroutine fftwf_execute_dft
|
Chris@10
|
759
|
Chris@10
|
760 subroutine fftwf_execute_split_dft(p,ri,ii,ro,io) bind(C, name='fftwf_execute_split_dft')
|
Chris@10
|
761 import
|
Chris@10
|
762 type(C_PTR), value :: p
|
Chris@10
|
763 real(C_FLOAT), dimension(*), intent(inout) :: ri
|
Chris@10
|
764 real(C_FLOAT), dimension(*), intent(inout) :: ii
|
Chris@10
|
765 real(C_FLOAT), dimension(*), intent(out) :: ro
|
Chris@10
|
766 real(C_FLOAT), dimension(*), intent(out) :: io
|
Chris@10
|
767 end subroutine fftwf_execute_split_dft
|
Chris@10
|
768
|
Chris@10
|
769 type(C_PTR) function fftwf_plan_many_dft_r2c(rank,n,howmany,in,inembed,istride,idist,out,onembed,ostride,odist,flags) &
|
Chris@10
|
770 bind(C, name='fftwf_plan_many_dft_r2c')
|
Chris@10
|
771 import
|
Chris@10
|
772 integer(C_INT), value :: rank
|
Chris@10
|
773 integer(C_INT), dimension(*), intent(in) :: n
|
Chris@10
|
774 integer(C_INT), value :: howmany
|
Chris@10
|
775 real(C_FLOAT), dimension(*), intent(out) :: in
|
Chris@10
|
776 integer(C_INT), dimension(*), intent(in) :: inembed
|
Chris@10
|
777 integer(C_INT), value :: istride
|
Chris@10
|
778 integer(C_INT), value :: idist
|
Chris@10
|
779 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
|
Chris@10
|
780 integer(C_INT), dimension(*), intent(in) :: onembed
|
Chris@10
|
781 integer(C_INT), value :: ostride
|
Chris@10
|
782 integer(C_INT), value :: odist
|
Chris@10
|
783 integer(C_INT), value :: flags
|
Chris@10
|
784 end function fftwf_plan_many_dft_r2c
|
Chris@10
|
785
|
Chris@10
|
786 type(C_PTR) function fftwf_plan_dft_r2c(rank,n,in,out,flags) bind(C, name='fftwf_plan_dft_r2c')
|
Chris@10
|
787 import
|
Chris@10
|
788 integer(C_INT), value :: rank
|
Chris@10
|
789 integer(C_INT), dimension(*), intent(in) :: n
|
Chris@10
|
790 real(C_FLOAT), dimension(*), intent(out) :: in
|
Chris@10
|
791 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
|
Chris@10
|
792 integer(C_INT), value :: flags
|
Chris@10
|
793 end function fftwf_plan_dft_r2c
|
Chris@10
|
794
|
Chris@10
|
795 type(C_PTR) function fftwf_plan_dft_r2c_1d(n,in,out,flags) bind(C, name='fftwf_plan_dft_r2c_1d')
|
Chris@10
|
796 import
|
Chris@10
|
797 integer(C_INT), value :: n
|
Chris@10
|
798 real(C_FLOAT), dimension(*), intent(out) :: in
|
Chris@10
|
799 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
|
Chris@10
|
800 integer(C_INT), value :: flags
|
Chris@10
|
801 end function fftwf_plan_dft_r2c_1d
|
Chris@10
|
802
|
Chris@10
|
803 type(C_PTR) function fftwf_plan_dft_r2c_2d(n0,n1,in,out,flags) bind(C, name='fftwf_plan_dft_r2c_2d')
|
Chris@10
|
804 import
|
Chris@10
|
805 integer(C_INT), value :: n0
|
Chris@10
|
806 integer(C_INT), value :: n1
|
Chris@10
|
807 real(C_FLOAT), dimension(*), intent(out) :: in
|
Chris@10
|
808 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
|
Chris@10
|
809 integer(C_INT), value :: flags
|
Chris@10
|
810 end function fftwf_plan_dft_r2c_2d
|
Chris@10
|
811
|
Chris@10
|
812 type(C_PTR) function fftwf_plan_dft_r2c_3d(n0,n1,n2,in,out,flags) bind(C, name='fftwf_plan_dft_r2c_3d')
|
Chris@10
|
813 import
|
Chris@10
|
814 integer(C_INT), value :: n0
|
Chris@10
|
815 integer(C_INT), value :: n1
|
Chris@10
|
816 integer(C_INT), value :: n2
|
Chris@10
|
817 real(C_FLOAT), dimension(*), intent(out) :: in
|
Chris@10
|
818 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
|
Chris@10
|
819 integer(C_INT), value :: flags
|
Chris@10
|
820 end function fftwf_plan_dft_r2c_3d
|
Chris@10
|
821
|
Chris@10
|
822 type(C_PTR) function fftwf_plan_many_dft_c2r(rank,n,howmany,in,inembed,istride,idist,out,onembed,ostride,odist,flags) &
|
Chris@10
|
823 bind(C, name='fftwf_plan_many_dft_c2r')
|
Chris@10
|
824 import
|
Chris@10
|
825 integer(C_INT), value :: rank
|
Chris@10
|
826 integer(C_INT), dimension(*), intent(in) :: n
|
Chris@10
|
827 integer(C_INT), value :: howmany
|
Chris@10
|
828 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in
|
Chris@10
|
829 integer(C_INT), dimension(*), intent(in) :: inembed
|
Chris@10
|
830 integer(C_INT), value :: istride
|
Chris@10
|
831 integer(C_INT), value :: idist
|
Chris@10
|
832 real(C_FLOAT), dimension(*), intent(out) :: out
|
Chris@10
|
833 integer(C_INT), dimension(*), intent(in) :: onembed
|
Chris@10
|
834 integer(C_INT), value :: ostride
|
Chris@10
|
835 integer(C_INT), value :: odist
|
Chris@10
|
836 integer(C_INT), value :: flags
|
Chris@10
|
837 end function fftwf_plan_many_dft_c2r
|
Chris@10
|
838
|
Chris@10
|
839 type(C_PTR) function fftwf_plan_dft_c2r(rank,n,in,out,flags) bind(C, name='fftwf_plan_dft_c2r')
|
Chris@10
|
840 import
|
Chris@10
|
841 integer(C_INT), value :: rank
|
Chris@10
|
842 integer(C_INT), dimension(*), intent(in) :: n
|
Chris@10
|
843 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in
|
Chris@10
|
844 real(C_FLOAT), dimension(*), intent(out) :: out
|
Chris@10
|
845 integer(C_INT), value :: flags
|
Chris@10
|
846 end function fftwf_plan_dft_c2r
|
Chris@10
|
847
|
Chris@10
|
848 type(C_PTR) function fftwf_plan_dft_c2r_1d(n,in,out,flags) bind(C, name='fftwf_plan_dft_c2r_1d')
|
Chris@10
|
849 import
|
Chris@10
|
850 integer(C_INT), value :: n
|
Chris@10
|
851 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in
|
Chris@10
|
852 real(C_FLOAT), dimension(*), intent(out) :: out
|
Chris@10
|
853 integer(C_INT), value :: flags
|
Chris@10
|
854 end function fftwf_plan_dft_c2r_1d
|
Chris@10
|
855
|
Chris@10
|
856 type(C_PTR) function fftwf_plan_dft_c2r_2d(n0,n1,in,out,flags) bind(C, name='fftwf_plan_dft_c2r_2d')
|
Chris@10
|
857 import
|
Chris@10
|
858 integer(C_INT), value :: n0
|
Chris@10
|
859 integer(C_INT), value :: n1
|
Chris@10
|
860 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in
|
Chris@10
|
861 real(C_FLOAT), dimension(*), intent(out) :: out
|
Chris@10
|
862 integer(C_INT), value :: flags
|
Chris@10
|
863 end function fftwf_plan_dft_c2r_2d
|
Chris@10
|
864
|
Chris@10
|
865 type(C_PTR) function fftwf_plan_dft_c2r_3d(n0,n1,n2,in,out,flags) bind(C, name='fftwf_plan_dft_c2r_3d')
|
Chris@10
|
866 import
|
Chris@10
|
867 integer(C_INT), value :: n0
|
Chris@10
|
868 integer(C_INT), value :: n1
|
Chris@10
|
869 integer(C_INT), value :: n2
|
Chris@10
|
870 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in
|
Chris@10
|
871 real(C_FLOAT), dimension(*), intent(out) :: out
|
Chris@10
|
872 integer(C_INT), value :: flags
|
Chris@10
|
873 end function fftwf_plan_dft_c2r_3d
|
Chris@10
|
874
|
Chris@10
|
875 type(C_PTR) function fftwf_plan_guru_dft_r2c(rank,dims,howmany_rank,howmany_dims,in,out,flags) &
|
Chris@10
|
876 bind(C, name='fftwf_plan_guru_dft_r2c')
|
Chris@10
|
877 import
|
Chris@10
|
878 integer(C_INT), value :: rank
|
Chris@10
|
879 type(fftwf_iodim), dimension(*), intent(in) :: dims
|
Chris@10
|
880 integer(C_INT), value :: howmany_rank
|
Chris@10
|
881 type(fftwf_iodim), dimension(*), intent(in) :: howmany_dims
|
Chris@10
|
882 real(C_FLOAT), dimension(*), intent(out) :: in
|
Chris@10
|
883 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
|
Chris@10
|
884 integer(C_INT), value :: flags
|
Chris@10
|
885 end function fftwf_plan_guru_dft_r2c
|
Chris@10
|
886
|
Chris@10
|
887 type(C_PTR) function fftwf_plan_guru_dft_c2r(rank,dims,howmany_rank,howmany_dims,in,out,flags) &
|
Chris@10
|
888 bind(C, name='fftwf_plan_guru_dft_c2r')
|
Chris@10
|
889 import
|
Chris@10
|
890 integer(C_INT), value :: rank
|
Chris@10
|
891 type(fftwf_iodim), dimension(*), intent(in) :: dims
|
Chris@10
|
892 integer(C_INT), value :: howmany_rank
|
Chris@10
|
893 type(fftwf_iodim), dimension(*), intent(in) :: howmany_dims
|
Chris@10
|
894 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in
|
Chris@10
|
895 real(C_FLOAT), dimension(*), intent(out) :: out
|
Chris@10
|
896 integer(C_INT), value :: flags
|
Chris@10
|
897 end function fftwf_plan_guru_dft_c2r
|
Chris@10
|
898
|
Chris@10
|
899 type(C_PTR) function fftwf_plan_guru_split_dft_r2c(rank,dims,howmany_rank,howmany_dims,in,ro,io,flags) &
|
Chris@10
|
900 bind(C, name='fftwf_plan_guru_split_dft_r2c')
|
Chris@10
|
901 import
|
Chris@10
|
902 integer(C_INT), value :: rank
|
Chris@10
|
903 type(fftwf_iodim), dimension(*), intent(in) :: dims
|
Chris@10
|
904 integer(C_INT), value :: howmany_rank
|
Chris@10
|
905 type(fftwf_iodim), dimension(*), intent(in) :: howmany_dims
|
Chris@10
|
906 real(C_FLOAT), dimension(*), intent(out) :: in
|
Chris@10
|
907 real(C_FLOAT), dimension(*), intent(out) :: ro
|
Chris@10
|
908 real(C_FLOAT), dimension(*), intent(out) :: io
|
Chris@10
|
909 integer(C_INT), value :: flags
|
Chris@10
|
910 end function fftwf_plan_guru_split_dft_r2c
|
Chris@10
|
911
|
Chris@10
|
912 type(C_PTR) function fftwf_plan_guru_split_dft_c2r(rank,dims,howmany_rank,howmany_dims,ri,ii,out,flags) &
|
Chris@10
|
913 bind(C, name='fftwf_plan_guru_split_dft_c2r')
|
Chris@10
|
914 import
|
Chris@10
|
915 integer(C_INT), value :: rank
|
Chris@10
|
916 type(fftwf_iodim), dimension(*), intent(in) :: dims
|
Chris@10
|
917 integer(C_INT), value :: howmany_rank
|
Chris@10
|
918 type(fftwf_iodim), dimension(*), intent(in) :: howmany_dims
|
Chris@10
|
919 real(C_FLOAT), dimension(*), intent(out) :: ri
|
Chris@10
|
920 real(C_FLOAT), dimension(*), intent(out) :: ii
|
Chris@10
|
921 real(C_FLOAT), dimension(*), intent(out) :: out
|
Chris@10
|
922 integer(C_INT), value :: flags
|
Chris@10
|
923 end function fftwf_plan_guru_split_dft_c2r
|
Chris@10
|
924
|
Chris@10
|
925 type(C_PTR) function fftwf_plan_guru64_dft_r2c(rank,dims,howmany_rank,howmany_dims,in,out,flags) &
|
Chris@10
|
926 bind(C, name='fftwf_plan_guru64_dft_r2c')
|
Chris@10
|
927 import
|
Chris@10
|
928 integer(C_INT), value :: rank
|
Chris@10
|
929 type(fftwf_iodim64), dimension(*), intent(in) :: dims
|
Chris@10
|
930 integer(C_INT), value :: howmany_rank
|
Chris@10
|
931 type(fftwf_iodim64), dimension(*), intent(in) :: howmany_dims
|
Chris@10
|
932 real(C_FLOAT), dimension(*), intent(out) :: in
|
Chris@10
|
933 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
|
Chris@10
|
934 integer(C_INT), value :: flags
|
Chris@10
|
935 end function fftwf_plan_guru64_dft_r2c
|
Chris@10
|
936
|
Chris@10
|
937 type(C_PTR) function fftwf_plan_guru64_dft_c2r(rank,dims,howmany_rank,howmany_dims,in,out,flags) &
|
Chris@10
|
938 bind(C, name='fftwf_plan_guru64_dft_c2r')
|
Chris@10
|
939 import
|
Chris@10
|
940 integer(C_INT), value :: rank
|
Chris@10
|
941 type(fftwf_iodim64), dimension(*), intent(in) :: dims
|
Chris@10
|
942 integer(C_INT), value :: howmany_rank
|
Chris@10
|
943 type(fftwf_iodim64), dimension(*), intent(in) :: howmany_dims
|
Chris@10
|
944 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in
|
Chris@10
|
945 real(C_FLOAT), dimension(*), intent(out) :: out
|
Chris@10
|
946 integer(C_INT), value :: flags
|
Chris@10
|
947 end function fftwf_plan_guru64_dft_c2r
|
Chris@10
|
948
|
Chris@10
|
949 type(C_PTR) function fftwf_plan_guru64_split_dft_r2c(rank,dims,howmany_rank,howmany_dims,in,ro,io,flags) &
|
Chris@10
|
950 bind(C, name='fftwf_plan_guru64_split_dft_r2c')
|
Chris@10
|
951 import
|
Chris@10
|
952 integer(C_INT), value :: rank
|
Chris@10
|
953 type(fftwf_iodim64), dimension(*), intent(in) :: dims
|
Chris@10
|
954 integer(C_INT), value :: howmany_rank
|
Chris@10
|
955 type(fftwf_iodim64), dimension(*), intent(in) :: howmany_dims
|
Chris@10
|
956 real(C_FLOAT), dimension(*), intent(out) :: in
|
Chris@10
|
957 real(C_FLOAT), dimension(*), intent(out) :: ro
|
Chris@10
|
958 real(C_FLOAT), dimension(*), intent(out) :: io
|
Chris@10
|
959 integer(C_INT), value :: flags
|
Chris@10
|
960 end function fftwf_plan_guru64_split_dft_r2c
|
Chris@10
|
961
|
Chris@10
|
962 type(C_PTR) function fftwf_plan_guru64_split_dft_c2r(rank,dims,howmany_rank,howmany_dims,ri,ii,out,flags) &
|
Chris@10
|
963 bind(C, name='fftwf_plan_guru64_split_dft_c2r')
|
Chris@10
|
964 import
|
Chris@10
|
965 integer(C_INT), value :: rank
|
Chris@10
|
966 type(fftwf_iodim64), dimension(*), intent(in) :: dims
|
Chris@10
|
967 integer(C_INT), value :: howmany_rank
|
Chris@10
|
968 type(fftwf_iodim64), dimension(*), intent(in) :: howmany_dims
|
Chris@10
|
969 real(C_FLOAT), dimension(*), intent(out) :: ri
|
Chris@10
|
970 real(C_FLOAT), dimension(*), intent(out) :: ii
|
Chris@10
|
971 real(C_FLOAT), dimension(*), intent(out) :: out
|
Chris@10
|
972 integer(C_INT), value :: flags
|
Chris@10
|
973 end function fftwf_plan_guru64_split_dft_c2r
|
Chris@10
|
974
|
Chris@10
|
975 subroutine fftwf_execute_dft_r2c(p,in,out) bind(C, name='fftwf_execute_dft_r2c')
|
Chris@10
|
976 import
|
Chris@10
|
977 type(C_PTR), value :: p
|
Chris@10
|
978 real(C_FLOAT), dimension(*), intent(inout) :: in
|
Chris@10
|
979 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out
|
Chris@10
|
980 end subroutine fftwf_execute_dft_r2c
|
Chris@10
|
981
|
Chris@10
|
982 subroutine fftwf_execute_dft_c2r(p,in,out) bind(C, name='fftwf_execute_dft_c2r')
|
Chris@10
|
983 import
|
Chris@10
|
984 type(C_PTR), value :: p
|
Chris@10
|
985 complex(C_FLOAT_COMPLEX), dimension(*), intent(inout) :: in
|
Chris@10
|
986 real(C_FLOAT), dimension(*), intent(out) :: out
|
Chris@10
|
987 end subroutine fftwf_execute_dft_c2r
|
Chris@10
|
988
|
Chris@10
|
989 subroutine fftwf_execute_split_dft_r2c(p,in,ro,io) bind(C, name='fftwf_execute_split_dft_r2c')
|
Chris@10
|
990 import
|
Chris@10
|
991 type(C_PTR), value :: p
|
Chris@10
|
992 real(C_FLOAT), dimension(*), intent(inout) :: in
|
Chris@10
|
993 real(C_FLOAT), dimension(*), intent(out) :: ro
|
Chris@10
|
994 real(C_FLOAT), dimension(*), intent(out) :: io
|
Chris@10
|
995 end subroutine fftwf_execute_split_dft_r2c
|
Chris@10
|
996
|
Chris@10
|
997 subroutine fftwf_execute_split_dft_c2r(p,ri,ii,out) bind(C, name='fftwf_execute_split_dft_c2r')
|
Chris@10
|
998 import
|
Chris@10
|
999 type(C_PTR), value :: p
|
Chris@10
|
1000 real(C_FLOAT), dimension(*), intent(inout) :: ri
|
Chris@10
|
1001 real(C_FLOAT), dimension(*), intent(inout) :: ii
|
Chris@10
|
1002 real(C_FLOAT), dimension(*), intent(out) :: out
|
Chris@10
|
1003 end subroutine fftwf_execute_split_dft_c2r
|
Chris@10
|
1004
|
Chris@10
|
1005 type(C_PTR) function fftwf_plan_many_r2r(rank,n,howmany,in,inembed,istride,idist,out,onembed,ostride,odist,kind,flags) &
|
Chris@10
|
1006 bind(C, name='fftwf_plan_many_r2r')
|
Chris@10
|
1007 import
|
Chris@10
|
1008 integer(C_INT), value :: rank
|
Chris@10
|
1009 integer(C_INT), dimension(*), intent(in) :: n
|
Chris@10
|
1010 integer(C_INT), value :: howmany
|
Chris@10
|
1011 real(C_FLOAT), dimension(*), intent(out) :: in
|
Chris@10
|
1012 integer(C_INT), dimension(*), intent(in) :: inembed
|
Chris@10
|
1013 integer(C_INT), value :: istride
|
Chris@10
|
1014 integer(C_INT), value :: idist
|
Chris@10
|
1015 real(C_FLOAT), dimension(*), intent(out) :: out
|
Chris@10
|
1016 integer(C_INT), dimension(*), intent(in) :: onembed
|
Chris@10
|
1017 integer(C_INT), value :: ostride
|
Chris@10
|
1018 integer(C_INT), value :: odist
|
Chris@10
|
1019 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind
|
Chris@10
|
1020 integer(C_INT), value :: flags
|
Chris@10
|
1021 end function fftwf_plan_many_r2r
|
Chris@10
|
1022
|
Chris@10
|
1023 type(C_PTR) function fftwf_plan_r2r(rank,n,in,out,kind,flags) bind(C, name='fftwf_plan_r2r')
|
Chris@10
|
1024 import
|
Chris@10
|
1025 integer(C_INT), value :: rank
|
Chris@10
|
1026 integer(C_INT), dimension(*), intent(in) :: n
|
Chris@10
|
1027 real(C_FLOAT), dimension(*), intent(out) :: in
|
Chris@10
|
1028 real(C_FLOAT), dimension(*), intent(out) :: out
|
Chris@10
|
1029 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind
|
Chris@10
|
1030 integer(C_INT), value :: flags
|
Chris@10
|
1031 end function fftwf_plan_r2r
|
Chris@10
|
1032
|
Chris@10
|
1033 type(C_PTR) function fftwf_plan_r2r_1d(n,in,out,kind,flags) bind(C, name='fftwf_plan_r2r_1d')
|
Chris@10
|
1034 import
|
Chris@10
|
1035 integer(C_INT), value :: n
|
Chris@10
|
1036 real(C_FLOAT), dimension(*), intent(out) :: in
|
Chris@10
|
1037 real(C_FLOAT), dimension(*), intent(out) :: out
|
Chris@10
|
1038 integer(C_FFTW_R2R_KIND), value :: kind
|
Chris@10
|
1039 integer(C_INT), value :: flags
|
Chris@10
|
1040 end function fftwf_plan_r2r_1d
|
Chris@10
|
1041
|
Chris@10
|
1042 type(C_PTR) function fftwf_plan_r2r_2d(n0,n1,in,out,kind0,kind1,flags) bind(C, name='fftwf_plan_r2r_2d')
|
Chris@10
|
1043 import
|
Chris@10
|
1044 integer(C_INT), value :: n0
|
Chris@10
|
1045 integer(C_INT), value :: n1
|
Chris@10
|
1046 real(C_FLOAT), dimension(*), intent(out) :: in
|
Chris@10
|
1047 real(C_FLOAT), dimension(*), intent(out) :: out
|
Chris@10
|
1048 integer(C_FFTW_R2R_KIND), value :: kind0
|
Chris@10
|
1049 integer(C_FFTW_R2R_KIND), value :: kind1
|
Chris@10
|
1050 integer(C_INT), value :: flags
|
Chris@10
|
1051 end function fftwf_plan_r2r_2d
|
Chris@10
|
1052
|
Chris@10
|
1053 type(C_PTR) function fftwf_plan_r2r_3d(n0,n1,n2,in,out,kind0,kind1,kind2,flags) bind(C, name='fftwf_plan_r2r_3d')
|
Chris@10
|
1054 import
|
Chris@10
|
1055 integer(C_INT), value :: n0
|
Chris@10
|
1056 integer(C_INT), value :: n1
|
Chris@10
|
1057 integer(C_INT), value :: n2
|
Chris@10
|
1058 real(C_FLOAT), dimension(*), intent(out) :: in
|
Chris@10
|
1059 real(C_FLOAT), dimension(*), intent(out) :: out
|
Chris@10
|
1060 integer(C_FFTW_R2R_KIND), value :: kind0
|
Chris@10
|
1061 integer(C_FFTW_R2R_KIND), value :: kind1
|
Chris@10
|
1062 integer(C_FFTW_R2R_KIND), value :: kind2
|
Chris@10
|
1063 integer(C_INT), value :: flags
|
Chris@10
|
1064 end function fftwf_plan_r2r_3d
|
Chris@10
|
1065
|
Chris@10
|
1066 type(C_PTR) function fftwf_plan_guru_r2r(rank,dims,howmany_rank,howmany_dims,in,out,kind,flags) &
|
Chris@10
|
1067 bind(C, name='fftwf_plan_guru_r2r')
|
Chris@10
|
1068 import
|
Chris@10
|
1069 integer(C_INT), value :: rank
|
Chris@10
|
1070 type(fftwf_iodim), dimension(*), intent(in) :: dims
|
Chris@10
|
1071 integer(C_INT), value :: howmany_rank
|
Chris@10
|
1072 type(fftwf_iodim), dimension(*), intent(in) :: howmany_dims
|
Chris@10
|
1073 real(C_FLOAT), dimension(*), intent(out) :: in
|
Chris@10
|
1074 real(C_FLOAT), dimension(*), intent(out) :: out
|
Chris@10
|
1075 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind
|
Chris@10
|
1076 integer(C_INT), value :: flags
|
Chris@10
|
1077 end function fftwf_plan_guru_r2r
|
Chris@10
|
1078
|
Chris@10
|
1079 type(C_PTR) function fftwf_plan_guru64_r2r(rank,dims,howmany_rank,howmany_dims,in,out,kind,flags) &
|
Chris@10
|
1080 bind(C, name='fftwf_plan_guru64_r2r')
|
Chris@10
|
1081 import
|
Chris@10
|
1082 integer(C_INT), value :: rank
|
Chris@10
|
1083 type(fftwf_iodim64), dimension(*), intent(in) :: dims
|
Chris@10
|
1084 integer(C_INT), value :: howmany_rank
|
Chris@10
|
1085 type(fftwf_iodim64), dimension(*), intent(in) :: howmany_dims
|
Chris@10
|
1086 real(C_FLOAT), dimension(*), intent(out) :: in
|
Chris@10
|
1087 real(C_FLOAT), dimension(*), intent(out) :: out
|
Chris@10
|
1088 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind
|
Chris@10
|
1089 integer(C_INT), value :: flags
|
Chris@10
|
1090 end function fftwf_plan_guru64_r2r
|
Chris@10
|
1091
|
Chris@10
|
1092 subroutine fftwf_execute_r2r(p,in,out) bind(C, name='fftwf_execute_r2r')
|
Chris@10
|
1093 import
|
Chris@10
|
1094 type(C_PTR), value :: p
|
Chris@10
|
1095 real(C_FLOAT), dimension(*), intent(inout) :: in
|
Chris@10
|
1096 real(C_FLOAT), dimension(*), intent(out) :: out
|
Chris@10
|
1097 end subroutine fftwf_execute_r2r
|
Chris@10
|
1098
|
Chris@10
|
1099 subroutine fftwf_destroy_plan(p) bind(C, name='fftwf_destroy_plan')
|
Chris@10
|
1100 import
|
Chris@10
|
1101 type(C_PTR), value :: p
|
Chris@10
|
1102 end subroutine fftwf_destroy_plan
|
Chris@10
|
1103
|
Chris@10
|
1104 subroutine fftwf_forget_wisdom() bind(C, name='fftwf_forget_wisdom')
|
Chris@10
|
1105 import
|
Chris@10
|
1106 end subroutine fftwf_forget_wisdom
|
Chris@10
|
1107
|
Chris@10
|
1108 subroutine fftwf_cleanup() bind(C, name='fftwf_cleanup')
|
Chris@10
|
1109 import
|
Chris@10
|
1110 end subroutine fftwf_cleanup
|
Chris@10
|
1111
|
Chris@10
|
1112 subroutine fftwf_set_timelimit(t) bind(C, name='fftwf_set_timelimit')
|
Chris@10
|
1113 import
|
Chris@10
|
1114 real(C_DOUBLE), value :: t
|
Chris@10
|
1115 end subroutine fftwf_set_timelimit
|
Chris@10
|
1116
|
Chris@10
|
1117 subroutine fftwf_plan_with_nthreads(nthreads) bind(C, name='fftwf_plan_with_nthreads')
|
Chris@10
|
1118 import
|
Chris@10
|
1119 integer(C_INT), value :: nthreads
|
Chris@10
|
1120 end subroutine fftwf_plan_with_nthreads
|
Chris@10
|
1121
|
Chris@10
|
1122 integer(C_INT) function fftwf_init_threads() bind(C, name='fftwf_init_threads')
|
Chris@10
|
1123 import
|
Chris@10
|
1124 end function fftwf_init_threads
|
Chris@10
|
1125
|
Chris@10
|
1126 subroutine fftwf_cleanup_threads() bind(C, name='fftwf_cleanup_threads')
|
Chris@10
|
1127 import
|
Chris@10
|
1128 end subroutine fftwf_cleanup_threads
|
Chris@10
|
1129
|
Chris@10
|
1130 integer(C_INT) function fftwf_export_wisdom_to_filename(filename) bind(C, name='fftwf_export_wisdom_to_filename')
|
Chris@10
|
1131 import
|
Chris@10
|
1132 character(C_CHAR), dimension(*), intent(in) :: filename
|
Chris@10
|
1133 end function fftwf_export_wisdom_to_filename
|
Chris@10
|
1134
|
Chris@10
|
1135 subroutine fftwf_export_wisdom_to_file(output_file) bind(C, name='fftwf_export_wisdom_to_file')
|
Chris@10
|
1136 import
|
Chris@10
|
1137 type(C_PTR), value :: output_file
|
Chris@10
|
1138 end subroutine fftwf_export_wisdom_to_file
|
Chris@10
|
1139
|
Chris@10
|
1140 type(C_PTR) function fftwf_export_wisdom_to_string() bind(C, name='fftwf_export_wisdom_to_string')
|
Chris@10
|
1141 import
|
Chris@10
|
1142 end function fftwf_export_wisdom_to_string
|
Chris@10
|
1143
|
Chris@10
|
1144 subroutine fftwf_export_wisdom(write_char,data) bind(C, name='fftwf_export_wisdom')
|
Chris@10
|
1145 import
|
Chris@10
|
1146 type(C_FUNPTR), value :: write_char
|
Chris@10
|
1147 type(C_PTR), value :: data
|
Chris@10
|
1148 end subroutine fftwf_export_wisdom
|
Chris@10
|
1149
|
Chris@10
|
1150 integer(C_INT) function fftwf_import_system_wisdom() bind(C, name='fftwf_import_system_wisdom')
|
Chris@10
|
1151 import
|
Chris@10
|
1152 end function fftwf_import_system_wisdom
|
Chris@10
|
1153
|
Chris@10
|
1154 integer(C_INT) function fftwf_import_wisdom_from_filename(filename) bind(C, name='fftwf_import_wisdom_from_filename')
|
Chris@10
|
1155 import
|
Chris@10
|
1156 character(C_CHAR), dimension(*), intent(in) :: filename
|
Chris@10
|
1157 end function fftwf_import_wisdom_from_filename
|
Chris@10
|
1158
|
Chris@10
|
1159 integer(C_INT) function fftwf_import_wisdom_from_file(input_file) bind(C, name='fftwf_import_wisdom_from_file')
|
Chris@10
|
1160 import
|
Chris@10
|
1161 type(C_PTR), value :: input_file
|
Chris@10
|
1162 end function fftwf_import_wisdom_from_file
|
Chris@10
|
1163
|
Chris@10
|
1164 integer(C_INT) function fftwf_import_wisdom_from_string(input_string) bind(C, name='fftwf_import_wisdom_from_string')
|
Chris@10
|
1165 import
|
Chris@10
|
1166 character(C_CHAR), dimension(*), intent(in) :: input_string
|
Chris@10
|
1167 end function fftwf_import_wisdom_from_string
|
Chris@10
|
1168
|
Chris@10
|
1169 integer(C_INT) function fftwf_import_wisdom(read_char,data) bind(C, name='fftwf_import_wisdom')
|
Chris@10
|
1170 import
|
Chris@10
|
1171 type(C_FUNPTR), value :: read_char
|
Chris@10
|
1172 type(C_PTR), value :: data
|
Chris@10
|
1173 end function fftwf_import_wisdom
|
Chris@10
|
1174
|
Chris@10
|
1175 subroutine fftwf_fprint_plan(p,output_file) bind(C, name='fftwf_fprint_plan')
|
Chris@10
|
1176 import
|
Chris@10
|
1177 type(C_PTR), value :: p
|
Chris@10
|
1178 type(C_PTR), value :: output_file
|
Chris@10
|
1179 end subroutine fftwf_fprint_plan
|
Chris@10
|
1180
|
Chris@10
|
1181 subroutine fftwf_print_plan(p) bind(C, name='fftwf_print_plan')
|
Chris@10
|
1182 import
|
Chris@10
|
1183 type(C_PTR), value :: p
|
Chris@10
|
1184 end subroutine fftwf_print_plan
|
Chris@10
|
1185
|
Chris@10
|
1186 type(C_PTR) function fftwf_malloc(n) bind(C, name='fftwf_malloc')
|
Chris@10
|
1187 import
|
Chris@10
|
1188 integer(C_SIZE_T), value :: n
|
Chris@10
|
1189 end function fftwf_malloc
|
Chris@10
|
1190
|
Chris@10
|
1191 type(C_PTR) function fftwf_alloc_real(n) bind(C, name='fftwf_alloc_real')
|
Chris@10
|
1192 import
|
Chris@10
|
1193 integer(C_SIZE_T), value :: n
|
Chris@10
|
1194 end function fftwf_alloc_real
|
Chris@10
|
1195
|
Chris@10
|
1196 type(C_PTR) function fftwf_alloc_complex(n) bind(C, name='fftwf_alloc_complex')
|
Chris@10
|
1197 import
|
Chris@10
|
1198 integer(C_SIZE_T), value :: n
|
Chris@10
|
1199 end function fftwf_alloc_complex
|
Chris@10
|
1200
|
Chris@10
|
1201 subroutine fftwf_free(p) bind(C, name='fftwf_free')
|
Chris@10
|
1202 import
|
Chris@10
|
1203 type(C_PTR), value :: p
|
Chris@10
|
1204 end subroutine fftwf_free
|
Chris@10
|
1205
|
Chris@10
|
1206 subroutine fftwf_flops(p,add,mul,fmas) bind(C, name='fftwf_flops')
|
Chris@10
|
1207 import
|
Chris@10
|
1208 type(C_PTR), value :: p
|
Chris@10
|
1209 real(C_DOUBLE), intent(out) :: add
|
Chris@10
|
1210 real(C_DOUBLE), intent(out) :: mul
|
Chris@10
|
1211 real(C_DOUBLE), intent(out) :: fmas
|
Chris@10
|
1212 end subroutine fftwf_flops
|
Chris@10
|
1213
|
Chris@10
|
1214 real(C_DOUBLE) function fftwf_estimate_cost(p) bind(C, name='fftwf_estimate_cost')
|
Chris@10
|
1215 import
|
Chris@10
|
1216 type(C_PTR), value :: p
|
Chris@10
|
1217 end function fftwf_estimate_cost
|
Chris@10
|
1218
|
Chris@10
|
1219 real(C_DOUBLE) function fftwf_cost(p) bind(C, name='fftwf_cost')
|
Chris@10
|
1220 import
|
Chris@10
|
1221 type(C_PTR), value :: p
|
Chris@10
|
1222 end function fftwf_cost
|
Chris@10
|
1223
|
Chris@10
|
1224 end interface
|