Skip to content

Option to roll back Thompson MP to WRFv3.8.1 (RAPv5/HRRRv4), add stochastic perturbations code#28

Merged
DomHeinzeller merged 3 commits into
NOAA-GSL:gsd/developfrom
climbfuji:rollback_thompson
Jun 12, 2020
Merged

Option to roll back Thompson MP to WRFv3.8.1 (RAPv5/HRRRv4), add stochastic perturbations code#28
DomHeinzeller merged 3 commits into
NOAA-GSL:gsd/developfrom
climbfuji:rollback_thompson

Conversation

@climbfuji
Copy link
Copy Markdown

@climbfuji climbfuji commented Jun 9, 2020

This PR only updates the submodule pointer for fv3atm.

Associated PRs:
NOAA-GSL/ccpp-physics#34
NOAA-GSL/fv3atm#35
#28

For regression testing information, see below.

@climbfuji
Copy link
Copy Markdown
Author

Regression testing on hera.intel against official EMC baseline using rt.conf: the following tests fail as expectedd (but run to completion), all others pass:

fv3_ccpp_thompson_no_aero_debug
fv3_ccpp_thompson_debug
fv3_ccpp_thompson
fv3_ccpp_thompson_no_aero
fv3_ccpp_gsd_debug
fv3_ccpp_gsd

rt_full.log
rt_full_fail_test.log

@climbfuji
Copy link
Copy Markdown
Author

Regression testing on hera.intel against existing baseline (created from gsd/develop) using rt_ccpp_gsd.conf: all tests using Thompson MP fail, the remaining two tests pass. This change in results is expected, because of the slightly different lower limits in the cloud effective radii as a result of cleaning up the code for initializing and bounding the variables. See further down for visual comparisons of 24h runs between the existing WRFv4 Thompson code, the new WRFv4 Thompson code, and the retrofitted WRFv381 Thompson code.

rt_ccpp_gsd_create_original_baseline.log
rt_ccpp_gsd_verify_original_baseline.log
rt_ccpp_gsd_verify_original_baseline_fail_test.log

@climbfuji
Copy link
Copy Markdown
Author

Regression testing on hera.intel using rt_ccpp_gsd.conf: create new baseline, then verify against it: all tests pass.

rt_ccpp_gsd_create_new_baseline.log
rt_ccpp_gsd_verify_new_baseline.log

@climbfuji
Copy link
Copy Markdown
Author

The following plots show the differences between the updated Thompson v4 code minus the original (head of gsd/develop) Thompson v4 code on the left, and the differences between the updated Thompson v4 code minus the retrofitted Thompson v3.8.1 code after 24h integration of our typical C768 2019/11/20 test case.

The clean up of the effective radii calculation leads to an increase - and fairly similar signals for v4 and v3.8.1 - in 2m temperature compared to the old v4 code.

Because the signal is larger than I expected, I would like to see another set of retrospective runs after this PR is merged (with the still default v4 code, but cleaned up cloud effective radii).

2m temperature
Screen Shot 2020-06-12 at 10 06 24 AM

instantaneous downward shortwave at sfc
Screen Shot 2020-06-12 at 10 13 52 AM

@tanyasmirnova
Copy link
Copy Markdown

Dom,
Could you please add the diff plots for the reflectivity which is one of 3-d fields in the output?
Thank you!

@climbfuji
Copy link
Copy Markdown
Author

Dom,
Could you please add the diff plots for the reflectivity which is one of 3-d fields in the output?
Thank you!

Which level do you want to see? I didn't have time to compute the composite reflectivity yet. Also, you can look at the data yourself:

/scratch1/NCEPDEV/stmp2/Dom.Heinzeller/FV3_RT/manual_test_KEEP_test_c768_20191120_gsdnoah/test_c768_20191120_gsdnoah_v4_old_code_repro
/scratch1/NCEPDEV/stmp2/Dom.Heinzeller/FV3_RT/manual_test_KEEP_test_c768_20191120_gsdnoah/test_c768_20191120_gsdnoah_v4_new_code_repro
/scratch1/NCEPDEV/stmp2/Dom.Heinzeller/FV3_RT/manual_test_KEEP_test_c768_20191120_gsdnoah/test_c768_20191120_gsdnoah_v381_new_code_repro

@tanyasmirnova
Copy link
Copy Markdown

tanyasmirnova commented Jun 12, 2020

I still do not support this change:
#ifdef WRF381
if (rs(kts).gt.R1* 10.) &
#else
if (rs(kts).gt.R1 * 1000.) &
#endif

I think that WRFV3,8.1 should also have R1*1000. Could we check with Greg about this?

@climbfuji
Copy link
Copy Markdown
Author

I still do not support this change:
#ifdef WRF381
if (rs(kts).gt.R1* 10.) &
#else
if (rs(kts).gt.R1 * 1000.) &
#endif

I think that WRFV3,8.1 should also have R1*1000. Could we check with Greg about this?

I can easily make the change. It will make the v3.8.1 results look even closer to v4, but that doesn't worry me. I would just like to know if the v4 changes are ok.

@johnbrownsbody
Copy link
Copy Markdown

