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]Updates to IONO2 hydrolysis as described in Wang et al 2021 #719

Closed
wants to merge 5 commits into from

Conversation

tsherwen
Copy link
Contributor

@tsherwen tsherwen commented May 4, 2021

Hello GCST,

Please can I request that this minor commit be included in the timescales of the updated Cl+Br+I paper [Wang et al 2021]? the Wang et al [2021] paper is to be submitted to ACPD very very soon. This is a scientific change with small impacts. It includes IONO2 hydrolysis in a way that is more consistent with other XNOy species. A description of the changes will be included in Wang et al [2021].

Screenshot 2021-05-04 at 17 06 03

I can write an accompanying issue for this pull request too.

Cheers,

Tomas

Also move non-cycling calculations for IONO2 into HETIONO2 function and only consider acidic cycling reactions for IONO/HOI/IONO2 seperately.
Conflicts:
	KPP/Standard/gckpp_HetRates.F90
@msulprizio
Copy link
Contributor

Hi @tsherwen. Thanks for this PR. We ask that science updates get approval by the working groups. Could you send an email to the Chemistry WG notifying them of these updates and asking them to prioritize this item at the next GCSC meeting for inclusion in GEOS-Chem?

@tsherwen
Copy link
Contributor Author

tsherwen commented May 5, 2021

Hello @msulprizio, thanks for the response. Yes, several members of the chemistry working group are aware of this update and I will be emailing the mailing list once the paper is subsmitted. I'll add a message here when I have an update on this. Thanks, Tomas

@yantosca
Copy link
Contributor

@tsherwen : FYI, I am pulling out the heterogeneous chemistry reactions from gckpp_HetRates into gckpp.kpp, so that will likely result in more conflicts w/r/t my development branch.

@stale
Copy link

stale bot commented Jun 19, 2021

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.

@stale stale bot added the stale No recent activity on this issue label Jun 19, 2021
@yantosca yantosca self-assigned this Jun 21, 2021
@stale stale bot removed the stale No recent activity on this issue label Jun 21, 2021
@yantosca yantosca added the never stale Never label this issue as stale label Jun 21, 2021
@msulprizio msulprizio added the category: Feature Request New feature or request label Jun 21, 2021
@tsherwen
Copy link
Contributor Author

Thanks for adding the #NeverStale tag @yantosca.

The manuscript is now in review in ACPD and once any reviewer comments are addressed I will raise inclusion in the core with the Chemistry working group.

Wang, X., Jacob, D. J., Downs, W., Zhai, S., Zhu, L., Shah, V., Holmes, C. D., Sherwen, T., Alexander, B., Evans, M. J., Eastham, S. D., Neuman, J. A., Veres, P., Koenig, T. K., Volkamer, R., Huey, L. G., Bannan, T. J., Percival, C. J., Lee, B. H., and Thornton, J. A.: Global tropospheric halogen (Cl, Br, I) chemistry and its impact on oxidants, Atmos. Chem. Phys. Discuss. [preprint], https://doi.org/10.5194/acp-2021-441, in review, 2021.

@yantosca yantosca changed the title Updates to IONO2 hydrolysis as described in Wang et al 2021 [PULL REQUEST]Updates to IONO2 hydrolysis as described in Wang et al 2021 Jul 15, 2021
@tsherwen
Copy link
Contributor Author

Hello @yantosca & @msulprizio,

As discussed on this thread, I have now contacted the Chemistry Working Group about this pull request (pasted below).

The manuscript including the code in this pull request [Wang et al 2021] has now been resubmitted and all reviewer comments addressed.

I will post any updates from the Chemistry Working Group here and I remain keen for this minor update to be included as soon as possible.

Thanks,

Tomás

Hello Lu, Barron, Jingqiu, Mat & Chemistry Working Group,

Please could I check if anyone has any comments about the below pull request below before it is merged into the main branch?

It is part of the code used for the updated "halogens (Cl, Br, I) in GEOS-Chem" paper [Wang et al 2021] linked below? If so, please could you add comments on GitHub (preferable) or respond to this email within 2 weeks (Aug 20th)?

The manuscript has been in review in ACPD and a final version was submitted today after all reviewer comments have been responded to. No issues about this specific part of the manuscript were raised. As well as the information on GitHub, I have also attached a screenshot detailing the minor change that this pull request covers. All other changes for the manuscript are already present within the v12.9.0 code used for the work. I am keen for this pull request to be part of the main code as soon as possible.

#719

Wang, X., Jacob, D. J., Downs, W., Zhai, S., Zhu, L., Shah, V., Holmes, C. D., Sherwen, T., Alexander, B., Evans, M. J., Eastham, S. D., Neuman, J. A., Veres, P., Koenig, T. K., Volkamer, R., Huey, L. G., Bannan, T. J., Percival, C. J., Lee, B. H., and Thornton, J. A.: Global tropospheric halogen (Cl, Br, I) chemistry and its impact on oxidants, Atmos. Chem. Phys. Discuss. [preprint], https://doi.org/10.5194/acp-2021-441, in review, 2021.

