Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: added clarity re: namelists

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 May 2018 (the CentOS7 update)

...

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

E.g. To customize CAM output, edit user_nl_cam according to userguide, and master field list: v1.1.1, v1.2.2.

...

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

After modifying the namelist, run ./preview_namelists to submit the changes.


Tips:

  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.

...

You can view technical details about compset in README.case under case root directory, after you have created a case with that compset. 


To create a new compset (e.g. Aquaplanet in SP-CESM), use the -compset_file argument in create_newcase:

...

Make a copy of ~pchan/spcam2_0-cesm1_1_1/scripts/sample_compset_file.xml to your directory and edit it. And edit create_new_build.sh to add '-compset_file' argument when it calls create_newcase. 


Details coming


SourceMod related

...

1. Missing pio directory in /models/utils/pio
Solution:
svn checkout https://github.com/NCAR/ParallelIO.git/tags/pio1_8_12/pio ./cesm1_2_2/models/utils/pio

2. Missing genf90.pl file
Solution:
svn checkout https://github.com/PARALLELIO/genf90/tags/genf90_140121 ./cesm1_2_2/tools/cprnc/genf90 



Unconfirmed: aquaplanet - src.aquap do not take effect.

...