comparison src/fftw-3.3.3/mpi/fftw3l-mpi.f03.in @ 10:37bf6b4a2645

Add FFTW3
author Chris Cannam
date Wed, 20 Mar 2013 15:35:50 +0000
parents
children
comparison
equal deleted inserted replaced
9:c0fb53affa76 10:37bf6b4a2645
1 ! Generated automatically. DO NOT EDIT!
2
3 include 'fftw3l.f03'
4
5
6 type, bind(C) :: fftwl_mpi_ddim
7 integer(C_INTPTR_T) n, ib, ob
8 end type fftwl_mpi_ddim
9
10 interface
11 subroutine fftwl_mpi_init() bind(C, name='fftwl_mpi_init')
12 import
13 end subroutine fftwl_mpi_init
14
15 subroutine fftwl_mpi_cleanup() bind(C, name='fftwl_mpi_cleanup')
16 import
17 end subroutine fftwl_mpi_cleanup
18
19 integer(C_INTPTR_T) function fftwl_mpi_local_size_many_transposed(rnk,n,howmany,block0,block1,comm,local_n0,local_0_start, &
20 local_n1,local_1_start) &
21 bind(C, name='fftwl_mpi_local_size_many_transposed_f03')
22 import
23 integer(C_INT), value :: rnk
24 integer(C_INTPTR_T), dimension(*), intent(in) :: n
25 integer(C_INTPTR_T), value :: howmany
26 integer(C_INTPTR_T), value :: block0
27 integer(C_INTPTR_T), value :: block1
28 integer(C_MPI_FINT), value :: comm
29 integer(C_INTPTR_T), intent(out) :: local_n0
30 integer(C_INTPTR_T), intent(out) :: local_0_start
31 integer(C_INTPTR_T), intent(out) :: local_n1
32 integer(C_INTPTR_T), intent(out) :: local_1_start
33 end function fftwl_mpi_local_size_many_transposed
34
35 integer(C_INTPTR_T) function fftwl_mpi_local_size_many(rnk,n,howmany,block0,comm,local_n0,local_0_start) &
36 bind(C, name='fftwl_mpi_local_size_many_f03')
37 import
38 integer(C_INT), value :: rnk
39 integer(C_INTPTR_T), dimension(*), intent(in) :: n
40 integer(C_INTPTR_T), value :: howmany
41 integer(C_INTPTR_T), value :: block0
42 integer(C_MPI_FINT), value :: comm
43 integer(C_INTPTR_T), intent(out) :: local_n0
44 integer(C_INTPTR_T), intent(out) :: local_0_start
45 end function fftwl_mpi_local_size_many
46
47 integer(C_INTPTR_T) function fftwl_mpi_local_size_transposed(rnk,n,comm,local_n0,local_0_start,local_n1,local_1_start) &
48 bind(C, name='fftwl_mpi_local_size_transposed_f03')
49 import
50 integer(C_INT), value :: rnk
51 integer(C_INTPTR_T), dimension(*), intent(in) :: n
52 integer(C_MPI_FINT), value :: comm
53 integer(C_INTPTR_T), intent(out) :: local_n0
54 integer(C_INTPTR_T), intent(out) :: local_0_start
55 integer(C_INTPTR_T), intent(out) :: local_n1
56 integer(C_INTPTR_T), intent(out) :: local_1_start
57 end function fftwl_mpi_local_size_transposed
58
59 integer(C_INTPTR_T) function fftwl_mpi_local_size(rnk,n,comm,local_n0,local_0_start) bind(C, name='fftwl_mpi_local_size_f03')
60 import
61 integer(C_INT), value :: rnk
62 integer(C_INTPTR_T), dimension(*), intent(in) :: n
63 integer(C_MPI_FINT), value :: comm
64 integer(C_INTPTR_T), intent(out) :: local_n0
65 integer(C_INTPTR_T), intent(out) :: local_0_start
66 end function fftwl_mpi_local_size
67
68 integer(C_INTPTR_T) function fftwl_mpi_local_size_many_1d(n0,howmany,comm,sign,flags,local_ni,local_i_start,local_no, &
69 local_o_start) bind(C, name='fftwl_mpi_local_size_many_1d_f03')
70 import
71 integer(C_INTPTR_T), value :: n0
72 integer(C_INTPTR_T), value :: howmany
73 integer(C_MPI_FINT), value :: comm
74 integer(C_INT), value :: sign
75 integer(C_INT), value :: flags
76 integer(C_INTPTR_T), intent(out) :: local_ni
77 integer(C_INTPTR_T), intent(out) :: local_i_start
78 integer(C_INTPTR_T), intent(out) :: local_no
79 integer(C_INTPTR_T), intent(out) :: local_o_start
80 end function fftwl_mpi_local_size_many_1d
81
82 integer(C_INTPTR_T) function fftwl_mpi_local_size_1d(n0,comm,sign,flags,local_ni,local_i_start,local_no,local_o_start) &
83 bind(C, name='fftwl_mpi_local_size_1d_f03')
84 import
85 integer(C_INTPTR_T), value :: n0
86 integer(C_MPI_FINT), value :: comm
87 integer(C_INT), value :: sign
88 integer(C_INT), value :: flags
89 integer(C_INTPTR_T), intent(out) :: local_ni
90 integer(C_INTPTR_T), intent(out) :: local_i_start
91 integer(C_INTPTR_T), intent(out) :: local_no
92 integer(C_INTPTR_T), intent(out) :: local_o_start
93 end function fftwl_mpi_local_size_1d
94
95 integer(C_INTPTR_T) function fftwl_mpi_local_size_2d(n0,n1,comm,local_n0,local_0_start) &
96 bind(C, name='fftwl_mpi_local_size_2d_f03')
97 import
98 integer(C_INTPTR_T), value :: n0
99 integer(C_INTPTR_T), value :: n1
100 integer(C_MPI_FINT), value :: comm
101 integer(C_INTPTR_T), intent(out) :: local_n0
102 integer(C_INTPTR_T), intent(out) :: local_0_start
103 end function fftwl_mpi_local_size_2d
104
105 integer(C_INTPTR_T) function fftwl_mpi_local_size_2d_transposed(n0,n1,comm,local_n0,local_0_start,local_n1,local_1_start) &
106 bind(C, name='fftwl_mpi_local_size_2d_transposed_f03')
107 import
108 integer(C_INTPTR_T), value :: n0
109 integer(C_INTPTR_T), value :: n1
110 integer(C_MPI_FINT), value :: comm
111 integer(C_INTPTR_T), intent(out) :: local_n0
112 integer(C_INTPTR_T), intent(out) :: local_0_start
113 integer(C_INTPTR_T), intent(out) :: local_n1
114 integer(C_INTPTR_T), intent(out) :: local_1_start
115 end function fftwl_mpi_local_size_2d_transposed
116
117 integer(C_INTPTR_T) function fftwl_mpi_local_size_3d(n0,n1,n2,comm,local_n0,local_0_start) &
118 bind(C, name='fftwl_mpi_local_size_3d_f03')
119 import
120 integer(C_INTPTR_T), value :: n0
121 integer(C_INTPTR_T), value :: n1
122 integer(C_INTPTR_T), value :: n2
123 integer(C_MPI_FINT), value :: comm
124 integer(C_INTPTR_T), intent(out) :: local_n0
125 integer(C_INTPTR_T), intent(out) :: local_0_start
126 end function fftwl_mpi_local_size_3d
127
128 integer(C_INTPTR_T) function fftwl_mpi_local_size_3d_transposed(n0,n1,n2,comm,local_n0,local_0_start,local_n1,local_1_start) &
129 bind(C, name='fftwl_mpi_local_size_3d_transposed_f03')
130 import
131 integer(C_INTPTR_T), value :: n0
132 integer(C_INTPTR_T), value :: n1
133 integer(C_INTPTR_T), value :: n2
134 integer(C_MPI_FINT), value :: comm
135 integer(C_INTPTR_T), intent(out) :: local_n0
136 integer(C_INTPTR_T), intent(out) :: local_0_start
137 integer(C_INTPTR_T), intent(out) :: local_n1
138 integer(C_INTPTR_T), intent(out) :: local_1_start
139 end function fftwl_mpi_local_size_3d_transposed
140
141 type(C_PTR) function fftwl_mpi_plan_many_transpose(n0,n1,howmany,block0,block1,in,out,comm,flags) &
142 bind(C, name='fftwl_mpi_plan_many_transpose_f03')
143 import
144 integer(C_INTPTR_T), value :: n0
145 integer(C_INTPTR_T), value :: n1
146 integer(C_INTPTR_T), value :: howmany
147 integer(C_INTPTR_T), value :: block0
148 integer(C_INTPTR_T), value :: block1
149 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
150 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
151 integer(C_MPI_FINT), value :: comm
152 integer(C_INT), value :: flags
153 end function fftwl_mpi_plan_many_transpose
154
155 type(C_PTR) function fftwl_mpi_plan_transpose(n0,n1,in,out,comm,flags) bind(C, name='fftwl_mpi_plan_transpose_f03')
156 import
157 integer(C_INTPTR_T), value :: n0
158 integer(C_INTPTR_T), value :: n1
159 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
160 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
161 integer(C_MPI_FINT), value :: comm
162 integer(C_INT), value :: flags
163 end function fftwl_mpi_plan_transpose
164
165 type(C_PTR) function fftwl_mpi_plan_many_dft(rnk,n,howmany,block,tblock,in,out,comm,sign,flags) &
166 bind(C, name='fftwl_mpi_plan_many_dft_f03')
167 import
168 integer(C_INT), value :: rnk
169 integer(C_INTPTR_T), dimension(*), intent(in) :: n
170 integer(C_INTPTR_T), value :: howmany
171 integer(C_INTPTR_T), value :: block
172 integer(C_INTPTR_T), value :: tblock
173 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
174 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
175 integer(C_MPI_FINT), value :: comm
176 integer(C_INT), value :: sign
177 integer(C_INT), value :: flags
178 end function fftwl_mpi_plan_many_dft
179
180 type(C_PTR) function fftwl_mpi_plan_dft(rnk,n,in,out,comm,sign,flags) bind(C, name='fftwl_mpi_plan_dft_f03')
181 import
182 integer(C_INT), value :: rnk
183 integer(C_INTPTR_T), dimension(*), intent(in) :: n
184 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
185 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
186 integer(C_MPI_FINT), value :: comm
187 integer(C_INT), value :: sign
188 integer(C_INT), value :: flags
189 end function fftwl_mpi_plan_dft
190
191 type(C_PTR) function fftwl_mpi_plan_dft_1d(n0,in,out,comm,sign,flags) bind(C, name='fftwl_mpi_plan_dft_1d_f03')
192 import
193 integer(C_INTPTR_T), value :: n0
194 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
195 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
196 integer(C_MPI_FINT), value :: comm
197 integer(C_INT), value :: sign
198 integer(C_INT), value :: flags
199 end function fftwl_mpi_plan_dft_1d
200
201 type(C_PTR) function fftwl_mpi_plan_dft_2d(n0,n1,in,out,comm,sign,flags) bind(C, name='fftwl_mpi_plan_dft_2d_f03')
202 import
203 integer(C_INTPTR_T), value :: n0
204 integer(C_INTPTR_T), value :: n1
205 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
206 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
207 integer(C_MPI_FINT), value :: comm
208 integer(C_INT), value :: sign
209 integer(C_INT), value :: flags
210 end function fftwl_mpi_plan_dft_2d
211
212 type(C_PTR) function fftwl_mpi_plan_dft_3d(n0,n1,n2,in,out,comm,sign,flags) bind(C, name='fftwl_mpi_plan_dft_3d_f03')
213 import
214 integer(C_INTPTR_T), value :: n0
215 integer(C_INTPTR_T), value :: n1
216 integer(C_INTPTR_T), value :: n2
217 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
218 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
219 integer(C_MPI_FINT), value :: comm
220 integer(C_INT), value :: sign
221 integer(C_INT), value :: flags
222 end function fftwl_mpi_plan_dft_3d
223
224 type(C_PTR) function fftwl_mpi_plan_many_r2r(rnk,n,howmany,iblock,oblock,in,out,comm,kind,flags) &
225 bind(C, name='fftwl_mpi_plan_many_r2r_f03')
226 import
227 integer(C_INT), value :: rnk
228 integer(C_INTPTR_T), dimension(*), intent(in) :: n
229 integer(C_INTPTR_T), value :: howmany
230 integer(C_INTPTR_T), value :: iblock
231 integer(C_INTPTR_T), value :: oblock
232 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
233 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
234 integer(C_MPI_FINT), value :: comm
235 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind
236 integer(C_INT), value :: flags
237 end function fftwl_mpi_plan_many_r2r
238
239 type(C_PTR) function fftwl_mpi_plan_r2r(rnk,n,in,out,comm,kind,flags) bind(C, name='fftwl_mpi_plan_r2r_f03')
240 import
241 integer(C_INT), value :: rnk
242 integer(C_INTPTR_T), dimension(*), intent(in) :: n
243 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
244 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
245 integer(C_MPI_FINT), value :: comm
246 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind
247 integer(C_INT), value :: flags
248 end function fftwl_mpi_plan_r2r
249
250 type(C_PTR) function fftwl_mpi_plan_r2r_2d(n0,n1,in,out,comm,kind0,kind1,flags) bind(C, name='fftwl_mpi_plan_r2r_2d_f03')
251 import
252 integer(C_INTPTR_T), value :: n0
253 integer(C_INTPTR_T), value :: n1
254 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
255 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
256 integer(C_MPI_FINT), value :: comm
257 integer(C_FFTW_R2R_KIND), value :: kind0
258 integer(C_FFTW_R2R_KIND), value :: kind1
259 integer(C_INT), value :: flags
260 end function fftwl_mpi_plan_r2r_2d
261
262 type(C_PTR) function fftwl_mpi_plan_r2r_3d(n0,n1,n2,in,out,comm,kind0,kind1,kind2,flags) &
263 bind(C, name='fftwl_mpi_plan_r2r_3d_f03')
264 import
265 integer(C_INTPTR_T), value :: n0
266 integer(C_INTPTR_T), value :: n1
267 integer(C_INTPTR_T), value :: n2
268 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
269 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
270 integer(C_MPI_FINT), value :: comm
271 integer(C_FFTW_R2R_KIND), value :: kind0
272 integer(C_FFTW_R2R_KIND), value :: kind1
273 integer(C_FFTW_R2R_KIND), value :: kind2
274 integer(C_INT), value :: flags
275 end function fftwl_mpi_plan_r2r_3d
276
277 type(C_PTR) function fftwl_mpi_plan_many_dft_r2c(rnk,n,howmany,iblock,oblock,in,out,comm,flags) &
278 bind(C, name='fftwl_mpi_plan_many_dft_r2c_f03')
279 import
280 integer(C_INT), value :: rnk
281 integer(C_INTPTR_T), dimension(*), intent(in) :: n
282 integer(C_INTPTR_T), value :: howmany
283 integer(C_INTPTR_T), value :: iblock
284 integer(C_INTPTR_T), value :: oblock
285 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
286 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
287 integer(C_MPI_FINT), value :: comm
288 integer(C_INT), value :: flags
289 end function fftwl_mpi_plan_many_dft_r2c
290
291 type(C_PTR) function fftwl_mpi_plan_dft_r2c(rnk,n,in,out,comm,flags) bind(C, name='fftwl_mpi_plan_dft_r2c_f03')
292 import
293 integer(C_INT), value :: rnk
294 integer(C_INTPTR_T), dimension(*), intent(in) :: n
295 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
296 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
297 integer(C_MPI_FINT), value :: comm
298 integer(C_INT), value :: flags
299 end function fftwl_mpi_plan_dft_r2c
300
301 type(C_PTR) function fftwl_mpi_plan_dft_r2c_2d(n0,n1,in,out,comm,flags) bind(C, name='fftwl_mpi_plan_dft_r2c_2d_f03')
302 import
303 integer(C_INTPTR_T), value :: n0
304 integer(C_INTPTR_T), value :: n1
305 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
306 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
307 integer(C_MPI_FINT), value :: comm
308 integer(C_INT), value :: flags
309 end function fftwl_mpi_plan_dft_r2c_2d
310
311 type(C_PTR) function fftwl_mpi_plan_dft_r2c_3d(n0,n1,n2,in,out,comm,flags) bind(C, name='fftwl_mpi_plan_dft_r2c_3d_f03')
312 import
313 integer(C_INTPTR_T), value :: n0
314 integer(C_INTPTR_T), value :: n1
315 integer(C_INTPTR_T), value :: n2
316 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
317 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
318 integer(C_MPI_FINT), value :: comm
319 integer(C_INT), value :: flags
320 end function fftwl_mpi_plan_dft_r2c_3d
321
322 type(C_PTR) function fftwl_mpi_plan_many_dft_c2r(rnk,n,howmany,iblock,oblock,in,out,comm,flags) &
323 bind(C, name='fftwl_mpi_plan_many_dft_c2r_f03')
324 import
325 integer(C_INT), value :: rnk
326 integer(C_INTPTR_T), dimension(*), intent(in) :: n
327 integer(C_INTPTR_T), value :: howmany
328 integer(C_INTPTR_T), value :: iblock
329 integer(C_INTPTR_T), value :: oblock
330 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
331 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
332 integer(C_MPI_FINT), value :: comm
333 integer(C_INT), value :: flags
334 end function fftwl_mpi_plan_many_dft_c2r
335
336 type(C_PTR) function fftwl_mpi_plan_dft_c2r(rnk,n,in,out,comm,flags) bind(C, name='fftwl_mpi_plan_dft_c2r_f03')
337 import
338 integer(C_INT), value :: rnk
339 integer(C_INTPTR_T), dimension(*), intent(in) :: n
340 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
341 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
342 integer(C_MPI_FINT), value :: comm
343 integer(C_INT), value :: flags
344 end function fftwl_mpi_plan_dft_c2r
345
346 type(C_PTR) function fftwl_mpi_plan_dft_c2r_2d(n0,n1,in,out,comm,flags) bind(C, name='fftwl_mpi_plan_dft_c2r_2d_f03')
347 import
348 integer(C_INTPTR_T), value :: n0
349 integer(C_INTPTR_T), value :: n1
350 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
351 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
352 integer(C_MPI_FINT), value :: comm
353 integer(C_INT), value :: flags
354 end function fftwl_mpi_plan_dft_c2r_2d
355
356 type(C_PTR) function fftwl_mpi_plan_dft_c2r_3d(n0,n1,n2,in,out,comm,flags) bind(C, name='fftwl_mpi_plan_dft_c2r_3d_f03')
357 import
358 integer(C_INTPTR_T), value :: n0
359 integer(C_INTPTR_T), value :: n1
360 integer(C_INTPTR_T), value :: n2
361 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
362 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
363 integer(C_MPI_FINT), value :: comm
364 integer(C_INT), value :: flags
365 end function fftwl_mpi_plan_dft_c2r_3d
366
367 subroutine fftwl_mpi_gather_wisdom(comm_) bind(C, name='fftwl_mpi_gather_wisdom_f03')
368 import
369 integer(C_MPI_FINT), value :: comm_
370 end subroutine fftwl_mpi_gather_wisdom
371
372 subroutine fftwl_mpi_broadcast_wisdom(comm_) bind(C, name='fftwl_mpi_broadcast_wisdom_f03')
373 import
374 integer(C_MPI_FINT), value :: comm_
375 end subroutine fftwl_mpi_broadcast_wisdom
376
377 subroutine fftwl_mpi_execute_dft(p,in,out) bind(C, name='fftwl_mpi_execute_dft')
378 import
379 type(C_PTR), value :: p
380 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(inout) :: in
381 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
382 end subroutine fftwl_mpi_execute_dft
383
384 subroutine fftwl_mpi_execute_dft_r2c(p,in,out) bind(C, name='fftwl_mpi_execute_dft_r2c')
385 import
386 type(C_PTR), value :: p
387 real(C_LONG_DOUBLE), dimension(*), intent(inout) :: in
388 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
389 end subroutine fftwl_mpi_execute_dft_r2c
390
391 subroutine fftwl_mpi_execute_dft_c2r(p,in,out) bind(C, name='fftwl_mpi_execute_dft_c2r')
392 import
393 type(C_PTR), value :: p
394 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(inout) :: in
395 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
396 end subroutine fftwl_mpi_execute_dft_c2r
397
398 subroutine fftwl_mpi_execute_r2r(p,in,out) bind(C, name='fftwl_mpi_execute_r2r')
399 import
400 type(C_PTR), value :: p
401 real(C_LONG_DOUBLE), dimension(*), intent(inout) :: in
402 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
403 end subroutine fftwl_mpi_execute_r2r
404
405 end interface