Difference between revisions of "GEOS-Chem directory structure"

From Geos-chem
Jump to: navigation, search
(Created page with "== 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 pres...")
 
(Code directory structure)
Line 1: Line 1:
 
== Code directory structure ==
 
== Code directory structure ==
 +
 +
=== GEOS-Chem Code structure (13.0.0 and later versions) ===
  
 
The table below lists the directory structure in [[GEOS-Chem 12]] along with descriptions of each subdirectory and its Makefile (if one is present).
 
The table below lists the directory structure in [[GEOS-Chem 12]] along with descriptions of each subdirectory and its Makefile (if one is present).
Line 5: Line 7:
 
{| border=1 cellspacing=0 cellpadding=5  
 
{| border=1 cellspacing=0 cellpadding=5  
 
|- bgcolor="#CCCCCC"
 
|- bgcolor="#CCCCCC"
!width="200px"|Directory
+
!width="300px"|Code in GEOS-Chem 13.0.0
!width="550px"|Description
+
!width="400px"|Description
!width="350px"|Is there a Makefile here?
+
!width="300px"|Location in prior versions
  
 
|-valign="top"
 
|-valign="top"
|<tt>Code</tt>
+
|<tt>src/GEOS-Chem</tt>
 
|Main-level directory for GEOS-Chem  
 
|Main-level directory for GEOS-Chem  
|Yes, there are two:
+
|<tt>GEOS-Chem</tt>
*<tt>Makefile</tt> is the main-level router makefile and it calls down to the makefile in <tt>GeosCore</tt>.
+
*<tt>Makefile_header.mk</tt> defines compilation and linking commands for the Fortran-90 compilers. These commands are common to the makefiles in all subdirectories.
+
  
 
|-valign="top"
 
|-valign="top"
|<tt>Code/GTMM</tt>
+
|<tt>src/GEOS-Chem/GTMM</tt>
 
|Directory containing source code files for the [[Global_Terrestrial_Mercury_Model|Global Terrestrial Mercury Model (GTMM)]] simulation
 
|Directory containing source code files for the [[Global_Terrestrial_Mercury_Model|Global Terrestrial Mercury Model (GTMM)]] simulation
|Yes, it compiles the code in <tt>GTMM</tt> and creates library file <tt>lib/libHg.a</tt>
+
||<tt>src/GEOS-Chem/GTMM</tt>
  
 
|-valign="top"
 
|-valign="top"
|<tt>Code/GeosCore</tt>
+
|<tt>src/GEOS-Chem/GeosCore</tt>
 
|Directory containing most GEOS-Chem modules and routines
 
|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 <tt>GeosCore</tt> directory and creates the <tt>geos</tt> executable.
+
|<tt>src/GEOS-Chem/GeosCore</tt>
  
 
|-valign="top"
 
|-valign="top"
|<tt>Code/GeosRad</tt>
+
|<tt>src/GEOS-Chem/GeosRad</tt>
 
|Directory containing source code files for the [[Coupling_GEOS-Chem_with_RRTMG|RRTMG radiative transfer model]]
 
|Directory containing source code files for the [[Coupling_GEOS-Chem_with_RRTMG|RRTMG radiative transfer model]]
|Yes, it compiles the code in <tt>GeosRad</tt> and creates library file <tt>lib/librad.a</tt>.
+
|<tt>src/GEOS-Chem/GeosRad</tt>
  
 
|-valign="top"
 
|-valign="top"
|<tt>Code/GeosUtil</tt>
+
|<tt>src/GEOS-Chem/GeosUtil</tt>
 
|Directory containing GEOS-Chem utility modules
 
|Directory containing GEOS-Chem utility modules
|Yes, it compiles the code in <tt>GeosUtil</tt> and creates library file <tt>lib/libGeosUtil.a</tt>.
+
|<tt>GEOS-Chem/GeosUtil</tt>
  
 
|-valign="top"
 
|-valign="top"
|<tt>Code/HEMCO</tt>
+
|<tt>src/GEOS-Chem/Headers</tt>
|Main-level directory for [[HEMCO]]
+
|Directory containing module files with fixed parameters and derived-type definitions
|Yes, it calls down to the makefiles in the other HEMCO subdirectories.
+
|<tt>GEOS-Chem/Headers</tt>
 
+
|-valign="top"
+
|<tt>Code/HEMCO/Core</tt>
+
|Directory containing HEMCO modules and routines for reading, storing, and updating data used for calculating emissions
+
|Yes, it compiles the code in <tt>HEMCO/Core</tt> and creates library file <tt>lib/libHCO.a</tt>.
+
 
+
|-valign="top"
+
|<tt>Code/HEMCO/Extensions</tt>
+
|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 <tt>HEMCO/Extensions</tt> and creates library file <tt>lib/libHCOX.a</tt>.
+
 
+
|-valign="top"
+
|<tt>Code/HEMCO/Interfaces</tt>
+
|Directory containing HEMCO modules and routines that provide the link between HEMCO and the model environment
+
|Yes, it compiles the code in <tt>HEMCO/Interfaces</tt> and creates library file <tt>lib/libHCOI.a</tt>.
+
  
 
|-valign="top"
 
|-valign="top"
Line 74: Line 59:
  
 
|-valign="top"
 
|-valign="top"
|<tt>Code/KPP</tt>
+
|<tt>src/GEOS-Chem/KPP</tt>
 
|Main-level directory for the [[KPP_solvers_FAQ|KPP chemical solver]]
 
|Main-level directory for the [[KPP_solvers_FAQ|KPP chemical solver]]
|Yes, it calls down to the makefiles in the other KPP subdirectories.
+
|<tt>src/GEOS-Chem/KPP</tt>
  
 
|-valign="top"
 
|-valign="top"
|<tt>Code/KPP/Custom</tt>
+
|<tt>Code/KPP/fullchem</tt>
 +
|Directory containing KPP source code files for the [[GEOS-Chem_chemistry_mechanisms#Mechanisms_for_GEOS-Chem_v11-02|Standard chemistry mechanism]]
 +
|Yes, if you compile with <tt>CHEM=custom</tt>it compiles the code in <tt>KPP/Custom</tt> and creates library file <tt>lib/libKpp.a</tt>.
 +
 
 +
|-valign="top"
 +
|<tt>Code/KPP/custom</tt>
 
|Directory containing KPP source code files for the [[GEOS-Chem_chemistry_mechanisms#Mechanisms_for_GEOS-Chem_v11-02|Standard chemistry mechanism]]
 
|Directory containing KPP source code files for the [[GEOS-Chem_chemistry_mechanisms#Mechanisms_for_GEOS-Chem_v11-02|Standard chemistry mechanism]]
 
|Yes, if you compile with <tt>CHEM=custom</tt>it compiles the code in <tt>KPP/Custom</tt> and creates library file <tt>lib/libKpp.a</tt>.
 
|Yes, if you compile with <tt>CHEM=custom</tt>it compiles the code in <tt>KPP/Custom</tt> and creates library file <tt>lib/libKpp.a</tt>.
Line 143: Line 133:
 
|Directory where module (<tt>*.mod</tt>) files will be sent
 
|Directory where module (<tt>*.mod</tt>) files will be sent
 
|No
 
|No
 +
 +
|}
 +
 +
=== HEMCO code structrure (version 3.0.0 and later) ===
 +
 +
{| border=1 cellspacing=0 cellpadding=5
 +
|- bgcolor="#CCCCCC"
 +
!width="300px"|Code in GEOS-Chem 13.0.0
 +
!width="400px"|Description
 +
!width="300px"|Location in prior versions
 +
 +
|-valign="top"
 +
|<tt>Code/HEMCO</tt>
 +
|Main-level directory for [[HEMCO]]
 +
|Yes, it calls down to the makefiles in the other HEMCO subdirectories.
 +
 +
|-valign="top"
 +
|<tt>Code/HEMCO/Core</tt>
 +
|Directory containing HEMCO modules and routines for reading, storing, and updating data used for calculating emissions
 +
|Yes, it compiles the code in <tt>HEMCO/Core</tt> and creates library file <tt>lib/libHCO.a</tt>.
 +
 +
|-valign="top"
 +
|<tt>Code/HEMCO/Extensions</tt>
 +
|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 <tt>HEMCO/Extensions</tt> and creates library file <tt>lib/libHCOX.a</tt>.
 +
 +
|-valign="top"
 +
|<tt>Code/HEMCO/Interfaces</tt>
 +
|Directory containing HEMCO modules and routines that provide the link between HEMCO and the model environment
 +
|Yes, it compiles the code in <tt>HEMCO/Interfaces</tt> and creates library file <tt>lib/libHCOI.a</tt>.
  
 
|}
 
|}

Revision as of 19:52, 7 December 2020

Code directory structure

GEOS-Chem Code structure (13.0.0 and later versions)

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

Code in GEOS-Chem 13.0.0 Description Location in prior versions
src/GEOS-Chem Main-level directory for GEOS-Chem GEOS-Chem
src/GEOS-Chem/GTMM Directory containing source code files for the Global Terrestrial Mercury Model (GTMM) simulation src/GEOS-Chem/GTMM
src/GEOS-Chem/GeosCore Directory containing most GEOS-Chem modules and routines src/GEOS-Chem/GeosCore
src/GEOS-Chem/GeosRad Directory containing source code files for the RRTMG radiative transfer model src/GEOS-Chem/GeosRad
src/GEOS-Chem/GeosUtil Directory containing GEOS-Chem utility modules GEOS-Chem/GeosUtil
src/GEOS-Chem/Headers Directory containing module files with fixed parameters and derived-type definitions GEOS-Chem/Headers
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.
src/GEOS-Chem/KPP Main-level directory for the KPP chemical solver src/GEOS-Chem/KPP
Code/KPP/fullchem 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/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

HEMCO code structrure (version 3.0.0 and later)

Code in GEOS-Chem 13.0.0 Description Location in prior versions
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.