Skip to content
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] HMS Chemistry, adding updates of Moch et al 2020 (replaces PR #456) #905

Merged
merged 17 commits into from Sep 22, 2021

Conversation

yantosca
Copy link
Contributor

HMS chemistry

Overview

Description

This update includes hydroxymethanesulfonate (HMS) chemistry and cloud pH and ionic strength limitations for transition metal catalyzed SO2 oxidation.

HMS chemistry is described in: Moch, J.M., E. Dovrou, L.J. Mickley, F.N. Keutsch, Z. Liu, Y. Wang, T.L. Dombek, M. Kuwata, S.H. Budisulistiorini, L. Yang, S. Decesari, M. Paglione, B. Alexander, J. Shao, J.W. Munger, D.J. Jacob, Global importance of hydroxymethanesulfonate in ambient particulate matter: Implications for air quality, J. Geophys. Res., 125, e2020JD032706, https://doi.org/10.1029/2020JD032706, 2020

The cloud pH and ionic strength limitation for transition metal catalyzed SO2 oxidation is initially described in: Shao, J., Chen, Q., Wang, Y., Lu, X., He, P., Sun, Y., Shah, V., Martin, R. V., Philip, S., Song, S., Zhao, Y., Xie, Z., Zhang, L., & Alexander, B. (2019). Heterogeneous sulfate aerosol formation mechanisms during wintertime Chinese haze events: Air quality model assessment using observations of sulfate oxygen isotopes in Beijing. Atmospheric Chemistry and Physics, 19(9), 6107–6123. https://doi.org/10.5194/acp-19-6107-2019

HMS chemistry was initially implemented in 12.2.1 as described in Moch et al. (2020). Differences for HMS chemistry between Moch et al. (2020) and version 12.9.3 arise primarily from the inclusion of Na+ and Cl- in the cloud pH calculation in 12.9.3, differing default emissions inventories, and simulated cloud pH being too low over eastern China in 12.9.3. In Moch et al. (2020), this low bias in cloud pH over eastern China was addressed by setting a cloud pH floor of 5 over the North China Plain. This pH floor is not included in this pull request but more details can be found in the paper.

Jonathan Moch and others added 8 commits September 23, 2020 23:57
…atalyzed SO2 oxidation (ref: Shao et al., 2019, ACP)
This brings the HMS chemistry according to J. Moch et al into
GEOS-Chem.  See geoschem/geos-chem PR #456.

Resolved conflicts in:
- GeosCore/isorropiaII_mod.F90
- GeosCore/sulfate_mod.F90
- Headers/state_diag_mod.F90
- run/shared/species_database.yml

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
This commit adds the hetchem rate law function updates into
the development branch with HMS chemistry.

Resolved conflicts in:
- GeosCore/aerosol_mod.F90

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
GeosCore/sulfate_mod.F90:
- Add missing comma in !$OMP PRIVATE statement in CHEM_SO2

Headers/state_diag_mod.F90
- Add HMS-related fields to TYPE(DgnState)
- Add Init_and_Register calls for HMS-related fields of TYPE(DgnState)
- Add Finalize calls for HMS-related fields of TYPE(DgnState)
- Trimmed trailing whitespace

run/GCClassic/input.geos.templates/input.geos.fullchem
- Added HMS to list of advected species

run/shared/species_database.yml
- Added Background_VV = 1.0e-15 for HMS.  This should be a better
  initial concentration than 1e-20 or 1e-30, and should not cause
  chemistry to exit with error.

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
The README.md file says that KPP/aciduptake will be used in
future GC development, but is being ignored for now.

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
@yantosca
Copy link
Contributor Author

Results of a 1-day simulation:

Ref: 13.3.0-alpha.1

==============================================================================
GEOS-Chem FULL-CHEMISTRY SIMULATION METRICS

Simulation start : 2019-07-01 00:00:00z
Simulation end   : 2019-07-02 00:00:00z
============================================================================== 

Mass-weighted mean OH concentration    = 11.24561220053 x 10^5 molec cm-3

CH3CCl3 lifetime w/r/t tropospheric OH = 5.4776 years

CH4 lifetime w/r/t tropospheric OH     = 9.2152 years

Dev: PR #905

==============================================================================
GEOS-Chem FULL-CHEMISTRY SIMULATION METRICS

Simulation start : 2019-07-01 00:00:00z
Simulation end   : 2019-07-02 00:00:00z
============================================================================== 

Mass-weighted mean OH concentration    = 11.24524496737 x 10^5 molec cm-3

CH3CCl3 lifetime w/r/t tropospheric OH = 5.4779 years

CH4 lifetime w/r/t tropospheric OH     = 9.2158 years

@yantosca yantosca added this to the 13.3.0 milestone Sep 20, 2021
Change requested time from 16h to 5h.  Most integration tests finish
in about 3 to 3.5 hours.

Change requested memory from 60000 to 75000.  This is needed for the
nested-grid NA simulation at 0.25 degree resolution.

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
@yantosca
Copy link
Contributor Author

There are a couple of outstanding modifications to make:

  1. Add SpeciesRst_HMS to the ExtData/GEOSCHEM_RESTARTS/v2021-09/GEOSChem.Restart.fullchem.20190701_0000z.nc4 file
  2. Add SpeciesRst_HMS to the ExtData/GEOSCHEM_RESTARTS/v2021-09/GEOSChem.Restart.aerosol.20190701_0000z.nc4
  3. Update run/GCClassic/createRunDir.sh to get these restart files.

Copy link
Contributor

@msulprizio msulprizio left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is no formula provided for HMS in species_database.yml but one should be provided. According to Moch et al. (2020) it is HOCH2SO3−.

Can you also confirm if a parallelization test was performed on these updates? I see code was added to a parallel loop in sulfate_mod.F90 so it would be good to ensure we're not introducing any differences between single and multi-processor runs.

@yantosca
Copy link
Contributor Author

@msulprizio, thanks for the comments. I will definitely do a parallelization test. I am will also add the formula.

run/GCClassic/createRunDir.sh
- For fullchem and aerosol simulations, point to the restart files
  in ExtData/GEOSCHEM_RESTARTS/v2021-09.  This has the same concentrations
  as the restart files in GC_13.0.0, plus HMS, SO3mm, and HSO3m.
  (will add C2H2 and C2H4 later)

run/shared/species_database.yml
- Add chemical formula for HMS

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
@yantosca
Copy link
Contributor Author

There are a couple of outstanding modifications to make:

1. Add `SpeciesRst_HMS` to the `ExtData/GEOSCHEM_RESTARTS/v2021-09/GEOSChem.Restart.fullchem.20190701_0000z.nc4` file

2. Add `SpeciesRst_HMS` to the `ExtData/GEOSCHEM_RESTARTS/v2021-09/GEOSChem.Restart.aerosol.20190701_0000z.nc4`

3. Update `run/GCClassic/createRunDir.sh` to get these restart files.

These updates have been done in commit 885a198

@yantosca
Copy link
Contributor Author

A parallelization test failed. Digging into this now @msulprizio

@msulprizio
Copy link
Contributor

A parallelization test failed. Digging into this now @msulprizio

Thanks @yantosca. Glad we checked!

@yantosca
Copy link
Contributor Author

A parallelization test failed. Digging into this now @msulprizio

Thanks @yantosca. Glad we checked!

Seems to not be in the chemistry or aerosol thermodynamics. Digging further.

The HMS chemistry modifications in sulfate_mod.F90 and aerosol_mod.F90
assume HMS is an advected species.  We have now added HMS to the
run/GCClassic/input.geos.templates/input.geos.aerosol template file
that is used in run directory creation.  This should allow integration
tests to pass.

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
@yantosca
Copy link
Contributor Author

Side note: I have isolated the parallelization issue to the HEMCO MEGAN extension (see geoschem/HEMCO#109). With MEGAN emissions turned off we obtain identical results, indicating that the parallelization in GEOS-Chem is OK. We will pursue resolution of geoschem/HEMCO#109 separately.

@yantosca
Copy link
Contributor Author

Need to still fix some issues in the aerosol-only simulation. This does not affect the full-chemistry simulation

Fortran runtime error: Index '-1' of dimension 4 of array 'spc' below lower bound of 1

Maybe some arrays are not allocated for HMS when doing an aerosol-only simulation.

Copy link
Contributor

@msulprizio msulprizio left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am OK with merging these updates as soon as the integration tests are all passing.

…-09/

We have added extra species (such as HMS) for new chemistry in 13.3.0
and later versions into the restart files in the
ExtData/GEOSCHEM_RESTARTS/v2021-09 folder.  When creating GEOS-Chem
"Classic" run directories for fullchem or TOMAS simulations, these
restart files must be placed in the run directory or else there will
be a species not found error due to the HEMCO_Config.rc "EFYO"
time cycle flag.

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Prior to this commit, HMS0 was set to zero for aerosol-only simulations.
Now it is set to Spc(I,J,L,id_HMS). This had caused aerosol-only
integration tests to fail.

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
(1) Make sure that HOBr, HOCl, HCHO, HMS, and OH are only referenced
    from state_chm%species if it is a fullchem simulation.

(2) Removed some ELSE statements (i.e. zero variables before IF).

(3) Expanded IS_FULLCHEM to Input_Opt%ITS_A_FULLCHEM_SIM

(4) Trimmed trailing whitespace.

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
@yantosca
Copy link
Contributor Author

Fixed bugs in commits d4aebf2 and e0935cc. Also created new TOMAS15 and TOMAS40 restart files in GEOSCHEM_RESTARTS/v2021-09/ by taking the ones from GEOSCHEM_RESTARTS/v2020-02 and adding HMS, HSO3m, and SO3mm species. A new set of integration tests is pending.

HMS is only needed for the fullchem simulation.

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Modified the sequence fed to createRunDir.sh in script
test/GCClassic/intTestCreate.sh to create TOMAS15 and TOMAS40
integration test rundirs with 47 levels instead of 72.

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
@yantosca
Copy link
Contributor Author

Pushed more commits: 8bf24a1, 6f5db0c, and 5167c68. Also re-re-generated TOMAS15 and TOMAS40 restart files in GEOSCHEM_RESTARTS/v2021-09/ to add HMS. Furthermore, made sure that TOMAS integration tests use 47 levels instead of 72 levels. Integration tests now pending.

GeosCore/aerosol_mod.F90:
- Only include HMS in SO4_NH4_NIT if id_HMS > 0
- Set the HMS array to 0 if id_HMS < 0

GeosCore/isorropia_mod.F90
- Add an IS_HMS flag to denote when id_HMS > 0
- If id_HMS = 0 and it's an aerosol-only sim, let run proceed
- Only add HMS to TSO4 if IS_HMS = TRUE
- Only add HMS to DEN_SAV if IS_HMS = TRUE

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
@yantosca yantosca merged commit c744c29 into dev Sep 22, 2021
@yantosca yantosca deleted the feature/HMSchem branch September 22, 2021 21:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category: Feature Request New feature or request topic: Chemical Mechanisms Related to KPP and/or GEOS-Chem chemistry mechanisms
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants