Checking Out and Running a One-Day Run
Method for Checking Out GEOS-5 GCM
1. Set up CVSROOT
a. On Discover and NAS: CVSROOT=:ext:$USER@cvsacldirect:/cvsroot/esma b. Elsewhere: CVSROOT=:ext:$USER@ctunnel:/cvsroot/esma
using the scheme at: https://progress.nccs.nasa.gov/trac/admin/wiki/CVSACL
2. Check out the model
a. Make the directory in which you wish to checkout the model $ mkdir Ganymed-2_0_UNSTABLE $ cd Ganymed-2_0_UNSTABLE/
b. Run:
$ cvs co -r Ganymed-2_0_UNSTABLE Ganymed
In general:
$ cvs co -r <Tag Name> <Module Name>
where <Tag Name> is the tag for the model to check out (e.g., Ganymed-2_0_UNSTABLE, Fortuna-2_5_p6) and <Module Name> is the module (e.g., Ganymed, Fortuna).
3. Install the model
a. Go into the src/ directory of your model. Following above:
$ cd Ganymed-2_0_UNSTABLE/GEOSagcm/src
b. Source g5_modules
$ source g5_modules
b. To build the model one of two choices
1. Use the parallel_build.csh script to submit a PBS job that compiles the model.
2. Interactively build the model using:
$ gmake install
a. If you wish to capture the install log, we recommend tee'ing the output to a file:
$ gmake install |& tee make.install.log (on tcsh) $ gmake install 2>&1 | tee make.install.log (on bash)
b. Note you can also build in parallel interactively with:
$ gmake -jN install |& tee make.install.log (on tcsh)
where N is the number of parallel processes. For best performance, N should be, say, 2 less than the number of cores. So, on a Westmere node, use 10.
4. Run the model
a. Go into the model application directory and run the setup script:
$ cd Ganymed-2_0_UNSTABLE/GEOSagcm/src/Applications/GEOSgcm_App $ ./gcm_setup
5. Run a one-day test
a. Copy set of restarts to model directory
<link to location of sample rsts?>
a. In model test directory edit: 1. CAP.rc: JOB_SGMT should be 1 day (00000001 000000) NUM_SGMT should be 1
2. gcm_run.j: Insert "exit" after:
$RUN_CMD $NPES ./GEOSgcm.x
set rc = $status echo Status = $rc
3. Compare to a "correct" run by using cmpscratch
a. If all success, runs are bit-identical
b. If not => "What is correct?"