UPP (develop)
Loading...
Searching...
No Matches
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