ecosim-run-workflow

Design, validate, submit, and score EcoSIM calibration ensembles across four parameter surfaces on HPC.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires SALib.

What problem does it solve? Running EcoSIM calibration ensembles fails in silent, expensive ways: namelists exceeding a 4096-byte buffer, parameters routed to the wrong NetCDF surface, Saltelli designs analyzed as sequence designs, and truncated runs scored as complete. This Skill encodes the full run-and-test workflow so those traps are caught before compute is spent. ## Core Features & Use Cases - Multi-surface case materialization: Builds probe or ensemble cases across EcoSIM's four parameter-file surfaces (plant, management, microbial, soil/grid) with derived routing that raises on ambiguous or missing parameters. - Pre-submission validation and HPC submission: Validates every case's perturbed values against the sampling matrix, then submits as a SLURM job array respecting the 4,995-task shared queue cap, with heartbeat-based monitoring. - Target-driven scoring: Detects true completion via final restart files (not sacct COMPLETED), handles the real Gregorian calendar, and scores through each target's own reduce function. - Use Case: You need to run a 60,000-case Sobol sensitivity ensemble for an EcoSIM site. This Skill walks you from sourcing the correct config, through dry-run materialization and validation, to chunked array submission and scoring that matches the round's own targets. ## Quick Start Ask the agent to set up and validate an EcoSIM ensemble for your site, then submit it as a SLURM array and score the results against the round's targets.

Frequently Asked Questions about ecosim-run-workflow

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

FAQPage Schema
How do I run an EcoSIM ensemble on a SLURM cluster?▼

Source the round config, materialize cases with materialize_adapter_ensemble.py after a dry run, validate with validate_adapter_ensemble.py, then submit the case template's submit_ensemble_array.sh as a SLURM job array where each task is one serial EcoSIM run.

How do I calibrate EcoSIM microbial parameters?▼

Microbial kinetics live on the tertiary surface (MicrobePars.nc) wired via A2MC_BASE_PARAM_FILE_3. Build the file from the binary's compiled defaults so the baseline is unchanged, then include microbial names in the param list and routing handles the rest.

Why did my EcoSIM run fail immediately at startup?▼

EcoSIM reads its runfile into a fixed 4096-byte buffer and aborts if the namelist exceeds it. Long case names and comments inflate the file, so keep the operative namelist comment-thin and verify the worst-case size before materializing.

What is the difference between sobol and sobol_seq sampling designs?▼

sobol builds the Saltelli A/B/AB block design analyzed with SALib.analyze.sobol, while sobol_seq is a scrambled space-filling sequence requiring given-data estimators like Borgonovo delta or PAWN. Analyzing a sequence design with sobol.analyze returns meaningless indices without any error.

Why does sacct show COMPLETED but my EcoSIM output is unusable?▼

A case can exit 0 after a wall-clock kill with a truncated tape, since EcoSIM opens its h0 tape at initialization. The reliable completion signal is a restart set stamped with the final year plus one, which is only written after the last simulated year finishes.

When should I use this instead of offline-testing-workflow?▼

Use this Skill for EcoSIM, which is a standalone binary with no CIME. offline-testing-workflow is the FATES/CIME equivalent and does not transfer, since EcoSIM has no create_case.sh or chained run legs.