SNOW_FRAC_VEG_A Function

public function SNOW_FRAC_VEG_A(P_PSNG, P_LAI, P_SNOWALB) result(PPSNV)

Arguments

Type IntentOptional AttributesName
real, intent(in), DIMENSION(:):: P_PSNG
real, intent(in), DIMENSION(:):: P_LAI
real, intent(in), DIMENSION(:):: P_SNOWALB

Return Value real, DIMENSION(SIZE(P_LAI))


Contents

Source Code


Source Code

      FUNCTION SNOW_FRAC_VEG_A(P_PSNG,P_LAI,P_SNOWALB) RESULT(PPSNV)
!     **********************************************************
!
IMPLICIT NONE
!
REAL, DIMENSION(:), INTENT(IN)  :: P_LAI ! leaf area index
REAL, DIMENSION(:), INTENT(IN)  :: P_SNOWALB ! snow albedo
REAL, DIMENSION(:), INTENT(IN)  :: P_PSNG ! snow fraction over bare ground
REAL, DIMENSION(SIZE(P_LAI))    :: PPSNV  ! snow fraction over vegetation
!
!
!
! Definition of local variables
REAL, DIMENSION(SIZE(P_LAI))   :: FLAI  ! snow fraction over vegetation
REAL  RLAIMAX,RLAI,A1,A2
REAL(KIND=JPRB) :: ZHOOK_HANDLE
!
IF (LHOOK) CALL DR_HOOK('MODE_SURF_SNOW_FRAC:SNOW_FRAC_VEG_A',0,ZHOOK_HANDLE)
RLAIMAX=7.
RLAI=3.
A1=0.87
A2=0.84
FLAI(:)=1.
WHERE(P_LAI(:)>RLAI)
 FLAI(:)=1.-(P_LAI(:)/RLAIMAX)*(MAX(0.0,(A1-MAX(A2,P_SNOWALB(:))))/(A1-A2))
END WHERE
PPSNV(:)=P_PSNG(:)*FLAI(:)
IF (LHOOK) CALL DR_HOOK('MODE_SURF_SNOW_FRAC:SNOW_FRAC_VEG_A',1,ZHOOK_HANDLE)
!
END FUNCTION SNOW_FRAC_VEG_A