Radiation
Longwave radiation implementations
Currently implemented is
using SpeedyWeather
subtypes(SpeedyWeather.AbstractLongwave)5-element Vector{Any}:
JeevanjeeRadiation
OneBandLongwave
SpeedyWeather.AbstractLongwaveRadiativeTransfer
SpeedyWeather.AbstractLongwaveTransmissivity
UniformCoolingUniform cooling
Following Paulius and Garner[^PG06], the uniform cooling of the atmosphere is defined as
with
Jeevanjee radiation
Jeevanjee and Zhou [^JZ22] (eq. 2) define a longwave radiative flux
The flux
The flux
The term in parentheses is the absorbed flux in layer
OneBandLongwave
Solves the standard two-stream approximation to calculate longwave radiative fluxes up
using optical depth
such that the upward flux
Note that the sign change in the differential formulation with optical depth only occurs because the optical depth as vertical coordinate strictly increases towards the surface.
To be used like (currently the default anyway)
spectral_grid = SpectralGrid()
longwave_radiation = OneBandLongwave(spectral_grid)
model = PrimitiveWetModel(spectral_grid; longwave_radiation)
model.longwave_radiationOneBandLongwave <: AbstractLongwave
├ transmissivity: FriersonLongwaveTransmissivity{Float32}
└ radiative_transfer: OneBandLongwaveRadiativeTransfer{Float32}The transmissivity is defined as in Frierson et al. 2006 [^FH06] using the following parameters
FriersonLongwaveTransmissivity(spectral_grid)FriersonLongwaveTransmissivity{Float32} <: SpeedyWeather.AbstractLongwaveTransmissivity
├ τ₀_equator::Float32 = 6.0
├ τ₀_pole::Float32 = 1.5
└ fₗ::Float32 = 0.1to compute
with surface values of optical depth at the equator
For details see Frierson et al. 2006 [^FH06].
Shortwave radiation
Currently implemented schemes:
using SpeedyWeather
subtypes(SpeedyWeather.AbstractShortwave)5-element Vector{Any}:
OneBandShortwave
SpeedyWeather.AbstractShortwaveClouds
SpeedyWeather.AbstractShortwaveRadiativeTransfer
SpeedyWeather.AbstractShortwaveTransmissivity
TransparentShortwaveOneBandShortwave: Single-band shortwave radiation with diagnostic clouds
The OneBandShortwave scheme provides a single-band (broadband) shortwave radiation parameterization, including diagnostic cloud effects following [^KMB06]. For dry models without water vapor, use OneBandGreyShortwave instead, which automatically disables cloud effects and uses transparent transmissivity
Key differences:
OneBandShortwave: Includes diagnostic clouds, water vapor absorption, and atmospheric transmissivity effects (for wet models)OneBandGreyShortwave: No clouds, transparent atmosphere (for dry models)
Cloud diagnosis: Cloud properties are diagnosed from the relative humidity and total precipitation in the atmospheric column. The cloud base is set at the interface between the lowest two model layers, and the cloud top is the highest layer where both
are satisfied. The cloud cover (CLC) in a layer is then given by
where
Stratocumulus clouds: Stratocumulus cloud cover over oceans is parameterized based on boundary layer static stability (GSEN):
with
Over land, the stratocumulus cover
where
Radiative transfer: The incoming solar flux at the top of the atmosphere is computed from astronomical formulae. Shortwave radiation is propagated downward through each layer using a transmissivity
In the cloud-top layer, cloud reflection is included:
Ozone absorption in the upper (
where
At the surface, stratocumulus reflection and surface albedo are applied:
The upward flux at the surface is
and is propagated upward as
Cloud reflection outgoing_shortwave (OSR) and represents the total TOA-outgoing SW: cloud reflection + stratocumulus reflection + surface albedo reflection, all after partial attenuation by water vapor on the return path.
Key features:
Single-band (broadband) shortwave radiative transfer
Cloud reflection and absorption parameterized using diagnosed cloud cover
Surface albedo can vary between land and ocean
Top-of-atmosphere insolation set by the solar constant and zenith angle
Designed for use in idealized and moist atmospheric simulations
Usage
To use the OneBandShortwave scheme, construct your model as follows and run as usual.
For wet models (with water vapor and clouds):
using SpeedyWeather, CairoMakie
spectral_grid = SpectralGrid(trunc=31, nlayers=8)
model = PrimitiveWetModel(spectral_grid; shortwave_radiation=OneBandShortwave(spectral_grid))
simulation = initialize!(model)
run!(simulation, period=Week(1))
# get surface shortwave radiation down
ssrd = simulation.diagnostic_variables.physics.surface_shortwave_down
heatmap(ssrd,title="Surface shortwave radiation down [W/m^2]")
osr = simulation.diagnostic_variables.physics.outgoing_shortwave
heatmap(osr,title="Outgoing shortwave radiation [W/m^2]")
For dry models (no water vapor or clouds):
Use OneBandGreyShortwave instead, which automatically uses NoClouds and TransparentShortwaveTransmissivity:
using SpeedyWeather, CairoMakie
spectral_grid = SpectralGrid(trunc=31, nlayers=8)
model = PrimitiveDryModel(spectral_grid; shortwave_radiation=OneBandGreyShortwave(spectral_grid))
simulation = initialize!(model)
run!(simulation, period=Week(1))
# The shortwave fluxes can be visualised
ssrd = simulation.diagnostic_variables.physics.surface_shortwave_down
heatmap(ssrd, title="Surface shortwave radiation (dry model) [W/m^2]")
Parameterization options
The OneBandShortwave scheme includes several configurable components:
Cloud schemes
The cloud scheme can be specified when constructing the radiation scheme:
DiagnosticClouds(spectral_grid)(default): Diagnoses clouds from humidity and precipitationNoClouds(spectral_grid): No clouds (used inOneBandGreyShortwave)
Transmissivity schemes
The atmospheric transmissivity can be calculated using:
BackgroundShortwaveTransmissivity(spectral_grid)(default): Fortran SPEEDY-based transmissivity with zenith correction and absorption by aerosols, water vapor, and cloudsTransparentShortwaveTransmissivity(spectral_grid): Transparent atmosphere (used inOneBandGreyShortwave)
BackgroundShortwaveTransmissivity
For each layer
with
(zenith-path correction;is the zenith angle) from the half-levels in the grid geometrythe column surface pressure dry-air absorptivity ( absorptivity_dry_air)aerosol absorptivity ( absorptivity_aerosol), scaled bywhen aerosols = truewater-vapor absorptivity ( absorptivity_water_vapor) times specific humidity cloud absorptivity added below the diagnosed cloud top, scaled by cloud cover
All absorptivity coefficients are per OneBandShortwaveRadiativeTransfer.
TransparentShortwaveTransmissivity details
Sets
Stratocumulus clouds
The DiagnosticClouds scheme includes a use_stratocumulus flag (default: true) that enables the diagnostic stratocumulus cloud parameterization over oceans:
using SpeedyWeather, CairoMakie
spectral_grid = SpectralGrid()
sw_no_sc = OneBandShortwave(spectral_grid, clouds = DiagnosticClouds(spectral_grid; use_stratocumulus=false))
model = PrimitiveWetModel(spectral_grid; shortwave_radiation=sw_no_sc)
sim = initialize!(model)
run!(sim, period=Day(5))
ssrd = sim.diagnostic_variables.physics.surface_shortwave_down
heatmap(ssrd, title="No stratocumulus clouds [W/m^2]")
References
[^PG06]: Paulius and Garner, 2006. JAS. DOI:10.1175/JAS3705.1
[^SW23]: Seeley, J. T. & Wordsworth, R. D. Moist Convection Is Most Vigorous at Intermediate Atmospheric Humidity. Planet. Sci. J. 4, 34 (2023). DOI:10.3847/PSJ/acb0cb
[^JZ22]: Jeevanjee, N. & Zhou, L. On the Resolution‐Dependence of Anvil Cloud Fraction and Precipitation Efficiency in Radiative‐Convective Equilibrium. J Adv Model Earth Syst 14, e2021MS002759 (2022). DOI:10.1029/2021MS002759
[^KMB06]: Kucharski, F., Molteni, F., & Bracco, A. SPEEDY: A simplified atmospheric general circulation model. ICTP, Trieste, Italy. Appendix A: Model Equations and Parameters (2006). PDF
[^FH06]: Frierson DMW, IM Held, P Zurita-Gotor. A Gray-Radiation Aquaplanet Moist GCM. Part I: Static Stability and Eddy Scale (2006). Journal of the Atmospheric Sciences 63:10. DOI: 10.1175/JAS3753.1