Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
38 changes: 37 additions & 1 deletion scm/src/GFS_typedefs.F90
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,11 @@ module GFS_typedefs
real (kind=kind_phys), pointer :: vvl (:,:) => null() !< layer mean vertical velocity in pa/sec
real (kind=kind_phys), pointer :: tgrs (:,:) => null() !< model layer mean temperature in k
real (kind=kind_phys), pointer :: qgrs (:,:,:) => null() !< layer mean tracer concentration
!3D-SA-TKE
real (kind=kind_phys), pointer :: def_1 (:,:) => null() !< deformation
real (kind=kind_phys), pointer :: def_2 (:,:) => null() !< deformation
real (kind=kind_phys), pointer :: def_3 (:,:) => null() !< deformation
!3D-SA-TKE-end
! dissipation estimate
real (kind=kind_phys), pointer :: diss_est(:,:) => null() !< model layer mean temperature in k
! soil state variables - for soil SPPT - sfc-perts, mgehne
Expand Down Expand Up @@ -1176,6 +1181,7 @@ module GFS_typedefs
logical :: do_ysu !< flag for YSU turbulent mixing scheme
logical :: acm !< flag for ACM turbulent mixing scheme
logical :: dspheat !< flag for tke dissipative heating
logical :: sa3dtke !< flag for scale-aware 3D tke scheme
logical :: hurr_pbl !< flag for hurricane-specific options in PBL scheme
logical :: lheatstrg !< flag for canopy heat storage parameterization
logical :: lseaspray !< flag for sea spray parameterization
Expand Down Expand Up @@ -1372,6 +1378,7 @@ module GFS_typedefs
real(kind=kind_phys) :: elmx !< maximum allowed dissipation mixing length in boundary layer mass flux scheme
integer :: sfc_rlm !< choice of near surface mixing length in boundary layer mass flux scheme
integer :: tc_pbl !< control for TC applications in the PBL scheme
integer :: use_lpt !< control for using Liquid Potential Temp for TC applications in the GFSPBL scheme

!--- parameters for canopy heat storage (CHS) parameterization
real(kind=kind_phys) :: h0facu !< CHS factor for sensible heat flux in unstable surface layer
Expand Down Expand Up @@ -1807,6 +1814,10 @@ module GFS_typedefs
real (kind=kind_phys), pointer :: hpbl (:) => null() !< Planetary boundary layer height
real (kind=kind_phys), pointer :: ud_mf (:,:) => null() !< updraft mass flux

!-- Diagnostic variable that passes to dyn_core (SA-3D-TKE)
real (kind=kind_phys), pointer :: dku3d_h (:,:) => null() !< Horizontal eddy diffusitivity for momentum
real (kind=kind_phys), pointer :: dku3d_e (:,:) => null() !< Eddy diffusitivity for momentum for tke

!--- dynamical forcing variables for Grell-Freitas convection
real (kind=kind_phys), pointer :: forcet (:,:) => null() !<
real (kind=kind_phys), pointer :: forceq (:,:) => null() !<
Expand Down Expand Up @@ -2282,11 +2293,21 @@ subroutine statein_create (Statein, Model)
allocate (Statein%wgrs (IM,Model%levs))
endif
allocate (Statein%qgrs (IM,Model%levs,Model%ntrac))
!3D-SA-TKE
allocate (Statein%def_1 (IM,Model%levs))
allocate (Statein%def_2 (IM,Model%levs))
allocate (Statein%def_3 (IM,Model%levs))
!3D-SA-TKE-end

Statein%qgrs = clear_val
Statein%pgr = clear_val
Statein%ugrs = clear_val
Statein%vgrs = clear_val
!3D-SA-TKE
Statein%def_1 = clear_val
Statein%def_2 = clear_val
Statein%def_3 = clear_val
!3D-SA-TKE-end

