-
Notifications
You must be signed in to change notification settings - Fork 170
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
[FEATURE REQUEST] Mercury chemistry (reduction and oxidation) diagnostics through ProdLoss for v13.4 #1284
Comments
Thanks @arifein for writing. I think this might have gotten removed at some point by me during testing. I can restore these. Sorry for the bother. |
A couple more questions for @arifein @viral211 @msl3v: Going back to the code that I received from @msl3v, the only prod/loss species that were being used were: {OXIDATION BY BR}
Hg0 + Br = HGBR + RM0pBtM1 : GCARR2(1.46E-32,1.86,0.0);
HGBR = Hg0 + RMBtM0 : GCARR2(1.6E-9,1.86,-7801.0);
HGBR + Br = Hg0 + RMBpBtM0 : 3.9E-11;
HGBR + NO2 = HG0 + RMBpNO2tM0 : 3.0E-12;
HGBR + NO2 = HGBRNO2 + RMBpNO2tM2 : GCJPLPR(4.3E-30,5.9,0.0,1.2E-10,1.90,0.0,0.6,0.0,0.0);
HGBR + HO2 = HGBRHO2 + RMBpHO2tM2 : GCJPLPR(4.3E-30,5.9,0.0,6.9E-11,2.40,0.0,0.6,0.0,0.0);
HGBR + ClO = HGBRCLO + RMBpCLOtM2 : GCJPLPR(4.3E-30,5.9,0.0,6.9e-11,2.40,0.0,0.6,0.0,0.0);
HGBR + BrO = HGBRBRO + RMBpBROtM2 : GCJPLPR(4.3E-30,5.9,0.0,6.9E-11,2.40,0.0,0.6,0.0,0.0);
HGBR + OH = HGBROH + RMBpOHtM2 : GCJPLPR(4.3E-30,5.9,0.0,6.9E-11,2.40,0.0,0.6,0.0,0.0);
HGBR + Br = HGBR2 + RMBpBRtM2 : 3.0E-11;
HGBRO + CH4 = HGBROH + RMBOpCH4tM2 : GCARR(4.1E-12,0.0,-856.0);
HGBRO + CO = HGBR + RMBOpCOtMB : GCARR(6.0E-11,0.0,-550.0);
HGBR + O3 = HGBRO + RMBpO3tM2 : 3.0E-11;
... etc ...
{OXIDATION BY OH}
HG0 + OH = HGOH + RM0pOtM1 : GCARR2(3.34E-33, 0.0, 43.0);
HGOH = HG0 + RMOtM0 : GCARR2(1.22E-9, 0.0, -5720.0);
HGOH + NO2 = HGOHNO2 + RMOpNO2tM2 : GCJPLPR(4.1E-30,5.9,0.0,1.2E-10,1.90,0.0,0.6,0.0,0.0);
... etc ...
HGOH + O3 = HGOHO + RMOpO3tM2 : 3.0E-11;
HGOHO + CH4 = HGOHOH + RMOpCH4tM2 : GCARR(4.1E-12,0.0,-856.0);
HGOHO + CO = HGOH + RMOOpCOtMO : GCARR(6.0E-11,0.0,-550.0); Are there others that should be attached to e.g. the Cl equations? Could someone help me add these back in? Also -- do we have metadata for the species database? I think we'd need to add for each of these: PRM0pBtM1:
Fullname: name of species
Is_Prod: true Thanks!! |
Also, if you look at the gckpp_Monitor.F90 output, you see that the reactions are:
Is this what would be expected, to have the RM* and the PRM* species both listed as products? |
I could add the metadata for these diagnostic species to species_database.yml. However, I am not sure if we need to include all of these P/L diagnostics in the standard code. We could simplify this by having diagnostics for gross oxidation of Hg(0) to Hg(II) from each pathway (Br, OH, and Cl) and a diagnostic for gross reduction of Hg(II) to Hg(0). What do you think @arifein? |
@viral211 I agree with you that most users would not need all of the diagnostics and that the gross oxidation by pathway and gross reduction would be enough! |
@arifein: Would you be willing to take the point on this? |
@arifein we could just define production and loss families in
Then run kpp to regenerate the |
This issue has been automatically marked as stale because it has not had recent activity. If there are no updates within 7 days it will be closed. You can add the "never stale" tag to prevent the Stale bot from closing this issue. |
Hi all, I have been working on adding the mercury chemistry diagnostics to ProdLoss to validate the v14 Hg simulation. Following @viral211's advice, I added to Hg.kpp:
So here I also included the diagnostics for the different 1st-step oxidants (Br, OH, Cl). Note that the inclusion of HgBrOH within the Br family is a bit ambiguous because it can also form through the OH pathway, but from Shah et al. (2021) I understand that the more probable pathway for this compound is through Br. There is always the option for users to create more specific reaction diagnostics, where needed, but I think this should be sufficient for most applications. What do you think? |
As a technical note, some other code changes where necessary to get these diagnostics working:
|
Thank you @arifein. This looks good to me. I thought you would have had to add the prod and loss species to the species_database.yml file. I guess that's not needed anymore. |
Thanks Viral! I didn't add them so far to species_database.yml and no errors came up, so I guess this was changed from past versions |
Thanks @arifein! We can pull this into the code. Also, the OHreactivity is taken care of in the 14.0.0 dev branch. I've updated the build_mechanism.sh and OHreact_parser.py scripts for the new KPP 2.5.0+. Very soon we'll have the mechanisms rebuilt with KPP 3.0.0 (once we are sure the journal reviewers on Haipeng's paper don't ask for any KPP revisions...) |
These updates address the issues raised in geoschem/geos-chem #1284 Headers/diaglist_mod.F90 - Added IsHg and IsCarbonCycle module variables. (The IsCarbonCycle is future-proofing us for 14.1.0, when that mechanism will be added.) Headers/state_diag_mod.F90 - PROD and LOSS for simulations with KPP are now assigned units of molec cm-3 s-1. PROD and LOSS for other specialty simulations are assigned units of kg s-1 (until we bring these into KPP). GeosCore/mercury_mod.F90 - Updated loops that store in to State_Diag%Prod, following suggestion by Ari Feinberg KPP/Hg/Hg.kpp - Added prod families PHg0, PHg2, PHg2Br, PHg2OH, PHg2Cl to Hg.kpp run/shared/species_database_hg.yml - Added entries for PHg0, PHg2Br, PHg2OH, PHg2_Br, PHg2Cl KPP/Hg/gckpp* - Rebuilt with KPP 2.5.0 Signed-off-by: Bob Yantosca <[email protected]>
We can close this issue as PR #1356 has now been merged into the 14.0.1 development branch. |
With the new updates to the Hg simulation and Hg chemistry being added to KPP, we lost the diagnostics for net and gross Hg0 oxidation from the MercuryChem HISTORY collection (ProdHg2from*). In an earlier version of @viral211 's new chemistry mechanism, there were ProdLoss tracers that could be tracked via KPP and outputted in the ProdLoss HISTORY collection. For example, in his
Hg.eqn
file:These RM* tracers were then outputted by ProdLoss. However, this didn't seem to make it into the release version. I was wondering if this functionality could be added in a similar way to a newer GEOS-Chem version, or if there was a reason this wasn't added in? This would make it easier to benchmark simulations and evaluate how Hg chemistry changes between versions.
The text was updated successfully, but these errors were encountered: