6 SUBROUTINE veg( PSW_RAD, PTA, PQA, PPS, PRGL, PLAI, PRSMIN, &
66 USE yomhook
,ONLY : lhook, dr_hook
67 USE parkind1
,ONLY : jprb
74 REAL,
DIMENSION(:),
INTENT(IN) :: psw_rad, pta, pqa, pps
80 REAL,
DIMENSION(:),
INTENT(IN) :: prgl, plai, prsmin, pgamma
86 REAL,
DIMENSION(:),
INTENT(IN) :: pf2
87 REAL,
DIMENSION(:),
INTENT(OUT) :: prs
92 REAL,
DIMENSION(SIZE(PSW_RAD)) :: zf, zf1, zf2, zf3, zf4
96 REAL,
DIMENSION(SIZE(PSW_RAD)) :: zqsat
102 REAL,
PARAMETER :: zfactr_min = 1.e-3
104 REAL,
PARAMETER :: zrs_min = 1.e-4
106 REAL(KIND=JPRB) :: zhook_handle
110 IF (lhook) CALL dr_hook(
'VEG',0,zhook_handle)
117 zf(:) = 0.55*2.*psw_rad(:) / (prgl(:)+ xdenom_min ) / ( plai(:)+ xdenom_min )
119 zf1(:) = ( zf(:) + prsmin(:)/xrs_max) /( 1. + zf(:) )
120 zf1(:) = max( zf1(:), xdenom_min )
134 zf2(:) = max(xdenom_min,pf2(:))
147 zqsat(:) =
qsat(pta(:),pps(:))
149 zf3(:) = max( 1. - pgamma(:)*( zqsat(:) - pqa(:) )*1000. , zfactr_min )
158 zf4(:) = max( 1.0 - 0.0016*(298.15-pta(:))**2, zfactr_min )
168 prs(:) = prsmin(:) / ( plai(:)+ xdenom_min ) &
169 / zf1(:) / zf2(:) /zf3(:) / zf4(:)
171 prs(:) = min( prs(:), xrs_max)
172 prs(:) = max( prs(:), zrs_min)
174 IF (lhook) CALL dr_hook(
'VEG',1,zhook_handle)
subroutine veg(PSW_RAD, PTA, PQA, PPS, PRGL, PLAI, PRSMIN, PGAMMA, PF2, PRS)