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

Coupling Merra2 aerosol climatology and GOCART forecasted aerosol with Thompson microphysics #720

Closed
wants to merge 5 commits into from

Conversation

AnningCheng-NOAA
Copy link
Collaborator

MERRA2 climatological aerosols are used to calculate number concentrations of ice friendly and liquid friendly aerosols. So IN and CCN can be activated using aerosol. The indirect interaction of aerosol and clouds is expected to happen.

@climbfuji climbfuji changed the title Coupling Merra2 aerosl climatology with Thompson microphysics Coupling Merra2 aerosol climatology with Thompson microphysics Aug 23, 2021
Copy link
Collaborator

@climbfuji climbfuji left a comment

Choose a reason for hiding this comment

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

I have a few small changes, in particular for standard names. I am wondering if this code compiles and runs in the latest ufs-weather-model code.

Also, I have questions about recomputing nwfa and nifa every time step, but not nwfa2d and nifa2d.

@@ -104,7 +108,9 @@ subroutine mp_thompson_init(ncol, nlev, con_g, con_rd, con_eps, &
errflg = 0

if (is_initialized) return

if(iccn == 3 .and. iaerclm) then
Copy link
Collaborator

Choose a reason for hiding this comment

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

Please move these three lines to below line 127 (i.e. after the last consistency check and before the line ! Call Thompson init)

physics/mp_thompson.F90 Show resolved Hide resolved
@@ -499,6 +509,10 @@ subroutine mp_thompson_run(ncol, nlev, con_g, con_rd, &
return
end if

if(iccn == 3 .and. iaerclm) then
Copy link
Collaborator

Choose a reason for hiding this comment

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

Why is this routine called at every time step? Is this necessary? Also, I think this introduces an inconsistency, because the aerosol surface emissions (nwfa2d and nifa2d) are only called once in mp_thompson_init based on the results of get_niwfa at that time?

standard_name = aerosol_number_concentration_from_gocart_aerosol_climatology
long_name = GOCART aerosol climatology number concentration
units = kg-1
dimensions = (horizontal_loop_extent,vertical_dimension,number_of_aerosol_tracers_MG)
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
dimensions = (horizontal_loop_extent,vertical_dimension,number_of_aerosol_tracers_MG)
dimensions = (horizontal_dimension,vertical_layer_dimension,number_of_aerosol_tracers_MG)

Please also check if number_of_aerosol_tracers_MG is still the correct standard name, I am not positive.

standard_name = aerosol_number_concentration_from_gocart_aerosol_climatology
long_name = GOCART aerosol climatology number concentration
units = kg-1
dimensions = (horizontal_loop_extent,vertical_dimension,number_of_aerosol_tracers_MG)
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
dimensions = (horizontal_loop_extent,vertical_dimension,number_of_aerosol_tracers_MG)
dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_aerosol_tracers_MG)

Please also check if number_of_aerosol_tracers_MG is still the correct standard name, I am not positive.

@AnningCheng-NOAA
Copy link
Collaborator Author

AnningCheng-NOAA commented Aug 24, 2021 via email

@climbfuji
Copy link
Collaborator

Dom: I am making the changes that you suggested. I am still working on the regression tests and the code does not pass compilation although it works well in the old version of UFS. This approach does not need aerosol emissions (nifa2d and nwfa2d). I am running it with ltaerosol=.false., so those emissions are supposed to be turned off. Anning

Anning, this is confusing to me. If ltaerosol=.false., then Thompson completely ignores nwfa and nifa, too!

@AnningCheng-NOAA
Copy link
Collaborator Author

AnningCheng-NOAA commented Aug 24, 2021 via email

@climbfuji
Copy link
Collaborator

@AnningCheng-NOAA Can you give a quick update please where things stand with this PR? Thank you.

@AnningCheng-NOAA
Copy link
Collaborator Author

AnningCheng-NOAA commented Sep 10, 2021 via email

@climbfuji
Copy link
Collaborator

Dom, I am working on it. It might take one to two weeks to test, tune, and pass regression tests. Have a great weekend,

Sounds good, thanks for letting me know. Have a great weekend, too!

@AnningCheng-NOAA
Copy link
Collaborator Author

As shown in the attached file, nifa and nwfa look pretty reasonable. My PR is in good shape to merge with the trunk. It has just pass the regression tests /scratch1/NCEPDEV/global/Anning.Cheng/ufs-weather-model/tests/log_hera.intel/rt_001_merra2_thompson.lo
niwfa
g

@gthompsnWRF
Copy link
Collaborator

We should come back to this PR when time allows again.
I have a few concerns and ideas to move this forward.

If the MERRA aerosols are just good enough to use from a climo, then I think the simplest way forward is just swapping out the GOCART aerosol file with the newer equivalent one from MERRA - then absolutely no code changes are needed.

I see some indicies that I don't understand in names, in the arrays for aerosols such as: ntlnc, ntinc, ntrnc. I think the first 2 are liquid and ice, but what is letter "r"?

If I'm not mistaken the "ltaerosol" starts with "l" for a logical variable. Not that I believe all logical variables must start with a specific letter (because I much prefer words that make it clear like: is_aerosol_aware), but having another logical variable for mraerosol just doesn't seem necessary. Some other method of switching between GOCART and MERRA could be used; but I still prefer the idea written above of swapping an input file as the simpler method to achieve.

The subroutine that initializes the nwfa and nifa variables has a bunch of constants that could be spelled out why these values are used. Pretty sure these are things like the density of the aerosol (like SO2 or dust), but there simply must be some documentation of these mysterious numbers to help show others what's happening. Also the subroutine name should be changed if both variables are created because the name implies only one.

@yangfanglin
Copy link
Collaborator

Greg, neither the coupling between GOCART aerosols and radiation nor the coupling between GOCART aerosols and microphysics have been set up in CCPP. More development work is needed to make the code flexible enough to use either MERRA2 clim or active aerosols (or aerosol optical properties) from GOCART.
Anning, please address Greg's questions, and prepare a documentation/note about the implementation and application of MERRA2 aerosol clim in the UFS as we had discussed.

@AnningCheng-NOAA
Copy link
Collaborator Author

AnningCheng-NOAA commented Jan 2, 2022 via email

@AnningCheng-NOAA
Copy link
Collaborator Author

AnningCheng-NOAA commented Jan 2, 2022 via email

@grantfirl
Copy link
Collaborator

@AnningCheng-NOAA @gthompsnWRF Where do we stand with this pull request? Is anything needed from me or other CCPP folks to make progress here? Is there even agreement on how to go forward?

@gthompsnWRF
Copy link
Collaborator

@AnningCheng-NOAA @gthompsnWRF Where do we stand with this pull request? Is anything needed from me or other CCPP folks to make progress here? Is there even agreement on how to go forward?

Grant, I think there is some general agreement on a way forward with a couple ideas yet to be completed. So I think the group of (Anning, Fanglin, and myself) will get this ready for usage in a few weeks.

@grantfirl
Copy link
Collaborator

@AnningCheng-NOAA @gthompsnWRF Where do we stand with this pull request? Is anything needed from me or other CCPP folks to make progress here? Is there even agreement on how to go forward?

Grant, I think there is some general agreement on a way forward with a couple ideas yet to be completed. So I think the group of (Anning, Fanglin, and myself) will get this ready for usage in a few weeks.

OK, thanks for the update. As long as there is a path forward and this PR doesn't need to be removed, that is fine. I just wanted to check in and see if anybody needed help or a nudge.

@bbakernoaa
Copy link
Contributor

@AnningCheng-NOAA @yangfanglin When GOCART does come into play we need to make sure that we do it in a robust way just as in #899

@AnningCheng-NOAA AnningCheng-NOAA changed the title Coupling Merra2 aerosol climatology with Thompson microphysics Coupling Merra2 aerosol climatology and GOCART forecasted aerosol with Thompson microphysics Sep 8, 2022
@AnningCheng-NOAA
Copy link
Collaborator Author

The MERRA2 coupled  Thompson (EXP MRAERO) shows improvement from the control run and the forecasted NIFA and NWFA approach (LTAERO), specially decreased cloud water bias as shown in the attached poster. More comprehensive comparison located at https://www.emc.ncep.noaa.gov/gmb/acheng/mraero/
Because the Gocat coupled Thompson shares the same IN/CCN activation module as the MERRA2 coupled Thomson, we expect more improvements. 
gass_3_v1.pdf

@grantfirl
Copy link
Collaborator

This one can be closed since it has been reopened with the ufs-community fork, ufs/dev branch as the new target: ufs-community#2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants