Skip to content

cloud cover changes related to Thompson MP and added namelist options…#778

Closed
RuiyuSun wants to merge 9 commits into
NCAR:mainfrom
RuiyuSun:cloud_radiation_mp
Closed

cloud cover changes related to Thompson MP and added namelist options…#778
RuiyuSun wants to merge 9 commits into
NCAR:mainfrom
RuiyuSun:cloud_radiation_mp

Conversation

@RuiyuSun
Copy link
Copy Markdown
Contributor

In the gfsv17 based Thompson MP experiments, there is significantly less cloud cover (low and high) compared with CERES data. The radiative flux biases (dsw at surface and OLR) are larger in the Thompson MP experiments than in the gfsv17 control. The purpose of the PR is to increase the cloud cover and reduce the radiative flux bias at the surface and TOA. The cloud cover formulation was modified and namelist options were added to three parameters (related to the supersaturation requirement for ice generation and D0s and D0g) in the Thompson MP to control the ice and high cloud.

@ligiabernardet
Copy link
Copy Markdown
Collaborator

Based on the meeting 11/19 meeting of Thompson mp developers, it is recommended that variables D0s and D0g not be made namelist options but instead that the values recommended by @RuiyuSun be hardcoded in the code, as they were deemed reasonable for applications at a range of grid spacings. There was reluctance about overexposing parameters to avoid excessive tuning.

@gthompsnWRF
Copy link
Copy Markdown
Contributor

Ruiyu (and others),
With our very promising results with D0s=300 and D0g=350, let's just hard-wire the av_i variable to the final matching velocity at 300 micron matching size, which would be av_i = 1493.9

Also, if my test run is correct, I no longer think we need to have a namelist parameter such as crt_sati and could just revert to the prior code with the inline hard-wired value of 125% (the IF-statement was ssati .gt. 0.25).

In the end, it would mean only* a 3-line change to module_mp_thompson.F90

Lastly, what is with the changes to call subroutines with empty parentheses? If this isn't needed for any compiler, let's please not change code. If needed because of some change to Intel/Gnu/other, then fine.

@RuiyuSun
Copy link
Copy Markdown
Contributor Author

RuiyuSun commented Nov 22, 2021 via email

Comment thread physics/radiation_clouds.f Outdated
do k = 1, NLAY
do i = 1, IX
clwf(i,k) = clw(i,k,ntcw) + clw(i,k,ntiw) + clw(i,k,ntsw)
& +clw(i,k,ntrw) + clw(i,k,ntgl) + cnvw(i,k)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I really don't think this is a good idea. You are now including rain + graupel + something from convection into the calculation of total condensate? The first two really shouldn't be considered in radiation or a cloud fraction scheme at all - these are not cloud particles, they are precipitation and large particles do not appreciably contribute into radiation in shortwave or longwave spectra. They are active in radiation in microwave spectra for certain, but not in here. And around line 3133, there is a subtraction of clwm from clwf, this is perhaps not what is desired.

You might consider now making changes related to this subroutine as a separate PR from the Thompson-MP changes. Furthermore, I advise you to have a look at my re-factoring of this IF-THEN-ELSE block, because I think I simplified the reading of this code far better with my changes since a good number of lines are repetitive within the IF and ELSE blocks.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

In the current radiation code, both rain and snow (optical depth) are used in cloud optics calculation in the radiative flux calculation. Graupel is considered as snow here. But its impact is small.

I can make a separate PR about the cloud change.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Can you prove that rain is used anywhere in the radiation code? I do not believe this is true and have pondered taking out the arrays for rain from the radiation_clouds.f progcld* subroutines as they are potentially confusing to others. RRTMG should not be using rain - you can ask the authors if you wish. Also, please do not include graupel as snow. If you do, it will be setting a new precedent I think and I do not believe you will gain the support of other developers and certainly not together with the Thompson-MP. I believe it will be a detriment and cause deep convective cores of storms to turn the sky into near total darkness at the ground in shortwave radiation.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I don't know much about the radiation code. I see rain water path is used in the following routine in cldprop in radsw_main.F90 for example.
cdat1 - real, layer cloud optical depth nlay !
.
.
cldran = cdat1(k)
.
tauran = cldran * a0r

