5 &(slvtra, hn,hn_tel,uconv, vconv, mu,tob,fdm, fd90, ksp,ksr,ks,
6 & elay, ava, afbor, bfbor, limdif, clt, maskel, masktr,
7 & maskpt, ifamas, npoin, ielm, nptfr, itra, lt, nit, resol,
8 & optban, kent,kddl,kdir,ksort,klog,kneu,
9 & optadv, opdtra, debug,csf_sable,
10 & teta_susp, dt, mased0, zero, xwc, karman, xmve, xmvs, vce,grav,
11 & hmin, vitcd, partheniades, entets,
12 & bilma,msk,charr,imp_inflow_c,mesh,zf,cs,
13 & cst,ctild,cbor,disp,it1,it2,it3,it4,tb,t1,t2,t3,
14 & t4, t8, t9, t10, t11, t12, t14, te1, te2, te3, s,
15 & am1_s, am2_s, mbor,masten, mastou, masini, ac,
16 & zfcl_s, fludpt, fludp, fluer, hprop, disp_c, cstaeq, csratio,
17 & masfin, masdept, masdep, massou,qs_c,icq, zref,
18 & corr_conv,u2d,v2d,sedco,dift,dm1,zconv,uconv_tel,vconv_tel,
19 & solsys,flbor_tel,flbor_sis,flbortra,code,
20 & volu2d,v2dpar,unsv2d,numliq,nfrliq,licbor,mixte,avail,nsicla,
21 & es,es_sable,es_vase,nomblay,conc,toce_vase,toce_sable,
22 & fluer_vase,toce_mixte,ms_sable,ms_vase,dirflu,qsclxs,qsclys,
338 type(slvcfg),
INTENT(INOUT) :: slvtra
339 type(bief_obj),
INTENT(IN) :: zf,volu2d,v2dpar,unsv2d
340 type(bief_obj),
INTENT(IN),
TARGET :: hn,hn_tel
341 type(bief_obj),
INTENT(INOUT) :: uconv,vconv
342 type(bief_obj),
INTENT(IN) :: mu,ksp,ksr,ks
343 type(bief_obj),
INTENT(IN) :: tob,licbor
344 type(bief_obj),
INTENT(INOUT) :: elay
345 type(bief_obj),
INTENT(IN) :: afbor,bfbor
346 type(bief_obj),
INTENT(IN) :: maskel,maskpt,ifamas
347 type(bief_obj),
INTENT(INOUT) :: masktr,limdif,clt
348 INTEGER,
INTENT(IN) :: NPOIN,IELM,NPTFR,ITRA,LT
349 INTEGER,
INTENT(IN) :: NIT,RESOL,OPTBAN,KENT,KDDL
350 INTEGER,
INTENT(IN) :: KDIR,OPTADV,OPDTRA,SOLSYS
351 INTEGER,
INTENT(IN) :: KSORT,KLOG,KNEU
352 INTEGER,
INTENT(IN) :: NFRLIQ,NSICLA,NOMBLAY
353 INTEGER,
INTENT(IN) :: DEBUG,DIRFLU,MAXADV
354 INTEGER,
INTENT(IN) :: NUMLIQ(*)
355 DOUBLE PRECISION,
INTENT(IN) :: TETA_SUSP, DT, MASED0
356 DOUBLE PRECISION,
INTENT(IN) :: XWC,FDM,FD90
357 DOUBLE PRECISION,
INTENT(IN) :: CSF_SABLE,AVA(npoin)
358 DOUBLE PRECISION,
INTENT(IN) :: KARMAN, XMVE, XMVS,VCE, GRAV
359 DOUBLE PRECISION,
INTENT(IN) :: VITCD,PARTHENIADES,HMIN
360 LOGICAL,
INTENT(IN) :: ENTETS,BILMA,MSK,SEDCO
361 LOGICAL,
INTENT(IN) :: CHARR, IMP_INFLOW_C,CORR_CONV
362 LOGICAL,
INTENT(IN) :: DIFT,MIXTE
363 type(bief_mesh),
INTENT(INOUT) :: mesh
364 type(bief_obj),
INTENT(INOUT) :: cs,cst,ctild,cbor,flbor_sis
365 type(bief_obj),
INTENT(INOUT) :: disp,it1,it2,it3,it4,tb
366 type(bief_obj),
INTENT(INOUT) :: t2, t3, t4, t8
367 type(bief_obj),
INTENT(INOUT),
TARGET :: t1
368 type(bief_obj),
INTENT(INOUT) :: t9, t10, t11, t12, t14, te1
369 type(bief_obj),
INTENT(INOUT) :: te2, te3, s, am1_s, am2_s
370 type(bief_obj),
INTENT(INOUT) :: mbor,zref
371 DOUBLE PRECISION,
INTENT(INOUT) :: MASTEN, MASTOU, MASINI, AC
372 type(bief_obj),
INTENT(INOUT) :: zfcl_s
373 type(bief_obj),
INTENT(IN) :: uconv_tel,vconv_tel
374 type(bief_obj),
INTENT(INOUT) :: fludpt,fludp,fluer,flbortra
375 type(bief_obj),
INTENT(INOUT) :: hprop, disp_c, cstaeq,csratio
376 type(bief_obj),
INTENT(INOUT) :: fluer_vase,toce_mixte
377 type(bief_obj),
INTENT(INOUT) :: qsclxs,qsclys
378 DOUBLE PRECISION,
INTENT(INOUT) :: MS_SABLE(*)
379 DOUBLE PRECISION,
INTENT(INOUT) :: MS_VASE(*)
380 DOUBLE PRECISION,
INTENT(INOUT) :: ES_SABLE(*)
381 DOUBLE PRECISION,
INTENT(INOUT) :: ES_VASE(*)
382 DOUBLE PRECISION,
INTENT(INOUT) :: MASFIN,MASDEPT,MASDEP
383 DOUBLE PRECISION,
INTENT(IN) :: ZERO
384 DOUBLE PRECISION,
INTENT(INOUT) :: MASSOU
385 DOUBLE PRECISION,
INTENT(INOUT) :: AVAIL(npoin,nomblay,nsicla)
386 DOUBLE PRECISION,
INTENT(INOUT) :: ES(npoin,nomblay),TOCE_SABLE
387 DOUBLE PRECISION,
INTENT(INOUT) :: CONC(npoin,nomblay)
388 DOUBLE PRECISION,
INTENT(INOUT) :: TOCE_VASE(nomblay)
389 type(bief_obj),
INTENT(IN) :: qs_c,u2d,v2d,dm1,zconv
390 type(bief_obj),
INTENT(IN) :: flbor_tel
391 INTEGER,
INTENT(IN) :: ICQ
392 CHARACTER(LEN=24),
INTENT(IN) :: CODE
396 INTEGER :: I,K,SOLSYS_SIS,OPTVF,BID(1),RESOL_MOD,IELMT
397 DOUBLE PRECISION :: TETAH,AGGLOT
398 LOGICAL :: YASMI2,YAFLULIM
399 type(bief_obj),
POINTER :: hold
400 DOUBLE PRECISION,
POINTER,
DIMENSION(:) :: SAVE_UCONV,SAVE_VCONV
401 DOUBLE PRECISION :: MSTOT
402 DOUBLE PRECISION :: CONC_SABLE(npoin, nomblay)
405 INTEGER,
POINTER,
DIMENSION(:) :: GLOSEG1,GLOSEG2
416 gloseg1=>mesh%GLOSEG%I(1:mesh%GLOSEG%DIM1)
417 gloseg2=>mesh%GLOSEG%I(mesh%GLOSEG%DIM1+1:2*mesh%GLOSEG%DIM1)
428 IF(code(1:9).EQ.
'TELEMAC2D')
THEN 430 ELSEIF(lt.GT.1.AND.code(1:9).EQ.
'TELEMAC3D')
THEN 446 CALL os(
'X=Y ', x=zref, y=ksp)
447 ELSEIF(icq.EQ.2)
THEN 448 CALL os(
'X=Y ', x=zref, y=ksr)
449 ELSEIF(icq.EQ.3)
THEN 450 CALL os(
'X=CY ', x=zref, y=ks,c=0.5d0)
451 ELSEIF(icq.EQ.4)
THEN 452 CALL os(
'X=CY ', x=zref, y=ks,c=0.5d0)
455 201
FORMAT(1x,
'SUSPENSION_COMPUTATION:',/,1x,
456 &
'REFERENCE CONCENTRATION FORMULA',/,1x,
457 &
'UNEXPECTED VALUE:',1i6)
480 IF(corr_conv.AND.(.NOT.sedco))
THEN 484 & uconv,vconv,karman,zero,xwc,t12,resol,
485 & gloseg1,gloseg2,mesh%NSEG,
flulim,
486 & yaflulim,solsys_sis,solsys,
487 & uconv_tel,vconv_tel)
508 IF(solsys_sis.EQ.1)
THEN 529 CALL os(
'X=CYZ ', x= t4, y= tob, z= mu, c=1.d0)
530 CALL os(
'X=+(Y,C)', x=t4, y=t4, c=zero)
536 IF (debug > 0)
WRITE(
lu,*)
'SUSPENSION_EROSION' 538 & xmvs,vce,grav,xwc,zero,
539 & zref,ac,fluer,cstaeq,qs_c,icq,u2d,v2d,
541 IF (debug > 0)
WRITE(
lu,*)
'END_SUSPENSION_EROSION' 546 fluer%R(i)=min(fluer%R(i),elay%R(i)*ava(i)/dt*csf_sable)
553 & partheniades,fluer,
554 & toce_vase,nomblay,dt,ms_vase)
556 IF(nomblay.EQ.1)
THEN 558 fluer%R(i)=min(fluer%R(i),ms_vase(i)/dt/xmvs)
564 mstot=mstot+ms_vase(i+(j-1)*npoin)
566 fluer%R(i)=min(fluer%R(i),mstot/dt/xmvs)
576 IF(debug > 0)
WRITE(
lu,*)
'SUSPENSION_FLUX_MIXTE' 579 & partheniades,fluer,fluer_vase,
580 & zref,ac,cstaeq,qs_c,icq,debug,
581 & avail,nsicla,es,toce_vase,
582 & toce_sable,nomblay,
583 & dt,toce_mixte%R,ms_sable,
585 IF (debug > 0)
WRITE(
lu,*)
'END_SUSPENSION_FLUX_MOY' 587 IF(sedco)
CALL os(
'X=Y ',x=fluer, y=fluer_vase)
599 IF (debug > 0)
WRITE(
lu,*)
'SUSPENSION_DEPOT' 601 & fdm,fd90,xmve,t1,t2,zref,fludpt,debug,sedco)
615 IF(resol_mod.EQ.1) resol_mod=2
616 IF (debug > 0)
WRITE(
lu,*)
'DIFFIN' 617 CALL diffin(masktr,limdif%I,licbor%I,clt%I,u2d%R,v2d%R,
618 & mesh%XNEBOR%R,mesh%YNEBOR%R,
620 & kent,ksort,klog,kneu,kdir,kddl,resol_mod,
621 & mesh%NELBOR%I,npoin,
625 & .false.,bid, cs,cbor,numliq,
626 & mesh%IKLBOR%I,mesh%NELEB,mesh%NELEBX)
627 IF (debug > 0)
WRITE(
lu,*)
'END DIFFIN' 640 IF (debug > 0)
WRITE(
lu,*)
'IMP_INFLOW_C' 641 IF(imp_inflow_c)
THEN 644 IF(clt%I(k).EQ.kent)
THEN 647 cbor%R(k) = cstaeq%R(i)/t2%R(i)
648 IF(mixte) cbor%R(k) = fluer%R(i)/t2%R(i)/xwc
650 cbor%R(k) = fluer%R(i)/xwc
655 fluer%R(i)=fludpt%R(i)*cs%R(i)
660 IF (debug > 0)
WRITE(
lu,*)
'FIN IMP_INFLOW_C' 667 IF (debug > 0)
WRITE(
lu,*)
'CHARAC' 668 CALL charac(cs,ctild,1,uconv,vconv,s,s,s,s,dt,ifamas,
670 & msk,am1_s%X,am1_s%D,am1_s%D,
671 & tb,it1%I,it2%I,it2%I,it3%I,it4%I,it2%I,
672 & mesh,mesh%NELEM,mesh%NELMAX,mesh%IKLE,mesh%SURDET,
673 & am2_s,t14,slvtra,1.d0,entets,3,unsv2d,1)
674 IF (debug > 0)
WRITE(
lu,*)
'END_CHARAC' 684 CALL os(
'X=XY ',x=fluer ,y=maskpt)
687 CALL os(
'X=-Y ',x=t9,y=fludpt)
688 CALL os(
'X=Y ',x=t11,y=fluer)
691 IF(hn%R(i).GT.hmin)
THEN 692 t11%R(i)=t11%R(i)/hn%R(i)
706 tetah = 1.d0 - teta_susp
718 IF(code(1:7).NE.
'TELEMAC'.OR.
719 & (code(1:9).EQ.
'TELEMAC3D'.AND.lt.EQ.1))
THEN 720 IF (debug > 0)
WRITE(
lu,*)
'VECTOR' 723 & 1.d0,hn ,hn,hn,uconv,vconv,vconv,
724 & mesh,.true.,masktr%ADR(5)%P)
727 IF (debug > 0)
WRITE(
lu,*)
'FIN VECTOR' 729 CALL os(
'X=Y ',x=flbor_sis,y=flbor_tel)
733 IF(corr_conv.AND..NOT.sedco)
THEN 734 CALL osbd(
'X=CXY ',flbor_sis,t12,t12,1.d0,mesh)
739 IF(code(1:7).EQ.
'TELEMAC')
THEN 744 t1%R(i)=max(hn_tel%R(i),hmin)
755 IF(debug > 0)
WRITE(
lu,*)
'APPEL DE CVDFTR' 758 & (cst, ctild, cs, t2,
760 & dift, resol, .true., hn, hold, hprop,
761 & uconv,vconv,dm1,zconv,solsys_sis,
763 & disp, disp_c, t11, t2, .false., t9, yasmi2,am1_s,am2_s,
764 & zf, cbor, afbor, bfbor, limdif, masktr, mesh,
765 & tb, t8, t12, t4, t10, te1, te2, te3,
766 & kdir,kddl,dt,entets,teta_susp,
768 & agglot,entets,.false.,optadv,
769 & 1, opdtra, optban, msk, maskel, maskpt, mbor, s,
771 & massou, 1, slvtra,flbor_sis,volu2d,v2dpar,unsv2d,
773 &
flulim,yaflulim,
flulim,.false.,dirflu,.false.,t8 ,0.d0,
779 IF(debug > 0)
WRITE(
lu,*)
'END_CVDFTR' 786 fludp%R(i)=fludpt%R(i)*cst%R(i)
795 CALL os(
'X=Y-Z ', x=zfcl_s, y=fludp, z=fluer)
796 CALL os(
'X=CX ', x=zfcl_s, c=dt/csf_sable)
804 & npoin,xmvs,t3,ms_sable,es_sable,
805 & conc_sable,nomblay)
809 & npoin,xmvs,t3,ms_vase,es_vase,
816 IF (debug > 0)
WRITE(
lu,*)
'SUSPENSION_LISTING' 818 & maskel,ielmt,dt,msk,t1)
819 IF(debug > 0)
WRITE(
lu,*)
'END_SUSPENSION_LISTING' 826 IF (debug > 0)
WRITE(
lu,*)
'SUSPENSION_BILAN_COH' 828 & (mesh,cst,hn,maskel,ielmt,itra,lt,nit,dt,xmvs,
829 & ms_vase,nomblay,npoin,
830 & massou,mased0,msk,entets,masten,mastou,
831 & masini,t1,t2,t3,masfin,masdept,masdep,agglot,volu2d,
832 & numliq,nfrliq,nptfr,flbortra,sedco)
833 IF(debug > 0)
WRITE(
lu,*)
'END_SUSPENSION_BILAN_COH' 837 IF (debug > 0)
WRITE(
lu,*)
'SUSPENSION_BILAN_COH' 839 & (mesh,cst,hn,maskel,ielmt,itra,lt,nit,dt,xmvs,
840 & ms_sable,nomblay,npoin,
841 & massou,mased0,msk,entets,masten,mastou,
842 & masini,t1,t2,t3,masfin,masdept,masdep,agglot,volu2d,
843 & numliq,nfrliq,nptfr,flbortra,sedco)
844 IF(debug > 0)
WRITE(
lu,*)
'END_SUSPENSION_BILAN_COH' 847 IF (debug > 0)
WRITE(
lu,*)
'SUSPENSION_BILAN' 849 & (mesh,cst,hn,zfcl_s,maskel,ielmt,itra,lt,nit,
850 & dt,csf_sable,massou,mased0,msk,entets,masten,mastou,
851 & masini,t2,t3,masfin,masdept,masdep,agglot,volu2d,
852 & numliq,nfrliq,nptfr,flbortra)
853 IF(debug > 0)
WRITE(
lu,*)
'END_SUSPENSION_BILAN' 859 CALL os(
'X=Y ', x=cs, y=cst)
863 CALL os(
'X=YZ ', x=t1, y=uconv, z=hn)
864 CALL os(
'X=YZ ', x=t2, y=vconv, z=hn)
865 CALL os(
'X=YZ ', x=qsclxs, y=cs, z=t1)
866 CALL os(
'X=YZ ', x=qsclys, y=cs, z=t2)
subroutine suspension_bilan_coh(MESH, CST, HN, MASKEL, IELMT, ITRA, LT, NIT, DT, XMVS, MS_VASE, NOMBLAY, NPOIN, MASSOU, MASED0, MSK, ENTET, MASTEN, MASTOU, MASINI, T1, T2, T3, MASFIN, MASDEPT, MASDEP, AGGLOT, VOLU2D, NUMLIQ, NFRLIQ, NPTFR, FLBORTRA, SEDCO)
subroutine suspension_conv(TOB, XMVE, KSR, NPOIN, ZREF, U2D, V2D, HN, UCONV, VCONV, KARMAN, ZERO, XWC, ALPHA, RESOL, GLOSEG1, GLOSEG2, NSEG, FLULIM, YAFLULIM, SOLSYS_SIS, SOLSYS, UCONV_TEL, VCONV_TEL)
type(bief_obj), target tb2
subroutine suspension_computation(SLVTRA, HN, HN_TEL, UCONV, VCONV, MU, TOB, FDM, FD90, KSP, KSR, KS, ELAY, AVA, AFBOR, BFBOR, LIMDIF, CLT, MASKEL, MASKTR, MASKPT, IFAMAS, NPOIN, IELM, NPTFR, ITRA, LT, NIT, RESOL, OPTBAN, KENT, KDDL, KDIR, KSORT, KLOG, KNEU, OPTADV, OPDTRA, DEBUG, CSF_SABLE, TETA_SUSP, DT, MASED0, ZERO, XWC, KARMAN, XMVE, XMVS, VCE, GRAV, HMIN, VITCD, PARTHENIADES, ENTETS, BILMA, MSK, CHARR, IMP_INFLOW_C, MESH, ZF, CS, CST, CTILD, CBOR, DISP, IT1, IT2, IT3, IT4, TB, T1, T2, T3, T4, T8, T9, T10, T11, T12, T14, TE1, TE2, TE3, S, AM1_S, AM2_S, MBOR, MASTEN, MASTOU, MASINI, AC, ZFCL_S, FLUDPT, FLUDP, FLUER, HPROP, DISP_C, CSTAEQ, CSRATIO, MASFIN, MASDEPT, MASDEP, MASSOU, QS_C, ICQ, ZREF, CORR_CONV, U2D, V2D, SEDCO, DIFT, DM1, ZCONV, UCONV_TEL, VCONV_TEL, SOLSYS, FLBOR_TEL, FLBOR_SIS, FLBORTRA, CODE, VOLU2D, V2DPAR, UNSV2D, NUMLIQ, NFRLIQ, LICBOR, MIXTE, AVAIL, NSICLA, ES, ES_SABLE, ES_VASE, NOMBLAY, CONC, TOCE_VASE, TOCE_SABLE, FLUER_VASE, TOCE_MIXTE, MS_SABLE, MS_VASE, DIRFLU, QSCLXS, QSCLYS, MAXADV)
subroutine suspension_listing
subroutine diffin(MASKTR, LIMTRA, LITBOR, CLT, U, V, XNEBOR, YNEBOR, NBOR, NPTFR, KENT, KSORT, KLOG, KNEU, KDIR, KDDL, ICONV, NELBOR, NPOIN, MSK, MASKEL, NFRLIQ, THOMFR, FRTYPE, TN, TBOR, NUMLIQ, IKLBOR, NELEB, NELEBX)
subroutine suspension_bilan(MESH, CST, HN, ZFCL_S, MASKEL, IELMT, ITRA, LT, NIT, DT, CSF, MASSOU, MASED0, MSK, ENTET, MASTEN, MASTOU, MASINI, T2, T3, MASFIN, MASDEPT, MASDEP, AGGLOT, VOLU2D, NUMLIQ, NFRLIQ, NPTFR, FLBORTRA)
integer function ielbor(IELM, I)
subroutine osbd(OP, X, Y, Z, C, MESH)
subroutine cvdftr(F, FTILD, FN, FSCEXP, DIFT, ICONVF, CONV, H, HN, HPROP, UCONV, VCONV, DM1, ZCONV, SOLSYS, VISC, VISC_S, SM, SMH, YASMH, SMI, YASMI, AM1, AM2, ZF, FBOR, AFBOR, BFBOR, LIMTRA, MASKTR, MESH, TB, T1, T2, T4, T10, TE1, TE2, TE3, KDIR, KDDL, DT, ENTET, TETAT, AGGLOT, INFOGT, BILAN, OPTADV, ISOUSI, OPDTRA, OPTBAN, MSK, MASKEL, MASKPT, MBOR, S, MASSOU, OPTSOU, SLVTRA, FLBOR, VOLU2D, V2DPAR, UNSV2D, OPTVF, FLBORTRA,
subroutine vector(VEC, OP, FORMUL, IELM1, XMUL, F, G, H, U, V, W, MESH, MSK, MASKEL, LEGO, ASSPAR)
subroutine suspension_erosion(TAUP, HN, FDM, FD90, AVA, NPOIN, CHARR, XMVE, XMVS, VCE, GRAV, XWC, ZERO, ZREF, AC, FLUER, CSTAEQ, QSC, ICQ, U2D, V2D, CSRATIO, DEBUG)
subroutine suspension_depot(TOB, HN, NPOIN, HMIN, XWC, VITCD, ZERO, KARMAN, FDM, FD90, XMVE, T1, T2, ZREF, FLUDPT, DEBUG, SEDCO)
subroutine suspension_erosion_coh(TAUP, NPOIN, XMVS, PARTHENIADES, FLUER, TOCE_VASE, NOMBLAY, DT, MS_VASE)
subroutine suspension_evol(ZFCL_S, FLUDP, FLUER, DT, NPOIN, XMVS, QFLUX, MS_VASE, ES_VASE, CONC, NOMBLAY)
subroutine os(OP, X, Y, Z, C, IOPT, INFINI, ZERO)
type(bief_obj), target flulim
subroutine charac(FN, FTILD, NOMB, UCONV, VCONV, WCONV, FRCONV, ZSTAR, FREQ, DT, IFAMAS, IELM, NPOIN2, NPLAN, JF, NF, MSK, SHP, SHZ, SHF, TB, ELT, ETA, FRE, IT3, ISUB, FREBUF, MESH, NELEM2, NELMAX2, IKLE2, SURDET2, AM1, RHS, SLV, AGGLO, LISTIN, NGAUSS, UNSV, OPTCHA, POST, PERIO, YA4D, SIGMA, STOCHA, VISC)
subroutine suspension_flux_mixte(TAUP, FDM, NPOIN, CHARR, XMVE, XMVS, VCE, GRAV, XWC, ZERO, PARTHENIADES, FLUER_SABLE, FLUER_VASE, ZREF, AC, CSTAEQ, QSC, ICQ, DEBUG, AVAIL, NSICLA, ES, TOCE_VASE, TOCE_SABLE, NOMBLAY, DT, TOCE_MIXTE, MS_SABLE, MS_VASE)