
November 2026 · Politecnico di Milano
Atmosphere and Ocean Dynamics — Lecture 4
Prof. Dr. Pedro da Silva Peixoto
Applied Mathematics
Instituto de Matemática e Estatística
Universidade de São Paulo
Visiting Professor at MOX Lab
Politecnico di Milano
Previous knowledge
Buoyancy makes vorticity: waves in a layered fluid, convection in an unstable one
(Vallis 2017; Durran 2010)

A thunderstorm over Africa, from the ISS. NASA, public domain
Convection: warm air rises 15 km, then spreads under the stratosphere

A shelf cloud. NOAA, public domain
A density current: the storm’s cold outflow runs along the ground and lifts the warm air ahead

Lenticular clouds, Boulder (Colorado). NOAA, public domain
Mountain waves: air lifted by the Rockies oscillates downstream
Three motions in the vertical, each seen in a vertical plane: what drives them?
Atmosphere: the temperature falls with height, but the potential temperature \(\theta\) grows: air lifted without heating is colder than its new surroundings
Recall: \(\theta = T\,(p_0/p)^{R/c_p}\) (\(p_0 = 1000\) hPa; \(R\), \(c_p\): of dry air)
Ocean: light, warm water over dense, cold water; most of the change in a thermocline of a few hundred metres
Both fluids are stably stratified: light over dense
(Vallis 2017; Gill 1982)
Lift a parcel from \(z_0\) by \(\delta z\); it keeps its density \(\bar\rho(z_0)\). Its new surroundings have \(\bar\rho(z_0 + \delta z) \approx \bar\rho(z_0) + \frac{d\bar\rho}{dz}\delta z\). Its buoyancy, the upward force per unit mass:
\[b = -g\,\frac{\rho_{\mathrm{parcel}} - \rho_{\mathrm{around}}}{\rho_0} = {\color{#1f5ccc}\frac{g}{\rho_0}\frac{d\bar\rho}{dz}}\;\delta z\]
\(\bar\rho(z)\): density of the fluid at rest; \(\rho_0\): constant reference density (Boussinesq)
Density decreasing upwards (\(d\bar\rho/dz < 0\)): \(b < 0\), the parcel is pulled back
A displaced parcel feels the density difference with its new surroundings: its buoyancy
(Vallis 2017; Cushman-Roisin and Beckers 2011)
Newton: \(\dfrac{d^2\delta z}{dt^2} = b = -N^2\,\delta z\), with
\[N^2 = -\frac{g}{\rho_0}\frac{d\bar\rho}{dz} \qquad\left(\text{air: } N^2 = \frac{g}{\theta}\frac{d\theta}{dz}\right)\]
\(N\): buoyancy (Brunt–Väisälä) frequency; \(\theta\): potential temperature
\(N^2 > 0\): stable, an oscillation of period \(2\pi/N\), about 10 minutes. \(N^2 < 0\): the parcel runs away: convection
The buoyancy (Brunt–Väisälä) frequency \(N\) measures how stiff the stratification is
(Vallis 2017; Gill 1982)
Each from one gradient (\(g = 9.81\ \mathrm{m\,s^{-2}}\)):
\(\beta_T = 2\times10^{-4}\ \mathrm{K^{-1}}\): thermal expansion coefficient, \(\rho = \rho_0[1 - \beta_T(T - T_0)]\)
Periods from a minute to hours: the larger \(N\), the more work it takes to mix the water vertically
(Vallis 2017; Gill 1982)
\[\begin{aligned} \frac{D\mathbf{u}}{Dt} + 2\boldsymbol{\Omega}\times\mathbf{u} &= -\frac{1}{\rho_0}\nabla\delta p + b\,\mathbf{k}\\ \nabla\cdot\mathbf{u} &= 0, \qquad \frac{Db}{Dt} = \dot b \end{aligned}\]
\(\delta p\): departure from \(\tilde p(z)\), the hydrostatic pressure of \(\rho_0\) alone; \(b\): buoyancy; \(\dot b\): its sources
In a plane \((x, z)\): \({\color{#1f5ccc}\partial_y = 0,\ v = 0}\); \({\color{#1f5ccc}\boldsymbol{\Omega} = 0}\); \({\color{#1f5ccc}\dot b = 0}\); \({\color{#1f5ccc}\phi = \delta p/\rho_0}\)
\[\begin{aligned} \frac{Du}{Dt} &= -\frac{\partial\phi}{\partial x}, &\quad \frac{Dw}{Dt} &= -\frac{\partial\phi}{\partial z} + b\\[2pt] \frac{Db}{Dt} &= 0, &\quad \frac{\partial u}{\partial x} + \frac{\partial w}{\partial z} &= 0 \end{aligned}\]
\((u, w)\): velocity in the plane; \(D/Dt = \partial_t + u\,\partial_x + w\,\partial_z\)
But: no equation gives \(\phi\) by itself
The simplest model with up-and-down motion: four equations in a vertical plane
(Vallis 2017; Durran 2010)
\[\frac{D\xi}{Dt} = {\color{#1f5ccc}\frac{\partial b}{\partial x}}\]
\(\xi\): minus the \(y\)-component of \(\nabla\times\mathbf u\) (\(y\) points into the page)
Warm on the right: the fluid turns anticlockwise and rises on the warm side. Bjerknes’s sea breeze (1898) is this equation
But: we now step \(\xi\). Where are \(u\) and \(w\)?
A horizontal buoyancy gradient spins the fluid
(Vallis 2017; Bjerknes 1898)
A streamfunction, \(\;u = -\partial_z\psi\), \(\;w = \partial_x\psi\): continuity holds for any \(\psi\), and \(\xi = \nabla^2\psi\). Advection: \(\;\mathbf u\cdot\nabla c = J(\psi, c) = \partial_x\psi\,\partial_z c - \partial_z\psi\,\partial_x c\)
Today, a vertical plane \[\begin{aligned} \partial_t\xi + J(\psi, \xi) &= {\color{#1f5ccc}\partial_x b}\\ \partial_t b + J(\psi, b) &= 0\\ \nabla^2\psi &= \xi \end{aligned}\]
1950, a horizontal plane \[\begin{aligned} \partial_t\zeta + J(\psi, \zeta + f) &= 0\\ \nabla^2\psi &= \zeta \end{aligned}\]
\(\zeta\): vorticity of the horizontal flow; \(f\): Coriolis parameter
Each time step: \(\xi\) and \(b\) forward, then a Poisson problem for \(\psi\), then \(u\) and \(w\)
The vertical slice is the 1950 forecast equation turned on its side, with buoyancy as a source
(Charney et al. 1950; Arakawa 1966)

Internal waves leaving the Strait of Gibraltar, from the ISS (cropped). NASA, public domain
In the sea: on the interface between the Atlantic water above and the denser Mediterranean water below; seen from space through the bands of rough and smooth water they make at the surface (sun glint)

Wave clouds behind Amsterdam Island. NASA Earth Observatory, CC BY 2.0
In the air: behind an island; the air lifted on the wave crests condenses into clouds
But: how fast do they oscillate, and where does their energy go?
Stratified fluids carry waves in their interior: internal gravity waves
(Gill 1982) · Photos: commons: InternalWaves Gibraltar, commons: Wave Clouds behind Amsterdam Island
\[\omega^2 = \frac{N^2 k^2}{k^2 + m^2} = N^2\cos^2\alpha, \qquad \omega = N\cos\alpha\]
\(\omega\): frequency; \(k\), \(m\): horizontal and vertical wavenumbers; \(\alpha\): angle of the crests (and of the energy) to the vertical, the same as that of \((k, m)\) to the horizontal: \(\cos\alpha = |k|/\sqrt{k^2 + m^2}\)
Rossby waves: \(\partial_t\nabla^2\psi = -\beta\,\partial_x\psi\) gives \(\omega = -\beta k/(k^2 + l^2)\). The same steps, with \(N^2\) restoring instead of \(\beta\)
The frequency depends on the direction of the wave, not on its length, and never exceeds \(N\)
(Gill 1982; Vallis 2017)
Left: the notebook’s slice model, forced at \(\omega = N/2\): beams at \(60^\circ\) from the vertical
Internal waves have frequencies below \(N\), and their energy goes sideways along the crests
(Gill 1982; Vallis 2017; Mowbray and Rarity 1967)
Hydrostatic balance holds for wide motions; kilometre-scale models must be non-hydrostatic
(Durran 2010; Vallis 2017)
Left: the notebook’s bubble after 5 minutes, with its streamlines
But: what shape does it take, and how fast does it rise?
A warm bubble does not rise as a ball: its flanks spin up a vortex pair
(Robert 1993; Bryan and Fritsch 2002)
But: a cold bubble falls. What does it do at the ground?
Buoyancy accelerates, the vortex pair shapes: rise speeds of order \(\sqrt{bR}\)
(Bryan and Fritsch 2002; Robert 1993)

A shelf cloud on a gust front. NOAA, public domain
Heavy fluid runs under light fluid, with a head and billows: the same picture in air and in water
(Straka et al. 1993; Benjamin 1968) · Photo: commons: Shelf cloud 2
Notebook 04a (open in Colab · download): the vertical slice on a computer, three equations and a Poisson problem.
The model: one vertical plane, periodic sides, lids at the ground and the top
Predict, run, explain: write down what you expect before each run
One model, three equations: bubbles, density currents and internal waves on a computer
(Bryan and Fritsch 2002; Straka et al. 1993; Mowbray and Rarity 1967)
Converged solutions need resolved (or fixed) dissipation
(Straka et al. 1993)
A column model: winter cooling deepens the ocean’s mixed layer (optional notebook)
What a fine model resolves, a coarse one must parameterize, column by column
(Marshall and Schott 1999; Durran 2010)

Lenticular clouds over the Rocky Mountains. NOAA, public domain
A wind \(U\) over the ground \(z = h(x)\). The ground is a streamline: \(w = U\,dh/dx\) there
But: does the push stay near the ground, or reach the stratosphere?
A mountain forces vertical motion: in a stratified fluid, that makes waves
(Queney 1948; Smith 1979) · Photo: commons: Lenticular clouds in Boulder CO
Steady flow, \(\partial_t \to 0\), \(\;\mathbf u\cdot\nabla \to U\partial_x\); the slice equations give
\[\nabla^2\psi' + \frac{N^2}{U^2}\,\psi' = 0, \qquad \psi'(x, 0) = U\,h(x)\]
\(\psi'\): streamfunction of the disturbance, \(\psi = -Uz + \psi'\); \(U\): uniform wind; \(h(x)\): height of the ground
Fourier in \(x\): \(\hat\psi(k, z) = U\hat h(k)\,e^{imz}\), \(\;m^2 = \dfrac{N^2}{U^2} - k^2\)
\(\hat{\ }\): Fourier transform in \(x\); \(k\), \(m\): horizontal and vertical wavenumbers
The mountain’s width against \(U/N\) decides: waves aloft, or a disturbance that fades
(Queney 1948; Durran 1990)
\(Na/U \ll 1\): decays, no waves aloft · \(Na/U \approx 1\): non-hydrostatic waves trailing downstream · \(Na/U \gg 1\): hydrostatic waves above the mountain, vertical wavelength \(2\pi U/N \approx 6\) km
One number, \(Na/U\), sorts the flow over a mountain of half-width \(a\)
(Queney 1948; Smith 1979)
The Scorer parameter (Scorer 1949), \(\;l^2(z) = \dfrac{N^2}{U^2} - \dfrac{U''}{U}\) (\(U''\): curvature \(d^2U/dz^2\) of the wind profile; constant \(U\): \(l = N/U\))

Wave clouds behind Amsterdam Island. NASA Earth Observatory, CC BY 2.0
When \(l\) falls with height, waves cannot go up: they are trapped and trail far downstream
Trapped lee waves: wave trains downstream, with clouds on their crests
(Scorer 1949; Durran 1990) · Photo: commons: Wave Clouds behind Amsterdam Island
A second number, \(Nh_0/U\), says when linear theory stops: blocking and breaking
(Durran 1990; Smith 1979)
\(N = 0.01\ \mathrm{s^{-1}}\), \(U = 10\) m/s: \(U/N = 1\) km, vertical wavelength \(2\pi U/N = 6.3\) km
Two numbers place any mountain: a winter inversion turns the Apennines into a wall
(Smith 1979; Durran 1990)
Notebook 04b (open in Colab · download) (demo, or at home):
Linear theory gives exact answers to check models against
(Queney 1948; Schär et al. 2002)
Notebook 04a (open in Colab · download): the bubbles, the density current and the waves of today; notebook 04b (open in Colab · download): the mountain waves; optional: 04c (open in Colab · download), the vertical modes, and 04d (open in Colab · download), mixing in a column.
The vertical slice: the 1950 vorticity equation on its side, driven by buoyancy
Reading: (Vallis 2017; Gill 1982, Ch. 6 and 8; Durran 1990, 2010)
How a layered fluid splits into a stack of shallow water systems, each with its own wave speed and deformation radius. For self-study; models with semi-implicit time steps use these modes.
(Gill 1982, sec. 6.11; Vallis 2017, sec. 3.4.1)
Small motions about rest; hydrostatic, Boussinesq, \(f\)-plane, rigid lid, flat bottom:
\[\begin{aligned} &\partial_t u - f v = -\partial_x \phi, \qquad \partial_t v + f u = -\partial_y \phi\\ &{\color{#1f5ccc}\partial_z \phi = b}, \qquad {\color{#1f5ccc}\partial_t b + N^2(z)\, w = 0}\\ &\partial_x u + \partial_y v + \partial_z w = 0, \qquad w = 0 \text{ at } z = -H, 0 \end{aligned}\]
\(\phi = \delta p/\rho_0\): pressure departure per unit reference density; \(b\): buoyancy, departure from the mean \(\bar b(z)\), with \(N^2 = d\bar b/dz\). In blue: what is new since shallow water
Hydrostatic \(\partial_z p = -\rho g\) becomes \(\partial_z\phi = b\) for the perturbations; Boussinesq: \(\rho_0\) everywhere except in \(b = -g(\rho - \rho_0)/\rho_0\)
(Gill 1982; Vallis 2017)
Look for \(\;(u, v, \phi) = (\hat u, \hat v, \hat\phi)(x, y, t)\;{\color{#1f5ccc}C(z)}\), \(\;w = \hat w(x, y, t)\;{\color{#1f5ccc}W(z)}\), with \(C = dW/dz\)
Every field is a horizontal pattern times a fixed vertical shape
(Gill 1982, sec. 6.11; Vallis 2017, sec. 3.4.1)
Vertical: a Sturm–Liouville problem
\[W'' + \frac{N^2(z)}{c^2}\,W = 0,\qquad W(-H) = W(0) = 0\]
Eigenvalues \(c_1 > c_2 > \dots\) (mode index \(m\), not a wavenumber); constant \(N\): \(c_m = NH/(m\pi)\). Equivalently \(C = dW/dz\) obeys \((C'/N^2)' + C/c^2 = 0\)
Horizontal: linear shallow water
\[\partial_t\hat\phi + {\color{#1f5ccc}c^2}\,(\partial_x\hat u + \partial_y\hat v) = 0\]
with \(gH \to c_m^2\): an equivalent depth \(H_m = c_m^2/g\), a deformation radius \(L_m = c_m/f\) (below: \(H_m\), \(c_m\), \(L_m\) at Milan)
A stratified fluid is a stack of shallow water systems, one per vertical mode
(Gill 1982, sec. 6.11; Vallis 2017, sec. 3.4.1)
First baroclinic mode: 2 m/s, \(L_1 \approx 20\) km at Milan: the size of ocean eddies. The barotropic mode: 200 m/s, 1900 km. The atmosphere: \(c_1 = NH/\pi \approx 30\) m/s, \(L_1 = c_1/f \approx 300\) km (the deformation radius \(L_d = NH/f \approx 1000\) km is \(\pi\) times larger).
The ocean’s eddies are ten times smaller than the atmosphere’s cyclones: a deformation radius
(Gill 1982, sec. 6.11; Vallis 2017, sec. 3.4.1)
Constant \(N\): \(c_1 = NH/\pi\), \(H_1 = c_1^2/g\), \(L_1 = c_1/f\), at Milan (\(f = 1.04\times10^{-4}\ \mathrm{s^{-1}}\)):
\(\int N\,dz/(m\pi)\): the WKB estimate of \(c_m\)
An ocean model needs a grid of a few kilometres to see its eddies, finer towards the poles
(Gill 1982, sec. 6.11; Vallis 2017, sec. 3.4.1)
The input: \(N(z)\) of the notebook’s ocean
Open notebook 04c (open in Colab · download) (optional, 25 min):
Predict first: where will mode 1 have its strongest currents?
A Sturm–Liouville problem becomes scipy.linalg.eigh(A, B)
(Gill 1982)
Open notebook 04d (open in Colab · download) (optional, 20 min):
Predict first: how deep is the mixed layer after 90 days of losing 200 W/m²?
Column physics: what models add, column by column, to the resolved dynamics
(Durran 2010; Griffies et al. 2000)