Skip to content

Findings — Track 1 v2.1 Phase 1: GLODAP real-observation hybrid fit (2026-05-11)

Phase 1 of the post-v2.0 follow-up. nb22 swaps Darwin's internal DIC + ALK targets for GLODAPv2.2016b mapped climatology DIC + ALK (real ship-CTD ocean observations, 1972–2013). The other 5 targets (FeT, Chl, POC, PIC, CO₂ flux) stay on Darwin output.

This is the cheapest possible test of "calibrating against reality vs. calibrating against Darwin's self-consistency" — it changes one variable (target source for DIC + ALK) and keeps everything else identical.

Note on scope: Phase 1 does NOT modify the box model itself. The 5-tracer / 2-PFT box stays unchanged. Phase 2 (5-PFT box extension) is what addresses the box-model bottleneck identified in v2.0. Phase 1 tells us what happens at the target boundary; Phase 2 will tell us what happens at the model boundary.

TL;DR

Swapping Darwin DIC + ALK targets for real-ocean (GLODAP) DIC + ALK substantially changes the recovered Carroll-6 vector. Most striking effects:

Parameter nb20 (Darwin) nb22 (GLODAP) Δ
R_PICPOC 360% off Carroll 74% off ✓✓ huge improvement
scav_rat 40% off Carroll 92% off ✗✗ doubles the gap
alpfe 1.1% off Carroll 1.5% off ~ slightly further
diatomgraz 89% off 69% off ✓ improved
Smallgrow 199% off 191% off ~ marginal
Biggrow 353% off 356% off ~ unchanged

3 of 6 closer to Carroll, 2 of 6 further, 1 unchanged. The headline isn't "Phase 1 made things better" — it's "the recovered parameter vector depends substantially on whether you calibrate against the model or against reality."

Why this experiment

v2.0's headline result ("alpfe within 1.1% of Carroll") was achieved against Darwin output. Darwin itself was calibrated against partial real-world observations via Carroll 2020's Green's-functions. So:

Target What we're really doing
Carroll 2020 Real obs (DIC, ALK, …) Calibrate Darwin against reality
nb20 (v2.0) Darwin output Calibrate DarwinDiff against Darwin
nb22 (v2.1 Phase 1) Hybrid (DIC + ALK from GLODAP; rest from Darwin) Calibrate DarwinDiff against partial reality

v2.0 was implicitly "DarwinDiff replicates Green's-functions" — not "DarwinDiff calibrates against reality." Phase 1 flips one piece (DIC + ALK targets) and measures how the recovered Carroll-6 vector responds.

Setup

Identical to nb20 except:

  • DIC target: GLODAP TCO2 interpolated to bin_average's 1° grid, µmol/kg → mmol/m³ at ρ_sw = 1025 kg/m³.
  • ALK target: GLODAP TAlk same processing.
  • All other targets, covariates, network, training loop, AOI, hyperparameters: unchanged from nb20.

The grid alignment uses xarray.interp because GLODAP's half-integer cell centers don't match bin_average's integer centers. Bilinear interpolation, ~5% of edge cells dropped to NaN by the interp (handled by the ocean mask).

Results — DINN baseline (headline)

Per-tracer fit quality

Tracer nb20 (Darwin) nb22 (hybrid) Δ
FeT (Darwin) −0.159 +0.246 ✓ improved (anti-correlated → positive)
Chl (Darwin) 0.528 0.576 ~ similar
POC (Darwin) 0.595 0.641 ✓ slightly improved
PIC (Darwin) 0.622 0.491 ✗ degraded
DIC (target source switched) −0.229 −0.437 ✗ worse anti-correlation
ALK (target source switched) −0.361 −0.146 ✓ less anti-correlated
CO2_flux (Darwin) 0.451 0.477 ~ similar

The fit quality changes don't cleanly track "GLODAP is harder than Darwin" — some tracers improved, others got worse. The key finding: the optimizer landed in a different region of parameter space, and that region has a different spatial-pattern relationship with each tracer.

Carroll-6 recovery vs nb20

