fftw3: Column-major Format
3.2.2 Column-major Format
-------------------------
Readers from the Fortran world are used to arrays stored in
"column-major" order (sometimes called "Fortran order"). This is
essentially the exact opposite of row-major order in that, here, the
_first_ dimension's index varies most quickly.
If you have an array stored in column-major order and wish to
transform it using FFTW, it is quite easy to do. When creating the
plan, simply pass the dimensions of the array to the planner in _reverse
order_. For example, if your array is a rank three 'N x M x L' matrix
in column-major order, you should pass the dimensions of the array as if
it were an 'L x M x N' matrix (which it is, from the perspective of
FFTW). This is done for you _automatically_ by the FFTW legacy-Fortran
interface (Calling FFTW from Legacy Fortran), but you must do it
manually with the modern Fortran interface (Reversing array
dimensions).