5 &(f,fc,h,fxmat,fxmatpar,
6 & volu2d,unsv2d,dt,fxbor,fxborpar,t7,fbor,smh,yasmh,fscexp,
7 & nseg,npoin,nptfr,gloseg,sizglo,nbor,limtra,kdir,kddl,optsou,hlin,
8 & iopt2,flbortra,surnit,mesh,rain,pluie,train,massou,
98 INTEGER,
INTENT(IN) :: NSEG,NPOIN,NPTFR,KDIR,KDDL
99 INTEGER,
INTENT(IN) :: SIZGLO,OPTSOU,IOPT2
100 INTEGER,
INTENT(IN) :: GLOSEG(sizglo,2)
101 INTEGER,
INTENT(IN) :: NBOR(nptfr),LIMTRA(nptfr)
102 DOUBLE PRECISION,
INTENT(IN) :: DT,SURNIT,TRAIN
103 DOUBLE PRECISION,
INTENT(INOUT) :: FLBORTRA(nptfr)
104 DOUBLE PRECISION,
INTENT(INOUT) :: F(npoin),MASSOU
105 DOUBLE PRECISION,
INTENT(IN) :: FXBOR(nptfr)
106 DOUBLE PRECISION,
INTENT(IN) :: FC(npoin),H(npoin),HLIN(npoin)
107 DOUBLE PRECISION,
INTENT(IN) :: SMH(*),UNSV2D(npoin)
108 DOUBLE PRECISION,
INTENT(IN) :: PLUIE(*),VOLU2D(npoin)
109 DOUBLE PRECISION,
INTENT(IN) :: FSCEXP(*)
110 DOUBLE PRECISION,
INTENT(IN) :: FBOR(nptfr),FXBORPAR(npoin)
111 DOUBLE PRECISION,
INTENT(IN) :: FXMAT(nseg),FXMATPAR(nseg)
112 LOGICAL,
INTENT(IN) :: YASMH,RAIN,MASS_BALANCE
113 TYPE(bief_obj),
INTENT(INOUT) :: T7
114 TYPE(bief_mesh),
INTENT(INOUT) :: MESH
127 ELSEIF(iopt2.EQ.1)
THEN 130 f(i) = fc(i)*max(h(i),1.d-8)/max(hlin(i),1.d-8)
133 WRITE(
lu,*)
'TVF: UNKNOWN OPTION' 145 IF(fxmatpar(i).LT.0.d0)
THEN 146 t7%R(gloseg(i,1)) = t7%R(gloseg(i,1))
147 & - dt/hlin(gloseg(i,1))*unsv2d(gloseg(i,1))
148 & *fxmat(i)*(fc(gloseg(i,2))-fc(gloseg(i,1)))
149 ELSEIF(fxmatpar(i).GT.0.d0)
THEN 150 t7%R(gloseg(i,2)) = t7%R(gloseg(i,2))
151 & + dt/hlin(gloseg(i,2))*unsv2d(gloseg(i,2))
152 & *fxmat(i)*(fc(gloseg(i,1))-fc(gloseg(i,2)))
155 IF(ncsize.GT.1)
CALL parcom(t7,2,mesh)
165 IF(smh(i).GT.0.d0)
THEN 166 f(i)=f(i)+dt/hlin(i)*smh(i)*(fscexp(i)-fc(i))
169 ELSEIF(optsou.EQ.2)
THEN 171 IF(smh(i).GT.0.d0)
THEN 172 f(i)=f(i)+dt/hlin(i)*unsv2d(i)*smh(i)*(fscexp(i)-fc(i))
176 IF(mass_balance)
THEN 179 IF(smh(i).GT.0.d0)
THEN 180 massou=massou+dt*volu2d(i)*smh(i)*fscexp(i)
182 massou=massou+dt*volu2d(i)*smh(i)*fc(i)
185 ELSEIF(optsou.EQ.2)
THEN 187 IF(smh(i).GT.0.d0)
THEN 188 massou=massou+dt*smh(i)*fscexp(i)
190 massou=massou+dt*smh(i)*fc(i)
201 IF(pluie(i).GT.0.d0)
THEN 203 f(i)=f(i)+dt/hlin(i)*pluie(i)*(train-fc(i))
206 f(i)=f(i)+dt/hlin(i)*pluie(i)*( -fc(i))
215 IF(limtra(i).EQ.kdir)
THEN 217 f(n)=f(n)-dt/hlin(n)*unsv2d(n)*fxborpar(n)*(fbor(i)-fc(n))
220 IF(mass_balance)
THEN 222 IF(limtra(i).EQ.kdir)
THEN 223 flbortra(i)=flbortra(i)+fxbor(i)*fbor(i)*surnit
224 ELSEIF(limtra(i).EQ.kddl)
THEN 226 flbortra(i)=flbortra(i)+fxbor(i)*fc(n)*surnit
subroutine mass_balance(DT, NPTFR, ENTET, NSICLA, NUMLIQ, NFRLIQ, FLBCLA, LT, NIT, NPOIN, VOLU2D, CHARR, SUSP, EVCL_MB, EVCL_MS, MASSTOT, MASS0TOT)
subroutine parcom(X, ICOM, MESH)
subroutine tvf(F, FC, H, FXMAT, FXMATPAR, VOLU2D, UNSV2D, DT, FXBOR, FXBORPAR, T7, FBOR, SMH, YASMH, FSCEXP, NSEG, NPOIN, NPTFR, GLOSEG, SIZGLO, NBOR, LIMTRA, KDIR, KDDL, OPTSOU, HLIN, IOPT2, FLBORTRA, SURNIT, MESH, RAIN, PLUIE, TRAIN, MASSOU, MASS_BALANCE)