GEOS-5 Checkout and Build Instructions (Fortuna): Difference between revisions
(16 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
These instructions presume checking out the PIESA group tag: '''AeroChem-Fortuna- | These instructions presume checking out the PIESA group tag: '''AeroChem-Fortuna-2_5-b23'''. | ||
== How to Check Out and Build the Code == | == How to Check Out and Build the Code == | ||
=== Find a place to store and build the code === | === Find a place to store and build the code === | ||
The GEOS-5 (AGCM) source code checks out at about | The GEOS-5 (AGCM) source code checks out at about 55 MB of space. Once compiled, the complete package is about 1.3 GB. Your home space on '''discover''' may not be sufficient for checking out and building the code. You should consider either 1) requesting a larger quota in your home space (call the tag x6-9120 and ask, telling them you are doing GEOS-5 development work) or 2) building in your (larger) nobackup space (recommended). But consider, ''nobackup'' is not backed up. So be careful... | ||
One strategy I like is to check the code out to my ''nobackup'' space, but then make symlink from him home space back to that. For example, if I have my code stored at $NOBACKUP/GEOSagcm, I would make a symlink in my home space to point to that like: | One strategy I like is to check the code out to my ''nobackup'' space, but then make symlink from him home space back to that. For example, if I have my code stored at $NOBACKUP/GEOSagcm, I would make a symlink in my home space to point to that like: | ||
Line 16: | Line 16: | ||
Here, $CVSROOT specifies the CVS repository we'll be getting the code from, DIRECTORY is the name of the directory you would like to create to hold the code, MODULENAME is the particular module (set of code) we'll be checking out, and TAGNAME is a particular version of that module. Let's fill in the blanks: | Here, $CVSROOT specifies the CVS repository we'll be getting the code from, DIRECTORY is the name of the directory you would like to create to hold the code, MODULENAME is the particular module (set of code) we'll be checking out, and TAGNAME is a particular version of that module. Let's fill in the blanks: | ||
% cvs -d :ext:pcolarco@ | % cvs -d :ext:pcolarco@cvsacldirect:/cvsroot/esma co -d GEOSagcm -r AeroChem-Fortuna-2_5-b23 Fortuna | ||
So our module is ''Fortuna'' and the tag is ''AeroChem-Fortuna- | So our module is ''Fortuna'' and the tag is ''AeroChem-Fortuna-2_5-b23''. The code will check-out to a newly created directory call ''GEOSagcm''. Note that I substituted the shortcut ''co'' for ''checkout'' in the above command. | ||
The above command is generally valid. You ought to be able to execute it and checkout some code. If you don't have your ''ssh keys'' setup on ''' | The above command is generally valid. You ought to be able to execute it and checkout some code. If you don't have your ''ssh keys'' setup on '''cvsacl''' then you should be prompted for your '''cvsacl''' password. The assumption here is that your username on '''cvsacl''' is the same as on the machine you are checking the code out on. | ||
Here's a short cut. So that you don't have to type in the ''-d :ext:pcolarco@ | Here's a short cut. So that you don't have to type in the ''-d :ext:pcolarco@cvsacldirect:/cvsroot/esma'' business all the time, you can add the following lines to your, e.g., ''.cshrc'' file: | ||
setenv CVSROOT ':ext:pcolarco@ | setenv CVSROOT ':ext:pcolarco@cvsacldirect:/cvsroot/esma' | ||
setenv CVS_RSH ssh | setenv CVS_RSH ssh | ||
Modify as appropriate to put in your username in or if you use a different shell (i.e., put the analog of these lines into your .bashrc file or whatever). Or if you are on a different machine than discover, the path to the ''' | Modify as appropriate to put in your username in or if you use a different shell (i.e., put the analog of these lines into your .bashrc file or whatever). Or if you are on a different machine than discover, the path to the '''cvsacl''' repository may be somewhat different. | ||
If you set that up, you should be able now to type in: | If you set that up, you should be able now to type in: | ||
% cvs co -d GEOSagcm -r AeroChem-Fortuna- | % cvs co -d GEOSagcm -r AeroChem-Fortuna-2_5-b23 Fortuna | ||
and the code will check out. | and the code will check out. | ||
Line 61: | Line 61: | ||
The code builds faster in this instance, but be warned that without optimization any generated code will run very slowly. | The code builds faster in this instance, but be warned that without optimization any generated code will run very slowly. | ||
''NOTE: I don't find the parallel build to actually work at this point, so if the following fails I suggest just doing a gmake install --ed.'' | |||
A better way is to do a parallel build. To do this, start an interactive queue (on '''discover'''): | A better way is to do a parallel build. To do this, start an interactive queue (on '''discover'''): | ||
Line 123: | Line 125: | ||
Enter the Lat/Lon Horizontal Resolution: IM JM | Enter the Lat/Lon Horizontal Resolution: IM JM | ||
or ..... the Cubed-Sphere Resolution: cNN | or ..... the Cubed-Sphere Resolution: cNN | ||
144 91 [Presumption is we're not doing cubed-sphere] | 144 91 <font color=red>[Presumption is we're not doing cubed-sphere]</font> | ||
Enter the Model Vertical Resolution: LM (Default: 72) | Enter the Model Vertical Resolution: LM (Default: 72) | ||
[Enter for default; <font color=red>have not tested alternative vertical resolutions</font>] | [Enter for default; <font color=red>have not tested alternative vertical resolutions</font>] | ||
Line 129: | Line 131: | ||
YES | YES | ||
Enter the GOCART Emission Files to use: "CMIP" (Default), "PIESA", or "OPS": | Enter the GOCART Emission Files to use: "CMIP" (Default), "PIESA", or "OPS": | ||
PIESA | PIESA <font color=red>[chooses AeroCom emissions]</font> | ||
Enter the AERO_PROVIDER: GOCART (Default) or PCHEM: | Enter the AERO_PROVIDER: GOCART (Default) or PCHEM: | ||
[Enter for default] | [Enter for default] | ||
Line 140: | Line 142: | ||
Current GROUPS: [List of groups you belong to] | Current GROUPS: [List of groups you belong to] | ||
[Choose group] | [Choose group] | ||
Upon completion, you will have two directories, the | Upon completion, you will have two directories, the HOME directory which is in your home space (something like ~/geos5/EXPID, where EXPID is the Experiment ID you named) and the EXP directory which is in your nobackup space. | ||
=== Setup the Experiment | === Setup the Experiment HOME Directory === | ||
Go to the | Go to the HOME directory. You need to edit a couple of files to get the experiment to run the way you want: | ||
'''AGCM.rc''' | '''AGCM.rc''' | ||
Line 198: | Line 200: | ||
'''CAP.rc''' | '''CAP.rc''' | ||
This file controls the timing of the model run. For example, you specify the END_DATE, the number of days to run per segment (JOB_SGMT) and the number of segments (NUM_SGMT). If you modify nothing else, the model would run until it reached END_DATE or had run for NUM_SGMT segments. Note that you might think that BEG_DATE specifies a beginning date for the model to run. It is set by default to BEG_DATE: 18910301 000000, which is probably before the period you want to simulate. The actual model start time is specified later when we set up your | This file controls the timing of the model run. For example, you specify the END_DATE, the number of days to run per segment (JOB_SGMT) and the number of segments (NUM_SGMT). If you modify nothing else, the model would run until it reached END_DATE or had run for NUM_SGMT segments. Note that you might think that BEG_DATE specifies a beginning date for the model to run. It is set by default to BEG_DATE: 18910301 000000, which is probably before the period you want to simulate. The actual model start time is specified later when we set up your EXP directory. | ||
'''gcm_run.j''' | '''gcm_run.j''' | ||
Line 226: | Line 228: | ||
This tag has successfully checked out, built, run, and archived results on NAS machine Pleiades. No modifications to scripts are needed, as the appropriate choices for that machine are handled in gcm_setup. | This tag has successfully checked out, built, run, and archived results on NAS machine Pleiades. No modifications to scripts are needed, as the appropriate choices for that machine are handled in gcm_setup. | ||
=== Setup the | === Setup the EXP directory === | ||
Now go to your | Now go to your EXP directory. | ||
You want to specify the model start time at this point. Create a file called ''cap_restart". The contents of the file should read: | |||
YYYYMMDD HHMMSS | |||
where you replace the strings above with the year-month-day and hour-minute-second of your desired model start time. For example: | |||
20071231 210000 | |||
You might want to edit the resource files in the RC sub-directory (e.g., '''GEOS_ChemGridComp.rc''' to turn on '''GOCART''' and '''Chem_Registry.rc''' to turn components on/off). | You might want to edit the resource files in the RC sub-directory (e.g., '''GEOS_ChemGridComp.rc''' to turn on '''GOCART''' and '''Chem_Registry.rc''' to turn components on/off). | ||
You also need some restarts to run the model. For Fortuna at "b" resolution you can copy a set (valid nominally at | You also need some restarts to run the model. For Fortuna at "b" resolution you can copy a set (valid nominally at 20071231) from /discover/nobackup/projects/gmao/iesa/aerosol/Data/restarts/Fortuna-2_5/b72/20071231/ (on pleiades: /nobackupp10/pcolarco/restart0/piesa/Fortuna-2_5/). You can just copy all the files *.rst into your experiment directory, but what I like to is make a "restart0" directory in my EXP directory and copy the files there, and then copy back up to the EXP directory. ***Note: For tags more recent than AeroChem-Fortuna-2_5-b7 bootstrap moist_import_rst by erasing this file from the restarts.*** | ||
=== Run the Simulation === | === Run the Simulation === | ||
At this point we're ready to take a crack at running the model. Go into your experiment | At this point we're ready to take a crack at running the model. Go into your experiment HOME directory. You can start the model job by issuing: | ||
% qsub gcm_run.j | % qsub gcm_run.j | ||
And check the progress by issuing: | And check the progress by issuing: | ||
% qstat | grep YOUR_USERNAME | % qstat | grep YOUR_USERNAME |