Repository navigation
v0.2.0 — time-varying flux & Float64
The time-varying-flux / Float64 release.
Highlights
- Float64 cubed-sphere transport — F64 runs now work end-to-end on the cubed sphere. The reader keeps the on-disk Float32 mmap and converts per-window instead of materializing a whole-binary F64 copy (which OOM-killed long runs); ATMSNAP snapshots stay Float32 on disk regardless of compute precision.
- Time-varying surface flux — dispatchable temporal schemes (
stepwise/linear/conservative_mean);lmdz/CAMS defaults to the GC-faithful stepwise hold, driving the diurnal cycle instead of a monthly mean. - UTLS "fingering" cure — MERRA-2 wind-derived C180 source plus the GEOS
geos_cm_closure = "omega_consistent"cm closure (tracer-validated to the MERRA-2 level).
Physics & preprocessing
precomputed_kzdiffusion (uses the binary:kzTM5 bldiff payload).cmfmc_matrixconvection + collaborative-LU knobs (use_collab_lu,lmax_conv,n_merge); convection clipping mass blow-up fixed andn_merge = 2enabled.- Full-window flux storage contract; adaptive per-window substep schedule baked into each binary to meet CFL.
- F32 mass conservation: Kahan-compensated surface flux + diffusion anomaly subtraction.
- Multi-binary clock-origin fix (removes the day-1 time-varying-flux replay / +1 Pg/month co2_natural surplus).
Performance
- CPU-only sweep-sync gating (GPU launch-bound), ping-pong cubed-sphere sweeps, double-buffered async daily snapshot write, rolling NVMe input staging + O_DIRECT copy, and per-day mmap page-cache release (
madvise). Full-year 4-tracer C180 in ~2.5 h on a single L40S.
Infrastructure & docs
- Pinned
ConservativeRegridding/GeometryOpscompat; CI restored to green (Julia 1 + 1.10 + docs build). - Config schema and quickstart updated for the new options.
Notes
- Float64 needs an A100-class GPU or the CPU backend; Float32 runs on the NVIDIA L40S.