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
(see Calling FFTW from Legacy Fortran), but you must do it
manually with the modern Fortran interface (see Reversing array dimensions).