pvtend.CESM_F09

pvtend.CESM_F09 = GridProfile(name='CESM_F09', nlat=192, nlon=288, lat_south=-90.0, lat_north=90.0, dlat=0.9424083769633508, dlon=1.25, lon_west=0.0, lat_half=30.0, lon_half=45.0, z_is_height=True, inv_band_s=10.5, inv_band_n=85.5)

Static description of an input grid + its PV-inversion geometry (config).

Bundles the regular lat-lon grid metadata, the event-patch half-widths, and the Wu QG piecewise-inversion latitude band. Scope (v2.13): this is metadata/config consumed by callers. The Wu inversion solver (pvtend.ppvi.solver.invert_piecewise()) is genuinely grid-agnostic (anisotropic-safe zhdr reorder + below-ground fill), and the spectral Helmholtz/derivatives (pvtend.sh_ops) are global. The higher-level TendencyComputer pipeline, however, is still ERA5-specific (it hard-codes the 10.5–85.5°N band and H=z/g), so f09 end-to-end use currently goes through the solver API directly — build the cubes + zhdr yourself and pass H=z when z_is_height (see the pv_inversion/wu_cesm closure test for a worked example). Two profiles are provided:

  • ERA5_1P5_NH — the default ERA5 1.5° Northern-Hemisphere grid (current behaviour; isotropic Δlat=Δlon=1.5°).

  • CESM_F09 — the CESM2-LENS2 f09 global grid (192×288, anisotropic Δlat≈0.942°, Δlon=1.25°). Helmholtz/derivatives run fully global; the Wu QG inversion runs on the mid-latitude band [inv_band_s, inv_band_n] (it is singular at the equator/poles, so a truly-global QG inversion is out of scope — the band covers all blocking, ~25–85°N).

Note: CESM z is geopotential height [m] (use H=z directly), whereas ERA5 z is geopotential [m²/s²] (H=z/g).