Creating GEOS-Chem run directories

From Geos-chem
Revision as of 18:47, 19 March 2015 by Bmy (Talk | contribs) (Generating copies of run directories)

Jump to: navigation, search

On this page we show you how to use the GEOS-Chem Unit Tester to generate fresh copies of run directories for your GEOS-Chem simulations.

Downloading the GEOS-Chem unit tester

First, make sure that your system has these software packages installed. (Most of these come standard with your Unix-based operating system.)

Next, clone the GEOS-Chem unit tester package with the command:

git clone -b v10-01-public git:// UT

This will create a copy of the GEOS-Chem Unit Tester package in a directory named UT for short.

The option

-b v10-01-public

specifies which branch of the GEOS-Chem Unit Tester that you would like to download. Branches in the GEOS-Chem unit tester correspond to each internal version of GEOS-Chem (i.e. the states of the code for which we run 1-month benchmark simulations), as well as the publicly-released versions. Most likely, you will want to download the v10-01-public branch of the GEOS-Chem Unit Tester, which corresponds to the public release of GEOS-Chem v10-01.

--Bob Y. 13:36, 19 March 2015 (EDT)

Editing the CopyRunDirs.input file

Once you have downloaded the GEOS-Chem Unit Tester to your disk space, switch to the perl/ directory:

cd UT/perl

In this directory there is a Perl script named gcCopyRunDirs that you will use to generate fresh copies of GEOS-Chem run directories. This script uses an input file named CopyRunDirs.input, which is also located in the perl directory.

Your CopyRunDirs.input file will look like this:

#                  GEOS-Chem Global Chemical Transport Model                  !
# !DESCRIPTION: Input file that specifies configuration for creating and
#  copying a run directory from the UnitTester. 
#  Customize the run directory for your system by specifying these values:
#  -------------------------------------------------------------------
#  VERSION     : A tag used to identify this Unit Test (e.g. v10-01h)
#  DESCRIPTION : A short description of this file's run dir copy configuration
#  COPY_PATH   : Local path where run directory will be copied to
#  DATA_ROOT   : Root GEOS-Chem data directory
#  HEMCO_ROOT  : Root directory where HEMCO emissions data files are stored 
#  RUN_ROOT    : Unit test run directories are subdirectories of RUN_ROOT
#  RUN_DIR     : Individual unit test run directory path
#  PERL_DIR    : Unit Test perl script directory (i.e. this directory)
#  COPY_CMD    : Unix copy command with optional tags
#  18 Mar 2015 - R. Yantosca - Initial version
#  19 Mar 2015 - E. Lundgren - Simplify content for only copying run dirs
   VERSION     : v10-01h
   DESCRIPTION : Create run directory from UnitTest
   COPY_PATH   : /home/{USER}/GC/rundirs
   DATA_ROOT   : /as/data/geos/ExtData
   RUN_ROOT    : /home/{USER}/UT/runs
   PERL_DIR    : /home/{USER}/UT/perl
   COPY_CMD    : cp -rfL
# !RUNS:
#  Specify the debugging runs that you want to perform below.
#  You can deactivate runs by commenting them out with "#".
  geosfp   2x25        -      Hg           2013070100   2013070101   -
  geos5    2x25        -      Hg           2005070100   2005070101   -
  geosfp   4x5         -      fullchem     2013070100   2013070101   -
  geos4    4x5         -      Hg           2005070100   2005070101   -
  geos4    4x5         -      CH4          2005070100   2005070101   -
  geosfp   4x5         -      Hg           2013070100   2013070101   -
  geosfp   4x5         -      POPs         2013070100   2013070101   -

NOTE: Lines starting with a # character will be treated as comments.

The CopyRunDirs.input file has a layout that is very similar to the GEOS-Chem Unit Tester input files. (These are the files named UnitTest.input, etc.) Like the GEOS-Chem Unit Tester input files, CopyRunDirs.input is composed of an !INPUTS section and a !RUNS section, which are described below.

The INPUTS section

Under the !INPUTS: section, you can customize the directory paths and other options for your system. As seen above, most of these inputs are self-explanatory.

