Downloading CESM2 (CESM2.1)¶
Downloading the code and scripts¶
Starting with CESM2, releases are available through a public GitHub repository, http://github.com/ESCOMP/CESM.
Access to the code requires both git and Subversion client software in
place that is compatible with GitHub and our Subversion server
software. You will need access to the command line clients,
(v1.8 or greater) and
svn (v1.8 or greater but less than v1.11).
Currently, our Subversion server
software is at version 1.8.17. For more information or to download
open source tools, visit Subversion
and git downloads.
With valid git and svn clients installed on the machine where CESM2 will be built and run, the user may download the latest version of the release code:
git clone -b release-cesm2.1.3 https://github.com/ESCOMP/CESM.git my_cesm_sandbox cd my_cesm_sandbox
To checkout a previous version of CESM2, first view the available versions:
git tag --list 'release-cesm2*'
To checkout a specific CESM2 release tag type, for example CESM2.0.1:
git checkout release-cesm2.0.1
Finally, to checkout all the individual model components, run the checkout_externals script from /path/to/my_cesm_sandbox.
The checkout_externals script will read the configuration file called
will download all the external component models and CIME into /path/to/my_cesm_sandbox.
Details regarding the CESM2 checkout process are available in the CESM GitHub repo README To see more details regarding the checkout_externals script from the command line, type:
When contacting the Subversion server for the first time, you may need to
accept an authentication certification. If you experience problems such as
checkout_externals hanging: Run
accepting the certificate when prompted, then retry the CESM download
(starting over at the top of these instructions).
If a problem was encountered during checkout_externals, which may happen with an older version of the svn client software, it may appear to have downloaded successfully, but in fact only a partial checkout has occurred.
To confirm a successful download of all components, you can run
with the status flag to show the status of the externals:
This should show a clean status for all externals, with no characters in the first two columns of output, as in this example:
Processing externals description file : Externals.cfg Processing externals description file : Externals_CLM.cfg Processing externals description file : Externals_POP.cfg Processing externals description file : Externals_CISM.cfg Checking status of externals: clm, fates, ptclm, mosart, ww3, cime, cice, pop, cvmix, marbl, cism, source_cism, rtm, cam, ./cime ./components/cam ./components/cice ./components/cism ./components/cism/source_cism ./components/clm ./components/clm/src/fates ./components/clm/tools/PTCLM ./components/mosart ./components/pop ./components/pop/externals/CVMix ./components/pop/externals/MARBL ./components/rtm ./components/ww3
You should now have a complete copy of the CESM2 source code in your /path/to/my_cesm_sandbox.
If there were problems obtaining an external, you might instead see something like:
This might happen if there was an unexpected interruption while downloading.
First try rerunning
If there is still a problem, try running with logging turned on using:
manage_externals.log file to see what errors are reported.
Downloading input data¶
Input datasets are needed to run the model. CESM input data are available through a separate Subversion input data repository.
The input data repository contains datasets for many configurations and resolutions and is well over 10 TByte in total size. DO NOT try to download the entire dataset.
Datasets can be downloaded on a case by case basis as needed and CESM provides tools to check and download input data automatically.
A local input data directory should exist on the local disk, and it also
needs to be set in the CESM scripts via the variable
For supported machines, this variable is preset. For generic machines,
this variable is set via the
--input-dir argument to create_newcase.
It is recommended that all users of a given filesystem share the same
The files in the subdirectories of
$DIN_LOC_ROOT should be
write-protected. This prevents these files from being accidentally
modified or deleted. The directories in
$DIN_LOC_ROOT should generally
be group writable, so the directory can be shared among multiple users.
As part of the process of generating the CESM executable, the utility,
check_input_data located in each case directory
is called, and it attempts to locate all required input data for the
case based upon file lists generated by components. If the required
data is not found on local disk in
$DIN_LOC_ROOT, then the data
will be downloaded automatically by the scripts or it can be
downloaded by the user by invoking check_input_data with the
command argument. If you want to download the input data manually you
should do it before you build CESM.
It is possible for users to download the data using svn subcommands directly, but use of the check_input_data script is highly recommended to ensure that only the required datasets are downloaded.
Again, users are STRONGLY DISCOURAGED from downloading the entire input dataset from the repository.