Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Namelist: expand macro


Table of Contents
maxLevel3

...

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 the CentOS7 update

...

xxx: migrating from https://docs.google.com/document/d/1ap8b3lsA9f89Li5dKICReYuz8bAf1yYACfavivX9joU/edit

What is namelist?

Expand

Namelist in this page refers to text files read in by Fortran NAMELIST statements. In many numerical models (including CESM), namelist are used to specify runtime options, without having to rebuild the model. Sample namelist looks like:

&GROUP_NAME
 char_variable = "a char variable",
 logical_variable = .true.,
 real_variable = 12.3,
 int_array = 1, 2, 3, 4,
/

Read more about Fortran namelist in: link1, link2, link3.

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. ./xmlchange SSTICE_DATA_FILENAME=/path/to/new_sst.nc

...

If impossible, manually change $RUNDIR/*_in, and disable copying (overwriting) in Buildconf/$comp.buildnml.csh

...

  1. grep -Ev '^\s*$|^\s*!' user_nl_*
    can display all non-empty uncommented lines in user_nl_*

  2. ./preview_namelists can update namelists (and input_data_list)

  3. grep '' Buildconf/*.input_data_list
    can list out all input data.
  4. DIN_LOC_ROOT=`./xmlquery -valonly -silent DIN_LOC_ROOT`
    ./check_input_data -inputdata $DIN_LOC_ROOT -check
    can check input data

  5. Section &seq_infodata_inparm in drv_in can be checked in $RUNDIR/cpl.log.$LID

  6. Always compare default namelist and new namelist

  7. 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.

  8. 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.

...