It also used in the
rrtmg_sw_cloud_optics.F90 and rrtmgp_sw_cloud_optics.F90

I can exclude graupel from radiation. I don't think it will affect the radiative fluxes much.

Comment thread physics/mp_thompson.F90 Outdated
sedi_semi=sedi_semi, sedi_semi_update=sedi_semi_update, &
sedi_semi_decfl=sedi_semi_decfl, &
sedi_semi_decfl=sedi_semi_decfl, &
crt_sati=crt_sati, &
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I think Dom has made some points about your use of indentation and continuation lines with the ampersand. Please keep things consistent.

Comment thread physics/mp_thompson.F90 Outdated
logical, intent(in) :: sedi_semi
logical, intent(in) :: sedi_semi_update
logical, intent(in) :: sedi_semi_decfl
real, intent(in ) :: crt_sati
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

whitespace problem - look at neighboring lines

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

crt_sati namelist variable is removed from the code.

Comment thread physics/module_mp_thompson.F90 Outdated
if (mpirank==mpiroot) write(0,*) ' creating qc collision eff tables'
call table_Efrw
call table_Efsw
call table_Efsw
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

extra whitespace on the end of line

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

removed. Thanks.

Comment thread physics/mp_thompson.F90 Outdated
tt=tgrs, p=prsl, w=w, dz=dz, dt_in=dtstep, dt_inner=dt_inner, &
sedi_semi=sedi_semi, sedi_semi_update=sedi_semi_update, &
sedi_semi_decfl=sedi_semi_decfl, &
sedi_semi_decfl=sedi_semi_decfl, &
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Another stray whitespace is on the end of this line. If you use Github, it can show you these mistakes so you can detect them and fix for quicker approval.

Comment thread physics/mp_thompson.F90 Outdated

