Skip to content

Radiation

Longwave radiation implementations

Currently implemented is

julia
using SpeedyWeather
subtypes(SpeedyWeather.AbstractLongwave)
5-element Vector{Any}:
 JeevanjeeRadiation
 OneBandLongwave
 SpeedyWeather.AbstractLongwaveRadiativeTransfer
 SpeedyWeather.AbstractLongwaveTransmissivity
 UniformCooling

Uniform cooling

Following Paulius and Garner[^PG06], the uniform cooling of the atmosphere is defined as

with   resulting in a cooling of -1.5K/day for most of the atmosphere, except below temperatures of   in the stratosphere where a relaxation towards   with a time scale of   is present.

Jeevanjee radiation

Jeevanjee and Zhou [^JZ22] (eq. 2) define a longwave radiative flux for atmospheric cooling as (following Seeley and Wordsworth [^SW23], eq. 1)

The flux (in ) is a vertical upward flux between two layers (vertically adjacent) of temperature difference . The change of this flux across layers depends on the temperature and is a relaxation term towards a prescribed stratospheric temperature   with a radiative forcing constant  . Two layers of identical temperatures   would have no net flux between them, but a layer below at higher temperature would flux into colder layers above as long as its temperature  . This flux is applied above the lowermost layer and above, leaving the surface fluxes unchanged. The uppermost layer is tied to through a relaxation at time scale  

The flux is converted to temperature tendencies at layer via

The term in parentheses is the absorbed flux in layer of the upward flux from below at interface   ( increases downwards, see Vertical coordinates and resolution and Sigma coordinates).    is the pressure thickness of layer , gravity and heat capacity .

OneBandLongwave

Solves the standard two-stream approximation to calculate longwave radiative fluxes up and down following Frierson et al. 2006 [^FH06].

using optical depth as vertical coordinate. Longwave emittance is following Stefan-Boltzmann with emittance of 1. Boundary conditions are   at the surface, i.e. the surface emitting with its surface temperature (sea surface temperature, skin or soil temperature); and   at the top (no longwave radiation from space). Instead of optical depth we solve these equations using the transmissivity   .

such that the upward flux of layer is reduced by transmissivity of that layer but increased by longwave emittance going up. Similarly on the downwards pass

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)

julia
spectral_grid = SpectralGrid()
longwave_radiation = OneBandLongwave(spectral_grid)
model = PrimitiveWetModel(spectral_grid; longwave_radiation)
model.longwave_radiation
OneBandLongwave <: AbstractLongwave
├ transmissivity: FriersonLongwaveTransmissivity{Float32}
└ radiative_transfer: OneBandLongwaveRadiativeTransfer{Float32}

The transmissivity is defined as in Frierson et al. 2006 [^FH06] using the following parameters

julia
FriersonLongwaveTransmissivity(spectral_grid)
FriersonLongwaveTransmissivity{Float32} <: SpeedyWeather.AbstractLongwaveTransmissivity
├ τ₀_equator::Float32 = 6.0
├ τ₀_pole::Float32 = 1.5
└ fₗ::Float32 = 0.1

to compute

with surface values of optical depth at the equator and at the poles and a transition in between with latitude . Then the optical depth changes in the vertical as

For details see Frierson et al. 2006 [^FH06].

Shortwave radiation

Currently implemented schemes:

julia
using SpeedyWeather
subtypes(SpeedyWeather.AbstractShortwave)
5-element Vector{Any}:
 OneBandShortwave
 SpeedyWeather.AbstractShortwaveClouds
 SpeedyWeather.AbstractShortwaveRadiativeTransfer
 SpeedyWeather.AbstractShortwaveTransmissivity
 TransparentShortwave

OneBandShortwave: 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 and are parameters, and are large-scale and convective precipitation, and is a threshold.

Stratocumulus clouds: Stratocumulus cloud cover over oceans is parameterized based on boundary layer static stability (GSEN):

with

Over land, the stratocumulus cover is further modified to be proportional to the surface relative humidity:

where is the surface (lowest model layer) relative humidity.

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 , which depends on zenith angle, layer depth, humidity, and cloud properties:

In the cloud-top layer, cloud reflection is included:

Ozone absorption in the upper ( ) and lower ( ) stratosphere is applied inside the layer loop, depositing the absorbed energy as a temperature tendency in those layers:

where is a prescribed fraction of the TOA solar flux .

At the surface, stratocumulus reflection and surface albedo are applied:

The upward flux at the surface is

and is propagated upward as

Cloud reflection is re-added to the upward beam at the cloud-top layer. The final upward flux leaving the atmosphere is stored as 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):

julia
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]")

julia
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:

julia
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 precipitation

  • NoClouds(spectral_grid): No clouds (used in OneBandGreyShortwave)

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 clouds

  • TransparentShortwaveTransmissivity(spectral_grid): Transparent atmosphere (used in OneBandGreyShortwave)

BackgroundShortwaveTransmissivity

For each layer , the transmissivity is

with

  •     (zenith-path correction; is the zenith angle)

  •    from the half-levels in the grid geometry

  • the column surface pressure

  • dry-air absorptivity (absorptivity_dry_air)

  • aerosol absorptivity (absorptivity_aerosol), scaled by when aerosols = true

  • water-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 Pa. The resulting values are computed once per column and reused for both the downward and upward sweeps in OneBandShortwaveRadiativeTransfer.

TransparentShortwaveTransmissivity details

Sets   for all layers and bands, effectively skipping atmospheric attenuation while still computing surface and cloud reflections in the radiative transfer step.

Stratocumulus clouds

The DiagnosticClouds scheme includes a use_stratocumulus flag (default: true) that enables the diagnostic stratocumulus cloud parameterization over oceans:

julia
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