UPP  V11.0.0
 All Data Structures Files Functions Pages
SNFRAC_GFS.f
1  SUBROUTINE snfrac_gfs(SNEQV,IVEG,SNCOVR)
2 !
3 !- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
4  implicit none
5 !
6 ! ----------------------------------------------------------------------
7 ! SUBROUTINE SNFRAC
8 ! ----------------------------------------------------------------------
9 ! CALCULATE SNOW FRACTION (0 -> 1)
10 ! SNEQV SNOW WATER EQUIVALENT (M)
11 ! IVEG VEGETATION TYPE
12 ! SNCOVR FRACTIONAL SNOW COVER
13 ! SNUP THRESHOLD SNEQV DEPTH ABOVE WHICH SNCOVR=1
14 ! SALP TUNING PARAMETER
15 ! ----------------------------------------------------------------------
16  integer,intent(in) :: iveg
17  REAL,intent(in) :: sneqv
18  REAL,intent(out) :: sncovr
19  REAL salp,snup(13),rsnow
20  integer ii,jj
21 
22  DATA salp /2.6/
23  DATA snup /0.080, 0.080, 0.080, 0.080, 0.080, 0.080, &
24  & 0.040, 0.040, 0.040, 0.040, 0.025, 0.040, &
25  & 0.025/
26 
27 ! ----------------------------------------------------------------------
28 ! SNUP IS VEG-CLASS DEPENDENT SNOWDEPTH THRESHHOLD ABOVE WHICH SNOCVR=1.
29 ! ----------------------------------------------------------------------
30  IF (sneqv < snup(iveg)) THEN
31  rsnow = sneqv/snup(iveg)
32  sncovr = 1. - (exp(-salp*rsnow) - rsnow*exp(-salp))
33  ELSE
34  sncovr = 1.0
35  ENDIF
36  sncovr = max(0.,min(sncovr,1.))
37 
38  RETURN
39  END