public pure function stretched_y_matrix_bytes(bc_is_010, stretching_y, lowmem_fft, n_spec) result(nbytes8)
010-case, non-uniform y-stretching Poisson coefficient matrices,
src/poisson_fft.f90:176-186 (only 010 sets stretched_y, and only at
num_gpus=1 since 010 error-stops at nproc>1) and :320-323,424-428
(allocation shapes), copied to the device at
src/backend/cuda/poisson_fft.f90:390-411:
'bottom': a_re, a_im, shape (nx_spec, ny_spec, nz_spec, 5), real(dp)
otherwise ('centred', 'top-bottom'): a_odd_re/im, a_even_re/im,
shape (nx_spec, ny_spec/2, nz_spec, 5), real(dp)
doubled by the store_a_*_dev copies when lowmem_fft is .false.
(the default).
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.