This is the 2D top-down companion to the 3D geostrophic-balance simulator. Instead of a rendered height-field mesh, it plots the sea-surface-height anomaly η(x,y) directly as a colour field seen from above, with contour rings, and adds a transect strip beneath the map — a view that only makes sense in two dimensions.
f k × v_g = -g ∇η
v_g = (-(g/f) ∂η/∂y, (g/f) ∂η/∂x)
f = 2Ω sin(latitude), Ω = 7.292×10⁻⁵ rad/s, g = 9.81 m/s²
Each parcel starts at rest on the slope of η(x,y) — a real Gaussian sea-surface-height dome (or trough, if the anomaly is negative). Every step integrates two real forces plus drag:
dv/dt = -g∇η - f(k×v) - r·v
x(t+dt) = x(t) + v(t+dt)·dt
- -g∇η — the pressure-gradient force, pushing the parcel down-slope toward lower η.
- -f(k×v) — the Coriolis force, always perpendicular to the parcel's own velocity.
- With little or no drag the parcel overshoots into an inertial oscillation of period T=2π/f around the local geostrophic velocity — released from rest, it does not simply retrace a closed loop, because the geostrophic part of its motion also advects it around the contour. The spin-down drag removes the ageostrophic wobble over a few periods, leaving flow parallel to the height contours.
- The Rossby number Ro = V/(fL) measures how well geostrophic balance should hold here; the small values typical of large-scale ocean flow (≲0.1) are why the balance is such a good approximation offshore.
- Flip the sign of the height anomaly or the latitude to see the circulation reverse — an anticyclonic dome in the Northern Hemisphere becomes cyclonic south of the equator.
All constants here are the real physical ones (Earth's rotation rate, g, and the actual Coriolis formula) at real oceanic length and speed scales; only the animation clock is accelerated so an inertial period of ~10–70 hours plays out in well under two minutes.