Mercurial > hg > sv-dependency-builds
comparison src/fftw-3.3.3/mpi/fftw3-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 'fftw3.f03' | |
4 | |
5 integer(C_INTPTR_T), parameter :: FFTW_MPI_DEFAULT_BLOCK = 0 | |
6 integer(C_INT), parameter :: FFTW_MPI_SCRAMBLED_IN = 134217728 | |
7 integer(C_INT), parameter :: FFTW_MPI_SCRAMBLED_OUT = 268435456 | |
8 integer(C_INT), parameter :: FFTW_MPI_TRANSPOSED_IN = 536870912 | |
9 integer(C_INT), parameter :: FFTW_MPI_TRANSPOSED_OUT = 1073741824 | |
10 | |
11 type, bind(C) :: fftw_mpi_ddim | |
12 integer(C_INTPTR_T) n, ib, ob | |
13 end type fftw_mpi_ddim | |
14 | |
15 interface | |
16 subroutine fftw_mpi_init() bind(C, name='fftw_mpi_init') | |
17 import | |
18 end subroutine fftw_mpi_init | |
19 | |
20 subroutine fftw_mpi_cleanup() bind(C, name='fftw_mpi_cleanup') | |
21 import | |
22 end subroutine fftw_mpi_cleanup | |
23 | |
24 integer(C_INTPTR_T) function fftw_mpi_local_size_many_transposed(rnk,n,howmany,block0,block1,comm,local_n0,local_0_start, & | |
25 local_n1,local_1_start) & | |
26 bind(C, name='fftw_mpi_local_size_many_transposed_f03') | |
27 import | |
28 integer(C_INT), value :: rnk | |
29 integer(C_INTPTR_T), dimension(*), intent(in) :: n | |
30 integer(C_INTPTR_T), value :: howmany | |
31 integer(C_INTPTR_T), value :: block0 | |
32 integer(C_INTPTR_T), value :: block1 | |
33 integer(C_MPI_FINT), value :: comm | |
34 integer(C_INTPTR_T), intent(out) :: local_n0 | |
35 integer(C_INTPTR_T), intent(out) :: local_0_start | |
36 integer(C_INTPTR_T), intent(out) :: local_n1 | |
37 integer(C_INTPTR_T), intent(out) :: local_1_start | |
38 end function fftw_mpi_local_size_many_transposed | |
39 | |
40 integer(C_INTPTR_T) function fftw_mpi_local_size_many(rnk,n,howmany,block0,comm,local_n0,local_0_start) & | |
41 bind(C, name='fftw_mpi_local_size_many_f03') | |
42 import | |
43 integer(C_INT), value :: rnk | |
44 integer(C_INTPTR_T), dimension(*), intent(in) :: n | |
45 integer(C_INTPTR_T), value :: howmany | |
46 integer(C_INTPTR_T), value :: block0 | |
47 integer(C_MPI_FINT), value :: comm | |
48 integer(C_INTPTR_T), intent(out) :: local_n0 | |
49 integer(C_INTPTR_T), intent(out) :: local_0_start | |
50 end function fftw_mpi_local_size_many | |
51 | |
52 integer(C_INTPTR_T) function fftw_mpi_local_size_transposed(rnk,n,comm,local_n0,local_0_start,local_n1,local_1_start) & | |
53 bind(C, name='fftw_mpi_local_size_transposed_f03') | |
54 import | |
55 integer(C_INT), value :: rnk | |
56 integer(C_INTPTR_T), dimension(*), intent(in) :: n | |
57 integer(C_MPI_FINT), value :: comm | |
58 integer(C_INTPTR_T), intent(out) :: local_n0 | |
59 integer(C_INTPTR_T), intent(out) :: local_0_start | |
60 integer(C_INTPTR_T), intent(out) :: local_n1 | |
61 integer(C_INTPTR_T), intent(out) :: local_1_start | |
62 end function fftw_mpi_local_size_transposed | |
63 | |
64 integer(C_INTPTR_T) function fftw_mpi_local_size(rnk,n,comm,local_n0,local_0_start) bind(C, name='fftw_mpi_local_size_f03') | |
65 import | |
66 integer(C_INT), value :: rnk | |
67 integer(C_INTPTR_T), dimension(*), intent(in) :: n | |
68 integer(C_MPI_FINT), value :: comm | |
69 integer(C_INTPTR_T), intent(out) :: local_n0 | |
70 integer(C_INTPTR_T), intent(out) :: local_0_start | |
71 end function fftw_mpi_local_size | |
72 | |
73 integer(C_INTPTR_T) function fftw_mpi_local_size_many_1d(n0,howmany,comm,sign,flags,local_ni,local_i_start,local_no, & | |
74 local_o_start) bind(C, name='fftw_mpi_local_size_many_1d_f03') | |
75 import | |
76 integer(C_INTPTR_T), value :: n0 | |
77 integer(C_INTPTR_T), value :: howmany | |
78 integer(C_MPI_FINT), value :: comm | |
79 integer(C_INT), value :: sign | |
80 integer(C_INT), value :: flags | |
81 integer(C_INTPTR_T), intent(out) :: local_ni | |
82 integer(C_INTPTR_T), intent(out) :: local_i_start | |
83 integer(C_INTPTR_T), intent(out) :: local_no | |
84 integer(C_INTPTR_T), intent(out) :: local_o_start | |
85 end function fftw_mpi_local_size_many_1d | |
86 | |
87 integer(C_INTPTR_T) function fftw_mpi_local_size_1d(n0,comm,sign,flags,local_ni,local_i_start,local_no,local_o_start) & | |
88 bind(C, name='fftw_mpi_local_size_1d_f03') | |
89 import | |
90 integer(C_INTPTR_T), value :: n0 | |
91 integer(C_MPI_FINT), value :: comm | |
92 integer(C_INT), value :: sign | |
93 integer(C_INT), value :: flags | |
94 integer(C_INTPTR_T), intent(out) :: local_ni | |
95 integer(C_INTPTR_T), intent(out) :: local_i_start | |
96 integer(C_INTPTR_T), intent(out) :: local_no | |
97 integer(C_INTPTR_T), intent(out) :: local_o_start | |
98 end function fftw_mpi_local_size_1d | |
99 | |
100 integer(C_INTPTR_T) function fftw_mpi_local_size_2d(n0,n1,comm,local_n0,local_0_start) & | |
101 bind(C, name='fftw_mpi_local_size_2d_f03') | |
102 import | |
103 integer(C_INTPTR_T), value :: n0 | |
104 integer(C_INTPTR_T), value :: n1 | |
105 integer(C_MPI_FINT), value :: comm | |
106 integer(C_INTPTR_T), intent(out) :: local_n0 | |
107 integer(C_INTPTR_T), intent(out) :: local_0_start | |
108 end function fftw_mpi_local_size_2d | |
109 | |
110 integer(C_INTPTR_T) function fftw_mpi_local_size_2d_transposed(n0,n1,comm,local_n0,local_0_start,local_n1,local_1_start) & | |
111 bind(C, name='fftw_mpi_local_size_2d_transposed_f03') | |
112 import | |
113 integer(C_INTPTR_T), value :: n0 | |
114 integer(C_INTPTR_T), value :: n1 | |
115 integer(C_MPI_FINT), value :: comm | |
116 integer(C_INTPTR_T), intent(out) :: local_n0 | |
117 integer(C_INTPTR_T), intent(out) :: local_0_start | |
118 integer(C_INTPTR_T), intent(out) :: local_n1 | |
119 integer(C_INTPTR_T), intent(out) :: local_1_start | |
120 end function fftw_mpi_local_size_2d_transposed | |
121 | |
122 integer(C_INTPTR_T) function fftw_mpi_local_size_3d(n0,n1,n2,comm,local_n0,local_0_start) & | |
123 bind(C, name='fftw_mpi_local_size_3d_f03') | |
124 import | |
125 integer(C_INTPTR_T), value :: n0 | |
126 integer(C_INTPTR_T), value :: n1 | |
127 integer(C_INTPTR_T), value :: n2 | |
128 integer(C_MPI_FINT), value :: comm | |
129 integer(C_INTPTR_T), intent(out) :: local_n0 | |
130 integer(C_INTPTR_T), intent(out) :: local_0_start | |
131 end function fftw_mpi_local_size_3d | |
132 | |
133 integer(C_INTPTR_T) function fftw_mpi_local_size_3d_transposed(n0,n1,n2,comm,local_n0,local_0_start,local_n1,local_1_start) & | |
134 bind(C, name='fftw_mpi_local_size_3d_transposed_f03') | |
135 import | |
136 integer(C_INTPTR_T), value :: n0 | |
137 integer(C_INTPTR_T), value :: n1 | |
138 integer(C_INTPTR_T), value :: n2 | |
139 integer(C_MPI_FINT), value :: comm | |
140 integer(C_INTPTR_T), intent(out) :: local_n0 | |
141 integer(C_INTPTR_T), intent(out) :: local_0_start | |
142 integer(C_INTPTR_T), intent(out) :: local_n1 | |
143 integer(C_INTPTR_T), intent(out) :: local_1_start | |
144 end function fftw_mpi_local_size_3d_transposed | |
145 | |
146 type(C_PTR) function fftw_mpi_plan_many_transpose(n0,n1,howmany,block0,block1,in,out,comm,flags) & | |
147 bind(C, name='fftw_mpi_plan_many_transpose_f03') | |
148 import | |
149 integer(C_INTPTR_T), value :: n0 | |
150 integer(C_INTPTR_T), value :: n1 | |
151 integer(C_INTPTR_T), value :: howmany | |
152 integer(C_INTPTR_T), value :: block0 | |
153 integer(C_INTPTR_T), value :: block1 | |
154 real(C_DOUBLE), dimension(*), intent(out) :: in | |
155 real(C_DOUBLE), dimension(*), intent(out) :: out | |
156 integer(C_MPI_FINT), value :: comm | |
157 integer(C_INT), value :: flags | |
158 end function fftw_mpi_plan_many_transpose | |
159 | |
160 type(C_PTR) function fftw_mpi_plan_transpose(n0,n1,in,out,comm,flags) bind(C, name='fftw_mpi_plan_transpose_f03') | |
161 import | |
162 integer(C_INTPTR_T), value :: n0 | |
163 integer(C_INTPTR_T), value :: n1 | |
164 real(C_DOUBLE), dimension(*), intent(out) :: in | |
165 real(C_DOUBLE), dimension(*), intent(out) :: out | |
166 integer(C_MPI_FINT), value :: comm | |
167 integer(C_INT), value :: flags | |
168 end function fftw_mpi_plan_transpose | |
169 | |
170 type(C_PTR) function fftw_mpi_plan_many_dft(rnk,n,howmany,block,tblock,in,out,comm,sign,flags) & | |
171 bind(C, name='fftw_mpi_plan_many_dft_f03') | |
172 import | |
173 integer(C_INT), value :: rnk | |
174 integer(C_INTPTR_T), dimension(*), intent(in) :: n | |
175 integer(C_INTPTR_T), value :: howmany | |
176 integer(C_INTPTR_T), value :: block | |
177 integer(C_INTPTR_T), value :: tblock | |
178 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in | |
179 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out | |
180 integer(C_MPI_FINT), value :: comm | |
181 integer(C_INT), value :: sign | |
182 integer(C_INT), value :: flags | |
183 end function fftw_mpi_plan_many_dft | |
184 | |
185 type(C_PTR) function fftw_mpi_plan_dft(rnk,n,in,out,comm,sign,flags) bind(C, name='fftw_mpi_plan_dft_f03') | |
186 import | |
187 integer(C_INT), value :: rnk | |
188 integer(C_INTPTR_T), dimension(*), intent(in) :: n | |
189 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in | |
190 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out | |
191 integer(C_MPI_FINT), value :: comm | |
192 integer(C_INT), value :: sign | |
193 integer(C_INT), value :: flags | |
194 end function fftw_mpi_plan_dft | |
195 | |
196 type(C_PTR) function fftw_mpi_plan_dft_1d(n0,in,out,comm,sign,flags) bind(C, name='fftw_mpi_plan_dft_1d_f03') | |
197 import | |
198 integer(C_INTPTR_T), value :: n0 | |
199 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in | |
200 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out | |
201 integer(C_MPI_FINT), value :: comm | |
202 integer(C_INT), value :: sign | |
203 integer(C_INT), value :: flags | |
204 end function fftw_mpi_plan_dft_1d | |
205 | |
206 type(C_PTR) function fftw_mpi_plan_dft_2d(n0,n1,in,out,comm,sign,flags) bind(C, name='fftw_mpi_plan_dft_2d_f03') | |
207 import | |
208 integer(C_INTPTR_T), value :: n0 | |
209 integer(C_INTPTR_T), value :: n1 | |
210 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in | |
211 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out | |
212 integer(C_MPI_FINT), value :: comm | |
213 integer(C_INT), value :: sign | |
214 integer(C_INT), value :: flags | |
215 end function fftw_mpi_plan_dft_2d | |
216 | |
217 type(C_PTR) function fftw_mpi_plan_dft_3d(n0,n1,n2,in,out,comm,sign,flags) bind(C, name='fftw_mpi_plan_dft_3d_f03') | |
218 import | |
219 integer(C_INTPTR_T), value :: n0 | |
220 integer(C_INTPTR_T), value :: n1 | |
221 integer(C_INTPTR_T), value :: n2 | |
222 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in | |
223 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out | |
224 integer(C_MPI_FINT), value :: comm | |
225 integer(C_INT), value :: sign | |
226 integer(C_INT), value :: flags | |
227 end function fftw_mpi_plan_dft_3d | |
228 | |
229 type(C_PTR) function fftw_mpi_plan_many_r2r(rnk,n,howmany,iblock,oblock,in,out,comm,kind,flags) & | |
230 bind(C, name='fftw_mpi_plan_many_r2r_f03') | |
231 import | |
232 integer(C_INT), value :: rnk | |
233 integer(C_INTPTR_T), dimension(*), intent(in) :: n | |
234 integer(C_INTPTR_T), value :: howmany | |
235 integer(C_INTPTR_T), value :: iblock | |
236 integer(C_INTPTR_T), value :: oblock | |
237 real(C_DOUBLE), dimension(*), intent(out) :: in | |
238 real(C_DOUBLE), dimension(*), intent(out) :: out | |
239 integer(C_MPI_FINT), value :: comm | |
240 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind | |
241 integer(C_INT), value :: flags | |
242 end function fftw_mpi_plan_many_r2r | |
243 | |
244 type(C_PTR) function fftw_mpi_plan_r2r(rnk,n,in,out,comm,kind,flags) bind(C, name='fftw_mpi_plan_r2r_f03') | |
245 import | |
246 integer(C_INT), value :: rnk | |
247 integer(C_INTPTR_T), dimension(*), intent(in) :: n | |
248 real(C_DOUBLE), dimension(*), intent(out) :: in | |
249 real(C_DOUBLE), dimension(*), intent(out) :: out | |
250 integer(C_MPI_FINT), value :: comm | |
251 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind | |
252 integer(C_INT), value :: flags | |
253 end function fftw_mpi_plan_r2r | |
254 | |
255 type(C_PTR) function fftw_mpi_plan_r2r_2d(n0,n1,in,out,comm,kind0,kind1,flags) bind(C, name='fftw_mpi_plan_r2r_2d_f03') | |
256 import | |
257 integer(C_INTPTR_T), value :: n0 | |
258 integer(C_INTPTR_T), value :: n1 | |
259 real(C_DOUBLE), dimension(*), intent(out) :: in | |
260 real(C_DOUBLE), dimension(*), intent(out) :: out | |
261 integer(C_MPI_FINT), value :: comm | |
262 integer(C_FFTW_R2R_KIND), value :: kind0 | |
263 integer(C_FFTW_R2R_KIND), value :: kind1 | |
264 integer(C_INT), value :: flags | |
265 end function fftw_mpi_plan_r2r_2d | |
266 | |
267 type(C_PTR) function fftw_mpi_plan_r2r_3d(n0,n1,n2,in,out,comm,kind0,kind1,kind2,flags) bind(C, name='fftw_mpi_plan_r2r_3d_f03') | |
268 import | |
269 integer(C_INTPTR_T), value :: n0 | |
270 integer(C_INTPTR_T), value :: n1 | |
271 integer(C_INTPTR_T), value :: n2 | |
272 real(C_DOUBLE), dimension(*), intent(out) :: in | |
273 real(C_DOUBLE), dimension(*), intent(out) :: out | |
274 integer(C_MPI_FINT), value :: comm | |
275 integer(C_FFTW_R2R_KIND), value :: kind0 | |
276 integer(C_FFTW_R2R_KIND), value :: kind1 | |
277 integer(C_FFTW_R2R_KIND), value :: kind2 | |
278 integer(C_INT), value :: flags | |
279 end function fftw_mpi_plan_r2r_3d | |
280 | |
281 type(C_PTR) function fftw_mpi_plan_many_dft_r2c(rnk,n,howmany,iblock,oblock,in,out,comm,flags) & | |
282 bind(C, name='fftw_mpi_plan_many_dft_r2c_f03') | |
283 import | |
284 integer(C_INT), value :: rnk | |
285 integer(C_INTPTR_T), dimension(*), intent(in) :: n | |
286 integer(C_INTPTR_T), value :: howmany | |
287 integer(C_INTPTR_T), value :: iblock | |
288 integer(C_INTPTR_T), value :: oblock | |
289 real(C_DOUBLE), dimension(*), intent(out) :: in | |
290 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out | |
291 integer(C_MPI_FINT), value :: comm | |
292 integer(C_INT), value :: flags | |
293 end function fftw_mpi_plan_many_dft_r2c | |
294 | |
295 type(C_PTR) function fftw_mpi_plan_dft_r2c(rnk,n,in,out,comm,flags) bind(C, name='fftw_mpi_plan_dft_r2c_f03') | |
296 import | |
297 integer(C_INT), value :: rnk | |
298 integer(C_INTPTR_T), dimension(*), intent(in) :: n | |
299 real(C_DOUBLE), dimension(*), intent(out) :: in | |
300 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out | |
301 integer(C_MPI_FINT), value :: comm | |
302 integer(C_INT), value :: flags | |
303 end function fftw_mpi_plan_dft_r2c | |
304 | |
305 type(C_PTR) function fftw_mpi_plan_dft_r2c_2d(n0,n1,in,out,comm,flags) bind(C, name='fftw_mpi_plan_dft_r2c_2d_f03') | |
306 import | |
307 integer(C_INTPTR_T), value :: n0 | |
308 integer(C_INTPTR_T), value :: n1 | |
309 real(C_DOUBLE), dimension(*), intent(out) :: in | |
310 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out | |
311 integer(C_MPI_FINT), value :: comm | |
312 integer(C_INT), value :: flags | |
313 end function fftw_mpi_plan_dft_r2c_2d | |
314 | |
315 type(C_PTR) function fftw_mpi_plan_dft_r2c_3d(n0,n1,n2,in,out,comm,flags) bind(C, name='fftw_mpi_plan_dft_r2c_3d_f03') | |
316 import | |
317 integer(C_INTPTR_T), value :: n0 | |
318 integer(C_INTPTR_T), value :: n1 | |
319 integer(C_INTPTR_T), value :: n2 | |
320 real(C_DOUBLE), dimension(*), intent(out) :: in | |
321 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out | |
322 integer(C_MPI_FINT), value :: comm | |
323 integer(C_INT), value :: flags | |
324 end function fftw_mpi_plan_dft_r2c_3d | |
325 | |
326 type(C_PTR) function fftw_mpi_plan_many_dft_c2r(rnk,n,howmany,iblock,oblock,in,out,comm,flags) & | |
327 bind(C, name='fftw_mpi_plan_many_dft_c2r_f03') | |
328 import | |
329 integer(C_INT), value :: rnk | |
330 integer(C_INTPTR_T), dimension(*), intent(in) :: n | |
331 integer(C_INTPTR_T), value :: howmany | |
332 integer(C_INTPTR_T), value :: iblock | |
333 integer(C_INTPTR_T), value :: oblock | |
334 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in | |
335 real(C_DOUBLE), dimension(*), intent(out) :: out | |
336 integer(C_MPI_FINT), value :: comm | |
337 integer(C_INT), value :: flags | |
338 end function fftw_mpi_plan_many_dft_c2r | |
339 | |
340 type(C_PTR) function fftw_mpi_plan_dft_c2r(rnk,n,in,out,comm,flags) bind(C, name='fftw_mpi_plan_dft_c2r_f03') | |
341 import | |
342 integer(C_INT), value :: rnk | |
343 integer(C_INTPTR_T), dimension(*), intent(in) :: n | |
344 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in | |
345 real(C_DOUBLE), dimension(*), intent(out) :: out | |
346 integer(C_MPI_FINT), value :: comm | |
347 integer(C_INT), value :: flags | |
348 end function fftw_mpi_plan_dft_c2r | |
349 | |
350 type(C_PTR) function fftw_mpi_plan_dft_c2r_2d(n0,n1,in,out,comm,flags) bind(C, name='fftw_mpi_plan_dft_c2r_2d_f03') | |
351 import | |
352 integer(C_INTPTR_T), value :: n0 | |
353 integer(C_INTPTR_T), value :: n1 | |
354 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in | |
355 real(C_DOUBLE), dimension(*), intent(out) :: out | |
356 integer(C_MPI_FINT), value :: comm | |
357 integer(C_INT), value :: flags | |
358 end function fftw_mpi_plan_dft_c2r_2d | |
359 | |
360 type(C_PTR) function fftw_mpi_plan_dft_c2r_3d(n0,n1,n2,in,out,comm,flags) bind(C, name='fftw_mpi_plan_dft_c2r_3d_f03') | |
361 import | |
362 integer(C_INTPTR_T), value :: n0 | |
363 integer(C_INTPTR_T), value :: n1 | |
364 integer(C_INTPTR_T), value :: n2 | |
365 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in | |
366 real(C_DOUBLE), dimension(*), intent(out) :: out | |
367 integer(C_MPI_FINT), value :: comm | |
368 integer(C_INT), value :: flags | |
369 end function fftw_mpi_plan_dft_c2r_3d | |
370 | |
371 subroutine fftw_mpi_gather_wisdom(comm_) bind(C, name='fftw_mpi_gather_wisdom_f03') | |
372 import | |
373 integer(C_MPI_FINT), value :: comm_ | |
374 end subroutine fftw_mpi_gather_wisdom | |
375 | |
376 subroutine fftw_mpi_broadcast_wisdom(comm_) bind(C, name='fftw_mpi_broadcast_wisdom_f03') | |
377 import | |
378 integer(C_MPI_FINT), value :: comm_ | |
379 end subroutine fftw_mpi_broadcast_wisdom | |
380 | |
381 subroutine fftw_mpi_execute_dft(p,in,out) bind(C, name='fftw_mpi_execute_dft') | |
382 import | |
383 type(C_PTR), value :: p | |
384 complex(C_DOUBLE_COMPLEX), dimension(*), intent(inout) :: in | |
385 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out | |
386 end subroutine fftw_mpi_execute_dft | |
387 | |
388 subroutine fftw_mpi_execute_dft_r2c(p,in,out) bind(C, name='fftw_mpi_execute_dft_r2c') | |
389 import | |
390 type(C_PTR), value :: p | |
391 real(C_DOUBLE), dimension(*), intent(inout) :: in | |
392 complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out | |
393 end subroutine fftw_mpi_execute_dft_r2c | |
394 | |
395 subroutine fftw_mpi_execute_dft_c2r(p,in,out) bind(C, name='fftw_mpi_execute_dft_c2r') | |
396 import | |
397 type(C_PTR), value :: p | |
398 complex(C_DOUBLE_COMPLEX), dimension(*), intent(inout) :: in | |
399 real(C_DOUBLE), dimension(*), intent(out) :: out | |
400 end subroutine fftw_mpi_execute_dft_c2r | |
401 | |
402 subroutine fftw_mpi_execute_r2r(p,in,out) bind(C, name='fftw_mpi_execute_r2r') | |
403 import | |
404 type(C_PTR), value :: p | |
405 real(C_DOUBLE), dimension(*), intent(inout) :: in | |
406 real(C_DOUBLE), dimension(*), intent(out) :: out | |
407 end subroutine fftw_mpi_execute_r2r | |
408 | |
409 end interface | |
410 | |
411 type, bind(C) :: fftwf_mpi_ddim | |
412 integer(C_INTPTR_T) n, ib, ob | |
413 end type fftwf_mpi_ddim | |
414 | |
415 interface | |
416 subroutine fftwf_mpi_init() bind(C, name='fftwf_mpi_init') | |
417 import | |
418 end subroutine fftwf_mpi_init | |
419 | |
420 subroutine fftwf_mpi_cleanup() bind(C, name='fftwf_mpi_cleanup') | |
421 import | |
422 end subroutine fftwf_mpi_cleanup | |
423 | |
424 integer(C_INTPTR_T) function fftwf_mpi_local_size_many_transposed(rnk,n,howmany,block0,block1,comm,local_n0,local_0_start, & | |
425 local_n1,local_1_start) & | |
426 bind(C, name='fftwf_mpi_local_size_many_transposed_f03') | |
427 import | |
428 integer(C_INT), value :: rnk | |
429 integer(C_INTPTR_T), dimension(*), intent(in) :: n | |
430 integer(C_INTPTR_T), value :: howmany | |
431 integer(C_INTPTR_T), value :: block0 | |
432 integer(C_INTPTR_T), value :: block1 | |
433 integer(C_MPI_FINT), value :: comm | |
434 integer(C_INTPTR_T), intent(out) :: local_n0 | |
435 integer(C_INTPTR_T), intent(out) :: local_0_start | |
436 integer(C_INTPTR_T), intent(out) :: local_n1 | |
437 integer(C_INTPTR_T), intent(out) :: local_1_start | |
438 end function fftwf_mpi_local_size_many_transposed | |
439 | |
440 integer(C_INTPTR_T) function fftwf_mpi_local_size_many(rnk,n,howmany,block0,comm,local_n0,local_0_start) & | |
441 bind(C, name='fftwf_mpi_local_size_many_f03') | |
442 import | |
443 integer(C_INT), value :: rnk | |
444 integer(C_INTPTR_T), dimension(*), intent(in) :: n | |
445 integer(C_INTPTR_T), value :: howmany | |
446 integer(C_INTPTR_T), value :: block0 | |
447 integer(C_MPI_FINT), value :: comm | |
448 integer(C_INTPTR_T), intent(out) :: local_n0 | |
449 integer(C_INTPTR_T), intent(out) :: local_0_start | |
450 end function fftwf_mpi_local_size_many | |
451 | |
452 integer(C_INTPTR_T) function fftwf_mpi_local_size_transposed(rnk,n,comm,local_n0,local_0_start,local_n1,local_1_start) & | |
453 bind(C, name='fftwf_mpi_local_size_transposed_f03') | |
454 import | |
455 integer(C_INT), value :: rnk | |
456 integer(C_INTPTR_T), dimension(*), intent(in) :: n | |
457 integer(C_MPI_FINT), value :: comm | |
458 integer(C_INTPTR_T), intent(out) :: local_n0 | |
459 integer(C_INTPTR_T), intent(out) :: local_0_start | |
460 integer(C_INTPTR_T), intent(out) :: local_n1 | |
461 integer(C_INTPTR_T), intent(out) :: local_1_start | |
462 end function fftwf_mpi_local_size_transposed | |
463 | |
464 integer(C_INTPTR_T) function fftwf_mpi_local_size(rnk,n,comm,local_n0,local_0_start) bind(C, name='fftwf_mpi_local_size_f03') | |
465 import | |
466 integer(C_INT), value :: rnk | |
467 integer(C_INTPTR_T), dimension(*), intent(in) :: n | |
468 integer(C_MPI_FINT), value :: comm | |
469 integer(C_INTPTR_T), intent(out) :: local_n0 | |
470 integer(C_INTPTR_T), intent(out) :: local_0_start | |
471 end function fftwf_mpi_local_size | |
472 | |
473 integer(C_INTPTR_T) function fftwf_mpi_local_size_many_1d(n0,howmany,comm,sign,flags,local_ni,local_i_start,local_no, & | |
474 local_o_start) bind(C, name='fftwf_mpi_local_size_many_1d_f03') | |
475 import | |
476 integer(C_INTPTR_T), value :: n0 | |
477 integer(C_INTPTR_T), value :: howmany | |
478 integer(C_MPI_FINT), value :: comm | |
479 integer(C_INT), value :: sign | |
480 integer(C_INT), value :: flags | |
481 integer(C_INTPTR_T), intent(out) :: local_ni | |
482 integer(C_INTPTR_T), intent(out) :: local_i_start | |
483 integer(C_INTPTR_T), intent(out) :: local_no | |
484 integer(C_INTPTR_T), intent(out) :: local_o_start | |
485 end function fftwf_mpi_local_size_many_1d | |
486 | |
487 integer(C_INTPTR_T) function fftwf_mpi_local_size_1d(n0,comm,sign,flags,local_ni,local_i_start,local_no,local_o_start) & | |
488 bind(C, name='fftwf_mpi_local_size_1d_f03') | |
489 import | |
490 integer(C_INTPTR_T), value :: n0 | |
491 integer(C_MPI_FINT), value :: comm | |
492 integer(C_INT), value :: sign | |
493 integer(C_INT), value :: flags | |
494 integer(C_INTPTR_T), intent(out) :: local_ni | |
495 integer(C_INTPTR_T), intent(out) :: local_i_start | |
496 integer(C_INTPTR_T), intent(out) :: local_no | |
497 integer(C_INTPTR_T), intent(out) :: local_o_start | |
498 end function fftwf_mpi_local_size_1d | |
499 | |
500 integer(C_INTPTR_T) function fftwf_mpi_local_size_2d(n0,n1,comm,local_n0,local_0_start) & | |
501 bind(C, name='fftwf_mpi_local_size_2d_f03') | |
502 import | |
503 integer(C_INTPTR_T), value :: n0 | |
504 integer(C_INTPTR_T), value :: n1 | |
505 integer(C_MPI_FINT), value :: comm | |
506 integer(C_INTPTR_T), intent(out) :: local_n0 | |
507 integer(C_INTPTR_T), intent(out) :: local_0_start | |
508 end function fftwf_mpi_local_size_2d | |
509 | |
510 integer(C_INTPTR_T) function fftwf_mpi_local_size_2d_transposed(n0,n1,comm,local_n0,local_0_start,local_n1,local_1_start) & | |
511 bind(C, name='fftwf_mpi_local_size_2d_transposed_f03') | |
512 import | |
513 integer(C_INTPTR_T), value :: n0 | |
514 integer(C_INTPTR_T), value :: n1 | |
515 integer(C_MPI_FINT), value :: comm | |
516 integer(C_INTPTR_T), intent(out) :: local_n0 | |
517 integer(C_INTPTR_T), intent(out) :: local_0_start | |
518 integer(C_INTPTR_T), intent(out) :: local_n1 | |
519 integer(C_INTPTR_T), intent(out) :: local_1_start | |
520 end function fftwf_mpi_local_size_2d_transposed | |
521 | |
522 integer(C_INTPTR_T) function fftwf_mpi_local_size_3d(n0,n1,n2,comm,local_n0,local_0_start) & | |
523 bind(C, name='fftwf_mpi_local_size_3d_f03') | |
524 import | |
525 integer(C_INTPTR_T), value :: n0 | |
526 integer(C_INTPTR_T), value :: n1 | |
527 integer(C_INTPTR_T), value :: n2 | |
528 integer(C_MPI_FINT), value :: comm | |
529 integer(C_INTPTR_T), intent(out) :: local_n0 | |
530 integer(C_INTPTR_T), intent(out) :: local_0_start | |
531 end function fftwf_mpi_local_size_3d | |
532 | |
533 integer(C_INTPTR_T) function fftwf_mpi_local_size_3d_transposed(n0,n1,n2,comm,local_n0,local_0_start,local_n1,local_1_start) & | |
534 bind(C, name='fftwf_mpi_local_size_3d_transposed_f03') | |
535 import | |
536 integer(C_INTPTR_T), value :: n0 | |
537 integer(C_INTPTR_T), value :: n1 | |
538 integer(C_INTPTR_T), value :: n2 | |
539 integer(C_MPI_FINT), value :: comm | |
540 integer(C_INTPTR_T), intent(out) :: local_n0 | |
541 integer(C_INTPTR_T), intent(out) :: local_0_start | |
542 integer(C_INTPTR_T), intent(out) :: local_n1 | |
543 integer(C_INTPTR_T), intent(out) :: local_1_start | |
544 end function fftwf_mpi_local_size_3d_transposed | |
545 | |
546 type(C_PTR) function fftwf_mpi_plan_many_transpose(n0,n1,howmany,block0,block1,in,out,comm,flags) & | |
547 bind(C, name='fftwf_mpi_plan_many_transpose_f03') | |
548 import | |
549 integer(C_INTPTR_T), value :: n0 | |
550 integer(C_INTPTR_T), value :: n1 | |
551 integer(C_INTPTR_T), value :: howmany | |
552 integer(C_INTPTR_T), value :: block0 | |
553 integer(C_INTPTR_T), value :: block1 | |
554 real(C_FLOAT), dimension(*), intent(out) :: in | |
555 real(C_FLOAT), dimension(*), intent(out) :: out | |
556 integer(C_MPI_FINT), value :: comm | |
557 integer(C_INT), value :: flags | |
558 end function fftwf_mpi_plan_many_transpose | |
559 | |
560 type(C_PTR) function fftwf_mpi_plan_transpose(n0,n1,in,out,comm,flags) bind(C, name='fftwf_mpi_plan_transpose_f03') | |
561 import | |
562 integer(C_INTPTR_T), value :: n0 | |
563 integer(C_INTPTR_T), value :: n1 | |
564 real(C_FLOAT), dimension(*), intent(out) :: in | |
565 real(C_FLOAT), dimension(*), intent(out) :: out | |
566 integer(C_MPI_FINT), value :: comm | |
567 integer(C_INT), value :: flags | |
568 end function fftwf_mpi_plan_transpose | |
569 | |
570 type(C_PTR) function fftwf_mpi_plan_many_dft(rnk,n,howmany,block,tblock,in,out,comm,sign,flags) & | |
571 bind(C, name='fftwf_mpi_plan_many_dft_f03') | |
572 import | |
573 integer(C_INT), value :: rnk | |
574 integer(C_INTPTR_T), dimension(*), intent(in) :: n | |
575 integer(C_INTPTR_T), value :: howmany | |
576 integer(C_INTPTR_T), value :: block | |
577 integer(C_INTPTR_T), value :: tblock | |
578 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in | |
579 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out | |
580 integer(C_MPI_FINT), value :: comm | |
581 integer(C_INT), value :: sign | |
582 integer(C_INT), value :: flags | |
583 end function fftwf_mpi_plan_many_dft | |
584 | |
585 type(C_PTR) function fftwf_mpi_plan_dft(rnk,n,in,out,comm,sign,flags) bind(C, name='fftwf_mpi_plan_dft_f03') | |
586 import | |
587 integer(C_INT), value :: rnk | |
588 integer(C_INTPTR_T), dimension(*), intent(in) :: n | |
589 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in | |
590 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out | |
591 integer(C_MPI_FINT), value :: comm | |
592 integer(C_INT), value :: sign | |
593 integer(C_INT), value :: flags | |
594 end function fftwf_mpi_plan_dft | |
595 | |
596 type(C_PTR) function fftwf_mpi_plan_dft_1d(n0,in,out,comm,sign,flags) bind(C, name='fftwf_mpi_plan_dft_1d_f03') | |
597 import | |
598 integer(C_INTPTR_T), value :: n0 | |
599 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in | |
600 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out | |
601 integer(C_MPI_FINT), value :: comm | |
602 integer(C_INT), value :: sign | |
603 integer(C_INT), value :: flags | |
604 end function fftwf_mpi_plan_dft_1d | |
605 | |
606 type(C_PTR) function fftwf_mpi_plan_dft_2d(n0,n1,in,out,comm,sign,flags) bind(C, name='fftwf_mpi_plan_dft_2d_f03') | |
607 import | |
608 integer(C_INTPTR_T), value :: n0 | |
609 integer(C_INTPTR_T), value :: n1 | |
610 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in | |
611 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out | |
612 integer(C_MPI_FINT), value :: comm | |
613 integer(C_INT), value :: sign | |
614 integer(C_INT), value :: flags | |
615 end function fftwf_mpi_plan_dft_2d | |
616 | |
617 type(C_PTR) function fftwf_mpi_plan_dft_3d(n0,n1,n2,in,out,comm,sign,flags) bind(C, name='fftwf_mpi_plan_dft_3d_f03') | |
618 import | |
619 integer(C_INTPTR_T), value :: n0 | |
620 integer(C_INTPTR_T), value :: n1 | |
621 integer(C_INTPTR_T), value :: n2 | |
622 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in | |
623 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out | |
624 integer(C_MPI_FINT), value :: comm | |
625 integer(C_INT), value :: sign | |
626 integer(C_INT), value :: flags | |
627 end function fftwf_mpi_plan_dft_3d | |
628 | |
629 type(C_PTR) function fftwf_mpi_plan_many_r2r(rnk,n,howmany,iblock,oblock,in,out,comm,kind,flags) & | |
630 bind(C, name='fftwf_mpi_plan_many_r2r_f03') | |
631 import | |
632 integer(C_INT), value :: rnk | |
633 integer(C_INTPTR_T), dimension(*), intent(in) :: n | |
634 integer(C_INTPTR_T), value :: howmany | |
635 integer(C_INTPTR_T), value :: iblock | |
636 integer(C_INTPTR_T), value :: oblock | |
637 real(C_FLOAT), dimension(*), intent(out) :: in | |
638 real(C_FLOAT), dimension(*), intent(out) :: out | |
639 integer(C_MPI_FINT), value :: comm | |
640 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind | |
641 integer(C_INT), value :: flags | |
642 end function fftwf_mpi_plan_many_r2r | |
643 | |
644 type(C_PTR) function fftwf_mpi_plan_r2r(rnk,n,in,out,comm,kind,flags) bind(C, name='fftwf_mpi_plan_r2r_f03') | |
645 import | |
646 integer(C_INT), value :: rnk | |
647 integer(C_INTPTR_T), dimension(*), intent(in) :: n | |
648 real(C_FLOAT), dimension(*), intent(out) :: in | |
649 real(C_FLOAT), dimension(*), intent(out) :: out | |
650 integer(C_MPI_FINT), value :: comm | |
651 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind | |
652 integer(C_INT), value :: flags | |
653 end function fftwf_mpi_plan_r2r | |
654 | |
655 type(C_PTR) function fftwf_mpi_plan_r2r_2d(n0,n1,in,out,comm,kind0,kind1,flags) bind(C, name='fftwf_mpi_plan_r2r_2d_f03') | |
656 import | |
657 integer(C_INTPTR_T), value :: n0 | |
658 integer(C_INTPTR_T), value :: n1 | |
659 real(C_FLOAT), dimension(*), intent(out) :: in | |
660 real(C_FLOAT), dimension(*), intent(out) :: out | |
661 integer(C_MPI_FINT), value :: comm | |
662 integer(C_FFTW_R2R_KIND), value :: kind0 | |
663 integer(C_FFTW_R2R_KIND), value :: kind1 | |
664 integer(C_INT), value :: flags | |
665 end function fftwf_mpi_plan_r2r_2d | |
666 | |
667 type(C_PTR) function fftwf_mpi_plan_r2r_3d(n0,n1,n2,in,out,comm,kind0,kind1,kind2,flags) & | |
668 bind(C, name='fftwf_mpi_plan_r2r_3d_f03') | |
669 import | |
670 integer(C_INTPTR_T), value :: n0 | |
671 integer(C_INTPTR_T), value :: n1 | |
672 integer(C_INTPTR_T), value :: n2 | |
673 real(C_FLOAT), dimension(*), intent(out) :: in | |
674 real(C_FLOAT), dimension(*), intent(out) :: out | |
675 integer(C_MPI_FINT), value :: comm | |
676 integer(C_FFTW_R2R_KIND), value :: kind0 | |
677 integer(C_FFTW_R2R_KIND), value :: kind1 | |
678 integer(C_FFTW_R2R_KIND), value :: kind2 | |
679 integer(C_INT), value :: flags | |
680 end function fftwf_mpi_plan_r2r_3d | |
681 | |
682 type(C_PTR) function fftwf_mpi_plan_many_dft_r2c(rnk,n,howmany,iblock,oblock,in,out,comm,flags) & | |
683 bind(C, name='fftwf_mpi_plan_many_dft_r2c_f03') | |
684 import | |
685 integer(C_INT), value :: rnk | |
686 integer(C_INTPTR_T), dimension(*), intent(in) :: n | |
687 integer(C_INTPTR_T), value :: howmany | |
688 integer(C_INTPTR_T), value :: iblock | |
689 integer(C_INTPTR_T), value :: oblock | |
690 real(C_FLOAT), dimension(*), intent(out) :: in | |
691 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out | |
692 integer(C_MPI_FINT), value :: comm | |
693 integer(C_INT), value :: flags | |
694 end function fftwf_mpi_plan_many_dft_r2c | |
695 | |
696 type(C_PTR) function fftwf_mpi_plan_dft_r2c(rnk,n,in,out,comm,flags) bind(C, name='fftwf_mpi_plan_dft_r2c_f03') | |
697 import | |
698 integer(C_INT), value :: rnk | |
699 integer(C_INTPTR_T), dimension(*), intent(in) :: n | |
700 real(C_FLOAT), dimension(*), intent(out) :: in | |
701 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out | |
702 integer(C_MPI_FINT), value :: comm | |
703 integer(C_INT), value :: flags | |
704 end function fftwf_mpi_plan_dft_r2c | |
705 | |
706 type(C_PTR) function fftwf_mpi_plan_dft_r2c_2d(n0,n1,in,out,comm,flags) bind(C, name='fftwf_mpi_plan_dft_r2c_2d_f03') | |
707 import | |
708 integer(C_INTPTR_T), value :: n0 | |
709 integer(C_INTPTR_T), value :: n1 | |
710 real(C_FLOAT), dimension(*), intent(out) :: in | |
711 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out | |
712 integer(C_MPI_FINT), value :: comm | |
713 integer(C_INT), value :: flags | |
714 end function fftwf_mpi_plan_dft_r2c_2d | |
715 | |
716 type(C_PTR) function fftwf_mpi_plan_dft_r2c_3d(n0,n1,n2,in,out,comm,flags) bind(C, name='fftwf_mpi_plan_dft_r2c_3d_f03') | |
717 import | |
718 integer(C_INTPTR_T), value :: n0 | |
719 integer(C_INTPTR_T), value :: n1 | |
720 integer(C_INTPTR_T), value :: n2 | |
721 real(C_FLOAT), dimension(*), intent(out) :: in | |
722 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out | |
723 integer(C_MPI_FINT), value :: comm | |
724 integer(C_INT), value :: flags | |
725 end function fftwf_mpi_plan_dft_r2c_3d | |
726 | |
727 type(C_PTR) function fftwf_mpi_plan_many_dft_c2r(rnk,n,howmany,iblock,oblock,in,out,comm,flags) & | |
728 bind(C, name='fftwf_mpi_plan_many_dft_c2r_f03') | |
729 import | |
730 integer(C_INT), value :: rnk | |
731 integer(C_INTPTR_T), dimension(*), intent(in) :: n | |
732 integer(C_INTPTR_T), value :: howmany | |
733 integer(C_INTPTR_T), value :: iblock | |
734 integer(C_INTPTR_T), value :: oblock | |
735 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in | |
736 real(C_FLOAT), dimension(*), intent(out) :: out | |
737 integer(C_MPI_FINT), value :: comm | |
738 integer(C_INT), value :: flags | |
739 end function fftwf_mpi_plan_many_dft_c2r | |
740 | |
741 type(C_PTR) function fftwf_mpi_plan_dft_c2r(rnk,n,in,out,comm,flags) bind(C, name='fftwf_mpi_plan_dft_c2r_f03') | |
742 import | |
743 integer(C_INT), value :: rnk | |
744 integer(C_INTPTR_T), dimension(*), intent(in) :: n | |
745 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in | |
746 real(C_FLOAT), dimension(*), intent(out) :: out | |
747 integer(C_MPI_FINT), value :: comm | |
748 integer(C_INT), value :: flags | |
749 end function fftwf_mpi_plan_dft_c2r | |
750 | |
751 type(C_PTR) function fftwf_mpi_plan_dft_c2r_2d(n0,n1,in,out,comm,flags) bind(C, name='fftwf_mpi_plan_dft_c2r_2d_f03') | |
752 import | |
753 integer(C_INTPTR_T), value :: n0 | |
754 integer(C_INTPTR_T), value :: n1 | |
755 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in | |
756 real(C_FLOAT), dimension(*), intent(out) :: out | |
757 integer(C_MPI_FINT), value :: comm | |
758 integer(C_INT), value :: flags | |
759 end function fftwf_mpi_plan_dft_c2r_2d | |
760 | |
761 type(C_PTR) function fftwf_mpi_plan_dft_c2r_3d(n0,n1,n2,in,out,comm,flags) bind(C, name='fftwf_mpi_plan_dft_c2r_3d_f03') | |
762 import | |
763 integer(C_INTPTR_T), value :: n0 | |
764 integer(C_INTPTR_T), value :: n1 | |
765 integer(C_INTPTR_T), value :: n2 | |
766 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in | |
767 real(C_FLOAT), dimension(*), intent(out) :: out | |
768 integer(C_MPI_FINT), value :: comm | |
769 integer(C_INT), value :: flags | |
770 end function fftwf_mpi_plan_dft_c2r_3d | |
771 | |
772 subroutine fftwf_mpi_gather_wisdom(comm_) bind(C, name='fftwf_mpi_gather_wisdom_f03') | |
773 import | |
774 integer(C_MPI_FINT), value :: comm_ | |
775 end subroutine fftwf_mpi_gather_wisdom | |
776 | |
777 subroutine fftwf_mpi_broadcast_wisdom(comm_) bind(C, name='fftwf_mpi_broadcast_wisdom_f03') | |
778 import | |
779 integer(C_MPI_FINT), value :: comm_ | |
780 end subroutine fftwf_mpi_broadcast_wisdom | |
781 | |
782 subroutine fftwf_mpi_execute_dft(p,in,out) bind(C, name='fftwf_mpi_execute_dft') | |
783 import | |
784 type(C_PTR), value :: p | |
785 complex(C_FLOAT_COMPLEX), dimension(*), intent(inout) :: in | |
786 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out | |
787 end subroutine fftwf_mpi_execute_dft | |
788 | |
789 subroutine fftwf_mpi_execute_dft_r2c(p,in,out) bind(C, name='fftwf_mpi_execute_dft_r2c') | |
790 import | |
791 type(C_PTR), value :: p | |
792 real(C_FLOAT), dimension(*), intent(inout) :: in | |
793 complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out | |
794 end subroutine fftwf_mpi_execute_dft_r2c | |
795 | |
796 subroutine fftwf_mpi_execute_dft_c2r(p,in,out) bind(C, name='fftwf_mpi_execute_dft_c2r') | |
797 import | |
798 type(C_PTR), value :: p | |
799 complex(C_FLOAT_COMPLEX), dimension(*), intent(inout) :: in | |
800 real(C_FLOAT), dimension(*), intent(out) :: out | |
801 end subroutine fftwf_mpi_execute_dft_c2r | |
802 | |
803 subroutine fftwf_mpi_execute_r2r(p,in,out) bind(C, name='fftwf_mpi_execute_r2r') | |
804 import | |
805 type(C_PTR), value :: p | |
806 real(C_FLOAT), dimension(*), intent(inout) :: in | |
807 real(C_FLOAT), dimension(*), intent(out) :: out | |
808 end subroutine fftwf_mpi_execute_r2r | |
809 | |
810 end interface |