The 3D version of this simulator moves the saturation horizon with a hand-tuned exponential curve, Ω(z) ≈ Ω0·exp(−z/H). This 2D companion instead solves the real seawater carbonate equilibrium at every depth — the same calculation oceanographers run (Mucci 1983 solubility products, Lueker et al. 2000 dissociation constants, Millero pressure corrections):
DIC = [CO2*] + [HCO3-] + [CO3^2-]
TA ≈ [HCO3-] + 2[CO3^2-] (charge balance)
K1 = [H+][HCO3-]/[CO2*] K2 = [H+][CO3^2-]/[HCO3-]
Surface: solve DIC & pH from TA and atmospheric pCO2
(closed-form quadratic in 1/[H+], since [CO2*]=K0·pCO2 is known)
At depth z: DIC(z) rises as sinking organic matter
remineralizes (releases CO2); TA held ≈ constant.
Re-solve pH(z) from DIC(z) & TA by bisection on
TA_calc(pH) − TA = 0.
Ω(z) = [Ca2+]·[CO3^2-](z) / Ksp(z)
Ksp(z) = Ksp(T,S,1atm) · exp[−ΔV·P/(RT) + 0.5·Δκ·P²/(RT)]
Two independent, physically real effects push Ω below 1 with depth, both computed from actual thermodynamics rather than fitted: (1) pressure raises Ksp — CaCO3 dissolution has a negative reaction volume ΔV, so higher pressure makes dissolution more favorable, and (2) DIC rises with depth as the "marine snow" of sinking organic carbon is oxidized back to CO2 by bacteria, consuming carbonate ion in the process. K1, K2 and Ksp are themselves recomputed at each depth's local temperature, since the model also carries a simple thermocline.
- Mineral toggle — aragonite has a smaller (more soluble) Ksp than calcite at every depth, so its Ω=1 crossing is always shallower, exactly matching the real relationship between the aragonite saturation horizon (ASH) and the deeper calcite compensation depth (CCD).
- CO2 slider — raises atmospheric pCO2, which the surface solver converts into lower surface pH and lower [CO3^2-], directly shoaling the horizon — the real mechanism of measured ocean-acidification shoaling.
- Temperature slider — warmer surface water raises the equilibrium Ω0 for a fixed alkalinity (CaCO3's retrograde solubility, carried through the real Ksp(T) and K1(T),K2(T) formulas rather than an assumed linear factor), pushing the horizon deeper.
The left strip plots the computed Ω(z) curve and marks where it crosses 1; the right field shows the same "marine snow" shells sinking and dissolving once their local, chemistry-computed Ω drops below that line.