FUNCTION SNOW_FRAC_NAT(PWSNOW,PPSNG,PPSNV,PVEG) RESULT(PPSN)
! ############################################################
!
IMPLICIT NONE
!
REAL, DIMENSION(:), INTENT(IN) :: PWSNOW ! snow amount over natural areas (kg/m2)
REAL, DIMENSION(:), INTENT(IN) :: PPSNG ! snow fraction over bare ground
REAL, DIMENSION(:), INTENT(IN) :: PPSNV ! snow fraction over vegetation
REAL, DIMENSION(:), INTENT(IN) :: PVEG ! vegetation fraction
REAL, DIMENSION(SIZE(PWSNOW)) :: PPSN ! snow fraction over natural areas
REAL(KIND=JPRB) :: ZHOOK_HANDLE
!
IF (LHOOK) CALL DR_HOOK('MODE_SURF_SNOW_FRAC:SNOW_FRAC_NAT',0,ZHOOK_HANDLE)
PPSN(:) = (1-PVEG(:))*PPSNG(:) + PVEG(:)*PPSNV(:)
IF (LHOOK) CALL DR_HOOK('MODE_SURF_SNOW_FRAC:SNOW_FRAC_NAT',1,ZHOOK_HANDLE)
!
END FUNCTION SNOW_FRAC_NAT