36
36
parameter(FFTW_SCRAMBLED_INPUT=8192)
37
37
parameter(FFTW_SCRAMBLED_OUTPUT=16384)
39
4) The array is divided among the processors for fftwnd in the last
40
dimension, not the first. See below.
39
42
MPI Communicator Parameters:
41
44
It's not clear how one passes MPI_Comm parameters from Fortran to C.
67
70
sizes when declaring the array.
74
The arguments to fftwnd_f77_mpi_local_sizes are interpreted as follows:
76
call fftwnd_f77_mpi_local_sizes(plan,
79
local_nlast2_after_transform,
80
local_last2_start_after_transform,
83
As in C, your array must contain at least total_local_size elements
84
(which may be slightly larger than you expect). "last" refers to the
85
last dimension of your data and "last2" refers to the second-to-last
86
dimension (for when you do the transform with transposed-order
87
output)--this it the opposite of C, where those arguments refer to the
88
first and second dimensions, respectively.
90
For example, if you are doing a 3d nx x ny x nz transform, your array
91
will be declared as data(total_local_size) and should be interpreted
92
as a Fortran (column-major) array data(0:nx-1, 0:ny-1,
93
0:local_nlast-1), where the last dimension corresponds to the nz
94
indices starting at local_last_start. Note that the indices are
95
zero-based. If you transform the array with transposed-order output,
96
the array should then be interpreted as data(0:nx-1, 0:nz-1,
97
0:local_nlast2_after_transform-1), where the last dimension
98
corresponds to the ny indices starting at
99
local_last2_start_after_transform.