...
Start with an example of a run script for a low-resolution coupled simulation: https://github.com/E3SM-Project/SimulationScripts/blob/master/archive/v2/run.20210409v2.v2beta4LR.piControl.ne30pg2_EC30to60E2r2.chrysalis.sh . Create a new run script or copy an existing one. The path to it should be <run_scripts_dir>/run.<case_name>.sh
...
readonly COMPSET="WCYCL1850"
: compset (configuration)readonly RESOLUTION="ne30pg2_EC30to60E2r2"
: resolution (low-resolution coupled simulation in this case)ne30
is the number of spectral elements for the atmospheric dynamics grid, whilepg2
refers to the physics grid option. This mesh grid spacing is approximately 110 km.EC30to60E2r2
is the ocean and sea-ice resolution. The grid spacing varies between 30 and 60 km.For simulations with regionally refined meshes such as the N American atmosphere grid coupled to the WC14 ocean and sea-ice, replace with
northamericax4v1pg2_WC14to60E2r3
.
readonly DESCRIPTORCASE_NAME="v2beta4v2.LR.piControl"
:v2beta4
v2.LR
is a short custom description to help identify the simulation.piControl
is the type of simulation. Other options here include , but are not limited to:amip
,F2010
.
readonly CASE_GROUP="v2beta4v2.piControlLR"
:This will let you mark multiple cases as part of the same group for later processing (e.g., with PACE).
# Code and compilation
readonly CHECKOUT="2021040920210702"
: date the code was checked out on in the form{year}{month}{day}
. The source code will be checked out in sub-directory named{year}{month}{day}
under <code_source_dir>.readonly BRANCH="master"
: branch the code was checked out from. Valid options include “master”, a branch name, or a git hash. For provenance purposes, it is best to specify the git hash.readonly DEBUG_COMPILE=false
: option to compile with DEBUG flag (leave set to false)
...
readonly MODEL_START_TYPE="initialhybrid"
: specify how the model should start – useinitial
conditions or ,continue
from existing restart files,branch
, orhybrid
.readonly START_DATE="0001-01-01"
: model start date. Typically year 1 for simulations with perpetual (time invariant) forcing or a real year for simulation for transient forcings.
# Case name
readonly CASE_NAME=${CHECKOUT}.${DESCRIPTOR}.${RESOLUTION}.${MACHINE}
: the case name is a unique identifier for the simulation. It is constructed from variables defined above. If there is no risk of ambiguity, the machine name can be dropped:CASE_NAME=${CHECKOUT}.${DESCRIPTOR}.${RESOLUTION}
.
# Set paths
readonly CODE_ROOT="${HOME}/E3SME3SMv2/code/${CHECKOUT}"
: where the E3SM code will be checked out.readonly CASE_ROOT="/lcrc/group/e3sm/${USER}/E3SM_simulationsE3SMv2/${CASE_NAME}"
: where the results will go. The directory${CASE_NAME}
will be in<simulations_dir>
.
# Sub-directories (leave unchanged)
readonly CASE_BUILD_DIR=${CASE_ROOT}/build
: all the compilation files, including the executable.readonly CASE_ARCHIVE_DIR=${CASE_ROOT}/archive
: where short-term archived files will reside.
...
This section controls what operations the script should perform. The run-e3sm script can be invoked multiple times with the user having the option to bypass certain steps by toggling true
/ false
do_fetch_code=truefalse
: fetch the source code from Github.do_create_newcase=true
: create new case.do_case_setup=true
: case setup.do_case_build=truefalse
: compile.do_case_submit=true
: submit simulation.
...