Control Files
Many AIRS executables use the shared scan_ctl(...) parser implemented in src/jurassic.c. The first positional argument is typically a control file path named here as <ctl>.
Two Supported Modes
Use A Control File
If the first argument is not -, the program opens that file and reads settings from it.
Example:
map_pert my_case.ctl data/pert.nc data/map.tab
Use Inline Key/Value Arguments
If the first argument is -, no control file is opened and settings are read from the command line instead.
Example:
map_pert - data/pert.nc data/map.tab PERTNAME 4mu BG_POLY_X 0 BG_POLY_Y 0
Expected File Format
The parser looks for lines with three whitespace-separated fields:
VARIABLE = VALUE
The middle field is parsed but otherwise ignored, so the usual convention is name = value.
Examples:
PERTNAME = 4mu
BG_POLY_X = 0
BG_POLY_Y = 0
VAR_DH = 100.0
Array Syntax
Some retrieval settings use indexed variables. The parser accepts both:
NAME[3] = valueNAME[*] = value
The wildcard form applies the same value to all indices that query that setting.
Override Behavior
Command-line values override values from the control file when both are present.
This is useful for parameter sweeps:
variance base.ctl out.tab pert.nc NX 60 NY 30
Missing Variables
- If a program provides a default value in code, that default is used.
- If no default exists, execution stops with a missing-variable error.
Common Keys
The exact keys depend on the executable, but frequently used options include:
PERTNAMESETBG_POLY_XBG_POLY_YBG_SMOOTH_XBG_SMOOTH_YGAUSS_FWHMVAR_DHNUTRACK_MIN,TRACK_MAXXTRACK_MIN,XTRACK_MAX
The best way to discover program-specific keys is to inspect the scan_ctl(...) calls near the top of each program in src/.