CESM Models

CCSM1.4 Code Distribution



CSM 1.4 is the fourth major configuration of the Climate System Model, a comprehensive coupled model of the Earth's climate system. Both active and data models are available. Standard resolutions are T31 & T42 for the atmosphere and land components, and a nominal 3x3 and 2x2 degree resolution for the sea-ice and ocean components. Other resolutions are also possible.

This collection of code is meant to be compiled and run on either a Cray or a SGI Origin 2000 machine.

Along with the source code, several test scripts are also provided. These test scripts demonstrate how to configure and run the CSM for various typical applications. While these scripts do implement standard CSM configurations, they are intended to be used for short "getting started" test runs and may not be appropriate for certain applications.

If you acquire any CSM source code, please email and let us know.

Notices, Revisions and Patches

Dec 08 2000: CSM1.4 release.

Jul 11 2000: CSM1.4 release.

Jun 26 2000: CSM1.4 pre-release. [comments]

The CSM1.4 Distribution:

 The CSM1.4 code is targeted for SGI Origin 2000 and Cray C90/J9 platforms.

 CSM1.4 is available via anonymous ftp from:
 or via the web from: csm1.4.download.html 

 The CSM1.4 distribution consists of four files:
 Zdrwxrwxr-x   2 9005     24       512 Feb 28 15:19 .
 drwxrwxr-x    6 9005     24       512 Feb 10 22:17 ..
 -rw-rw-r--    1 9005     24       121812 Feb 28 15:19 csm.nqs.csm1.4.tar.gz      
 -rw-rw-r--    1 9005     24       2457741 Feb 28 15:19 csm.models.tar.gz   
 -rw-rw-r--    1 9005     24       161157120 Feb 10 22:28 csm.input.T31x3p.tar
 -rw-rw-r--    1 9005     24       161157120 Feb 10 22:28 csm.input.T42x2.tar

 csm.nqs.csm1.4.tar.gz is the scripts and a small amount of modified code
                       for various combinations of the models.  
 csm.models.tar.gz     is the frozen coupler and model codes
 csm.input.T31x3p.tar  is the low resolution input data sets
 csm.input.T42x2.tar   is the high resolution CSM input data sets


 Required system files:

 csh      The scripts are written to run in the c-shell
 gnumake  Gnumake is sometimes called gmake or make.  To see if your make
          command really runs gunmake, type "make -v".  If it correctly
          returns a version number, it is gnumake and will work.  If it
          returns an error, it is generic make, which won't work)
 F90      A FORTRAN 90 compiler
 cc       A C compiler
 mpi      Message Passing Interface (both include files and libraries)
 netCDF   The netCDF data format (both include files and 64-bit libraries)


 Untarring the CSM1.4 distribution.

 The simplest way to unpack the CSM1.4 distribution is to untar the
 files in a large disk area.  The CSM1.4 distribution is configured
 to run on the NCAR SGI ute under the directory /ptmp

 This area may have another name on your system.

 To untar the data files:  tar -xf csm.input.T31x3p.tar
 To untar the *.gz files:  gunzip -c csm.nqs.tar.gz | tar -xf -

 Assuming that you create the directory /ptmp/$LOGNAME and untar the
 CSM1.4 distribution under /ptmp/$LOGNAME, the top levels of the
 resulting directory tree are:

       [Directories and files below this point 
        are created by untaring the csm1.4 files]          
          |           |                    |  
        input/      models/               nqs/
          |           |                    |  
          |           |                    |  
          |           |                    |       
    [ $DATDIR ]   [ $CODDIR ]          [ $NQSDIR ]
          |           |                    |
   [Input Data]   [Frozen Code]  [Build/Run Scripts and any Modified Code]  
          |           |                    |
 +----+----+----+     |                    |     
 |    |    |    |     |                    |
atm/ ocn/ ice/ lnd/   |                    |
                      |                    |
                      |                    |
            +----+----+----+----+          |
            |    |    |    |    |          |
           cpl/ atm/ ocn/ ice/ lnd/        |
          |               |                |                |      
    [data only]   [atm/lnd spinup]   [ocn/ice spinup]   [fully coupled]
          |               |                |                |      
[Case]   csm1.4         csm1.4a/         csm1.4b/         csm1.4c/
                          |                |                |
