Table of Contents | ||
---|---|---|
|
...
If you need POP2 (e.g. compset B), enter cpan
, key in: install Switch
, then exit cpan.
cp /n/home05/pchan/spcam2_0-cesm1_1_1/scripts/create_new_build.sh ~/ #please copy a newer version after May 2018 (the CentOS7 update)
...
Setting GET_REFCASE to false may cause problem for some compset (e.g. B_1850_CN). Now using default from compset.
DOUT_S_SAVE_INT_REST_FILES is a switch REST_N determines how often restart files are saved. Default is only once, after the run completes. For a long run, uncomment this line and change to something like 1 (nyears) so you can restart your run if the job fails.
DOUT_S_SAVE_INT_REST_FILES is a switch that can stop "short term archive" from deleting your intermediate restart files. However, those restart files will not be put in one folder for restart, but distributed across components.
...
Not much speed up can be obtained when GMAKE_J >4, based on some tests with F_2000. This number should be same as srun -c argument for build.
In general, the above parameters and more can be changed after you initially build the model by using ./xmlchange <VARIABLE NAME>=<new value>. Often, the variables you want to change are listed in env_run.xml. You will need to rebuild the model if you make any changes here - see step 5.
What to expect:
Right after create_newcase, copying user_nl_* and SourceMods might results in "cp: No match". These errors can be safely ignored.
...
How namelists are built in CESM?
$RUNDIR/*_in are namelists directly read by Fortran program. They are recommended NOT to be edited directly, but instead, indirectly through user_nl_* and env_*.xml. The processes of indirectly creating namelists are as follows:
...
- preview_namelists
- calls Buildconf/$comp.buildnml.csh
- copies *_in to CaseDocs/
- Buildconf/$comp.buildnml.csh
- call $CCSMROOT/models/**/bld/build-namelist, which create namelist Buildconf/*conf/*_in
- copy *_in to $RUNDIR (overwrite)
- build-namelist
- takes “infile” from user_nl_*
- writes out Buildconf/*conf/*_in and Buildconf/*.input_data_list
When job is submitted:
- $CASE.submit submits $CASE.run
- $CASE.run calls preview_namelists
- Same things happen again.
...
How to modify namelists in CESM?
If possible, always use user_nl_* and env_*.xml.
E.g. Change the path to an input data file: ./xmlchange SSTICE_DATA_FILENAME=/path/to/new_sst.nc (this can also be listed as a line in user_nl_cam).
...
If impossible, manually change $RUNDIR/*_in, and disable copying (overwriting) in Buildconf/$comp.buildnml.csh
...
grep -Ev '^\s*$|^\s*!' user_nl_*
can display all non-empty uncommented lines in user_nl_*./preview_namelists can update namelists (and input_data_list)
- grep '' Buildconf/*.input_data_list
can list out all input data. DIN_LOC_ROOT=`./xmlquery -valonly -silent DIN_LOC_ROOT`
./check_input_data -inputdata $DIN_LOC_ROOT -check
can check input dataSection &seq_infodata_inparm in drv_in can be checked in $RUNDIR/cpl.log.$LID
Always compare default namelist and new namelist
Sometimes, user_nl_* are not interpreted literally. E.g. specifying prescribed_ozone_file could remove lines for prescribed_ozone_cycle_yr, prescribed_ozone_name, etc.
Never edit namelist in CaseDocs/ or Buildconf/, they are overwritten every time and NOT read by Fortran program.
References:
http://jules-lsm.github.io/vn4.2/namelists/intro.html
http://www.lahey.com/docs/lfpro73help/f95arnameliststmt.htm
http://www.codezone.co.uk/fortran/namelist.shtml
http://www.cesm.ucar.edu/models/cesm1.1/cesm/doc/usersguide/c1128.html
http://www.cesm.ucar.edu/events/tutorials/2016/practical4-hannay.pdf
Compset
Compset is a short form for "component set", which specifies component models, forcing scenarios and physics options for those models.
...