I still do not support this change:
#ifdef WRF381
if (rs(kts).gt.R1* 10.) &
#else
if (rs(kts).gt.R1 * 1000.) &
#endif

I think that WRFV3,8.1 should also have R1*1000. Could we check with Greg about this?

Regarding the plots, I'm a little surprised to see

I still do not support this change:
#ifdef WRF381
if (rs(kts).gt.R1* 10.) &
#else
if (rs(kts).gt.R1 * 1000.) &
#endif
I think that WRFV3,8.1 should also have R1*1000. Could we check with Greg about this?

I can easily make the change. It will make the v3.8.1 results look even closer to v4, but that doesn't worry me. I would just like to know if the v4 changes are ok.

The current v3.8.1 code we are using in the operational RAPv4 / HRRRv3 (and will be using in RAPv5 / HRRRv4 once we get past the current RAPv5 boundary issues) uses R110. This is in the fallout part of subroutine mp_thompson. I'm not aware of why R110. should be a problem, but willing to learn.

The downward shortwave differences look OK to me. The downward solar appears to differ by ~ 20 W/m^2 (with a mixture of positive and negative differences) away from areas of deep convection (South Pacific Convergence Zone, ITC, Maritime Continent). The big values in these convection regions appear to be due to slight position differences in predicted areas of deep convection. Likewise, the 2-m temp differences are almost everywhere < 0.5K, it appears to me. The exceptions are mainly in areas of deep convection, where small location differences together with sharp gradients between cloudy and clear (or partly cloudy) areas combine to make the speckle pattern. The changes deserve a closer look in a retro, for sure, but I don't see evidence for obvious bugs at this point.

@hannahcbarnes
Copy link
Copy Markdown

@climbfuji I can run a retro when you are ready.

Just so you are aware we decided to hold of on running the retro for the latest version of GSD/Develop until the updated sfc_diff.f from EMC is committed.

@tanyasmirnova
Copy link
Copy Markdown

Dom,
I looked at the reflectivity - thank you for the links to your experiments. The reflectivities at many levels that I checked out look very similar in all three experiments (v4-old, v4-new and v3.8.1, even in the areas of deep convection with the presence of graupel. Maybe at the C768 resolution we can't expect to see the differences we saw in 3-km HRRR. Because, the reflectivity is so close with different version of Thompson MP, I think the code works correctly.

@DomHeinzeller
Copy link
Copy Markdown

DomHeinzeller commented Jun 12, 2020 via email

@climbfuji
Copy link
Copy Markdown
Author

I still do not support this change:
#ifdef WRF381
if (rs(kts).gt.R1* 10.) &
#else
if (rs(kts).gt.R1 * 1000.) &
#endif
I think that WRFV3,8.1 should also have R1*1000. Could we check with Greg about this?

Regarding the plots, I'm a little surprised to see

I still do not support this change:
#ifdef WRF381
if (rs(kts).gt.R1* 10.) &
#else
if (rs(kts).gt.R1 * 1000.) &
#endif
I think that WRFV3,8.1 should also have R1*1000. Could we check with Greg about this?

I can easily make the change. It will make the v3.8.1 results look even closer to v4, but that doesn't worry me. I would just like to know if the v4 changes are ok.

The current v3.8.1 code we are using in the operational RAPv4 / HRRRv3 (and will be using in RAPv5 / HRRRv4 once we get past the current RAPv5 boundary issues) uses R1_10. This is in the fallout part of subroutine mp_thompson. I'm not aware of why R1_10. should be a problem, but willing to learn.

The downward shortwave differences look OK to me. The downward solar appears to differ by ~ 20 W/m^2 (with a mixture of positive and negative differences) away from areas of deep convection (South Pacific Convergence Zone, ITC, Maritime Continent). The big values in these convection regions appear to be due to slight position differences in predicted areas of deep convection. Likewise, the 2-m temp differences are almost everywhere < 0.5K, it appears to me. The exceptions are mainly in areas of deep convection, where small location differences together with sharp gradients between cloudy and clear (or partly cloudy) areas combine to make the speckle pattern. The changes deserve a closer look in a retro, for sure, but I don't see evidence for obvious bugs at this point.

Let's keep R1 = 10 for the WRF381 flavor for the time being. We will need to conduct more experiments anyway between the two versions in order to converge to one version that works best.

@climbfuji
Copy link
Copy Markdown
Author

@climbfuji I can run a retro when you are ready.

Just so you are aware we decided to hold of on running the retro for the latest version of GSD/Develop until the updated sfc_diff.f from EMC is committed.

Ok, I don't know if that is a good idea. Wouldn't it be better to be able to separate the effects of the Thompson MP update from the sfc_diff bugfixes?

@DomHeinzeller DomHeinzeller merged commit df183da into NOAA-GSL:gsd/develop Jun 12, 2020
@hannahcbarnes
Copy link
Copy Markdown

@climbfuji I was not aware that this change was coming so fast. Our original idea with waiting was that we knew the current sfc_diff.f version is not working properly so we wanted to wait until we had a version that was better. I will check with Joe, Shan, and Georg and see what they think.

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.

5 participants