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