QG
‐Python: A Reproducible 1.5‐Layer Quasi‐Geostrophic Modelling Service With Direct Sparse Solvers, Spectral Stability Diagnostics and Filter Sensitivity Data
Elias D. Nino‐Ruiz ABSTRACT
In this paper, we describe QG‐Python , an open, reproducible Python implementation of the 1.5‐layer quasi‐geostrophic (QG) model originally distributed as QG‐C, and the accompanying spectral stability and filter sensitivity dataset produced with it. The software service replaces the legacy Fortran multi‐grid Helmholtz solver of QG‐C with a direct sparse LU factorization (SuperLU through SciPy) that yields machine‐precision streamfunction inversions at a deterministic, reproducible cost. Three time integrators are exposed under a single API: the classical fourth‐order Runge–Kutta scheme (RK4), the Leapfrog scheme with the Robert–Asselin (RA) filter and the Leapfrog scheme with the Robert–Asselin–Williams (RAW) filter, together with diagnostic modules that compute the linearized operator, its leading eigenspectrum and the maximum Lyapunov exponent. The published dataset consists of (i) the analytic and numerical eigenspectrum of the linearized operator at two grid resolutions, (ii) the maximum Lyapunov exponent and the associated Benettin convergence trace, and (iii) a sensitivity sweep of the RA filter strength α ∈ {0.05, 0.10, 0.20, 0.40}. The data support a clean operational message: the classical von Neumann bound underestimates the true Leapfrog stability limit by a factor of 13.7 at the higher resolution, the maximum Lyapunov exponent is σ 1 = 0.03178 ( τ L = 31.5 time units), and the RAW filter reduces filter‐induced biases in kinetic energy and enstrophy from ∼21% and ∼46% (LF + RA) to under at identical computational cost. The software, the run configurations and the diagnostic outputs are archived under a permanent identifier and are intended as a community benchmark for time‐integration studies in geophysical fluid dynamics and ensemble data assimilation.