SNOW_FRAC_ROAD Subroutine

public subroutine SNOW_FRAC_ROAD(PWSNOW_ROAD, OSNOW, PDN_ROAD, PDF_ROAD)

Arguments

Type IntentOptional AttributesName
real, intent(in), DIMENSION(:):: PWSNOW_ROAD
logical, intent(in), DIMENSION(:):: OSNOW
real, intent(out), DIMENSION(:):: PDN_ROAD
real, intent(out), DIMENSION(:):: PDF_ROAD

Contents

Source Code


Source Code

      SUBROUTINE SNOW_FRAC_ROAD(PWSNOW_ROAD,OSNOW,PDN_ROAD,PDF_ROAD)
!     ##############################################################
!
USE MODD_SNOW_PAR, ONLY : XWCRN
!
REAL, DIMENSION(:), INTENT(IN)  :: PWSNOW_ROAD ! snow amount over roads (kg/m2) 
LOGICAL, DIMENSION(:), INTENT(IN)  :: OSNOW    ! T: snow-fall is occuring
REAL, DIMENSION(:), INTENT(OUT) :: PDN_ROAD    ! snow fraction over roads
REAL, DIMENSION(:), INTENT(OUT) :: PDF_ROAD    ! snow-free fraction over roads
REAL(KIND=JPRB) :: ZHOOK_HANDLE
!
IF (LHOOK) CALL DR_HOOK('MODE_SURF_SNOW_FRAC:SNOW_FRAC_ROAD',0,ZHOOK_HANDLE)
PDF_ROAD(:)     = 1.
PDN_ROAD(:)     = 0.
!
! due to the flatness of horizontal surfaces (compared to landscape and
! vegetation), the amount of snow necessary to cover the entire surface XWCRN
! is reduced (equal to 1kg/m2 instead of 10).
!
WHERE (PWSNOW_ROAD(:)>0. .OR. OSNOW)
  PDN_ROAD(:)     = MAX(MIN(PWSNOW_ROAD(:)/(PWSNOW_ROAD(:) + XWCRN*0.1) , 0.7), 0.01)
  PDF_ROAD(:)     = 1.-PDN_ROAD(:)
END WHERE
IF (LHOOK) CALL DR_HOOK('MODE_SURF_SNOW_FRAC:SNOW_FRAC_ROAD',1,ZHOOK_HANDLE)
!
END SUBROUTINE SNOW_FRAC_ROAD