! Call Thompson init
call thompson_init(is_aerosol_aware_in=is_aerosol_aware, mpicomm=mpicomm, &
call thompson_init(is_aerosol_aware_in=is_aerosol_aware, &
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Ruiyu - I think you need to revert back these changes. They involve whitespace only and should not be a part of this PR as Dom suggested - unless I am mistaken on something.

Copy link
Copy Markdown
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.

Looks good to me. Will approve when the PR has been tested with the UFS Weather Model.

@climbfuji
Copy link
Copy Markdown
Collaborator

Changes are included in #781.

@climbfuji climbfuji closed this Dec 3, 2021
davegill pushed a commit to wrf-model/WRF that referenced this pull request Jan 20, 2022
…-MP and icloud3 (cloud fraction) scheme (#1626)

TYPE: enhancement

KEYWORDS: microphysics, clouds, cloud fraction, Thompson microphysics

SOURCE:  Greg Thompson (UCAR/Joint Center for Satellite Data Assimilation)

DESCRIPTION OF CHANGES:
The purpose of these changes is to produce better cloud coverage and radiation amounts per tuning done with 
GFS global model and comparisons to observations.

Problem:
The Thompson-MP code (from ccpp-physics) has been used within UFS/GFS/FV-3 global model for multiple 
day simulations.  Anning Cheng and Ruiyu Sun (NCEP/EMC) have performed most of the simulations and 
analysis and iterated with me to make adjustments to the Thompson-MP.  At first, EMC found that high 
clouds were not present enough, particularly in the tropics.  Once switching to a larger upper limit of cloud 
ice before it becomes snow, the cloud amounts improved but some clouds and radiation balances were still 
not matching results from FV3's GFDL microphysics (which had already been tuned to observations).  
Therefore an effort to account for subgrid-scale clouds using the cloud fraction scheme (icloud=3) was 
adopted to GFS and tested with various parameter settings.

Solution:
The biggest change is in how cloud ice converts to snow at a threshold size of 300 microns (up from 200 
microns) and for rimed snow to convert to graupel (changed from 250 to 350 microns).  A change to allowed 
max size of ice means that the fall velocity constant for ice was changed to keep it aligned with snow at the 
same cut-over size (of 300 microns).  In addition, the cloud fraction scheme (icloud=3) can further improve 
the clouds and radiation together with Thompson-MP due to the overall under-prediction of clouds.  The 
icloud3 option was also making far too many clouds when compared to observations so its tuning knobs 
were adjusted until attaining the following overall improvements compared to cloud and radiation global 
climatologies that EMC uses:  cloud amounts of low, middle, high, and total cloud coverage, longwave 
radiation outgoing at top-of-atmosphere, and shortwave radiation reaching the ground.

ISSUE:  
There are corresponding issues or pull requests in the ccpp-physics repo, 
[778](NCAR/ccpp-physics#778)
[781](NCAR/ccpp-physics#781)
[809](NCAR/ccpp-physics#809)

LIST OF MODIFIED FILES: 
M  module_mp_thompson.F
M  module_radiation_driver.F
M  module_ra_rrtmg_lw.F
M  module_ra_rrtmg_lwf.F
M  module_ra_rrtmg_sw.F
M  module_ra_rrtmg_swf.F

TESTS CONDUCTED: 
1. A series of tests in GFS including 5, 7, 16, and 30-day long simulations compared to known cloud and 
radiation climatologies. The plots attached here in this comment were created by Anning Cheng. The numbers 
at the top of each panel represent global 3-day (days 3, 4, 5) average.

The first plot is the high/mid/low/total cloud amount.  The tunings in this PR reduced the high cloud amount 
from over 55% down to the low 40s, which matches observations of global cloud coverage pretty well.  And, 
another comparison is without the cloud fraction scheme, the mid-level clouds (and low/high) are simply less 
than observations, which is something well published in IPCC reports of global model clouds, especially the 
Southern Ocean and east sides of ocean basins (low stratus).
![gfnl_cf_20190611](https://user-images.githubusercontent.com/35609171/149175845-585914ce-84d4-4d72-a7e2-e96a5cb9d228.png)

The next plot's panel (a) shows the outgoing longwave radiation.  The target value global average is about 
240 W/m2.  Without the cloud fraction scheme and changes to ```D0s``` and ```D0g```, the result would be 
too much outgoing longwave since it will not contain enough clouds at lower temperatures.  Also, the older 
version of the cloud fraction scheme with its excessive amount of high clouds would make the outgoing 
radiation closer to 225 W/m2.  So the tuning of the scheme brings the results closer to observations.

![gfnl_prcp_20190611](https://user-images.githubusercontent.com/35609171/149176400-41f8b655-3d58-4cc4-adb0-6f6037beed52.png)

Lastly, the final plot shows the downward longwave reaching the ground (panel c) and downward shortwave 
reaching the ground (panel d). 

![gfnl_sfc_SWLW_20190611](https://user-images.githubusercontent.com/35609171/149177060-964ce8bd-02dc-4359-ad5d-37502b2d0f70.png)

2. Jenkins tests are passing.

RELEASE NOTE: Update of the Thompson microphysics scheme and cloud fraction scheme (icloud=3) to match the observations better. The modifications include updates to RRTMG LW and SW, and RRTMG fast LW and SW.
vlakshmanan-scala pushed a commit to scala-computing/WRF that referenced this pull request Apr 4, 2024
…-MP and icloud3 (cloud fraction) scheme (wrf-model#1626)

TYPE: enhancement

KEYWORDS: microphysics, clouds, cloud fraction, Thompson microphysics

SOURCE:  Greg Thompson (UCAR/Joint Center for Satellite Data Assimilation)

DESCRIPTION OF CHANGES:
The purpose of these changes is to produce better cloud coverage and radiation amounts per tuning done with 
GFS global model and comparisons to observations.

Problem:
The Thompson-MP code (from ccpp-physics) has been used within UFS/GFS/FV-3 global model for multiple 
day simulations.  Anning Cheng and Ruiyu Sun (NCEP/EMC) have performed most of the simulations and 
analysis and iterated with me to make adjustments to the Thompson-MP.  At first, EMC found that high 
clouds were not present enough, particularly in the tropics.  Once switching to a larger upper limit of cloud 
ice before it becomes snow, the cloud amounts improved but some clouds and radiation balances were still 
not matching results from FV3's GFDL microphysics (which had already been tuned to observations).  
Therefore an effort to account for subgrid-scale clouds using the cloud fraction scheme (icloud=3) was 
adopted to GFS and tested with various parameter settings.

Solution:
The biggest change is in how cloud ice converts to snow at a threshold size of 300 microns (up from 200 
microns) and for rimed snow to convert to graupel (changed from 250 to 350 microns).  A change to allowed 
max size of ice means that the fall velocity constant for ice was changed to keep it aligned with snow at the 
same cut-over size (of 300 microns).  In addition, the cloud fraction scheme (icloud=3) can further improve 
the clouds and radiation together with Thompson-MP due to the overall under-prediction of clouds.  The 
icloud3 option was also making far too many clouds when compared to observations so its tuning knobs 
were adjusted until attaining the following overall improvements compared to cloud and radiation global 
climatologies that EMC uses:  cloud amounts of low, middle, high, and total cloud coverage, longwave 
radiation outgoing at top-of-atmosphere, and shortwave radiation reaching the ground.

ISSUE:  
There are corresponding issues or pull requests in the ccpp-physics repo, 
[778](NCAR/ccpp-physics#778)
[781](NCAR/ccpp-physics#781)
[809](NCAR/ccpp-physics#809)

LIST OF MODIFIED FILES: 
M  module_mp_thompson.F
M  module_radiation_driver.F
M  module_ra_rrtmg_lw.F
M  module_ra_rrtmg_lwf.F
M  module_ra_rrtmg_sw.F
M  module_ra_rrtmg_swf.F

TESTS CONDUCTED: 
1. A series of tests in GFS including 5, 7, 16, and 30-day long simulations compared to known cloud and 
radiation climatologies. The plots attached here in this comment were created by Anning Cheng. The numbers 
at the top of each panel represent global 3-day (days 3, 4, 5) average.

The first plot is the high/mid/low/total cloud amount.  The tunings in this PR reduced the high cloud amount 
from over 55% down to the low 40s, which matches observations of global cloud coverage pretty well.  And, 
another comparison is without the cloud fraction scheme, the mid-level clouds (and low/high) are simply less 
than observations, which is something well published in IPCC reports of global model clouds, especially the 
Southern Ocean and east sides of ocean basins (low stratus).
![gfnl_cf_20190611](https://user-images.githubusercontent.com/35609171/149175845-585914ce-84d4-4d72-a7e2-e96a5cb9d228.png)

The next plot's panel (a) shows the outgoing longwave radiation.  The target value global average is about 
240 W/m2.  Without the cloud fraction scheme and changes to ```D0s``` and ```D0g```, the result would be 
too much outgoing longwave since it will not contain enough clouds at lower temperatures.  Also, the older 
version of the cloud fraction scheme with its excessive amount of high clouds would make the outgoing 
radiation closer to 225 W/m2.  So the tuning of the scheme brings the results closer to observations.

![gfnl_prcp_20190611](https://user-images.githubusercontent.com/35609171/149176400-41f8b655-3d58-4cc4-adb0-6f6037beed52.png)

Lastly, the final plot shows the downward longwave reaching the ground (panel c) and downward shortwave 
reaching the ground (panel d). 

![gfnl_sfc_SWLW_20190611](https://user-images.githubusercontent.com/35609171/149177060-964ce8bd-02dc-4359-ad5d-37502b2d0f70.png)

2. Jenkins tests are passing.

RELEASE NOTE: Update of the Thompson microphysics scheme and cloud fraction scheme (icloud=3) to match the observations better. The modifications include updates to RRTMG LW and SW, and RRTMG fast LW and SW.
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.

4 participants