Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
maxLevel3

...

If you need POP2 (e.g. compset B), enter cpan, key in: install Switch, then exit cpan.

** Cluster update May 2024: CESM1 had compilation issues. If you need to run CESM1, please email sweidman at g dot harvard dot edu for instructions (until I update this wiki page). **

**Rocky8 update**

The netcdf software is now in two locations (netcdf-c and netcdf-fortran). CESM will break unless you put them in the same folder. One option is to copy the files for netcdf-c and netcdf-fortran in /n/sw/ into one folder in your home directory and combine the files in bin, lib, and include into the same folder. You can also copy

...

export NETCDF=${NETCDF_HOME}

** **

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

...

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.

...