From 348d572462a553ce07a411fad4835bb3fc9dbfeb Mon Sep 17 00:00:00 2001 From: climbfuji Date: Mon, 29 Apr 2019 10:21:37 -0600 Subject: [PATCH 1/3] physics/GFS_MP_generic.F90: update calculation of srflag according to changes in GFS_physics_driver.F90 --- physics/GFS_MP_generic.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/physics/GFS_MP_generic.F90 b/physics/GFS_MP_generic.F90 index bf1b1ffdc..35ac396fe 100644 --- a/physics/GFS_MP_generic.F90 +++ b/physics/GFS_MP_generic.F90 @@ -376,7 +376,7 @@ subroutine GFS_MP_generic_post_run(im, ix, levs, kdt, nrcm, ncld, nncl, ntcw, nt ! endif ! compute fractional srflag total_precip = snow0(i)+ice0(i)+graupel0(i)+rain0(i)+rainc(i) - if (total_precip*tem > rainmin) then + if (total_precip > rainmin) then srflag(i) = (snow0(i)+ice0(i)+graupel0(i)+csnow)/total_precip endif enddo From 52b847d2e345c194f7ea445adb2b8de14c182286 Mon Sep 17 00:00:00 2001 From: climbfuji Date: Mon, 29 Apr 2019 14:52:08 -0600 Subject: [PATCH 2/3] physics/iccninterp.F90: update regression test name in comment --- physics/iccninterp.F90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/physics/iccninterp.F90 b/physics/iccninterp.F90 index c9df6f20c..926ce801a 100644 --- a/physics/iccninterp.F90 +++ b/physics/iccninterp.F90 @@ -223,8 +223,8 @@ SUBROUTINE ciinterpol(me,npts,IDATE,FHOUR,jindx1,jindx2,ddy, & ! i.e. i1 and i2 will have values determined by the ! previous code (line 178) - this leads to crashes in ! debug mode (out of bounds), for example for regression - ! test fv3_stretched_nest_debug_moninq. For the time - ! being, this is 'solved' by simply switching off ICCN + ! test fv3_stretched_nest_debug. For the time being, + ! this is 'solved' by simply switching off ICCN ! if MG2/3 are not used (these are the only microphysics ! schemes that use the ICCN data); however, this doesn't ! mean that the code is correct for MG2/3, it just doesn't From 77beadca7ea27a52ac35240de0508b2a0c84b792 Mon Sep 17 00:00:00 2001 From: climbfuji Date: Wed, 1 May 2019 20:46:16 -0600 Subject: [PATCH 3/3] physics/gfdl_cloud_microphys.F90: introduce second volatile variable for calculation of sr (Sfcprop%sr) to achieve b4b-identical results in PROD+TRANSITION mode --- physics/gfdl_cloud_microphys.F90 | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/physics/gfdl_cloud_microphys.F90 b/physics/gfdl_cloud_microphys.F90 index e6e781fcf..57181e754 100644 --- a/physics/gfdl_cloud_microphys.F90 +++ b/physics/gfdl_cloud_microphys.F90 @@ -231,7 +231,7 @@ subroutine gfdl_cloud_microphys_run( & real(kind=kind_phys) :: onebg real(kind=kind_phys) :: tem #ifdef TRANSITION - real(kind=kind_phys), volatile :: volatile_var + real(kind=kind_phys), volatile :: volatile_var1, volatile_var2 #endif @@ -322,10 +322,11 @@ subroutine gfdl_cloud_microphys_run( & ! values of rain0, ice0, snow0, graupel0 (for bit-for-bit) do i=1,im #ifdef TRANSITION - volatile_var = rain0(i)+snow0(i)+ice0(i)+graupel0(i) - prcp0(i) = volatile_var * tem - if ( volatile_var * tem > rainmin ) then - sr(i) = (snow0(i) + ice0(i) + graupel0(i)) / volatile_var + volatile_var1 = rain0(i)+snow0(i)+ice0(i)+graupel0(i) + volatile_var2 = snow0(i)+ice0(i)+graupel0(i) + prcp0(i) = volatile_var1 * tem + if ( volatile_var1 * tem > rainmin ) then + sr(i) = volatile_var2 / volatile_var1 #else prcp0(i) = (rain0(i)+snow0(i)+ice0(i)+graupel0(i)) * tem if ( prcp0(i) > rainmin ) then