process_spectral_110_solve Subroutine

public subroutine process_spectral_110_solve(div_u, waves, n1, n2, n3, st3, ay, by)

Middle third of the spectral post-process for the 110 case: the Y paired even/odd split, the Poisson divide, and the Y paired even/odd recombine. x and y are cosine transformed, so neither has a Nyquist mode and only the mean is singular (handled by eps_wave); the x Nyquist zeroing of the 010 case does not apply here (#465).

Layout: div_u(n1, n2, n3) with dim1 = Z r2c modes, dim2 = X modes, dim3 = Y modes (ay, by). Dim3 must span the whole global y range (ny), which the caller guarantees, since the Y 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

complex(kind=dp), intent(in), dimension(:, :, :) :: waves

Spectral equivalence constants, (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) :: st3

Offset of the local block in dim3 within the global spectral array

real(kind=dp), intent(in), dimension(:) :: ay
real(kind=dp), intent(in), dimension(:) :: by

Called by

proc~~process_spectral_110_solve~~CalledByGraph proc~process_spectral_110_solve m_omp_spectral::process_spectral_110_solve proc~fft_postprocess_110_omp m_omp_poisson_fft::omp_poisson_110_t%fft_postprocess_110_omp proc~fft_postprocess_110_omp->proc~process_spectral_110_solve 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_solve