3 KLON,KLAT,OPRINT,PTSTEP_RUN,PTSTEP,OMASK,PNUM_AQUI, &
4 PDRAIN,PLEN,PWIDTH,PHC_BED,PTOPO_RIV,PTAUG, &
5 PAREA,PTRANS,PWEFF,PTABGW_F,PTABGW_H,PHS, &
6 PHGROUND,PHG_OLD,PSURF_STO,PQGCELL,PWTD,PFWTD, &
8 PGSTO_ALL,PGSTO2_ALL,PGIN_ALL,PGOUT_ALL )
37 USE modi_gwf_cpl_update
49 INTEGER,
INTENT(IN) :: KLON
50 INTEGER,
INTENT(IN) :: KLAT
51 LOGICAL,
INTENT(IN) :: OPRINT
53 REAL,
INTENT(IN) :: PTSTEP_RUN
54 REAL,
INTENT(IN) :: PTSTEP
56 LOGICAL,
DIMENSION(:,:),
INTENT(IN) :: OMASK
58 REAL,
DIMENSION(:,:),
INTENT(IN) :: PNUM_AQUI
59 REAL,
DIMENSION(:,:),
INTENT(IN) :: PDRAIN
60 REAL,
DIMENSION(:,:),
INTENT(IN) :: PLEN
61 REAL,
DIMENSION(:,:),
INTENT(IN) :: PWIDTH
62 REAL,
DIMENSION(:,:),
INTENT(IN) :: PHC_BED
63 REAL,
DIMENSION(:,:),
INTENT(IN) :: PTOPO_RIV
64 REAL,
DIMENSION(:,:),
INTENT(IN) :: PTAUG
65 REAL,
DIMENSION(:,:),
INTENT(IN) :: PAREA
66 REAL,
DIMENSION(:,:),
INTENT(IN) :: PTRANS
67 REAL,
DIMENSION(:,:),
INTENT(IN) :: PWEFF
69 REAL,
DIMENSION(:,:,:),
INTENT(IN) :: PTABGW_F
70 REAL,
DIMENSION(:,:,:),
INTENT(IN) :: PTABGW_H
72 REAL,
DIMENSION(:,:),
INTENT(IN) :: PHS
74 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: PHGROUND
75 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: PHG_OLD
77 REAL,
DIMENSION(:,:),
INTENT(INOUT),
OPTIONAL :: PSURF_STO
79 REAL,
DIMENSION(:,:),
INTENT(OUT),
OPTIONAL :: PQGCELL
80 REAL,
DIMENSION(:,:),
INTENT(OUT),
OPTIONAL :: PWTD
81 REAL,
DIMENSION(:,:),
INTENT(OUT),
OPTIONAL :: PFWTD
82 REAL,
DIMENSION(:,:),
INTENT(OUT),
OPTIONAL :: PHGHS
83 REAL,
DIMENSION(:,:),
INTENT(OUT),
OPTIONAL :: PGOUT
84 REAL,
DIMENSION(:,:),
INTENT(OUT),
OPTIONAL :: PGNEG
86 REAL,
INTENT(OUT),
OPTIONAL :: PGSTO_ALL
87 REAL,
INTENT(OUT),
OPTIONAL :: PGSTO2_ALL
88 REAL,
INTENT(OUT),
OPTIONAL :: PGIN_ALL
89 REAL,
INTENT(OUT),
OPTIONAL :: PGOUT_ALL
93 REAL,
PARAMETER :: ZEPSILON = 1.e-12
94 INTEGER,
PARAMETER :: IITERMAX = 100
96 REAL,
PARAMETER :: ZGWDZMIN = 10.0
97 REAL,
PARAMETER :: ZGWERR = 0.01
103 REAL,
DIMENSION(KLAT) :: ZLAT
106 REAL,
DIMENSION(KLON,KLAT) :: ZHDRAIN_RIV
107 REAL,
DIMENSION(KLON,KLAT) :: ZRIVERBED
108 REAL,
DIMENSION(KLON,KLAT) :: ZGWDEEP
109 REAL,
DIMENSION(KLON,KLAT) :: ZCRIV
110 REAL,
DIMENSION(KLON,KLAT) :: ZCC
111 REAL,
DIMENSION(KLON,KLAT) :: ZCR
112 REAL,
DIMENSION(KLON,KLAT) :: ZHCOF
113 REAL,
DIMENSION(KLON,KLAT) :: ZRHS
114 REAL,
DIMENSION(KLON,KLAT) :: ZQDRAIN
115 REAL,
DIMENSION(KLON,KLAT) :: ZTAUG
116 REAL,
DIMENSION(KLON,KLAT) :: ZSLOPE
117 REAL,
DIMENSION(KLON,KLAT) :: ZTRANS
122 INTEGER :: IITER, JLON, JLAT
124 REAL(KIND=JPRB) :: ZHOOK_HANDLE
146 znpts =
REAL(
count(omask(:,:)))
150 phg_old(:,:) = phground(:,:)
154 zriverbed(:,:) = ptopo_riv(:,:) - phc_bed(:,:)
155 zhdrain_riv(:,:) = zriverbed(:,:) + min(phc_bed(:,:),phs(:,:))
165 zslope(:,:) = min(1.0,max(0.0,phground(:,:)-zriverbed(:,:))/phc_bed
173 zslope(:,:) = min(1.0,max(0.0,phground(:,:)-ptopo_riv(:,:)+
xgwdzmax 177 CALL gwf_int(klon,klat,zgrid_res,zlat,omask,pnum_aqui,ztrans,zcr,zcc)
185 DO WHILE (zevol>zepsilon.AND.iiter<=iitermax)
190 IF(omask(jlon,jlat))
THEN 193 IF(phground(jlon,jlat)<zhdrain_riv(jlon,jlat).AND.phs(jlon,jlat
THEN 194 zcriv(jlon,jlat) = 0.0
196 IF(phground(jlon,jlat)<zriverbed(jlon,jlat))
THEN 197 zcriv(jlon,jlat) = 0.0
198 zgwdeep(jlon,jlat) = max(0.,(phs(jlon,jlat)-
xhsmin))*pwidth
202 zhcof(jlon,jlat) = zcriv(jlon,jlat) + (pweff(jlon,jlat)*parea
212 CALL gwf_solver(klon,klat,znpts,omask,zhcof,zrhs,zcr,zcc,phground,zevol
218 IF(.NOT.
PRESENT(psurf_sto))
THEN 226 CALL gwf_budget(klon,klat,omask,phground,zhdrain_riv, &
227 zgwdeep,zcr,zcc,zcriv,pqgcell,zqdrain )
231 IF(omask(jlon,jlat))
THEN 232 phghs(jlon,jlat) = phground(jlon,jlat)-zhdrain_riv(jlon,jlat
237 pgout(jlon,jlat) = pdrain(jlon,jlat)
238 pgneg(jlon,jlat) = 0.0
256 IF(omask(jlon,jlat))
THEN 257 pgsto_all = pgsto_all + pweff(jlon,jlat)*phg_old(jlon,jlat
276 phc_bed,phground,phg_old,pwtd,pfwtd)
subroutine gwf_int(KLON, KLAT, PGRID_RES, PLAT, OMASK, PNUM_AQUI, PTRANS
subroutine get_lat_gwf(TPG, KLAT, PRES, PLAT)
subroutine gwf_cpl_update(PTABGW_H, PTABGW_F, OMASK_GW, PTOPO_RIV, PHC_BED, PHGROUND, PHG_OLD, PWTD, PFWTD)
subroutine gwf_budget(KLON, KLAT, OMASK, PHGROUND, PHDRAIN_RIV, PGWDEEP, PCR, PCC, PCRIV, PQGCELL, PQDRAIN)
subroutine gwf_solver(KLON, KLAT, PNPTS, OMASK, PHCOF, PRHS, PCR, PCC, PH