The TELEMAC-MASCARET system  trunk
bedload_wilcock_crowe.f
Go to the documentation of this file.
1 ! ************************
2  SUBROUTINE bedload_wilcock_crowe
3 ! ************************
4 !
5  &(tob, mu, acladm, dm, ava, grav, xmve, xmvs, sanfra, qsc, ac, acp,
6  & slopeff,coefpn)
7 !
8 !***********************************************************************
9 ! SISYPHE V8P0 16/09/2018
10 !***********************************************************************
11 !
12 !brief WILCOCK AND CROWE NON-UNIFORM TRANSPORT FORMULATION.
13 !
14 !history F.CORDIER & P. TASSI (EDF-LNHE)
15 !+ 16/09/2018
16 !+ V8P0
17 !+ Implementation of the Wilcock and Crowe formula
18 !
19 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
20 !| AC |<->| CRITICAL SHIELDS PARAMETER
21 !| ACP |<->| MODIFIED SHIELDS PARAMETER
22 !| COEB |-->| POWER COEFF OF THE HIDING-EXPOSURE FUNCTION
23 !| COEFPN |<->| CORRECTION OF TRANSORT FOR SLOPING BED EFFECT
24 !| DENS |-->| RELATIVE DENSITY
25 !| DM |-->| SEDIMENT GRAIN DIAMETER
26 !| GRAV |-->| ACCELERATION OF GRAVITY
27 !| QSC |<->| BED LOAD TRANSPORT
28 !| SANFRA |-->| SAND FRACTION
29 !| SLOPEFF |-->| LOGICAL, SLOPING BED EFFECT OR NOT
30 !| TETAP |-->| ADIMENSIONAL SKIN FRICTION
31 !| TORATIO |-->| RATIO BETWEEN BED SHEAR STRESS AND TORI
32 !| TORI |-->| REFERENCE SHEAR STRESS OF THE I-TH SIZE SEDIMENT
33 !| TORM |-->| REFERENCE SHEAR STRESS OF THE MEDIAN SEDIMENT
34 !| WI |-->| DIMENSIONLESS TRANSPORT RATE OF WC-2003
35 !| WCC |-->| COEFFICIENT OF CALIBRATION
36 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
37 !
38  USE bief
40  & ex_bedload_wilcock_crowe => bedload_wilcock_crowe
42  IMPLICIT NONE
43 !
44 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
45 !
46  INTEGER, INTENT(IN) :: SLOPEFF
47  TYPE(bief_obj), INTENT(INOUT) :: QSC, COEFPN
48  DOUBLE PRECISION, INTENT(IN) :: XMVE, XMVS, GRAV, DM, AC,
49  & ava(qsc%DIM1)
50  DOUBLE PRECISION, INTENT(IN) :: SANFRA(qsc%dim1)
51  TYPE(bief_obj), INTENT(INOUT) :: ACP ! WORK ARRAY T1
52  TYPE(bief_obj), INTENT(IN) :: ACLADM
53  TYPE(bief_obj), INTENT(IN) :: TOB, MU
54 !
55 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
56 !
57  INTEGER I
58  DOUBLE PRECISION TORM, TORI, TORATIO, WI, COEFB, WCC
59 !
60 !======================================================================!
61 ! PROGRAM !
62 !=======================================================================
63 !
64  CALL cpstvc(qsc,acp)
65  CALL os('X=C ', x=acp, c=ac)
66 !
67 ! SLOPE EFFECT: SOULBY FORMULATION
68 !
69  IF(slopeff.EQ.2) THEN
70  CALL os('X=XY ', x=acp, y=coefpn)
71  ENDIF
72 !
73 ! COEFFICIENT TO CALIBRATE THE FORMULA (by default = 1.0)
74  wcc = 1.0d0
75 !
76  DO i=1,qsc%DIM1
77  torm = (0.021d0 + 0.015d0*exp(-20.d0*sanfra(i)))*
78  & (xmvs/xmve-1.d0)*xmve*grav*acladm%R(i)
79  coefb = 0.67d0/(1.0d0+exp(1.5d0-dm/acladm%R(i)))
80  tori = torm*((dm/acladm%R(i))**coefb)
81  toratio = tob%R(i)*mu%R(i)/tori
82  IF (toratio.LT.1.35d0) THEN
83  wi = 2.d-3*(toratio**7.5d0)
84  ELSE
85  wi = 14.d0*((1.d0-0.894d0/sqrt(toratio))**4.5d0)
86  ENDIF
87  qsc%R(i)=wcc*wi*ava(i)*((tob%R(i)*mu%R(i)
88  & /xmve)**1.5d0)/((xmvs/xmve-1.d0)*grav)
89 
90 ! IF VERY LOW TRANSPORT WE IMPOSE QB = 0 (TO AVOID NUMERICAL
91 ! ARTIFACTS)
92  IF (qsc%R(i).LT.1.d-13) THEN
93  qsc%R(i)=0.0d0
94  ENDIF
95  ENDDO
96 !
97 !=======================================================================
98 !
99  RETURN
100  END
101 !
subroutine bedload_wilcock_crowe(TOB, MU, ACLADM, DM, AVA, GRAV, XMVE, XMVS, SANFRA, QSC, AC, ACP, SLOPEFF, COEFPN)
subroutine cpstvc(X, Y)
Definition: cpstvc.f:7
subroutine os(OP, X, Y, Z, C, IOPT, INFINI, ZERO)
Definition: os.f:7
Definition: bief.f:3