Downloading GEOS-Chem source code

From Geos-chem
Jump to: navigation, search

Previous | Next | Getting Started with GEOS-Chem

  1. Minimum system requirements
  2. Downloading source code
  3. Downloading data directories
  4. Creating run directories
  5. Configuring runs
  6. Compiling
  7. Running
  8. Output files
  9. Visualizing and processing output
  10. Coding and debugging
  11. Further reading


Overview

The GEOS-Chem source code is maintained on Github.com at https://github.com/geoschem/geos-chem. All official GEOS-Chem releases shall originate from that Git repository.

We also recommend that you view our video tutorial Getting Started with GEOS-Chem.

Download GEOS-Chem

You can download the latest stable version of GEOS-Chem by typing the following at the command line:

 git clone https://github.com/geoschem/geos-chem Code.X.Y.Z

This will create an exact copy (or clone) of the official GEOS-Chem repository to your local disk space in a directory named Code.X.Y.Z. You may name the code directory whatever you like, but we recommend using the version number (i.e. X.Y.Z) in the code directory name. For more information on the meaning of X.Y.Z, see our GEOS-Chem version numbering system page.

Note for advanced users

If you plan on developing GEOS-Chem updates to submit for inclusion in the standard model we recommend that you fork the repository on Github and clone it from your own account. You can then make a pull request when you are ready to submit updates to the GEOS-Chem Support Team. See these instructions for more information.

Choosing a different version

When you clone GEOS-Chem you will always get the master branch. This is the current stable version of GEOS-Chem. You can determine the version label by typing git log --decorate within each repository and looking at the git tag string printed for the top-most commit.

Example output of git log. Notice tag name at top indicating what version this is.

If you would like an earlier version you can checkout the version tag for that specific version. To see a list of available tags for a repository type git tag. To checkout a tagged version type git -b NewBranch checkout tags/tagname, where NewBranch can be a name of your choosing.

You can download as many copies of the GEOS-Chem source code as you wish. For example, you might want to keep a clean source code directory and then have one or more source code directories that you use for development or debugging. Alternatively, you may use Git version control to keep all of your work in different branches of a single clone of the repository.

Code directory structure

The table below lists the directory structure in GEOS-Chem 12 along with descriptions of each subdirectory and its Makefile (if one is present).

Directory Description Is there a Makefile here?
Code Main-level directory for GEOS-Chem Yes, there are two:
  • Makefile is the main-level router makefile and it calls down to the makefile in GeosCore.
  • Makefile_header.mk defines compilation and linking commands for the Fortran-90 compilers. These commands are common to the makefiles in all subdirectories.
Code/GTMM Directory containing source code files for the Global Terrestrial Mercury Model (GTMM) simulation Yes, it compiles the code in GTMM and creates library file lib/libHg.a
Code/GeosCore Directory containing most GEOS-Chem modules and routines Yes, this is the main makefile for GEOS-Chem. It calls down to the makefiles in the other subdirectories. It then compiles the code in the GeosCore directory and creates the geos executable.
Code/GeosRad Directory containing source code files for the RRTMG radiative transfer model Yes, it compiles the code in GeosRad and creates library file lib/librad.a.
Code/GeosUtil Directory containing GEOS-Chem utility modules Yes, it compiles the code in GeosUtil and creates library file lib/libGeosUtil.a.
Code/HEMCO Main-level directory for HEMCO Yes, it calls down to the makefiles in the other HEMCO subdirectories.
Code/HEMCO/Core Directory containing HEMCO modules and routines for reading, storing, and updating data used for calculating emissions Yes, it compiles the code in HEMCO/Core and creates library file lib/libHCO.a.
Code/HEMCO/Extensions Directory containing HEMCO modules and routines for calculating emissions that depend on meteorological input variables and/or non-linear parameterizations Yes, it compiles the code in HEMCO/Extensions and creates library file lib/libHCOX.a.
Code/HEMCO/Interfaces Directory containing HEMCO modules and routines that provide the link between HEMCO and the model environment Yes, it compiles the code in HEMCO/Interfaces and creates library file lib/libHCOI.a.
Code/Headers Directory containing module files with fixed parameters and derived-type definitions
  • NOTE: In previous versions, these files were header files that were inlined via the #include statement. These have since been converted to F90 modules in order to facilitate GEOS-Chem HP development.
Yes, it compiles the code in Headers and creates library file lib/libHeaders.a
Code/History Directory containing module files to archive diagnostics from GEOS-Chem "Classic" simulations to netCDF file format Yes, it compiles the code in History and creates library file lib/libHistory.a
Code/ISORROPIA Directory containing the unmodified ISORROPIA II source code files from Thanos Nenes and Havala Pye:
  • isoropiaII_main_mod.F
Yes, it compiles the code in ISOROPIA and creates library file lib/libIsoropia.a.
Code/KPP Main-level directory for the KPP chemical solver Yes, it calls down to the makefiles in the other KPP subdirectories.
Code/KPP/Custom Directory containing KPP source code files for the Standard chemistry mechanism Yes, if you compile with CHEM=customit compiles the code in KPP/Custom and creates library file lib/libKpp.a.
Code/KPP/int Directory containing the integrators (rosenbrock, runge-kutta, lsodes, etc.) for KPP No
Code/KPP/Standard Directory containing KPP source code files for the Standard chemistry mechanism Yes, it compiles the code in KPP/Standard and creates library file lib/libKpp.a.
Code/KPP/Tropchem Directory containing KPP source code files for the Troposphere-only mechanism Yes, it compiles the code in KPP/Tropchem and creates library file lib/libKpp.a.
Code/KPP/SOA_SVPOA Directory containing KPP source code files for the SOA or SOA_SVPOA chemistry mechanisms. Yes, it compiles the code in KPP/SOA_SVPOA and creates library file lib/libKpp.a.
Code/NcdfUtil Directory containing source code files for netCDF I/O. This code is from Bob Yantosca's NcdfUtilities package Yes, it compiles the code in NcdfUtil and creates library file lib/libNcUtils.a.
Code/NcdfUtil/perl Directory containing perl scripts from the NcdfUtilities package that can be used to generate Fortran code for defining, writing, and reading a netCDF file No
Code/ObsPack Directory containing the ObsPack diagnostic code. Yes, it compiles the code in ObsPack and creates the library file libObsPack.a
Code/bin Directory where executable (geos, geostomas) files will be sent No
Code/doc Directory where automatic documentation is built Yes, it calls the ProTeX script to create reference manuals (in PS and PDF formats) from the comments in GEOS-Chem module and routine headers.
Code/help Directory containing GEOS-Chem help screen Yes, it prints the GEOS-Chem help screen to stdout
Code/lib Directory where library (*.a) files will be created No
Code/mod Directory where module (*.mod) files will be sent No

Further reading



Previous | Next | Getting Started with GEOS-Chem