Run Description File
Example Run Description YAML File
run id: SS-Atlantis
paths:
atlantis code: /ocean/$USER/Atlantis/atlantis-trunk/
atlantis executable name: atlantisMerged
runs directory: /ocean/$USER/Atlantis/runs/
atlantis command: $HOME/conda_envs/atlantis-dev/bin/atlantis
# The name of the boxes .bgm file must match the value of the "geometry" attribute in the
# global attributes of the initial conditions file.
boxes: /ocean/$USER/Atlantis/salish-sea-atlantis-model/SS_xy.bgm
initial conditions: /ocean/$USER/Atlantis/salish-sea-atlantis-model/SS_init.nc
groups: /ocean/$USER/Atlantis/salish-sea-atlantis-model/SS_grps.csv
migrations: /ocean/$USER/Atlantis/salish-sea-atlantis-model/SalishMigrations.csv
fisheries: /ocean/$USER/Atlantis/salish-sea-atlantis-model/SalishFisheries.csv
parameters:
# The run, forcing, physics, biology, and harvest parameters files are required for all runs,
# and they must be identified by those exact keys.
run: /ocean/$USER/Atlantis/salish-sea-atlantis-model/SS_run.prm
forcing: /ocean/$USER/Atlantis/salish-sea-atlantis-model/SS_forcing.prm
physics: /ocean/$USER/Atlantis/salish-sea-atlantis-model/SS_physics.prm
biology: /ocean/$USER/Atlantis/salish-sea-atlantis-model/SS_biology.prm
harvest: /ocean/$USER/Atlantis/salish-sea-atlantis-model/SS_harvest.prm
forcing:
# The keys must match the forcing file names in the forcing.prm file.
# The file names in the forcing.prm file must be just file names, not path/filename.
# The keys will be the names used for the symlinks created in the temporary run
# directory.
SS_hydro.nc:
link to: /ocean/$USER/Atlantis/salish-sea-atlantis-model/inputs/SS_hydro.nc
SS_temp.nc:
link to: /ocean/$USER/Atlantis/salish-sea-atlantis-model/inputs/SS_temp.nc
SS_salt.nc:
link to: /ocean/$USER/Atlantis/salish-sea-atlantis-model/inputs/SS_salt.nc
output filename base: outputSalishSea
vcs revisions:
git:
- /ocean/$USER/Atlantis/salish-sea-atlantis-model/
- /ocean/$USER/Atlantis/NEMO-Cmd/
- /ocean/$USER/Atlantis/AtlantisCmd/
Basic Run Configuration
The following key-value pairs provide the basic configuration for the run.
An example of the basic configuration key-value pairs:
run id: SS-Atlantis
# The name of the boxes .bgm file must match the value of the "geometry" attribute in the
# global attributes of the initial conditions file.
boxes: /ocean/$USER/Atlantis/salish-sea-atlantis-model/SS_xy.bgm
initial conditions: /ocean/$USER/Atlantis/salish-sea-atlantis-model/SS_init.nc
groups: /ocean/$USER/Atlantis/salish-sea-atlantis-model/SS_grps.csv
migrations: /ocean/$USER/Atlantis/salish-sea-atlantis-model/SalishMigrations.csv
fisheries: /ocean/$USER/Atlantis/salish-sea-atlantis-model/SalishFisheries.csv
output filename base: outputSalishSea
- run id
An identifier for the run. It is used as the first part of the temporary run directory name. For example, run id: SS-Atlantis will result in the creation of a temporary run directory with a name like
SS-Atlantis_2021-08-18T102810.108199-0700/
. The date/time stamp that is appended to the run id value is the creation time of the directory. That makes the temporary run directory name unique, and allows atlantis run to be used to execute multiple nearly concurrent runs.- boxes
The path to the
.bgm
box geometry file for the run. The file name (without the path part) must match the value of the geometry global attribute in the initial conditions netCDF file.- initial conditions
The path to the initial conditions netCDF file that will be passed to the atlantisMerged executable by the -i flag.
- groups
The path to the groups
.csv
file that will be passed to the atlantisMerged executable by the -s flag.- migrations
The path to the migrations
.csv
file that will be passed to the atlantisMerged executable by the -m flag.- fisheries
The path to the fisheries
.csv
file that will be passed to the atlantisMerged executable by the -q flag.- output filename base
The base filename for the output files generated by the run. For example, if the value is outputSalishSea, the main netCDF output file name will be
outputSalishSea.nc
, and other output file names will start with outputSalishSea; e.g.outputSalishSeaBoxBiomass.txt
. The main netCDF output file name will be passed to the atlantisMerged executable by the -o flag.
The boxes,
initial conditions,
groups,
migrations,
and fisheries paths may be relative or absolute,
and may contain ~ or $HOME
as alternative spellings of the user’s home directory,
and $USER
as an alternative spelling of the user’s userid.
Absolute paths with environment variables are strongly recommended for portability and re-usability.
Those files are copied to the temporary run directory during the run set-up phase of atlantis run, and they are copied from there to the results directory when the run script terminates so that they are preserved with the run results.
The file name of the boxes file in the temporary run directory and the results directory is the same as in the path provided.
For example,
boxes: /ocean/$USER/Atlantis/salish-sea-atlantis-model/SS_xy.bgm will result in a file called SS_xy.bgm
in the temporary run and results directories.
The file name of the initial conditions file in the temporary run directory and the results directory is always init_conditions.nc
.
The file name of the groups file in the temporary run directory and the results directory is always groups.csv
.
The file name of the migrations file in the temporary run directory and the results directory is always migrations.csv
.
The file name of the fisheries file in the temporary run directory and the results directory is always fisheries.csv
.
paths Section
The paths section of the run description file is a collection of directory paths that are used during the run set-up phase of atlantis run.
An example paths section:
paths:
atlantis code: /ocean/$USER/Atlantis/atlantis-trunk/
atlantis executable name: atlantisMerged
runs directory: /ocean/$USER/Atlantis/runs/
atlantis command: $HOME/conda_envs/atlantis-dev/bin/atlantis
- atlantis code
The path to the CSIRO Atlantis ecosystem model code Subversion checkout where the Atlantis executable for the run is to be found.
The atlantis run sub-command confirms that the atlantis code directory exists, and exits with an error message if not.
- atlantis executable name
The name of the Atlantis executable to use for the run. The executable name is typically atlantisMerged, but it may be different if you are with code that is under active development to add new features.
This is not actually a path, but it is included here because it is closely associated with atlantis code. The Atlantis executable is assumed to be located in the atlantis code tree, specifically, at
{atlantis code}/atlantis/atlantismain/{atlantis executable name}
.The atlantis run sub-command confirms that the atlantis executable name file exists, and exits with an error message if not.
- runs directory
The path to the directory where run directories will be created by the atlantis run sub-command.
- atlantis command
The path to the atlantis command processor executable file installed from the AtlantisCmd Python package.
The atlantis run sub-command confirms that the atlantis command processor executable file exists, and exits with an error message if not.
The paths may be relative or absolute,
and may contain ~ or $HOME
as alternative spellings of the
user’s home directory,
and $USER
as an alternative spelling of the user’s userid.
Absolute paths with environment variables are strongly recommended for portability and re-usability.
parameters Section
The parameters section of the run description file is a collection of file paths that atlantis uses to find the .prm
files for the run.
The .prm
files are copied to the temporary run directory during the run set-up phase of atlantis run,
and they are copied from there to the results directory when the run script terminates so that they are preserved with the run results.
An example parameters section:
parameters:
# The run, forcing, physics, and biology parameters files are required for all runs,
# and they must be identified by those exact keys.
run: /ocean/$USER/Atlantis/salish-sea-atlantis-model/SS_run.prm
forcing: /ocean/$USER/Atlantis/salish-sea-atlantis-model/SS_forcing.prm
physics: /ocean/$USER/Atlantis/salish-sea-atlantis-model/SS_physics.prm
biology: /ocean/$USER/Atlantis/salish-sea-atlantis-model/SS_biology.prm
harvest: /ocean/$USER/Atlantis/salish-sea-atlantis-model/SS_harvest.prm
The paths may be relative or absolute,
and may contain ~ or $HOME
as alternative spellings of the user’s home directory,
and $USER
as an alternative spelling of the user’s userid.
Absolute paths with environment variables are strongly recommended for portability and re-usability.
The 5 keys run, forcing, physics, biology, and harvest are required for all runs.
- run
The path to the run parameters file that will be passed to the atlantisMerged executable by the -r flag. The file name of the run parameters file in the temporary run directory and the results directory is always
run.prm
.- forcing
The path to the forcing parameters file that will be passed to the atlantisMerged executable by the -f flag. The file name of the forcing parameters file in the temporary run directory and the results directory is always
forcing.prm
.- physics
The path to the physics parameters file that will be passed to the atlantisMerged executable by the -p flag. The file name of the physics parameters file in the temporary run directory and the results directory is always
physics.prm
.- biology
The path to the biology parameters file that will be passed to the atlantisMerged executable by the -b flag. The file name of the biology parameters file in the temporary run directory and the results directory is always
biology.prm
.- harvest
The path to the harvest parameters file that will be passed to the atlantisMerged executable by the -h flag. The file name of the harvest parameters file in the temporary run directory and the results directory is always
harvest.prm
.
Additional,
optional,
parameter file key-value pairs may be included as required.
The file names of those extra parameters files in the temporary run directory and the results directory is the key with .prm
appended;
i.e. contaminants: /ocean/$USER/Atlantis/salish-sea-atlantis-model/SS_contaminant.prm would result in a file named contaminants.prm
in the temporary run and results directories.
Extra parameter files are generally associated with entries in the forcing parameter file.
forcing Section
The forcing section of the run description file contains sub-sections that provide the names of directories and files that are to be symlinked in the run directory for Atlantis to use to read forcing values from.
An example forcing section:
forcing:
# The keys must match the forcing file names in the forcing.prm file.
# The file names in the forcing.prm file must be just file names, not path/filename.
# The keys will be the names used for the symlinks created in the temporary run
# directory.
SS_hydro.nc:
link to: /ocean/$USER/Atlantis/salish-sea-atlantis-model/inputs/SS_hydro.nc
SS_temp.nc:
link to: /ocean/$USER/Atlantis/salish-sea-atlantis-model/inputs/SS_temp.nc
SS_salt.nc:
link to: /ocean/$USER/Atlantis/salish-sea-atlantis-model/inputs/SS_salt.nc
The sub-section keys
(SS_hydro.nc,
SS_temp.nc,
and SS_salt.nc above)
are the names of the symlinks that will be created in the run directory.
Those names are expected to appear in the appropriate places in the forcing.prm
file.
The values associated with the link to keys are the targets of the symlinks that will be created in the run directory.
The paths may be relative or absolute,
and may contain ~ or $HOME
as alternative spellings of the user’s home directory,
and $USER
as an alternative spelling of the user’s userid.
Absolute paths with environment variables are strongly recommended for portability and re-usability.
You are free to use any keys that you wish with the understanding that the key will be the name of the symlink that will be created in the run directory,
and that name will also need to appear as a file name in the forcing.prm
file.
The atlantis run command confirms that the targets of the symlinks exist, and exits with an error message if not.
vcs revisions Section
The optional vcs revisions section of the run description file contains lists of version control system repositories for which the revision and status will be recorded in the temporary run and run results directories.
Note
Generation of a revision and status record file for the atlantis-trunk
Subversion repository checkout is not yet implemented.
An example vcs revisions section:
vcs revisions:
git:
- /ocean/$USER/Atlantis/salish-sea-atlantis-model/
- /ocean/$USER/Atlantis/NEMO-Cmd/
- /ocean/$USER/Atlantis/AtlantisCmd/
The sub-section key(s) (git above) are the names of the version control tools to use for the repositories listed below them. At present only Git (git) and Mercurial (hg) are supported.
The paths listed under the version control tool keys are the repositories of which the revision and status will be recorded.
The repository paths may be relative or absolute,
and may contain ~ or $HOME
as alternative spellings of the user’s home directory,
and $USER
as an alternative spelling of the user’s userid.
Absolute paths with environment variables are strongly recommended for portability and re-usability.
For each repository, a file will be created in the temporary run directory. The file names are the repository directory names with _rev.txt appended. So, from the example above, the files created will be:
salish-sea-atlantis-model_rev.txt
NEMO-Cmd_rev.txt
AtlantisCmd_rev.txt
For Git repositories,
each _rev.txt
file will contain the output of the commands:
git branch --show-current
git log -1
git show --pretty="" --name-only
for the repository.
That is a record of the last committed revision of the repository that will be in effect for the run.
For example,
salish-sea-atlantis-model_rev.txt
might contain:
branch: master
commit: 9c87f2789a6fe4acfa84545d0d243b404dda9dbe
author: por07g
date: Wed Jun 09 09:32:38 2021 +10:00
files: RunTrack.org
message:
update
If any of the listed repositories contain uncommitted changes, the nemo prepare command that atlantis run uses will generate a warning message like:
nemo_cmd.prepare WARNING: There are uncommitted changes in /ocean/$USER/Atlantis/salish-sea-atlantis-model/
and the list of uncommitted changes and their status codes,
the output of the git diff --name-status command,
will be appended to the _rev.txt
file.
Example:
branch: master
commit: 9c87f2789a6fe4acfa84545d0d243b404dda9dbe
author: por07g
date: Wed Jun 09 09:32:38 2021 +10:00
files: RunTrack.org
message:
update
uncommitted changes:
M SS_forcing.prm
M SS_run.prm