Fortuna 2.4 User's Guide
This page describes in detail how to set up and optimize a global model run of GEOS-5 Fortuna 2.4 on NCCS discover and NAS pleiades and generally make the model do what you want. It assumes that you have already run the model as described in Fortuna 2.4 Quick Start.
Compiling the Model
Most of the time for longer runs you will be using a release version of the model, perhaps compiled with a different version of one or more of the model's gridded components, defined by subdirectories in the source code. This process starts with checking out the stock model from the repository using the command
cvs co -r TAGNAME -d DIRECTORY Fortuna
where TAGNAME is the model "tag" (version). A tag in cvs
marks the various versions of the source files in the repository that together make up a particular version of the model. A sample release tag is Fortuna-2_4_p2
, indicating the version Fortuna 2.4 patch 2. DIRECTORY is the directory that the source code tree will be created. If you are using a stock model tag it is reasonable to name the directory the same as the tag. This directory determines which model in presumably your space a particular experiment is using. Some scripts use the environment variable ESMADIR
, which should be set to the absolute (full) pathname of this directory.
When a modified version of some component of the model is saved to the repository, the tag it uses -- different from the standard model tag -- is supposed to be applied at most only to the directories with modified files. This means that if you need to use some variant tag of a gridded component, you will have to cd
to that directory and update to the variant tag. So, for example, if you needed to apply updates to the SatSim gridded component, you would have to cd
several levels down to the directory GEOSsatsim_GridComp
and run
cvs upd -r VARIANT_TAGNAME
The source code will then incorporate the tag's modifications.
Once the checkout from the repository is completed, you are ready to compile. cd
to the src
directory at the top of the source code directory tree and from a csh
shell run source g5_modules
. This will load the appropriate modules and create the necessary environment for compiling and running. It is tailored to the individual systems that GEOS-5 usually runs on, so it probably won't work elsewhere. After that you can run make install
, which will create the necessary executables in the directory ARCH/bin
, where ARCH is the local architecture (most often Linux
).
Setting up a Global Model Run
The setup script for global runs, gcm_setup
, is in the directory src/Applications/GEOSgcm_App
. The following is an example of a session with the setup script, with commentary. :
Enter the Experiment ID:
thingy432
fasd
Enter a 1-line Experiment Description: thi si s test if something Enter the Lat/Lon Horizontal Resolution: IM JM or ..... the Cubed-Sphere Resolution: cNN 144 91 Enter the Model Vertical Resolution: LM (Default: 72) Do you wish to run GOCART? (Default: NO or FALSE) y Enter the GOCART Emission Files to use: "CMIP" (Default), "PIESA", or "OPS": Enter the AERO_PROVIDER: GOCART (Default) or PCHEM: Enter the tag or directory (/filename) of the HISTORY.AGCM.rc.tmpl to use (To use HISTORY.AGCM.rc.tmpl from current build, Type: Current ) ------------------------------------------------------------------------- Hit ENTER to use Default Tag/Location: (Fortuna-2_4) This U.S. Government resource is for authorized users only. By accessing this system you are consenting to complete monitoring with no expectation of privacy. Unauthorized access or use may subject you to disciplinary action and criminal prosecution. =================================================================== Checking out HISTORY.AGCM.rc.tmpl RCS: /cvsroot/esma/esma/src/Applications/GEOSgcm/Application/HISTORY.AGCM.rc.tmpl,v VERS: 1.16.2.3 *************** Enter Desired Location for HOME Directory (to contain scripts and RC files) Hit ENTER to use Default Location: ---------------------------------- Default: /discover/nobackup/aeichman/thingy432 Enter Desired Location for EXP Directory (to contain model output and restart files) Hit ENTER to use Default Location: ---------------------------------- Default: /discover/nobackup/aeichman/thingy432 Enter Location for Build directory containing: src/ Linux/ etc... Hit ENTER to use Default Location: ---------------------------------- Default: /discover/nobackup/aeichman/Fortuna-2_4 Current GROUPS: g0620 Enter your GROUP ID for Current EXP: (Default: g0620) ----------------------------------- building file list ... done GEOSgcm.x sent 50117242 bytes received 42 bytes 33411522.67 bytes/sec total size is 50110997 speedup is 1.00 Creating gcm_run.j for Experiment thingy432 ... Creating gcm_post.j for Experiment thingy432 ... Creating gcm_plot.j for Experiment thingy432 ... Creating gcm_archive.j for Experiment thingy432 ... Creating gcm_regress.j for Experiment thingy432 ... Creating AGCM.rc for Experiment thingy432 ... Creating CAP.rc for Experiment thingy432 ... Creating HISTORY.rc for Experiment thingy432 ... Done! ----- Build Directory: /discover/nobackup/aeichman/Fortuna-2_4 ---------------- The following executable has been placed in your Experiment Directory: ---------------------------------------------------------------------- /discover/nobackup/aeichman/Fortuna-2_4/Linux/bin/GEOSgcm.x You must now copy your AGCM Initial Conditions into: ---------------------------------------------------- /discover/nobackup/aeichman/thingy432
(remind to use gcm_setup when copying runs)
gocart branch
What Happens during a Run
Optimizing a Run
Trimming plot verification datasets
Troubleshooting
post recover
Special Requirements
Perpetual ("Groundhog Day") mode
Saving restarts during a segment
post.rc
How to Obtain GEOS-5 and Compile Source Code
There are two options for obtaining the model source code: from the CVS repository on the NCCS progress server, and from the SVN "public" repository on the trac server. Since the code on progress is more current, elgible users are strongly encouraged to obtain accounts from NCCS and use the progress repository.
Using the NCCS progress CVS code repository
The following assumes that you know your way around Unix, have successfully logged into your cluster account and have an account on the source code repository with the proper ssh
configuration -- see the progress repository quick start: https://progress.nccs.nasa.gov/trac/admin/wiki/CVSACL. The link requires your NCCS username and password.
The commands below assume that your shell is csh
. Since the scripts to build and run GEOS-5 tend to be written in the same, you shouldn't bother trying to import too much into an alternative shell. If you prefer a different shell, it is easiest just to open a csh
process to build the model and your experiment.
Furthermore, model builds should be created in your space under /discover/nobackup
, as creating them under your home directory will quickly wipe out your disk quota.
Set the following three environment variables:
setenv CVS_RSH ssh setenv CVSROOT :ext:USERID@cvsacl:/cvsroot/esma
where USERID is, of course, your repository username, which should be the same as your NASA and NCCS username. Then, issue the command:
cvs co -r Fortuna-2_4 Fortuna
This should check out the latest stable version of the model from the repository and create a directory called GEOSagcm
.
Compiling the Model
cd
into GEOSagcm/src
and source
the file called g5_modules
:
source g5_modules
This will set up the build environment. If you then type
module list
you should see:
Currently Loaded Modulefiles: 1) comp/intel-11.0.083 2) mpi/impi-3.2.2.006 3) lib/mkl-10.0.3.020
If this all worked, then type:
gmake install
This will build the model. It will take about 40 minutes. If this works, it should create a directory under GEOSagcm
called Linux/bin
. In here you should find the executable: GEOSgcm.x
.
Running GEOS-5
First of all, to run jobs on the cluster you will need to set up passwordless ssh
(which operates within the cluster). To do so, run the following from your discover home directory:
cd .ssh ssh-keygen -t dsa cat id_dsa.pub >> authorized_keys
Similarly, transferring the daily output files (in monthly tarballs) requires passwordless authentication from discover to dirac. While in ~/.ssh
on discover, run
ssh-keygen -t dsa
Then, log into dirac and cut and paste the contents of the id_rsa.pub
and id_dsa.pub
files on discover into the ~/.ssh/authorized_keys
file on dirac. Problems with ssh
should be referred to NCCS support.
To set the model up to run, in the GEOSagcm/src/Applications/GEOSgcm_App
directory we run:
gcm_setup
The gcm_setup
script asks you a few questions such as an experiment name (with no spaces, called EXPID) and description (spaces ok). It will also ask you for the model resolution, expecting one of the available lat-lon domain sizes, the dimensions separated by a space. For your first time out you will probably want to enter 144 91
(corresponding to ~2 degree resolution). Towards the end it will ask you for a group ID -- the default is g0602 (GMAO modeling group). Enter whatever is appropriate, as necessary. The rest of the questions provide defaults which will be suitable for now, so just press enter for these.
The script produces an experiment directory (EXPDIR) in your space as /discover/nobackup/USERID/EXPID
, which contains, among other things, the sub-directories:
post
(containing the incomplete post-processing job script and .rc file)archive
(containing an incomplete archiving job script)plot
(containing an incomplete plotting job script and .rc file)
The post-processing script will complete (i.e., add necessary commands to) the archiving and plotting scripts as it runs. The setup script that you ran also creates an experiment home directory (HOMEDIR) as ~USERID/geos5/EXPID
containing the run scripts and GEOS resource (.rc
) files.
The run scripts need some more environment variables -- here are the minimum contents of a .cshrc
:
umask 022 unlimit limit stacksize unlimited set arch = `uname` setenv LD_LIBRARY_PATH ${LIBRARY_PATH}:${BASEDIR}/${arch}/lib
The umask 022
is not strictly necessary, but it will make the various files readable to others, which will facilitate data sharing and user support. Your home directory ~USERID
is also inaccessible to others by default; running chmod 755 ~
is helpful.
Copy the restart (initial condition) files and associated cap_restart
into EXPDIR. Keep the "originals" handy since if the job stumbles early in the run it might stop after having renamed them. The model expects restart filenames to end in "rst" but produces them with the date and time appended, so you may have to rename them. The cap_restart
file is simply one line of text with the date of the restart files in the format YYYYMMDD<space>HHMMSS. The boundary conditions/forcings are provided by symbolic links created by the run script.
If you need an arbitrary set of restarts, you can copy them from /archive/u/aeichman/restarts/Fortuna-2_4/
, where they are indexed by date and resolution.
The script you submit, gcm_run.j
, is in HOMEDIR. It should be ready to go as is. The parameter END_DATE in CAP.rc
(previously in gcm_run.j
) can be set to the date you want the run to stop. An alternative way to stop the run is by commenting out the line if ( $capdate < $enddate ) qsub $HOMDIR/gcm_run.j
at the end of the script, which will prevent the script from being resubmitted, or rename the script file. You may eventually want to tune parameters in the CAP.rc
file JOB_SGMT (the number of days per segment, the interval between saving restarts) and NUM_SGMT (the number of segments attempted in a job) to maximize your run time.
Submit the job with qsub gcm_run.j
. You can keep track of it with qstat
or qstat | grep USERID
, or follow stdout with tail -f /discover/pbs_spool/JOBID.OU
, JOBID being returned by qsub
and displayed with qstat
. Jobs can be killed with qdel JOBID
. The standard out and standard error will be delivered as files to the working directory at the time you submitted the job.
Output and Plots
During a normal run, the gcm_run.j
script will run the model for the segment length (current default is 8 days). The model creates output files (with an nc4
extension), also called collections (of output variables), in EXPDIR/scratch
directory. After each segment, the script moves the output to the EXPDIR/holding
and spawns a post-processing batch job which partitions and moves the output files within the holding
directory to their own distinct collection directory, which is again partitioned into the appropriate year and month. The post processing script then checks to
see if a full month of data is present. If not, the post-processing job ends. If there is a full month, the script will then run the time-averaging executable to produce a monthly mean file in EXPDIR/geos_gcm_*
. The post-processing script then spawns a new batch job which will archive the data onto the mass-storage drives (/archive/u/USERID/GEOS5.0/EXPID
).
If a monthly average file was made, the post-processing script will also
check to see if it should spawn a plot job. Currently, our criteria for
plotting are: 1) if the month created was February or August, AND
2) there are at least 3 monthly average files, then a plotting job for
the seasons DJF or JJA will be issued. The plots are created as gifs in EXPDIR/plots_CLIM
.
The post-processing script can be found in:
GEOSagcm/src/GMAO_Shared/GEOS_Util/post/gcmpost.script
. The nc4
output files can be opened and plotted with gradsnc4
-- see http://www.iges.org/grads/gadoc/tutorial.html for a tutorial, but use sdfopen
instead of open
.
The contents of the output files (including which variables get saved) may be configured in the HOMEDIR/HISTORY.rc
-- a good description of this file may be found at http://modelingguru.nasa.gov/clearspace/docs/DOC-1190 .