if(Model%lightning_threat) then
Statein%wgrs = clear_val
Expand Down Expand Up @@ -3746,6 +3767,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
logical :: do_ysu = .false. !< flag for YSU vertical turbulent mixing scheme
logical :: acm = .false. !< flag for ACM vertical turbulent mixing scheme
logical :: dspheat = .false. !< flag for tke dissipative heating
logical :: sa3dtke = .false. !< flag for scale-aware 3D tke scheme
logical :: hurr_pbl = .false. !< flag for hurricane-specific options in PBL scheme
logical :: lheatstrg = .false. !< flag for canopy heat storage parameterization
logical :: lseaspray = .false. !< flag for sea spray parameterization
Expand Down Expand Up @@ -3928,6 +3950,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
real(kind=kind_phys) :: elmx = 300. !< maximum allowed dissipation mixing length in boundary layer mass flux scheme
integer :: sfc_rlm = 0 !< choice of near surface mixing length in boundary layer mass flux scheme
integer :: tc_pbl = 0 !< control for TC applications in the PBL scheme
integer :: use_lpt = 0 !< control for using Liquid Potential Temp for TC applications in the GFSPBL scheme

!--- parameters for canopy heat storage (CHS) parameterization
real(kind=kind_phys) :: h0facu = 0.25
Expand Down Expand Up @@ -4185,6 +4208,8 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
do_spp, n_var_spp, &
lndp_type, n_var_lndp, lndp_each_step, &
pert_mp,pert_clds,pert_radtend, &
!--- Scale-aware 3D TKE scheme
sa3dtke, &
!--- Rayleigh friction
prslrd0, ral_ts, ldiag_ugwp, do_ugwp, do_tofd, &
! --- Ferrier-Aligo
Expand All @@ -4207,7 +4232,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
diag_flux, diag_log, &
! vertical diffusion
xkzm_m, xkzm_h, xkzm_s, xkzminv, moninq_fac, dspfac, &
bl_upfr, bl_dnfr, rlmx, elmx, sfc_rlm, tc_pbl, &
bl_upfr, bl_dnfr, rlmx, elmx, sfc_rlm, tc_pbl, use_lpt, &
!--- canopy heat storage parameterization
h0facu, h0facs, &
!--- cellular automata
Expand Down Expand Up @@ -5214,6 +5239,8 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
Model%diag_flux = diag_flux
!--- flux method in 2-m diagnostics (for stable conditions)
Model%diag_log = diag_log
!--- SA-3D-TKE option
Model%sa3dtke = sa3dtke

!--- vertical diffusion
Model%xkzm_m = xkzm_m
Expand All @@ -5228,6 +5255,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
Model%elmx = elmx
Model%sfc_rlm = sfc_rlm
Model%tc_pbl = tc_pbl
Model%use_lpt = use_lpt

!--- canopy heat storage parametrization
Model%h0facu = h0facu
Expand Down Expand Up @@ -6975,6 +7003,7 @@ subroutine control_print(Model)
print *, ' do_ysu : ', Model%do_ysu
print *, ' acm : ', Model%acm
print *, ' dspheat : ', Model%dspheat
print *, ' sa3dtke : ', Model%sa3dtke
print *, ' lheatstrg : ', Model%lheatstrg
print *, ' lseaspray : ', Model%lseaspray
print *, ' cnvcld : ', Model%cnvcld
Expand Down Expand Up @@ -7071,6 +7100,7 @@ subroutine control_print(Model)
print *, ' elmx : ', Model%elmx
print *, ' sfc_rlm : ', Model%sfc_rlm
print *, ' tc_pbl : ', Model%tc_pbl
print *, ' use_lpt : ', Model%use_lpt
print *, ' '
print *, 'parameters for canopy heat storage parametrization'
print *, ' h0facu : ', Model%h0facu
Expand Down Expand Up @@ -7423,6 +7453,12 @@ subroutine tbd_create (Tbd, Model)
allocate (Tbd%hpbl (IM))
Tbd%hpbl = clear_val

! Allocate horizontal component of dku for dyn_core (SA-3D-TKE)
allocate (Tbd%dku3d_h (IM,Model%levs))
Tbd%dku3d_h = clear_val
allocate (Tbd%dku3d_e (IM,Model%levs))
Tbd%dku3d_e = clear_val

