Contents
RecastEngine
The engine is the reusable part of SciRecast. It reads the source, writes the modern version, compiles the untouched original as the reference, and refuses to call the result correct unless a gate says so. It knows nothing about any particular model: domain knowledge attaches through plugins, and the engine passing its tests with every domain package uninstalled is a standing check.
Getting started takes you from an empty machine to a verified translation of your own module in about twenty minutes.
CESM Case
The first model the engine is used on: the Community Earth System Model. Five products so far, each in its own repository.
- PyCAM5. CAM5 physics moved into Python routine by routine, each routine selectable at runtime and held bit-for-bit against the native Fortran in production-length runs on Derecho. Routine-by-routine progress: status dashboard.
- freeCAM. The CAM atmosphere of iCESM1.3.1 under a Python control layer. Python owns the workflow, clock and coupling; the original Fortran stays the numerical source of truth; physical processes can be reordered, enabled or disabled while the model runs.
- Val-Track. The gate every product passes before a push: correctness against the original model, and cyber checks (secret scan, SBOM and CVE, AI code audit, sanitizer builds).
- Sec-Track (restricted). The record of vulnerabilities found in CESM along the way, with the patches that close them.
- clm-ml-jax-reproduction. The multilayer canopy of the Community Land Model (CLM-ml v2, 76 Fortran modules) taken to NumPy and JAX under the engine and a small domain extension, reproducing arXiv:2606.07681 with a different instrument than the authors' own translation.
E3SM Case
The Energy Exascale Earth System Model, starting with its land model, ELM. Here the engine's translation is used for what a Fortran model cannot do on its own: a derivative through time.
- ELM at Blodgett. A month of ELM, translated to JAX by the engine, chained through July 2004 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 %.
How to Contribute
| What you have | Where it goes |
|---|---|
| A translation that is wrong, or a rule that should exist | RecastEngine issues, with the console output of the run |
| A bug or an idea in a component | that component's own repository: PyCAM5, freeCAM, Val-Track |
| A security vulnerability | private GitHub security advisory, never a public issue |
| Collaboration or licensing | Yueqi Chen, yueqi.chen@colorado.edu |