Parameter Carroll published nb20 DINN nb22 DINN nb20 |Δ|/Carroll nb22 |Δ|/Carroll Closer?
alpfe 0.928 0.938 0.943 0.011 0.015 ✗ slightly further
scav_rat 6.03×10⁻⁷ 3.61×10⁻⁷ 4.83×10⁻⁸ 0.401 0.920 ✗ much further
Smallgrow 0.661 1.976 1.923 1.989 1.910 ✓ marginal
Biggrow 0.431 1.956 1.965 3.533 3.555 ~ same
diatomgraz 0.830 0.089 0.260 0.893 0.686 ✓ closer
R_PICPOC 0.0425 0.195 0.0111 3.598 0.738 ✓✓ dramatic

Results — DINNDeep (secondary)

DINNDeep saturates as expected, but at slightly lower r on the GLODAP targets:

Tracer nb20 DINNDeep r nb22 DINNDeep r
FeT 0.999 0.999
Chl 0.999 0.999
POC 0.996 0.993
PIC 0.995 0.986
DIC 0.985 0.942
ALK 0.986 0.963
CO2_flux 0.885 0.880

The drop on DIC (0.985 → 0.942) and ALK (0.986 → 0.963) is real signal: even DINNDeep's ~9.4K parameters can't memorize the real-ocean DIC + ALK fields as cleanly as Darwin's self-consistent versions. The 5-tracer box has limits the network can paper over for Darwin's output but not for the real ocean.

Three coupled phenomena explaining the result

  1. R_PICPOC collapses toward Carroll's value (360% off → 74%). GLODAP's real ALK distribution constrains the CaCO₃ budget (ALK changes via CaCO₃ formation at 2 mol per mol PIC). Darwin's internal ALK had been pulling R_PICPOC away from Carroll; real-world ALK pulls it back. This is the most striking single result of Phase 1.

  2. Iron pair degrades. scav_rat from 40% off → 92% off Carroll. Interpretation: v2.0's iron-pair recovery was partly an artifact of Darwin's internal carbonate-iron coupling, which differs from the real ocean's. When the DIC + ALK targets switch to GLODAP, the carbonate-iron coupling in the loss landscape changes shape, and the optimizer no longer settles into Carroll-like iron-pair values.

  3. Field fit quality drops on the switched targets. DIC anti-correlation worsened (−0.229 → −0.437); even DINNDeep saturation level dropped on DIC + ALK. The real ocean's DIC + ALK has spatial structure (upwelling, riverine inputs, mode-water subduction) that our 5-tracer box cannot capture. The box-model proxy is more limiting against reality than against Darwin.

Implication for the v2.0 framing

The v2.0 paper text should be qualified:

DarwinDiff calibrates Darwin's iron pair to within 1.1% (alpfe) and 40% (scav_rat) of Carroll's published values. ← overclaim

DarwinDiff calibrates Darwin's iron pair to within 1.1% (alpfe) and 40% (scav_rat) of Carroll's published values when calibrated against Darwin output. Against real-ocean DIC + ALK observations (GLODAPv2.2016b), the recovered iron-pair values shift substantially (scav_rat to 92% off Carroll), while R_PICPOC collapses dramatically toward Carroll (360% → 74% off). The recovered parameter vector depends on whether the calibration target is the model's self-consistent BGC or the real ocean's measured fields. This is consistent with Darwin's BGC being a calibrated simplification of reality rather than a bit-for-bit reproduction.

What Phase 1 does NOT establish

  • Whether nb22's recovered parameters are "better" than Carroll's — would need a forward Darwin run with nb22's parameter values + comparison to real ocean observations.
  • Whether the box model can fit reality at all — Phase 1 swaps targets without extending the box. Phase 2 (5-PFT extension) tests this.
  • Multi-basin generalization — Eq Pacific only.

Cluster paper next steps the result motivates

  1. Forward Darwin run with nb22's scav_rat = 4.8×10⁻⁸ (vs Carroll's 6.03×10⁻⁷ — an order of magnitude lower) → does Darwin produce better-fitting CO₂ flux fields with this value? 1-day forward Darwin run on cluster.
  2. Phase 2: 5-PFT box extension → addresses the box-model proxy limitation. Expected to bring the 4 non-iron parameters into calibration-grade range regardless of target source.
  3. Multi-basin training with the 5-PFT box and real-obs targets → the strongest "DarwinDiff beats Green's-functions" claim possible without cluster compute.

Cross-references