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