From a5a066a913791104656edeb26081b2d167cdc211 Mon Sep 17 00:00:00 2001 From: Michael Toy Date: Wed, 2 Sep 2020 22:39:48 +0000 Subject: [PATCH 01/19] 1st attempt - Sept. 2 --- ccpp/config/ccpp_prebuild_config.py | 6 ++ .../suite_FV3_GSD_v0_unified_ugwp_suite.xml | 93 +++++++++++++++++++ gfsphysics/GFS_layer/GFS_typedefs.F90 | 64 +++++++++---- gfsphysics/GFS_layer/GFS_typedefs.meta | 63 +++++++++++++ io/FV3GFS_io.F90 | 32 ++++--- 5 files changed, 228 insertions(+), 30 deletions(-) create mode 100644 ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite.xml diff --git a/ccpp/config/ccpp_prebuild_config.py b/ccpp/config/ccpp_prebuild_config.py index 2c0da61da..369f11cc7 100755 --- a/ccpp/config/ccpp_prebuild_config.py +++ b/ccpp/config/ccpp_prebuild_config.py @@ -137,6 +137,10 @@ 'FV3/ccpp/physics/physics/cires_vert_lsatdis.F90', 'FV3/ccpp/physics/physics/cires_vert_orodis.F90', 'FV3/ccpp/physics/physics/cires_vert_wmsdis.F90', + 'FV3/ccpp/physics/physics/cires_ugwp_module_v1.F90', + 'FV3/ccpp/physics/physics/cires_ugwp_triggers_v1.F90', + 'FV3/ccpp/physics/physics/cires_ugwp_solv2_v1_mod.F90', + 'FV3/ccpp/physics/physics/cires_ugwp_orolm97_v1.F90', 'FV3/ccpp/physics/physics/namelist_soilveg.f', 'FV3/ccpp/physics/physics/mfpblt.f', 'FV3/ccpp/physics/physics/mfpbltq.f', @@ -231,6 +235,8 @@ 'FV3/ccpp/physics/physics/GFS_time_vary_pre.fv3.F90', 'FV3/ccpp/physics/physics/cires_ugwp.F90', 'FV3/ccpp/physics/physics/cires_ugwp_post.F90', + 'FV3/ccpp/physics/physics/unified_ugwp.F90', + 'FV3/ccpp/physics/physics/unified_ugwp_post.F90', 'FV3/ccpp/physics/physics/cnvc90.f', 'FV3/ccpp/physics/physics/cs_conv.F90', 'FV3/ccpp/physics/physics/cs_conv_aw_adj.F90', diff --git a/ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite.xml b/ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite.xml new file mode 100644 index 000000000..4b35d952f --- /dev/null +++ b/ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite.xml @@ -0,0 +1,93 @@ + + + + + + + GFS_time_vary_pre + GFS_rrtmg_setup + GFS_rad_time_vary + GFS_phys_time_vary + + + + + GFS_suite_interstitial_rad_reset + sgscloud_radpre + GFS_rrtmg_pre + rrtmg_sw_pre + rrtmg_sw + rrtmg_sw_post + rrtmg_lw_pre + rrtmg_lw + sgscloud_radpost + rrtmg_lw_post + GFS_rrtmg_post + + + + + GFS_suite_interstitial_phys_reset + GFS_suite_stateout_reset + get_prs_fv3 + GFS_suite_interstitial_1 + GFS_surface_generic_pre + GFS_surface_composites_pre + dcyc2t3 + GFS_surface_composites_inter + GFS_suite_interstitial_2 + + + + sfc_diff + GFS_surface_loop_control_part1 + sfc_nst_pre + sfc_nst + sfc_nst_post + lsm_ruc + lsm_ruc_sfc_sice_pre + sfc_sice + lsm_ruc_sfc_sice_post + GFS_surface_loop_control_part2 + + + + GFS_surface_composites_post + sfc_diag + sfc_diag_post + GFS_surface_generic_post + mynnedmf_wrapper + GFS_GWD_generic_pre + unified_ugwp + unified_ugwp_post + GFS_GWD_generic_post + rayleigh_damp + GFS_suite_stateout_update + ozphys_2015 + h2ophys + get_phi_fv3 + GFS_suite_interstitial_3 + GFS_DCNV_generic_pre + cu_gf_driver_pre + cu_gf_driver + GFS_DCNV_generic_post + GFS_SCNV_generic_pre + GFS_SCNV_generic_post + GFS_suite_interstitial_4 + cnvc90 + GFS_MP_generic_pre + mp_thompson_pre + mp_thompson + mp_thompson_post + GFS_MP_generic_post + cu_gf_driver_post + maximum_hourly_diagnostics + + + + + GFS_stochastics + + + + diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index 84e345633..0b1a97358 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -815,9 +815,17 @@ module GFS_typedefs logical :: cnvgwd !< flag for conv gravity wave drag #ifdef CCPP integer :: gwd_opt !< gwd_opt = 1 => original GFS gwd (gwdps.f) - !< gwd_opt = 2 => unified GWD (placeholder) - !< gwd_opt = 3 => GSD drag suite - !< gwd_opt = 33 => GSD drag suite with extra output + !< gwd_opt = 2 => unified ugwp GWD + !< gwd_opt = 22 => unified ugwp GWD with extra output + !< gwd_opt = 3 => GSL drag suite + !< gwd_opt = 33 => GSL drag suite with extra output + logical :: do_ugwp_v0 !< flag for version 0 ugwp GWD + logical :: do_ugwp_v0_orog_only !< flag for version 0 ugwp GWD (orographic drag only) + logical :: do_gsl_drag_ls_bl !< flag for GSL drag (large-scale GWD and blocking only) + logical :: do_gsl_drag_ss !< flag for GSL drag (small-scale GWD only) + logical :: do_gsl_drag_tofd !< flag for GSL drag (turbulent orog form drag only) + logical :: do_ugwp_v1 !< flag for version 1 ugwp GWD + logical :: do_ugwp_v1_orog_only !< flag for version 1 ugwp GWD (orographic drag only) #endif logical :: mstrat !< flag for moorthi approach for stratus logical :: moist_adj !< flag for moist convective adjustment @@ -891,7 +899,7 @@ module GFS_typedefs #endif integer :: nmtvr !< number of topographic variables such as variance etc !< used in the GWD parameterization - 10 more added if - !< GSD orographic drag scheme is used + !< GSL orographic drag scheme is used integer :: jcap !< number of spectral wave trancation used only by sascnv shalcnv real(kind=kind_phys) :: cs_parm(10) !< tunable parameters for Chikira-Sugiyama convection real(kind=kind_phys) :: flgmin(2) !< [in] ice fraction bounds @@ -2057,7 +2065,7 @@ module GFS_typedefs real (kind=kind_phys), pointer :: qs_r(:,:) => null() !< real (kind=kind_phys), pointer :: qg_r(:,:) => null() !< - !-- GSD drag suite + !-- GSL drag suite real (kind=kind_phys), pointer :: varss(:) => null() !< real (kind=kind_phys), pointer :: ocss(:) => null() !< real (kind=kind_phys), pointer :: oa4ss(:,:) => null() !< @@ -3080,8 +3088,17 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & logical :: old_monin = .false. !< flag for diff monin schemes logical :: cnvgwd = .false. !< flag for conv gravity wave drag integer :: gwd_opt = 1 !< flag for configuring gwd scheme - !< gwd_opt = 3 : GSDdrag suite - !< gwd_opt = 33: GSDdrag suite with extra output + !< gwd_opt = 2 => unified ugwp GWD + !< gwd_opt = 22 => unified ugwp GWD with extra output + !< gwd_opt = 3 : GSLdrag suite + !< gwd_opt = 33: GSLdrag suite with extra output + logical :: do_ugwp_v0 = .true. !< flag for version 0 ugwp GWD + logical :: do_ugwp_v0_orog_only = .false. !< flag for version 0 ugwp GWD (orographic drag only) + logical :: do_gsl_drag_ls_bl = .false. !< flag for GSL drag (large-scale GWD and blocking only) + logical :: do_gsl_drag_ss = .false. !< flag for GSL drag (small-scale GWD only) + logical :: do_gsl_drag_tofd = .false. !< flag for GSL drag (turbulent orog form drag only) + logical :: do_ugwp_v1 = .false. !< flag for version 1 ugwp GWD + logical :: do_ugwp_v1_orog_only = .false. !< flag for version 1 ugwp GWD (orographic drag only) !--- vay-2018 logical :: ldiag_ugwp = .false. !< flag for UGWP diag fields logical :: do_ugwp = .false. !< flag do UGWP+RF @@ -3380,7 +3397,9 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & bl_mynn_cloudpdf, bl_mynn_edmf, bl_mynn_edmf_mom, & bl_mynn_edmf_tke, bl_mynn_edmf_part, bl_mynn_cloudmix, & bl_mynn_mixqt, bl_mynn_output, icloud_bl, bl_mynn_tkeadvect, & - gwd_opt, & + gwd_opt, do_ugwp_v0, do_ugwp_v0_orog_only, & + do_gsl_drag_ls_bl, do_gsl_drag_ss, do_gsl_drag_tofd, & + do_ugwp_v1, do_ugwp_v1_orog_only, & ! *DH do_myjsfc, do_myjpbl, & hwrf_samfdeep, hwrf_samfshal, & @@ -3937,8 +3956,9 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & Model%icloud_bl = icloud_bl ! *DH Model%gwd_opt = gwd_opt - if (Model%gwd_opt==3 .or. Model%gwd_opt==33) then - ! Add 10 more orographic static fields for GSD drag scheme + if (Model%gwd_opt==3 .or. Model%gwd_opt==33 .or. & + Model%gwd_opt==2 .or. Model%gwd_opt==22) then + ! Add 10 more orographic static fields for GSL drag scheme Model%nmtvr = 24 end if Model%do_myjsfc = do_myjsfc @@ -5013,6 +5033,13 @@ subroutine control_print(Model) print *, ' do_myjsfc : ', Model%do_myjsfc print *, ' do_myjpbl : ', Model%do_myjpbl print *, ' gwd_opt : ', Model%gwd_opt + print *, ' do_ugwp_v0 : ', Model%do_ugwp_v0 + print *, ' do_ugwp_v0_orog_only : ', Model%do_ugwp_v0_orog_only + print *, ' do_gsl_drag_ls_bl : ', Model%do_gsl_drag_ls_bl + print *, ' do_gsl_drag_ss : ', Model%do_gsl_drag_ss + print *, ' do_gsl_drag_tofd : ', Model%do_gsl_drag_tofd + print *, ' do_ugwp_v1 : ', Model%do_ugwp_v1 + print *, ' do_ugwp_v1_orog_only : ', Model%do_ugwp_v1_orog_only #endif print *, ' ' print *, 'Rayleigh friction' @@ -5750,7 +5777,7 @@ subroutine diag_create (Diag, IM, Model) endif !--- Drag Suite variables: - if (Model%gwd_opt == 33) then + if (Model%gwd_opt == 33 .or. Model%gwd_opt == 22) then !print*,"Allocating all Drag Suite variables:" allocate (Diag%dtaux2d_ls (IM,Model%levs)) allocate (Diag%dtauy2d_ls (IM,Model%levs)) @@ -6454,8 +6481,9 @@ subroutine interstitial_create (Interstitial, IM, Model) allocate (Interstitial%dudt_mtb (IM,Model%levs)) allocate (Interstitial%dudt_ogw (IM,Model%levs)) allocate (Interstitial%dudt_tms (IM,Model%levs)) -!-- GSD drag suite - if (Model%gwd_opt==3 .or. Model%gwd_opt==33) then +!-- GSL drag suite + if (Model%gwd_opt==3 .or. Model%gwd_opt==33 .or. & + Model%gwd_opt==2 .or. Model%gwd_opt==22 ) then allocate (Interstitial%varss (IM)) allocate (Interstitial%ocss (IM)) allocate (Interstitial%oa4ss (IM,4)) @@ -7031,8 +7059,9 @@ subroutine interstitial_phys_reset (Interstitial, Model) Interstitial%dudt_mtb = clear_val Interstitial%dudt_ogw = clear_val Interstitial%dudt_tms = clear_val -!-- GSD drag suite - if (Model%gwd_opt==3 .or. Model%gwd_opt==33) then +!-- GSL drag suite + if (Model%gwd_opt==3 .or. Model%gwd_opt==33 .or. & + Model%gwd_opt==2 .or. Model%gwd_opt==22) then Interstitial%varss = clear_val Interstitial%ocss = clear_val Interstitial%oa4ss = clear_val @@ -7384,8 +7413,9 @@ subroutine interstitial_print(Interstitial, Model, mpirank, omprank, blkno) write (0,*) 'sum(Interstitial%dudt_mtb ) = ', sum(Interstitial%dudt_mtb ) write (0,*) 'sum(Interstitial%dudt_ogw ) = ', sum(Interstitial%dudt_ogw ) write (0,*) 'sum(Interstitial%dudt_tms ) = ', sum(Interstitial%dudt_tms ) -!-- GSD drag suite - if (Model%gwd_opt==3 .or. Model%gwd_opt==33) then +!-- GSL drag suite + if (Model%gwd_opt==3 .or. Model%gwd_opt==33 .or. & + Model%gwd_opt==2 .or. Model%gwd_opt==22) then write (0,*) 'sum(Interstitial%varss ) = ', sum(Interstitial%varss) write (0,*) 'sum(Interstitial%ocss ) = ', sum(Interstitial%ocss) write (0,*) 'sum(Interstitial%oa4ss ) = ', sum(Interstitial%oa4ss) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index 1c1ecc0c7..f4ec1ae30 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -1966,6 +1966,13 @@ units = none dimensions = () type = integer +[fhzero] + standard_name = hours_between_clearing_of_diagnostic_buckets + long_name = hours between clearing of diagnostic buckets + units = h + dimensions = () + type = real + kind = kind_phys [fn_nml] standard_name = namelist_filename long_name = namelist filename @@ -4334,6 +4341,62 @@ units = flag dimensions = () type = logical +[do_ugwp_v0] + standard_name = do_ugwp_v0 + long_name = flag to activate ver 0 CIRES UGWP + units = flag + dimensions = () + type = logical + intent = in + optional = F +[do_ugwp_v0_orog_only] + standard_name = do_ugwp_v0_orog_only + long_name = flag to activate ver 0 CIRES UGWP - orographic GWD only + units = flag + dimensions = () + type = logical + intent = in + optional = F +[do_gsl_drag_ls_bl] + standard_name = do_gsl_drag_ls_bl + long_name = flag to activate GSL drag suite - large-scale GWD and blocking + units = flag + dimensions = () + type = logical + intent = in + optional = F +[do_gsl_drag_ss] + standard_name = do_gsl_drag_ss + long_name = flag to activate GSL drag suite - small-scale GWD + units = flag + dimensions = () + type = logical + intent = in + optional = F +[do_gsl_drag_tofd] + standard_name = do_gsl_drag_tofd + long_name = flag to activate GSL drag suite - turb orog form drag + units = flag + dimensions = () + type = logical + intent = in + optional = F +[do_ugwp_v1] + standard_name = do_ugwp_v1 + long_name = flag to activate ver 1 CIRES UGWP + units = flag + dimensions = () + type = logical + intent = in + optional = F +[do_ugwp_v1_orog_only] + standard_name = do_ugwp_v1_orog_only + long_name = flag to activate ver 1 CIRES UGWP - orographic GWD only + units = flag + dimensions = () + type = logical + intent = in + optional = F ######################################################################## [ccpp-arg-table] diff --git a/io/FV3GFS_io.F90 b/io/FV3GFS_io.F90 index b86cd0295..8a625607f 100644 --- a/io/FV3GFS_io.F90 +++ b/io/FV3GFS_io.F90 @@ -652,7 +652,8 @@ subroutine sfc_prop_restart_read (Sfcprop, Atm_block, Model, fv_domain) #ifdef CCPP !--- Modify/read-in additional orographic static fields for GSL drag suite - if (Model%gwd_opt==3 .or. Model%gwd_opt==33) then + if (Model%gwd_opt==3 .or. Model%gwd_opt==33 .or. & + Model%gwd_opt==2 .or. Model%gwd_opt==22 ) then if (.not. allocated(oro_ls_ss_name)) then !--- allocate the various containers needed for orography data allocate(oro_ls_ss_name(nvar_oro_ls_ss)) @@ -697,17 +698,23 @@ subroutine sfc_prop_restart_read (Sfcprop, Atm_block, Model, fv_domain) do ix = 1, Atm_block%blksz(nb) i = Atm_block%index(nb)%ii(ix) - isc + 1 j = Atm_block%index(nb)%jj(ix) - jsc + 1 - !--- assign hprime(1:10) and hprime(15:24) with new oro stat data - Sfcprop(nb)%hprime(ix,1) = oro_ls_var(i,j,1) - Sfcprop(nb)%hprime(ix,2) = oro_ls_var(i,j,2) - Sfcprop(nb)%hprime(ix,3) = oro_ls_var(i,j,3) - Sfcprop(nb)%hprime(ix,4) = oro_ls_var(i,j,4) - Sfcprop(nb)%hprime(ix,5) = oro_ls_var(i,j,5) - Sfcprop(nb)%hprime(ix,6) = oro_ls_var(i,j,6) - Sfcprop(nb)%hprime(ix,7) = oro_ls_var(i,j,7) - Sfcprop(nb)%hprime(ix,8) = oro_ls_var(i,j,8) - Sfcprop(nb)%hprime(ix,9) = oro_ls_var(i,j,9) - Sfcprop(nb)%hprime(ix,10) = oro_ls_var(i,j,10) + ! Replace hprime(1:10) with GSL oro stat data only when using GSL + ! drag suite with large scale GWD and blocking as part of unified drag + ! suite. Otherwise, original oro stat data is used. + if ( (Model%gwd_opt==2 .or. Model%gwd_opt==22) .and. & + Model%do_gsl_drag_ls_bl ) then + !--- assign hprime(1:10) and hprime(15:24) with new oro stat data + Sfcprop(nb)%hprime(ix,1) = oro_ls_var(i,j,1) + Sfcprop(nb)%hprime(ix,2) = oro_ls_var(i,j,2) + Sfcprop(nb)%hprime(ix,3) = oro_ls_var(i,j,3) + Sfcprop(nb)%hprime(ix,4) = oro_ls_var(i,j,4) + Sfcprop(nb)%hprime(ix,5) = oro_ls_var(i,j,5) + Sfcprop(nb)%hprime(ix,6) = oro_ls_var(i,j,6) + Sfcprop(nb)%hprime(ix,7) = oro_ls_var(i,j,7) + Sfcprop(nb)%hprime(ix,8) = oro_ls_var(i,j,8) + Sfcprop(nb)%hprime(ix,9) = oro_ls_var(i,j,9) + Sfcprop(nb)%hprime(ix,10) = oro_ls_var(i,j,10) + end if Sfcprop(nb)%hprime(ix,15) = oro_ss_var(i,j,1) Sfcprop(nb)%hprime(ix,16) = oro_ss_var(i,j,2) Sfcprop(nb)%hprime(ix,17) = oro_ss_var(i,j,3) @@ -718,7 +725,6 @@ subroutine sfc_prop_restart_read (Sfcprop, Atm_block, Model, fv_domain) Sfcprop(nb)%hprime(ix,22) = oro_ss_var(i,j,8) Sfcprop(nb)%hprime(ix,23) = oro_ss_var(i,j,9) Sfcprop(nb)%hprime(ix,24) = oro_ss_var(i,j,10) - enddo enddo From 4ff714c906ac69e953299ae00b6cbc926f15c5f3 Mon Sep 17 00:00:00 2001 From: Michael Toy Date: Fri, 4 Sep 2020 03:02:47 +0000 Subject: [PATCH 02/19] 2nd try -- Sept. 3 -- two scheme test --- ccpp/config/ccpp_prebuild_config.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ccpp/config/ccpp_prebuild_config.py b/ccpp/config/ccpp_prebuild_config.py index 369f11cc7..cda2ba95a 100755 --- a/ccpp/config/ccpp_prebuild_config.py +++ b/ccpp/config/ccpp_prebuild_config.py @@ -139,8 +139,11 @@ 'FV3/ccpp/physics/physics/cires_vert_wmsdis.F90', 'FV3/ccpp/physics/physics/cires_ugwp_module_v1.F90', 'FV3/ccpp/physics/physics/cires_ugwp_triggers_v1.F90', + 'FV3/ccpp/physics/physics/cires_ugwp_initialize_v1.F90', 'FV3/ccpp/physics/physics/cires_ugwp_solv2_v1_mod.F90', 'FV3/ccpp/physics/physics/cires_ugwp_orolm97_v1.F90', + 'FV3/ccpp/physics/physics/cires_orowam2017.F90', + 'FV3/ccpp/physics/physics/cires_vert_orodis_v1.F90', 'FV3/ccpp/physics/physics/namelist_soilveg.f', 'FV3/ccpp/physics/physics/mfpblt.f', 'FV3/ccpp/physics/physics/mfpbltq.f', From 345fd935fa76115c558890604d7d2204ea7ea2e4 Mon Sep 17 00:00:00 2001 From: Michael Toy Date: Thu, 10 Sep 2020 21:38:52 +0000 Subject: [PATCH 03/19] Bug fix -- Sept. 10 --- gfsphysics/GFS_layer/GFS_typedefs.F90 | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index 0b1a97358..618a10aac 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -3961,6 +3961,13 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & ! Add 10 more orographic static fields for GSL drag scheme Model%nmtvr = 24 end if + Model%do_ugwp_v0 = do_ugwp_v0 + Model%do_ugwp_v0_orog_only = do_ugwp_v0_orog_only + Model%do_gsl_drag_ls_bl = do_gsl_drag_ls_bl + Model%do_gsl_drag_ss = do_gsl_drag_ss + Model%do_gsl_drag_tofd = do_gsl_drag_tofd + Model%do_ugwp_v1 = do_ugwp_v1 + Model%do_ugwp_v1_orog_only = do_ugwp_v1_orog_only Model%do_myjsfc = do_myjsfc Model%do_myjpbl = do_myjpbl #endif From 936da62af7b6188272e4497d33999fde20d1bfbf Mon Sep 17 00:00:00 2001 From: Michael Toy Date: Sun, 13 Sep 2020 00:50:55 +0000 Subject: [PATCH 04/19] Sept. 12 edition --- gfsphysics/GFS_layer/GFS_typedefs.F90 | 1 + 1 file changed, 1 insertion(+) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index 618a10aac..fb95c2845 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -5039,6 +5039,7 @@ subroutine control_print(Model) print *, ' do_mynnsfclay : ', Model%do_mynnsfclay print *, ' do_myjsfc : ', Model%do_myjsfc print *, ' do_myjpbl : ', Model%do_myjpbl + print *, ' do_ugwp : ', Model%do_ugwp print *, ' gwd_opt : ', Model%gwd_opt print *, ' do_ugwp_v0 : ', Model%do_ugwp_v0 print *, ' do_ugwp_v0_orog_only : ', Model%do_ugwp_v0_orog_only From 9784248a0a43394b643830159b4aeb9cdcc09d0b Mon Sep 17 00:00:00 2001 From: Michael Toy Date: Sun, 13 Sep 2020 02:50:26 +0000 Subject: [PATCH 05/19] Sept. 12 bug fix --- io/FV3GFS_io.F90 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/io/FV3GFS_io.F90 b/io/FV3GFS_io.F90 index 8a625607f..efaf26be0 100644 --- a/io/FV3GFS_io.F90 +++ b/io/FV3GFS_io.F90 @@ -701,8 +701,9 @@ subroutine sfc_prop_restart_read (Sfcprop, Atm_block, Model, fv_domain) ! Replace hprime(1:10) with GSL oro stat data only when using GSL ! drag suite with large scale GWD and blocking as part of unified drag ! suite. Otherwise, original oro stat data is used. - if ( (Model%gwd_opt==2 .or. Model%gwd_opt==22) .and. & - Model%do_gsl_drag_ls_bl ) then + if ( (Model%gwd_opt==3 .or. Model%gwd_opt==33) .or. & + ( (Model%gwd_opt==2 .or. Model%gwd_opt==22) .and. & + Model%do_gsl_drag_ls_bl ) ) then !--- assign hprime(1:10) and hprime(15:24) with new oro stat data Sfcprop(nb)%hprime(ix,1) = oro_ls_var(i,j,1) Sfcprop(nb)%hprime(ix,2) = oro_ls_var(i,j,2) From 14f852f0673d807a02aa2a2683c3fd0efa2a3bd0 Mon Sep 17 00:00:00 2001 From: Michael Toy Date: Thu, 17 Sep 2020 23:20:46 +0000 Subject: [PATCH 06/19] Sept. 17 -- debugging --- io/FV3GFS_io.F90 | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/io/FV3GFS_io.F90 b/io/FV3GFS_io.F90 index efaf26be0..865eaea3e 100644 --- a/io/FV3GFS_io.F90 +++ b/io/FV3GFS_io.F90 @@ -650,6 +650,16 @@ subroutine sfc_prop_restart_read (Sfcprop, Atm_block, Model, fv_domain) deallocate(oro_name2, oro_var2) call free_restart_type(Oro_restart) + + ! Temporary line + if (Model%me==0) then + do nb = 1, ATM_block%nblks + write (71,*) Sfcprop(nb)%hprime(:,14) + write (73,*) Sfcprop(nb)%hprime(:,13) + end do + end if + + #ifdef CCPP !--- Modify/read-in additional orographic static fields for GSL drag suite if (Model%gwd_opt==3 .or. Model%gwd_opt==33 .or. & @@ -734,6 +744,16 @@ subroutine sfc_prop_restart_read (Sfcprop, Atm_block, Model, fv_domain) end if #endif + ! Temporary line + if (Model%me==0) then + do nb = 1, ATM_block%nblks + write (72,*) Sfcprop(nb)%hprime(:,14) + write (74,*) Sfcprop(nb)%hprime(:,13) + end do + end if + + + !--- SURFACE FILE if (.not. allocated(sfc_name2)) then !--- allocate the various containers needed for restarts From 0e07005df31a04ed83ac96628b5d43b4dbdb9f2f Mon Sep 17 00:00:00 2001 From: Michael Toy Date: Fri, 18 Sep 2020 17:20:23 +0000 Subject: [PATCH 07/19] Bug fixes -- Sept. 18 --- io/FV3GFS_io.F90 | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/io/FV3GFS_io.F90 b/io/FV3GFS_io.F90 index 865eaea3e..efaf26be0 100644 --- a/io/FV3GFS_io.F90 +++ b/io/FV3GFS_io.F90 @@ -650,16 +650,6 @@ subroutine sfc_prop_restart_read (Sfcprop, Atm_block, Model, fv_domain) deallocate(oro_name2, oro_var2) call free_restart_type(Oro_restart) - - ! Temporary line - if (Model%me==0) then - do nb = 1, ATM_block%nblks - write (71,*) Sfcprop(nb)%hprime(:,14) - write (73,*) Sfcprop(nb)%hprime(:,13) - end do - end if - - #ifdef CCPP !--- Modify/read-in additional orographic static fields for GSL drag suite if (Model%gwd_opt==3 .or. Model%gwd_opt==33 .or. & @@ -744,16 +734,6 @@ subroutine sfc_prop_restart_read (Sfcprop, Atm_block, Model, fv_domain) end if #endif - ! Temporary line - if (Model%me==0) then - do nb = 1, ATM_block%nblks - write (72,*) Sfcprop(nb)%hprime(:,14) - write (74,*) Sfcprop(nb)%hprime(:,13) - end do - end if - - - !--- SURFACE FILE if (.not. allocated(sfc_name2)) then !--- allocate the various containers needed for restarts From 5c424d07e5fb126f97a96ed03039fd5baf0d7e0b Mon Sep 17 00:00:00 2001 From: Michael Toy Date: Mon, 5 Oct 2020 21:57:42 +0000 Subject: [PATCH 08/19] Updated .gitmodules for ccpp/physics --- .gitmodules | 4 ++-- ccpp/physics | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index bdc0ffbf1..7038f324b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,5 +8,5 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/NOAA-GSD/ccpp-physics - branch = gsd/develop + url = https://github.com/mdtoy/ccpp-physics + branch = unified_ugwp diff --git a/ccpp/physics b/ccpp/physics index 9fae6f3ed..007de081d 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 9fae6f3eda610f085f5dcebf657d20f73c9efb56 +Subproject commit 007de081d13ed2b609ffbddad5f8edf49d8f2275 From ebaef7e920f33edfd618c5e15e3434bad723a0ad Mon Sep 17 00:00:00 2001 From: Michael Toy Date: Wed, 7 Oct 2020 18:45:33 +0000 Subject: [PATCH 09/19] Oct. 7 update --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 007de081d..94aa9b1ce 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 007de081d13ed2b609ffbddad5f8edf49d8f2275 +Subproject commit 94aa9b1ce6b11e01ff526db070c5493ddc71ec4f From 0ffbb3c27d022772b7828f8039149d31f2d9948c Mon Sep 17 00:00:00 2001 From: Michael Toy Date: Thu, 8 Oct 2020 03:37:12 +0000 Subject: [PATCH 10/19] updated submodule for ccpp-physics and added suite_FV3_GSD_v0_unified_ugwp_suite_noah.xml SDF --- ccpp/physics | 2 +- ...ite_FV3_GSD_v0_unified_ugwp_suite_noah.xml | 91 +++++++++++++++++++ 2 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite_noah.xml diff --git a/ccpp/physics b/ccpp/physics index 94aa9b1ce..d6cd89caf 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 94aa9b1ce6b11e01ff526db070c5493ddc71ec4f +Subproject commit d6cd89caf61195be12d480ef0c1b6c03ea48cadc diff --git a/ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite_noah.xml b/ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite_noah.xml new file mode 100644 index 000000000..0fb4e9a5a --- /dev/null +++ b/ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite_noah.xml @@ -0,0 +1,91 @@ + + + + + + + GFS_time_vary_pre + GFS_rrtmg_setup + GFS_rad_time_vary + GFS_phys_time_vary + + + + + GFS_suite_interstitial_rad_reset + sgscloud_radpre + GFS_rrtmg_pre + rrtmg_sw_pre + rrtmg_sw + rrtmg_sw_post + rrtmg_lw_pre + rrtmg_lw + sgscloud_radpost + rrtmg_lw_post + GFS_rrtmg_post + + + + + GFS_suite_interstitial_phys_reset + GFS_suite_stateout_reset + get_prs_fv3 + GFS_suite_interstitial_1 + GFS_surface_generic_pre + GFS_surface_composites_pre + dcyc2t3 + GFS_surface_composites_inter + GFS_suite_interstitial_2 + + + + sfc_diff + GFS_surface_loop_control_part1 + sfc_nst_pre + sfc_nst + sfc_nst_post + lsm_noah + sfc_sice + GFS_surface_loop_control_part2 + + + + GFS_surface_composites_post + sfc_diag + sfc_diag_post + GFS_surface_generic_post + mynnedmf_wrapper + GFS_GWD_generic_pre + unified_ugwp + unified_ugwp_post + GFS_GWD_generic_post + rayleigh_damp + GFS_suite_stateout_update + ozphys_2015 + h2ophys + get_phi_fv3 + GFS_suite_interstitial_3 + GFS_DCNV_generic_pre + cu_gf_driver_pre + cu_gf_driver + GFS_DCNV_generic_post + GFS_SCNV_generic_pre + GFS_SCNV_generic_post + GFS_suite_interstitial_4 + cnvc90 + GFS_MP_generic_pre + mp_thompson_pre + mp_thompson + mp_thompson_post + GFS_MP_generic_post + cu_gf_driver_post + maximum_hourly_diagnostics + + + + + GFS_stochastics + + + + From 42bebfcad0d42c41ca0273698d3244d8a9797d00 Mon Sep 17 00:00:00 2001 From: Michael Toy Date: Tue, 13 Oct 2020 15:32:10 +0000 Subject: [PATCH 11/19] Updated unified_ugwp documentation. --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index d6cd89caf..b018da098 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit d6cd89caf61195be12d480ef0c1b6c03ea48cadc +Subproject commit b018da0982bd92bc2880eda43c861566e6631957 From c71cab0394e3ecaf90e36d97bf020955e567d4a8 Mon Sep 17 00:00:00 2001 From: Michael Toy Date: Thu, 22 Oct 2020 02:49:57 +0000 Subject: [PATCH 12/19] Modified code per PR recommendations --- ccpp/physics | 2 +- gfsphysics/GFS_layer/GFS_typedefs.F90 | 2 +- gfsphysics/GFS_layer/GFS_typedefs.meta | 14 ++++++++++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/ccpp/physics b/ccpp/physics index b018da098..748b0bc50 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit b018da0982bd92bc2880eda43c861566e6631957 +Subproject commit 748b0bc508af21d175aebc997179c497894a97ca diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index 6dd48efef..ee920be1f 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -9,7 +9,7 @@ module GFS_typedefs con_t0c, con_cvap, con_cliq, con_eps, con_epsq, & con_epsm1, con_ttp, rlapse, con_jcal, con_rhw0, & con_sbc, con_tice, cimin, con_p0, rhowater, & - con_csol, con_epsqs + con_csol, con_epsqs, con_omega, con_rerth use module_radsw_parameters, only: topfsw_type, sfcfsw_type, profsw_type, cmpfsw_type, NBDSW use module_radlw_parameters, only: topflw_type, sfcflw_type, proflw_type, NBDLW diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index 712634ee1..02bab4c9d 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -9866,6 +9866,20 @@ dimensions = () type = real kind = kind_phys +[con_omega] + standard_name = angular_velocity_of_earth + long_name = angular velocity of earth + units = s-1 + dimensions = () + type = real + kind = kind_phys +[con_rerth] + standard_name = radius_of_earth + long_name = radius of earth + units = m + dimensions = () + type = real + kind = kind_phys [con_epsm1] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants_minus_one long_name = (rd/rv) - 1 From 5cdb6221bc16cdc42a19d1f93be0fa5c2bbf12dc Mon Sep 17 00:00:00 2001 From: Michael Toy Date: Mon, 26 Oct 2020 23:16:10 +0000 Subject: [PATCH 13/19] Modified code per G. Firl's PR recommendations --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 748b0bc50..73f06a327 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 748b0bc508af21d175aebc997179c497894a97ca +Subproject commit 73f06a3273f13077d73673eeb180e51c2ea90911 From 4f638e2b9a3e11741242f27ee736f32c02a731ae Mon Sep 17 00:00:00 2001 From: Michael Toy Date: Tue, 27 Oct 2020 19:53:33 +0000 Subject: [PATCH 14/19] cires_vert_orodis_v1.F90 bug fix --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 73f06a327..2cf01d008 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 73f06a3273f13077d73673eeb180e51c2ea90911 +Subproject commit 2cf01d008e8f26e858cdb520226b8e5b8be50375 From 2371123d91ada471f618ded675b57f561037d0df Mon Sep 17 00:00:00 2001 From: Michael Toy Date: Thu, 29 Oct 2020 15:04:26 +0000 Subject: [PATCH 15/19] Added FV3_GSD_v0_no_drag suite for testing purposes only --- ccpp/suites/suite_FV3_GSD_v0_no_drag.xml | 91 ++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 ccpp/suites/suite_FV3_GSD_v0_no_drag.xml diff --git a/ccpp/suites/suite_FV3_GSD_v0_no_drag.xml b/ccpp/suites/suite_FV3_GSD_v0_no_drag.xml new file mode 100644 index 000000000..569c4ec3d --- /dev/null +++ b/ccpp/suites/suite_FV3_GSD_v0_no_drag.xml @@ -0,0 +1,91 @@ + + + + + + + GFS_time_vary_pre + GFS_rrtmg_setup + GFS_rad_time_vary + GFS_phys_time_vary + + + + + GFS_suite_interstitial_rad_reset + sgscloud_radpre + GFS_rrtmg_pre + rrtmg_sw_pre + rrtmg_sw + rrtmg_sw_post + rrtmg_lw_pre + rrtmg_lw + sgscloud_radpost + rrtmg_lw_post + GFS_rrtmg_post + + + + + GFS_suite_interstitial_phys_reset + GFS_suite_stateout_reset + get_prs_fv3 + GFS_suite_interstitial_1 + GFS_surface_generic_pre + GFS_surface_composites_pre + dcyc2t3 + GFS_surface_composites_inter + GFS_suite_interstitial_2 + + + + sfc_diff + GFS_surface_loop_control_part1 + sfc_nst_pre + sfc_nst + sfc_nst_post + lsm_ruc + lsm_ruc_sfc_sice_pre + sfc_sice + lsm_ruc_sfc_sice_post + GFS_surface_loop_control_part2 + + + + GFS_surface_composites_post + sfc_diag + sfc_diag_post + GFS_surface_generic_post + mynnedmf_wrapper + rayleigh_damp + GFS_suite_stateout_update + ozphys_2015 + h2ophys + get_phi_fv3 + GFS_suite_interstitial_3 + GFS_DCNV_generic_pre + cu_gf_driver_pre + cu_gf_driver + GFS_DCNV_generic_post + GFS_SCNV_generic_pre + GFS_SCNV_generic_post + GFS_suite_interstitial_4 + cnvc90 + GFS_MP_generic_pre + mp_thompson_pre + mp_thompson + mp_thompson_post + GFS_MP_generic_post + cu_gf_driver_post + + maximum_hourly_diagnostics + + + + + GFS_stochastics + phys_tend + + + + From da639d07d4a707925767b7f6e18c7289d31507a4 Mon Sep 17 00:00:00 2001 From: Michael Toy Date: Thu, 5 Nov 2020 18:37:49 +0000 Subject: [PATCH 16/19] Deleted no_drag SDF and added version=1 designation to unified_ugwp SDFs --- ccpp/suites/suite_FV3_GSD_v0_no_drag.xml | 91 ------------------- .../suite_FV3_GSD_v0_unified_ugwp_suite.xml | 2 +- ...ite_FV3_GSD_v0_unified_ugwp_suite_noah.xml | 2 +- 3 files changed, 2 insertions(+), 93 deletions(-) delete mode 100644 ccpp/suites/suite_FV3_GSD_v0_no_drag.xml diff --git a/ccpp/suites/suite_FV3_GSD_v0_no_drag.xml b/ccpp/suites/suite_FV3_GSD_v0_no_drag.xml deleted file mode 100644 index 569c4ec3d..000000000 --- a/ccpp/suites/suite_FV3_GSD_v0_no_drag.xml +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - GFS_time_vary_pre - GFS_rrtmg_setup - GFS_rad_time_vary - GFS_phys_time_vary - - - - - GFS_suite_interstitial_rad_reset - sgscloud_radpre - GFS_rrtmg_pre - rrtmg_sw_pre - rrtmg_sw - rrtmg_sw_post - rrtmg_lw_pre - rrtmg_lw - sgscloud_radpost - rrtmg_lw_post - GFS_rrtmg_post - - - - - GFS_suite_interstitial_phys_reset - GFS_suite_stateout_reset - get_prs_fv3 - GFS_suite_interstitial_1 - GFS_surface_generic_pre - GFS_surface_composites_pre - dcyc2t3 - GFS_surface_composites_inter - GFS_suite_interstitial_2 - - - - sfc_diff - GFS_surface_loop_control_part1 - sfc_nst_pre - sfc_nst - sfc_nst_post - lsm_ruc - lsm_ruc_sfc_sice_pre - sfc_sice - lsm_ruc_sfc_sice_post - GFS_surface_loop_control_part2 - - - - GFS_surface_composites_post - sfc_diag - sfc_diag_post - GFS_surface_generic_post - mynnedmf_wrapper - rayleigh_damp - GFS_suite_stateout_update - ozphys_2015 - h2ophys - get_phi_fv3 - GFS_suite_interstitial_3 - GFS_DCNV_generic_pre - cu_gf_driver_pre - cu_gf_driver - GFS_DCNV_generic_post - GFS_SCNV_generic_pre - GFS_SCNV_generic_post - GFS_suite_interstitial_4 - cnvc90 - GFS_MP_generic_pre - mp_thompson_pre - mp_thompson - mp_thompson_post - GFS_MP_generic_post - cu_gf_driver_post - - maximum_hourly_diagnostics - - - - - GFS_stochastics - phys_tend - - - - diff --git a/ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite.xml b/ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite.xml index 4b35d952f..8a717abc3 100644 --- a/ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite.xml +++ b/ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite_noah.xml b/ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite_noah.xml index 0fb4e9a5a..a97b03ec7 100644 --- a/ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite_noah.xml +++ b/ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite_noah.xml @@ -1,6 +1,6 @@ - + From 0ac7e4f32c9a155a7c26e142e3a1131b837699a6 Mon Sep 17 00:00:00 2001 From: Michael Toy Date: Thu, 5 Nov 2020 23:13:55 +0000 Subject: [PATCH 17/19] Update submodule pointer for ccpp-physics --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 2cf01d008..52ec16847 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 2cf01d008e8f26e858cdb520226b8e5b8be50375 +Subproject commit 52ec16847a58df2eac29d29b5d7886d3410fe872 From daced911d280cd9150ccbf8b4e100eb7b39d9cef Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 16 Nov 2020 15:13:13 -0700 Subject: [PATCH 18/19] Update .gitmodules and submodule pointer for ccpp-physics --- .gitmodules | 6 ++++-- ccpp/physics | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index 7038f324b..612e807d6 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,5 +8,7 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/mdtoy/ccpp-physics - branch = unified_ugwp + #url = https://github.com/mdtoy/ccpp-physics + #branch = unified_ugwp + url = https://github.com/climbfuji/ccpp-physics + branch = mike_unified_ugwp_with_dom_mods diff --git a/ccpp/physics b/ccpp/physics index 52ec16847..5964c9811 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 52ec16847a58df2eac29d29b5d7886d3410fe872 +Subproject commit 5964c9811e5452699717ae008487e21772f08083 From 8061355d8e4b61d60cedfd3869b0936eed3b8b5d Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 17 Nov 2020 09:21:13 -0700 Subject: [PATCH 19/19] Revert change to .gitmodules and update submodule pointer for ccpp-physics --- .gitmodules | 6 ++---- ccpp/physics | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.gitmodules b/.gitmodules index 612e807d6..bdc0ffbf1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,7 +8,5 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - #url = https://github.com/mdtoy/ccpp-physics - #branch = unified_ugwp - url = https://github.com/climbfuji/ccpp-physics - branch = mike_unified_ugwp_with_dom_mods + url = https://github.com/NOAA-GSD/ccpp-physics + branch = gsd/develop diff --git a/ccpp/physics b/ccpp/physics index 5964c9811..c3bb4d0d1 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 5964c9811e5452699717ae008487e21772f08083 +Subproject commit c3bb4d0d1cc5e65d6888ccbba622420bc30a2c6e