Option DescriptionMet field type
VERSION An ID tag that will be added to all log files and output files.
DESCRIPTION A short (1-sentence) description of what features are being validated by this unit test.
COPY_PATH Specifies the root directory on your disk server where copies of the GEOS-Chem run directories will be created.
DATA_ROOT Specifies the path for your root-level data directory.
HEMCO_ROOT Specifies the top-level path for the HEMCO data directory tree.
  • The {DATAROOT} token in HEMCO_ROOT will be replaced with the value you specify for RUN_ROOT option. Leave this as-is.
RUN_ROOT Specifies the top-level unit test run directories. Leave this as-is.
PERL_DIR Specifies the directory where the unit test Perl scripts are found.
  • Leave this as-is.
COPY_CMD Specifies the command used to copy run directories from the GEOS-Chem Unit Tester to COPY_PATH.
  • The default setting is cp -rfL. This will create a new copy of the directory, even if the prior copy exists.
  • The -L option to the cp will create "hard" copies of files that are symbolica links. This command may differ slightly depending ont he flavor of your Unix-based Operating system.

--Bob Y. 14:20, 19 March 2015 (EDT)

The RUNS section

The layout of the !RUNS section is identical to The !RUNS section in the GEOS-Chem Unit Tester input files. This allows you to copy and paste text from one or more GEOS-Chem Unit Tester input files into CopyRunDirs.input.

For example, the following line:

# !RUNS:
#  Specify the debugging runs that you want to perform below.
#  You can deactivate runs by commenting them out with "#".
  geosfp   2x25        -      Hg           2013070100   2013070101   -

will tell the gcCopyRunDirs script to create a run directory for a GEOS-Chem simulation using:

You can add as many entries to the !RUNS section as you wish. Simply cut and paste from one of the existing GEOS-Chem Unit Test input files (these are usually named UnitTest.input, etc.).

Generating copies of run directories

Once you have edited the CopyRunDirs.input script to your liking, you can use that to generate fresh copies of GEOS-Chem run directories. Make sure you are in the perl directory, and then type:


If you do not pass a file name to gcCopyRunDirs a file name, the gcCopyRunDirs script will use the CopyRunDirs.input file that you just created.

If you wish, you can create many customized copies of CopyRunDirs.input. For example:

cp CopyRunDirs.input CopyRunDirs.Hg   # Input file set up to only copy the Hg run directories
gcCopyRunDirs CopyRunDirs.Hg                 

Executing gcCopyRunDirs will create a new GEOS-Chem run directory for each entry that you made in the input file. Run directories will be created as subdirectories of !COPY_PATH.

Let's examine the contents of of a sample geosfp_2x25_Hg run directory. Issue the following commands:

cd ~GC/rundirs/geosfp_2x25_Hg   # Change to geosfp_2x25_Hg run dir
make fileclean                  # Remove any files left over from previous unit test runs

ls -l                           # Get detailed directory listing

And you will see get this directory listing:

-rw-r--r-- 1 bmy bmy   17137 2015-03-18 16:18 HEMCO_Config.rc
-rw-r--r-- 1 bmy bmy   17116 2015-03-18 16:18 HEMCO_Config.template
-rw-r--r-- 1 bmy bmy    4568 2015-03-18 16:18 Makefile
-rwxr-xr-x 1 bmy bmy    1458 2015-03-18 16:18*
-rwxr-xr-x 1 bmy bmy    1374 2015-03-18 16:18*
-rw-r--r-- 1 bmy bmy 7391476 2015-03-18 16:18 initial_trac_rst.geosfp_2x25_Hg
-rw-r--r-- 1 bmy bmy   12082 2015-03-18 16:20 input.geos
-rw-r--r-- 1 bmy bmy   12060 2015-03-18 16:18 input.geos.template
-rw-r--r-- 1 bmy bmy  210712 2015-03-18 16:18 ocean_rst.geosfp_2x25_Hg.201307010000

NOTE: Run directories for other simulations may contain other files not pictured here.

The input.geos and HEMCO_Config.rc files have been customized for this particular simulation. They were created from the corresponding template files input.geos.template and HEMCO_Config.template. The template files are otherwise not used.

The Perl scripts and pass the starting and ending dates of the simulation, as specified in the input.geos file, to the Makefile.

--Bob Y. 14:24, 19 March 2015 (EDT)

Compiling GEOS-Chem