if (Model%imfdeepcnv == Model%imfdeepcnv_gf .or. Model%imfdeepcnv == Model%imfdeepcnv_ntiedtke .or. Model%imfdeepcnv == Model%imfdeepcnv_samf .or. Model%imfshalcnv == Model%imfshalcnv_samf .or. Model%imfdeepcnv == Model%imfdeepcnv_c3 .or. Model%imfshalcnv == Model%imfshalcnv_c3) then
allocate (Tbd%prevsq(IM, Model%levs))
Tbd%prevsq = clear_val
Expand Down
68 changes: 68 additions & 0 deletions scm/src/GFS_typedefs.meta
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,48 @@
type = real
kind = kind_phys
active = (do_lightning_threat_index_calculations)
[def_1]
standard_name = square_of_vertical_shear_due_to_dynamics
long_name = square of vertical shear calculated from dynamics
units = m2 s-2
dimensions = (horizontal_dimension,vertical_layer_dimension)
type = real
kind = kind_phys
[def_1(:,1)]
standard_name = square_of_vertical_shear_due_to_dynamics_at_surface_adjacent_layer
long_name = square of vertical shear calculated from dynamics at lowest model layer
units = m2 s-2
dimensions = (horizontal_dimension)
type = real
kind = kind_phys
[def_2]
standard_name = square_of_horizontal_shear_due_to_dynamics
long_name = square of horizontal shear calculated from dynamics
units = m2 s-2
dimensions = (horizontal_dimension,vertical_layer_dimension)
type = real
kind = kind_phys
[def_2(:,1)]
standard_name = square_of_horizontal_shear_due_to_dynamics_at_surface_adjacent_layer
long_name = square of horizontal shear calculated from dynamics at lowest model layer
units = m2 s-2
dimensions = (horizontal_dimension)
type = real
kind = kind_phys
[def_3]
standard_name = horizontal_transfer_rate_of_tke_due_to_dynamics
long_name = rate of horizontal TKE transfer and pressure correlation calculated from dynamics
units = m2 s-3
dimensions = (horizontal_dimension,vertical_layer_dimension)
type = real
kind = kind_phys
[def_3(:,1)]
standard_name = horizontal_transfer_rate_tke_due_to_dynamics_at_surface_adjacent_layer
long_name = rate of horizontal TKE transfer and pressure correlation calculated from dynamics at lowest model layer
units = m2 s-3
dimensions = (horizontal_dimension)
type = real
kind = kind_phys
[vvl]
standard_name = lagrangian_tendency_of_air_pressure
long_name = layer mean vertical velocity
Expand Down Expand Up @@ -5539,6 +5581,12 @@
units = flag
dimensions = ()
type = logical
[sa3dtke]
standard_name = do_scale_aware_3d_tke
long_name = flag for scale-aware 3d tke scheme
units = flag
dimensions = ()
type = logical
[hurr_pbl]
standard_name = flag_hurricane_PBL
long_name = flag for hurricane-specific options in PBL scheme
Expand Down Expand Up @@ -6126,6 +6174,12 @@
units = none
dimensions = ()
type = integer
[use_lpt]
standard_name = control_for_using_LPT_for_TC_applications_in_the_PBL_scheme
long_name = control for using LPT in TC applications in the PBL scheme
units = none
dimensions = ()
type = integer
[h0facu]
standard_name = multiplicative_tuning_parameter_for_reduced_surface_heat_fluxes_due_to_canopy_heat_storage
long_name = canopy heat storage factor for sensible heat flux in unstable surface layer
Expand Down Expand Up @@ -8098,6 +8152,20 @@
dimensions = (horizontal_dimension)
type = real
kind = kind_phys
[dku3d_h]
standard_name = horizontal_atmosphere_momentum_diffusivity_for_dynamics
long_name = horizontal atmospheric momentum diffusivity for dynamics
units = m2 s-1
dimensions = (horizontal_dimension,vertical_layer_dimension)
type = real
kind = kind_phys
[dku3d_e]
standard_name = horizontal_atmosphere_tke_diffusivity_for_dynamics
long_name = horizontal atmospheric tke diffusivity for dynamics
units = m2 s-1
dimensions = (horizontal_dimension,vertical_layer_dimension)
type = real
kind = kind_phys
[ud_mf]
standard_name = instantaneous_atmosphere_updraft_convective_mass_flux
long_name = (updraft mass flux) * delt
Expand Down
Loading