Input Files
With all the software dependencies met, the final step to having a running modelling system is to port the input files and build the database that tracks them.
Input File Directory Tree
Due to the wide range of experiments that are ran with CanESM, along with its multiple
modelling realms (atmosphere, ocean, land, etc), there are many potential input files into
the model - ranging from reference restarts to forcing and geophysical input files. Fortunately,
porting these files are quite easy, although the exact method might depend on the specific platform
you are porting to.
Note
During initial testing, its okay to put this directory tree in a user space (assuming you have the storage available). However, once you plan on having this used by other users, you will need to put this in a group location that is readable by others.
Warning
Be sure to check the documentation for the platform you are using, or contact the sys-admins
to determine the preferred way to transfer large(r) files. Some systems discourage the direct
use of scp or rsync to/from headnodes, and many have specific data transfer guidance.
From Niagara
If starting from niagara, the location of the input file directory tree is at
/project/c/cp4c/cp4c/forcing_data
Simply bring this over to the new platform to get going.
From ECCC’s U2 Platform
If starting from ECCC’s u2 platform, the location of the input file directory tree is at
/space/hall5/sitestore/eccc/crd/ccrn/forcing
or
/space/hall6/sitestore/eccc/crd/ccrn/forcing
Simply bring one of these over to the new platform to get going.
Input File Database
Why a database?
A clever observer who has access to both ECCC’s u2 platform and DRAC’s
niagara might notice that the two platforms have a notably different
directory structure. This is because the CanESM input file system
currently relies on a sqlite database to track the location of files. For
example, if on a platform where the forcing database is stored
/path/to/forcing/file/database.db
A user could retrieve a file to their local working directory via
access local_name <filename>
provided their environment has:
DATAPATH_DBexported into their environment, pointint to/path/to/forcing/file/database.dbaccess(and supporting tools) on theirPATHvariable
(see below on setting up this environment)
Creating a new database
Instead of simply copying an existing database from another platform, you will need to BUILD a new database after copying the input file directory tree onto the new platform. See below for how to do this:
Transfer the input file tree to the platform - lets call the location
/path/to/new/input_file/treeGet the
CanESMsource repo - linkNote
The location/version of this repo doesn’t matter too much, but the version needs to have the following tools within the
CanESMrepo:savefdb
as they will be used as helper tools to build the database. For
CP4C, a safe bet is thev5.1_cp4cbranch.Find the required scripts in the
CanESMrepo and add their locations toPATHThese tools are likely under
/path/to/cloned/CanESM/CCCma_tools/scripts/subprocand/path/to/cloned/CanESM/CCCma_tools/scripts/comm, but if you can’t find them, you can make use offind /path/to/clone/CanESM -name "<TOOL_NAME>"to locate them. Once you have the absolute path, add them toPATHwith:export PATH=${PATH}:${loc1} # where loc1 is the absolute path to the directory containing save or access export PATH=${PATH}:${loc2} # and likewise for loc2
Tell the scripts where the input directory tree is:
This is done via the environment variable
RUNPATH_ROOT, so simply execute:export RUNPATH_ROOT=/path/to/new/input_file/tree
Define the path to the new desired database
This is done via the environment variable
DATPATH_DB, so simply execute:export DATAPATH_DB=/path/to/desired/database.db
Build the database!
This is done using the
fdbcommand, which callssaveunderneath it and uses the above noted environment variables. Simply execute:fdb update