-
Notifications
You must be signed in to change notification settings - Fork 151
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
Conversation
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.
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
.
physics/mp_thompson.F90
Outdated
@@ -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 |
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.
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
Outdated
@@ -499,6 +509,10 @@ subroutine mp_thompson_run(ncol, nlev, con_g, con_rd, & | |||
return | |||
end if | |||
|
|||
if(iccn == 3 .and. iaerclm) then |
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.
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?
physics/mp_thompson.meta
Outdated
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) |
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.
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.
physics/mp_thompson.meta
Outdated
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) |
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.
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.
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
…On Mon, Aug 23, 2021 at 6:13 PM Dom Heinzeller ***@***.***> wrote:
***@***.**** requested changes on this pull request.
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.
------------------------------
In physics/mp_thompson.F90
<#720 (comment)>:
> @@ -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
Please move these three lines to below line 127 (i.e. after the last
consistency check and before the line ! Call Thompson init)
------------------------------
In physics/mp_thompson.F90
<#720 (comment)>:
> @@ -938,5 +952,17 @@ subroutine mp_thompson_finalize(errmsg, errflg)
is_initialized = .false.
end subroutine mp_thompson_finalize
+ subroutine get_niwfa(aerfld, nifa, nwfa, ncol, nlev)
Please add a blank line above subroutine get_niwfa(...)
------------------------------
In physics/mp_thompson.F90
<#720 (comment)>:
> @@ -499,6 +509,10 @@ subroutine mp_thompson_run(ncol, nlev, con_g, con_rd, &
return
end if
+ if(iccn == 3 .and. iaerclm) then
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?
------------------------------
In physics/mp_thompson.meta
<#720 (comment)>:
> + type = integer
+ intent = in
+ optional = F
+[iaerclm]
+ standard_name = flag_for_aerosol_input_MG_radiation
+ long_name = flag for using aerosols in Morrison-Gettelman MP_radiation
+ units = flag
+ dimensions = ()
+ type = logical
+ intent = in
+ optional = F
+[aerfld]
+ 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)
⬇️ 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.
------------------------------
In physics/mp_thompson.meta
<#720 (comment)>:
> + type = integer
+ intent = in
+ optional = F
+[iaerclm]
+ standard_name = flag_for_aerosol_input_MG_radiation
+ long_name = flag for using aerosols in Morrison-Gettelman MP_radiation
+ units = flag
+ dimensions = ()
+ type = logical
+ intent = in
+ optional = F
+[aerfld]
+ 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)
⬇️ 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.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#720 (review)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ALQPMIMUJLLTSQ5LAR2TGSTT6LBWZANCNFSM5CVHEBYQ>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email>
.
|
Anning, this is confusing to me. If |
Dom, I have just noticed this, good catch! I need to either turn on
ltaerosol and turn off the forecast of nifa and nwfa and their emissions
too., or simply turning ltaerosol to false and move the IN/CCN activation
module into themp_gt_driver. Fortunately, I only run one case and have not
spend much time on it.
…On Tue, Aug 24, 2021 at 10:53 AM Dom Heinzeller ***@***.***> wrote:
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
… <#m_-7144514882637878698_>
Anning, this is confusing to me. If ltaerosol=.false., then Thompson
completely ignores nwfa and nifa, too!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#720 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ALQPMIIHFMR2CU26VTMSYEDT6OW63ANCNFSM5CVHEBYQ>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email>
.
|
@AnningCheng-NOAA Can you give a quick update please where things stand with this PR? Thank you. |
Dom, I am working on it. It might take one to two weeks to test, tune, and
pass regression tests. Have a great weekend,
…On Fri, Sep 10, 2021 at 9:38 AM Dom Heinzeller ***@***.***> wrote:
@AnningCheng-NOAA <https://github.com/AnningCheng-NOAA> Can you give a
quick update please where things stand with this PR? Thank you.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#720 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ALQPMIOR4EFNU4R5DZBX6ZTUBIC35ANCNFSM5CVHEBYQ>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
|
Sounds good, thanks for letting me know. Have a great weekend, too! |
We should come back to this PR when time allows again. 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 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. |
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. |
Greg:
There are a few reasons to use the coding rather than the data itself:
1) Speeding up the model-- as well known, disk operation and interpolation
take much more time than a few lines in the model.
2) For the reason of tuning -- For example, the NWFA is defined QNWFA ->
8*oc+5*so4+9*ss1+9*ss2. If we like to change 8 to 10 or some other numbers,
We simply go to the code and change it and do not need to ask you or
someone else to make a different file. It sounds like making a file does
not take much time, but if we tune hundreds of times.Hundreds of files are
needed to created and saved. We also need to remember which file uses 8*oc
or 6*oc etc.
3) For the convenience of future maintenance, people will forget what the
file is about and wonder why they need extra files when the variables can
be calculated from the model.
4) Save the disk space for extra files.
It seems that I gave the names of ntlnc, ntinc, and ntrnc. ntrnc, ntsnc,
and ntgnc are the number concentrations of rain, snow, and graupel,
respectively.
mraerosol is named by me. "mr" represents MERRA2. If you come up with any
good name, we would be glad to use it.
Fangli, I will prepare a document for the issue. I believe you have more
great ideas on how to coupling MERRA2 with Thompson microphysics.
Anning
…On Sat, Jan 1, 2022 at 10:41 PM Fanglin Yang ***@***.***> wrote:
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.
—
Reply to this email directly, view it on GitHub
<#720 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ALQPMIMH2Q5P3NBB5LF6YDTUT7CPTANCNFSM5CVHEBYQ>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
There are two more reasons to use PR720, I think 5) is the most important
one
5) PR720 is actually simpler than reading and interpolation NIFA and NWFA.
PR720 uses two lines to calculate NIFA and NWFA, while reading and
interpolation NIFA and NWFA needs at least ten more lines of code to get
the work done.
6) Save updating time--Whenever we needs to update MERRA2 aerosol,
for example, changing files from normal netcdf to 6 tile format to avoid
horizontal interpolation or updating climatology data, PR720 needs to
update one set of files while the reading and interpolation approach needs
to update two set of data.
On Sun, Jan 2, 2022 at 4:07 PM Anning Cheng - NOAA Affiliate <
***@***.***> wrote:
… Greg:
There are a few reasons to use the coding rather than the data itself:
1) Speeding up the model-- as well known, disk operation and interpolation
take much more time than a few lines in the model.
2) For the reason of tuning -- For example, the NWFA is defined QNWFA ->
8*oc+5*so4+9*ss1+9*ss2. If we like to change 8 to 10 or some other numbers,
We simply go to the code and change it and do not need to ask you or
someone else to make a different file. It sounds like making a file does
not take much time, but if we tune hundreds of times.Hundreds of files are
needed to created and saved. We also need to remember which file uses 8*oc
or 6*oc etc.
3) For the convenience of future maintenance, people will forget what the
file is about and wonder why they need extra files when the variables can
be calculated from the model.
4) Save the disk space for extra files.
It seems that I gave the names of ntlnc, ntinc, and ntrnc. ntrnc, ntsnc,
and ntgnc are the number concentrations of rain, snow, and graupel,
respectively.
mraerosol is named by me. "mr" represents MERRA2. If you come up with any
good name, we would be glad to use it.
Fangli, I will prepare a document for the issue. I believe you have more
great ideas on how to coupling MERRA2 with Thompson microphysics.
Anning
On Sat, Jan 1, 2022 at 10:41 PM Fanglin Yang ***@***.***>
wrote:
> 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.
>
> —
> Reply to this email directly, view it on GitHub
> <#720 (comment)>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/ALQPMIMH2Q5P3NBB5LF6YDTUT7CPTANCNFSM5CVHEBYQ>
> .
> Triage notifications on the go with GitHub Mobile for iOS
> <https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
> or Android
> <https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
>
> You are receiving this because you were mentioned.Message ID:
> ***@***.***>
>
|
@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. |
@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 |
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/ |
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 |
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.