6.2 Thermohaline Circulation
The thermohaline circulation (THC) is the global "conveyor belt" driven by density differences from temperature and salinity variations. It takes ~1000 years for water to complete the circuit.
Deep Water Formation
North Atlantic Deep Water (NADW)
Forms in Labrador/Nordic Seas. Cold, salty (Gulf Stream delivers salt). Sinks to 2000-4000m.
Antarctic Bottom Water (AABW)
Densest ocean water. Forms on Antarctic shelf (brine rejection). Fills abyssal ocean.
The Global Conveyor
North Atlantic → Deep water flows south → Around Antarctica → Into Indian & Pacific → Slow upwelling → Surface return to Atlantic
~20 Sv
NADW formation
~1000 yr
Full circuit time
~1 PW
Heat transport
Climate Implications
Slowdown Risk
Greenland melt freshens N. Atlantic, could slow NADW formation. Cooling Europe paradox.
Past Shutdowns
Younger Dryas (~12,800 BP): THC shutdown caused rapid cooling. Ice dam lake release.
Python: THC Strength
#!/usr/bin/env python3
"""thermohaline.py - Simple THC box model"""
import numpy as np
from scipy.integrate import odeint
import matplotlib.pyplot as plt
def thc_model(y, t, params):
"""
Stommel two-box model of THC
T1, S1: tropical box; T2, S2: polar box
"""
T1, T2, S1, S2 = y
k, alpha, beta, T1_eq, T2_eq, S1_eq, S2_eq, gamma = params
# Density difference
dT = T1 - T2
dS = S1 - S2
q = k * (alpha * dT - beta * dS) # THC strength
# Temperature and salinity evolution
dT1 = gamma * (T1_eq - T1) - abs(q) * dT
dT2 = gamma * (T2_eq - T2) + abs(q) * dT
dS1 = gamma * (S1_eq - S1) - abs(q) * dS
dS2 = gamma * (S2_eq - S2) + abs(q) * dS
return [dT1, dT2, dS1, dS2]
# Parameters
params = (1.0, 1.0, 2.0, 25, 0, 35, 36, 0.2)
y0 = [25, 5, 35, 35.5]
t = np.linspace(0, 100, 1000)
sol = odeint(thc_model, y0, t, args=(params,))
# Calculate THC strength
dT = sol[:, 0] - sol[:, 1]
dS = sol[:, 2] - sol[:, 3]
q = params[0] * (params[1] * dT - params[2] * dS)
plt.figure(figsize=(10, 5))
plt.plot(t, q, 'b-', lw=2)
plt.xlabel('Time')
plt.ylabel('THC Strength (Sv)')
plt.title('Thermohaline Circulation Strength')
plt.grid(True, alpha=0.3)
print(f"Steady-state THC: {q[-1]:.2f} Sv")