Skip to content

Commit

Permalink
FV3: This commits #refs 65267 adding obs-based roughness length formu…
Browse files Browse the repository at this point in the history
…lations and adjustment of K for hurricane simulations

Change-Id: Ifea0ed42e7611648f4daa2dc24921561b4080691
  • Loading branch information
junwang-noaa committed Jul 19, 2019
1 parent 64fc1f1 commit 5e0e92b
Show file tree
Hide file tree
Showing 5 changed files with 1,953 additions and 0 deletions.
32 changes: 32 additions & 0 deletions gfsphysics/GFS_layer/GFS_physics_driver.F90
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,7 @@ module module_physics_driver
! J. Alpert, T. Fuller-Rowll and R. Akmaev!
! May 2019 J. Han Add updated scal-aware TKE-based moist !
! EDMF vertical turbulent mixng scheme !
! Jul 2019 Weiguo Wang Update PBL scheme for HAFS !
!
! ==================== end of description =====================
! ==================== definition of variables ==================== !
Expand Down Expand Up @@ -1660,6 +1661,7 @@ subroutine GFS_physics_driver &
Statein%prsl(:,1), work3, Tbd%phy_f2d(:,Model%num_p2d), &
sigmaf, vegtype, Sfcprop%shdmax, Model%ivegsrc, &
z01d, zt1d, flag_iter, Model%redrag, &
Diag%u10m, Diag%v10m, Model%sfc_z0_type, &
wet, dry, icy, tsfc3, tsurf3, snowd3, &
! --- input/output:
zorl3, uustar3, &
Expand Down Expand Up @@ -2243,6 +2245,7 @@ subroutine GFS_physics_driver &
kinver, Model%xkzm_m, Model%xkzm_h, Model%xkzm_s)
endif
elseif (Model%hybedmf) then
if (Model%moninq_fac > 0) then
call moninedmf(ix, im, levs, nvdiff, ntcw, dvdt, dudt, dtdt, dqdt, &
Statein%ugrs, Statein%vgrs, Statein%tgrs, Statein%qgrs, &
Radtend%htrsw, Radtend%htrlw, xmu, Statein%prsik(1,1), &
Expand All @@ -2254,6 +2257,20 @@ subroutine GFS_physics_driver &
gamt, gamq, dkt, kinver, Model%xkzm_m, Model%xkzm_h, &
Model%xkzm_s, lprnt, ipr, &
Model%xkzminv, Model%moninq_fac)
else
call moninedmf_hafs(ix, im, levs, nvdiff, ntcw, dvdt, dudt, dtdt, dqdt,&
Statein%ugrs, Statein%vgrs, Statein%tgrs, Statein%qgrs, &
Radtend%htrsw, Radtend%htrlw, xmu, Statein%prsik(1,1), &
rb, Sfcprop%zorl, Diag%u10m, Diag%v10m, Sfcprop%ffmm, &
Sfcprop%ffhh, Sfcprop%tsfc, qss, hflx, evap, stress, &
wind, kpbl, Statein%prsi, del, Statein%prsl, &
Statein%prslk, Statein%phii, Statein%phil, dtp, &
Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Diag%hpbl,&
gamt, gamq, dkt, kinver, Model%xkzm_m, Model%xkzm_h, &
Model%xkzm_s, lprnt, ipr, &
Model%xkzminv, Model%moninq_fac,islmsk)
endif
>>>>>>> origin/HAFS_physics
! if (lprnt) write(0,*)' dtdtm=',(dtdt(ipr,k),k=1,15)
! if (lprnt) write(0,*)' dqdtm=',(dqdt(ipr,k,1),k=1,15)
!elseif (Model%do_ysu) then
Expand Down Expand Up @@ -2452,6 +2469,7 @@ subroutine GFS_physics_driver &
kinver, Model%xkzm_m, Model%xkzm_h, Model%xkzm_s)
endif
elseif (Model%hybedmf) then
if ( Model%moninq_fac > 0 ) then
call moninedmf(ix, im, levs, nvdiff, ntcw, dvdt, dudt, dtdt, dvdftra, &
Statein%ugrs, Statein%vgrs, Statein%tgrs, vdftra, &
Radtend%htrsw, Radtend%htrlw, xmu, Statein%prsik(1,1), &
Expand All @@ -2463,6 +2481,20 @@ subroutine GFS_physics_driver &
gamt, gamq, dkt, kinver, Model%xkzm_m, Model%xkzm_h, &
Model%xkzm_s, lprnt, ipr, &
Model%xkzminv, Model%moninq_fac)
else
call moninedmf_hafs(ix, im, levs, nvdiff, ntcw, dvdt, dudt, dtdt, dvdftra, &
Statein%ugrs, Statein%vgrs, Statein%tgrs, vdftra, &
Radtend%htrsw, Radtend%htrlw, xmu, Statein%prsik(1,1), &
rb, Sfcprop%zorl, Diag%u10m, Diag%v10m, Sfcprop%ffmm, &
Sfcprop%ffhh, Sfcprop%tsfc, qss, hflx, evap, stress, &
wind, kpbl, Statein%prsi, del, Statein%prsl, &
Statein%prslk, Statein%phii, Statein%phil, dtp, &
Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Diag%hpbl, &
gamt, gamq, dkt, kinver, Model%xkzm_m, Model%xkzm_h, &
Model%xkzm_s, lprnt, ipr, &
Model%xkzminv, Model%moninq_fac,islmsk)
endif
>>>>>>> origin/HAFS_physics
elseif (.not. Model%old_monin) then
call moninq(ix, im, levs, nvdiff, ntcw, dvdt, dudt, dtdt, dvdftra, &
Statein%ugrs, Statein%vgrs, Statein%tgrs, vdftra, &
Expand Down
20 changes: 20 additions & 0 deletions gfsphysics/GFS_layer/GFS_typedefs.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1539,6 +1539,12 @@ module GFS_typedefs
!--- fractional grid
logical :: frac_grid !< flag for fractional grid

!--- surface layer z0 scheme
integer :: sfc_z0_type !< surface roughness options over ocean:
!< 0=no change
!< 6=areodynamical roughness over water with input 10-m wind
!< 7=slightly decrease Cd for higher wind speed compare to 6

!--- background vertical diffusion
real(kind=kind_phys) :: xkzm_m !< [in] bkgd_vdif_m background vertical diffusion for momentum
real(kind=kind_phys) :: xkzm_h !< [in] bkgd_vdif_h background vertical diffusion for heat q
Expand Down Expand Up @@ -4049,6 +4055,12 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
!--- fractional grid
logical :: frac_grid = .false. !< flag for fractional grid

!--- surface layer z0 scheme
integer :: sfc_z0_type = 0 !< surface roughness options over ocean
!< 0=no change
!< 6=areodynamical roughness over water with input 10-m wind
!< 7=slightly decrease Cd for higher wind speed compare to 6

!--- background vertical diffusion
real(kind=kind_phys) :: xkzm_m = 1.0d0 !< [in] bkgd_vdif_m background vertical diffusion for momentum
real(kind=kind_phys) :: xkzm_h = 1.0d0 !< [in] bkgd_vdif_h background vertical diffusion for heat q
Expand Down Expand Up @@ -4172,6 +4184,8 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
!--- near surface sea temperature model
nst_anl, lsea, nstf_name, &
frac_grid, &
!--- surface layer
sfc_z0_type, &
! background vertical diffusion
xkzm_m, xkzm_h, xkzm_s, xkzminv, moninq_fac, &
!--- cellular automata
Expand Down Expand Up @@ -4560,6 +4574,9 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
!--- fractional grid
Model%frac_grid = frac_grid

!--- surface layer
Model%sfc_z0_type = sfc_z0_type

!--- backgroud vertical diffusion
Model%xkzm_m = xkzm_m
Model%xkzm_h = xkzm_h
Expand Down Expand Up @@ -5455,6 +5472,9 @@ subroutine control_print(Model)
print *, ' nstf_name : ', Model%nstf_name
print *, ' lsea : ', Model%lsea
print *, ' '
print *, 'surface layer options'
print *, ' sfc_z0_type : ', Model%sfc_z0_type
print *, ' '
print *, 'background vertical diffusion coefficients'
print *, ' xkzm_m : ', Model%xkzm_m
print *, ' xkzm_h : ', Model%xkzm_h
Expand Down
1 change: 1 addition & 0 deletions gfsphysics/makefile
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ SRCS_f = \
./physics/mfscu.f \
./physics/module_bfmicrophysics.f \
./physics/moninedmf.f \
./physics/moninedmf_hafs.f \
./physics/moninp.f \
./physics/moninp1.f \
./physics/moninq.f \
Expand Down
Loading

0 comments on commit 5e0e92b

Please sign in to comment.