The TELEMAC-MASCARET system  trunk
bedload_engel_cc.f
Go to the documentation of this file.
1 ! ***************************
2  SUBROUTINE bedload_engel_cc
3 ! ***************************
4 !
5  &(tetap,cf,npoin,grav,dm,dens,teta,qsc)
6 !
7 !***********************************************************************
8 ! SISYPHE V7P3 10/01/2018
9 !***********************************************************************
10 !
11 !brief ENGELUND-HANSEN BEDLOAD TRANSPORT FORMULATION.
12 !
13 !warning FORMULATION IS DIFFERENT FROM THAT IN BEDLOAD_ENGEL
14 !
15 !history E. PELTIER; C. LENORMANT; J.-M. HERVOUET
16 !+ 11/09/1995
17 !+ V5P1
18 !+
19 !
20 !history C.VILLARET
21 !+ **/11/2003
22 !+ V5P4
23 !+
24 !
25 !history J-M HERVOUET
26 !+ 11/07/2007
27 !+ V5P8
28 !+ DELETED OS REFERENCES
29 !
30 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
31 !+ 13/07/2010
32 !+ V6P0
33 !+ Translation of French comments within the FORTRAN sources into
34 !+ English comments
35 !
36 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
37 !+ 21/08/2010
38 !+ V6P0
39 !+ Creation of DOXYGEN tags for automated documentation and
40 !+ cross-referencing of the FORTRAN sources
41 !
42 !history C.VILLARET (EDF-LNHE), P.TASSI (EDF-LNHE)
43 !+ 19/07/2011
44 !+ V6P1
45 !+ Name of variables
46 !+
47 !history P.TASSI (EDF-LNHE)
48 !+ 10/01/2018
49 !+ V7P3
50 !+ Correction of the coefficient of the Engelund and Hansen formula
51 !+ (thanks to Alexander Breugem)
52 !
53 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
54 !| CF |-->| QUADRATIC FRICTION COEFFICIENT
55 !| DENS |-->| RELATIVE DENSITY
56 !| DM |-->| SEDIMENT GRAIN DIAMETER
57 !| GRAV |-->| ACCELERATION OF GRAVITY
58 !| NPOIN |-->| NUMBER OF POINTS
59 !| QSC |<->| BED LOAD TRANSPORT
60 !| TETA |<->| DIMENSIONLESS BED SHEAR STRESS
61 !| TETAP |-->| ADIMENSIONAL SKIN FRICTION
62 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
63 !
64  USE interface_sisyphe,ex_bedload_engel_cc => bedload_engel_cc
65  USE bief
66 !
68  IMPLICIT NONE
69 !
70 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
71 !
72  TYPE(bief_obj), INTENT(IN) :: TETAP,CF
73  INTEGER, INTENT(IN) :: NPOIN
74  DOUBLE PRECISION, INTENT(IN) :: GRAV, DM, DENS
75  TYPE(bief_obj), INTENT(INOUT) :: TETA! WORK ARRAY T1
76  TYPE(bief_obj), INTENT(INOUT) :: QSC
77 !
78 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
79 !
80  INTEGER :: I
81  DOUBLE PRECISION :: CENGEL
82 !
83  INTRINSIC sqrt
84 !
85 !======================================================================!
86 !======================================================================!
87 ! PROGRAM !
88 !======================================================================!
89 !======================================================================!
90 !
91 ! ADIMENSIONAL SKIN STRESS: TETAP
92 !
93 ! ADIMENSIONAL TOTAL STRESS
94 !
95  DO i = 1, npoin
96  IF(tetap%R(i) <= 0.06d0) THEN
97  teta%R(i) = 0.d0
98  ELSEIF(tetap%R(i) < 0.384d0) THEN
99  teta%R(i) = sqrt( 2.5d0 * (tetap%R(i) - 0.06d0))
100  ELSEIF(tetap%R(i) < 1.080d0) THEN
101  teta%R(i) = 1.066d0 * tetap%R(i)**0.176d0
102  ELSE
103  teta%R(i) = tetap%R(i)
104  ENDIF
105  ENDDO
106 !
107 ! BEDLOAD TRANSPORT
108 !
109  cengel = 0.05d0*sqrt(dens*grav*dm**3)
110  DO i=1,npoin
111  qsc%R(i)=cengel*sqrt(teta%R(i)**5)/max(cf%R(i),1.d-6)
112  ENDDO
113 !
114 !-----------------------------------------------------------------------
115 !
116  RETURN
117  END
subroutine bedload_engel_cc(TETAP, CF, NPOIN, GRAV, DM, DENS, TETA, QSC)
Definition: bief.f:3