The TELEMAC-MASCARET system  trunk
suspension_sandflow_gaia.f
Go to the documentation of this file.
1 ! ***********************************
2  SUBROUTINE suspension_sandflow_gaia
3 ! ***********************************
4 !
5  & (dcla, npoin, grav, xmve, xmvs, zero, cstaeq, hn,
6  & u2d, v2d, csratio, ratio_toce)
7 !
8 !***********************************************************************
9 ! GAIA
10 !***********************************************************************
11 !
15 !
16 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
29 ! average concentration
32 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
33 !
34  USE interface_gaia,
35  & ex_suspension_sandflow => suspension_sandflow_gaia
36  USE bief
38  & nsand
40  IMPLICIT NONE
41 !
42 ! GLOBAL VARIABLES
43 ! -------------------
44  TYPE(bief_obj), INTENT(IN) :: HN,U2D,V2D,CSRATIO
45  INTEGER, INTENT(IN) :: NPOIN
46  DOUBLE PRECISION, INTENT(IN) :: GRAV, XMVE, XMVS
47  DOUBLE PRECISION, INTENT(IN) :: ZERO,DCLA
48  TYPE(bief_obj), INTENT(INOUT) :: CSTAEQ
49  TYPE(bief_obj), INTENT(IN) :: RATIO_TOCE
50 !
51 ! LOCAL VARIABLES
52 ! ------------------
53  INTEGER :: I
54  DOUBLE PRECISION :: DSTAR,DENS,COEFF,UCR,ASS,UB
55  DOUBLE PRECISION :: WORB, CD, URMS, FD90
56  DOUBLE PRECISION, PARAMETER :: Z0=0.006d0
57  INTRINSIC max
58 !======================================================================!
59 !======================================================================!
60 ! PROGRAMME !
61 !======================================================================!
62 !======================================================================!
63 ! VALUE OF FD90 OF SEDIMENT
64 ! WITH ONE SAND CLASS, IT IS USER SET
65 ! WITH MORE THAN ONE SAND CLASS, IT IS
66 ! CONSIDERED AS THE RATIO BETWEEN SKIN FRICTION AND MEAN
67 ! DIAMETER * D50
68  IF (nsand.EQ.1) THEN
69  fd90 = d90
70  ELSE
71  fd90=dcla*kspratio
72  ENDIF
73 !
74 !-----------------------------------------------------
75  dens = (xmvs - xmve )/ xmve
76 
77  DO i=1,npoin
78 ! *****************
79 ! IV - EROSION FLUX
80 ! *****************
81  dstar = dcla*(grav*dens/(vce*vce))**(1.d0/3.d0)
82  coeff = (dens*grav*dcla)**1.2d0
83  IF(dstar.LE. zero) THEN
84  WRITE(lu,*)'ERROR SUSPENSION_SANDFLOW_GAIA:DSTAR =',dstar,
85  & dcla,vce,grav
86  CALL plante(1)
87  stop
88  ENDIF
89  IF ((hn%R(i).GT.zero).AND.(coeff.GT.zero)) THEN
90 ! CRITICAL VELOCITIES:
91  IF (dcla<500.e-6) THEN
92 ! UCR = 0.19D0*(D50**0.1D0)*LOG10(4.0D0*(HN%R(I)/D50)) ! SANDFLOW
93  ucr = 0.19d0*(dcla**0.1d0)*log10(4.0d0*hn%R(i)/fd90) ! CORRECT
94  ELSE
95 ! UCR = 8.5D0*(D50**0.6D0)*LOG10(4.D0*(HN%R(I)/D50)) ! SANDFLOW
96  ucr = 8.5d0*(dcla**0.6d0)*log10(4.d0*hn%R(i)/fd90) ! CORRECT
97  END IF
98 !
99 ! TOCE IS MODIFIED IN TOCE_MIX : TOCE_MIX=TOCE_SAND*RATIO_TOCE
100 ! WE CAN APPLICATE RATIO**0.5 ON UCR
101 ! because To=rho*CD*U**2
102 ! (ratio_toce=1 if no mud)
103  ucr = ucr*sqrt(ratio_toce%R(i))
104 !
105 ! WAVE ORBITAL VELOCITIES:
106  IF (houle) THEN
107  cd = (0.4d0/(log(max(hn%R(i),z0)/z0)-1.d0))**2.d0
108  urms = uw%R(i)/dsqrt(2.d0)
109  worb = (0.018d0/cd)*(uw%R(i)**2.d0)
110  ELSE
111  worb = 0.d0
112  ENDIF
113  ass = (0.012d0*dcla*(dstar**(-0.6d0)))/coeff ! JUST FOR SUSPENDED LOAD (A LA SANDFLOW)
114  ub = (u2d%R(i)*u2d%R(i))+(v2d%R(i)*v2d%R(i))+worb ! VEL
115 ! NOTE WE MULTIPLY EQ. (136A) OF SOULSBY (1997) THROUGH BY (UH)^{-1} TO GET DIMENSIONLESS
116 ! DEPTH-AVERAGED SATURATION CONCENTRATION CA:
117  cstaeq%R(i)=ass*(max(0.d0,(sqrt(ub)-ucr))**2.4d0)/hn%R(i) !MISSING ORB VELS
118 ! DUMP SATURATED CONC OUTPUT TO SUPPLEMENTARY VARIABLE A (PRIVATE ARRAY WITH INDEX 1):
119  prive%ADR(1)%P%R(i)=cstaeq%R(i)
120 ! CSRATIO is equal to 1 if the Miles profile is not used
121  cstaeq%R(i)=cstaeq%R(i)*csratio%R(i)
122  ELSE
123  cstaeq%R(i) = 0.d0
124  ENDIF
125 !------------ in kg/m3
126  cstaeq%R(i) = xmvs*cstaeq%R(i)
127  ENDDO
128 !======================================================================!
129 !======================================================================!
130  RETURN
131  END SUBROUTINE suspension_sandflow_gaia
type(bief_obj), target uw
Orbital wave velocity.
subroutine suspension_sandflow_gaia(DCLA, NPOIN, GRAV, XMVE, XMVS, ZERO, CSTAEQ, HN, U2D, V2D, CSRATIO, RATIO_TOCE)
logical houle
Include wave effects.
double precision vce
Water viscosity: it is defined here because the viscosity set in TELEMAC2D or TELEMAC3D may not b the...
type(bief_obj), target prive
Block of private vectors.
double precision, target d90
Sediment diameter D90, for sand when only.
double precision, target kspratio
Ratio between skin friction and mean diameter.
Definition: bief.f:3