From 408a25484afebf2a014b1c475629ba40b536eaeb Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 13 Dec 2019 14:37:21 -0700 Subject: [PATCH 1/2] Upate of suite definition files with change of module names mynnrad_{pre,post} to sgscloudrad_{pre,post}, addition of new variable qci_conv for GSDCHEM to GFS_typedefs.{F90,meta} --- ccpp/config/ccpp_prebuild_config.py | 4 ++-- ccpp/physics | 2 +- ccpp/suites/suite_FV3_GFS_v15_mynn.xml | 4 ++-- ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml | 4 ++-- ccpp/suites/suite_FV3_GSD_SAR.xml | 4 ++-- ccpp/suites/suite_FV3_GSD_noah.xml | 4 ++-- ccpp/suites/suite_FV3_GSD_v0.xml | 4 ++-- ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml | 4 ++-- gfsphysics/GFS_layer/GFS_typedefs.F90 | 8 ++++++++ gfsphysics/GFS_layer/GFS_typedefs.meta | 7 +++++++ 10 files changed, 30 insertions(+), 15 deletions(-) diff --git a/ccpp/config/ccpp_prebuild_config.py b/ccpp/config/ccpp_prebuild_config.py index ea5557f0f..f28751f75 100755 --- a/ccpp/config/ccpp_prebuild_config.py +++ b/ccpp/config/ccpp_prebuild_config.py @@ -207,8 +207,8 @@ 'FV3/ccpp/physics/physics/ysuvdif.F90' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/module_MYNNPBL_wrapper.F90' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/module_MYNNSFC_wrapper.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/module_MYNNrad_pre.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/module_MYNNrad_post.F90' : [ 'slow_physics' ], + 'FV3/ccpp/physics/physics/module_SGSCloud_RadPre.F90' : [ 'slow_physics' ], + 'FV3/ccpp/physics/physics/module_SGSCloud_RadPost.F90' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/module_MYJSFC_wrapper.F90' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/module_MYJPBL_wrapper.F90' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/mp_thompson_pre.F90' : [ 'slow_physics' ], diff --git a/ccpp/physics b/ccpp/physics index 32e245a44..0f8103428 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 32e245a44f372f3f17517548c7604cb57443783f +Subproject commit 0f8103428c0240510092075f92fcb656b9bc1e36 diff --git a/ccpp/suites/suite_FV3_GFS_v15_mynn.xml b/ccpp/suites/suite_FV3_GFS_v15_mynn.xml index 8fffa33e8..49d98cea4 100644 --- a/ccpp/suites/suite_FV3_GFS_v15_mynn.xml +++ b/ccpp/suites/suite_FV3_GFS_v15_mynn.xml @@ -20,12 +20,12 @@ GFS_suite_interstitial_rad_reset GFS_rrtmg_pre rrtmg_sw_pre - mynnrad_pre + sgscloud_radpre rrtmg_sw rrtmg_sw_post rrtmg_lw_pre rrtmg_lw - mynnrad_post + sgscloud_radpost rrtmg_lw_post GFS_rrtmg_post diff --git a/ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml b/ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml index 3de52fa45..7dd46088f 100644 --- a/ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml +++ b/ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml @@ -15,12 +15,12 @@ GFS_suite_interstitial_rad_reset GFS_rrtmg_pre rrtmg_sw_pre - mynnrad_pre + sgscloud_radpre rrtmg_sw rrtmg_sw_post rrtmg_lw_pre rrtmg_lw - mynnrad_post + sgscloud_radpost rrtmg_lw_post GFS_rrtmg_post diff --git a/ccpp/suites/suite_FV3_GSD_SAR.xml b/ccpp/suites/suite_FV3_GSD_SAR.xml index e563301c4..58bba03a6 100644 --- a/ccpp/suites/suite_FV3_GSD_SAR.xml +++ b/ccpp/suites/suite_FV3_GSD_SAR.xml @@ -15,12 +15,12 @@ GFS_suite_interstitial_rad_reset GFS_rrtmg_pre rrtmg_sw_pre - mynnrad_pre + sgscloud_radpre rrtmg_sw rrtmg_sw_post rrtmg_lw_pre rrtmg_lw - mynnrad_post + sgscloud_radpost rrtmg_lw_post GFS_rrtmg_post diff --git a/ccpp/suites/suite_FV3_GSD_noah.xml b/ccpp/suites/suite_FV3_GSD_noah.xml index e9795b6ef..450b9d389 100644 --- a/ccpp/suites/suite_FV3_GSD_noah.xml +++ b/ccpp/suites/suite_FV3_GSD_noah.xml @@ -15,12 +15,12 @@ GFS_suite_interstitial_rad_reset GFS_rrtmg_pre rrtmg_sw_pre - mynnrad_pre + sgscloud_radpre rrtmg_sw rrtmg_sw_post rrtmg_lw_pre rrtmg_lw - mynnrad_post + sgscloud_radpost rrtmg_lw_post GFS_rrtmg_post diff --git a/ccpp/suites/suite_FV3_GSD_v0.xml b/ccpp/suites/suite_FV3_GSD_v0.xml index 3f83b5dc5..fe2db9508 100644 --- a/ccpp/suites/suite_FV3_GSD_v0.xml +++ b/ccpp/suites/suite_FV3_GSD_v0.xml @@ -15,12 +15,12 @@ GFS_suite_interstitial_rad_reset GFS_rrtmg_pre rrtmg_sw_pre - mynnrad_pre + sgscloud_radpre rrtmg_sw rrtmg_sw_post rrtmg_lw_pre rrtmg_lw - mynnrad_post + sgscloud_radpost rrtmg_lw_post GFS_rrtmg_post diff --git a/ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml b/ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml index 8c56c07e5..c67249133 100644 --- a/ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml +++ b/ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml @@ -15,12 +15,12 @@ GFS_suite_interstitial_rad_reset GFS_rrtmg_pre rrtmg_sw_pre - mynnrad_pre + sgscloud_radpre rrtmg_sw rrtmg_sw_post rrtmg_lw_pre rrtmg_lw - mynnrad_post + sgscloud_radpost rrtmg_lw_post GFS_rrtmg_post diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index ff1d0184e..baf85e2ae 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -497,6 +497,7 @@ module GFS_typedefs real (kind=kind_phys), pointer :: dqdti (:,:) => null() !< instantaneous total moisture tendency (kg/kg/s) real (kind=kind_phys), pointer :: ushfsfci(:) => null() !< instantaneous upward sensible heat flux (w/m**2) real (kind=kind_phys), pointer :: dkt (:,:) => null() !< instantaneous dkt diffusion coefficient for temperature (m**2/s) + real (kind=kind_phys), pointer :: qci_conv(:,:) => null() !< convective cloud condesate after rainout contains procedure :: create => coupling_create !< allocate array data @@ -2607,6 +2608,13 @@ subroutine coupling_create (Coupling, IM, Model) Coupling%nifa2d = clear_val endif +#ifdef CCPP + if (Model%imfdeepcnv == Model%imfdeepcnv_gf) then + allocate (Coupling%qci_conv (IM,Model%levs)) + Coupling%qci_conv = clear_val + endif +#endif + end subroutine coupling_create diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index 872cb56ca..cfb48288b 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -1792,6 +1792,13 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys +[qci_conv] + standard_name = convective_cloud_condesate_after_rainout + long_name = convective cloud condesate after rainout + units = kg kg-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys ######################################################################## [ccpp-arg-table] From b5763ccf9bba93f0471b7af8810816a561f642ca Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 17 Dec 2019 16:04:11 -0700 Subject: [PATCH 2/2] Add Coupling(nb)%qci_conv(:,:) to list of 3d restart variables for GF convection --- ccpp/physics | 2 +- gfsphysics/GFS_layer/GFS_restart.F90 | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ccpp/physics b/ccpp/physics index 0f8103428..7289051e6 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 0f8103428c0240510092075f92fcb656b9bc1e36 +Subproject commit 7289051e62c748399972531a43d25cafa8189de3 diff --git a/gfsphysics/GFS_layer/GFS_restart.F90 b/gfsphysics/GFS_layer/GFS_restart.F90 index a24cc0fc6..b6e6a8b86 100644 --- a/gfsphysics/GFS_layer/GFS_restart.F90 +++ b/gfsphysics/GFS_layer/GFS_restart.F90 @@ -123,7 +123,7 @@ subroutine GFS_restart_populate (Restart, Model, Statein, Stateout, Sfcprop, & #ifdef CCPP ! GF if (Model%imfdeepcnv == 3) then - Restart%num3d = Restart%num3d + 2 + Restart%num3d = Restart%num3d + 3 endif ! MYNN PBL if (Model%do_mynnedmf) then @@ -278,6 +278,11 @@ subroutine GFS_restart_populate (Restart, Model, Statein, Stateout, Sfcprop, & do nb = 1,nblks Restart%data(nb,num)%var3p => Tbd(nb)%prevsq(:,:) enddo + num = num + 1 + Restart%name3d(num) = 'gf_3d_qci_conv' + do nb = 1,nblks + Restart%data(nb,num)%var3p => Coupling(nb)%qci_conv(:,:) + enddo endif ! MYNN PBL if (Model%do_mynnedmf) then