Difference between revisions of "GEOS-Chem directory structure"

From Geos-chem
Jump to: navigation, search
(Code directory structure)
(GEOS-Chem Code structure (13.0.0 and later versions))
Line 7: Line 7:
 
{| border=1 cellspacing=0 cellpadding=5  
 
{| border=1 cellspacing=0 cellpadding=5  
 
|- bgcolor="#CCCCCC"
 
|- bgcolor="#CCCCCC"
!width="300px"|Code in GEOS-Chem 13.0.0
+
!width="250px"|Code in GEOS-Chem 13.0.0
 
!width="400px"|Description
 
!width="400px"|Description
!width="300px"|Location in prior versions
+
!width="250px"|Location in prior versions
 +
!width="200px"|Notes
  
 
|-valign="top"
 
|-valign="top"
Line 15: Line 16:
 
|Main-level directory for GEOS-Chem  
 
|Main-level directory for GEOS-Chem  
 
|<tt>GEOS-Chem</tt>
 
|<tt>GEOS-Chem</tt>
 +
|
  
 
|-valign="top"
 
|-valign="top"
 
|<tt>src/GEOS-Chem/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
||<tt>src/GEOS-Chem/GTMM</tt>
+
|<tt>GEOS-Chem/GTMM</tt>
 +
|GTMM simulation is currently broken
  
 
|-valign="top"
 
|-valign="top"
 
|<tt>src/GEOS-Chem/GeosCore</tt>
 
|<tt>src/GEOS-Chem/GeosCore</tt>
 
|Directory containing most GEOS-Chem modules and routines
 
|Directory containing most GEOS-Chem modules and routines
|<tt>src/GEOS-Chem/GeosCore</tt>
+
|<tt>GEOS-Chem/GeosCore</tt>
 +
|
  
 
|-valign="top"
 
|-valign="top"
 
|<tt>src/GEOS-Chem/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]]
|<tt>src/GEOS-Chem/GeosRad</tt>
+
|<tt>GEOS-Chem/GeosRad</tt>
 +
|
  
 
|-valign="top"
 
|-valign="top"
Line 35: Line 40:
 
|Directory containing GEOS-Chem utility modules
 
|Directory containing GEOS-Chem utility modules
 
|<tt>GEOS-Chem/GeosUtil</tt>
 
|<tt>GEOS-Chem/GeosUtil</tt>
 +
|
  
 
|-valign="top"
 
|-valign="top"
Line 40: Line 46:
 
|Directory containing module files with fixed parameters and derived-type definitions
 
|Directory containing module files with fixed parameters and derived-type definitions
 
|<tt>GEOS-Chem/Headers</tt>
 
|<tt>GEOS-Chem/Headers</tt>
 +
|
  
 
|-valign="top"
 
|-valign="top"
|<tt>Code/Headers</tt>
+
|<tt>src/GEOS-Chem/History</tt>
|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 <tt>#include</tt> statement.  These have since been converted to F90 modules in order to facilitate [[GEOS-Chem HP]] development.
+
|Yes, it compiles the code in <tt>Headers</tt> and creates library file <tt>lib/libHeaders.a</tt>
+
 
+
|-valign="top"
+
|<tt>Code/History</tt>
+
 
|Directory containing module files to archive diagnostics from GEOS-Chem "Classic" simulations to netCDF file format
 
|Directory containing module files to archive diagnostics from GEOS-Chem "Classic" simulations to netCDF file format
|Yes, it compiles the code in <tt>History</tt> and creates library file <tt>lib/libHistory.a</tt>
+
|<tt>GEOS-Chem/History</tt>
 +
|
  
 
|-valign="top"
 
|-valign="top"
|<tt>Code/ISORROPIA</tt>
+
|<tt>src/GEOS-Chem/ISORROPIA</tt>
|Directory containing the unmodified [[ISORROPIA_II|ISORROPIA II]] source code files from Thanos Nenes and Havala Pye:
+
|Directory containing the [[ISORROPIA_II|ISORROPIA II]] source code files  
* <tt>isoropiaII_main_mod.F</tt>
+
|<tt>GEOS-Chem/ISORROPIA</tt>
|Yes, it compiles the code in <tt>ISOROPIA</tt> and creates library file <tt>lib/libIsoropia.a</tt>.
+
|
  
 
|-valign="top"
 
|-valign="top"
Line 62: Line 64:
 
|Main-level directory for the [[KPP_solvers_FAQ|KPP chemical solver]]
 
|Main-level directory for the [[KPP_solvers_FAQ|KPP chemical solver]]
 
|<tt>src/GEOS-Chem/KPP</tt>
 
|<tt>src/GEOS-Chem/KPP</tt>
 +
|
  
 
|-valign="top"
 
|-valign="top"
|<tt>Code/KPP/fullchem</tt>
+
|<tt>src/GEOS-Chem/KPP/fullchem</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 "full-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>.
+
|Prior versions used these code folders:
 +
*<tt>GEOS-Chem/KPP/Standard</tt>
 +
*<tt>GEOS-Chem/KPP/Tropchem</tt>
 +
*<tt>GEOS-Chem/KPP/SOA_SVPOA</tt>
 +
|
  
 
|-valign="top"
 
|-valign="top"
 
|<tt>Code/KPP/custom</tt>
 
|<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 creating custom mechanisms
|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>.
+
|<tt>Code/KPP/SOA_SVPOA</tt>
 +
|
  
 
|-valign="top"
 
|-valign="top"
|<tt>Code/KPP/int</tt>
+
|<tt>src/GEOS-Chem/KPP/int</tt>
 
|Directory containing the integrators (rosenbrock, runge-kutta, lsodes, etc.) for KPP
 
