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

Wrapper for #808 and #816 #818

Merged
merged 10 commits into from
Dec 23, 2021
6 changes: 3 additions & 3 deletions physics/module_sf_noahmp_glacier.f90
Original file line number Diff line number Diff line change
Expand Up @@ -738,10 +738,10 @@ subroutine csnow_glacier (isnow ,nsnow ,nsoil ,snice ,snliq ,dzsnso ,
! thermal conductivity of snow

do iz = isnow+1, 0
tksno(iz) = 3.2217e-6*bdsnoi(iz)**2. ! stieglitz(yen,1965)
! tksno(iz) = 3.2217e-6*bdsnoi(iz)**2. ! stieglitz(yen,1965)
! tksno(iz) = 2e-2+2.5e-6*bdsnoi(iz)*bdsnoi(iz) ! anderson, 1976
! tksno(iz) = 0.35 ! constant
! tksno(iz) = 2.576e-6*bdsnoi(iz)**2. + 0.074 ! verseghy (1991)
tksno(iz) = 2.576e-6*bdsnoi(iz)**2. + 0.074 ! verseghy (1991)
! tksno(iz) = 2.22*(bdsnoi(iz)/1000.)**1.88 ! douvill(yen, 1981)
enddo

Expand Down Expand Up @@ -2657,7 +2657,7 @@ subroutine compact_glacier (nsnow ,nsoil ,dt ,stc ,snice , & !in
real (kind=kind_phys), parameter :: c4 = 0.04 !< [1/k]
real (kind=kind_phys), parameter :: c5 = 2.0 !<
real (kind=kind_phys), parameter :: dm = 100.0 !< upper limit on destructive metamorphism compaction [kg/m3]
real (kind=kind_phys), parameter :: eta0 = 0.8e+6 !< viscosity coefficient [kg-s/m2]
real (kind=kind_phys), parameter :: eta0 = 1.8e+6 !< viscosity coefficient [kg-s/m2]
!according to anderson, it is between 0.52e6~1.38e6
real (kind=kind_phys) :: burden !< pressure of overlying snow [kg/m2]
real (kind=kind_phys) :: ddz1 !< rate of settling of snow pack due to destructive metamorphism.
Expand Down
6 changes: 3 additions & 3 deletions physics/module_sf_noahmplsm.f90
Original file line number Diff line number Diff line change
Expand Up @@ -2532,10 +2532,10 @@ subroutine csnow (parameters,isnow ,nsnow ,nsoil ,snice ,snliq ,dzsnso
! thermal conductivity of snow

do iz = isnow+1, 0
tksno(iz) = 3.2217e-6*bdsnoi(iz)**2. ! stieglitz(yen,1965)
! tksno(iz) = 3.2217e-6*bdsnoi(iz)**2. ! stieglitz(yen,1965)
! tksno(iz) = 2e-2+2.5e-6*bdsnoi(iz)*bdsnoi(iz) ! anderson, 1976
! tksno(iz) = 0.35 ! constant
! tksno(iz) = 2.576e-6*bdsnoi(iz)**2. + 0.074 ! verseghy (1991)
tksno(iz) = 2.576e-6*bdsnoi(iz)**2. + 0.074 ! verseghy (1991)
! tksno(iz) = 2.22*(bdsnoi(iz)/1000.)**1.88 ! douvill(yen, 1981)
enddo

Expand Down Expand Up @@ -7365,7 +7365,7 @@ subroutine compact (parameters,nsnow ,nsoil ,dt ,stc ,snice , & !in
real (kind=kind_phys), parameter :: c4 = 0.04 ![1/k]
real (kind=kind_phys), parameter :: c5 = 2.0 !
real (kind=kind_phys), parameter :: dm = 100.0 !upper limit on destructive metamorphism compaction [kg/m3]
real (kind=kind_phys), parameter :: eta0 = 0.8e+6 !viscosity coefficient [kg-s/m2]
real (kind=kind_phys), parameter :: eta0 = 1.8e+6 !viscosity coefficient [kg-s/m2]
!according to anderson, it is between 0.52e6~1.38e6
real (kind=kind_phys) :: burden !pressure of overlying snow [kg/m2]
real (kind=kind_phys) :: ddz1 !rate of settling of snow pack due to destructive metamorphism.
Expand Down
18 changes: 10 additions & 8 deletions physics/sfc_diff.f
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ end subroutine sfc_diff_finalize
!! in Zeng et al. (1998) \cite zeng_et_al_1998).
!! - Calculate Zeng's momentum roughness length formulation over land and sea ice.
!! - Calculate the new vegetation-dependent formulation of thermal roughness length
!! (Zheng et al.(2009) \cite zheng_et_al_2009).
!! Zheng et al. (2009) \cite zheng_et_al_2009 proposed a new formulation on
!! (Zheng et al.(2012) \cite zheng_et_al_2012).
!! Zheng et al. (2012) \cite zheng_et_al_2012 proposed a new formulation on
!! \f$ln(Z_{0m}^,/Z_{0t})\f$ as follows:
!! \f[
!! ln(Z_{0m}^,/Z_{0t})=(1-GVF)^2C_{zil}k(u*Z_{0g}/\nu)^{0.5}
Expand Down Expand Up @@ -305,12 +305,14 @@ subroutine sfc_diff_run (im,rvrdm1,eps,epsm1,grav, & !intent(in)
tem2 = tem1 * tem1
tem1 = one - tem2

if( ivegsrc == 1 ) then

z0max = exp( tem2*log01 + tem1*log(z0max) )
elseif (ivegsrc == 2 ) then
z0max = exp( tem2*log01 + tem1*log(z0max) )
endif
! Removed the following lines by W. Zheng, for effective z0m (z0max) is applied only
! for land.
!wz if( ivegsrc == 1 ) then
!wz
!wz z0max = exp( tem2*log01 + tem1*log(z0max) )
!wz elseif (ivegsrc == 2 ) then
!wz z0max = exp( tem2*log01 + tem1*log(z0max) )
!wz endif

z0max = max(z0max, zmin)

Expand Down
4 changes: 3 additions & 1 deletion physics/sfc_noahmp_drv.F90
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ subroutine noahmpdrv_run &

! --- in/outs:
weasd, snwdph, tskin, tprcp, srflag, smc, stc, slc, &
canopy, trans, zorl, &
canopy, trans, tsurf, zorl, &
rb1, fm1, fh1, ustar1, stress1, fm101, fh21, &

! --- Noah MP specific
Expand Down Expand Up @@ -245,6 +245,7 @@ subroutine noahmpdrv_run &
real(kind=kind_phys), dimension(:,:) , intent(inout) :: slc ! liquid soil moisture [m3/m3]
real(kind=kind_phys), dimension(:) , intent(inout) :: canopy ! canopy moisture content [mm]
real(kind=kind_phys), dimension(:) , intent(inout) :: trans ! total plant transpiration [m/s]
real(kind=kind_phys), dimension(:) , intent(inout) :: tsurf ! surface skin temperature [K]
real(kind=kind_phys), dimension(:) , intent(inout) :: zorl ! surface roughness [cm]

real(kind=kind_phys), dimension(:) , intent(inout) :: rb1 ! bulk richardson #
Expand Down Expand Up @@ -921,6 +922,7 @@ subroutine noahmpdrv_run &
sncovr1 (i) = snow_cover_fraction

! qsurf (i) = spec_humidity_surface
tsurf (i) = tskin(i)

tvxy (i) = temperature_leaf
tgxy (i) = temperature_ground
Expand Down
8 changes: 8 additions & 0 deletions physics/sfc_noahmp_drv.meta
Original file line number Diff line number Diff line change
Expand Up @@ -662,6 +662,14 @@
type = real
kind = kind_phys
intent = inout
[tsurf]
standard_name = surface_skin_temperature_after_iteration_over_land
long_name = surface skin temperature after iteration over land
units = K
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
intent = inout
[zorl]
standard_name = surface_roughness_length_over_land
long_name = surface roughness length over land (temporary use as interstitial)
Expand Down