FlexChem
Overview
The clean and flexible reimplementation of the Kinetic PreProcessor package (aka KPP)—known as FlexChem—is nearing full integration into GEOS-Chem. Most of the remaining FlexChem development work will focus on replacing legacy infrastructure—which prevents GEOS-Chem from operating efficiently in high-performance computing (HPC) environments—with newer, more efficient algorithms.
More information will be posted here soon!
--Bob Yantosca (talk) 19:58, 19 May 2016 (UTC)
Milestones
The following table shows several milestones that were achieved in the FlexChem implementation, development, as well as ongoing development tasks.
Task | Developer | Status |
---|---|---|
Added FlexChem into v11-01c. | Mike Long | Completed 14 Dec 2015 |
Enabled the “tropchem” mechanism. | Mike Long | Completed 14 Dec 2015 |
Restored the OH and HO2 diagnostics (ND43) \ | Melissa Sulprizio | Completed 18 Dec 2015 |
Removed CSPEC array and replaced with State_Chm%Species | Melissa Sulprizio | Completed 22 Dec 2015 |
Enabled a temporary workaround for family tracers (ISOPN, MMN) | Mike Long | Completed 25 Jan 2016 |
Enabled FAST-JX photochemistry | Mike Long | Completed 25 Jan 2016 |
Enabled the "benchmark" chemistry mechanism | Melissa Sulprizio | Completed 29 Jan 2016 |
Fixed HBr and HOBr hetchem rates for the "tropchem" mechanism | Melissa Sulprizio | Completed 04 Feb 2016 |
Fixed unit conversions for heterogeneous chemistry | Mike Long | Completed 18 Feb 2016 |
Restored the broken J-value diagnostic (ND22) | Melissa Sulprizio | Completed 15 Mar 2016 |
Parallelized the main KPP driver loop; fixed other minor issues | Bob Yantosca | Completed 30 Mar 2016 |
Enabled the SOA and SOA-SVPOA mechanisms | Lizzie Lundgren | Completed 01 Apr 2016 |
Added more parallelization fixes | Bob Yantosca | Completed 18 Apr 2016 |
Merged FlexChem with v11-01f | Melissa Sulprizio | Completed 20 Apr 2016 |
Added KPP repository to Bitbucket (https://bitbucket.org/gcst/kpp) | Mike Long | Completed 19 Apr 2016 |
Created new gckpp* files from the updated KPP solver package | Melissa Sulprizio | Completed 22 Apr 2016 |
Enabled the UCX mechanism | Melissa Sulprizio | Completed 26 Apr 2016 |
Introduced a prod/loss diagnostic into the KPP solver package | Mike Long | Completed 29 Apr 2016 |
Fixed various other bugs and cleaned up some leftover things | Melissa Sulprizio | Completed 04 May 2016 |
Completed unit tests and 1-month benchmarks for the tropchem, benchmark, UCX, SOA, and SOA-SVPOA simulations | Melissa Sulprizio Lizzie Lundgren |
Completed 05 May 2016 |
Remove tracer indices of Rn, Pb, Be, Hg, and POPs simulations from tracerid_mod.F. (This paves the way for us to retire tracerid_mod.F.) | Bob Yantosca | Completed 02 May 2016; not yet |
Add a fast species name lookup algorithm | Bob Yantosca | Code is in place as of 04 May 2016, but has not been implemented throughout GEOS-Chem yet. |
Store the unique list of GEOS-Chem species in the GEOS-Chem species database object. (In other words, we combine the list of
advected tracers with the list of KPP chemical species and remove duplicate entries). |
Bob Yantosca | Completed 09 May 2016 |
Store the indices of each species in the KPP chemical reaction matrix in the GEOS-Chem species database object. | Bob Yantosca | Completed 09 May 2016 |
Remove family tracer fields of the Input_Opt object, namely : TRACER_N_CONST, TRACER_CONST, TRACER_COEFF, ID_EMITTED
|
Bob Yantoscao | Completed 19 May 2016 |
Create mapping vectors in the State_Chm object to store the ID numbers of species that are advected, dry-deposited, wet-deposited, and/or included in the KPP chemical mechanism
|
Bob Yantosca | Completed 19 May 2016 |
Remove all 1-D loop indexing variables (JLOOP, KLOOP, KTLOOP, JLOP, IXSAVE, IYSAVE, IZSAVE) that were used by SMVGEAR | Melissa Sulprizio | Completed 19 May 2016 |
Removal of SMVGEAR input files (globchem.dat, mglob.dat) and associated subroutines (readchem.F, reader.F) | Melissa Sulprizio | In progress |
Removal of Input_Opt%TCVV and Input_Opt%XNUMOL fields
|
Lizzie Lundgren | In progress |
Store all species concentrations in State_Chm%Species (thus making State_Chm%Tracers redundant) | GCST | In progress |
Remove tracerid_mod.F and related tracer ID flags (IDTxxxx , IDxxxx ) from GEOS-Chem.
|
GCST | To be done at the Code-a-Thon |
Rely totally on the GEOS-Chem species database for looking up a species index from its name. | GCST | Imminent |
Update the GEOS-Chem Makefiles so that a fresh version of KPP will be built (using a custom chemical mechanism that you specify) each time GEOS-Chem is compiled. | GCST | TBD |
Attach the new KPP prod/loss diagnostics to GEOS-Chem Chem’s netCDF diagnostic output capability. | GCST | TBD |
Remove the remaining family tracers (ISOPN, MMN). Henceforth, FlexChem will only work with individual species. | GCST | TBD |
Validate FlexChem with additional debugging, unit testing, and benchmarking | TBD | TBD |
Update GEOS-Chem documentation and user manual for v11-01 | TBD | TBD |
--Bob Yantosca (talk) 20:17, 19 May 2016 (UTC)