Overview of building CAM. Building and running CAM takes place in
the following steps.
Configure includes setting the compile-time parameters such as resolution, dynamical core to use (Eulerian Spectral, Semi-Lagrangian Spectral, or Finite-Volume), type of parallelism to employ (shared-memory and/or distributed memory), number of constituents, and number of vertical levels. This step is done most easily by invoking the configure script that creates the files necissary for the build step to take place.
Build model includes compiling and linking the executable using the GNU-make utility. The configure script creates a copy of the Makefile in the directory where the build is to take place. The user then need only change to this directory and execute gmake.
Build namelist includes creating the input namelist and ensuring input datasets are available.
Execute model includes the actual invokation of the executable. When running using distributed memory parallelism this step requires knowledge of how your machine invokes MPI executables. When using shared-memory parallelism using Open-MP you may also set the number of Open-MP threads.
It is assumed that the user has access to the utilities tar, Free Software Foundation gunzip and gmake (GNU make), and Perl5. The scripts written in perl need at least Perl5.4 to work.
Download CAM source code and datasets from.
http://www.ccsm.ucar.edu/models/atm-cam/
The download of the source code is called "cam2.0.2_source.tar.gz" and the download of the standard datasets (for running the model using the Eulerian-spectral dynamics at T42 resolution with 26 levels) is called "cam2.0.2_standard_datasets.tar.gz". For running the model at non-standard resolutions or with the other dynamical cores use the dataset called "cam2.0.2_nonstandard_datasets.tar.gz".
To untar the source dataset you execute the following command.
gunzip -c cam2.0.2_source.tar.gz | tar xvf -
To untar the input datasets you execute the following command.
gunzip -c cam2.0.2.standard_datasets.tar.gz | tar xvf -
To untar the non-standard input datasets you execute the following command in the same directory as the standard datasets. Thus the non-standard and standard datasets will reside in the same directory structure.
gunzip -c cam2.0.2.standard_datasets.tar.gz | tar xvf -
If the user needs to run the model at resolutions that aren't provided in the above set of datasets they will need additional datasets. The user will need to create an atmospheric initial-condition dataset as well as a SST dataset for this resolution. The user could do this by interpolating the datasets that are provided. Currently we do not provide tools to do this interpolation. Also when running at a different resolution land model datasets will need to be created from the high resolution datasets. The high resolution datasets can be downloaded from.
http://www.cgd.ucar.edu/tss/clm/distribution
gunzip -c CLM2.1_inputdata.tar.gz | tar xvf -
Next set the environment variable "CSMDATA" to the location of the input datasets. Using "c-shell" this is done as follows. The user may want to set this value in their .login or .cshrc so that it will always be available after logging in.
setenv CSMDATA `pwd`/inputdata
The directory structure of the input datasets is as follows:
Once the source tar-ball is untarred, the directory hierarchy for
"CAM2.0.2" is as follows. The directories in bold font are
the top level directories for the CAM atmospheric model code. The
directory hierarchy closely parallels the directory hierarchy for
CCSM2 and as such seperates code out by model component.
Table 2.1: Directory Hierarchy
|
|
models/atm/cam/bld/ | Scripts to build and execute the model |
models/atm/cam/src/ | Atmosphere model main source code directory |
models/atm/cam/src/advection/slt | Semi-Lagrangian Transport advection routines |
models/atm/cam/src/control | Control code |
models/atm/cam/src/dynamics/eul | Eulerian dynamics |
models/atm/cam/src/dynamics/fv | Finite-Volume dynamics |
models/atm/cam/src/dynamics/sld | Semi-Lagrangian dynamics |
models/atm/cam/src/ocnsice/dom | Data Ocean Model |
models/atm/cam/src/physics/cam1 | Physics routines (e.g., radiation, convection) |
models/atm/cam/src/utils | CAM specific utilities |
models/atm/cam/tools/ | Directory of tools (such as history compare routines) |
models/atm/cam/tools/cprnc | History file comparison program. Normally used to compare code modifications to a "base-line" code. Prints out summary of differences. |
models/atmlnd_share | Code shared between the land and atmosphere components. |
models/csm_share | Code shared by all the geophysical model components of the Community Climate System Model (CCSM)(e.g. code for CCSM message passing and orbital calculations) |
models/lnd/clm2 | Community Land Model (CLM2.1) code |
models/ice/csim4 | Community Sea-Ice Model (CSIM4) code |
models/utils | Independent utility codes |
models/utils/esmf | General purpose Earth System Modeling Framework (ESMF) utilities. |
models/utils/timing | General purpose timing library. |
Questions on these pages can be sent to... erik@ucar.edu .