|Directory containing the integrators (rosenbrock, runge-kutta, lsodes, etc.) for KPP
|No
+
|<tt>src/GEOS-Chem/KPP/int</tt>
 +
|
  
 
|-valign="top"
 
|-valign="top"
|<tt>Code/KPP/Standard</tt>
+
|<tt>src/GEOS-Chem/NcdfUtil</tt>
|Directory containing KPP source code files for the [[GEOS-Chem_chemistry_mechanisms#Mechanisms_for_GEOS-Chem_v11-02|Standard chemistry mechanism]]
+
|Yes, it compiles the code in <tt>KPP/Standard</tt> and creates library file <tt>lib/libKpp.a</tt>.
+
 
+
|-valign="top"
+
|<tt>Code/KPP/Tropchem</tt>
+
|Directory containing KPP source code files for the [[GEOS-Chem_chemistry_mechanisms#Mechanisms_for_GEOS-Chem_v11-02l|Troposphere-only mechanism]]
+
|Yes, it compiles the code in <tt>KPP/Tropchem</tt> and creates library file <tt>lib/libKpp.a</tt>.
+
 
+
|-valign="top"
+
|<tt>Code/KPP/SOA_SVPOA</tt>
+
|Directory containing KPP source code files for the [[GEOS-Chem_chemistry_mechanisms#Mechanisms_for_GEOS-Chem_v11-02|SOA or SOA_SVPOA chemistry mechanisms]].
+
|Yes, it compiles the code in <tt>KPP/SOA_SVPOA</tt> and creates library file <tt>lib/libKpp.a</tt>.
+
 
+
|-valign="top"
+
|<tt>Code/NcdfUtil</tt>
+
 
|Directory containing source code files for netCDF I/O. This code is from Bob Yantosca's NcdfUtilities package
 
|Directory containing source code files for netCDF I/O. This code is from Bob Yantosca's NcdfUtilities package
|Yes, it compiles the code in <tt>NcdfUtil</tt> and creates library file <tt>lib/libNcUtils.a</tt>.
+
|<tt>GEOS-Chem/NcdfUtil</tt>
 +
|
  
 
|-valign="top"
 
|-valign="top"
|<tt>Code/NcdfUtil/perl</tt>
+
|<tt>src/GEOS-Chem/NcdfUtil/perl</tt>
 
|Directory containing perl scripts from the NcdfUtilities package that can be used to generate Fortran code for defining, writing, and reading a netCDF file
 
|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
+
|<tt>GEOS-Chem/NcdfUtil/perl</tt>
  
 
|-valign="top"
 
|-valign="top"
|<tt>Code/ObsPack</tt>
+
|<tt>src/GEOS-Chem/ObsPack</tt>
 
|Directory containing the [[ObsPack diagnostic]] code.
 
|Directory containing the [[ObsPack diagnostic]] code.
*Introduced in [[GEOS-Chem 12#12.2.0|GEOS-Chem 12.2.0]]
+
|<tt>GEOS-Chem/ObsPack</tt>
|Yes, it compiles the code in <tt>ObsPack</tt> and creates the library file <tt>libObsPack.a</tt>
+
|
 
+
|-valign="top"
+
|<tt>Code/bin</tt>
+
|Directory where executable (<tt>geos</tt>, <tt>geostomas</tt>) files will be sent
+
|No
+
 
+
|-valign="top"
+
|<tt>Code/doc</tt>
+
|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.
+
 
+
|-valign="top"
+
|<tt>Code/help</tt>
+
|Directory containing GEOS-Chem help screen
+
|Yes, it prints the GEOS-Chem help screen to stdout
+
 
+
|-valign="top"
+
|<tt>Code/lib</tt>
+
|Directory where library (<tt>*.a</tt>) files will be created
+
|No
+
 
+
|-valign="top"
+
|<tt>Code/mod</tt>
+
|Directory where module (<tt>*.mod</tt>) files will be sent
+
|No
+
  
 
|}
 
|}

Revision as of 20:01, 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 Notes
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 GEOS-Chem/GTMM GTMM simulation is currently broken
src/GEOS-Chem/GeosCore Directory containing most GEOS-Chem modules and routines GEOS-Chem/GeosCore
src/GEOS-Chem/GeosRad Directory containing source code files for the RRTMG radiative transfer model 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
src/GEOS-Chem/History Directory containing module files to archive diagnostics from GEOS-Chem "Classic" simulations to netCDF file format GEOS-Chem/History
src/GEOS-Chem/ISORROPIA Directory containing the ISORROPIA II source code files GEOS-Chem/ISORROPIA
src/GEOS-Chem/KPP Main-level directory for the KPP chemical solver src/GEOS-Chem/KPP
src/GEOS-Chem/KPP/fullchem Directory containing KPP source code files for the GEOS-Chem "full-chemistry" mechanism Prior versions used these code folders:
  • GEOS-Chem/KPP/Standard
  • GEOS-Chem/KPP/Tropchem
  • GEOS-Chem/KPP/SOA_SVPOA
Code/KPP/custom Directory containing KPP source code files for creating custom mechanisms Code/KPP/SOA_SVPOA
src/GEOS-Chem/KPP/int Directory containing the integrators (rosenbrock, runge-kutta, lsodes, etc.) for KPP src/GEOS-Chem/KPP/int
src/GEOS-Chem/NcdfUtil Directory containing source code files for netCDF I/O. This code is from Bob Yantosca's NcdfUtilities package GEOS-Chem/NcdfUtil
src/GEOS-Chem/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 GEOS-Chem/NcdfUtil/perl
src/GEOS-Chem/ObsPack Directory containing the ObsPack diagnostic code. GEOS-Chem/ObsPack

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.