Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HR4 Gravity Wave Drag Update #836

Merged
merged 34 commits into from
Jul 10, 2024
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
5f54553
HR4 GWD update for files GFS_typedefs.F90 GFS_typedefs.meta
Qingfu-Liu May 18, 2024
3d90aed
Merge remote-tracking branch 'upstream/develop' into HR4-GWD-update
Qingfu-Liu May 18, 2024
bbd1d5c
HR4 GWD update
Qingfu-Liu May 18, 2024
83b0716
update files GFS_typedefs.F90 GFS_typedefs.meta
Qingfu-Liu May 22, 2024
5dfca18
update files GFS_typedefs.F90 GFS_typedefs.meta
Qingfu-Liu May 22, 2024
a2cd40d
remove psl_ from files GFS_typedefs.F90 GFS_typedefs.meta
Qingfu-Liu May 22, 2024
777ab04
HR4 update ccpp-physics ccpp-data
Qingfu-Liu May 22, 2024
709a91f
update files GFS_typedefs.F90 GFS_typedefs.meta
Qingfu-Liu May 25, 2024
4e4745b
HR4 Gravity Wave Drag Update
Qingfu-Liu May 25, 2024
7d13307
HR4 Gravity Wave Drag Update
Qingfu-Liu May 25, 2024
c786b80
HR4 Gravity Wave Drag Update
Qingfu-Liu May 25, 2024
dedf1b7
HR4 Gravity Wave Drag Update
Qingfu-Liu May 25, 2024
1ef317a
fix the compile problem for HR4-GWD-update
Qingfu-Liu May 26, 2024
5b7970a
fix compile problem for HR4-GWD-update
Qingfu-Liu May 26, 2024
e9f3d7c
update code GFS_typedefs.F90 for GWD and Noahmp HR4
Qingfu-Liu May 31, 2024
4b797cb
Merge remote-tracking branch 'upstream/develop' into HR4-GWD-update
Qingfu-Liu May 31, 2024
5ea5f94
fix some metadata units and update ccpp/physics submodule pointer
grantfirl Jun 1, 2024
fcb1757
one more metadata unit fix
grantfirl Jun 1, 2024
c3a8888
fix my mistake for metdata in MG
grantfirl Jun 3, 2024
5e51ce5
update ccpp/physics submodule pointer
grantfirl Jun 3, 2024
64840cd
Merge pull request #1 from grantfirl/HR4-GWD-update_gjf
Qingfu-Liu Jun 3, 2024
aef84f3
change the file .gitmodules to fix the branch name
Qingfu-Liu Jun 7, 2024
d2f164a
point to PR#549 of ccpp-framework
Qingfu-Liu Jun 7, 2024
5cead72
Merge remote-tracking branch 'upstream/develop' into HR4-GWD-update
jkbk2004 Jun 19, 2024
63881ab
retract the changes from the Noahmp model
Qingfu-Liu Jun 22, 2024
eb99906
Revert changes to noahmp
dustinswales Jun 25, 2024
df34025
Merge branch 'HR4-GWD-update' of https://github.com/Qingfu-Liu/fv3atm…
dustinswales Jun 25, 2024
82e0d59
Fix incorrect submodule hash
dustinswales Jun 25, 2024
a46bade
Fix incorrect submodule hash
dustinswales Jun 25, 2024
2bb6475
Merge remote-tracking branch 'upstream/develop' into HR4-GWD-update
jkbk2004 Jun 26, 2024
db80f5d
update ccpp/framework and ccpp/physics submodule pointers; add back c…
grantfirl Jun 28, 2024
178fb5c
Merge remote-tracking branch 'upstream/develop' into HR4-GWD-update
jkbk2004 Jul 3, 2024
93b8a2a
update cubed sphere hash
jkbk2004 Jul 3, 2024
505d431
update CCPP after merge
grantfirl Jul 10, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
branch = main
[submodule "ccpp/physics"]
path = ccpp/physics
url = https://github.com/ufs-community/ccpp-physics
url = https://github.com/Qingfu-Liu/ccpp-physics
branch = ufs/dev
[submodule "upp"]
path = upp
Expand Down
35 changes: 23 additions & 12 deletions ccpp/data/GFS_typedefs.F90
Original file line number Diff line number Diff line change
Expand Up @@ -309,7 +309,7 @@ module GFS_typedefs
real (kind=kind_phys), pointer :: ffmm (:) => null() !< fm parameter from PBL scheme
real (kind=kind_phys), pointer :: ffhh (:) => null() !< fh parameter from PBL scheme
real (kind=kind_phys), pointer :: f10m (:) => null() !< fm at 10m - Ratio of sigma level 1 wind and 10m wind
real (kind=kind_phys), pointer :: rca (:) => null() !< canopy resistance
real (kind=kind_phys), pointer :: rca (:) => null() !< canopy resistance
real (kind=kind_phys), pointer :: tprcp (:) => null() !< sfc_fld%tprcp - total precipitation
real (kind=kind_phys), pointer :: srflag (:) => null() !< sfc_fld%srflag - snow/rain flag for precipitation
real (kind=kind_phys), pointer :: slc (:,:) => null() !< liquid soil moisture
Expand Down Expand Up @@ -1128,6 +1128,7 @@ module GFS_typedefs
logical :: do_gsl_drag_ls_bl !< flag for GSL drag (mesoscale 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_gwd_opt_psl !< flag for PSL drag (mesoscale GWD and blocking 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)
logical :: do_ugwp_v1_w_gsldrag !< flag for version 1 ugwp with OGWD of GSL
Expand Down Expand Up @@ -1160,7 +1161,6 @@ module GFS_typedefs
logical :: lheatstrg !< flag for canopy heat storage parameterization
logical :: lseaspray !< flag for sea spray parameterization
logical :: cnvcld
logical :: xr_cnvcld !< flag for adding suspended convective clouds to Xu-Randall cloud fraction
logical :: random_clds !< flag controls whether clouds are random
logical :: shal_cnv !< flag for calling shallow convection
logical :: do_deep !< whether to do deep convection
Expand Down Expand Up @@ -1211,6 +1211,8 @@ module GFS_typedefs
real(kind=kind_phys) :: ccwf(2) !< multiplication factor for critical cloud
!< workfunction for RAS
real(kind=kind_phys) :: cdmbgwd(4) !< multiplication factors for cdmb, gwd and NS gwd, tke based enhancement
real(kind=kind_phys) :: psl_gwd_dx_factor !< multiplication factors for grid spacing
real(kind=kind_phys) :: gwd_z0m_factor !< multiplication factors for z0m
real(kind=kind_phys) :: sup !< supersaturation in pdf cloud when t is very low
real(kind=kind_phys) :: ctei_rm(2) !< critical cloud top entrainment instability criteria
!< (used if mstrat=.true.)
Expand Down Expand Up @@ -2579,13 +2581,11 @@ subroutine sfcprop_create (Sfcprop, IM, Model)
Sfcprop%dt_cool = zero
Sfcprop%qrain = zero
endif
if (Model%lsm == Model%lsm_noah .or. Model%lsm == Model%lsm_noahmp) then
allocate (Sfcprop%rca (IM))
Sfcprop%rca = clear_val
end if
if (Model%lsm == Model%lsm_noah) then
allocate (Sfcprop%xlaixy (IM))
allocate (Sfcprop%rca (IM))
Sfcprop%xlaixy = clear_val
Sfcprop%rca = clear_val
end if
if (Model%lsm == Model%lsm_ruc .or. Model%lsm == Model%lsm_noahmp .or. &
(Model%lkm>0 .and. Model%iopt_lake==Model%iopt_lake_clm)) then
Expand Down Expand Up @@ -3647,6 +3647,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
logical :: do_gsl_drag_ls_bl = .false. !< flag for GSL drag (mesoscale 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_gwd_opt_psl = .false. !< flag for PSL drag (mesoscale GWD and blocking 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)
logical :: do_ugwp_v1_w_gsldrag = .false. !< flag for version 1 ugwp GWD (orographic drag only)
Expand Down Expand Up @@ -3683,7 +3684,6 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
logical :: lheatstrg = .false. !< flag for canopy heat storage parameterization
logical :: lseaspray = .false. !< flag for sea spray parameterization
logical :: cnvcld = .false.
logical :: xr_cnvcld = .true. !< flag for including suspended convective clouds in Xu-Randall cloud fraction
logical :: random_clds = .false. !< flag controls whether clouds are random
logical :: shal_cnv = .false. !< flag for calling shallow convection
integer :: imfshalcnv = 1 !< flag for mass-flux shallow convection scheme
Expand Down Expand Up @@ -3750,6 +3750,8 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
real(kind=kind_phys) :: ccwf(2) = (/1.0d0,1.0d0/) !< multiplication factor for critical cloud
!< workfunction for RAS
real(kind=kind_phys) :: cdmbgwd(4) = (/2.0d0,0.25d0,1.0d0,1.0d0/) !< multiplication factors for cdmb, gwd, and NS gwd, tke based enhancement
real(kind=kind_phys) :: psl_gwd_dx_factor = 6.0 !< multiplication factors for grid spacing
real(kind=kind_phys) :: gwd_z0m_factor = 0.003 !< multiplication factors for z0m
real(kind=kind_phys) :: sup = 1.0 !< supersaturation in pdf cloud (IMP_physics=98) when t is very low
!< or ice super saturation in SHOC (when do_shoc=.true.)
real(kind=kind_phys) :: ctei_rm(2) = (/10.0d0,10.0d0/) !< critical cloud top entrainment instability criteria
Expand Down Expand Up @@ -4060,15 +4062,18 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
gwd_opt, do_ugwp_v0, do_ugwp_v0_orog_only, &
do_ugwp_v0_nst_only, &
do_gsl_drag_ls_bl, do_gsl_drag_ss, do_gsl_drag_tofd, &
do_gwd_opt_psl, &
do_ugwp_v1, do_ugwp_v1_orog_only, do_ugwp_v1_w_gsldrag, &
ugwp_seq_update, var_ric, coef_ric_l, coef_ric_s, hurr_pbl, &
do_myjsfc, do_myjpbl, &
hwrf_samfdeep, hwrf_samfshal,progsigma,betascu,betamcu, &
betadcu,h2o_phys, pdfcld, shcnvcw, redrag, hybedmf, satmedmf,&
shinhong, do_ysu, dspheat, lheatstrg, lseaspray, cnvcld, &
xr_cnvcld, random_clds, shal_cnv, imfshalcnv, imfdeepcnv, &
isatmedmf, do_deep, jcap, &
cs_parm, flgmin, cgwf, ccwf, cdmbgwd, sup, ctei_rm, crtrh, &
random_clds, shal_cnv, imfshalcnv, imfdeepcnv, isatmedmf, &
do_deep, jcap, &
cs_parm, flgmin, cgwf, ccwf, cdmbgwd, &
psl_gwd_dx_factor, gwd_z0m_factor, &
sup, ctei_rm, crtrh, &
dlqf, rbcr, shoc_parm, psauras, prauras, wminras, &
do_sppt, do_shum, do_skeb, &
do_spp, n_var_spp, &
Expand Down Expand Up @@ -4896,7 +4901,6 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
Model%lheatstrg = lheatstrg
Model%lseaspray = lseaspray
Model%cnvcld = cnvcld
Model%xr_cnvcld = xr_cnvcld
Model%random_clds = random_clds
Model%shal_cnv = shal_cnv
Model%imfshalcnv = imfshalcnv
Expand All @@ -4909,6 +4913,8 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
Model%cgwf = cgwf
Model%ccwf = ccwf
Model%cdmbgwd = cdmbgwd
Model%psl_gwd_dx_factor = psl_gwd_dx_factor
Model%gwd_z0m_factor = gwd_z0m_factor
Model%sup = sup
Model%ctei_rm = ctei_rm
Model%crtrh = crtrh
Expand Down Expand Up @@ -4956,6 +4962,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
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_gwd_opt_psl = do_gwd_opt_psl
Model%do_ugwp_v1 = do_ugwp_v1
Model%do_ugwp_v1_orog_only = do_ugwp_v1_orog_only
Model%do_ugwp_v1_w_gsldrag = do_ugwp_v1_w_gsldrag
Expand All @@ -4971,6 +4978,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
Model%do_gsl_drag_tofd = .true.
Model%do_gsl_drag_ss = .true.
Model%do_ugwp_v1_orog_only = .false.
Model%do_gwd_opt_psl = .true.
endif

Model%do_myjsfc = do_myjsfc
Expand Down Expand Up @@ -6186,7 +6194,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
' do_shoc=', Model%do_shoc, ' nshoc3d=', Model%nshoc_3d, &
' nshoc_2d=', Model%nshoc_2d, ' shoc_cld=', Model%shoc_cld, &
' nkbfshoc=', Model%nkbfshoc, ' nahdshoc=', Model%nahdshoc, &
' nscfshoc=', Model%nscfshoc, ' xr_cnvcld=',Model%xr_cnvcld, &
' nscfshoc=', Model%nscfshoc, &
' uni_cld=', Model%uni_cld, &
' ntot3d=', Model%ntot3d, ' ntot2d=', Model%ntot2d, &
' shocaftcnv=',Model%shocaftcnv,' indcld=', Model%indcld, &
Expand Down Expand Up @@ -6767,6 +6775,8 @@ subroutine control_print(Model)
print *, ' cgwf : ', Model%cgwf
print *, ' ccwf : ', Model%ccwf
print *, ' cdmbgwd : ', Model%cdmbgwd
print *, ' psl_gwd_dx_factor : ', Model%psl_gwd_dx_factor
print *, ' gwd_z0m_factor : ', Model%gwd_z0m_factor
print *, ' sup : ', Model%sup
print *, ' ctei_rm : ', Model%ctei_rm
print *, ' crtrh : ', Model%crtrh
Expand All @@ -6787,6 +6797,7 @@ subroutine control_print(Model)
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_gwd_opt_psl : ', Model%do_gwd_opt_psl
print *, ' do_ugwp_v1 : ', Model%do_ugwp_v1
print *, ' do_ugwp_v1_orog_only : ', Model%do_ugwp_v1_orog_only
print *, ' do_ugwp_v1_w_gsldrag : ', Model%do_ugwp_v1_w_gsldrag
Expand Down
29 changes: 21 additions & 8 deletions ccpp/data/GFS_typedefs.meta
Original file line number Diff line number Diff line change
Expand Up @@ -1245,7 +1245,6 @@
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
active = (control_for_land_surface_scheme == identifier_for_noah_land_surface_scheme .or. control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme)
[tprcp]
standard_name = nonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timestep
long_name = total precipitation amount in each time step
Expand Down Expand Up @@ -5217,7 +5216,7 @@
long_name = model 2m diagnostics use the temperature and humidity calculated by the lake model
units = flag
dimensions = ()
type = logical
type = integer
[lkm]
standard_name = control_for_lake_model_execution_method
long_name = control for lake model execution: 0=no lake, 1=lake, 2=lake+nsst
Expand Down Expand Up @@ -5411,12 +5410,6 @@
units = flag
dimensions = ()
type = logical
[xr_cnvcld]
standard_name = flag_for_suspended_convective_clouds_in_Xu_Randall
long_name = flag for using suspended convective clouds in Xu Randall
units = flag
dimensions = ()
type = logical
[shal_cnv]
standard_name = flag_for_simplified_arakawa_schubert_shallow_convection
long_name = flag for calling shallow convection
Expand Down Expand Up @@ -7477,6 +7470,26 @@
units = flag
dimensions = ()
type = logical
[do_gwd_opt_psl]
standard_name = do_gsl_drag_suite_with_psl_gwd_option
long_name = flag to activate PSL drag suite - mesoscale GWD and blocking
units = flag
dimensions = ()
type = logical
[psl_gwd_dx_factor]
standard_name = effective_grid_spacing_of_psl_gwd_suite
long_name = multiplication of grid spacing
units = count
jkbk2004 marked this conversation as resolved.
Show resolved Hide resolved
dimensions = ()
type = real
kind = kind_phys
[gwd_z0m_factor]
standard_name = momentum_roughness_factor_in_turbulent_form_drag
long_name = multiplication of Z0m in PSL turbulent form drag
units = count
dimensions = ()
type = real
kind = kind_phys
[do_ugwp_v1]
standard_name = flag_for_ugwp_version_1
long_name = flag to activate ver 1 CIRES UGWP
Expand Down