-
Notifications
You must be signed in to change notification settings - Fork 153
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[PULL REQUEST] Clean up heterogenous chemistry rate-law functions -- excluding sulfur chemistry updates to KPP #897
Commits on Mar 16, 2021
-
Added KPP/aerochem dir and copied KPP/fullchem contents
ML committedMar 16, 2021 Configuration menu - View commit details
-
Copy full SHA for d02ff52 - Browse repository at this point
Copy the full SHA d02ff52View commit details -
Merge branch 'dev/13.0.0-final' into feature/bmy/kpp
Resolved conflicts in: - GeosCore/isorropiaII_mod.F90 Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 1f21e32 - Browse repository at this point
Copy the full SHA 1f21e32View commit details -
Updated CMakeLists for the aerochem KPP mechanis
Configuring with cmake ... -DCUSTOMMECH=y now points to the chemical mechanism files in KPP/aerochem (instead of KPP/custom). This is for development of the KPP mechanism, and will be restored to the original functionality later. Also rebuilt the KPP/aerochem source code with KPP 2.3.1_gc. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 710de46 - Browse repository at this point
Copy the full SHA 710de46View commit details
Commits on Mar 18, 2021
-
Add square root of molecular weight field to the HetInfo object
In the heterogeneous chemistry, the square root of molecular weight is repeatedly computed on every (I,J,L). However, this can be done outside of the loop over grid boxes. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 67a3f5a - Browse repository at this point
Copy the full SHA 67a3f5aView commit details -
Stash initial updates to gckpp_HetRates.F90
This is the start of the process to clean up gckpp_HetRates.F90. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for e64e51e - Browse repository at this point
Copy the full SHA e64e51eView commit details
Commits on Mar 19, 2021
-
Introduce HetVOC to compute het chem rates for VOCs + cosmetic changes
(1) Now use KIND parameter dp instead of fp. dp is in gckpp_Precision.F90. (2) The heterogeneous chemistry rates for LVOC, IHN{1-4}, INP{B,D}, MCRHN, NCRHNB, MVKN, R4N2, IDN, ITHN, ITCN, MONITS, MONITU, and HONIT can now be computed by a single function, HetVOC. (3) The hetchem rates for IONITA and MONITA are constant, and can just be set equal to a numeric constant w/o a function call. (4) Cosmetic + whitespace changes Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 889511b - Browse repository at this point
Copy the full SHA 889511bView commit details
Commits on Mar 22, 2021
-
Configuration menu - View commit details
-
Copy full SHA for e1a0c4d - Browse repository at this point
Copy the full SHA e1a0c4dView commit details -
Introduce HetIxCycle{BrSALA,BrSALC,SALACL,SALCCL} functions
In KPP/fullchem/gckpp_HetRates.F90, we have split function HetIxCycleSSA into 4 functions HetIxCycleBrSALAinstead of using a single function HetIxCycleSSA, we have split that function into 4 individual functions: 1. HetIxCycleBrSALA (formerly HetIxCycleSSA with N=1) 2. HetIxCycleBrSALC (formerly HetIxCycleSSA with N=2) 3. HetIxCycleSALACL (formerly HetIxCycleSSA with N=3) 4. HetIxCycleSALCCL (formerly HetIxCycleSSA with N=4) This allows us to remove branching and looping within the functions, which should allow for more efficient execution. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 72f5799 - Browse repository at this point
Copy the full SHA 72f5799View commit details -
Clean up the funcitions for iodine uptake on sulfate & sea-salt
We are able to remove the rate-law functions for computing uptake of iodine species on SO4, SALA, SALC, BrSALA, BrSALC, SALACL, SALCCL into 3 functions: (1) HetIUptakebySulf : Uptake by tropospheric sulfate (2) HetIUptakebySALA : Uptake by accumulation mode sea-salt (3) HetIUptakebySALC : Uptake by coarse-mode sea-salt IBr produced on acidic accum-mode seasalt (when SSAlk(1) <= 0.5): Uptake by BrSALA = 0.15 * HetIUptakeBySALA Uptake by SALACL = 0.85 * HetIUptakeBySALA ICl produced on acidic accum-mode seasalt (when SSAlk(2) <= 0.5): Uptake by BrSALC = 0.15 * HetIUptakeBySALC Uptake by SALCCL = 0.85 * HetIUptakeBySALC Thus we can retire the HetIxCycle{BrSALA,BrSALC,SALACL,SALCCL}. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 144d9a0 - Browse repository at this point
Copy the full SHA 144d9a0View commit details -
Clean up CLD_PARAMS, GAMMA_NO3 and HETNO3_Cl in gckpp_HetRates.F90
In KPP/fullchem/gckpp_HetRates.F90: (1) Updates to routine CLD_PARAMS: - General cleanup - Return argument ClearFr = 1 - CldFr - Now reference most met variables from State_Met - Updated comments & whitespace updates (2) Updates to routine GAMMA_NO3: - Whitespace alignment and readability updates - Now use H%NO3%SrMw instead of taking the square root - Return value was renamed to "gamma" (3) Updates to routine HetNO3_Cl - Whitespace alignment and readability updates - Now pass H%NO3%SrMw to ARSL1K instead of taking the square root of the molecular weight of NO3 Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 1a975bb - Browse repository at this point
Copy the full SHA 1a975bbView commit details
Commits on Mar 23, 2021
-
Add description of the HET array to aerochem/gckpp.kpp
We now have documented the reactions that are stored in each element of the HET array in gckpp.kpp. We have also rebuilt the KPP files with KPP-for-GEOS-Chem 2.3.1_gc, so that these comments are now also included in gckpp_Global.F90. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 6ea9f1b - Browse repository at this point
Copy the full SHA 6ea9f1bView commit details -
Inline OH het rate calculation and remove routine HETOH
The HETOH routine calls routine GAMMA_NO3 and ARSL1K twice. These have now been inlined into the main body of routine SET_HET and the HETOH routine has been removed. NOTE: This update will cause differences w/r/t the prior code, because a hardwired molecular weight for OH (17 g/mole) was used there... but the value from the species database is now 17.01 g/mole. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for f5c44e9 - Browse repository at this point
Copy the full SHA f5c44e9View commit details
Commits on Mar 24, 2021
-
Clean up 1st order uptake functions in gckpp_HetRates.F90 + related c…
…hanges gckpp.kpp and gckpp_Global.F90: - Add comments to HSTAR_EPOX to denote its value is from Ngyuen et al 2014 gckpp_HetRates.F90: - Add comments describing each aerosol type - Remove looping & branching in 1st-order uptake functions - Now call subroutine ArsL1k for each aerosol type in 1st-order uptake fns - ArsL1k now returns 0.0 instead of 1e-30 if rate cannot be computed print_het.H - Also print out temperature and relative humidity at the debug box Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for e430e63 - Browse repository at this point
Copy the full SHA e430e63View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1afc441 - Browse repository at this point
Copy the full SHA 1afc441View commit details
Commits on Mar 25, 2021
-
Minor updates to gckpp_HetRates.F90
(1) For now, ARSL1K returns 1.0e-30_dp, to avoid div-by-zero issues until we can better trap these errors. (2) Moved Het1stOrderUptakeHO2 so that it is in alphabetical order (3) Reorderd calls to VOC 1st order subroutine to be in alphabetical order. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 400008e - Browse repository at this point
Copy the full SHA 400008eView commit details -
Configuration menu - View commit details
-
Copy full SHA for c66eeb8 - Browse repository at this point
Copy the full SHA c66eeb8View commit details -
gckpp_HetRates.F90 updates: Nullify the H object after print_het.H
Move the nullifcation of the H (HetInfo) object after the print_het.H print statements. Also cosmetic changes, remove REVISION HISTORY sections from comment headers. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 64ca433 - Browse repository at this point
Copy the full SHA 64ca433View commit details
Commits on Mar 26, 2021
-
Move HET(ind_ITCN, 1) to be alphabetical order w/ other VOC's
This is a cosmetic change. All 1st order uptake reactions now match the reference code 13.0.1 (excluding numerical noise diffs smaller than +/- 2.0e-5%). Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 2316ce8 - Browse repository at this point
Copy the full SHA 2316ce8View commit details -
Configuration menu - View commit details
-
Copy full SHA for bf0c143 - Browse repository at this point
Copy the full SHA bf0c143View commit details
Commits on Mar 29, 2021
-
Build aerochem mechanism with KPP-for-GEOS-Chem 2.3.2_gc (beta)
(1) Use KPP version 2.3.2_gc (in beta) to rebuild the aerochem mechanism files. (2) Remove XDENA, as this is a duplicate of NUMDEN. (3) Replace 300.0_dp/TEMP with K300_OVER_TEMP variable. (4) Comment out the UPDATE_SUN function in gckpp_Rates.F90. (5) Keep gckpp_Rates.F90 in aerochem separate from fullchem (i.e. these are no longer symlinked). Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for c097013 - Browse repository at this point
Copy the full SHA c097013View commit details
Commits on Apr 30, 2021
-
Initialize new KPP variables in gckpp_Global.F90; Rebuild w/ KPP 2.3.…
…2_gc GeosCore/flexchem_mod.F90: - Initialize TEMP_OVER_K300, K300_OVER_TEMP and SR_TEMP in routine Set_Kpp_Gridbox_Values - Initialize MW and SR_MW in Init_FlexChem KPP/aerochem/gckpp_HetRates.F90: - Pass SR_MW to the 1st-order uptake functions - Remove TEMP and NUMDEN from CloudHet, these are global variables gckpp_Rates.F90 - Rebuilt with KPP 2.3.2_gc Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for e8b3e72 - Browse repository at this point
Copy the full SHA e8b3e72View commit details -
Prevent div by zero in routine CloudHet (in gckpp_HetRates.F90)
The computation of branch assumes that kI is always greater than zero. But we have changed ARSL1K to return 0 if the reaction probability is undefined. This would cause a div-by-zero in Cloudhet. We have now prevented this by only allowing the division if kI > 0, otherwise we set branch = 0. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for a449b19 - Browse repository at this point
Copy the full SHA a449b19View commit details -
Add Henry law variables and T_298 parameter to gckpp_Global
gckpp.kpp - Added T_298 = 298.15_dp parameter, as this is reused - Added HENRY_K0 and HENRY_CR parameters gckpp_HetRates.F90: - Define HENRY_K0 and HENRY_CR with values from the species database - Remove TEMP, NUMDEN from HetNO3_CL (these are global) - Remove T, H from GAMMA_NO3 (these are not needed) gckpp_Global.F90 - Rebuilt with KPP 2.3.2_gc
Configuration menu - View commit details
-
Copy full SHA for d763c43 - Browse repository at this point
Copy the full SHA d763c43View commit details
Commits on May 3, 2021
-
Clean up gckpp_Hetrates through BrNO3 hydrolysis (plus related updates)
aerochem.eqn - Het rxn HO2 = O2 is now changed to HO2 = H2O gckpp.kpp: - Now use INV_T298 as the inverse of T_298, to prevent repeated divisions gckpp_HetRates.F90: - Streamlined HetNO3_Cl, HetBrNO3, HetClNO3_TCld routines gckpp_{Function, Global, Jacobian, Monitor}.F90 - Rebuilt with KPP 2.3.2_gc Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for cde676b - Browse repository at this point
Copy the full SHA cde676bView commit details -
Streamline CLOUDHET function and remove optional arguments
In function CloudHet (in gckpp_HetRates.F90): - Remove DO loop; now compute liquid and ice branches w/ inlined code - Arguments branchLiq and branchIce are no longer OPTIONAL, this should result in more efficient execution Also make sure to pass branchLiq and branchIce with placeholder arguments (1.0_dp) in calls to CloudHet where necessary. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 1aa8bdc - Browse repository at this point
Copy the full SHA 1aa8bdcView commit details
Commits on May 4, 2021
-
Streamline CloudHet, Gamma_ClNO3_{Aer,Ice} and compute ClNO3 hydrolysis
(1) Pass branchliq, branchice to CloudHet as non-optional arguments (2) Remove PRESENT statements from CloudHet (3) Add parameters to Gamma_Cld_{Aer, Ice} to avoid repeated computations Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 7a9c952 - Browse repository at this point
Copy the full SHA 7a9c952View commit details
Commits on May 7, 2021
-
Peel off 1st-order rate equations (except iodine) into gckpp.kpp
We have been able to peel off many of the gas-phase 1st-order rate-law fucnctions from gckpp_HetRates.F90 and add them into gckpp.kpp. From there, they will be included the KPP-generated source code whenever the mechanism is rebuilt. flexchem_mod.f90: - Use keyword arguments in calls to Set_Het and Set_Kpp_Gridbox_Values state_chm_mod.F90: - Removed the HetInfo object and HetState type gckpp.kpp - Add new rate law functions from gckpp_HetRates.F90 - Define derived type object State_Het to pass fields to rate-law functions - Define new HetState type for the State_Het object aerochem.eqn - Now reference rate-law functions defined in gckpp.kpp gckpp_HetRates.F90 - Moved several 1st-order rate-law functions to gckpp.kpp - Moved Cld_Params and the computation of halide concs to flexchem_mod.F90 gckpp_Global.F90 gckpp_Rates.F90 - Rebuilt with KPP 2.3.2_gc Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 8570744 - Browse repository at this point
Copy the full SHA 8570744View commit details -
Pull out iodine uptake by sulfate/SALA/SALC functions into gckpp.kpp
We have moved the rate-law functions that compute 1st-order uptake of HI, I2O2, I2O3, and I2O4 from gckpp_HetRates.F90 to gckpp.kpp. We have also made the corresponding updates in aerochem.eqn, and have regenerated the solver source code files with KPP 2.3.2_gc. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for e380c82 - Browse repository at this point
Copy the full SHA e380c82View commit details
Commits on May 11, 2021
-
Pull iodine uptake on acidic seasalt rate law functions into gckpp.kpp
gckpp.kpp: - Add logicals ssFineisAlk, ssFineisAcid, ssCoarseisAlk, ssCoarseIsAcid to the State_Het object. These are used to determine if the fine/coarse sea salt is acidic or alkaline in rate-law functions. This allows us to compute these terms once per grid box. - Update rate-law functions to use common variables from gckpp_Global.F90 flexchem_mod.F90: - Define the ssFineIsAlk, ssFineIsAcid, ssCoarseIsAlk, ssCoarseIsAcid fields of State_Het for each grid box. aerochem.eqn - Now use rate-law functions for the first-order uptake of iodine from SALA and SALC. gckpp_Global.F90 gckpp_Rates.F90 - Rebuilt with KPP 2.3.2_gc gckpp_HetRates.F90 - Remove calls to iodine uptake rate-law functions Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 3c064ff - Browse repository at this point
Copy the full SHA 3c064ffView commit details -
Finish moving 1st order uptake rate-law functions for iodine species
gckpp.kpp: - Add function kIIR1Ltd (and optimize it to minimize IF/ELSE branches) - Remove comments about elemetns of HET that are deleted - Trim ending whitespace aerochem.eqn - Call the various iodine uptake rate-law functions gckpp_Global.F90 gckpp_Rates.F90 - Rebuilt with KPP 2.3.2_gc Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 05e3bdc - Browse repository at this point
Copy the full SHA 05e3bdcView commit details
Commits on May 12, 2021
-
Peel out rate-functions for hypsis of NO3(g) by Cl- on SALA and SALC
gckpp.kpp - Added Gam_NO3, NO3hypsisClonSALA, NO3hypsisClonSALC functions - Added coth and reactodiff_corr functions - Removed useless computations from Gam_NO3 - Trimmed trailing whitespace aerochem.eqn - Replace HET(ind_NO3,2) with function NO3hypsisClonSALA - Replace Het(ind_NO3,3) with function NO3hypsisClonSALC gckpp_HetRates.F90 - Removed GAMMA_NO3, HetNO3_Cl_SALA, HetNO3_Cl_SALC functions - Removed COTH, REACTODIFF_CORR functions gckpp_Rates.F90 - Rebuilt with KPP 2.3.2_gc Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for db64221 - Browse repository at this point
Copy the full SHA db64221View commit details -
Peel NO2/NO3 1st order uptake + cloud rate-law functions into gckpp.kpp
gckpp.kpp - Added CloudHet and SafeDiv functions - Remove srMw argument from HO2uptk1stOrd function - Add NO2uptk1stOrd and NO2uptk1stOrdAndCloud functions - Add NO3uptk1stOrd and NO3uptk1stOrdAndCloud functions aerochem.eqn - Remove SR_MW(ind_HO2) from HO2uptk1stOrd function - Replace HET(ind_NO2,1) with NO2uptk1stOrdAndCloud function - Replace HET(ind_NO3,1) with NO3uptk1stOrdAndCloud function gckpp_HetRates.F90 - Remove CloudHet, Het1stOrderUptakeNO3, NO3_Uptake functions - Remove Het1stOrderUptakeNO2, NO2_Uptake functions gckpp_Rates.F90 - Rebuilt with KPP 2.3.2_gc Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 133d9cd - Browse repository at this point
Copy the full SHA 133d9cdView commit details
Commits on May 13, 2021
-
Implement N2O5 uptake by clouds (replace HET(ind_N2O5,3) in aerochem.…
…eqn) gckpp.kpp - Minor updates for numerical stability in function CloudHet - Add function Is_SafeDiv - Consolidaed NO2 and NO3 cloud uptake functions - Rename HetMinLife constant to HET_MIN_LIFE - Rename HetMinRate constant to HET_MIN_RATE aerochem.eqn - Replace HET(ind_N2O5,3) with call to N2O5uptkByCloud gckpp_Global.F90 gckpp_Rates.F90 - Rebuilt with KPP 2.3.2_gc gckpp_HetRates.F90 - Removed code that is now in gckpp.kpp Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 54bc86b - Browse repository at this point
Copy the full SHA 54bc86bView commit details -
Implement N2O5 uptake by stratospheric HCl (replace HET(ind_N2O5,2))
gckpp.kpp - Modify routine kIIR1Ltd for computational efficiency - Add routine N2O5uptkByStratHCl aerochem.eqn - Replace HET(ind_N2O5,2) by function call to N2O5uptkByStratHCl gckpp_Rates.F90 - Rebuilt with KPP 2.3.2_gc gckpp_HetRates.F90 - Remove function HetN2O5_HCl Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 0ee4fb1 - Browse repository at this point
Copy the full SHA 0ee4fb1View commit details
Commits on May 14, 2021
-
Peel out N2O5 uptake by H2O rate law function into gckpp.kpp
We have now migrated the rate-law functions that compute the update of N2O5 by H2O from gckpp_HetRates.F90 into KPP. gckpp.kpp - Add functions N2O5uptkByH2O, N2O5_InorgOrg, ClNO2_BT - Clean up N2O5uptkByH2O from original HETN2O5 function aerochem.eqn - Replace HET(ind_N2O5,1) with N2O5uptkByH2O function call gckpp_HetRates.F90: - Remove HETN2O5, N2O5, N2O5_InorgOrg, ClNO2_BT gckpp_Global.F90 gckpp_Rates.F90 - Rebuilt with KPP 2.3.2_gc Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 815b81a - Browse repository at this point
Copy the full SHA 815b81aView commit details -
Peel rate-law funcs for uptake of N2O5 by SALACL, SALCCL into gckpp.kpp
gckpp.kpp - Added functions N2O5uptkBySALACL and N2O5uptkBySALCCL - Updated comments aerochem.eqn - Replace HET(ind_N2O5,4) with call to N2O5uptkBySALACL - Replace Het(ind_N2O5,5) with call to N2O5uptkbySALCCL gckpp_HetRates.F90 - Remove obsolete code gckpp_Rates.F90 - Rebuilt with KPP 2.3.2_gc Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 75b2dc2 - Browse repository at this point
Copy the full SHA 75b2dc2View commit details
Commits on May 17, 2021
-
Peel rate-law funcs for OH loss by SALACL and SALCCL into gckpp.kpp
gckpp.kpp - Add rate-law functions OHlossBySALACl and OHlossBySALCCl - Also add functions for O3 loss (but these are still being validated) - Add BrConc_Cld and ClConc_Cld to State_Het aerochem.eqn - Replace HET(ind_OH,1) with call to OHuptkBySALACl - Replace HET(ind_OH,2) with call to OHuptkBySALCCl - Zero out HET(ind_O3,{1,2,3}) in preparation for next update gckpp_HetRates.F90 - Removed code that has now been peeled into gckpp.kpp gckpp_Global.F90 gckpp_Rates.F90 - Rebuilt with KPP 2.3.2_gc Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 757d6eb - Browse repository at this point
Copy the full SHA 757d6ebView commit details
Commits on May 18, 2021
-
Peel out O3 + HBr, O3 + BrSALA, O3 + BrSALC functions into gckpp.kpp
gckpp.kpp - Add function O3uptkByBrInTropCloud - Add function O3uptkByHBrInCloud - Add function O3uptkByCloudAndBrSALA - Add function O3uptkByCloudAndBrSALC - Add function Gamma_O3_Br - CloudHet now skips computing rates if the branch ratio is zero - Rename several fields in State_Het (e.g. Brconc_* --> Br_conc_*, etc) - Move parameter HSTAR_EPOX into EpoxUptkGamma, it's only needed there aerochem.eqn - Replace HET(ind_O3,1) with call to O3uptkByBrInTropCloud - Replace HET(ind_O3,2) with call to O3uptkByCloudAndBrSALA - Replace HET(ind_O3,3) with call to O3uptkByCloudAndBrSALC gckpp_HetRates.F90 - Use H instead of State_Het for clarity in several routines - Remove H%HetTemp - Compute Br and Cl branching ratios in Halide_Conc (so that we don't have to keep recomputing them in the functions) flexchem_mod.F90 - Use new field names of State_Het where necessary species_database.yml - Add Henry_CR and Henry_K0 for O3 gckpp_Global.F90 and gckpp_Rates.F90 - Rebuilt with KPP 2.3.2_gc Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 186a147 - Browse repository at this point
Copy the full SHA 186a147View commit details
Commits on May 19, 2021
-
Peel out rate functions for HBr uptake by SALA and SALC to gckpp.kpp
gckpp.kpp: - Add functions HBrUptkBySALA and HBrUptkBySALC - Add parameters for aerosol types (instead of hardwired numbers) - Add parameters for fine/coarse (for SSALK, aWATER etc) - Add parameters for KHETI_SLA indices (instead of hardwired numbers) - Updated array references with these parameters accordingly aerochem.eqn: - Replaced HET(ind_HBr,1) with call to HBrUptkBySALA - Replaced HET(ind_HBr,2) with call to HBrUtpkBySALC gckpp_Global.F90 gckpp_Rates.F90 - Rebuilt with KPP 2.3.2_gc Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for d05f9b8 - Browse repository at this point
Copy the full SHA d05f9b8View commit details -
Peel out rate law funcs for BrNO3 + H2O and BrNO3 + HCl into gckpp.kpp
gckpp.kpp: - Added functions BrNO3uptkByH2O and BrNO3uptkByHCl - Renamed some index parameters to reduce chance of namespace collisions - Updated comments aerochem.eqn: - Replaced HET(ind_BrNO3,1) with call to BrNO3uptkByH2O - Replaced HET(ind_BrNO3,2) with call to BrNO3uptkByHCl gckpp_HetRates.F90 - Remove obsolete code gckpp_Global.F90 gckpp_Rates.F90 - Rebuilt with KPP 2.3.2_gc Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 38b2d8e - Browse repository at this point
Copy the full SHA 38b2d8eView commit details
Commits on May 21, 2021
-
Add variables to store terms like 4*R*T or 8*RSTARG*T to gckpp.kpp
In the hetchem rate-law functions there are many expressions that begin with 4.0 * R * TEMP, etc. These can be pulled out and stored into constants so that they only need to be computed once. We have added as KPP global variables in gckpp.kpp: INV_TEMP = 1 / TEMP FOUR_R_T = 4 * CON_R * TEMP FOUR_RGASLATM_T = 4 * RGASLATM * TEMP EIGHT_RSTARG_T = 8 * RSTARG * T Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 61765a5 - Browse repository at this point
Copy the full SHA 61765a5View commit details
Commits on May 24, 2021
-
Peel out hetchem rate-law function for HOBr + H2O into gckpp.kpp
gckpp.kpp: - Add functions Br2_Yield, Gam_HOBr_Cld, Gam_HOBr_Ice, and HOBrUptkByHBrAndTropCloud - Add State_Het%Br_over_Cl_Cld field to the HetState derived type - Renamed HBr_th to HBr_theta - Renamed HCl_th to HCl_theta - Renamed HNO3_th to HNO3_theta aerochem.eqn - Replace HET(ind_HOBr,1) with call to HOBrUptkByHBrAndTropCloud gckpp_HetRates.F90: - Streamline subroutine Get_Theta_Ice - Assign State_Het%Br_over_Cl_Cld field gckpp_Global.F90 gckpp_Rates.F90 - Rebuilt with KPP 2.3.2_gc Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 031e2ef - Browse repository at this point
Copy the full SHA 031e2efView commit details
Commits on May 26, 2021
-
Peel out hetchem rate-law fns for HOBr+HBr and HOBr+HCl into gckpp.kpp
gckpp.kpp - Added functions Br2_Yield, Gam_HOBr_Cld, Gam_HOBr_Ice, HOBrUptkByHBrAndTropCloud, HOBrUptkByHClAndTropCloud. - Remove branching (i.e. IF (X==1) THEN etc.) from these functions aerochem.eqn: - Replace HET(ind_HOBr,1) with call to HOBrUptkByHBrAndTropCloud - Replace HET(ind_HOBr,2) with call to HOBrUptkByHClAndTropCloud gckpp_HetRates.F90 - Remove more obsolete routines that are now in gckpp.kpp gckpp_Rates.F90 - Rebuilt with KPP 2.3.2_gc Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 05ac72e - Browse repository at this point
Copy the full SHA 05ac72eView commit details
Commits on May 27, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 9aed89d - Browse repository at this point
Copy the full SHA 9aed89dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 99c3f7f - Browse repository at this point
Copy the full SHA 99c3f7fView commit details -
Uncomment debug code in gckpp_HetRates.F90
Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 7d6b6c3 - Browse repository at this point
Copy the full SHA 7d6b6c3View commit details -
Configuration menu - View commit details
-
Copy full SHA for b7af204 - Browse repository at this point
Copy the full SHA b7af204View commit details -
Configuration menu - View commit details
-
Copy full SHA for f00deae - Browse repository at this point
Copy the full SHA f00deaeView commit details -
Merge branch 'feature/msl/kpp' of /n/home13/mslong/AeroChem/src/GEOS-…
…Chem into feature/msl/kpp This commit combines the work done by Mike Long and Bob Yantosca in bringing the code from sulfate_mod.F90 and gckpp_HetRates.F90 into KPP. Resolved conflicts in: 1. GeosCore/flexchem_mod.F90 2. Headers/species_database_mod.F90 3. KPP/aerochem/aerochem.eqn 4. KPP/aerochem/gckpp.kpp Rebuilt these files with KPP 2.3.2_gc 1. KPP/aerochem/gckpp_Function.F90 2. KPP/aerochem/gckpp_Global.F90 3. KPP/aerochem/gckpp_Jacobian.F90 4. KPP/aerochem/gckpp_Monitor.F90 5. KPP/aerochem/gckpp_Rates.F90 Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 1a7ab1b - Browse repository at this point
Copy the full SHA 1a7ab1bView commit details -
Merge modifications from Mike Long for Aqchem and Sulfate chem
KPP/build_mechanism.sh - Make sure we do not delete gckpp_AqRates.F90 and gckpp_Sulfate.F90 KPP/gckpp_AqRates.F90 KPP/gckpp_Sulfate.F90 - Restored from prior commit KPP/gckpp_HetRates.F90 - Make ARSL1K, KIIR1LTD, and KIIR1R2L public - Comment out the remaining code not already pulled into gckpp.kpp Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 94516cf - Browse repository at this point
Copy the full SHA 94516cfView commit details
Commits on Jun 4, 2021
-
Allow skipping of "dummy" KPP placeholder species in the species DB
Headers/species_mod.F90: - Add nOmitted and nRealSpc to the SpcIndCt type - Add OmittedId in the Species type - Skip defining a new species in Spc_Create if Is_Omitted=T Headers/species_database_mod.F90: - Zero SpcCount%nOmitted and SpcCount%nRealSpc - Test if a species is omitted. If it is, increment SpcCount%nOmitted and then cycle to the next species - Subtract SpcCount%nOmitted from ThisSpc%modelId - Don't throw an error for omitted species Headers/state_chm_mod.F90: - Add State_Chm%nOmitted field - Now define State_Chm%nSpecies with SpcCount%nRealSpc - Allocate enough slots in the KPP mapping vectors so that the indexing (which includes the omitted species) comes out correct GeosCore/flexchem_mod.F90: - Update the loop where KPP variables MW, SR_MW, HENRY_K0, HENRY_CR are defined to skip "dummy" placeholder species KPP/aerochem/gckpp_Sulfate_mod.F90 - Make sure is_HMS > 0 before using it - Uncomment call to HET_DROP_CHEM - Make sure FC > 0 before entering an IF block where it is found in a denominator run/shared/species_database.yml: - Add dummy species with Is_Omitted: true tags Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 73fa6bc - Browse repository at this point
Copy the full SHA 73fa6bcView commit details -
Make sure to zero L2S, L3S .. L6S in gckpp_Sulfate.F90 (temporarily)
This can be undone later. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 92907a0 - Browse repository at this point
Copy the full SHA 92907a0View commit details -
Configuration menu - View commit details
-
Copy full SHA for ebdffca - Browse repository at this point
Copy the full SHA ebdffcaView commit details -
Merge branch 'feature/msl/kpp' of https://github.com/geoschem/geos-chem…
… into feature/msl/kpp
Configuration menu - View commit details
-
Copy full SHA for 6a2710c - Browse repository at this point
Copy the full SHA 6a2710cView commit details
Commits on Jun 7, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 83878c8 - Browse repository at this point
Copy the full SHA 83878c8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 88a6081 - Browse repository at this point
Copy the full SHA 88a6081View commit details -
Temporarily comment out call to GET_DUST_ALK in gckpp_Sulfate.F90
We will restore this later Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 46ff311 - Browse repository at this point
Copy the full SHA 46ff311View commit details
Commits on Jun 8, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 36651b3 - Browse repository at this point
Copy the full SHA 36651b3View commit details -
Fix minor issues post-merge with feature/msl/kpp code
aerochem.eqn: - Remove leftover ALKCLD and ALKDST{1-7} species. These are for the acid dust uptake but are not needed here gckpp_Util.F90: R - Rebuilt with KPP 2.3.2_gc run/GCClassic/input.geos.templates/input.geos.fullchem - Added HMS as an advected species run/shared/species_database.yml: - Remove DUMMY, HpA, HpC species, these were removed from aerochem.eqn - Add entries for HMS, HSO3m, SO3mm Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for c2fa6da - Browse repository at this point
Copy the full SHA c2fa6daView commit details -
Update the KPP/build_mechanism.sh script
(1) Only remove *.F90 files that are generated by KPP before calling the kpp executable. This will allow us to leave other files (such as include files) untouched. (2) Throw an error and exit if the gckpp.kpp file is not found. (3) Update comments Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 0b3c02a - Browse repository at this point
Copy the full SHA 0b3c02aView commit details -
Add State_Het%WetArea field; simpify some expressions:
gckpp.kpp - Add State_Het%wetArea(14) field to gckpp.kpp global definitions. - Add Buf_Cap_SALAAL and Buf_Cap_SALCAL flexchem_mod.F90: - State_Het%wetArea is defined from State_Chm%WetAeroArea in Set_Kpp_Gridbox_Values (in flexchem_mod.F90) - Use KPP indices ind_HSO3m and ind_SO3mm in flexchem_mod.F90 instead of using the Ind_() function, which is much slower. - Define Buf_Cap_SALAAL = MW(ind_SALAAL) * 7.0e-5 - Define Buf_Cap_SALCAL = MW(ind_SALCAL) * 7.0e-5 Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for e5aa7b1 - Browse repository at this point
Copy the full SHA e5aa7b1View commit details -
Add Buf_Cap_SALAAL and Buf_Cap_SALCAL to gckpp.kpp; rebuild mechanism
This should have been done at the last commit but evidently the changes never got staged. gckpp.kpp - Add Buf_Cap_SALAAL and Buf_Cap_SALACL flexchem_mod.F90 - Set Buf_Cap_SALAAL = MW(ind_SALAAL) * 7.0e-5_dp - Set Buf_Cap_SALCAL = MW(ind_SALCAL) * 7.0e-5_dp gckpp_Global.F90: - Rebuild with KPP 2.3.2_gc Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 381a749 - Browse repository at this point
Copy the full SHA 381a749View commit details
Commits on Jun 9, 2021
-
Merge branch 'feature/msl/kpp' of https://github.com/geoschem/geos-chem…
… into feature/msl/kpp
Configuration menu - View commit details
-
Copy full SHA for 5df5d07 - Browse repository at this point
Copy the full SHA 5df5d07View commit details
Commits on Jun 11, 2021
-
Migrate rate functions from gckpp.kpp to aerochem_RateLawFuncs.F90
The length of the rate law function library (included in the #INLINE F90_RATES section of gckpp.kpp) was becoming too long for KPP to inline into gckpp_Rates.F90. As a solution, we have moved all of the rate law functions to a new F90 module (aerochem_RateLawFuncs.F90). In gckpp.kpp, we place a "USE aerochem_RateLawFuncs" statement within the #INLINE F90_RCONST block. In this way, the rate law functions are directly included in the subroutine Update_Rconst() in gckpp_Rates.F90. We have rebuilt the KPP/aerochem/gckpp_*.F90 files with a preliminary version of KPP 2.3.3_gc (currently in the dev branch of the KPP repo). Also, we save the prior value of C(ind_SALAAL) and C(ind_SALCAL) in State_Het%SALAAL_save and State_Het%SALCAL save. This avoids us having to use State_Chem%Species within the aerochem_RateLawFuncs.F90 module. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for bb9c06e - Browse repository at this point
Copy the full SHA bb9c06eView commit details -
Move rate law functions and parameters to aerochem_RateLawFuncs.F90
KPP evidently has a limit as to how long a rate-law library that is inlined with F90_RATES can be. To get around this issue, we have moved the rate-law functions to a module named aerochem_RateLawFuncs.F90, which is inlined with F90_RCONST. This will get referenced directly from subroutine Update_RConst in gckpp_Rates.F90. We can also move all of the the defined parameters in gckpp_Global.F90 (except for CON_R) can be moved to aerochem_RateLawFuncs.F90, where they are now declared PRIVATE. This will avoid namespace collisions. NOTE: There seems to be a KPP parsing error that sometimes adds I2O4 to the end of lines. Continuing to investigate. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 567b959 - Browse repository at this point
Copy the full SHA 567b959View commit details
Commits on Jun 22, 2021
-
Peel out HOBr + BrSALA rate law function into aerochem_RateLawFuncs.F90
We have migrated the code that computes the hetchem reaction rate of HOBr + BrSALA = Br2 from gckpp_HetRates.F90 into the new rate law library module aerochem_RateLawFuncs.F90. This involved the following updates: aerochem_RateLawFuncs.F90: - add IMPLICIT NONE - add functions Gam_HOBr_Aer and HOBrUptkByBrSALAandTropCloud - cosmetic & formatting updates aerochem.eqn: - Remove obsolete rxns - Replace HET(ind_HOBr,5) with call to HOBrUptkByBrSALAandTropCloud gckpp.kpp - add Br_over_Cl_SALA and Br_over_Cl_SALC scalar fields to the HetState derived type definition gckpp_HetRates.F90: - In routine Halide_Conc, compute State_Het%Br_over_Cl_SALA field - In routine Halide_Conc, compute State_Het%Br_over_Cl_SALC field flexchem_mod.F90: - Remove obsolete indices id_SALA and id_SALC gckpp_Global.F90 gckpp_Rates.F90 - Rebuilt with KPP 2.3.3_gc Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 669a855 - Browse repository at this point
Copy the full SHA 669a855View commit details -
Peel out rate law fn for HOBr + BrSALC into aerochem_RateLawFuncs.F90
The rate-law function for HOBr + BrSALC = Br2 has now been peeled out of gckpp_HetRates and into aerochem_RateLawFuncs.F90: aerochem_RateLawFuncs.F90: - Add function HOBrUptkByBrSALCandTropCloud (which is a copy of function HOBrUptkByBrSALAandTropCloud) with various arguments updated aerochem.eqn - Replace HET(ind_HOBr,6) with call to HOBrUptkByBrSALCandTropCloud gckpp_Rates.F90 - Rebuilt with KPP 2.3.3_gc Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for dc5e643 - Browse repository at this point
Copy the full SHA dc5e643View commit details
Commits on Jun 23, 2021
-
Now use _SSA instead of _SALA and _SSC instead of _SALC in State_Het
Some of the variable names in State_Het used the _SALA and _SALC suffixes (e.g. Br_conc_SALA, Cl_conc_SALA). But this can be misleading because in the case of Br_Conc_SALA, this is Br- concentration in sea salt aerosol which comes from BrSALA. Therefore, to make things more generic and to also line up with the SSA and SSC parameters for the aerosol types, we now use _SSA and _SSC suffices for fields of the State_Het object. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 0c38144 - Browse repository at this point
Copy the full SHA 0c38144View commit details -
Peel out rate law functions for HOBr + SALACL and HOBr + SALCCL
aerochem_RateLawFuncs.F90: - Added function HOBrUptkBySALACLandTropCloud - Added function HOBrUptkBySALCCLAndTropCloud - Removed unused variables aerochem.eqn - Replace HET(ind_HOBr, 3) with call to HOBrUptkBySALACLAndTropCloud - Replace HET(ind_HOBr, 4) with call to HOBrUptkBySALCCLAndTropCloud gckpp_Rates.F90 - Rebuilt with KPP 2.3.3_gc Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for b75b5e7 - Browse repository at this point
Copy the full SHA b75b5e7View commit details -
Move common rate-law utility functions into aerochem/rateLawUtilFuncs…
….F90 We have created a new module to contain common functions that many of the rate-law computations use. These have been split off from aerochem_RateLawFuncs.F90 into rateLawUtilFuncs.F90. These include the functions ARS_L1K, GCARR_*, CloudHet, kIIR1Ltd, ReactoDiff_Corr, Safe_Div, and Is_Safe_Div. Right now we are storing this in the aerochem folder but this could be moved to another folder later on. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 9c2b080 - Browse repository at this point
Copy the full SHA 9c2b080View commit details -
Updates to aerochem_RateLawFuncs.F90 for consistency & efficiency
k_HOBr_HSO3 is now k_HOBr_HSO3m (HSO3m = HSO3-) k_HOBr_HSO3_2 is now k_HOBr_SO3mm (SO3mm = SO3--) Also removed brIce, dummy, area variables where not needed. Also, when computing the branching ratios in the HOBrUptk* functions, reorder the logic so that the function call to Br2_Yield will only occur if the Br/Cl- ratio is <= 5.0e-4. This avoids unnecessary function calls. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 708b634 - Browse repository at this point
Copy the full SHA 708b634View commit details -
Modified a couple fields in the State_Het derived type
gckpp.kpp - In the State_Het derived type definition: (1) mHNO4 is now HNO4_molal (2) mNO3 iis now NO3_molal (3) mSO4 is now SO4_molal (4) Removed fupdateHOBr (5) Removed fupdateHOCl flexchem_mod.F90 - Use _dp instead of _f8 - Assign HSO4_molal, NO3_molal, NO4_molal fields of State_Het - Remove assignment of fupdateHOBr, fupdateHOCl fields of State_Het (4) Updated comments Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 2da1384 - Browse repository at this point
Copy the full SHA 2da1384View commit details -
Peel out HOBr + HSO3m and HOBr + SO3mm rate-law functions
aerochem_RateLawFuncs.F90: - Add function HOBrUptkByHSO3mAndTropCloud - Add function HOBrUptkBySO3mmAndTropCloud aerochem.eqn: - Replace HET(ind_HOBr,7) with call to HOBrUptkByHSO3mAndTropCloud - Replace Het(ind_HOBr,8) with call to HOBrUptkBySO3mmAndTropCloud gckpp_Global.F90 gckpp_Rates.F90 - Rebuilt with KPP 2.3.2_gc Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 8d3f295 - Browse repository at this point
Copy the full SHA 8d3f295View commit details
Commits on Jun 30, 2021
-
First set of modifications for pulling out ClNO3 + H2O rate law funcs
aerochem_RateLawFuncs.F90: - Add function Gam_ClNO3_Aer - Add function Gam_ClNO3_Ice - Add Function ClNO3uptkByH2OandTropCloud aerochem.eqn - Replace HET(ind_ClNO3,1) with call to ClNO3uptkByH2OandTropCloud gckpp_HetRates.F90 - Define State_Het%frac_SALACL in routine Halide_Conc gckpp_Global.F90 gckpp_Rates.F90 - Rebuilt with KPP 2.3.3_gc NOTE: Still need to pull out the function calls from the old HetClNO3_TCld routine... Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 3bf15a3 - Browse repository at this point
Copy the full SHA 3bf15a3View commit details
Commits on Jul 1, 2021
-
Partial peelout of ClNO3 + HCl rate law functions
aerochem_RateLawFuncs.F90 - Added function ClNO3uptkByHClAndTropCloud, but disabled the algorithm from the hold HetClNO3_TCld, which produces unexplained numerical diffs. aerochem.eqn - Replace Het(ind_ClNO3,2) with ClNO3uptkByHClAndTropCloud gckpp_Rates.F90 - Rebuilt with KPP 2.3.3_gc Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for b3d4428 - Browse repository at this point
Copy the full SHA b3d4428View commit details -
Add zero-diff updates for hetchem
aerochem_RateLawFuncs.F90: - Add function ClNO3uptkByHBrandTropCloud, but skip the stratopsheric computation for now. - Add function ClNO3uptkByBrSALAandTropCloud, which is not yet activated aerochem.eqn - Replace Het(ind_ClNO3,3) with call to ClNO3uptkByHBrandTropCloud - Replace het(ind_ClNO3,4) with 0.0_dp for now gckpp_Rates.F90 - Rebuilt with KPP 2.3.2_gc Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 74b4611 - Browse repository at this point
Copy the full SHA 74b4611View commit details -
Peel out HOCl + HBr rate law function (but still issue w/ KHETI_SLA(9)
aerochem_RateLawFuncs.F90: - Add function HOClUptkByHBr aerochem.eqn - Replace HET(ind_HOCl,2) with call to HOClUptkByHBr gckpp_Rates.F90 - Rebuilt with KPP 2.3.3_gc flexchem_mod.F90: - Explicitly copy State_Chm%KHETI_SLA(1:11) to State_Het%KHETI_SLA in order to avoid any issues NOTE: Multiplying State_Het%KHETI_SLA(9) * State_Het%xArea(13) introduces numerical differences. Perhaps from a problem upstream. Will look at this later. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 20a03b9 - Browse repository at this point
Copy the full SHA 20a03b9View commit details
Commits on Jul 6, 2021
-
Fix numerical instability in ucx_mod.F90 and State_Chm%KHETI_SLA
In GeosCore/ucx_mod.F90: (1) In routine CALC_STRAT_AER, make sure that all PRIVATE variables are initialized or zeroed in the !$OMP PARALLEL loop. This will help to prevent numerical instability issues. (2) In routine CALC_SLA_GAMMA, set RXNGAMMA(2), RXNGAMMA(5), RXNGAMMA(9), and RXNGAMMA(11) to 0.0_f8 instead of TINY(1e0_f8). The TINY function returns the smallest positive number representable by REAL*8 (which is ~1e-308), which is very close to the range of denormal numbers. Using 0.0_f8 will set these elements to exactly zero, which should eliminate any numerical noise or numerical instability. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 999f748 - Browse repository at this point
Copy the full SHA 999f748View commit details -
Restore KHETI_SLA(HOCl_plus_HBr) term in hetchem routine HOClUptkByHBr
We had previously commmented out the term k = k + H%xArea(SLA) * H%KHETI_SLA(HOCl_plus_HBr) because this was introducing numerical noise that could not be matched to the reference code. The problem was due to the field State_Chm%KHETI_SLA(9) being set to TINY(1.0e_f8) in ucx_mod.F90. The TINY function returns the smallest possible positive value for REAL*8 in this case, which is ~1e-308. This value is very close to being denormal, and can cause numerical instability. We fixed that issue by setting State_Chm%KHETI_SLA(9) = 0.0_f8, which avoids the instability. With the instability fixed, we are able to restore this term to function HOClUptkByHBr, and we have obtained identical results to the reference code (with the same fix in ucx_mod.F90). Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for fc2591d - Browse repository at this point
Copy the full SHA fc2591dView commit details -
Peel out rate law function for ClNO3 + HBr into aerochem_RateLawFuncs…
….F90 aerochem_RateLawFuncs.F90: - Add tropopsheric cloud uptake (following the algorithm of the old HetClNO3_TCld routine) into ClNO3UptkByHBrAndTropCloud Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for be041bd - Browse repository at this point
Copy the full SHA be041bdView commit details -
Peel out ClNO3 + HCl rate law function into aerochem_RateLawFuncs.F90
We have added the algorithm for ClNO3 + HCl uptake in tropospheric ice cloud to rate law function ClNO3uptkByHClAndTropCloud. Previously, we had only implemented the stratospheric uptake in this function, as we had seen numerical noise. This numerical noise has since been fixed. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 95489b6 - Browse repository at this point
Copy the full SHA 95489b6View commit details
Commits on Jul 12, 2021
-
Configuration menu - View commit details
-
Copy full SHA for a11e0ab - Browse repository at this point
Copy the full SHA a11e0abView commit details
Commits on Jul 14, 2021
-
Temporarily disable ClNO3, ClNO2, HOCl rate law functions
This will allow us to peel out rate-law functions one by one, in order to better avoid errors. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 7161d00 - Browse repository at this point
Copy the full SHA 7161d00View commit details -
Zero-diff updates for ClNO3 + { HBr, HCl, BrSALA }
We have restarted peeling out the rate law functions for ClNO3 + HBr, ClNO3 + HCl, and ClNO3 + BrSALA. The ClNO3 + BrSALA function yields some very small numerical differences in the clear-sky part of the computation, this still needs to be investigated. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 6211575 - Browse repository at this point
Copy the full SHA 6211575View commit details -
Stash through peel out of ClNO3 + BrSALC
Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 5c8abe1 - Browse repository at this point
Copy the full SHA 5c8abe1View commit details -
Peel out rate law functions for ClNO3 + { SALACL, SALCCL }
aerochem.eqn: - Replace HET(ind_ClNO3,4) by call to ClNO3uptkByBrSALA (prev commit) - Replace HET(ind_ClNO3,5) by call to ClNO3uptkByBrSALC (prev commit) - Replace HET(ind_ClNO3,6) by call to ClNO3uptkBySALACL - Replace HET(ind_ClNO3,7) by call to ClNO3uptkBySALCCL aerochem_RateLawFuncs.F90 - Add function ClNO3uptkByBrSALA (prev commit), partially disabled - Add function ClNO3uptkByBrSALC (prev commit) - Add function ClNO3uptkBySALACL, partially disabled - Add function ClNO3uptkBySALCCL - NOTE: "partially disabled" means that we have commented out the fine aerosol uptake parts of these functions, pending investigation of numerical differences gckpp_HetRates.F90: - In routine Get_Halide_SsaConc, don't multiply by 0.3333333, but instead divide by 3.0_dp in expression for v_tot. This will avoid numerical precision issues. gckpp_Rates.F90 - Rebuilt with KPP 2.3.3_gc Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 88cf71c - Browse repository at this point
Copy the full SHA 88cf71cView commit details
Commits on Jul 15, 2021
-
Peel out HOCl + HBr and HOCl + HCl (partial) rate law functions
aerochem.eqn: - Replace HET(ind_HOCl,1) with call to HOClUptkByHClAndTropCloud - Replace HET(ind_HOCl,2) with call to HOClUptkByHBr aerochem_RateLawFuncs.F90: - Add function Gam_HOCl_Cld - Add function HOClUptkByHClAndTropCloud (partially implemented) - Add function HOClUptkByHBr gckpp_Rates.F90 - Rebuilt with KPP 2.3.3_gc NOTE: The rate computations in tropospheric cloud are causing some numerical differences. These have been disabled, pending investigation. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for c167423 - Browse repository at this point
Copy the full SHA c167423View commit details -
Complete peelout of HOCl + HCl rate law function
aerochem_RateLawFuncs.F90: - Fix error in routine Gam_HOCl_Cld. The H_X (Henry's law term) should have been included in the term for gb_tot, but was omitted. This results in zero diffs w/r/t the reference code. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for b20001b - Browse repository at this point
Copy the full SHA b20001bView commit details -
Simplify coding of Gam_HOCl_Cld and minor changes
We now compute branchCl = k_Cl / k_tot in the hetchem routine Gam_HOCl_Cld instead of computing it externally. This update gives zero diffs w/r/t the reference code. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 00b2daf - Browse repository at this point
Copy the full SHA 00b2dafView commit details -
Peel out HOCl + SALACL rate law function
aerochem.eqn - Add function call to HOClUptkBySALACLandTropCloud for HOCl + SALACL rxn gckpp_Rates.F90 - Rebuilt with KPP 2.3.3_gc Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for eace04c - Browse repository at this point
Copy the full SHA eace04cView commit details -
Peel out HOCl + SALCCL rate law function
aerochem.eqn - Add call to HOClUptkBySALCCLandTropCloud for HOCl + SALCCL rxn gckpp_Rates.F90 - Rebuilt with KPP 2.3.3_gc Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for c76cc22 - Browse repository at this point
Copy the full SHA c76cc22View commit details -
Peel out rate law functions for HOCl + HSO3m and HOCl + SO3mm
gckpp.kpp - Rename HSO3_conc_Cld to HSO3_aq_Cld in TYPE(HetState) - Rename SO3_conc_Cld to SO3_aq_Cld in TYPE(HetState) - Add TSO3_aq_Cld to TYPE(HetState) (will hold SO3 + HSO3 sum) flexchem_mod.F90: - Assign values to the HSO3_aq_Cld, SO3_aq_Cld, and TSO3_aq_Cld fields of the State_Het object aerochem.eqn: - Add call to HOClUptkByHSO3mAndTropCloud for HOCl + HSO3m rxn - Add call to HOClUptkBySO3mmAndTropCloud for HOCl + SO3mm rxn aerochem_RateLawFuncs.F90: - Renamed H%HSO3_conc_Cld to H%HSO3_aq_Cld - Renamed H%SO3_conc_Cld to H%SO3_aq_Cld - Added function HOClUptkByHSO3mAndTropCloud - Added function HOClUptkBySO3mmAndTropCloud - Now pass branchSO3 out of subroutine Gam_HOCl_Cld gckpp_Global.F90 gckpp_Rates.F90 - Rebuilt with KPP 2.3.3_gc Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for a62fc62 - Browse repository at this point
Copy the full SHA a62fc62View commit details -
Rename several fields of State_Het for clarity
gckpp.kpp: - Renamed Br_branch_{CldA,CldC,CldG} to frac_Br_{CldA,CldC,CldG} - Renamed Cl_branch_{CldA,CldC,CldG} to frac_Cl_{CldA,CldC,CldG} - Renamed HSO3_conc_Cld to HSO3_aq - Renamed SO3_conc_Cld to SO3_aq - Renamed TSO3_conc_Cld to TSO3_aq - Added frac_HSO3_aq - Added frac_SO3_aq - Updated comments aerochem_RateLawFuncs.F90: gckpp_HetRates.F90 - Updates for consistency with State_Het fields gckpp_Global.F90 gckpp_Rates.F90 - Rebuilt with KPP 2.3.3_gc These updates result in zero diffs w/r/t the prior commit. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for f933f12 - Browse repository at this point
Copy the full SHA f933f12View commit details
Commits on Jul 16, 2021
-
Rename hetchem rate law functions, removing "AndTropCloud"
We have simplified the names of most hetchem rate law functions by removing "andTropCloud" or "AndTropCloud". Updated both the aerochem.eqn and aerochem_RateLawFuncs.F90 modules, and rebuilt gckpp_Rates.F90 with KPP 2.3.3_gc. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 7ce3543 - Browse repository at this point
Copy the full SHA 7ce3543View commit details -
Peel out ClNO2+SALACL, ClNO2+SALCCl, ClNO2+HCl rate law functions
aerochem.eqn: - Add function call to ClNO2uptkBySALACL for ClNO2+SALACL rxn - Add function call to ClNO2uptkBySALCCL for ClNO2+SALCCL rxn - Add function call to ClNO2uptkByHCl for ClNO2+HCl rxn aerochem_RateLawFuncs.F90: - Add function ClNO2uptkBySALACL - Add function ClNO2uptkBySALCCL - Add function ClNO2uptkByHcl - Add function ClNO2uptkByBrSALA (for next step) - Remove H%is_UCX, it is redundant flexchem_mod.F90: - Updated comments gckpp.kpp - Updated comments gckpp_Global.F90 gckpp_Rates.F90 - Rebuilt with KPP 2.3.3_gc This update gives zero-diffs w/r/t the reference code. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for b21eb55 - Browse repository at this point
Copy the full SHA b21eb55View commit details -
Peel out ClNO2+BrSALA, ClNO2+BrSALC, ClNO2+HBr rate law functions
aerochem.eqn - Add call to ClNO2uptkByBrSALA for ClNO2 + BrSALA hetchem rxn - Add call to ClNO2uptkByBrSALC for ClNO2 + BrSALC hetchem rxn - Add call to ClNO2uptkByHBr for ClNO2 + HBr hetchem rxn aerochem_RateLawFuncs.F90: - Add function ClNO2uptkByBrSALC - Add function ClNO2uptkByHBr - Now pass H%pHSSA(1) to the pH argument of ClNO2uptkByBrSALA - Now pass H%pHSSA(1) to the pH argument of ClNO2uptkBySALACL gckpp_Rates.F90 - Rebuilt with KPP 2.3.3_gc This commit gives zero-diffs w/r/t the reference code Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 8b9894f - Browse repository at this point
Copy the full SHA 8b9894fView commit details -
Partially re-implement ClNO3uptkByH2O function
aerochem.eqn: - Restore call to ClNO3uptkByH2O for ClNO3 + H2O hetchem rxn aerochem_RateLawFuncs.F90: - Temporarily comment out the ClNO3 + H2O uptake in trop cloud while investigating the source of numerical differences gckpp_Rates.F90: - Rebuilt with KPP 2.3.3_gc This results in zero-diffs w/r/t the equivalent modifications in the reference code. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 75981e9 - Browse repository at this point
Copy the full SHA 75981e9View commit details -
Temporarily disable ClNO3 hetchem functions to look for numerical diffs
Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for e698000 - Browse repository at this point
Copy the full SHA e698000View commit details -
Replace additional TINY(1e+0_f8) with 0.0_f8 in ucx_mod.F90
In routine CALC_SLA_GAMMA, we had replaced TINY(1e+0_f8) with 0.0_f8 but did not catch all instances. We have now replaced the remaining instances. This should hopefully yield better numerical stability. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for fdb5bc6 - Browse repository at this point
Copy the full SHA fdb5bc6View commit details -
Do not enforce minimum values for Br and Cl concentrations in hetchem
aerochem.eqn: - Restore ClNO3 + BrSALA for testing aerochem_RateLawFuncs.F90 - Prevent div-by-zero in routines where gamma uptake coefficients are computed. In many cases if Br or Cl conc is zero, gamma is zero. gckpp_HetRates.F90: - Initialize all Br and Cl fields of State_Het to zero - Prevent div by zero in several expressions - Avoid setting minimum values of 1.0e-20; set these to zero gckpp_Rates.F90 - Rebuilt with KPP 2.3.3_gc Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for dc161fd - Browse repository at this point
Copy the full SHA dc161fdView commit details
Commits on Jul 19, 2021
-
Restore hetchem rate-law functions for ClNO3
We have uncommented the rate-law functions for ClNO3. These result in minor numerical noise w/r/t the reference code. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for c16851b - Browse repository at this point
Copy the full SHA c16851bView commit details -
Bug fix: restore commented-out lines of code for ClNO3 rate functions
Some of the ClNO3 hetchem rate-law functions had commented-out code. We have now restored these. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for d4469af - Browse repository at this point
Copy the full SHA d4469afView commit details -
Fix typo in aerochem_RateLawFuncs.F90
The variable "brBr" should have been renamed to "branchBr" in routine ClNO3uptkBySALACL. Now fixed. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 53ace18 - Browse repository at this point
Copy the full SHA 53ace18View commit details -
Re-verify that ClNO3 + SALACL and ClNO3 + SALCCL rate law fns are OK
We have gone back to first principles and rewritten the algorithms for ClNO3 + SALACL and ClNO3 + SALCCL. These have now ben re-verified to give zero diffs w/r/t the reference code. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 2c8883a - Browse repository at this point
Copy the full SHA 2c8883aView commit details -
Re-confirm ClNO3 + BrSALC rate law function peel-out is correct
We have re-confirmed that function ClNO3uptkByBrSALC has been properly peeled out of gckpp_HetRates.F90. We obtained identical results w/r/t the reference code. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for f5be859 - Browse repository at this point
Copy the full SHA f5be859View commit details -
Re-confirm that ClNO3 + HBr and ClNO3 + HCl rate law funs work properly
We have tested and confirmed that the ClNO3 + HBr and ClNO3 + HCl rate law functions (in KPP/aerochem/aerochem_RateLawFuncs.F90) have been implemented properly. We obtained identical results w/r/t the reference code. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for f70ff1d - Browse repository at this point
Copy the full SHA f70ff1dView commit details -
Partial validation of ClNO3 + H2O rate law function
We have validated the algorithm contained in the former "HetClNO3" routine (excluding the ClNO3 + H2O uptake in tropospheric cloud). This results in zero diffs w/r/t the reference code. Save code at this point before proceeding further. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 6c22ae7 - Browse repository at this point
Copy the full SHA 6c22ae7View commit details -
Wrap up validation of ClNO3 hetchem rate law functions
ClNO3 + H2O and ClNO3 + BrSALA produce small amounts of numerical noise when compared to the reference code. All other ClNO3 rate law functions show identical resutls w/r/t the reference code. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 02a3794 - Browse repository at this point
Copy the full SHA 02a3794View commit details
Commits on Jul 20, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 5c95a57 - Browse repository at this point
Copy the full SHA 5c95a57View commit details
Commits on Jul 23, 2021
-
Remove obsolete species SO4H1..SO4H4 from aerochem.eqn.
These have been removed, so no need to declare these.
Configuration menu - View commit details
-
Copy full SHA for b683fff - Browse repository at this point
Copy the full SHA b683fffView commit details -
Remove debug printouts in chemistry_mod.F90 and flexchem_mod.F90
Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 58de99f - Browse repository at this point
Copy the full SHA 58de99fView commit details -
Remove unused HpA and HpC from aerochem.eqn; rebuild mechanism
aerochem.eqn: - Remove unused HpA and HpC species from earlier development. These are now unused in the mechanism. gckpp_Util.F90: - Rebuilt with KPP 2.3.3_gc Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 215efb4 - Browse repository at this point
Copy the full SHA 215efb4View commit details -
Undid debug output introduced by Mike Long Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for e8367ec - Browse repository at this point
Copy the full SHA e8367ecView commit details -
Comment out HMS rxns in aerochem.eqn to allow for separate validation
aerochem.eqn - We have commented out the three reactions for HMS so that we can first validate the KPP updates without introducing new science. After that, we can re-introduce the HMS chemistry reactions, and do a "with HMS" vs. "without HMS" comparison. gckpp_*.F90 - Rebuilt with KPP 2.3.3_gc Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 738c661 - Browse repository at this point
Copy the full SHA 738c661View commit details
Commits on Jul 26, 2021
-
Peel out seasalt rxns from gckpp_AqRates.F90 to aerochem_RateLawFuncs…
….F90 aerochem_RateLawFuncs.F90 - Added comments to function AqRate_SALAAL_SO2_O3 - Updated function AqRate_SALAAL_HCl - Added function AqRate_SALAAL_HNO3 - Added function AqRate_SALCAL_SO2_O3 - Added function AqRate_SALCAL_HCl - Added function AqRate_SALCAL_HNO3 aerochem.eqn - Replace K_MT(2) with call to AqRate_SALAAL_HCl - Replace K_MT(3) with call to AqRate_SALAAL_HNO3 - Replace K_MT(4) with call to AqRate_SALCAL_SO2_O3 - Replace K_MT(5) with call to AqRate_SALCAL_HCl - Replace K_MT(6) with call to AqRate_SALCAL_HNO3 gckpp_AqRates.F90 - Removed CMakeLists.F90 - Removed gckpp_AqRates.F90 from CMakeList flexchem_mod.F90 - Removed call to routine Init_SULFATE (from gckpp_AqRates.F90) - Removed call to routine GET_SEASALT_S (from gckpp_AqRates.F90) - Removed call to routine SET_HET (from gckpp_HetRates.F90) gckpp_HetRates.F90: - Removed legacy hetchem rate functions, since most of this functionality has now been moved to aerochem_RateLawFuncs.F90 gckpp_Rates.F90 - Rebuilt with KPP 2.3.3_gc Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for b4e9879 - Browse repository at this point
Copy the full SHA b4e9879View commit details
Commits on Jul 27, 2021
-
Merge branch 'feature/msl/kpp' into feature/bmy/kpp
This merge brings in Mike Long's updates since the last merge into the current feature/bmy/kpp branch. NOTE: This code contains HMS chemistry but it is currently disabled so that we can benchmark without it. Then we can simply reactivate it by uncommenting out the HMS rxns in aerochem.eqn. Resolved conflicts in: - KPP/aerochem/aerochem.eqn Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 647d68f - Browse repository at this point
Copy the full SHA 647d68fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3d4263f - Browse repository at this point
Copy the full SHA 3d4263fView commit details -
Clean up aerochem.eqn and update comment in aerochem_RateLawFuncs.F90
1. Clean up the comments in the sulfate_mod.F90 section of aerochem.eqn. 2. Fix typo in function AqRate_SALAAL_HNO3 (NITs should be NIT). Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 586613b - Browse repository at this point
Copy the full SHA 586613bView commit details
Commits on Aug 16, 2021
-
Move KPP/aerochem to KPP/fullchem
We have renamed the aerochem folder to "fullchem" (and all relevant files therein) in order to prepare for the merge into the dev branch. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for e9bcc42 - Browse repository at this point
Copy the full SHA e9bcc42View commit details
Commits on Aug 17, 2021
-
Rename "flexchem_mod.F90" to "fullchem_mod.F90"
Renamed the module GeosCore/flexchem_mod.F90 to GeosCore/fullchem_mod.F90, to indicate that this module is for the fullchem mechanism. There will soon be other KPP-generated chemistry mechanisms so it makes sense to separate the interface modules by renaming them. Also updated all references to flexchem_mod with references to fullchem_mod. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 0da69d4 - Browse repository at this point
Copy the full SHA 0da69d4View commit details -
Fix issues with the renaming of flexchem_mod.F90 to fullchem_mod.F90
(1) Need to add fullchem_mod.F90 to the GeosCore/CMakeLists.txt and remove flexchem_mod.F90 from there. (2) chemistry_mod.F90: Corrected a leftover ref to flexchem_mod.F90 (3) cleanup.F90: Cleanup_FlexChem should be Cleanup_FullChem Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for f60a4c0 - Browse repository at this point
Copy the full SHA f60a4c0View commit details -
Removed obsolete routines from gckpp_HetRates.F90
All of the rate law functions have been moved to the module fullchem_RateLawFuncs.F90. Therefore, we have removed much of the obsolete code from the gckpp_HetRates.F90 module. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 8c8dfe8 - Browse repository at this point
Copy the full SHA 8c8dfe8View commit details -
Initialize State_Het quantities in new fullchem_HetStateMod.F90 file
GeosCore/flexchem_mod.F90 - Removed file, this has been copied to fullchem_mod.F90 GeosCore/fullchem_mod.F90: - Routine Set_Kpp_GridBox_Values now calls FullChem_SetHetState to initialize fields of the State_Het object. KPP/fullchem/fullchem_HetStateMod.F90 - New function, contains the remaining routines from the old module gckpp_HetRates.F90 that are used to initialize State_Het. KPP/fullchem_RateLawFuncs.F90 - Move comments from the old gckpp_HetRates.F90 here. KPP/fullchem/CMakeLists.txt KPP/fullchem/gckpp_Sulfate.F90 - Remove references to gckpp_HetRates.F90. - NOTE: Some utility functions from the old gckpp_HetRates are now stored in rateLawUtilFuncs.F90. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 01ea06e - Browse repository at this point
Copy the full SHA 01ea06eView commit details
Commits on Aug 18, 2021
-
Structural updates + cleanup before merging updates into dev
physconstants.F90 - Remove parameters DO_SULFATEMOD_SEASALT and DO_SULFATEMOD_CLD state_chm_mod.F90: - Add Do_SulfateMod_SeaSalt and Do_SulfateMod_Cld to TYPE(ChmState), so that these variables can be passed via State_Chm gckpp_Sulfate.F90 fullchem_HetStateMod.F90 - Removed fullchem_SulfurChemFuncs.F90 - Renamed from gckpp_Sulfate.F90 - Now define IS_FULLCHEM and IS_OFFLINE, which had been declared but were never defined fullchem_HetStateFuncs.F90 - Renamed from fullchem_HetStateMod.F90 fullchem_mod.F90 - Use "flexchem" for timers - Use State_Chm%Do_SeasaltMod_Cld and State_Chm%Do_SeasaltMod_Seasalt instead of parameters from physconstants.F90 - Call fullchem_SulfurCldChem, renamed from SET_CLD_S - Updated comments, trimmed trailing whitespace. sulfate_mod.F90 - Use State_Chm%Do_SeasaltMod_Cld and State_Chm%Do_SeasaltMod_SeaSalt instead of parameters from physconstants.F90. KPP/fullchem/CMakeLists.txt - Add fullchem_HetStateFuncs.F90, remove fullchem_HetStateMod.F90 - Add fullchem_SulfurChemFuncs.F90, remove gckpp_Sulfate NOTE: This commit results in identical results (w/in a tolerance of 0.0001%) with respect to the reference code. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 4e7bc6c - Browse repository at this point
Copy the full SHA 4e7bc6cView commit details -
KPP/fullchem/gckpp.kpp now links to KPP/fullchem/fullchem.kpp
For naming consistency, the gckpp.kpp file now links to fullchem.kpp, which reflects that this is the .kpp file for the fullchem mechanism. This is because the current KPP code uses the filename to define the prefix for all of the Fortran generated data files. This allows us to keep user-modified files for the "fullchem" mechanism to have the "fullchem_" prefix, and to have all KPP-generated files (except the symlink gckpp.kpp) to have the prefix "gckpp_". We use the "gckpp_" prefix (i.e. GEOS-Chem-KPP) as a standard naming convention for the sake of compilation, because the code needs to reference KPP-built code with via USE statements. Therefore, the KPP-generated output files must have the same naming convention regardless of what the name of the mechanism (e.g. fullchem, custom, etc.) is. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 24ef04f - Browse repository at this point
Copy the full SHA 24ef04fView commit details -
Update files in KPP/custom to be copies of KPP/fullchem (+ READMEs)
We have added custom.eqn and custom.kpp (linked to gckpp.kpp) in the KPP/custom folder. In this folder we also link to the modules in KPP/fullchem, with the instruction for the user to consider copying these files and modifying them if so needed. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for cc66bc3 - Browse repository at this point
Copy the full SHA cc66bc3View commit details -
Merge branch 'dev-kpp' into dev+dev-kpp
This merge brings in the KPP modifications (for hetchem rates and sulfate chemistry) into the standard development branch. This will be followed by further updates to the chemistry mechanism (to enable HMS rxns, C2H2 + C2H4 rxns, and IONO2 hydrolysis rxns). We will make these updates separately in order to better benchmark and evaluate them. Resolved conflicts in: - GeosCore/isorropiaII_mod.F90 - GeosCore/sulfate_mod.F90 - Headers/state_chm_mod.F90 - KPP/fullchem/gckpp_HetRates.F90 - KPP/fullchem/gckpp_Rates.F90 - run/shared/species_database.yml Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 360744c - Browse repository at this point
Copy the full SHA 360744cView commit details -
Rebuilt gckpp_Rates.F90 with KPP 2.3.3_gc post-merge
We have rebuilt the fullchem mechanism in order to get a fresh copy of the KPP/fullchem/gckpp_Rates.F90 file. This will ensure that any errors from manual merging will be eliminated. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for c8b0e4f - Browse repository at this point
Copy the full SHA c8b0e4fView commit details -
Add error check: Don't compute HMS reaction rates if HMS is not defined
We have bracketed the computation of the HMS reaction rates with an IF statement that makes sure that HMS is a define species before proceeding. Also added some minor cosmetic edits in fullchem_SulfurChemFuncs.F90 Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 80b2263 - Browse repository at this point
Copy the full SHA 80b2263View commit details
Commits on Aug 25, 2021
-
Bug fix: Make sure LWC is not small enough to blow up divisions
KPP/fullchem/fullchem_SulfurChemFuncs.F90: - Do not enter the IF block where sulfur production is computed from aqueous SO2 rxns in cloud unless LWC > 1e-20. This prevents divisions from blowing up. - Also rearrange the main IF block to remove the ELSE. Make sure that HPLUS, State_Chm%HSO3_aq, and State_Chm%SO3_aq are initialized at the top of the routine. If the IF block is not called then these will be set to default values. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 090c7a9 - Browse repository at this point
Copy the full SHA 090c7a9View commit details
Commits on Aug 26, 2021
-
Flush denormal or negative values in QL and QI to zero
Sometimes the QL and QI (liquid water and ice mixing ratio) can have very small (i.e. < 1e-30) or negative values. We now flush these to zero. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for d202fe6 - Browse repository at this point
Copy the full SHA d202fe6View commit details -
Fix div-by-zero bugs in KPP rate law function routine CloudHet2R
We have put in calls to SafeDiv in order to prevent division by zero in routine CloudHet2R. This is a utility routine in the new KPP module fullchem_SulfurChemFuncs.F90. Also made some minor structural updates (removing an ELSE block, cleanup of whitespace, etc.) Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 4d123e0 - Browse repository at this point
Copy the full SHA 4d123e0View commit details
Commits on Aug 27, 2021
-
Bug fix: O2 + HO2 = H2O2 + O2 should be HO2 + HO2 = H2O2 + O2
fullchem.eqn - O2 + HO2 = H2O2 + O2 is incorrect, should be HO2 + HO2 = H2O2 + O2. This bug caused a ~60% decrease in CO2. gckpp_Function.F90 gckpp_Jacobian.F90 gckpp_Monitor.F90 - Rebuilt with KPP 2.3.3_gc Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 325446e - Browse repository at this point
Copy the full SHA 325446eView commit details -
Add initial modifications for aciduptake mechanism
Updated the KPP/CMakeLists.txt file to compile code in the KPP/aciduptake folder if -DMECH=aciduptake is selected. Also added the initial .kpp, .eqn and rate law function files for the aciduptake simulation. Some are linked to fullchem. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 8857b48 - Browse repository at this point
Copy the full SHA 8857b48View commit details
Commits on Aug 30, 2021
-
Bug fix: compute sulfur chem rxn rates before Set_Kpp_Gridbox_Values
In fullchem_mod.F90, the routine Set_Kpp_Gridbox_Values (which copies various data for hetchem rxn rate computations) was being called before the sulfur chemistry reaction rates were computed. Because of this, the State_Chm%HSO3_aq and State_Chm%SO3_aq arrays were left as zero when they should have been populated with proper values. The fix is to rearrange the order of the calls in fullchem_mod.F90. We have created a new routine (Set_Sulfur_Chem_Rates) that calls down to the KPP/fullchem/fullchem_SulfurChemFuncs.F90 module to compute sulfur chemistry reaction rates and the State_Chm%HSO3_aq and State_Chm%SO3_aq arrays. This now ensures that all data is computed before passing to the KPP chemistry solver. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 11f8b06 - Browse repository at this point
Copy the full SHA 11f8b06View commit details
Commits on Aug 31, 2021
-
Fixed errors in aciduptake.eqn, rebuilt KPP mechanism
aciduptake.eqn: - Added H2SO4 species - Added SO4D1, SO4D2, SO4D3, SO4D4 species - Added NITD1, NITD2, NITD3, NITD4 species - Updated comments gckpp*_.F90: - Rebuilt with KPP 2.3.3_gc
Configuration menu - View commit details
-
Copy full SHA for c7550e2 - Browse repository at this point
Copy the full SHA c7550e2View commit details -
Configuration menu - View commit details
-
Copy full SHA for 465de33 - Browse repository at this point
Copy the full SHA 465de33View commit details
Commits on Sep 1, 2021
-
Add CMake and structural updates for the aciduptake simulation
CMake updates: (1) Added KPP/aciduptake/CMakeLists.txt (2) Added if block in KPP/CMakeLists.txt for add_subdirectory based on the value of MECH. If MECH=fullchem, configure KPP/fullchem, etc. (3) In all KPP/*/CMakeLists.txt, removed multiple target names. e.g. KPPFirstPass_fullchem, KPPFirstPass_custom, and KPPFirstPass_aciduptake is just KPP_FirstPass, and similarly for the KPP target. (4) GeosCore/CMakeLists.txt references the KPP target. (5) Headers/CMakeLists.txt references the KPP_FirstPass target. Other code updates: (1) Broke off acid dust uptake rate-law functions into a new module KPP/aciduptake/aciduptake_DustChemFuncs.F90. (2) KPP/aciduptake folder has symbolic links to the other fullchem_*.F90 and rateLawUtilFuncs.F90 modules in the KPP/fullchem folder. (3) Added a stub module KPP/fullchem/aciduptake_DustChemFuncs.F90 since this needs to be called from GeosCore/fullchem_mod.F90. (4) Updated comments, added formatting. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 039d2e4 - Browse repository at this point
Copy the full SHA 039d2e4View commit details
Commits on Sep 8, 2021
-
Restore K_MT(1:6) for aqueous sulfur chemistry rates
KPP/fullchem/fullchem.eqn KPP/aciduptake/aciduptake.eqn - Restored K_MT(1:6) for aqueous sulfur chemistry rxns KPP/fullchem/fullchem.kpp KPP/aciduptake/aciduptake.kpp - Added K_MT(6) as a threadprivate array - Changed K_CLD(20) to K_CLD(6), since there are only 6 slots used KPP/fullchem/CMakeLists.txt - Add a stub module aciduptake_DustChemFuncs.F90 for fullchem mech. KPP/fullchem/fullchem_SulfurChemFuncs.F90 - Moved function SET_SEASALT_S from gckpp_AqRates.F90 here, and renamed to fullchem_SulfurAqchem - Renamed function fullchem_InitSulfurCldChem to fullchem_InitSulfurChem KPP/fullchem/fullchem_RateLawFuncs.F90 - Commented out the AqRate_* functions KPP/fullchem/rateLawUtilFuncs.F90 - Added whitespace in Ars_L1K variable declaration KPP/fullchem/gckpp_*.F90 KPP/fullchem/gckpp.map KPP/aciduptake/gckpp_*.F90 KPP/aciduptake/gckpp.map - Rebuilt with KPP 2.2.3_gc GeosCore/fullchem_mod.F90 - Call renamed routine fullchem_SulfurAqChem - Call renamed routine fullchem_InitSulfurChem Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for cf94ce6 - Browse repository at this point
Copy the full SHA cf94ce6View commit details
Commits on Sep 9, 2021
-
Comment out species database debug output
This was left turned on during KPP debugging work. Now disabled. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 1c603c3 - Browse repository at this point
Copy the full SHA 1c603c3View commit details -
Temporarily revert zeroing negative QI and QL in flexgrid_read_mod.F90
We have reverted zeroing very small negative values of QI and QL in flexgrid_read_mod.F90, in order to replicate the 13.2.0 benchmark output during KPP debugging. We will re-introduce this later. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 462a678 - Browse repository at this point
Copy the full SHA 462a678View commit details -
Updated the criteria for calling SEASALT_CHEM in sulfate_mod.F90
The call to SEASALT_CHEM (which computes AlkA and AlkC, which then gets stored as State_Chm%SSAlk(:,:,:,1) and State_Chm%SSAlk(:,:,:,2)) was not being executed when sulfate chemistry is handled by KPP. This resulted in KPP rate-law functions getting zero seasalt alkalinity, which adversely impacted the computation of rxn rates for e.g. BrSALA. We have fixed this situation by calling SEASALT_CHEM if: (1) Sulfate chemistry is handled in sulfate_mod, or (2) Sulfate chemistry is handled by KPP, and FullRun=FALSE We will eventually abstract the computation of cloud pH and seasalt alkalinity out of sulfate_mod.F90, but this commit fixes the issue for now. Also updated some comments. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 0c0795c - Browse repository at this point
Copy the full SHA 0c0795cView commit details -
Make sure SALAAL and SALCAL concs are updated in sulfate_mod.F for KPP
When sulfate chemistry is handled by KPP, the AlkA and AlkC values in CHEM_SO2 (in sulfate_mod.F90) needed to be copied to the State_Chm%Species array when Fullrun = FALSE. Otherwise SALAAL and SALCAL won't have the proper initial values before KPP chemistry. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 6c8d26d - Browse repository at this point
Copy the full SHA 6c8d26dView commit details
Commits on Sep 14, 2021
-
Add cosmetic changes for clarity to fullchem_SulfurChemFuncs.F90
Now use keyword arguments for calling AQCHEM_SO2 and HET_DROP_CHEM, which have long argument lists. Also added whitespace to Fahey-Seinfeld decision algorithm IF block to increase legibility. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 7f8357d - Browse repository at this point
Copy the full SHA 7f8357dView commit details -
Bug fix: Correct typo in ClNO2uptkByHBr hetchem rate-law function
The wrong fraction (H%frac_Cl_CldG) was used. This should have been H%frac_Br_CldG, which is the ratio of Br concentration in cloud to total Br concentration (Cloud + fine seasalt + coarse seasalt). Now fixed. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 6cf24ba - Browse repository at this point
Copy the full SHA 6cf24baView commit details
Commits on Sep 15, 2021
-
Remove unit conversion for State_Chm%HSO3_aq and State_Chm%SO3aq
The unit conversion of HSO3aq and SO3aq from [M] to [molec/cm3] is not necessary. This causes differences in hetchem routines in w/r/t the reference code. Also removed some debug print statements. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for a5703c0 - Browse repository at this point
Copy the full SHA a5703c0View commit details -
Add State_Het%debugBox to flag a box for debug print in rate-law func…
…tions KPP/fullchem/fullchem.kpp KPP/aciduptake/aciduptake.kpp - Add debugBox field to TYPE(HetState) KPP/fullchem/HetStateFuncs.F90 - Set State_Het%debugBox = .FALSE. by default. One can edit this to trigger as TRUE if we are at a given (I,J,L) location. KPP/fullchem/fullchem_RateLawFuncs.F90 - Update comments in HOClUptkByHSO3m and HOClUptkBySO3mm functions KPP/fullchem/gckpp_Global.F90 KPP/aciduptake/gckpp_Global.F90 - Rebuilt with KPP 2.3.3_gc Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 8b42ad7 - Browse repository at this point
Copy the full SHA 8b42ad7View commit details -
Remove error trap for low concentrations from KIIR1LTD rate function
KPP/fullchem/rateLawUtilFuncs: - The line "IF ( concEduct < 100.0_dp ) RETURN" was evidently intended to prevent division by zero. However, this will flush rate law computations to zero for very small concentrations. - Given that we now use the Is_SafeDiv and SafeDiv functions to prevent div-by-zero errors, this error trap is no longer necessary. Comment it out for now. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for d94ff95 - Browse repository at this point
Copy the full SHA d94ff95View commit details -
Remove HMS from input.geos advected species list
We will add this back once the HMS reactions are activated in KPP. For now, remove this in order to avoid a missing species error. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for b46b8b5 - Browse repository at this point
Copy the full SHA b46b8b5View commit details -
Fix for computational efficiency in routine Gam_HOCl_Cld
Moved the computation of M_X and c_avg into the IF ( k_tot > 0.0_dp ) block. This will skip computation of these quantities if the total rate k_tot is zero -- then we just exit. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 56fb8b7 - Browse repository at this point
Copy the full SHA 56fb8b7View commit details
Commits on Sep 16, 2021
-
Use new hetrates, S sea salt chem in KPP, but old S in-cloud chemistry
Headers/state_chm_mod.F90 - Set Do_SulfateMod_Cld = T always - Set Do_SulfateMod_Seasalt = T if it is a fullchem simulation GeosCore/fullchem_mod.F90: - Add subroutine PrintFirstTimeInfo to print an informational message about which options are being used KPP/fullchem/fullchem.eqn: KPP/aciduptake/aciduptake.eqn - Disable reactions using K_CLD(1:6) - Disable reactions for HMS KPP/fullchem/gckpp_*.F90 - Rebuilt with KPP 2.3_3_gc KPP/aciduptake/gckpp_*.F90 - Removed for present. This will be activated at a later date Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 9778ab8 - Browse repository at this point
Copy the full SHA 9778ab8View commit details -
Modify createRunDir.sh to copy restart file with HSO3m and SO3mm species
We have modified the createRunDir.sh script so that restart file GEOSCHEM_RESTARTS/v2021-09/GEOSChem.restart.fullchem.20190701_0000z.nc4 will be copied to full-chemistry run directories. This was necessary because we needed to include new species HSO3m and SO3mm. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for fc6aa12 - Browse repository at this point
Copy the full SHA fc6aa12View commit details -
Bug fix: Restore SO4H1, SO4H2, SO4H3, SO4H4 and S cld chem ins sulfat…
…e_mod It is not possible to use the hetchem reactions with HSO3mm and SO3mm while computing sulfur cloud and seasalt chemistry in sulfate_mod.F90. Therefore, we have restored the SO4H1, SO4H2, SO4H3, and SO4H4 species in fullchem.eqn and updated the rate law functions for HOCl and HOBr accordingly. GeosCore/fullchem_mod.F90 - Comment out references to ind_HSO3m and ind_SO3mm, as HSO3m and SO3mm species are not included in KPP. Headers/state_chm_mod.F90 - Set Do_SulfateMod_Seasalt = TRUE and Do_SulfateMod_Cld = TRUE. This will ensure that sulfur seasalt & cloud chemistry will still be done by sulfate_mod.F90, while we evaluate the KPP sulfur chemistry code. KPP/fullchem/fullchem.kpp KPP/aciduptake/aciduptake.kpp - Add fupdateHOBr and fupdateHOCl to TYPE(HetState) KPP/fullchem/fullchem.eqn KPP/aciduptake/aciduptake.eqn - Restore SO4H1, SO4H2, SO4H3, SO4H4 species and reactions KPP/fullchem/fullchem_HetStateFuncs.F90 - Copy fupdateHOBr and fupdateHOCL from State_Chm to State_het KPP/fullchem/fullchem_RateLawFuncs.F90 - Comment out functions HOBrUptkByHSO3m and HOBrUptkBySO3mm - Comment out functions HOClUptkByHSO3m and HOClUptkBySO3mm - Add functions HOBrHetSO4H1 and HOBrHetSO4H2 - Add functions HOClHetSO4H4 and HOBrHetSO4H3 - Remove AqRate_* functions, these are now done in fullchem_SulfurChemFuncs.F90, stored in K_MT(1:6). KPP/fullchem/gckpp.map KPP/fullchem/gckpp_*.F90 - Rebuilt with KPP version 2.3.3_gc Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 10334df - Browse repository at this point
Copy the full SHA 10334dfView commit details -
Comment out the aciduptake option in KPP/aciduptake/CMakeLists.txt
We will restore this once the sulfur chemistry is able to be computed within KPP. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 5594a6c - Browse repository at this point
Copy the full SHA 5594a6cView commit details -
Fix compilation issue for APM in fullchem_SulfurChemFuncs.F90
In KPP/fullchem/fullchem_SulfurChemFuncs.F90, there is an unnecessary reference to apm_mod.F90. We have removed this. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for f6fbf95 - Browse repository at this point
Copy the full SHA f6fbf95View commit details
Commits on Sep 17, 2021
-
In createRunDir.sh, restore original restart file copy command
In this commit, we are not adding new species HSO3- and SO3--, so we do not need to copy the restart file from the v2021-09 folder of the restart file path. Therefore we have restored the original restart file copy command in run/GCClassic/createRunDir.sh. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 4ff24b5 - Browse repository at this point
Copy the full SHA 4ff24b5View commit details -
Add fix for metals simulations in GEOS-Chem integration tests
The metals simulations were running for an entire month when executing a full integration test. A fix has been added to commonFunctionsForTests.sh to automatically modify the end date of metals simulations so they only run for 20 minutes. Signed-off-by: Melissa Sulprizio <mpayer@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for ce43e75 - Browse repository at this point
Copy the full SHA ce43e75View commit details -
Remove KPP/fullchem/Makefile and KPP/fullchem/Makefile_gckpp
These are not needed. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for e1a904b - Browse repository at this point
Copy the full SHA e1a904bView commit details -
Minor updates in species_mod.F90 and KPP/build_mechanism.sh
Headers/species_mod.F90 - Removed IS_FORGE tag in Species derived type KPP/build_mechanism.sh - Remove Makefile_gckpp after each time KPP rebuilds the gckpp_* files. Makefile_gckpp is for GNU Make but we now use CMake. KPP/aciduptake/Makefile_gckpp - Removed Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Configuration menu - View commit details
-
Copy full SHA for 825b172 - Browse repository at this point
Copy the full SHA 825b172View commit details