FDM + flux-vector-splitting residual (Shu-style conservative finite difference). Per direction: split the physical flux at every node (interior + halo) into F^+/F^-, reconstruct F^+ with the LEFT-biased stencil and F^- with the RIGHT-biased (mirror) stencil, sum the two reconstructions at each face, then take the conservative difference.
The stencil offsets are IDENTICAL to the uniform FDS sweeps in compute_resid_2d -- only the operand differs: FDS reconstructs the conserved state (left -> qL, right -> qR); FVS reconstructs the split fluxes (left -> F^+, right -> F^-). Matching offsets is what preserves the high-order accuracy (Task 6.3 convergence gate).
No positivity limiter is applied: FVS reconstructs fluxes, not states, so the face-state Zhang-Shu guard used by the FDS path does not apply here (mirrors the 1D FVS path, which also leaves split fluxes unlimited).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(solver_state_2d_t), | intent(inout) | :: | state |