RRTMGP.jl

RRTMGP.jl is a Julia implementation of the radiative transfer solver RTE (Radiative Transfer for Energetics) and the RRTMGP (RRTM for General circulation model applications—Parallel) correlated-$k$ gas optics (Pincus et al. [1]), based on the reference Fortran implementation rte-rrtmgp. It computes longwave and shortwave fluxes and heating rates for clear, cloudy, and aerosol-laden atmospheres, as well as an analytic gray-radiation mode for idealized studies, on CPUs and GPUs. It is the radiation scheme of the CliMA Earth System Model.

Quick start

Build an idealized atmospheric column, then solve it: gray radiation uses analytic formulas and needs no input data, while the full gas optics loads NCDatasets to download and parse the lookup tables:

using RRTMGP
profile = RRTMGP.standard_atmosphere(Float64; kind = :tropical)
out = RRTMGP.solve(profile; method = RRTMGP.GrayRadiation())  # gray optics
out.heating_rate[1, 1]                          # heating rate at bottom layer [K/s]
2.8935702803079375e-5
using NCDatasets                                # activates the gas optics
out = RRTMGP.solve(profile)                     # clear-sky correlated-k
out.lw_up[end, 1]                                # OLR [W/m²]
282.7005931707845

Code structure

RRTMGP is split into two parts:

  • Optics computes optical properties and source functions given atmospheric conditions (pressure, temperature, gas concentrations, clouds, aerosols).
  • RTE computes radiative fluxes given optical properties and source functions.

On top of this functional core sits the RRTMGPSolver, which host models drive through the getter contract, and a standalone front door (solve_gray, standard_atmosphere, solve) for single-column work.

How the documentation is organized

Authors

RRTMGP.jl is being developed by the Climate Modeling Alliance. It is based on RTE+RRTMGP and its reference Fortran implementation, developed by Robert Pincus, Eli Mlawer, and Jennifer Delamere (Pincus et al. [1]).