...
Code Block |
---|
# Model running alias run_scripts="cd /home/<username>/E3SM/scripts/" alias simulations="cd /lcrc/group/e3sm/<username>/E3SM_simulations/" alias post_processing="cd /home/<username>/E3SM/utils/post_v2/" |
...
Configuring the Model Run – New Run Script
...
A simplified run script template can be found at https://github.com/E3SM-Project/SimulationScripts/blob/master/archive/v2/beta/coupled/run.20210205.v2_test02.piControl.ne30pg2_EC30to60E2r2.chrysalis.sh.
# Machine
readonly MACHINE=chrysalis
: the name of the machine you’re running on.
# Simulation
readonly COMPSET="WCYCL1850"
readonly RESOLUTION="ne30pg2_EC30to60E2r2-1900_ICG"
:ne30
is the number of spectral elements for the atmospheric grid.EC30to60E2r2
is the ocean and sea-ice resolution.ICG
means initial conditions from a G-case. ICG can apply to eitherEC30to60E2r2
or RRM ocean (WC14). It specifies whether the ocean and ice is partially spun up or just from data (temperature and salinity, velocity is assumed zero): “G-case” indicates the ocean and sea-ice are active but the atmosphere, land, and river are from data.rrm
for regionally refined mesh is an option to replace other resolutions. RRM for the ocean/sea ice is 14km near the US coast and Arctic and identical to the30to60E2r2
elsewhere. RRM for the atmosphere is 120km over North America andne30
elsewhere.
readonly DESCRIPTOR="v2_test02.piControl.ne30pg2_EC30to60E2r2"
:v2_test02
is a short custom description to help identify the simulation.piControl
is the type of simulation. Other options here includeamip
,F2010
.ne30pg2_EC30to60E2r2
is the resolution. This should be identical to theRESOLUTION
above.
# Code and compilation
readonly CHECKOUT="20210205"
: date the code was checked out on in the form{year}{month}{day}
.readonly BRANCH="master"
: branch the code was checked out from.readonly DEBUG_COMPILE=false
# Run options
For a short run, this section might look like:
Code Block |
---|
readonly MODEL_START_TYPE="initial" # initial, continue
readonly START_DATE="0001-01-01"
readonly STOP_OPTION="nmonths" # Units will be number of months
readonly STOP_N="1" # Stop after running 1 month (one `STOP_OPTION`)
readonly REST_OPTION="nmonths" # Units will be number of months
readonly REST_N="1" # Write restart file after running 1 month (one `STOP_OPTION`)
readonly RESUBMIT="0" # Do not re-submit
readonly DO_SHORT_TERM_ARCHIVING=false |
For a long run, this section might look like:
Code Block |
---|
readonly MODEL_START_TYPE="initial" # initial, continue
readonly START_DATE="0001-01-01"
readonly STOP_OPTION="nyears" # Units will be number of years
readonly STOP_N="20" # Stop after running 20 years (20 `STOP_OPTION`s)
readonly REST_OPTION="nyears" # Units will be number of years
readonly REST_N="5" # Write restart file after running 5 years (5 `REST_OPTION`s)
readonly RESUBMIT="4" # Submit 4 times after the initial submit (4+1 submits * 20 years/submit = 100 years)
readonly DO_SHORT_TERM_ARCHIVING=false |
In the above configuration, the model is submitted 5 times (initially and then 4 times after). Each submission covers 20 simulated years, so this will run 100 simulated years. On each submission, restart files will be written every 5 years. Since each submission covers 20 simulated years, each one will have 4 restart files written.
Model runs need to return the same results whether they use restart or not. If that is not the case, then a non-bit-for-bit change has been introduced.
# Coupler history
readonly HIST_OPTION="nyears"
readonly HIST_N="5"
# Batch options
readonly PELAYOUT="L"
:1=single processor, S=small, M=medium, L=large, X1=very large, X2=very very large
. UseS
for short tests. Full simulations should useL
. The size determines how many nodes will be used. The exact number of nodes will differ amongst machines.readonly WALLTIME="28:00:00"
readonly PROJECT="e3sm"
# Case name
readonly CASE_NAME=${CHECKOUT}.${DESCRIPTOR}.${MACHINE}
: sets the case name. This will look like `20210205.v2_test02.piControl.ne30pg2_EC30to60E2r2.chrysalis
using the values on this page.If you are not comparing the same case on different machines, exclude the
.${MACHINE}
part.
# Set paths
readonly CODE_ROOT="${HOME}/E3SM/code/${CHECKOUT}"
: where the E3SM code will be checked out.readonly CASE_ROOT="/lcrc/group/e3sm/${USER}/E3SM_simulations/${CASE_NAME}"
: where the results will go. If you’re using the aliases defined in “Useful Aliases”,simulations
will take you to the directory where${CASE_NAME}
will go.
# Sub-directories (leave unchanged)
This section should not be changed:
Code Block |
---|
readonly CASE_SCRIPTS_DIR=${CASE_ROOT}/case_scripts # Where files for your particular simulation will go.
readonly CASE_BUILD_DIR=${CASE_ROOT}/build # All the stuff to compile. The executable will be there.
readonly CASE_RUN_DIR=${CASE_ROOT}/run # Where all the output will be. Most components will have their own log files.
readonly CASE_ARCHIVE_DIR=${CASE_ROOT}/archive # Where archives will go. |
# Leave empty (unless you understand what it does)
readonly OLD_EXECUTABLE=""
Running the Model
Run the model by doing the following:
...