run.json that says what to run.
The tree
CATALOG/, DB/, CHAIN/ and ORACLE/ are reserved. Every other directory is a source library. A source file at the top of the tree is never found: put it in a subdirectory. A copybook directory must be named cpy, cpyv1, copy or copybooks (any case) to be searched.
The demand
Exactly one of these says what to run:
Declaring two of
compile, submit and CHAIN/ is refused.
run.json
run.json leaves out comes from the codebase’s harwell.toml [run], then from the default. An unknown key is refused by name. The report carries the resolved settings, where each came from, and one digest over them under configuration: two runs with the same digest ran under the same settings.
A
run.json may not restate what a codebase is (its libraries, search orders, JOB card, region or Db2 parameters). Those live in harwell.toml [site].
CHAIN/chain.json
CATALOG/_geometry.json
A fixed-format data set holds fixed-length records with no newlines. A file that is exactly N lines of LRECL bytes is read as N records with the newlines dropped. Any other misfit is read as it is, and the result’s
seed: line says where records start going wrong.
ORACLE/
ORACLE/, the result carries a verdict. It checks only what it names.
Tables. One row per line, fields joined with |, rows ordered by every column. \N is NULL. Escape \\, \|, \n and \r. Trailing blanks are not significant.
Screens. One entry per map sent, in order. null skips one. An entry is {"map", "mapset", "fields": {NAME: value}}, compared as the screen shows the fields, trailing blanks dropped. A field whose value is null must be on the map, and its value is not checked. "exact": true also checks the number of maps sent.