ResearchMethods
Solving Seawater: A Carbonate Equilibrium Solver and What It Says About Acidification
The carbonate system in seawater is four coupled equilibria and one conservation law, and substituting them into each other collapses the whole thing into a single quartic in the hydrogen ion concentration with exactly one positive root. We wrote a solver for it. No seawater was sampled at any point: the computation is the experiment. Using published temperature and salinity dependent constants on the total hydrogen ion scale, the solver satisfies the alkalinity definition to 0.849 ulp of total alkalinity at every one of 64 check points, and a safeguarded Newton iteration, a log-space bisection and the roots of the cleared quartic agree to 1.9 × 10−14 relative. At 18 °C, salinity 35 and alkalinity 2300 µmol/kg, the solver returns pH 8.1817 at 280 ppm and 8.0361 at 420 ppm, against accepted figures of 8.17 and 8.05. Between those two atmospheres the hydrogen ion concentration rises by 39.80%, not the 30% that is usually quoted, and we report that plainly rather than rounding toward it. The gap is 51.5 Monte Carlo standard deviations wide, so the published uncertainty in the constants cannot account for it; asked instead the 370 ppm question the quoted figure was originally answering, our solver returns a pH decline of 0.0993 units against the published observational estimate of 0.11 ± 0.03, agreeing to 0.36 standard deviations. Over the full sweep from 180 to 1000 ppm, bicarbonate rises 30.7% while carbonate falls 69.2% and the aragonite saturation state drops from 4.407 to 1.356. Neglecting the second dissociation, the textbook shortcut, costs up to 0.127 pH units and misstates the aragonite saturation state by as much as 79.5%. A 200,000-trial Monte Carlo over the published uncertainties in six equilibrium constants gives 39.80% ± 0.0004% (standard error), with a 95% interval of 39.43% to 40.17%. Seed 20250320. Runtime 1.33 seconds.
Spring 2025Read 33 minSections 12
- LaTeX source42 kB
- Analysis code56 kB
- Raw output37 kB
- Interactive model