Forward FFT for the non-periodic x and y case. Transposes the
physical field (nx, ny, nz) to (nz, nx, ny) so that the r2c
transform runs along the periodic z direction, then transforms
with the plan set up in init.
On multiple ranks the solver field's x-pencil is redistributed
through the cell-dims decomposition dc to reach the FFT's x-pencil.
When y is split (p_row > 1), enforce_periodicity_xy_omp could only
fold x locally, so the y fold happens here instead, in the
y-pencil of dc where the whole y range is local.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.