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

Add modifications to sea salt chemistry in order to avoid KPP integration errors #1779

Merged
merged 3 commits into from Apr 28, 2023

Conversation

yantosca
Copy link
Contributor

Name and Institution (Required)

Name: Bob Yantosca
Institution: Harvard + GCST

Confirm you have reviewed the following documentation

Describe the update

This is the companion PR to #1768. This adds the following updates to the fullchem and custom mechanisms to avoid non-convergence errors in the KPP integration:

  1. Cap State_Het%f_Alk_SSA and State_Het%f_Alk_SSC fractions at 1. This will prevent small concentrations of SALA and SALC species (which are in the denominators used to compute these expressions) from blowing up these fractions to unphysical values. See commit 82ecd04.

  2. Balance IONO and IONO2 reactions forming seasalt aerosol, following the suggestion of @beckyalexander. See commit 5c5b82a.

  3. Modify several rate-law reactions to avoid performing uptake on sea salt aerosol in the stratosphere, based on the suggestion of @beckyalexander and @viral211. See commit: 1a7c81b

Integration tests are in progress.

Expected changes

These updates should produce small changes in most species, but larger changes in iodine and/or seasalt species. Also, simulations should no longer terminate due to KPP integration errors.

Reference(s)

N/A

Related Github Issue(s)

Closes #1768

KPP/fullchem/fullchem_HetStateFuncs.F90
- Now do not let State_Het%f_Alk_SSA (aka H%f_Alk_SSA) and
  State_Het%f_Alk_SSC (aka H%f_Alk_SSC) exceed 1.  This was a
  suggestion by @viral211 in Github issue geoschem/geos-chem #1768.
- NOTE: This update causes minor differences in most species w/r/t
  the prior commit, at the level of numerical noise.  But for several
  iodine species (ISALA, ISALC etc) larger difference are observed.

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
KPP/custom/custom.eqn
KPP/fullchem/fullchem.eqn
- IONO = ISALA is now balanced (IONO = ISALA + HNO2)
- IONO = ISALC is now balanced (IONO = ISALC + HNO2)
- IONO2 = ISALA is now balanced (IONO2 = ISALA + HNO3)
- IONO2 = ISALA is now balanced (IONO2 = ISALA + HNO3)

KPP/fullchem/gckpp*.F90
- Rebuilt with KPP 3.0.0

KPP/fullchem/CHANGELOG_fullchem.md
- Updated accordingly

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
KPP/fullchem/fullchem_RateLawFuncs.F90
- The following functions now skip uptake on sea salt aerosol
  in the stratosphere.
  - ClNO3uptkBySALACL
  - ClNO3uptkBySALCCL
  - HBrUptkBySALA
  - HBrUptkBySALC
  - IuptkbySALA1stOrd
  - IuptkByAlkSALA1stOrd
  - IuptkBySALC1stOrd
  - IuptkByAlkSALC1stOrd
  - IbrkdnByAcidBrSALA
  - IbrkdnByAcidBrSALC
  - IbrkdnByAcidSALACl
  - IbrkdnByAcidSALCCl
  - N2O5uptkBySALACl
  - N2O5uptkBySALCCl
  - O3uptkByBrSALA
  - O3uptkByBrSALC
  - OHuptkBySALACl
  - OHuptkBySALCCl
- NOTE: Some functions already did this, and these were not modified.

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
@yantosca yantosca added category: Bug Something isn't working topic: Chemical Mechanisms Related to KPP and/or GEOS-Chem chemistry mechanisms labels Apr 26, 2023
@yantosca yantosca self-assigned this Apr 26, 2023
@yantosca yantosca linked an issue Apr 26, 2023 that may be closed by this pull request
4 tasks
@yantosca
Copy link
Contributor Author

All GCHP integration tests passed:

==============================================================================
GCHP: Execution Test Results

GCClassic #baf4159 GEOS-Chem submodule update: Allow for missing python or bc libraries in GCHP
GEOS-Chem #1a7c81b6e Many hetchem rxns no longer uptake on sea salt aerosol in stratosphere
HEMCO     #98adbe2 Update CHANGELOG.md

Number of execution tests: 5

Submitted as SLURM job: 51380321
==============================================================================
 
Execution tests:
------------------------------------------------------------------------------
gchp_merra2_fullchem................................Execute Simulation....PASS
gchp_merra2_fullchem_benchmark......................Execute Simulation....PASS
gchp_merra2_fullchem_RRTMG..........................Execute Simulation....PASS
gchp_merra2_tagO3...................................Execute Simulation....PASS
gchp_merra2_TransportTracers........................Execute Simulation....PASS
 
Summary of test results:
------------------------------------------------------------------------------
Execution tests passed: 5
Execution tests failed: 0
Execution tests not yet completed: 0

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%  All execution tests passed!  %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

@yantosca
Copy link
Contributor Author

Several GC-Classic integration tests failed. Currently investigating.

==============================================================================
GEOS-Chem Classic: Execution Test Results

GCClassic #b68a6b6 GEOS-Chem submodule update: Add GFED4 climatology option to HEMCO_Config.rc
GEOS-Chem #1a7c81b6e Many hetchem rxns no longer uptake on sea salt aerosol in stratosphere
HEMCO     #98adbe2 Update CHANGELOG.md

Using 24 OpenMP threads
Number of execution tests: 26

Submitted as SLURM job: 51379862
==============================================================================
 
