53 USE yomhook
, ONLY : lhook, dr_hook
54 USE parkind1
, ONLY : jprb
61 TYPE(isba_t
),
INTENT(INOUT) :: i
63 INTEGER,
INTENT(IN) :: ki
64 REAL,
DIMENSION(:,:),
INTENT(IN) :: pwg
69 INTEGER :: ji, jlayer, jpatch
70 REAL(KIND=JPRB) :: zhook_handle
73 IF (lhook) CALL dr_hook(
'TOPD_TO_DF',0,zhook_handle)
77 IF (i%NSIZE_NATURE_P(jpatch) == 0 ) cycle
79 DO jlayer = 1,i%NGROUND_LAYER
83 idepth=i%NWG_LAYER(ji,jpatch)
85 IF(jlayer<=idepth.AND.idepth/=nundef.AND.(xtotbv_in_mesh(ji)/=0.0).AND.(xtotbv_in_mesh(ji)/=xundef))
THEN
88 IF (i%XDZG(ji,jlayer,jpatch)/=xundef.AND.i%XDG2(ji,jpatch)/=xundef.AND.i%XDG(ji,jlayer,jpatch)/=xundef)&
89 zwork=min(i%XDZG(ji,jlayer,jpatch),max(0.0,i%XDG2(ji,jpatch)-i%XDG(ji,jlayer,jpatch)+i%XDZG(ji,jlayer,jpatch)))
91 IF ((pwg(ji,2)/=xundef).AND.(zwork>0.).AND.(zwork/=xundef))&
92 i%XWG(ji,jlayer,jpatch)=min(max(pwg(ji,2),xwgmin),i%XWSAT(ji,jlayer))
95 IF ((xfrac_d3(ji)/=0.0).AND.(xfrac_d3(ji)/=xundef))
THEN
97 IF (i%XDZG(ji,jlayer,jpatch)/=xundef.AND.i%XDG2(ji,jpatch)/=xundef.AND.i%XDG(ji,jlayer,jpatch)/=xundef) &
98 zwork=min(i%XDZG(ji,jlayer,jpatch),max(0.0,i%XDG(ji,jlayer,jpatch)-i%XDG2(ji,jpatch)))
100 IF ((pwg(ji,3)/=xundef).AND.(zwork>0.).AND.(zwork/=xundef)) &
101 i%XWG(ji,jlayer,jpatch)=min(max(pwg(ji,3),xwgmin),i%XWSAT(ji,jlayer))
111 IF (lhook) CALL dr_hook(
'TOPD_TO_DF',1,zhook_handle)
subroutine topd_to_df(I, KI, PWG)