2 PHC_BED,PHGROUND,PHG_OLD,PWTD,PFWTD )
52 REAL,
DIMENSION(:,:,:),
INTENT(IN) :: PTABGW_H
53 REAL,
DIMENSION(:,:,:),
INTENT(IN) :: PTABGW_F
54 LOGICAL,
DIMENSION(:,:),
INTENT(IN) :: OMASK_GW
55 REAL,
DIMENSION(:,:),
INTENT(IN) :: PTOPO_RIV
56 REAL,
DIMENSION(:,:),
INTENT(IN) :: PHC_BED
57 REAL,
DIMENSION(:,:),
INTENT(IN) :: PHGROUND
59 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: PHG_OLD
60 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PWTD
61 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PFWTD
65 INTEGER,
DIMENSION(SIZE(PTABGW_H,1),SIZE(PTABGW_H,2)) :: ISUP
66 INTEGER,
DIMENSION(SIZE(PTABGW_H,1),SIZE(PTABGW_H,2)) :: IINF
67 LOGICAL,
DIMENSION(SIZE(PTABGW_H,1),SIZE(PTABGW_H,2)) :: LMASK
68 REAL,
DIMENSION(SIZE(PTABGW_H,1),SIZE(PTABGW_H,2)) :: ZSLOPE
69 REAL,
DIMENSION(SIZE(PTABGW_H,1),SIZE(PTABGW_H,2)) :: ZHGROUND
71 INTEGER :: ILON, ILAT, JLON, JLAT, JFRAC, INFRAC
73 REAL(KIND=JPRB) :: ZHOOK_HANDLE
81 ilon =
SIZE(ptabgw_h,1)
82 ilat =
SIZE(ptabgw_h,2)
83 infrac =
SIZE(ptabgw_h,3)
88 lmask(:,:) = (omask_gw(:,:).AND.phground(:,:)/=phg_old(:,:))
95 pwtd(:,:) = phground(:,:)-ptopo_riv(:,:)
115 zslope(:,:) = min(1.0,max(0.0,phground(:,:)-(ptopo_riv(:,:)-phc_bed
121 WHERE(lmask(:,:).AND.zhground(:,:)<=ptabgw_h(:,:,1))
122 pfwtd(:,:) = min(1.0,ptabgw_f(:,:,1))
124 ELSEWHERE(lmask(:,:).AND.zhground(:,:)>=ptabgw_h(:,:,infrac))
125 pfwtd(:,:) = min(1.0,ptabgw_f(:,:,infrac))
134 IF(lmask(jlon,jlat))
THEN 136 IF(zhground(jlon,jlat)>=ptabgw_h(jlon,jlat,jfrac))
THEN 137 isup(jlon,jlat)=jfrac+1
138 iinf(jlon,jlat)=jfrac
141 IF(iinf(jlon,jlat)==0.or.isup(jlon,jlat)==0)
then 142 WRITE(6,*)
'IINF,ISUP,JLON,JLAT',iinf(jlon,jlat),isup(jlon,jlat
144 WRITE(6,*)
'JFRAC PHGROUND ZHGROUND PTABGW_H(JFRAC)' 145 WRITE(6,*)jfrac,phground(jlon,jlat),zhground(jlon,jlat),ptabgw_h
147 CALL abort_trip(
'GWF_CPL_UPDATE:Problem with IINF or ISUP')
155 IF(lmask(jlon,jlat))
THEN 156 pfwtd(jlon,jlat) = ptabgw_f(jlon,jlat,iinf(jlon,jlat))
171 phg_old(:,:)=phground(:,:)
173 IF (
lhook)
CALL dr_hook(
'GWF_CPL_UPDATE',1,zhook_handle)
subroutine gwf_cpl_update(PTABGW_H, PTABGW_F, OMASK_GW, PTOPO_RIV, PHC_BED, PHGROUND, PHG_OLD, PWTD, PFWTD)
subroutine abort_trip(YTEXT)