GEOS-Chem welcome letter for new users
Welcome to the GEOS-Chem user community! Here is a quick guide to getting started:
Also be sure to see our new GEOS-Chem tutorials section!
- 1 GEOS-Chem Support Team
- 2 Expectations and Responsibilities for GEOS-Chem users
- 3 What you need to run GEOS-Chem
- 4 Where you can find GEOS-Chem documentation
- 5 GEOS-Chem coding
- 6 GEOS-Chem debugging
GEOS-Chem Support Team
The GEOS-Chem Support Team currently consists of Bob Yantosca, Michael Long, Melissa Payer Sulprizio, Sajeev Philip, Lizzie Lundgren, Matthew Yannetti, and Yanko Davila. They are responsible for developing and maintaining the GEOS-Chem and GEOS-Chem Adjoint codes for the user community. They may be reached by email at geos-chem-support [at] as.harvard.edu.
Expectations and Responsibilities for GEOS-Chem users
The following sections describe the responsibilities that we expect from each GEOS-Chem user. Please also see our GEOS-Chem overview page, which lists some additional information for new GEOS-Chem users.
Required hardware and software
We expect that each GEOS-Chem user (or user group, if there are several users at an institution) will have the required hardware and software available to run GEOS-Chem. If you are not sure what hardware or software is available to you, then please check with your local IT department.
Computer language proficiency
We expect that each GEOS-Chem user will possess at least some familiarity with the following:
- The Fortran programming language (F77 OK, F90 preferred)
- IDL (preferred), or other graphics software (e.g. Splus, Matlab)
- The Unix environment (i.e. commands, file paths, etc.)
- Unix scripts (not strictly required but is very helpful to know!)
- How version control works
While we cannot provide you with general instruction in programming languages or answer general programming questions, we invite you to view the list of tutorials and other relevant resources listed on our GEOS-Chem basics page. We also invite you to read our document on User Resources, Code Development Guidelines, and Debugging Tips.
Being a member of the GEOS-Chem community
We ask that all new GEOS-Chem user groups submit a short research blurb (1 paragraph) about how you plan to use GEOS-Chem in your research. We will add this to our GEOS-Chem People and Projects web page. Please send your research blurb to the GEOS-Chem Support Team.
We also ask that each GEOS-Chem user join the Working Group that is most relevant to his/her area of research. The Working Groups are meant to foster communication and information sharing between GEOS-Chem users, as well as to identify priorities for model development to the GEOS-Chem Steering Committee. Please introduce yourself to the Working Group Chairperson)s) and sign up for the relevant email list(s).
Each GEOS-Chem user is expected to adhere to our list of best practices. In particular, if you should discover a problem (e.g. bugs, missing files, numerical issues, etc.), please bring that to the attention of the GEOS-Chem support team right away. Other GEOS-Chem users will most certainly benefit from your discovery!
Please consider reporting your timing results from the 1-month benchmark simulation to the GEOS-Chem Support Team. This will allow us to keep a list of how the model is performing across several different platform/compiler combinations.
Subscribing to the GEOS-Chem email lists
We use several GEOS-Chem email lists to share information among the user community:
- We send information about new GEOS-Chem releases, bug fixes, and other notices of importance to the the GEOS-Chem "general" email list (email@example.com)
- Each GEOS-Chem Working Group uses its own email list to exchange information between group members.
We invite you to join the Working Group that is most appropriate to your research, and to subscribe to the relevant email list. Consider joining more than one Working Group (and email list) if your research spans several topics.
For complete instructions on how to subscribe to (or unsubscribe from) the GEOS-Chem email lists, please see our Subscribing to the GEOS-Chem email lists wiki page.
Participating in GEOS-Chem code development
As a member of the GEOS-Chem user community, we expect that you will submit your mature code revisions to the GEOS-Chem Support Team so that they can be included in a future release of GEOS-Chem. We invite you to read our GEOS-Chem code development cycle wiki page for more information about the process.
For more detailed information about coding and debugging, see below.
What you need to run GEOS-Chem
Before getting started with GEOS-Chem, please take a moment to read this list of prerequisites on our GEOS-Chem basics wiki page. This is a list of items that you will have to have on your computer system before in order to run GEOS-Chem.
Where you can find GEOS-Chem documentation
We invite you to read our summary of GEOS-Chem documentation on our GEOS-Chem basics wiki page. This table lists topics that can be found on the GEOS-Chem web and wiki pages.
As a new GEOS-Chem user, you will more than likely be adding your own modifications to GEOS-Chem. The following sections contain some helpful hints pertaining to source code style and management.
In order to improve the readibility and appearance of the GEOS-Chem source code, we ask all users to conform to the GEOS-Chem Style Guide. The readability of your code can be greatly enhanced by simple steps, like adding white space between words and by indenting DO loops and IF statements.
The more comments, the better!
It is good practice to add copious comments to your source code. This will make sure that current and future GEOS-Chem users will be able to understand the modifications that you have added.
Keep in mind that many GEOS-Chem users (including the GEOS-Chem Support Team) will probably not be as familiar with your specific area of research as you are. While most users will probably get the "big picture" of what you are doing, they will be less knowledgeable about the little details (i.e. why does this reaction rate have a value of X, why is this parameter set to Y, why was this IF statement deleted, etc.). Providing sufficient source code documentation will eliminate any such guesswork.
Automatic documentation with ProTeX
Protex is a useful Perl script that can strip information from a standard Fortran document header and save that to a LaTeX file. The LaTeX file can then be converted into both PostScript and PDF output. (Protex was developed at the Goddard Space Flight Center by Arlindo Da Silva, Will Sawyer, and others.)
Since GEOS-Chem v8-01-03, the GEOS-Chem Support Team has been actively replacing the older GEOS-Chem source code documentation with ProTeX documentation headers. This will allow a "GEOS-Chem Reference Manual" (i.e. a list of all GEOS-Chem routines and their inputs and outputs) to be generated automatically when you invoke the make doc Makefile option.
For more information, please see:
- GEOS-Chem wiki: Automatic documentation with protex
- GEOS-Chem User's Guide: A7.2 Headers, declarations, indentations, and white space
Get familiar with Git
We use the Git source code management software to facilitate the version control for GEOS-Chem. Git allows us to easily merge and track codes from GEOS-Chem developers into the "mainline" standard source code repository.
When submitting source code updates for GEOS-Chem, we ask that you send us your update in Git-ready form.
For more information about Git, please see the following pages:
Please see our wiki page on tips and tricks for debugging GEOS-Chem. We expect all GEOS-Chem users to be proactive in debugging. Please try to do everything possible to solve your problem before contacting the GEOS-Chem Support Team.
If you have access to a debugger such as Totalview, this may help you to diagnose your problem. Ask your local IT department if you have a debugger installed at your location.
GEOS-Chem Unit Tester
We have a new tool that you can use to help find many common numerical errors and programming issues. The GEOS-Chem Unit Tester is an external package that can run several test GEOS-Chem simulations with a set of very strict debugging options. The debugging options are designed to detect issues such as floating-point math errors, array-out-of-bounds errors, inefficient subroutine calls, and parallelization errors.
For complete instructions on how the GEOS-Chem Unit Tester can assist your debugging efforts, please see our Debugging with the GEOS-Chem unit tester wiki page.
--Bob Y. 09:56, 17 January 2014 (EST)
Reporting GEOS-Chem bugs and problems
If you have tried to solve your code problem but cannot, then please report it to the GEOS-Chem Support Team. Please include the following information:
|GEOS-Chem Version Number||(e.g. v10-01)|
|Met field type||(e.g. GEOS-4, GEOS-5, GCAP, GEOS-FP, MERRA)|
|Horizontal Resolution||(e.g. 4° x 5°, 2° x 2.5°, 0.5° x 0.666°, 0.25° x 0.3125°)|
|Type of Simulation||(e.g. full-chemistry, Hg, Tagged CO, etc. )|
|Platform & OS||(e.g. CentOS, MacOS, etc.)|
|Compiler||(e.g. IFORT, PGI ...)|
|Number of Processors|
|Diagnostics Requested||(e.g. ND28, ND43, ND45, etc.)|
|Description of problem|
also, please attach a copy of the log file from the simulation. It is very difficult for us to diagnose the problem without seeing the log file output.