solver_session_copy_global_solution_2d Subroutine

public subroutine solver_session_copy_global_solution_2d(session, primitives, buf, offsets, nx, ny, status, message)

Gather the 2D solution to rank 0 and pack the requested primitive fields into ONE flat buffer, one nxny block per primitive in request order, each block i-fastest (x-contiguous) — the pack order of solution_gather_2d.write_global_field, so these fields match result_2d.dat columns exactly. offsets are 0-based BYTE offsets ((k-1)nxny8), computed identically on every rank. Supported names: x, y, rho, u, v, p; unknown names copy x with a warning (1D wire-compat leniency). Collective: every rank must call; buffer-size agreement is reduced with par_lor so no rank can return early past the gather.

Arguments

Type IntentOptional Attributes Name
type(solver_session_t), intent(inout) :: session
character(len=*), intent(in) :: primitives(:)
real(kind=wp), intent(out) :: buf(:)
integer(kind=int64), intent(out) :: offsets(:)
integer, intent(out) :: nx
integer, intent(out) :: ny
integer, intent(out), optional :: status
character(len=*), intent(out), optional :: message