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

Parameterized Effective Radius for SNA and OM #1902

Closed
wants to merge 7 commits into from

Conversation

Haihui-Zhu
Copy link

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:

  1. aerosol_mod.F90 - include a new variable 'PDER' (parameterized dry effective radius); updated AOD calculation in response to the new variable.
  2. fast_jx_mod.F90 - update the reading of optical table (so4.dat and org.dat)
  3. CMN_FJX_mod.F90 - update the shape(size) of optical properties to include a new dimention 'Rg' (geometric mean radius)
  4. dust_mod.F90 - modified the format of optical properties in response to a new dimension 'Rg'
  5. state_diag_mod.F90 - adding a new variable 'PDER'
  6. HISTORY.rc.fullchem - adding a new variable 'PDER' in the Aerosols collection

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

@Haihui-Zhu
Copy link
Author

Haihui-Zhu commented Aug 7, 2023

The optical property look-up-table for sulfate and organics need to be updated: Updated so4 and org LUT.zip
Original path: CHEM_INPUTS/FAST_JX/v2021-10/

@Haihui-Zhu
Copy link
Author

Haihui-Zhu commented Aug 8, 2023

Below are maps comparing AOD components and PM25 before and after the implementation. The bottom right map shows the parameterized effective radius. The text below each figure shows the global population weighted mean (PWM) and the standard deviation (sigma).
maps_new_vs_old_update_aod
Simulation: C24 full chem for 2019 June 30th after 1 month spin-up

As for the simulation speed, this implementation only slightly (0.8%) increases the simulation time.

@yantosca yantosca added category: Feature Request New feature or request Attn: Aerosols WG Attention: Aerosols Working Group labels Aug 8, 2023
@yantosca
Copy link
Contributor

yantosca commented Aug 8, 2023

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).

@Haihui-Zhu
Copy link
Author

Sounds great! Thank you, Bob!

@yantosca yantosca self-requested a review February 13, 2024 19:24
@yantosca yantosca self-assigned this Feb 13, 2024
@yantosca yantosca changed the base branch from main to dev/14.4.0 March 12, 2024 21:33
@yantosca yantosca requested a review from lizziel March 12, 2024 21:33
@yantosca
Copy link
Contributor

@lizziel: Am adding you as a reviewer as we will need to apply the corresponding updates to CloudJ.

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.

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) ) &
Copy link
Contributor

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.

Copy link
Author

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.

Copy link
Author

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
Copy link
Contributor

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
Copy link
Contributor

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
Copy link
Contributor

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

yantosca added a commit that referenced this pull request Mar 19, 2024
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>
@yantosca yantosca linked an issue Mar 19, 2024 that may be closed by this pull request
1 task
@lizziel
Copy link
Contributor

lizziel commented Mar 19, 2024

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.

@lizziel
Copy link
Contributor

lizziel commented Mar 19, 2024

Changes to QSCALING computation in fast_jx_mod.F90 in the old version are in subroutine PHOTO_JX. In the newer version of GEOS-Chem that subroutine is in Cloud-J. The changes will therefore need to be added to the Cloud-J repository, and we should probably work with Prather on that. The scaling is done differently in Cloud-J. See Cloud-J lines here for how it is done.

@lizziel
Copy link
Contributor

lizziel commented Mar 19, 2024

I should add that there is an open issue on Cloud-J github about aerosols and humidity. See geoschem/Cloud-J#13.

@yantosca yantosca added the deferred Issues/PRs that we cannot work on right away label Mar 21, 2024
@yantosca
Copy link
Contributor

@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.

@yantosca yantosca changed the base branch from dev/14.4.0 to main March 21, 2024 16:08
@lizziel
Copy link
Contributor

lizziel commented Mar 21, 2024

Another complication for Cloud-J is that it only has access to aerosol data in FJX_spec-aer.dat, equivalent to the old jv_spec_mie.dat file. Fast-JX was modified during RRTMG development in GEOS-Chem to use the RRTMG LUT arrays rather than jv_spec_mie.dat for certain aerosols. For Cloud-J we returned to using the dat-file containing optical properties of all aerosols to stay true to the external model. Differences between FJX_spec-aer.dat and so4.dat and org.dat will need to be reconciled.

Copy link
Contributor

@Haihui-Zhu
Copy link
Author

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.

Hi @lizziel ,
Sure! Happy to take a look. I will give you an update once I figure out the possible solutions.
Apologize for the the delayed reply. I didn't notice this comment in the email thread.

Haihui

@lizziel
Copy link
Contributor

lizziel commented Mar 25, 2024

Thank you @Haihui-Zhu. The location of the aerosol optical properties file read by Cloud-J is located here:
http://geoschemdata.wustl.edu/ExtData/CHEM_INPUTS/CLOUD_J/v2023-05/FJX_scat-aer.dat

@Haihui-Zhu
Copy link
Author

Thank you @Haihui-Zhu. The location of the aerosol optical properties file read by Cloud-J is located here: http://geoschemdata.wustl.edu/ExtData/CHEM_INPUTS/CLOUD_J/v2023-05/FJX_scat-aer.dat

Thanks for sharing.

Copy link
Contributor

Hi @haihui. That would be great if you could create a PR off of 14.3.0. Much appreciated.

@Haihui-Zhu
Copy link
Author

Haihui-Zhu commented Apr 6, 2024

Hi @haihui. That would be great if you could create a PR off of 14.3.0. Much appreciated.

Hi @yantosca and @lizziel
I submitted another pull request #2238 that is based on the latest version of geos-chem. Hope this one is easy enough for you to merge the changes. Let me know if you have any questions or concerns.

Haihui

@yantosca
Copy link
Contributor

yantosca commented Apr 8, 2024

Thanks @Haihui-Zhu. We can close out this PR as it its superseded by #2238.

@yantosca yantosca closed this Apr 8, 2024
@Haihui-Zhu
Copy link
Author

Haihui-Zhu commented Apr 9, 2024

here

Thank you @Haihui-Zhu. The location of the aerosol optical properties file read by Cloud-J is located here: http://geoschemdata.wustl.edu/ExtData/CHEM_INPUTS/CLOUD_J/v2023-05/FJX_scat-aer.dat

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 RDAER subroutine from aerosol_mod.F90. My recent pull request is based on this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Attn: Aerosols WG Attention: Aerosols Working Group category: Feature Request New feature or request deferred Issues/PRs that we cannot work on right away
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Implement a parameterization of SNA and OM dry size
3 participants