SciRecast
Source ↗
E3SM case · ELM at US-Blo · July 2004

A month of ELM, differentiated

E3SM's land model, translated from Fortran to JAX by the engine, chained through a month at the Blodgett Forest flux tower, and differentiated backwards through all 1,488 half-hourly steps. The derivative was fitted to the tower's GPP; the untouched Fortran model, rerun with the fitted parameters, agreed with the prediction to 0.3 %.

Four parameters at their bounds: the JAX chain predicted GPP x2.49 of the baseline; ELM itself, rerun, gave x2.48. The single-routine derivative had said x2.32 for one of them alone.
Fortran ELM NumPy JAX chain jax.grad fit 7 routines · recorded bit-exact, every step 1,488 steps · no drift reverse mode · 741 s tower GPP · 1-D solves THE FORTRAN MODEL RERUNS WITH THE FITTED VALUES · 0.3 % APART
Contents
Section 1

The site and the gap

Blodgett Forest is a ponderosa pine plantation in the Sierra Nevada foothills with a Mediterranean summer: no rain in July, the soil drying down through the month. ELM run there at a single point, with the tower's own GSWP3 forcing and satellite phenology, puts July 2004 GPP at a sixth of what the tower measured, and its water-stress index says why it thinks so.

Site
US-Blo, Blodgett Forest38.90°N 120.63°W
Vegetation
Ponderosa pineELM PFT 1, needleleaf evergreen temperate
Window
July 20041,488 steps of 30 min
Tower GPP
7.20 ± 0.59gC m⁻² d⁻¹, FLUXNET2015 via ILAMB
ELM GPP
1.14gC m⁻² d⁻¹, BTRAN 0.30

The parameters that govern water stress in ELM, the soil potentials at which stomata start to close and close fully and the two terms of the root profile, are the obvious suspects. Whether they can close the gap is a question about a month of coupled soil water, not about one routine at one instant, and that is the question a derivative through the whole step can answer.

Section 2

From Fortran to a derivative

The engine reads ELM's Fortran and emits two things: a NumPy translation, gated bit-exact against the compiled original on state recorded from the running model, and a JAX port, gated to 32 ULP. Nothing on this page was ported by hand. The seven routines a step calls between canopy interception and drainage were each translated, recorded and gated, then chained: every quantity one routine writes and the next reads unchanged is carried from kernel to kernel instead of read back from the recording, so the soil water the month ends with is the chain's own.

The instrument

Seven kernels inside one lax.scan over the month, one checkpoint per step, and jax.grad of the month's GPP with respect to the parameters. The forward pass reproduces the model's soil water to 10⁻¹² relative at the end of July and its GPP to 10⁻¹⁴; the reverse pass takes 741 s for all parameters at once.

What the derivative gives is the total sensitivity along the soil-water trajectory. When a parameter eases transpiration, the soil dries faster and gives part of the gain back later in the month, and a derivative taken through the month sees that. A derivative of one routine at fixed soil water does not: for the closure potential smpsc it predicted a x2.32 response to tripling the parameter, where the month, and ELM itself, say x1.41.

Section 3

The chain is the model

Daily mean GPP through July. On the left, the chain on the model's own parameters against the model's history tape. On the right, all four water parameters pushed to the edge of their plausible range at once: the chain's prediction, and what ELM produced when rerun from the same restart with those values in its parameter file. The band is the tower's monthly mean and its uncertainty.

ELM, FortranJAX chaintower 7.20 ± 0.59
gC m⁻² d⁻¹, patch-level FPSN, daily means of 48 half-hourly values. Month means, baseline: ELM 1.145, chain 1.143. All four at bound: ELM 2.841, chain 2.849. Hover for a day's values and BTRAN.
Section 4

What the derivative said

One reverse pass gives the month's elasticity to every parameter at once. The tower supplies one number, a monthly mean, so one parameter is determined and any pair is not; each parameter was therefore solved alone, as a bounded root of the forward in log-value, inside a factor of three of its default.

Parameter, PFT 1What it setsElasticityAlone at its boundGPPGap closed
smpscsoil potential at full stomatal closure+0.319−255,000 → −765,000 mm1.617.8 %
roota_parroot profile, shallow term−0.2637 → 2.331.729.4 %
rootb_parroot profile, deep term−0.5892 → 0.671.7710.4 %
smpsosoil potential where stress begins+0.060−66,000 → −198,000 mm1.241.6 %
all four at bound2.8528.2 %

Elasticity is d ln GPP / d ln |p| over the month. Every fit ended AT BOUND.

Two of the four are not inputs of any chained routine. roota_par and rootb_par set the root fraction once, at initialization, through the two-exponential profile of Zeng (2001) as ELM spells it. The same expression was evaluated in JAX from the recorded soil layers; it reproduces the recorded root fraction to 2·10⁻¹⁶, and the fit moves the parameters through it.

Section 5

Then the Fortran model was asked

A derivative of a translation is worth exactly what the original model would say. The July window was rerun in ELM, from the same restart, with the four values at their bounds written into the parameter file.

JAX chain, predicted
2.849gC m⁻² d⁻¹
x2.49 of the baseline; a forward pass through 1,488 steps, 16 s
ELM, rerun
2.841gC m⁻² d⁻¹
x2.48 of the baseline; BTRAN 0.30 → 0.74, the soil-water trajectory moved with it
Apart
0.3%
on a four-parameter change that more than doubles the flux and reshapes the month's soil moisture
Section 6

What this shows, and what it does not

The derivative is the model's. Reverse mode through a month of machine-translated ELM predicts the model's own response to a large, coupled parameter change to a fraction of a percent. There is no emulator to train and nothing to retrain when the Fortran changes: the translation is regenerated and gated.

The calibration answered honestly. Blodgett's GPP shortfall is not in the water-stress parameters. Inside plausible ranges, all four together close 28 % of the gap, and the model confirms it. What remains is structural: the soil column's depth and water holding, the forcing's precipitation, the prescribed leaf area. That is a finding about ELM at this site, reached in one reverse pass and one three-minute rerun.

What it does not claim

One monthly tower value determines one parameter; the quartet at its bounds is an envelope, not a fit. The chain carries the water and energy path; radiation and phenology still come from the recording. A month at one site is a demonstration, not a calibration of ELM.

Section 7

Method

ELM at E3SM e508436e, single point on the US-Blo surface data, satellite phenology, GSWP3 forcing through the coupler bypass, twelve months of spin-up from 2003-07-01. The recorder dumps every argument of seven routines on every step of July 2004: CanopyHydrology, CanopyFluxes, SoilTemperature, SoilFluxes, the driver's patch-to-column averaging, HydrologyNoDrainage, HydrologyDrainage. The chain carries 731 edges the flow audit found unchanged on every step and reads 84 from the recording.

Observation: FLUXNET2015 monthly GPP as distributed by ILAMB, site US-Blo, 2004-07, 7.202 ± 0.590 gC m⁻² d⁻¹. Bounds: a factor of three either side of the parameter file's value, the rule used where no audited range exists. The model rerun: the window continued from the same restart with a copy of the parameter file, July FPSN read from the history tape.