63 REAL,
DIMENSION(:),
INTENT(IN) :: PPSN, PPALPHAN
67 REAL,
DIMENSION(:),
INTENT(IN) :: PWRVN
70 REAL,
DIMENSION(:),
INTENT(IN) :: PLAIV
73 REAL,
DIMENSION(:),
INTENT(IN) :: PCHIP, PTV
77 REAL,
DIMENSION(:),
INTENT(OUT) :: PWRVNMAX
81 REAL,
DIMENSION(:),
INTENT(OUT) :: PDELTAVN
85 REAL,
DIMENSION(:),
INTENT(OUT) :: PMELTVN
91 REAL,
DIMENSION(SIZE(PLAIV)) :: ZLAI,ZFCP,ZFRACVN, ZSNOWRHOV
97 REAL(KIND=JPRB) :: ZHOOK_HANDLE
103 REAL,
PARAMETER :: ZRHOVNPAR1 = 67.92
104 REAL,
PARAMETER :: ZRHOVNPAR2 = 51.25
105 REAL,
PARAMETER :: ZRHOVNPAR3 = 2.59
109 REAL,
PARAMETER :: ZWRVNMAXPAR1 = 6.3
110 REAL,
PARAMETER :: ZWRVNMAXPAR2 = 0.27
111 REAL,
PARAMETER :: ZWRVNMAXPAR3 = 46.
115 REAL,
PARAMETER :: ZDVNPAR1 = 0.89
116 REAL,
PARAMETER :: ZDVNPAR2 = -4.7
117 REAL,
PARAMETER :: ZDVNPAR3 = 0.45
118 REAL,
PARAMETER :: ZDVNPAR4 = 0.3
119 REAL,
PARAMETER :: ZMELTF = 5.556e-6
120 REAL,
PARAMETER :: ZLAI_MIN = 0.001
123 REAL,
PARAMETER :: ZRHOVN_TMAX = 279.85403
133 IF (
lhook)
CALL dr_hook(
'SNOW_LEAVES_FRAC_MEB',0,zhook_handle)
135 zsnowrhov(:)= zrhovnpar1
145 zlai(:) = plaiv(:)*(1.-ppsn(:)+ppsn(:)*(1.-ppalphan(:)))
149 WHERE(zlai(:) > zlai_min .AND. plaiv(:)/=
xundef)
153 zsnowrhov(:)= zrhovnpar1 + zrhovnpar2*exp( (min(zrhovn_tmax,ptv(:))-
xtt)/zrhovnpar3)
157 pwrvnmax(:) = zwrvnmaxpar1*(zwrvnmaxpar2+zwrvnmaxpar3/zsnowrhov(:)) * zlai(:)
161 zfracvn(:) = pwrvn(:)/pwrvnmax(:)
166 pdeltavn(:) = zdvnpar1*zfracvn(:)**zdvnpar4/( 1.+exp( zdvnpar2*( zfracvn(:) - zdvnpar3 ) ) )
170 pmeltvn(:) = zmeltf * ( ptv(:)-
xtt ) * zfracvn(:)
174 IF (
lhook)
CALL dr_hook(
'SNOW_LEAVES_FRAC_MEB',1,zhook_handle)
subroutine snow_leaves_frac_meb(PPSN, PPALPHAN, PWRVN, PTV, PCHIP, PLAIV, PWRVNMAX, PDELTAVN, PMELTVN)