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