5 &(trouve,debu,hiding,nsicla,npoin,
6 & t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,
7 & charr,qs_c,qsxc,qsyc,calfa_cl,salfa_cl,coefpn,slopeff,
8 & susp,qs_s,qs,qscl,qscl_c,qscl_s,qsclxs,qsclys,
9 & unorm,u2d,v2d,hn,cf,mu,tob,tobw,uw,tw,thetaw,fw,houle,
10 & avail,acladm,unladm,ksp,ksr,ks,
11 & icf,hidfac,xmvs,xmve,grav,vce,hmin,karman,
12 & zero,pi,ac,imp_inflow_c,zref,icq,cstaeq,csratio,
13 & cmax,cs,cs0,seccurrent,bijk,
14 & ielmt,fdm,xwc,fd90,sedco,vitce,partheniades,vitcd,
180 INTEGER,
INTENT(IN) :: NSICLA,NPOIN,TROUVE(*),ICQ
181 INTEGER,
INTENT(IN) :: ICF,HIDFAC,IELMT,SLOPEFF
182 LOGICAL,
INTENT(IN) :: CHARR,DEBU,SUSP,IMP_INFLOW_C
183 LOGICAL,
INTENT(IN) :: SECCURRENT,SEDCO(*)
184 LOGICAL,
INTENT(IN) :: HOULE
185 TYPE(bief_obj),
INTENT(IN) :: U2D,V2D,UNORM,HN,CF
186 TYPE(bief_obj),
INTENT(IN) :: MU,TOB,TOBW,UW,TW,THETAW,FW
187 TYPE(bief_obj),
INTENT(IN) :: ACLADM,UNLADM,KSP,KSR,KS
188 TYPE(bief_obj),
INTENT(INOUT) :: HIDING
189 TYPE(bief_obj),
INTENT(INOUT) :: QS_C, QSXC, QSYC
190 TYPE(bief_obj),
INTENT(INOUT) :: CALFA_CL,SALFA_CL
191 TYPE(bief_obj),
INTENT(INOUT) :: T1,T2,T3,T4,T5,T6,T7,T8
192 TYPE(bief_obj),
INTENT(INOUT) :: T9,T10,T11,T12
193 TYPE(bief_obj),
INTENT(INOUT) :: ZREF,CSTAEQ,CSRATIO
194 TYPE(bief_obj),
INTENT(INOUT) :: CS
195 TYPE(bief_obj),
INTENT(INOUT) :: QS_S,QS,QSCL_C,QSCL_S
196 TYPE(bief_obj),
INTENT(INOUT) :: COEFPN
197 TYPE(bief_obj),
INTENT(INOUT) :: QSCLXS,QSCLYS,QSCL
198 DOUBLE PRECISION,
INTENT(IN) :: XMVS,XMVE,GRAV,VCE
199 DOUBLE PRECISION,
INTENT(IN) :: HMIN,KARMAN,ZERO,PI
200 DOUBLE PRECISION,
INTENT(IN) :: PARTHENIADES,BIJK,XWC(nsicla)
201 DOUBLE PRECISION,
INTENT(IN) :: FD90(nsicla),CS0(nsicla)
202 DOUBLE PRECISION,
INTENT(IN) :: VITCE,VITCD
203 DOUBLE PRECISION,
INTENT(INOUT) :: AC(nsicla),CMAX,FDM(nsicla)
204 DOUBLE PRECISION,
INTENT(INOUT) :: AVAIL(npoin,
nomblay,nsicla)
206 TYPE(bief_obj),
INTENT(IN) :: U3D,V3D
207 CHARACTER(LEN=24),
INTENT(IN) :: CODE
212 DOUBLE PRECISION AAA,USTARP,U3DNORM
216 DOUBLE PRECISION SANFRA(npoin)
237 IF (fdm(i).LT.2d-3)
THEN 238 sanfra(k) = sanfra(k) + avail(k,1,i)
244 IF(code(1:9).EQ.
'TELEMAC3D')
THEN 246 u3dnorm=sqrt(u3d%R(i)*u3d%R(i)+v3d%R(i)*v3d%R(i))
247 IF(u3dnorm.GE.1.d-12)
THEN 248 calfa_cl%ADR(1)%P%R(i)=u3d%R(i)/u3dnorm
249 salfa_cl%ADR(1)%P%R(i)=v3d%R(i)/u3dnorm
251 calfa_cl%ADR(1)%P%R(i)=1.d0
252 salfa_cl%ADR(1)%P%R(i)=0.d0
256 CALL os(
'X=Y/Z ',x=calfa_cl%ADR(1)%P, y=u2d, z=unorm,
257 & c=0.d0, iopt=2, infini=1.d0, zero=1.d-12)
258 CALL os(
'X=Y/Z ',x=salfa_cl%ADR(1)%P, y=v2d, z=unorm,
259 & c=0.d0, iopt=2, infini=0.d0, zero=1.d-12)
263 CALL os(
'X=Y ', x=calfa_cl%ADR(i)%P,
264 & y=calfa_cl%ADR(1)%P)
265 CALL os(
'X=Y ', x=salfa_cl%ADR(i)%P,
266 & y=salfa_cl%ADR(1)%P)
272 CALL os(
'X=C ',x=coefpn,c=1.d0)
280 CALL os(
'X=C ',x=hiding,c=1.d0)
286 CALL os(
'X=0 ', x=qscl_c%ADR(i)%P)
290 & (u2d,v2d,unorm,hn,cf,mu,tob,tobw,uw,tw,thetaw,fw,
291 & acladm, unladm,ksp,ksr,avail(1:npoin,1,i),
292 & npoin,icf,hidfac,xmvs,xmve,
293 & fdm(i),grav,vce,hmin,xwc(i),fd90(i),karman,zero,
294 & pi,susp,ac(i),hiding,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,
295 & t11,t12,qscl_c%ADR(i)%P,qscl_s%ADR(i)%P,
296 & ielmt,seccurrent,slopeff,
297 & coefpn,calfa_cl%ADR(i)%P,salfa_cl%ADR(i)%P,
305 qs_c%R(j) = qs_c%R(j) + qscl_c%ADR(i)%P%R(j)
308 qsxc%R(j) = qsxc%R(j) + qscl_c%ADR(i)%P%R(j)
309 & *calfa_cl%ADR(i)%P%R(j)
310 qsyc%R(j) = qsyc%R(j) + qscl_c%ADR(i)%P%R(j)
311 & *salfa_cl%ADR(i)%P%R(j)
326 CALL os(
'X=Y ', x=zref, y=ksp)
327 ELSEIF(icq.EQ.2)
THEN 328 CALL os(
'X=Y ', x=zref, y=ksr)
329 ELSEIF(icq.EQ.3)
THEN 330 CALL os(
'X=CY ', x=zref, y=ks,c=0.5d0)
338 IF(trouve(22+i+(
nomblay+1)*nsicla).EQ.0) need_cs=.true.
343 IF(.NOT.debu.OR.need_cs)
THEN 350 IF(imp_inflow_c)
THEN 353 CALL os(
'X=CYZ ', x=t8, y=tob, z=mu, c=1.d0)
355 CALL os(
'X=CY ', x=t9, y=tob, c=1.d0/xmve)
356 CALL os(
'X=SQR(Y)', x=t9, y=t9)
362 IF(.NOT.sedco(i))
THEN 368 & grav, xmve, xmvs, ac(i), cstaeq )
369 ELSEIF(icq.EQ.2)
THEN 372 ELSEIF(icq.EQ.3)
THEN 374 & grav,xmve,xmvs,vce,zero,ac(i), cstaeq,zref)
375 ELSEIF(icq.EQ.4)
THEN 378 & grav,xmve,xmvs,zero,
386 & karman,zero,xwc(i),zref,t12)
389 cstaeq%R(j)=cstaeq%R(j)*avail(j,1,i)
392 CALL os(
'X=Y/Z ',x=cs%ADR(i)%P,y=cstaeq,z=t12)
403 CALL os(
'X=Y ', x=zref, y=ksp)
405 cmax = max(cmax,partheniades/xwc(i))
407 IF(vitce.GT.1.d-8.AND.vitcd.GT.1.d-8)
THEN 410 ustarp= sqrt(t8%R(j)/xmve)
412 & max(((ustarp/vitce)**2-1.d0),zero)
416 cs%ADR(i)%P%R(j) = aaa/xwc(i)
420 CALL os(
'X=0 ',x=cs%ADR(i)%P)
424 cs%ADR(i)%P%R(j)=cs%ADR(i)%P%R(j)*avail(j,1,i)
449 CALL os(
'X=YZ ',x=t11,y=u2d, z=hn)
450 CALL os(
'X=YZ ',x=t12,y=v2d, z=hn)
452 CALL os(
'X=YZ ',x=qsclxs%ADR(i)%P,y=cs%ADR(i)%P,z=t11)
453 CALL os(
'X=YZ ',x=qsclys%ADR(i)%P,y=cs%ADR(i)%P,z=t12)
455 CALL os(
'X=N(Y,Z) ',x=qscl_s%ADR(i)%P,
456 & y=qsclxs%ADR(i)%P,z=qsclys%ADR(i)%P)
462 qs_s%R(j) = qs_s%R(j) + qscl_s%ADR(i)%P%R(j)
473 WRITE(
lu,*)
'QSCL REINITIALISED IN INIT_TRANSPORT' 474 WRITE(
lu,*)
'FOR CLASS ',i
475 IF(charr.AND.susp)
THEN 476 CALL os(
'X=Y+Z ', x=qscl%ADR(i)%P,
477 & y=qscl_s%ADR(i)%P, z=qscl_c%ADR(i)%P)
479 CALL os(
'X=Y ',x=qscl%ADR(i)%P,y=qscl_c%ADR(i)%P)
481 CALL os(
'X=Y ',x=qscl%ADR(i)%P,y=qscl_s%ADR(i)%P)
487 WRITE(
lu,*)
'QS REINITIALISED IN INIT_TRANSPORT' 488 IF(charr.AND.susp)
THEN 489 CALL os(
'X=Y+Z ',x=qs,y=qs_c,z=qs_s)
491 CALL os(
'X=Y ',x=qs,y=qs_c)
493 CALL os(
'X=Y ',x=qs,y=qs_s)
subroutine suspension_sandflow(FDM, FD90, NPOIN, GRAV, XMVE, XMVS, ZERO, CSTAEQ, HN, U2D, V2D, CSRATIO)
subroutine suspension_vanrijn(FDM, TAUP, NPOIN, GRAV, XMVE, XMVS, VCE, ZERO, AC, CSTAEQ, ZREF)
subroutine bedload_formula(U2D, V2D, UCMOY, HN, CF, MU, TOB, TOBW, UW, TW, THETAW, FW, ACLADM, UNLADM, KSP, KSR, AVA, NPOIN, ICF, HIDFAC, XMVS, XMVE, DM, GRAV, VCE, HMIN, XWC, D90, KARMAN, ZERO, PI, SUSP, AC, HIDING, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, TETAP, QSC, QSS, IELMT, SECCURRENT, SLOPEFF, COEFPN, CALFA, SALFA, BIJK, HOULE, SANFRA)
type(bief_obj), target mpm_aray
subroutine suspension_rouse(USTAR, HN, NPOIN, KARMAN, ZERO, XWC, ZREF, T2)
subroutine condim_susp(CS, CS0, NSICLA)
subroutine suspension_bijker(TAUP, NPOIN, CHARR, QSC, ZREF, ZERO, CSTAEQ, XMVE)
subroutine os(OP, X, Y, Z, C, IOPT, INFINI, ZERO)
subroutine init_transport(TROUVE, DEBU, HIDING, NSICLA, NPOIN, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, CHARR, QS_C, QSXC, QSYC, CALFA_CL, SALFA_CL, COEFPN, SLOPEFF, SUSP, QS_S, QS, QSCL, QSCL_C, QSCL_S, QSCLXS, QSCLYS, UNORM, U2D, V2D, HN, CF, MU, TOB, TOBW, UW, TW, THETAW, FW, HOULE, AVAIL, ACLADM, UNLADM, KSP, KSR, KS, ICF, HIDFAC, XMVS, XMVE, GRAV, VCE, HMIN, KARMAN, ZERO, PI, AC, IMP_INFLOW_C, ZREF, ICQ, CSTAEQ, CSRATIO, CMAX, CS, CS0, SECCURRENT, BIJK, IELMT, FDM, XWC, FD90, SEDCO, VITCE, PARTHENIADES, VITCD, U3D, V3D, CODE)
double precision, target mpm
subroutine suspension_fredsoe(DM, TAUP, NPOIN, GRAV, XMVE, XMVS, AC, CSTAEQ)