The TELEMAC-MASCARET system  trunk
suspension_sandflow.f
Go to the documentation of this file.
1 ! ***************************************
2  SUBROUTINE suspension_sandflow
3 ! ***************************************
4 !
5  & (fdm, fd90, npoin, grav,
6  & xmve, xmvs, zero, cstaeq,hn,u2d,v2d,csratio)
7 !
8 !***********************************************************************
9 ! SISYPHE
10 !***********************************************************************
11 !
12 !brief Attempt to ensure SISYPHE computes C_a in the same way as
13 !+ HRW-SANDFLOW. Uses Soulsby-van Rijn formula to give a
14 !+ (depth-averaged) saturated concentration.
15 !
16 !history D.M.Kelly (HRW)
17 !+ 19/07/2012
18 !+ V6P1
19 !+ Original implementation
20 !
21 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
22 !| AC |<->|
23 !| FDM |-->| D50
24 !| GRAV |-->| ACCELERATION DUE TO GRAVITY
25 !| NPOIN |-->|
26 !| XMVE |-->| WATER DENSITY
27 !| XMVS |-->| SEDIMENT DENSITY
28 !| CSTAEQ |<->| EQUILIBRIUM SEDIMENT CONCENTRATION
29 !! HN |-->| WATER DEPTJ
30 !| U2D |-->| DEPTH AVERAGED VELOCITY IN X DIRECTION
31 !| V2D |-->| DEPTH AVERAGED VELOCITY IN Y DIRECTION
32 !| T2 |<->| WORK ARRAY
33 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
34 !
36  & ex_suspension_sandflow => suspension_sandflow
37  USE bief
40  IMPLICIT NONE
41 !
42  ! 2/ 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,FDM,FD90
48  TYPE(bief_obj), INTENT(INOUT) :: CSTAEQ
49 !
50  ! 3/ LOCAL VARIABLES
51  ! ------------------
52  INTEGER :: I
53  DOUBLE PRECISION :: DSTAR,DENS,COEFF,UCR,ASS,UB
54  DOUBLE PRECISION :: WORB,CD
55  DOUBLE PRECISION, PARAMETER :: Z0=0.006d0
56  INTRINSIC max
57 !======================================================================!
58 !======================================================================!
59 ! PROGRAMME !
60 !======================================================================!
61 !======================================================================!
62 
63  dens = (xmvs - xmve )/ xmve
64 
65  DO i=1,npoin
66  ! ***************** !
67  ! IV - EROSION FLUX ! (_IMP_)
68  ! ***************** !
69  dstar = fdm*(grav*dens/(vce*vce))**(1.d0/3.d0)
70  coeff = (dens*grav*fdm)**1.2d0
71  IF(dstar.LE. zero) THEN
72  WRITE(lu,*)'ERROR SUSPENSION_SANDFLOW:DSTAR = ',dstar,fdm,
73  & vce,grav
74  CALL plante(1)
75  stop
76  ENDIF
77  IF ((hn%R(i).GT.zero).AND.(coeff.GT.zero)) THEN
78 ! CRITICAL VELOCITIES:
79  IF (fdm<500.e-6) THEN
80 ! UCR = 0.19D0*(D50**0.1D0)*LOG10(4.0D0*(HN%R(I)/D50)) ! SANDFLOW
81  ucr = 0.19d0*(fdm**0.1d0)*log10(4.0d0*hn%R(i)/fd90) ! CORRECT
82  ELSE
83 ! UCR = 8.5D0*(D50**0.6D0)*LOG10(4.D0*(HN%R(I)/D50)) ! SANDFLOW
84  ucr = 8.5d0*(fdm**0.6d0)*log10(4.d0*hn%R(i)/fd90) ! CORRECT
85  END IF
86 ! WAVE ORBITAL VELOCITIES:
87  IF (houle) THEN
88  cd = (0.4d0/(log(max(hn%R(i),z0)/z0)-1.d0))**2.d0
89  worb = (0.018d0/cd)*(uw%R(i)**2.d0)
90  ELSE
91  worb = 0.d0
92  ENDIF
93  ass = (0.012d0*fdm*(dstar**(-0.6d0)))/coeff ! JUST FOR SUSPENDED LOAD (A LA SANDFLOW)
94  ub = (u2d%R(i)*u2d%R(i))+(v2d%R(i)*v2d%R(i))+worb ! VEL
95 ! NOTE WE MULTIPLY EQ. (136A) OF SOULSBY (1997) THROUGH BY (UH)^{-1} TO GET DIMENSIONLESS
96 ! DEPTH-AVERAGED SATURATION CONCENTRATION CA:
97  cstaeq%R(i)=ass*(max(0.d0,(sqrt(ub)-ucr))**2.4d0)/hn%R(i) !MISSING ORB VELS
98 ! DUMP SATURATED CONC OUTPUT TO SUPPLEMENTARY VARIABLE A (PRIVATE ARRAY WITH INDEX 1):
99  prive%ADR(1)%P%R(i)=cstaeq%R(i)
100  cstaeq%R(i)=cstaeq%R(i)*csratio%R(i)
101  ELSE
102  cstaeq%R(i) = 0.d0
103  ENDIF
104  ENDDO
105 !======================================================================!
106 !======================================================================!
107  RETURN
108  END SUBROUTINE suspension_sandflow
subroutine suspension_sandflow(FDM, FD90, NPOIN, GRAV, XMVE, XMVS, ZERO, CSTAEQ, HN, U2D, V2D, CSRATIO)
type(bief_obj), target prive
type(bief_obj), target uw
Definition: bief.f:3