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