Add multiphase sulfate in aerosol water, following Travis et al 2025#3202
Add multiphase sulfate in aerosol water, following Travis et al 2025#3202yantosca wants to merge 12 commits intodev/14.8.0from
Conversation
…/10.1021/acsetair.5c00136. Includes SO2 oxidation in aerosol water by H2O2, O3, NO2, HCHO, and TMI-catalzyed O2. Addition of cloud HPLUS diagnostic since cloud pH diagnostic appears broken. Signed-off-by: Katherine R. Travis <ktravis1@discover35.prv.cube>
…/10.1021/acsetair.5c00136. Includes SO2 oxidation in aerosol water by H2O2, O3, NO2, HCHO, and TMI-catalzyed O2. Addition of cloud HPLUS diagnostic since cloud pH diagnostic appears broken. Signed-off-by: Katherine R. Travis <ktravis1@discover35.prv.cube>
…/10.1021/acsetair.5c00136. Includes SO2 oxidation in aerosol water by H2O2, O3, NO2, HCHO, and TMI-catalzyed O2. Addition of cloud HPLUS diagnostic since cloud pH diagnostic appears broken. Signed-off-by: Katherine R. Travis <ktravis1@discover35.prv.cube>
--> Change 'uptake probability' to 'sticking coefficient' for consistency --> Consolidate production trackers from 13 to 3 (PSO4MP for multiphase sulfate, and PHMSAQ and PHMSMP for HMS aqueous and multiphase production) --> Improved computational efficiency by removing ELSE blocks. --> Added _dp to constants --> Add Ionic strength diagnostic to GCHP HISTORY template Signed-off-by: Katherine R. Travis <ktravis1@discover36.prv.cube>
GeosCore/aerosol_mod.F90 GeosCore/planeflight_mod.F90 Headers/state_chm_mod.F90 KPP/fullchem/fullchem_HetStateFuncs.F90 - Renamed State_Chm%Isorrop* fields to State_Chm%Ate*, where "Ate" stands for "aerosol thermoydnamical equilibrium". ISORROPIA is no longer used so this should avoid confusion. run/GCClassic/HISTORY.rc.templates/HISTORY.rc.aerosol run/GCClassic/HISTORY.rc.templates/HISTORY.rc.fullchem run/GCHP/HISTORY.rc.templates/HISTORY.rc.fullchem - Rename diagnostic fields from "Isorrop*" to "Ate*" CHANGELOG.md - Updated accordingly Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
KPP/fullchem/gckpp*F90 - Rebuilt with KPP 3.3.0 KPP/fullchem/CHANGELOG_fullchem.md - Changed "[ TBD ]" to the standard "[Unreleased] - TBD" Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
ec3a196 to
9241f03
Compare
|
Hi @ktravis213 and @1Dandan. I noticed that DUST = ( Spc(id_DST1)%Conc(I,J,L)*0.7_dp + Spc(id_DST2)%Conc(I,J,L) + &
Spc(id_DST3)%Conc(I,J,L) + Spc(id_DST4)%Conc(I,J,L) ) &
* 1.e+15_dp * State_Chm%SpcData(id_DST1)%Info%MW_g / AVOThis will currently not compile in GEOS-Chem 14.7.0 and later, because we have removed DST1 .. DST4 and added DSTbin1 .. DSTbin7. The sum of DSTbin1 .. DSTbin4 is pretty much the same as the old DST1 species. So I think we'd have to modify this statement as: DUST = ( &
( Spc(id_DSTbin1)%Conc(I,J,L) + &
Spc(id_DSTbin2)%Conc(I,J,L) + &
Spc(id_DSTbin3)%Conc(I,J,L) + &
Spc(id_DSTbin4)%Conc(I,J,L) + &
) * 0.7_dp + &
Spc(id_DSTbin5)%Conc(I,J,L) + &
Spc(id_DSTbin6)%Conc(I,J,L) + &
Spc(id_DSTbin7)%Conc(I,J,L) &
) &
* 1.e+15_dp &
* State_Chm%SpcData(id_DSTbin1)%Info%MW_g &
/ AVODo you see any issues with this? @ktravis213: I also wanted to ask where the 0.7 factor comes from. Thanks! |
KPP/fullchem/fullchem_HetStateFuncs.F90
- Removed id_DST{1..4} variables
- Added id_DSTbin{1..7} variables
- Updated the equation for DUST to use DSTbin{1..7} species, which
were added in GEOS-Chem 14.7.0.
Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
|
@yantosca I am looking back at the code, and I grabbed the calculation of dust from fullchem_SulfurChemFuncs.F90. The 0.7 is the cloud scavenging ratio of 0.7 for fine aerosols. Now that you are asking, I am not sure I should have done this at all for aerosol water. I am glad you asked about this, I think it was an error to include it. I doubt this will have a major impact on the results of the scheme. |
|
Thanks @ktravis213. Should we take out the references to DUST in fullchem_HetStateFuncs.F90 then? |
|
We just need to remove the 0.7. We still need to calculate total dust, just without that scavenging factor. |
KPP/fullchem/fullchem_SulfurChemFuncs.F90 - We have removed the scavenging factor of 0.7 from the expression for the DUST variable in routine SET_SO2, based on a suggestion by Katie Travis (@ktravis213). - Cosmetic changes (indentation, etc. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
|
@ktravis213: I removed the 0.7 scale factor in commit 4c6ea01. Thanks again! Will begin testing this shortly. |
KPP/custom/custom.eqn KPP/fullchem/fullchem.eqn - Updated the version number to 14.8.0 - Added citation Travis et al 2025 to HMS + OH + SO2 rxn CHANGELOG.md - Removed leftover line from merge conflict Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
run/shared/species_database.yml - Removed several leftover dummy species Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
KPP/fullchem/fullchem_HetStateFuncs.F90 - Removed extraneous comma at end of line after id_DSTbin3 - Removed the 0.7 wet scavenging factor as per @ktravis213
|
@ktravis213: Should this be the proper entry for the PSO4MP species in the species database? PSO4MP:
FullName: Dummy species to track production of multiphase sulfate
Is_Gas: true
MW_g: 96.06
KPP_AbsTol: 1.0e+25Should we set the KPP_AbsTol to a very high value to ignore this as a dummy species? Or is this needed to close the mass balance? |
KPP/custom/custom.eqn KPP/fullchem/fullchem.eqn - Added comments denoting additional multiphase sulfate rxns as coming from the Travis2025 paper Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Name and Institution (Required)
Name: Bob Yantosca (Harvard) on behalf of Katherine Travis (NASA LaRC)
Describe the update
NOTE: This PR supersedes #2966. We have rebased @ktravis213's code atop GEOS-Chem 14.7.0, and have made additional minor fixes.
This pull request is associated with the reference below. It implements multiphase (heterogeneous) sulfate chemistry in KPP. This includes SO2 oxidation by NO2, O3, H2O2, TMI-catalyzed O2, and HCHO. All oxidants but NO2 have a dependence on ionic strength calculated in HETP. Diagnostics are included for the uptake coefficient gamma in StateChm and production of sulfate from each new pathway. There is a separate pull request for the addition of the ionic strength diagnostic in HETP.
Expected changes
Please provide details on how this update will impact model output and include plots or tables as needed.

Expected changes are increased sulfate and HMS and reduced SO2. The plot below shows the global increase in sulfate from a 2x25 run for January 2016.
Reference(s)
Related Github Issue
Tagging @ktravis213