add-fates-parameter

Wire a new FATES parameter through EDParamsMod and the parameter file.

Updated Aug 28, 2026
One-click install
npx skills add https://github.com/jingtao-lbl/A2MC --skill add-fates-parameter-jingtao-lbl
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: add-fates-parameter
Source: https://github.com/jingtao-lbl/A2MC/tree/main/.claude/skills/add-fates-parameter
Command: npx skills add https://github.com/jingtao-lbl/A2MC --skill add-fates-parameter-jingtao-lbl

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires netCDF4.

What problem does it solve? Adding a new tunable or switchable knob to the ELM-FATES model requires coordinated edits across Fortran source (EDParamsMod declare/register/retrieve) and every parameter file the run reads; missing either half causes runtime aborts or silently ignored values. ## Core Features & Use Cases - EDParamsMod wiring recipe: Step-by-step scalar parameter pattern (declaration, name string, nan sentinel default, RegisterParameter, RetrieveParameter) following the ED_val_understorey_death template. - Parameter file updates: JSON insertion for api-43 checkouts and NetCDF createVariable for api-31 legacy files, applied to every parameter file the experiment reads. - Reproducibility gating: Default-off switch-gating so a switch-off build reproduces the frozen baseline bit-for-bit (V0-at-equality), with runtime-tunable activation. - Use Case: Promote a hardcoded density cap in EDPhysiologyMod to a registered fates_max_plant_density parameter, add it to the JSON parameter file with a no-op default, then sweep values at runtime without rebuilding. ## Quick Start Add a new scalar FATES parameter named fates_<name> by wiring it through EDParamsMod and inserting it into the JSON parameter file with a default-off value.

Frequently Asked Questions about add-fates-parameter

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add a new FATES parameter to EDParamsMod?▼

Follow an existing scalar like ED_val_understorey_death: declare the variable, add the fates_ name string, set a nan sentinel default in FatesParamsInit, call RegisterParameter in FatesRegisterParams, and RetrieveParameter in FatesReceiveParams. Then import it with a use statement in the consuming module.

Why does my FATES run abort with 'check_var: <name> is not on dataset'?▼

A registered parameter must exist in every parameter file the run reads; this runtime abort means the file was not updated. Rebuild test and experiment parameter files from a post-change file containing the new variable, not the pristine default.

Does FATES api-43 use NetCDF or JSON parameter files?▼

Api-43 uses JSON (parameter_files/fates_params_default.json), while the older api-31 branch used NetCDF. Check the model version first, since the insertion mechanism differs: JSON key insertion versus a 0-d double createVariable.

Where should a per-PFT FATES parameter go instead of EDParamsMod?▼

Per-PFT parameters belong in EDPftvarcon, the idiomatic per-PFT container, because EDParamsMod has no clean array-retrieve path. Use the same declare/register/retrieve pattern there with a PFT-dimensioned variable in the parameter file.

How do I make a FATES model change reproducible and default-off?▼

Set the parameter's default in the base parameter file to a no-op value, such as a very large cap that leaves min() inert, so a switch-off build reproduces the baseline bit-for-bit. Activate it by setting a finite value in the experiment file at runtime without rebuilding.