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