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
Parameterized Effective Radius for SNA and OM #1902
Conversation
The optical property look-up-table for sulfate and organics need to be updated: Updated so4 and org LUT.zip |
Thanks @Haihui-Zhu! We should be able to add this into 14.3.0, which will be the next feature version (14.2.0 is frozen for benchmarking). |
Sounds great! Thank you, Bob! |
@lizziel: Am adding you as a reviewer as we will need to apply the corresponding updates to CloudJ. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @Haihui-Zhu for submitting this PR. The base code is a 13.Y.Z version and so there have been many changes between then and the current 14.4.0 code under development. We will have to merge the code in and resolve the various conflicts.
Also I noticed that this PR adds a 4th dimension of size 40 to several FAST-JX inputs. This may cause additional overhead in memory and in run time. We'll have to monitor this post-merge.
Lastly, in 14.4.0, the Cloud-J photolysis scheme is now the default. We will have to make corresponding changes in the Cloud-J code, which will need to be done in careful coordination with @lizziel and @pratherUCI.
I approve these updates but there will likely be significant post-merge work and validation.
SO4_NH4_NIT(I,J,L) = ( Spc(I,J,L,id_SO4) & | ||
+ Spc(I,J,L,id_HMS) & | ||
+ Spc(I,J,L,id_NH4) & | ||
+ Spc(I,J,L,id_NIT) ) & |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These will have to be converted to Spc(N)%Conc(I,J,L)
, it will probably result in a merge conflict. Ditto for the rest.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi Bob, I didn't add this dimension. It is originally in GCHPv13.4.0.
I don't think removing this would affect implementing my parameterization. What I need essentially is to add one dimension to Rad_dry
and Rad_wet
ect. at around line 395 to include allow varying dry size.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe it would be easier for you to implement this if I create a new PR based on 14.3.0.
@@ -181,8 +180,9 @@ SUBROUTINE CHEMDUST( Input_Opt, State_Chm, State_Diag, & | |||
ENDIF | |||
|
|||
#ifdef APM | |||
|
|||
! Set pointer to species vector to access concentrations | |||
! Initialize GEOS-Chem tracer array [kg] from Chemistry State |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Most of the diffs are due to the update to Spc(N)%Conc(I,J,L)
in the newer code. These may cause merge conflicts.
Spc(I,J,1,APMIDS%id_DSTBIN1+6) = Spc(I,J,1,APMIDS%id_DSTBIN1+6) & | ||
+E_DST*3.7324808601695736d-002 | ||
Spc(I,J,1,APMIDS%id_DSTBIN1+7) = Spc(I,J,1,APMIDS%id_DSTBIN1+7) & | ||
+E_DST*0.1144517534356116 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Need to use either "d" exponents or "e" exponents with _fp
to ensure we don't lose precision.
@@ -253,9 +253,15 @@ MODULE CMN_FJX_MOD | |||
INTEGER, PARAMETER :: NWVAA = 41 !number of wavelengths in LUT | |||
INTEGER, PARAMETER :: NWVAA0 = 11 !number of non-RRTMG wavelengths | |||
INTEGER, PARAMETER :: NWVAART = NWVAA-NWVAA0 !number of RRTMG wvs | |||
INTEGER, PARAMETER :: NRAA = 7 !number of aer sizes in LUT | |||
INTEGER, PARAMETER :: NRAA = 7 !number of aer sizes (RH bins) in LUT |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@lizziel: We'll have to make similar updates for Cloud-J
This PR has resolved several post-merge conflicts in the following modules: - GeosCore/aerosol_mod.F90 - GeosCore/dust_mod.F90 - GeosCore/fast_jx_mod.F90 - Headers/CMN_FJX_MOD.F90 - Headers/state_diag_mod.F90 - run/GCHP/HISTORY.rc.templates/HISTORY.rc.fullchem Also a CHANGELOG.md entry has been added. Further debugging/tweaking will be done in subsequent commits. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
This update looks like it would have implications for computing inputs to Cloud-J. Fast-JX accepted optical depth as input to compute J-values but Cloud-J instead takes concentration. We compute the concentration by taking into account a dry to wet factor which incorporates effective radius. @Haihui-Zhu, would you be able to take a look at the computation that used effective radius in Cloud-J and advise on how your parameterized effective radius would be incorporated? I will look at it too and then we can discuss. The code for the aerosols is here. |
Changes to |
I should add that there is an open issue on Cloud-J github about aerosols and humidity. See geoschem/Cloud-J#13. |
@Haihui-Zhu @lizziel @randallvmartin: I've withdrawn this PR from the 14.4.0 development stream for now. As @lizziel mentioned, this will involve some further code modifications to Cloud-J, which must be done in conjunction with the Cloud-J developers. |
Another complication for Cloud-J is that it only has access to aerosol data in |
Also see the discussion in this issue: |
Hi @lizziel , Haihui |
Thank you @Haihui-Zhu. The location of the aerosol optical properties file read by Cloud-J is located here: |
Thanks for sharing. |
Hi @haihui. That would be great if you could create a PR off of 14.3.0. Much appreciated. |
Hi @yantosca and @lizziel Haihui |
Thanks @Haihui-Zhu. We can close out this PR as it its superseded by #2238. |
Hi @lizziel , Randall might have conveyed this to you, or you might have figured it out: To implement this parameterization, we need to have cloud J use the same LUT as RRTMG, since the LUTs for RRTMG contain more information. Updating the LUT and the reading process isn't very difficult. But verifying the result will take some work and might need to involve observational data which is out of my expertise. That is where I will need help from Prather. But before we start, let me double-check with Randall if this is what we want to do recently. Implementing this parametrization to AOD doesn't require reconciling the LUTs. All the hygroscopic growth and optical properties are handled properly in |
Name and Institution (Required)
Name: Haihui Zhu
Institution: Washington University in St. Louis
Confirm you have reviewed the following documentation
Describe the update
Implemented a parameterized effective radius for SNA and OM; Updated AOD calculation to account for the spatial and temporal variation in dry effective radius.
Specifically, the following scripts are modified:
Expected changes
A new variable 'PDER' can be found in the Aerosols collection. AOD for SO4 (actually represents SNA) and OM increased by about 12% globally (population weighted mean) and up to 30% regionally. No changes in sea salt AOD, dust AOD, BC AOD.
Size effect on photochemistry or other radiation processes is not implemented at this stage. So no changes are expected for these processes.
Reference(s)
Zhu, H., Martin, R.V., Croft, B., Zhai, S., Li, C., Bindle, L., Pierce, J.R., Chang, R.Y.W., Anderson, B.E., Ziemba, L.D. and Hair, J.W., 2023. Parameterization of size of organic and secondary inorganic aerosol for efficient representation of global aerosol optical properties. Atmospheric Chemistry and Physics, 23(9), pp.5023-5042.
Related Github Issue(s)
Implement a parameterization of SNA and OM dry size #1747