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.
- CSM1.4 run scipts and modified code (0.22 Mbytes) [download]
- CSM1.4 frozen model code (2.4 Mbytes) [download]
- CSM1.4 data at T31x3p resoulution (159 Mbytes) [download]
- Download the CSM1.4 data at T42x2 resoulution (290 Mbytes) [download]
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.
- Only csm.nqs.csm1.4.tar.gz updated stepic.F, containing test ice albedos removed from all src.ice subdirectories.
- Obsolete Jun 11 version (0.19Mbytes) [download]
Jul 11 2000: CSM1.4 release.
- Only csm.nqs.csm1.4.tar.gz updated.
- Filepaths corrected, bitcheck added to final cpl timestep,
- Differences between original code and modiified code included.
- Obsolete Jun 26 version (0.19Mbytes) [download]
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: ftp.cgd.ucar.edu:/ftp/pub/ccsm/models/csm1.4/distribution/* 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: /ptmp/$LOGNAME/ | [Directories and files below this point are created by untaring the csm1.4 files] | | csm/ | +-----------+--------------------+ | | | 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: ./csm/nqs/csm1.4c/atm.setup.csh ./csm/nqs/csm1.4c/ocn.setup.csh ./csm/nqs/csm1.4c/ice.setup.csh ./csm/nqs/csm1.4c/lnd.setup.csh ./csm/nqs/csm1.4c/cpl.setup.csh 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 /ptmp/$LOGNAME/ | +-----------+---------------------+ | | [ $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/ obj/Filepath obj/*.h obj/*.o ======================================================================== 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 $NQSDIR/cpl.setup.csh 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 to 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