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
Original file line number Diff line number Diff line change
Expand Up @@ -533,10 +533,8 @@ subroutine GFS_phys_time_vary_init (
endif

if (vegtyp == 15) then ! land ice in MODIS/IGBP
if (weasd(ix) < 0.1_kind_phys) then
weasd(ix) = 0.1_kind_phys
snd = 0.01_kind_phys
endif
weasd(ix) = 600.0_kind_phys ! 600mm SWE for glacier
snd = 2.0_kind_phys ! 2m snow depth for glacier
endif

if (snd < 0.025_kind_phys ) then
Expand Down
29 changes: 23 additions & 6 deletions physics/SFC_Models/Land/Noahmp/module_sf_noahmp_glacier.F90
Original file line number Diff line number Diff line change
Expand Up @@ -785,8 +785,8 @@ subroutine csnow_glacier (isnow ,nsnow ,nsoil ,snice ,snliq ,dzsnso ,
do iz = isnow+1, 0
! 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) = 0.35 ! constant
! 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 @@ -982,8 +982,8 @@ subroutine snowalb_bats_glacier (nband,cosz,fage,albsnd,albsni)
cf1=((1.+sl1)/(1.+sl2*cosz)-sl1)
fzen=amax1(cf1,0.)

albsni(1)=0.95*(1.-c1*fage)
albsni(2)=0.65*(1.-c2*fage)
albsni(1)=0.95 !*(1.-c1*fage) ! remove aging over glaciers
albsni(2)=0.65 !*(1.-c2*fage) ! remove aging over glaciers

albsnd(1)=albsni(1)+0.4*fzen*(1.-albsni(1)) ! vis direct
albsnd(2)=albsni(2)+0.4*fzen*(1.-albsni(2)) ! nir direct
Expand Down Expand Up @@ -2616,7 +2616,7 @@ subroutine snowwater_glacier (nsnow ,nsoil ,imelt ,dt ,sfctmp , & !in
! local
integer :: iz
real (kind=kind_phys) :: bdsnow !< bulk density of snow (kg/m3)
real (kind=kind_phys),parameter :: mwd = 100. !< maximum water depth (mm)
real (kind=kind_phys),parameter :: mwd = 600. !< maximum water depth (mm)
! ----------------------------------------------------------------------
snoflow = 0.0
ponding1 = 0.0
Expand Down Expand Up @@ -2650,6 +2650,23 @@ subroutine snowwater_glacier (nsnow ,nsoil ,imelt ,dt ,sfctmp , & !in
ponding1 ,ponding2 ,fsh , & !inout
qsnbot ) !out

!reset the glacier to 2m depth with 600mm SWE

isnow = -3
snice(-2) = 15.0
snice(-1) = 60.0
snice( 0) = 525.0
snliq(-2) = 0.0
snliq(-1) = 0.0
snliq( 0) = 0.0
if(stc( 0) < 100.0) stc( 0) = stc( 1) ! if the temperature is missing,
if(stc(-1) < 100.0) stc(-1) = stc( 0) ! set to layer below
if(stc(-2) < 100.0) stc(-2) = stc(-1) ! should not be necessary
dzsnso(-2)= 0.05
dzsnso(-1)= 0.20
dzsnso( 0)= 1.75
sneqv = 600.0

!set empty snow layers to zero

do iz = -nsnow+1, isnow
Expand All @@ -2662,7 +2679,7 @@ subroutine snowwater_glacier (nsnow ,nsoil ,imelt ,dt ,sfctmp , & !in

!to obtain equilibrium state of snow in glacier region

if(sneqv > mwd) then ! 100 mm -> maximum water depth
if(sneqv > mwd) then ! 600 mm -> maximum water depth
bdsnow = snice(0) / dzsnso(0)
snoflow = (sneqv - mwd)
snice(0) = snice(0) - snoflow
Expand Down