FlexChem
From Geos-chem
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 |
---|---|---|
Add FlexChem into v11-01c | Mike Long | Completed 14 Dec 2015 |
Enable the “tropchem” mechanism | Mike Long | Completed 14 Dec 2015 |
Restore the OH and HO2 diagnostics (ND43) | Melissa Sulprizio | Completed 18 Dec 2015 |
Remove CSPEC array and replaced with State_Chm%Species | Melissa Sulprizio | Completed 22 Dec 2015 |
Enable a temporary workaround for family tracers (ISOPN, MMN) | Mike Long | Completed 25 Jan 2016 |
Enable FAST-JX photochemistry | Mike Long | Completed 25 Jan 2016 |
Enable the "benchmark" chemistry mechanism | Melissa Sulprizio | Completed 29 Jan 2016 |
Fix HBr and HOBr hetchem rates for the "tropchem" mechanism | Melissa Sulprizio | Completed 04 Feb 2016 |
Fix unit conversions for heterogeneous chemistry | Mike Long | Completed 18 Feb 2016 |
Restore the broken J-value diagnostic (ND22) | Melissa Sulprizio | Completed 15 Mar 2016 |
Parallelize the main KPP driver loop; fixed other minor issues | Bob Yantosca | Completed 30 Mar 2016 |
Enable the SOA and SOA-SVPOA mechanisms | Lizzie Lundgren | Completed 01 Apr 2016 |
Add more parallelization fixes | Bob Yantosca | Completed 18 Apr 2016 |
Merge FlexChem with v11-01f | Melissa Sulprizio | Completed 20 Apr 2016 |
Add KPP repository to Bitbucket (https://bitbucket.org/gcst/kpp) | Mike Long | Completed 19 Apr 2016 |
Create new gckpp* files from the updated KPP solver package | Melissa Sulprizio | Completed 22 Apr 2016 |
Enable the UCX mechanism | Melissa Sulprizio | Completed 26 Apr 2016 |
Introduce a new prod/loss diagnostic into the KPP solver package | Mike Long | Completed 29 Apr 2016 |
Fix various other bugs and cleaned up some leftover things | Melissa Sulprizio | Completed 04 May 2016 |
Complete 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 |
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 |
Merge FlexChem with v11-01g | Bob Yantosca | Completed 17 Apr 2016 |
Remove family tracer fields of the Input_Opt object, namely : TRACER_N_CONST, TRACER_CONST, TRACER_COEFF, ID_EMITTED . These were only used by SMVGEAR and are now obsolete.
|
Bob Yantosca | Completed 18 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 obsolete fields Input_Opt%TCVV and Input_Opt%XNUMOL , and updating existing unit conversion routines accordingly
|
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 an upcoming Code-a-Thon |
Rely totally on the GEOS-Chem species database for looking up a species index from its name. | GCST | To be done at am upcoming Code-a-Thon |
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 | GCST | TBD |
Update GEOS-Chem documentation and user manual for v11-01 | GCST | TBD |
--Bob Yantosca (talk) 20:24, 19 May 2016 (UTC)