6 SUBROUTINE hydro_veg(HRAIN, PTSTEP, PMUF, PRR, PLEV, PLETR, &
7 PVEG, PPSNV, PWR, PWRMAX, PPG, PDRIP, &
78 CHARACTER(LEN=*),
INTENT(IN) :: HRAIN
83 REAL,
INTENT(IN) :: PTSTEP
86 REAL,
DIMENSION(:),
INTENT(IN) :: PRR, PLEV, PLETR, PMUF, PLVTT
93 REAL,
DIMENSION(:),
INTENT(IN) :: PVEG, PWRMAX
98 REAL,
DIMENSION(:),
INTENT(IN) :: PPSNV
101 REAL,
DIMENSION(:),
INTENT(INOUT) :: PWR
105 REAL,
DIMENSION(:),
INTENT(OUT) :: PPG,PDRIP
108 REAL,
DIMENSION(:),
INTENT(OUT) :: PRRVEG
114 REAL,
DIMENSION(SIZE(PVEG)) :: ZER
117 REAL,
DIMENSION(SIZE(PVEG)) :: ZWR
119 REAL,
DIMENSION(SIZE(PVEG)) :: ZRUIR, ZRUIR2
123 REAL(KIND=JPRB) :: ZHOOK_HANDLE
138 zer(:) = (plev(:)-pletr(:)) / plvtt(:)
142 prrveg(:) = pveg(:) * (1.-ppsnv(:)) * prr(:)
147 pwr(:) = pwr(:) - ptstep * (zer(:) - prrveg(:))
156 zruir2(:) = min(0.,pwr(:)/ptstep)
160 pwr(:) = max(0., pwr(:))
172 WHERE(prrveg(:)>zlim.AND.pwr(:)>0.0)
173 zruir(:) = prrveg(:)*exp(pmuf(:)*(pwr(:)-pwrmax(:))/(prrveg(:)*ptstep
182 zwr(:) = pwr(:)-ptstep*zruir(:)
189 WHERE(prrveg(:)>zlim.AND.zwr(:)<=0.0)
190 zruir(:) = prrveg(:)*exp(pmuf(:)*(pwr(:)-pwrmax(:))/(prrveg(:
198 WHERE(prrveg(:)>zlim.AND.zwr(:)>0.0)
199 zruir(:) = prrveg(:)*exp(pmuf(:)*(zwr(:)-pwrmax(:))/(prrveg(:)
205 pwr(:) = pwr(:)-ptstep*zruir(:)
209 zruir2(:) = zruir2(:) + min(0.,pwr(:)/ptstep)
210 pwr(:) = max( 0., pwr(:) )
215 zruir(:) = zruir(:) + max(0., (pwr(:) - pwrmax(:)) / ptstep )
221 zruir(:) = max(0., (pwr(:) - pwrmax(:)) / ptstep )
227 pwr(:) = min(pwr(:), pwrmax(:))
237 ppg(:) = (1.-pveg(:)*(1-ppsnv(:))) * prr(:) + zruir(:) + zruir2(:)
239 pdrip(:) = zruir(:) + zruir2(:)
subroutine hydro_veg(HRAIN, PTSTEP, PMUF, PRR, PLEV, PLETR, PVEG, PPSNV, PWR, PWRMAX, PPG, PDRIP, PRRVEG, PLVTT)