acp-2021-441-manuscript-version2.pdf

Thanks,

Tomás

--
Dr Tomás Sherwen
Research Scientist
National Centre for Atmospheric Science (NCAS)
Wolfson Atmospheric Chemistry Laboratories (WACL)
Department of Chemistry, University of York, York, YO10 5DD
tomas.sherwen@york.ac.uk

( Please note: I am temporarily working part-time and I may be slower to respond )

@msulprizio
Copy link
Contributor

Thanks @tsherwen. I've added this item to our Model development priority page under "in the queue". These updates will need to be merged with the dev-kpp branch that will be going into 13.3.0. In that branch, @yantosca has greatly cleaned up gckpp_HetRates.F90 and @michael-s-long has moved sulfate chemistry to KPP and added HMS and C2H2/C2H4 chemistry, so there will likely be conflicts to resolve.

We recommend updating the base branch for this PR to dev once dev-kpp has been merged into dev and we will work with you to address the conflicts from there.

@barronh
Copy link

barronh commented Aug 11, 2021

@tsherwen - I'm going to summarize the changes in my own words to make sure I understand this PR correctly. I'll use reaction numbers from your manuscript and reference code lines in the PR. Can you confirm my understanding?

R10, R11, and R12 are retained from the old chemistry.[1] The updates are the removal of persistent uptake reactions[2] and the addition of (R13) IONO2 hydrolysis[3].

The removal of uptake reactions have negligible affect on ISALA/ISALC burdens and small changes at the surface. For HOI, removing uptake increased burdens (11%) and surface concentrations (15%). IONO2, as expected, has the most substantial changes to burden (-25%) and surface concentrations (-47%), which are net changes both from removing persistent uptake (+) and adding photolysis (-).

If I understand the changes, they sound good to me.

[1] Standard.eqn PR new lines:

  • 1348-1350 as R11 from the manuscript assuming rates include the branching ratio
  • 1352-1355 as R10 from the manuscript assuming rates include the branching ratio
  • 1356-1359 as R12 from the manuscript assuming rates include the branching ratio
    [2] Standard.eqn PR old lines 1339-1340, 1350-1353
    [3] Standard eqn PR new lines 1360

Copy link
Contributor

Thanks @tsherwen & @barronh. I will take a look at this for 13.3.0. The only thing to note is that I will have to do a manual merge because the new hetchem rate law functions have been updated and are no longer stored in gckpp_HetRates.F90, so I can't do a direct merge.

@tsherwen
Copy link
Contributor Author

Hello @barronh,

I've attached the text from the updated "halogens in GEOS-Chem" paper [Wang et al 2021] for reference, as it isn't showing in my copy-paste of the working group email on this thread.

Screenshot 2021-08-10 at 10 04 11

OK. Your summary is correct.

Thanks for reviewing this!

Tomas

Copy link
Contributor

@yantosca yantosca left a comment

Choose a reason for hiding this comment

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

This seems straightforward but I will make the modifications manually, as the hetrates have been updated.

@yantosca
Copy link
Contributor

@tsherwen, I am looking at your code to try to bring this into 13.3.0. I have a question as to which gamma values you use to pass to CLOUDHET. If you look at the calling code in SET_HET, you have:

      !----------------------------------------------------------------------
      ! IONO2 hydrolysis
      !----------------------------------------------------------------------
      kITemp            = HETIONO2( XDenA, TempK, CldFr, SSAlk, H )
      kITemp = kITemp   + CloudHet( 'IONO2', CldFr, Aliq,  Aice,             &
                                     rLiq,   rIce,  TempK, XDenA, H         )

      HET(ind_IONO2, 7) = kIIR1Ltd( spcVec, H%IONO2%mId, H%H2O%mId,          &
                                    kITemp, HetMinLife                      )