Execution tests:
------------------------------------------------------------------------------
gc_05x0625_NA_47L_merra2_CH4........................Execute Simulation....PASS
gc_05x0625_NA_47L_merra2_fullchem...................Execute Simulation....PASS
gc_4x5_47L_merra2_fullchem..........................Execute Simulation....PASS
gc_4x5_47L_merra2_fullchem_TOMAS15..................Execute Simulation....PASS
gc_4x5_47L_merra2_fullchem_TOMAS40..................Execute Simulation....PASS
gc_4x5_merra2_aerosol...............................Execute Simulation....PASS
gc_4x5_merra2_carbon................................Execute Simulation....PASS
gc_4x5_merra2_CH4...................................Execute Simulation....PASS
gc_4x5_merra2_CO2...................................Execute Simulation....PASS
gc_4x5_merra2_fullchem..............................Execute Simulation....PASS
gc_4x5_merra2_fullchem_aciduptake...................Execute Simulation....PASS
gc_4x5_merra2_fullchem_APM..........................Execute Simulation....PASS
gc_4x5_merra2_fullchem_benchmark....................Execute Simulation....PASS
gc_4x5_merra2_fullchem_complexSOA...................Execute Simulation....PASS
gc_4x5_merra2_fullchem_complexSOA_SVPOA.............Execute Simulation....PASS
gc_4x5_merra2_fullchem_LuoWd........................Execute Simulation....PASS
gc_4x5_merra2_fullchem_marinePOA....................Execute Simulation....PASS
gc_4x5_merra2_fullchem_RRTMG........................Execute Simulation....FAIL
gc_4x5_merra2_Hg....................................Execute Simulation....FAIL
gc_4x5_merra2_metals................................Execute Simulation....FAIL
gc_4x5_merra2_POPs_BaP..............................Execute Simulation....FAIL
gc_4x5_merra2_tagCH4................................Execute Simulation....FAIL
gc_4x5_merra2_tagCO.................................Execute Simulation....FAIL
gc_4x5_merra2_tagO3.................................Execute Simulation....FAIL
gc_4x5_merra2_TransportTracers......................Execute Simulation....FAIL
gc_4x5_merra2_TransportTracers_LuoWd................Execute Simulation....FAIL
 
Summary of test results:
------------------------------------------------------------------------------
Execution tests passed: 17
Execution tests failed: 9
Execution tests not yet completed: 0

@msulprizio msulprizio added this to the 14.2.0 milestone Apr 26, 2023
@yantosca
Copy link
Contributor Author

I believe the GCC integration test job failed due to hitting a time limit in the queue. I have resubmitted with a longer time limit.

@yantosca
Copy link
Contributor Author

All GCClassic integration tests now passed. I think the prior tests were placed on a slower node.

==============================================================================
GEOS-Chem Classic: Execution Test Results

GCClassic #b68a6b6 GEOS-Chem submodule update: Add GFED4 climatology option to HEMCO_Config.rc
GEOS-Chem #1a7c81b6e Many hetchem rxns no longer uptake on sea salt aerosol in stratosphere
HEMCO     #98adbe2 Update CHANGELOG.md

Using 24 OpenMP threads
Number of execution tests: 26

Submitted as SLURM job: 51494396
==============================================================================
 
Execution tests:
------------------------------------------------------------------------------
gc_05x0625_NA_47L_merra2_CH4........................Execute Simulation....PASS
gc_05x0625_NA_47L_merra2_fullchem...................Execute Simulation....PASS
gc_4x5_47L_merra2_fullchem..........................Execute Simulation....PASS
gc_4x5_47L_merra2_fullchem_TOMAS15..................Execute Simulation....PASS
gc_4x5_47L_merra2_fullchem_TOMAS40..................Execute Simulation....PASS
gc_4x5_merra2_aerosol...............................Execute Simulation....PASS
gc_4x5_merra2_carbon................................Execute Simulation....PASS
gc_4x5_merra2_CH4...................................Execute Simulation....PASS
gc_4x5_merra2_CO2...................................Execute Simulation....PASS
gc_4x5_merra2_fullchem..............................Execute Simulation....PASS
gc_4x5_merra2_fullchem_aciduptake...................Execute Simulation....PASS
gc_4x5_merra2_fullchem_APM..........................Execute Simulation....PASS
gc_4x5_merra2_fullchem_benchmark....................Execute Simulation....PASS
gc_4x5_merra2_fullchem_complexSOA...................Execute Simulation....PASS
gc_4x5_merra2_fullchem_complexSOA_SVPOA.............Execute Simulation....PASS
gc_4x5_merra2_fullchem_LuoWd........................Execute Simulation....PASS
gc_4x5_merra2_fullchem_marinePOA....................Execute Simulation....PASS
gc_4x5_merra2_fullchem_RRTMG........................Execute Simulation....PASS
gc_4x5_merra2_Hg....................................Execute Simulation....PASS
gc_4x5_merra2_metals................................Execute Simulation....PASS
gc_4x5_merra2_POPs_BaP..............................Execute Simulation....PASS
gc_4x5_merra2_tagCH4................................Execute Simulation....PASS
gc_4x5_merra2_tagCO.................................Execute Simulation....PASS
gc_4x5_merra2_tagO3.................................Execute Simulation....PASS
gc_4x5_merra2_TransportTracers......................Execute Simulation....PASS
gc_4x5_merra2_TransportTracers_LuoWd................Execute Simulation....PASS
 
Summary of test results:
------------------------------------------------------------------------------
Execution tests passed: 26
Execution tests failed: 0
Execution tests not yet completed: 0

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%  All execution tests passed!  %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category: Bug Something isn't working 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.

GEOS-Chem 14.2.0 development branch crashing with integration errors
2 participants