Skip to content

v0.23.0

Choose a tag to compare

@github-actions github-actions released this 20 Aug 15:45
· 10 commits to main since this release
b13c28d

RRTMGP v0.23.0

Diff since v0.22.3

v0.23.0

  • Multi-angle longwave quadrature now works. The spectral non-scattering
    longwave solver integrates the Schwarzschild equation along 1-4
    Gauss-Jacobi-5 angles, selected with the n_gauss_angles keyword of
    NoScatLWRTE or RRTMGPSolver (the tables existed, but every kernel read
    only the first angle). The default remains the single-angle diffusivity
    approximation, bit for bit. One angle reproduces the hemispheric
    transmittance 2E₃(τ) to about 2.5%, four angles to better than 0.1%; run
    time grows in proportion to the number of angles. Gray radiation and the
    two-stream longwave solver reject n_gauss_angles > 1 rather than ignore
    it. A prescribed incident longwave flux is now converted to intensity as
    F/π (unchanged for one angle), so the angle-weighted fluxes sum back to
    F. Checked by the new test/angular_discretization.jl.
  • Breaking (renames, with deprecations): clear_lw_flux
    clear_lw_flux_net and clear_sw_fluxclear_sw_flux_net (matching
    lw_flux_net/sw_flux_net); toa_fluxtoa_sw_flux_dn,
    top_of_atmosphere_lw_flux_dntoa_lw_flux_dn, and
    top_of_atmosphere_diffuse_sw_flux_dntoa_diffuse_sw_flux_dn (one
    toa_ prefix for the incident-flux getters; the SwBCs field and the
    solve/solve_gray keyword toa_flux are unchanged). The old names
    forward with a deprecation warning until the next breaking release.
  • Breaking: RadiationOutput fields now match the getters:
    lw_flux_up/lw_flux_dn/lw_flux_net,
    sw_flux_up/sw_flux_dn/sw_direct_flux_dn/sw_flux_net, and net_flux
    (previously lw_up/lw_dn/lw_net, sw_up/sw_dn/sw_direct_dn/
    sw_net, and net). heating_rate and solver are unchanged.
  • The public API is delimited. RRTMGP.PUBLIC_NAMES lists it,
    test/public_api.jl locks it (every listed name defined and documented,
    nothing undeclared on the module surface), and on Julia 1.11 and later the
    list is declared with public. Undocumented helpers became internal
    (get_artifact_path, aerosol_names_docs, gas_names_sw_docs,
    update_views, and the AEROSOL_IDX constant are _-prefixed); the
    interpolation extension points (interp!, extrap!, requires_z,
    uniform_z_p, best_fit_p) gained docstrings and stay public.
  • validate_inputs reports the incident-solar-flux violation as
    toa_sw_flux_dn rather than the storage field name.
  • ClimaAtmos downstream testing moved from GitHub Actions, whose job timed
    out, to Buildkite, which triggers the climaatmos-downstream pipeline
    against the RRTMGP commit under test. ClimaCoupler stays on GitHub Actions.

Merged pull requests:

  • Cleanup toward v1: limit public API, unify variable names, enable multi-angle LW (#619) (@tapios)
  • v0.23 (#620) (@tapios)