And in routine CLOUDHET there is a CASE statement to pick gammaLiq and gammaIce:

      !------------------------------------------------------------------------
      ! Select Gamma and molar mass for this species
      !------------------------------------------------------------------------
      !%%% BMY NOTE: GET RID OF THIS CASE STATEMENT, IT IS INEFFICIENT
      !%%% TO DO A STRING TEST ON EVERY (I,J,L) GRID BOX (bmy, 6/16/20)
      select case (trim(speciesName))
      case ('HO2')
         gammaLiq = 0.10_fp
         gammaIce = 0.025_fp
         molmass  = H%HO2%MW_g
      case ('NO2')
         gammaLiq = 1e-8_fp
         gammaIce = 0.0_fp
         molmass  = H%NO2%MW_g
      case ('NO3')
         gammaLiq = 0.002_fp
         gammaIce = 0.001_fp
         molmass  = H%NO3%MW_g
      case ('N2O5')
         ! Reactive uptake coefficient for N2O5 on liquid water cloud
         ! Value is 0.03 at 298 K (JPL, Burkholder et al., 2015)
         ! For temperature dependence, JPL recommends the same as
         ! sulfuric acid aerosol at zero percent H2SO4, which is 0.019 at 298 K.
         ! Then apply constant scale factor (0.03/0.019)
         gammaLiq = ( 0.03_fp / 0.019_fp ) * &
              exp( -25.5265_fp + 9283.76_fp / T - 851801.0_fp / T**2 )
         ! Reactive uptake coefficient for N2O5 on water ice
         gammaIce = 0.02_fp
         molmass  = H%N2O5%MW_g
      case ('BrNO3')
         gammaLiq = MAX( 0.0021_fp*T - 0.561_fp, 1e-30_fp )
         gammaIce = 5.3e-4_fp * exp(1100.0_fp / T)
         molmass  = H%BrNO3%MW_g
      case ('ClNO3')
         if ( present(xliq) ) gammaLiq = xliq
         if ( present(xice) ) gammaIce = xice
         molmass = H%ClNO3%MW_g

      case ('IONO2')

         if ( present(xliq) ) gammaLiq = xliq
         if ( present(xice) ) gammaIce = xice
         molmass = H%IONO2%MW_g

But if you notice, for IONO2, it's expecting external optional variables XLIQ and XICE to be passed in. Yet in the calling sequence, XLIQ and XICE aren't passed. Is this a bug?

For hydrolysis I presume you'd want

XLIQ = gammaLiq = 1.0
XICE = gammaIce = 1.0

is that right?

@yantosca
Copy link
Contributor

Or would you use the values for BrNO3:

         gammaLiq = MAX( 0.0021_fp*T - 0.561_fp, 1e-30_fp )
         gammaIce = 5.3e-4_fp * exp(1100.0_fp / T)

yantosca added a commit that referenced this pull request Sep 16, 2021
KPP/fullchem/fullchem.eqn
KPP/aciduptake/aciduptake.eqn
- Remove hetchem rxns HOI = ISALA and HOI = ISALC
- Remove hetchem rxns IONO = ISALA and IONO = ISALC
- Remove hetchem rxns IONO2 = ISALA and IONO2 = ISALC
- Add hetchem rxn IONO2 + H2O = HOI + HNO3

KPP/fullchem/RateLawFuncs.F90
- Add new hetrate function IONO2uptkByH2O, following the
  instructions in geoschem/geoschem #719

KPP/fullchem/gckpp.map
KPP/fullchem/gckpp_*.F90
- Rebuilt with KPP 2.3.3_gc

NOTE: There may be a bug in the original code as received from T. Sherwen,
we are asking for clarification.

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

@yantosca yantosca left a comment

Choose a reason for hiding this comment

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

Need clarification about the value of XLIQ and XICE for IONO2 to be passed into CloudHet. It seems that there is a bug but I cannot be sure.

@tsherwen
Copy link
Contributor Author

tsherwen commented Sep 28, 2021

Hello @yantosca,

Thanks for catching this. It seems to be a typo in the branch passed.

The values should be as below, as this what was used to make the uptake coefficient consistent with hydrolysis in aerosols.

case ('IONO2')
         gammaLiq = 0.01
         gammaIce = 0.01
         molmass = H%IONO2%MW_g

I know we have discussed this on various threads, but please @xuanw0316 can you just confirm that this is what was in the final runs for the ACP paper?

Thanks,

Tomas

@xuanw0316
Copy link

xuanw0316 commented Sep 28, 2021

@tsherwen @yantosca
Yes those values are what I use in all my runs and the ACP paper.

gammaLiq = 0.01
gammaIce = 0.01

@tsherwen
Copy link
Contributor Author

Thanks for the quick response @xuanw0316.

To be clear though, we do not have cloud hydrolysis of IONO2 switched on in the core runs in the ACP paper?

This was to be explored separately in the other work. Large impacts were found on including those additional updates.

@yantosca
Copy link
Contributor

Thanks @tsherwen @xuanw0316! I can go forward with this. We'll definitely get it into 13.3.0.

yantosca added a commit that referenced this pull request Sep 28, 2021
In the original geoschem/geos-chem PR #719, the gammaLiq and gammaIce
values for IONO2 were not specified in routine CloudHet.  This was
a bug in the original development branch.

Tomas Sherwen and Xuan Wang have clarified that the values of
gammaLiq and gammaIce for IONO2 should both be 0.01.  We now pass
these to the CloudHet function in rate law function IONO2uptkByH2O
in KPP/fullchem/fullchem_RateLawFuncs.F90.

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

I am going to close out this PR, as it has now been superseded by PR #923. The modifications in this PR could not be merged because the base code no longer exists in the latest development branch. I have taken the algorithm described in this PR and applied it to the more recent development branch.

@yantosca yantosca removed the never stale Never label this issue as stale label Sep 28, 2021
@yantosca yantosca closed this Sep 28, 2021
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
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants