Downloading GEOS-Chem source code
- Minimum system requirements
- Downloading source code
- Downloading data directories
- Creating run directories
- Configuring runs
- Output files
- Visualizing and processing output
- Coding and debugging
- Further reading
We also recommend that you view our video tutorial Getting Started with 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.
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:
|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
||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:
||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|