65 USE yomhook
,ONLY : lhook, dr_hook
66 USE parkind1
,ONLY : jprb
74 REAL,
INTENT(IN) :: ptstep
77 REAL,
DIMENSION(:),
INTENT(IN) :: pwwilt
79 REAL,
DIMENSION(:),
INTENT(IN) :: prunoffb
82 REAL,
DIMENSION(:),
INTENT(IN) :: prunoffd, pwsat
88 REAL,
DIMENSION(:),
INTENT(IN) :: pwg2, pwgi2
92 REAL,
DIMENSION(:),
INTENT(INOUT) :: ppg
97 REAL,
DIMENSION(:),
INTENT(OUT) :: pruisdt
104 REAL,
DIMENSION(SIZE(PRUNOFFD)) :: zpas, zpg_ini, zwg2
105 REAL(KIND=JPRB) :: zhook_handle
111 IF (lhook) CALL dr_hook(
'HYDRO_DT92',0,zhook_handle)
126 zwg2(:) = min(pwsat(:), pwg2(:) + pwgi2(:))
130 zpas(:) = (1.- (zwg2(:)-pwwilt(:))/(pwsat(:)-pwwilt(:)) )**(1./ (1.+prunoffb(:)) ) - &
131 ppg(:)*ptstep/(xrholw*prunoffd(:) )/( (1. + prunoffb(:))* (pwsat(:)-pwwilt(:)) )
133 zpas(:) = max(0.0, zpas(:))
139 pruisdt(:) = ppg(:)*ptstep/(xrholw*prunoffd(:) ) - ( pwsat(:)-zwg2(:) ) &
140 + (pwsat(:)-pwwilt(:))* ( zpas(:)**(1.+prunoffb(:)) )
142 pruisdt(:) = max(0.0, pruisdt(:))
146 ppg(:) = ppg(:) - pruisdt(:)/ptstep*xrholw*prunoffd(:)
150 WHERE (ppg(:)<=0. .OR. pruisdt(:)<=0.)
158 WHERE (zwg2(:)<=pwwilt(:))
162 IF (lhook) CALL dr_hook(
'HYDRO_DT92',1,zhook_handle)
subroutine hydro_dt92(PTSTEP, PRUNOFFB, PWWILT, PRUNOFFD, PWSAT, PWG2, PWGI2, PPG, PRUISDT)