6 SUBROUTINE hydro_veg(HRAIN, PTSTEP, PMUF, PRR, PLEV, PLETR, &
7 pveg, ppsnv, pwr, pwrmax, ppg, pdrip, &
71 USE yomhook
,ONLY : lhook, dr_hook
72 USE parkind1
,ONLY : jprb
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
127 IF (lhook) CALL dr_hook(
'HYDRO_VEG',0,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))
174 zruir(:) = min(zruir(:),pwr(:)/ptstep)
182 zwr(:) = pwr(:)-ptstep*zruir(:)
189 WHERE(prrveg(:)>zlim.AND.zwr(:)<=0.0)
190 zruir(:) = prrveg(:)*exp(pmuf(:)*(pwr(:)-pwrmax(:))/(prrveg(:)*ptstep/2.))
191 zruir(:) = min(zruir(:),pwr(:)/(ptstep/2.))
192 zwr(:) = pwr(:)-ptstep*zruir(:)/2.
198 WHERE(prrveg(:)>zlim.AND.zwr(:)>0.0)
199 zruir(:) = prrveg(:)*exp(pmuf(:)*(zwr(:)-pwrmax(:))/(prrveg(:)*ptstep))
200 zruir(:) = min(zruir(:),pwr(:)/ptstep)
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(:)
240 IF (lhook) CALL dr_hook(
'HYDRO_VEG',1,zhook_handle)
subroutine hydro_veg(HRAIN, PTSTEP, PMUF, PRR, PLEV, PLETR, PVEG, PPSNV, PWR, PWRMAX, PPG, PDRIP, PRRVEG, PLVTT)