An atmospheric river making landfall on the US West Coast, 3–5 January 2023 (MERRA-2, 3-hourly means). Left: integrated vapor transport (IVT), with the AR detected from IVT outlined. Right: the same AR detected from vapor transport energy (IVTE) or the kinetic energy of vapor (IKEV); light contours show the metric itself. Shading shows either the metric (“Value”) or the selected term of its budget, where red builds the AR up and blue erodes it. Budgets follow Zhang et al. (2026); vapor sources/sinks and turbulence come from MERRA-2’s physics tendencies. “Turbulence” is shorthand for all subgrid momentum forcing, which in MERRA-2 comprises turbulence, gravity-wave drag and convection.
TL;DR: Integrated vapor transport (IVT) is the standard tool for detecting atmospheric rivers, but it has no clean budget equation. Vapor kinetic energy detects the same atmospheric rivers and comes with a simple budget equation, allowing us to study their evolution. We show that atmospheric rivers grow by converting potential to kinetic energy, decay through condensation and turbulence, and move by convergence of vapor kinetic energy flux.
Atmospheric rivers (ARs) are long, narrow filaments of intense water vapor transport in the mid-latitudes. They are thousands of kilometers long, a few hundred kilometers wide, and drift eastward with the extratropical cyclones that accompany them [3]. On average, an AR carries more water than the Amazon River, and ARs together account for most poleward vapor transport in the mid-latitudes [4][5]. At landfall they supply much of the precipitation along the coasts they hit, and cause many of the worst floods and wind events there [6].
An AR needs two ingredients: abundant water vapor and strong winds. The standard AR diagnostic that captures both is the integrated vapor transport (IVT):
IVT≡(−g1∫psptqudp)2+(−g1∫psptqvdp)2
where q is specific humidity, (u,v) is the horizontal wind, ps is surface pressure, and pt (usually 200 hPa) is a level above which vapor is negligible. IVT is the magnitude of the column-integrated vapor flux qu. Its units are kgm−1s−1 and represents the mass of water vapor crossing a 1 m line per second, summed over the column. ARs typically exceed about 250kgm−1s−1.
Most AR detection algorithms rely on thresholds of IVT [7]. They differ in detail but agree on five regions of frequent ARs: the North Pacific, southeast Pacific, North Atlantic, South Atlantic and southern Indian Ocean [8].
IVT is good at detecting ARs but poor at explaining them. Process studies have instead constructed budgets of column water vapor (AKA total precipitable water, up to a factor of density ρ). This can track where an AR’s moisture comes from (mainly convergence) and where it goes (mainly precipitation), but it leaves out the wind entirely, implicitly treating wind evolution as secondary. Given how closely ARs are tied to extratropical cyclones and low-level jets, and how much of their damage comes from wind, we consider this limitation in developing a new metric for ARs.
One can think of the vapor flux qu as a moisture-weighted momentum. In classical mechanics, when momentum is unwieldy, we can turn to energy. Denoting the kinetic energy per unit mass K≡(u2+v2)/2, two “vapor-weighted kinetic energies” are natural:
kinetic energy of vapor:KEVvapor transport energy:VTE≡qK≡q2K=21∣qu∣2
KEV is the kinetic energy carried by the vapor. VTE is half the squared norm of the vapor flux qu, playing a similar role as K for u. Both have units of Jkg−1. Because q, u and v enter VTE with equal powers, as in IVT, VTE is weighted more toward moisture and KEV more toward wind.
A note on names: [1] introduced q2K as vapor kinetic energy (VKE). [2] renamed it vapor transport energy (VTE) to distinguish it from KEV, and “VKE” now refers to the framework.
The column integrals, in Jm−2, are
IKEV≡−g1∫psptqKdp,IVTE≡−g1∫psptq2Kdp.
Swap either one into an IVT-based detection algorithm, retune the threshold to match the global AR frequency, and the detected ARs are nearly identical. With IVTE, AR frequency changes by only 2–4 days per year, less than the ~10 days per year separating two standard IVT algorithms [1]. IKEV detects slightly fewer ARs at low latitudes and more at high southern latitudes, where the jet is strong [2].
Here ω is pressure velocity, Φ is geopotential, S is the net vapor source, and F is the parameterized subgrid momentum forcing. We call it “turbulence” for short because that is the dominant term, but it includes all subgrid momentum forcing; in MERRA-2, that is turbulence, gravity-wave drag and convection. The two equations differ only in their moisture weighting.
Click a term in the equation, or pick one:
Horizontal flux convergence
Horizontal winds carry VKE through the AR. Convergence downstream and divergence upstream move the AR. In some regions, net convergence also adds to its growth.
Vertical flux convergence
Redistributes VKE vertically, but nearly vanishes in the column integral, since ω≈0 at the surface and q≈0 at pt.
Conversion of potential to kinetic energy
Flow down the geopotential gradient accelerates. Geostrophic flow runs along Φ contours and does no work, so only the ageostrophic (cross-contour) flow converts PE to KE. This is the process that drives low-level jets, and it is absent from the water vapor budget.
Vapor sources & sinks
Condensation removes vapor, and with it the kinetic energy that vapor carried (KS<0). Surface evaporation adds vapor and acts as a source.
Turbulence
The term includes all subgrid momentum forcing, which in MERRA-2 comprises turbulence, gravity-wave drag and convection. The main component is turbulent drag, concentrated in the boundary layer, which slows the wind and removes VKE.
With ⟨⋅⟩≡−g1∫pspt(⋅)dp, the column budget is, to a very good approximation,
∂t∂IKEV≈−⟨∇p⋅(uKEV)⟩−⟨qu⋅∇pΦ⟩+⟨KS⟩+⟨qu⋅F⟩
and likewise for IVTE.
Derivation of the budget equations
Let K≡∣u∣2/2 be the kinetic energy per unit mass, and define
KEV≡qK and VTE≡q2K=∣qu∣2/2.
With the material derivative DtD≡∂t∂+u⋅∇p+ω∂p∂,
the moisture and horizontal momentum equations of the hydrostatic primitive equations are
DtDq=S,DtDu=−(f+autanϑ)k×u−∇pΦ+F,
where f=2Ωsinϑ is the Coriolis parameter, ϑ is latitude, and a is Earth’s radius.
Kinetic energy. Dotting the momentum equation with u removes the Coriolis and
curvature terms, since u⋅(k×u)=0:
DtDK=−u⋅∇pΦ+u⋅F.
Product rule. Combining with the moisture equation,
The surface terms combine to gXs(∂t∂ps+us⋅∇ps−ωs),
which vanishes by the kinematic boundary condition ωs=Dps/Dt. The top term is negligible
because q(pt)≈0. The column budgets are therefore
In MERRA-2, S combines moist physics, turbulence (including surface evaporation) and chemistry,
and F combines turbulence, gravity-wave drag and convection. Ong & Yang (2024) also
track a small contribution from data-assimilation increments.
We are developing an open-source Python package for these diagnostics, vke-budgets. It takes the winds, humidity, geopotential and surface pressure from a reanalysis and computes every term of the column-integrated KEV and VTE budgets on its grid. It currently reads MERRA-2, whose physics tendencies give the vapor sources/sinks and turbulence terms directly. Support for ERA5 is forthcoming.
For example, the KEV budget of one day of MERRA-2 over the northeast Pacific:
from vke_budgets import budgetfrom vke_budgets.sources import merra2# The MERRA-2 files of 4 January 2023, kept in one directory per yearday = merra2.open_day("20230104", "/path/to/merra2")# Every term of the KEV and VTE budgets, for the eight 3-hour windows of the dayresult = budget.compute(day, n_workers=3)# The KEV budget by group, over the northeast Pacifickev_budget = budget.groups(result, "KEV").sel(lat=slice(15, 60), lon=slice(-170, -110))kev_budget
Output
<xarray.Dataset> Size: 5MB
Dimensions: (time: 8, lat: 91, lon: 97)
Coordinates:
* time (time) datetime64[ns] 64B 2023-01-04T01:30:00 ... 2023-...
* lat (lat) float64 728B 15.0 15.5 16.0 16.5 ... 59.0 59.5 60.0
* lon (lon) float64 776B -170.0 -169.4 -168.8 ... -110.6 -110.0
Data variables:
tend (time, lat, lon) float64 565kB -0.006231 ... -0.001284
hflux (time, lat, lon) float64 565kB -0.006156 ... -0.002197
vflux (time, lat, lon) float64 565kB 0.0003042 ... -1.697e-07
pe_conversion (time, lat, lon) float64 565kB 0.01476 ... 0.002542
subgrid_momentum (time, lat, lon) float64 565kB -0.01267 ... -5.155e-05
net_vapor_source (time, lat, lon) float64 565kB 0.002604 ... -2.397e-05
analysis (time, lat, lon) float64 565kB -0.001525 ... -0.001333
boundary (time, lat, lon) float64 565kB 0.0 0.0 ... 1.664e-05
residual (time, lat, lon) float64 565kB -0.003549 ... -0.0002359
Attributes:
title: Column KEV budget by group
quantity: KEV = q K
budget: tend = hflux + vflux + pe_conversion + subgrid_momentum + net_...
column: mass-weighted integral from 1000 to 200 hPa
source: MERRA-2
Ong & Yang (2024). Vapor kinetic energy for the detection and understanding of atmospheric rivers. Nat. Commun.
Zhang et al. (2026). Understanding the evolution of global atmospheric rivers with a vapor kinetic energy framework. Geophys. Res. Lett.
Ralph et al. (2018). Defining “atmospheric river”: How the Glossary of Meteorology helped resolve a debate. Bull. Am. Meteorol. Soc.
Ralph et al. (2017). Dropsonde observations of total integrated water vapor transport within North Pacific atmospheric rivers. J. Hydrometeorol.
Zhu & Newell (1998). A proposed algorithm for moisture fluxes from atmospheric rivers. Mon. Weather Rev.
Waliser & Guan (2017). Extreme winds and precipitation during landfall of atmospheric rivers. Nat. Geosci.
Rutz et al. (2019). The Atmospheric River Tracking Method Intercomparison Project (ARTMIP): Quantifying uncertainties in atmospheric river climatology. J. Geophys. Res. Atmos.
Lora et al. (2020). Consensus and disagreement in atmospheric river detection: ARTMIP global catalogues. Geophys. Res. Lett.