v0.23.0
RRTMGP v0.23.0
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 then_gauss_angleskeyword of
NoScatLWRTEorRRTMGPSolver(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
transmittance2E₃(τ)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 rejectn_gauss_angles > 1rather 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 newtest/angular_discretization.jl. - Breaking (renames, with deprecations):
clear_lw_flux→
clear_lw_flux_netandclear_sw_flux→clear_sw_flux_net(matching
lw_flux_net/sw_flux_net);toa_flux→toa_sw_flux_dn,
top_of_atmosphere_lw_flux_dn→toa_lw_flux_dn, and
top_of_atmosphere_diffuse_sw_flux_dn→toa_diffuse_sw_flux_dn(one
toa_prefix for the incident-flux getters; theSwBCsfield and the
solve/solve_graykeywordtoa_fluxare unchanged). The old names
forward with a deprecation warning until the next breaking release. - Breaking:
RadiationOutputfields 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, andnet_flux
(previouslylw_up/lw_dn/lw_net,sw_up/sw_dn/sw_direct_dn/
sw_net, andnet).heating_rateandsolverare unchanged. - The public API is delimited.
RRTMGP.PUBLIC_NAMESlists it,
test/public_api.jllocks it (every listed name defined and documented,
nothing undeclared on the module surface), and on Julia 1.11 and later the
list is declared withpublic. Undocumented helpers became internal
(get_artifact_path,aerosol_names_docs,gas_names_sw_docs,
update_views, and theAEROSOL_IDXconstant are_-prefixed); the
interpolation extension points (interp!,extrap!,requires_z,
uniform_z_p,best_fit_p) gained docstrings and stay public. validate_inputsreports the incident-solar-flux violation as
toa_sw_flux_dnrather than the storage field name.- ClimaAtmos downstream testing moved from GitHub Actions, whose job timed
out, to Buildkite, which triggers theclimaatmos-downstreampipeline
against the RRTMGP commit under test. ClimaCoupler stays on GitHub Actions.
Merged pull requests: