Frequently asked questions about GEOS-Chem

From Geos-chem
Jump to navigation Jump to search

On this page we shall answer some commonly asked questions about GEOS-Chem.

Basic information about GEOS-Chem

For new users

Science questions

Where can I find information about ...

Technical issues

Parallelization issues

GEOS-Chem HP ("high-performance")

NOTE: At present GEOS-Chem HP (aka GCHP) is still in the "alpha" stage of development. If you are interested in assisting with GEOS-Chem HP development, then please contact the GEOS-Chem HP working group.

--Bob Yantosca (talk) 15:24, 7 December 2016 (UTC)

Where can I get restart files for GEOS-Chem?

For GEOS-Chem v11-01 and higher versions

For instructions on how to obtain a set of sample restart files that you can use to spin up your own simulations, please see the Restart Files section of our GEOS-Chem basics wiki page.

--Bob Yantosca (talk) 16:24, 6 January 2017 (UTC)

Running GEOS-Chem

How long does GEOS-Chem take to run?

It depends on your particular computing environment. We have posted several timing results from GEOS-Chem 7-day time test simulations.

GEOS-Chem seems to be running too slowly. What can I do?

You should be aware of several compile-time options that will slow down GEOS-Chem. Use these options only for debugging, but not in your production runs.

Also, the following run-time options may also slow down GEOS-Chem:

"Normal" diagnostics (e.g. saved out to the ctm.bpch file)
The more diagnostic quantities you choose to archive, the more memory and disk I/O operations this will require.
"Timeseries" diagnostics (ND48, ND49, ND50, ND51, ND51b)
If you choose to archive many diagnostic quantities at hourly or bi-hourly intervals, then the increased memory and disk I/O usage can slow down GEOS-Chem.

To speed up GEOS-Chem, you can try to reduce the number of diagnostics that you are saving to disk.

Can I run two GEOS-Chem jobs simultaneously?

Timmy Francis wrote:

I would like to know if I can run more than one executables (.geos) by renaming them as .geos1, .geos2 etc. For example using the same restart file, I want to run two simulations, one 'with chemistry' and the other 'without chemistry' after make and rename the executables to geos1 and geos2 and run these in two terminals. Will they interfere with each other and affect the result?

Bob Yantosca replied:

I recommend creating separate run directories for each executable. You can place the identical restart file and input files into each run directory. Then in one run directory you can turn on chemistry in input.geos, and then in the other run directory, you turn off chemistry in input.geos. If you run the GEOS-Chem executables in two separate directories, you will ensure that one executable will not overwrite the files that the other executable creates.
In theory, you should be able to run two simultaneous GEOS-Chem executables in two separate run directories. However, I don't know much about your particular machine. You might find that there is not enough memory to run two simulations at the same time. That is not a problem with GEOS-Chem, but with your system (and is something that the GEOS-Chem Support Team wouldn't be able to help you with).
I would recommend talking with your local IT department to find out how much memory etc. is available to you, and if you would be able to run two simulations at the same time. I think a 4x5 full chemistry simulation takes 2-3 GB of memory, and a 2x2.5 simulation can take up to 8GB of memory.

GEOS-Chem errors

Please also see our Common GEOS-Chem error messages wiki page.

GEOS-Chem died with an error. What can I do?

First, you should try to understand the type of error that has occurred. There are several different classes of errors, such as:

  1. File I/O errors
  2. Abnormal exits
  3. Technical errors

Once you have understood the type of GEOS-Chem error that has occurred, you can take steps to fix it. In some cases, the fixes will be simple (i.e. selecting the proper option and starting over, or replacing missing or corrupted data files, etc.). In other cases, the error may be more difficult to diagnose (such as a convergence error in the chemical solver). In that case you may have to "dig in" to the code so that you can modify its behavior (e.g. modify convergence criteria, add error checks, etc.).

Try to isolate the error to a particular GEOS-Chem routine. You can use a debugger such as idb or Totalview, or you can turn on the ND70 debug printout option. (ND70 will print debug messages to the log file after key operations have been completed.) You may also try turning off operations (e.g. wet deposition, dry deposition, chemistry) one at a time in the input.geos file to isolate the error. Once you know where the error is occurring, try to print out values for a given grid box and tracer, either in the debugger or by adding PRINT statements to the code. You will gain great insight into what is happening by using this technique.

Try to determine if the error is persistent (i.e. if it always occurs at the same model time/date or if it occurs at different times and dates in the simulation). A persistent error could indicate a missing or corrupted data file, or a flaw in the scientific algorithm being used. Non-persistent errors (i.e. those that don't happen at the same model time and date) may indicate memory errors, such as array-out-of-bounds, segmentation faults, or that the code is using more memory than is available.

When you debug, we recommend that you recompile with the TRACEBACK=yes compiler option. This will print out the error stack, or list of routines that are called. The traceback output can often indicate where the error occurs.

If you still cannot determine the error from the traceback output, recompile with the BOUNDS=yes compiler option. This will check to see if an array is being accessed incorrectly

Please see our Common GEOS-Chem errors wiki page, which contains strategies for recognizing and fixing several commonly-encountered error conditions. If you still cannot determine the source of your error, please contact the GEOS-Chem Support Team and provide a detailed description of your error.

Where does GEOS-Chem error output get printed?

GEOS-Chem, like all Unix programs, sends its output to two streams:

  1. stdout
  2. stderr

The stdout stream

Most GEOS-Chem output will go to the stdout stream, which takes I/O from the Fortran WRITE and PRINT commands. If you run GEOS-Chem by just typing the executable name at the Unix prompt:

geos

then the stdout stream will be printed to the terminal window. You can also redirect the stdout stream to a log file with the Unix redirect command:

geos > log

We recommend that you create GEOS-Chem log files so that you can reexamine the output from your run at a later time.

Most GEOS-Chem errors will be printed to stdout (and hence, to the log file). Most errors flagged by GEOS-Chem use a standard error message format, such as:

==============================================================
GEOS-CHEM ERROR: No output scheduled on last day of run!
STOP at IS_LAST_DAY_GOOD ("input_mod.f")
==============================================================

The stderr stream

The stderr stream takes I/O from various Unix system commands, including exit. If your GEOS-Chem run died as a result of a system problem (i.e. you ran up against a system time or memory limit, you are over disk quota, etc.), then the error message will more than likely go to stderr instead of stdout. As a result, these error messages will not be printed to the GEOS-Chem log file output.

If you use a queue system then the stderr output may be printed to a file. For example, if you submit a GEOS-Chem job to the SGE queue system, and your job script is named run.geos, SGE will send the stderr output to a file named run.geos.oXXXXX (where XXXXX is the job ID #).

--Bob Y. 15:44, 8 November 2010 (EST)