5 &(e,esomt,t1,vcumu,dt,nptfr,
6 & info,zfcl_c,zfcl_s,zfcl_ms,
8 & numliq,nfrliq,flbcla,lt,nit,npoin,volu2d,csf_sable,masdep,
9 & masdept,charr,susp,slide)
99 & vcumucl,rmascl,volnestorcl,volnestorcla
107 INTEGER,
INTENT(IN) :: NPTFR,NFRLIQ,NSICLA,LT,NIT
108 INTEGER,
INTENT(IN) :: NPOIN,NUMLIQ(nptfr)
109 DOUBLE PRECISION,
INTENT(IN) :: DT
110 LOGICAL,
INTENT(IN) :: INFO,SUSP,SLIDE,CHARR
112 DOUBLE PRECISION,
INTENT(INOUT) :: VCUMU
113 DOUBLE PRECISION,
INTENT(IN) :: CSF_SABLE,VOLTOT(nsicla)
114 DOUBLE PRECISION,
INTENT(IN) :: MASDEP(nsicla)
115 DOUBLE PRECISION,
INTENT(INOUT) :: MASDEPT(nsicla)
121 TYPE(bief_obj),
INTENT(IN) :: ZFCL_C
122 TYPE(bief_obj),
INTENT(IN) :: E,ESOMT,VOLU2D,ZFCL_S
123 TYPE(bief_obj),
INTENT(IN) :: ZFCL_MS
124 TYPE(bief_obj),
INTENT(INOUT) :: T1,FLBCLA
128 INTEGER I,IFRLIQ,IPTFR,ICLA,J
129 DOUBLE PRECISION RMASSE,RCUMU,RMASCLA(nsiclm)
130 DOUBLE PRECISION VCUMUCLA(nsiclm),FLUXT,FLUXTCLA,VOLDEP
131 DOUBLE PRECISION FLT_BOUND(maxfro),VOLDEPC
132 DOUBLE PRECISION VOLNESTOR,VOLLOSTPERC,VOLTOT1
133 DOUBLE PRECISION VOLINI1,VCUMU1,VOLNESTOR1
141 rmasse=rmasse+e%R(i)*volu2d%R(i)
143 IF(ncsize.GT.1) rmasse =
p_dsum(rmasse)
152 rcumu=rcumu+esomt%R(i)*volu2d%R(i)
154 IF(ncsize.GT.1) rcumu =
p_dsum(rcumu)
162 CALL os(
'X=Y ',x=t1,y=flbcla%ADR(1)%P)
165 CALL os(
'X=X+Y ',x=t1,y=flbcla%ADR(i)%P)
169 CALL cpstvc(flbcla%ADR(1)%P,t1)
177 flt_bound(ifrliq)=0.d0
183 flt_bound(ifrliq)=flt_bound(ifrliq)+t1%R(iptfr)
189 flt_bound(ifrliq)=
p_dsum(flt_bound(ifrliq))
193 fluxt=fluxt+flt_bound(ifrliq)
197 vcumu = vcumu - fluxt*dt/csf_sable
208 IF(susp.AND.slide.AND.charr)
THEN 210 rmascla(icla)=rmascla(icla)
211 & +( zfcl_c%ADR(icla)%P%R(i)
212 & +zfcl_s%ADR(icla)%P%R(i)
213 & +zfcl_ms%ADR(icla)%P%R(i) )*volu2d%R(i)
215 ELSEIF(slide.AND.charr)
THEN 217 rmascla(icla)=rmascla(icla)
218 & +( zfcl_c%ADR(icla)%P%R(i)
219 & +zfcl_ms%ADR(icla)%P%R(i) )*volu2d%R(i)
221 ELSEIF(susp.AND.charr)
THEN 223 rmascla(icla)=rmascla(icla)
224 & +( zfcl_c%ADR(icla)%P%R(i)
225 & +zfcl_s%ADR(icla)%P%R(i) )*volu2d%R(i)
227 ELSEIF(susp.AND.slide)
THEN 229 rmascla(icla)=rmascla(icla)
230 & +( zfcl_s%ADR(icla)%P%R(i)
231 & +zfcl_ms%ADR(icla)%P%R(i) )*volu2d%R(i)
235 rmascla(icla)=rmascla(icla)
236 & +zfcl_s%ADR(icla)%P%R(i)*volu2d%R(i)
240 rmascla(icla)=rmascla(icla)
241 & +zfcl_ms%ADR(icla)%P%R(i)*volu2d%R(i)
245 rmascla(icla)=rmascla(icla)
246 & +zfcl_c%ADR(icla)%P%R(i)*volu2d%R(i)
249 IF(ncsize.GT.1) rmascla(icla) =
p_dsum(rmascla(icla))
250 rmascl(icla) = rmascl(icla)+rmascla(icla)
256 IF(nfrliq.GT.0.AND.charr)
THEN 261 fluxtcla=fluxtcla+flbcla%ADR(icla)%P%R(iptfr)
265 IF(ncsize.GT.1) fluxtcla=
p_dsum(fluxtcla)
268 vcumucla(icla) = - fluxtcla*dt/csf_sable
269 vcumucl(icla) = vcumucl(icla)- fluxtcla*dt/csf_sable
282 voldepc=voldepc+masdept(i)
284 voldepc=voldepc/csf_sable
295 WRITE(
lu,2010) rmasse
298 WRITE(
lu,2110) ifrliq,-flt_bound(ifrliq)/csf_sable
300 WRITE(
lu,2111) -fluxt/csf_sable
301 IF(susp)
WRITE(
lu,2112) voldepc
306 volnestor = volnestor + volnestorcla(i)
308 WRITE(
lu,*)
'NESTOR VOLUME CHANGE = ', volnestor
310 WRITE(
lu,2033) rmasse+dt*fluxt/csf_sable-voldepc-volnestor
316 WRITE(
lu,*)
'MASS BALANCE FOR SEDIMENT CLASS :',i
317 WRITE(
lu,*)
'TOTAL VOLUME:',voltot(i)
318 WRITE(
lu,3010) rmascla(i)
319 WRITE(
lu,3031) vcumucla(i)
320 WRITE(
lu,*)
'NESTOR VOLUME PER CLASS: ',volnestorcla(i)
322 WRITE(
lu,3034) masdept(i)/csf_sable
323 WRITE(
lu,2033) rmascla(i)-vcumucla(i)
324 & -masdept(i)/csf_sable
326 WRITE(
lu,2033) rmascla(i)-vcumucla(i)-volnestorcla(i)
335 WRITE(
lu,*)
'---------------------------' 336 WRITE(
lu,*)
'FINAL SEDIMENT MASS BALANCE' 337 WRITE(
lu,*)
'---------------------------' 341 voldep=voldep+masdep(i)
345 volnestor=volnestor+volnestorcl(i)
348 voldep=voldep/csf_sable
352 IF(susp)
WRITE(
lu,2032) voldep
353 IF(
nestor)
WRITE(
lu,*)
'CUMULATED NESTOR VOLUME: :',
355 WRITE(
lu,2033) rcumu-vcumu-voldep-volnestor
360 voltot1 = voltot1 + (
zf%R(j)-
zr%R(j))*volu2d%R(j)
362 IF(ncsize>1)voltot1 =
p_dsum(voltot1)
363 volnestor1 = volnestor
371 volini1 = volini1+
volini(i)
372 voltot1 = voltot1+voltot(i)
373 volnestor1 = volnestor1+volnestorcl(i)
374 vcumu1 = vcumu1+vcumucl(i)
378 WRITE(
lu,*)
'INITIAL VOLUME :',volini1
379 WRITE(
lu,*)
'FINAL VOLUME :',voltot1
380 IF(volini1.GT.0.d0)
THEN 381 vollostperc = (voltot1-volini1-vcumu1-
382 & volnestor)*100.d0/volini1
386 WRITE(
lu,*)
'TOTAL VOLUME LOST :',
387 & voltot1-volini1-vcumu1-volnestor
393 WRITE(
lu,*)
'MASS BALANCE FOR SEDIMENT CLASS :',i
394 WRITE(
lu,*)
'VOLUME THAT ENTERED THE DOMAIN PER CLASS ',
396 WRITE(
lu,*)
'SUM OF THE CUMULATED EVOLUTIONS PER CLASS ',
398 WRITE(
lu,*)
'BALANCE FLUXES AND EVOLUTIONS PER CLASS ',
399 & rmascl(i)-vcumucl(i)
401 WRITE(
lu,*)
'INITIAL VOLUME PER CLASS OVER ALL LAYERS ',
403 WRITE(
lu,*)
'FINAL VOLUME PER CLASS OVER ALL LAYERS ',
407 &
'DREDGED/DISPOSED VOLUME PER CLASS ',
409 IF(
volini(i).GT.0.d0)
THEN 410 vollostperc = (voltot(i)-
volini(i)-vcumucl(i)-
411 & volnestorcl(i))*100.d0/
volini(i)
415 WRITE(
lu,*)
'TOTAL VOLUME LOST PER CLASS OVER ALL LAYERS',
416 & voltot(i)-
volini(i)-vcumucl(i)-volnestorcl(i)
430 2000
FORMAT(1x,
'MASS-BALANCE (IN VOLUME, INCLUDING VOID): ')
431 2010
FORMAT(1x,
'SUM OF THE EVOLUTIONS : ',g16.7,
' M3')
432 2030
FORMAT(1x,
'SUM OF THE CUMULATED EVOLUTIONS : ',g16.7)
433 2031
FORMAT(1x,
'VOLUME THAT ENTERED THE DOMAIN : ',g16.7,
' M3' 434 & ,
' ( IF <0 EXIT )')
435 2032
FORMAT(1x,
'VOLUME DEPOSITED ON THE BOTTOM : ',g16.7,
' M3' 436 & ,
' ( IF <0 ERODED )')
437 2033
FORMAT(1x,
'LOST VOLUME : ',g16.7,
' M3' 438 & ,
' ( IF <0 EXIT )')
439 2110
FORMAT(1x,
'BOUNDARY ',1i3,
' BEDLOAD FLUX = ',g16.7,
440 &
' ( M3/S >0 = ENTERING )')
441 2111
FORMAT(1x,
'TOTAL BEDLOAD FLUX = ',g16.7,
442 &
' ( M3/S >0 = ENTERING )')
443 2112
FORMAT(1x,
'DEPOSIT ON BOTTOM = ',g16.7,
445 3010
FORMAT(1x,
'SUM OF THE EVOLUTIONS FOR THIS CLASS: ',g16.7)
446 3031
FORMAT(1x,
'VOLUME THAT ENTERED THE DOMAIN FOR THIS CLASS: ' 448 3034
FORMAT(1x,
'VOLUME DEPOSITED ON BOTTOM FOR THIS CLASS: '
type(bief_obj), target zr
type(bief_obj), target zf
integer, parameter nsiclm
double precision, dimension(nsiclm) volini
subroutine bilan_sisyphe(E, ESOMT, T1, VCUMU, DT, NPTFR, INFO, ZFCL_C, ZFCL_S, ZFCL_MS, NSICLA, VOLTOT, NUMLIQ, NFRLIQ, FLBCLA, LT, NIT, NPOIN, VOLU2D, CSF_SABLE, MASDEP, MASDEPT, CHARR, SUSP, SLIDE)
double precision function p_dsum(MYPART)
subroutine os(OP, X, Y, Z, C, IOPT, INFINI, ZERO)