KPP (The Kinetic PreProcessor, by A. Sandu et al), translates a chemical mechanism specification from plain-text format to source code. You may select the numerical integrator to be used (Runge-Kutta, LSODES, Rosenbrock, etc.) and the language for the generated source code (Fortran-90, Fortran-77, C, Matlab). The resulting source code files may then be integrated into an atmospheric chemistry model, chemical box model, or other application.
The latest public release is KPP 2.2.3_01, which may be
obtained as a tarball from the KPP web site. For convenience, the GEOS-Chem Support Team has created a Github
repository that contains
KPP 2.2.3_01 in the
KPP-for-GEOS-Chem is a clean implementation of KPP that has been customized for GEOS-Chem v11-01 and later versions. You can use KPP-for-GEOS-Chem to modify existing GEOS-Chem chemistry mechanisms or create new mechanisms.
Current and previous KPP-for-GEOS-Chem releases are kept in
GC_updates branch of the KPP repository on Github.
The version of KPP-for-GEOS-Chem that you will need to use currently depends on the version of GEOS-Chem that you have. In the future we hope to make KPP-for-GEOS-Chem version a submodule of GEOS-Chem.
The GEOS-Chem source code module
serves as the connection between the chemical mechanism solver files generated by KPP-for-GEOS-Chem and
the species concentration array in GEOS-Chem. In
flexchem_mod.F90, species concentrations, photoylsis rates,
meteorology fields, and other relevant information are passed to the
chemistry mechanism routines created by KPP-for-GEOS-Chem. These
routines compute reaction rates, perform the forward integration, and pass the
updated species concentration back to GEOS-Chem.
The main benefits of KPP-for-GEOS-Chem are:
Better documentation of chemical mechanisms;
Easy switching between chemical mechanisms.
Optimized chemistry computations; and
Removal of the SMVGEAR solver from GEOS-Chem.