5 &(slvtra,hn,hn_tel,mu,tob,fdm,fd90,ksp,ksr,ks,volu2d,v2dpar,unsv2d,
6 & afbor,bfbor,zf,licbor,ifamas,maskel,maskpt,u2d,v2d,nsicla,npoin,
7 & nptfr,ielmt,optdif,resol,lt,nit,optban,optadv,opdtra,
8 & kent,ksort,klog,kneu,kdir,kddl,debug,
9 & dts,csf_sable,zero,grav,xkx,xky,karman,
10 & xmve,xmvs,vce,hmin,xwc,vitcd,partheniades,bilma,msk,
11 & charr,imp_inflow_c,mesh,zf_s,cs,cst,ctild,cbor,disp,
12 & it1,it2,it3,it4,tb,t1,t2,t3,t4,t8,t9,t10,t11,t12,t14,
13 & te1,clt,te2,te3,s,am1_s,am2_s,mbor,elay,limdif,
14 & masktr, teta_susp, ac, mased0, masini, masten,
15 & mastou, es,es_sable, es_vase,avail, entets, pass, zfcl_s,
16 & hprop, fludpt, fludp, fluer, disp_c, kx, ky,
17 & kz, uconv, vconv,qsxs, qsys, qsclxs, qsclys, qscl_s,
18 & qs_s,qs_c,cstaeq,csratio,icq,mastcp,masfin,masdept,masdep,massou,
19 & corr_conv,zref,sedco,visc_tel,code,
20 & dift,dm1,uconv_tel,vconv_tel,zconv,solsys,flbor_tel,flbor_sis,
21 & flbortra,numliq,nfrliq,mixte,nomblay,conc,
22 & toce_vase,toce_sable,fluer_vase,toce_mixte,ms_sable,ms_vase,
287 type(slvcfg),
INTENT(INOUT) :: slvtra
288 type(bief_obj),
INTENT(IN) :: hn,hn_tel,mu,tob
289 type(bief_obj),
INTENT(IN) :: ksp,ksr,ks
290 type(bief_obj),
INTENT(IN) :: volu2d,afbor,bfbor,zf
291 type(bief_obj),
INTENT(IN) :: v2dpar,unsv2d
292 type(bief_obj),
INTENT(IN) :: licbor, ifamas, maskel, maskpt
293 type(bief_obj),
INTENT(IN) :: u2d, v2d,dm1,zconv,flbor_tel
294 INTEGER,
INTENT(IN) :: NSICLA, NPOIN, NPTFR, IELMT
295 INTEGER,
INTENT(IN) :: OPTDIF, RESOL,LT, NIT
296 INTEGER,
INTENT(IN) :: OPTBAN,OPTADV,OPDTRA,NFRLIQ
297 INTEGER,
INTENT(IN) :: KENT, KSORT, KLOG, KNEU
298 INTEGER,
INTENT(IN) :: KDIR,KDDL
299 INTEGER,
INTENT(IN) :: DEBUG,SOLSYS,NOMBLAY,MAXADV
300 INTEGER,
INTENT(IN) :: NUMLIQ(nptfr)
301 DOUBLE PRECISION,
INTENT(IN) :: DTS,CSF_SABLE
302 DOUBLE PRECISION,
INTENT(IN) :: ZERO,GRAV
303 DOUBLE PRECISION,
INTENT(IN) :: FDM(nsicla),FD90(nsicla)
304 DOUBLE PRECISION,
INTENT(IN) :: XKX,XKY,KARMAN,VCE
305 DOUBLE PRECISION,
INTENT(IN) :: XMVE, XMVS, HMIN, XWC(nsicla)
306 DOUBLE PRECISION,
INTENT(IN) :: VITCD
307 DOUBLE PRECISION,
INTENT(IN) :: PARTHENIADES
308 LOGICAL,
INTENT(IN) :: BILMA, MSK, CHARR
309 LOGICAL,
INTENT(IN) :: IMP_INFLOW_C
310 LOGICAL,
INTENT(IN) :: SEDCO(nsicla),MIXTE
311 TYPE(bief_mesh),
INTENT(INOUT) :: MESH
312 type(bief_obj),
INTENT(INOUT) :: zf_s,cs,cst,ctild,cbor
313 type(bief_obj),
INTENT(INOUT) :: disp,it1,it2,it3,it4,tb
314 type(bief_obj),
INTENT(INOUT) :: t1,t2,t3,t4,t8
315 type(bief_obj),
INTENT(INOUT) :: t9,t10,t11,t12,t14,te1,clt
316 type(bief_obj),
INTENT(INOUT) :: te2,te3,s,am1_s,am2_s,mbor
317 type(bief_obj),
INTENT(INOUT) :: elay, limdif,flbortra
318 type(bief_obj),
INTENT(INOUT) :: masktr
319 DOUBLE PRECISION,
INTENT(INOUT) :: TETA_SUSP, AC(nsicla)
320 DOUBLE PRECISION,
INTENT(INOUT) :: MASED0(nsicla), MASINI(nsicla)
321 DOUBLE PRECISION,
INTENT(INOUT) :: MASTEN(nsicla), MASTOU(nsicla)
322 DOUBLE PRECISION,
INTENT(INOUT) :: ES(npoin,nomblay)
323 DOUBLE PRECISION,
INTENT(INOUT) :: ES_SABLE(npoin,nomblay)
324 DOUBLE PRECISION,
INTENT(INOUT) :: ES_VASE(npoin,nomblay)
325 DOUBLE PRECISION,
INTENT(INOUT) :: CONC(npoin,nomblay)
326 DOUBLE PRECISION,
INTENT(INOUT) :: TOCE_VASE(nomblay)
327 DOUBLE PRECISION,
INTENT(INOUT) :: TOCE_SABLE
328 DOUBLE PRECISION,
INTENT(INOUT) :: AVAIL(npoin,nomblay,nsicla)
329 LOGICAL,
INTENT(INOUT) :: ENTETS, PASS
330 type(bief_obj),
INTENT(INOUT) :: zfcl_s,hprop,zref
331 type(bief_obj),
INTENT(INOUT) :: fludpt,fludp,fluer
332 type(bief_obj),
INTENT(INOUT) :: disp_c,kx,ky,kz,uconv
333 type(bief_obj),
INTENT(INOUT) :: vconv,flbor_sis
334 type(bief_obj),
INTENT(INOUT) :: qsxs,qsys,qsclxs,qsclys
335 type(bief_obj),
INTENT(INOUT) :: qscl_s,qs_s,cstaeq,csratio
336 type(bief_obj),
INTENT(INOUT) :: fluer_vase,toce_mixte
337 type(bief_obj),
INTENT(INOUT) :: ms_sable,ms_vase
338 type(bief_obj),
INTENT(IN) :: qs_c,visc_tel
339 type(bief_obj),
INTENT(IN) :: uconv_tel,vconv_tel
340 DOUBLE PRECISION,
INTENT(OUT) :: MASTCP(nsicla),MASFIN(nsicla)
341 DOUBLE PRECISION,
INTENT(OUT) :: MASDEPT(nsicla),MASDEP(nsicla)
342 DOUBLE PRECISION,
INTENT(OUT) :: MASSOU
343 INTEGER,
INTENT(IN) :: ICQ,DIRFLU
344 LOGICAL,
INTENT (IN) :: CORR_CONV,DIFT
345 CHARACTER(LEN=24),
INTENT(IN) :: CODE
367 CALL os(
'X=YZ ',x=t1,y=volu2d,z=cs%ADR(i)%P)
369 IF(code(1:7).EQ.
'TELEMAC')
THEN 372 mased0(i) =
dots(t1,hn_tel)
376 mased0(i) =
dots(t1,hn)
378 IF(ncsize.GT.1) mased0(i)=
p_dsum(mased0(i))
379 masini(i) = mased0(i)
383 WRITE(
lu,2) i, mased0(i)
388 002
FORMAT(1x,
'INITIAL QUANTITY IN SUSPENSION FOR CLASS ',
389 & i2,
' : ', g16.7,
' M3')
399 IF (debug > 0)
WRITE(
lu,*)
'SUSPENSION_DISPERSION' 401 & (tob,xmve,hn,optdif,npoin,xkx,xky,t1,t2,t3,kx,ky,kz,disp,
402 & u2d,v2d,visc_tel,code)
403 IF (debug > 0)
WRITE(
lu,*)
'END_SUSPENSION_DISPERSION' 409 IF(code(1:7).EQ.
'TELEMAC')
THEN 410 CALL os(
'X=Y ', x=hprop, y=hn_tel)
412 CALL os(
'X=Y ', x=hprop, y=hn)
415 CALL os(
'X=0 ', x=zfcl_s%ADR(i)%P)
416 IF(debug > 0)
WRITE(
lu,*)
417 &
'SUSPENSION_COMPUTATION : ',i,
'/',nsicla
419 &vconv,mu,tob,fdm(i),fd90(i),ksp,ksr,ks,elay,avail(1:npoin,1,i),
420 &afbor,bfbor,limdif,clt,maskel,masktr,maskpt,ifamas,npoin,ielmt,
421 &nptfr,i,lt,nit,resol,optban,kent,kddl,kdir,ksort,klog,kneu,
422 &optadv,opdtra,debug, csf_sable, teta_susp,dts,
423 &mased0(i),zero,xwc(i),karman,xmve,xmvs,vce,grav,hmin,vitcd,
424 &partheniades,entets,bilma,
425 &msk,charr,imp_inflow_c,mesh,zf,cs%ADR(i)%P,
426 &cst%ADR(i)%P,ctild%ADR(i)%P,cbor%ADR(i)%P,disp,it1,it2,
427 &it3,it4,tb,t1,t2,t3,t4,t8,t9,t10,t11,t12,t14,
428 &te1,te2,te3,s,am1_s,am2_s,mbor,masten(i),mastou(i),
429 &masini(i),ac(i),zfcl_s%ADR(i)%P,fludpt%ADR(i)%P,fludp%ADR(i)%P,
430 &fluer%ADR(i)%P, hprop,disp_c,cstaeq, csratio,
431 &masfin(i),masdept(i),masdep(i),massou,qs_c,icq,zref,
432 &corr_conv,u2d,v2d,sedco(i),dift,dm1,zconv,uconv_tel,
433 &vconv_tel,solsys,flbor_tel,flbor_sis,flbortra,code,volu2d,
434 &v2dpar,unsv2d,numliq,nfrliq,licbor,mixte,avail,nsicla,es,
435 &es_sable,es_vase,nomblay,conc,toce_vase,toce_sable,
436 &fluer_vase,toce_mixte,ms_sable%R,ms_vase%R,dirflu,
437 &qsclxs%ADR(i)%P,qsclys%ADR(i)%P,maxadv)
438 IF (debug > 0)
WRITE(
lu,*)
'END_SUSPENSION_COMPUTATION' 445 IF(sedco(1).OR.mixte)
THEN 449 es(i,j) = es_vase(i,j)
451 es(i,j)= es_vase(i,j) + es_sable(i,j)
452 IF(es(i,j).GT.1.d-04)
THEN 453 avail(i,j,1)= es_sable(i,j)/es(i,j)
454 avail(i,j,2)= es_vase(i,j)/es(i,j)
460 elay%R(i)=elay%R(i)+es(i,j)
469 IF (debug > 0)
WRITE(
lu,*)
'UPDATING_DATA' 473 CALL os(
'X=0 ', x=qsxs)
474 CALL os(
'X=0 ', x=qsys)
475 CALL os(
'X=0 ', x=zf_s)
478 CALL os(
'X=X+Y ', x=zf_s, y=zfcl_s%ADR(i)%P)
479 CALL os(
'X=X+Y ', x=qsxs, y=qsclxs%ADR(i)%P)
480 CALL os(
'X=X+Y ', x=qsys, y=qsclys%ADR(i)%P)
482 CALL os(
'X=N(Y,Z)', x=qscl_s, y=qsclxs, z=qsclys)
483 CALL os(
'X=N(Y,Z)', x=qs_s, y=qsxs, z=qsys)
484 IF (debug > 0)
WRITE(
lu,*)
'END_UPDATING_DATA'
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)
double precision function dots(X, Y)
double precision function p_dsum(MYPART)
subroutine suspension_main(SLVTRA, HN, HN_TEL, MU, TOB, FDM, FD90, KSP, KSR, KS, VOLU2D, V2DPAR, UNSV2D, AFBOR, BFBOR, ZF, LICBOR, IFAMAS, MASKEL, MASKPT, U2D, V2D, NSICLA, NPOIN, NPTFR, IELMT, OPTDIF, RESOL, LT, NIT, OPTBAN, OPTADV, OPDTRA, KENT, KSORT, KLOG, KNEU, KDIR, KDDL, DEBUG, DTS, CSF_SABLE, ZERO, GRAV, XKX, XKY, KARMAN, XMVE, XMVS, VCE, HMIN, XWC, VITCD, PARTHENIADES, BILMA, MSK, CHARR, IMP_INFLOW_C, MESH, ZF_S, CS, CST, CTILD, CBOR, DISP, IT1, IT2, IT3, IT4, TB, T1, T2, T3, T4, T8, T9, T10, T11, T12, T14, TE1, CLT, TE2, TE3, S, AM1_S, AM2_S, MBOR, ELAY, LIMDIF, MASKTR, TETA_SUSP, AC, MASED0, MASINI, MASTEN, MASTOU, ES, ES_SABLE, ES_VASE, AVAIL, ENTETS, PASS, ZFCL_S, HPROP, FLUDPT, FLUDP, FLUER, DISP_C, KX, KY, KZ, UCONV, VCONV, QSXS, QSYS, QSCLXS, QSCLYS, QSCL_S, QS_S, QS_C, CSTAEQ, CSRATIO, ICQ, MASTCP, MASFIN, MASDEPT, MASDEP, MASSOU, CORR_CONV, ZREF, SEDCO, VISC_TEL, CODE, DIFT, DM1, UCONV_TEL, VCONV_TEL, ZCONV, SOLSYS, FLBOR_TEL, FLBOR_SIS, FLBORTRA, NUMLIQ, NFRLIQ, MIXTE, NOMBLAY, CONC, TOCE_VASE, TOCE_SABLE, FLUER_VASE, TOCE_MIXTE, MS_SABLE, MS_VASE, DIRFLU, MAXADV)
subroutine os(OP, X, Y, Z, C, IOPT, INFINI, ZERO)
subroutine suspension_dispersion