Skip to content

Warning catalog (W1–W10)

nwp-compose validate, generate, and run collect a set of numbered warnings. Most are advisory (printed in yellow on stderr, the run proceeds). The WRF physics codes W-7 through W-10 are different: a configuration that trips them is blocked unless you explicitly acknowledge it, because it will produce a forecast that crashes or is physically meaningless.

CodeTriggers whenFix
W1cycling.lbc_interval_default is not one of {1, 3, 6} hoursUse a standard boundary cadence; non-standard intervals are rarely what you want.
W2forecast_hours_default is not a whole multiple of lbc_interval_defaultAdjust one so the last boundary update lands at or before the forecast end.
W3lbc_interval_default == 1 and a data_ingest uses data_source: gfsGFS is not published hourly for boundaries; use a 3- or 6-hour interval, or RAP.
W4Peak post-processing rank occupancy exceeds the node estimate (mpassit_nprocs × max_active > tasks_per_node × nodes)Lower mpassit concurrency (max active) or raise the node estimate (globals.estimated_node_count).
CodePathTriggers whenFixBlocks?
W5MPASmpas_run.dt > dx_km × 6.0 (CFL guideline)Reduce the time step or coarsen the mesh.advisory
W-7WRFcu_physics != 0 and dx_km < 4 (cumulus scheme at convection-permitting scale)Turn off the cumulus parameterization (cu_physics: 0) below ~4 km.blocks
W-8WRFtime_step > 6 × dx_km (CFL analog)Reduce time_step.blocks
W-9WRFw_damping != 1 and dx_km < 4Enable w_damping: 1 at CP scale to avoid vertical-velocity blowups.blocks
W-10WRF(bl_pbl_physics, sf_sfclay_physics) is not a legal pairingChoose a PBL/surface-layer pair from the compatible set.blocks
CodeTriggers whenFix
W-REQ-EXEA component’s declared requires.executables / must_have entry is not on PATHmodule load it, or install it into your environment. nwp-compose doctor checks these too.
W-REQ-ENVA component’s declared requires.env_vars entry is unsetExport the variable before running.
Terminal window
nwp-compose validate forecast.yaml --no-warnings # hide advisory W-codes (does NOT bypass blocks)

--no-warnings only silences advisory output. It does not disable the W-7..W-10 hard block — that requires acknowledge_unphysical: true in the YAML, which is the auditable, deliberate escape hatch.