All active and data components use input datasets. A local disk
needs $DIN_LOC_ROOT
to be populated with input data in order to run
CESMwith these components. For all machines, input data is provided
as part of the release via data from the CESM subversion input data
server. However, on supported machines (and some non-supported
machines), data already exists in the default local filesystem input data
area as specified by $DIN_LOC_ROOT
(see below).
Input data is handled by the build process as follows:
The buildnml scripts in Buildconf/i create listings of required component input datasets in the Buildconf/$component.input_data_list files.
$CASE.build checks for
the presence of the required input data files in the root directory
$DIN_LOC_ROOT
. If all required data sets are found on local disk,
then the build can proceed.
If any of the required input data sets are not found, the build script will abort and the files that are missing will be listed. At this point, you must obtain the required data from the input data server using check_input_data with the -export option.
The env_run.xml variables DIN_LOC_ROOT
and
DIN_LOC_ROOT_CLMFORC
determine where you should expect
input data to reside on local disk. See the input data variables.
If you want to use new user-created dataset(s) and give these
dataset(s) names that are different than the names in $DIN_LOC_ROOT
,
we recommend using the script link_dirtree in the directory
$CCSMROOT/scripts. link_dirtree creates a
virtual copy of the input data directory by linking one directory tree
to another. The full directory structure of the original directory is
duplicated and the files are linked. To use this script, use the -h optiion
for usage.
> cd $CCSMROOT/scripts > ./link_dirtree -h |
link_dirtree can be conveniently used to generate the equivalent of
a local copy of $DIN_LOC_ROOT
which can then be
populated with user-specified input datasets. For example, you can
first generate a virtual copy of $DIN_LOC_ROOT
in /user/home/newdata with the following command:
> link_dirtree $DIN_LOC_ROOT /user/home/newdata |
then incorporate the new dataset(s) directly into the appropriate directory in /user/home/newdata.
The script $CASEROOT/check_input_data determines
if the required data files for the case exist on local disk in the
appropriate subdirectory of $DIN_LOC_ROOT
. If any of the required
datasets do not exist locally, check_input_data
provides the capability for downloading them to the $DIN_LOC_ROOT
directory hierarchy via interaction with the input data server. You
can independently verify that the required data is present locally by
using the following commands:
> cd $CASEROOT > check_input_data -help > check_input_data -inputdata $DIN_LOC_ROOT -check |
If input data sets are missing, you must obtain the datasets from the input data server:
> cd $CASEROOT > check_input_data -inputdata $DIN_LOC_ROOT -export |
Required data files not on local disk will be downloaded through
interaction with the Subversion input data server. These will be
placed in the appropriate subdirectory of $DIN_LOC_ROOT
.
For what to expect when interacting with a Subversion repository, see
downloading input data.