2 SUBROUTINE trip (KLISTING,HGROUNDW,OFLOOD,OPRINT,PTSTEP, &
3 KGRCN,KSEQ,KNEXTX,KNEXTY,KSEQMAX,PAREA,PLEN, &
4 OMASK_GW,OMASK_VEL,OMASK_FLD, &
5 PTAUG,PFLOOD_LEN,PSLOPEBED,PWIDTH,PN, &
6 PN_FLOOD,PHC_BED,PWFLOOD,PTAB_F,PTAB_H,PTAB_VF, &
7 PDRAIN,PRUNOFF,PSOURCE,PHS,PVEL, &
8 PGROUND_STO,PSURF_STO, &
9 PFLOOD_STO,PSOUT,PGOUT,PHFLOOD, &
10 PFFLOOD,PQFR,PQRF,PVFIN,PVFOUT, &
11 PHSF,PSIN,KTRIP,KTSEPT,KTSTEP_END, &
12 PGSTO_ALL,PGSTO2_ALL,PGIN_ALL,PGOUT_ALL, &
42 USE modi_trip_gw_buffer_tank
43 USE modi_trip_surface_water
44 USE modi_trip_surface_flood
46 USE modi_trip_update_and_conserv
55 INTEGER,
INTENT(IN) :: KLISTING
56 INTEGER,
INTENT(IN) :: KTRIP
57 INTEGER,
INTENT(IN) :: KTSEPT
58 INTEGER,
INTENT(IN) :: KTSTEP_END
60 CHARACTER(LEN=3),
INTENT(IN) :: HGROUNDW
62 LOGICAL,
INTENT(IN) :: OFLOOD
63 LOGICAL,
INTENT(IN) :: OPRINT
65 REAL,
INTENT(IN) :: PTSTEP
67 INTEGER,
INTENT(IN) :: KSEQMAX
68 INTEGER,
DIMENSION(:,:),
INTENT(IN) :: KGRCN
69 INTEGER,
DIMENSION(:,:),
INTENT(IN) :: KSEQ
70 INTEGER,
DIMENSION(:,:),
INTENT(IN) :: KNEXTX
71 INTEGER,
DIMENSION(:,:),
INTENT(IN) :: KNEXTY
73 LOGICAL,
DIMENSION(:,:),
INTENT(IN) :: OMASK_GW
74 LOGICAL,
DIMENSION(:,:),
INTENT(IN) :: OMASK_VEL
75 LOGICAL,
DIMENSION(:,:),
INTENT(IN) :: OMASK_FLD
77 REAL,
DIMENSION(:,:),
INTENT(IN) :: PTAUG
78 REAL,
DIMENSION(:,:),
INTENT(IN) :: PLEN
79 REAL,
DIMENSION(:,:),
INTENT(IN) :: PSLOPEBED
80 REAL,
DIMENSION(:,:),
INTENT(IN) :: PWIDTH
81 REAL,
DIMENSION(:,:),
INTENT(IN) :: PN
82 REAL,
DIMENSION(:,:),
INTENT(IN) :: PN_FLOOD
83 REAL,
DIMENSION(:,:),
INTENT(IN) :: PHC_BED
84 REAL,
DIMENSION(:,:),
INTENT(IN) :: PSOURCE
85 REAL,
DIMENSION(:,:),
INTENT(IN) :: PAREA
86 REAL,
DIMENSION(:,:),
INTENT(IN) :: PDRAIN
87 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: PRUNOFF
89 REAL,
DIMENSION(:,:),
INTENT(IN) :: PHS
90 REAL,
DIMENSION(:,:),
INTENT(IN) :: PVEL
92 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: PHFLOOD
93 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: PWFLOOD
94 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: PFLOOD_LEN
95 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: PFFLOOD
96 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: PSURF_STO
97 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: PGROUND_STO
98 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: PFLOOD_STO
100 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PSOUT
101 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PSIN
102 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: PGOUT
103 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PQFR
104 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PQRF
106 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PVFIN
107 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PVFOUT
108 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PHSF
110 REAL,
DIMENSION(:,:,:),
INTENT(IN) :: PTAB_F
111 REAL,
DIMENSION(:,:,:),
INTENT(IN) :: PTAB_H
112 REAL,
DIMENSION(:,:,:),
INTENT(IN) :: PTAB_VF
114 REAL,
INTENT(INOUT) :: PGSTO_ALL
115 REAL,
INTENT(INOUT) :: PGSTO2_ALL
116 REAL,
INTENT(INOUT) :: PGIN_ALL
117 REAL,
INTENT(INOUT) :: PGOUT_ALL
119 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: PHGROUND
120 REAL,
DIMENSION(:,:),
INTENT(IN) :: PWEFF
124 REAL,
DIMENSION(SIZE(PLEN,1),SIZE(PLEN,2)) :: ZSURF_STO2
125 REAL,
DIMENSION(SIZE(PLEN,1),SIZE(PLEN,2)) :: ZGROUND_STO2
126 REAL,
DIMENSION(SIZE(PLEN,1),SIZE(PLEN,2)) :: ZFLOOD_STO2
127 REAL,
DIMENSION(SIZE(PLEN,1),SIZE(PLEN,2)) :: ZQFR
128 REAL,
DIMENSION(SIZE(PLEN,1),SIZE(PLEN,2)) :: ZQRF
130 REAL :: ZFSTO_ALL, ZFSTO2_ALL, ZSOURCE_ALL, ZSSTO_ALL, ZSSTO2_ALL, &
131 ZSIN_ALL, ZDRUN_ALL, ZSOUT_ALL, ZVEL_ALL, ZFIN_ALL, &
132 ZFOUT_ALL, ZHS_ALL,ZHF_ALL,ZFF_ALL, ZRECUP_ALL
134 REAL(KIND=JPRB) :: ZHOOK_HANDLE
158 zsurf_sto2(:,:) = 0.0
159 zground_sto2(:,:) = 0.0
160 zflood_sto2(:,:) = 0.0
169 IF(hgroundw==
'DEF')
THEN 171 pgout(:,:)=max(pdrain(:,:),0.0)
173 ELSEIF(hgroundw==
'CST')
THEN 187 ptab_f,ptab_h,ptab_vf,parea,pvel, &
188 plen,pwidth,pn_flood,phc_bed, &
189 phs,psurf_sto,pflood_sto,psource, &
190 zflood_sto2,phflood,pfflood,pflood_len, &
191 pwflood,pqfr,pqrf,pvfin,pvfout,phsf, &
192 zfsto_all,zfsto2_all,zsource_all, &
193 zfin_all,zfout_all,zhf_all,zff_all )
195 zqfr(:,:) = pqfr(:,:)
196 zqrf(:,:) = pqrf(:,:)
216 zsurf_sto2,zflood_sto2,zground_sto2, &
217 psurf_sto,pflood_sto,pground_sto, &
218 omask_gw,phground,zrecup_all )
224 IF(oprint.AND.ktrip==1.AND.ktsept==1)
THEN 227 WRITE(klisting,*)
' START RUN ISBA-TRIP-FP ' 228 WRITE(klisting,*)
' Budget en kg/m2 ' 230 WRITE(klisting,
'(a90)')
'RUN TSTEP S_err F_err G_err MR(mm/y) Vel(m/s) Hs Hf Ff UNCSV' 237 WRITE(klisting,
'(i3,1x,i3,3(2x,g8.2),f8.2,f8.2,8(2x,f8.3))')
240 (zssto_all-zssto2_all)+ptstep*(zsin_all-zsout_all),
242 (zfsto_all-zfsto2_all)+ptstep*(zsource_all+zfin_all-zfout_all),
244 (pgsto_all-pgsto2_all)+ptstep*(pgin_all-pgout_all),
246 (zssto_all-zssto2_all +ptstep*zdrun_all)/
xsea*
xyear*
REAL(KTSTEP_END) 249 zvel_all,zhs_all,zhf_all,100.*zff_all,zrecup_all
subroutine trip_surface_water(KLISTING, PTSTEP, KGRCN, KSEQ, KNEXTX, KNEXTY, KSEQMAX, OPRINT, OMASK_VEL, PLEN, PRUNOFF, PVEL, PHS, PSURF_STO, PSURF_STO2, PGOUT, PSIN, PSOUT, PAREA, PQFR, PQRF, PSSTO_ALL, PSSTO2_ALL, PSIN_ALL, PDRUN_ALL, PSOUT_ALL, PVEL_ALL, PHS_ALL)
subroutine trip_update_and_conserv(OPRINT, OFLOOD, HGROUNDW, PAREA, PW
subroutine trip(KLISTING, HGROUNDW, OFLOOD, OPRINT, PTSTEP,
subroutine trip_surface_flood(KLISTING, PTSTEP, OPRINT, OMASK_FLD, PTAB_F, PTAB_H, PTAB_VF, PAREA, PVEL, PLEN, PWIDTH, PN_FLOOD, PHC, PHS, PSURF_STO, PFLOOD_STO, PSOURCE, PFLOOD_STO2, PHFLOOD, PFFLOOD, PFLOOD_LEN, PWFLOOD, PQFR, PQRF, PVFIN, PVFOUT, PHSF, PFSTO_ALL, PFSTO2_ALL, PSOURCE_ALL, PFIN_ALL, PFOUT_ALL, PHF_ALL, PFF_ALL)
subroutine trip_gw_buffer_tank(PTSTEP, OPRINT, PAREA, OMASK_GW, PGROUN