SUBROUTINE SNFRAC_GFS(SNEQV,IVEG,SNCOVR)
!
!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
       implicit none
!      
! ----------------------------------------------------------------------
! SUBROUTINE SNFRAC
! ----------------------------------------------------------------------
! CALCULATE SNOW FRACTION (0 -> 1)
! SNEQV   SNOW WATER EQUIVALENT (M)
! IVEG    VEGETATION TYPE
! SNCOVR  FRACTIONAL SNOW COVER
! SNUP    THRESHOLD SNEQV DEPTH ABOVE WHICH SNCOVR=1
! SALP    TUNING PARAMETER
! ----------------------------------------------------------------------
      integer,intent(in) ::  IVEG
      REAL,intent(in) ::  SNEQV
      REAL,intent(out) ::  SNCOVR
      REAL SALP,SNUP(13),RSNOW
      integer ii,jj

      DATA SALP /2.6/
      DATA SNUP /0.080, 0.080, 0.080, 0.080, 0.080, 0.080,      &
     &  	 0.040, 0.040, 0.040, 0.040, 0.025, 0.040,      &
     &  	 0.025/
     
! ----------------------------------------------------------------------
! SNUP IS VEG-CLASS DEPENDENT SNOWDEPTH THRESHHOLD ABOVE WHICH SNOCVR=1.
! ----------------------------------------------------------------------
        IF (SNEQV .LT. SNUP(IVEG)) THEN
          RSNOW = SNEQV/SNUP(IVEG)
          SNCOVR = 1. - (EXP(-SALP*RSNOW) - RSNOW*EXP(-SALP))
        ELSE
          SNCOVR = 1.0
        ENDIF
        SNCOVR = MAX(0.,MIN(SNCOVR,1.))

      RETURN
      END