process_spectral_110_fw Subroutine

public subroutine process_spectral_110_fw(div_u, n1, n2, n3, st1, st2, nx, ny, nz, ax, bx, az, bz)

Forward third of the spectral post-process for the 110 case (non-periodic x and y, periodic z, R2C Z-transpose layout): normalise, Z periodic post-process forward, then the X paired even/odd split.

Layout: div_u(n1, n2, n3) with dim1 = Z r2c modes (az, bz), dim2 = X modes (ax, bx), dim3 = Y modes. Dim2 must span the whole global x range (nx), which the caller guarantees, since the X pairing writes both a mode and its mirror in the same pass.

Arguments

Type IntentOptional Attributes Name
complex(kind=dp), intent(inout), dimension(:, :, :) :: div_u

Divergence of velocity in spectral space, (nz/2+1, nx, ny) layout

integer, intent(in) :: n1

Local extents of div_u

integer, intent(in) :: n2

Local extents of div_u

integer, intent(in) :: n3

Local extents of div_u

integer, intent(in) :: st1

Offsets of the local block within the global spectral array

integer, intent(in) :: st2

Offsets of the local block within the global spectral array

integer, intent(in) :: nx

Global cell size

integer, intent(in) :: ny

Global cell size

integer, intent(in) :: nz

Global cell size

real(kind=dp), intent(in), dimension(:) :: ax
real(kind=dp), intent(in), dimension(:) :: bx
real(kind=dp), intent(in), dimension(:) :: az
real(kind=dp), intent(in), dimension(:) :: bz

Called by

proc~~process_spectral_110_fw~~CalledByGraph proc~process_spectral_110_fw m_omp_spectral::process_spectral_110_fw proc~fft_postprocess_110_omp m_omp_poisson_fft::omp_poisson_fft_t%fft_postprocess_110_omp proc~fft_postprocess_110_omp->proc~process_spectral_110_fw proc~process_spectral_110 m_omp_spectral::process_spectral_110 proc~fft_postprocess_110_omp->proc~process_spectral_110 proc~process_spectral_110->proc~process_spectral_110_fw