[Initial run script]    csm1.4a.nqs0     csm1.4b.nqs0     csm1.4c.nqs0 
[Continue run script]   csm1.4a.nqs      csm1.4b.nqs      csm1.4c.nqs 
[atm setup script]      atm.setup.csh    datm.setup.csh   atm.setup.csh
[ocn setup script]      docn.setup.csh   ocn.setup.csh    ocn.setup.csh
[ice setup script]      ice.setup.csh    ice.setup.csh    ice.setup.csh
[lnd setup script]      lnd.setup.csh    dlnd.setup.csh   lnd.setup.csh
[cpl setup script]      cpl.setup.csh    cpl.setup.csh    cpl.setup.csh
[GNU makefile]          Makefile         Makefile         Makefile     
[modified atm code]     src.atm/*        src.datm/*       src.atm/*      
[modified ocn code]     src.docn/*       src.ocn/*        src.ocn/*      
[modified ice code]     src.ice/*        src.ice/*        src.ice/*      
[modified lnd code]     src.lnd/*        src.dlnd/*       src.lnd/*      
[modified cpl code]     src.cpl/*        src.cpl/*        src.cpl/*      

The untar operation will create the /ptmp/$LOGNAME/csm branch of the tree.

$DATDIR (/ptmp/$LOGNAME/csm/input/* )  contains all the input data
$CODDIR (/ptmp/$LOGNAME/csm/models/* ) contains the frozen model code
$NQSDIR (/ptmp/$LOGNAME/csm/nqs/* )    contains the run scripts and any
                                        modified model code

Four example CSM experiments are included:

csm1.4     MPI test case.   Data drivers only, no active models.
csm1.4a    atm/lnd spinup.  Active atm & lnd models, data ocn & ice drivers
csm1.4b    ocn/ice spinup.  Active ocn & ice models, data atm & lnd drivers
csm1.4c    Fully coupled.   Active atm, lnd ocn & ice models.

 For purposes of example, the csm1.4c case will be described below


 Running the CSM

 The master script (nqs script) is /ptmp/$LOGNAME/csm/nqs/csm1.4c/csm1.4c.nqs0
 ($NQSDIR/csm1.4c.nqs0).  This script is executed to run the CSM.

 The $NQSDIR/csm1.4c.nqs0 script does 4 things: 
    1. Define the run environment 
    2. Build the Makefile generator
    3. Build the components by calling a setup script for each component:
       These setup scripts: 1. Define the model version to be build
                            2. create the input namelists for this model
                            3. preposition any needed files
                            4. build the component
    4. Run all components simultaneously

 When you run the script /ptmp/$LOGNAME/csm/nqs/csm1.4c/csm1.4c.nqs0, the
 following directory tree will be created

       |                                 |                   
  [ $EXEDIR ]                         [ $CPDIR ]
       |                                 |
     csm1.4c/                     USERNAME/csm/$CASE/ 
       |                                 |
 [Models Execute Here]       [Output data copied Here] 
       |                     [USERNAME is $LOGNAME in CAPS]
       |                                 |                     
  +----+----+----+----+       +----+-----+----+----+      
  |    |    |    |    |       |    |     |    |    |  
 cpl/ atm/ ocn/ ice/ lnd/    cpl/ atm/  ocn/ ice/ lnd/
  |                                |     |         |    
 cpl                              hist/ R2/       hist/ 
 Namelist                         rest/ R3/       rest/ 
 cpl.log.YYYYYY-HHMMSS                  R4/
 cpl.setup.YYYYYY-HHMMSS                R5/
 *.nc                                   netcdf/ 


 Some things you might need to change for your system:

 1. To change the location of the CSM distribution:

    Modify the following lines in $NQSDIR/csm1.4c.nqs0 

    setenv NQSDIR     /ptmp/$LOGNAME/csm/nqs/$CASE  # Setup scripts dir
    setenv DATDIR     /ptmp/$LOGNAME/csm/input      # Input datasets dir
    setenv CODDIR     /ptmp/$LOGNAME/csm/models     # Frozen source code dir

 2. To change the length of the CSM run

    The coupler controls when the model starts, writes data and stops,
    To change the length of the CSM run, modify the value of stop_n in 

 3. To modify compiler options, such as the location of the MPI & netCDF
    include files and libraries

    The compiler options are set in $NQSDIR/Makefile.
    Note, this is a GNUmakefile, not a regular makefile

 4. To change the model resolution

    The CSM1.4 distribution is set for a T31 atm/lnd grid and x3p
    (by-three-prime) ocn/ice resolution.  To run a T42x2 resolution,
    change the following lines in $NQSDIR/csm1.4c.nqs0 from

    setenv RESOLUTION    T31_x3p                    # Either T31_x3p or T42_x2


    setenv RESOLUTION    T42_x2                     # Either T31_x3p or T42_x2

 For detailed documentation of the nqs and setup scripts, see
 CCSM 1.4 User's Guide