The TELEMAC-MASCARET system  trunk
bedload_hunz_meyer.f
Go to the documentation of this file.
1 ! *****************************
2  SUBROUTINE bedload_hunz_meyer
3 ! *****************************
4 !
5  & (tob, mu, acladm, unladm, npoin, dens, xmve, grav, dm, ac,
6  & tetap, ahunzi, acp, hiding, qsc)
7 !
8 !***********************************************************************
9 ! SISYPHE V6P1 21/07/2011
10 !***********************************************************************
11 !
12 !brief HUNZIKER BEDLOAD FORMULATION (1995)
13 !+
14 !+ (ADAPTED FROM MEYER-PETER FORMULATION).
15 !
16 !note **-1.5 AND **1.5 SHOULD BE OPTIMISED (JMH)
17 !
18 !history BUI MINH DUC
19 !+ **/01/2002
20 !+ V5P2
21 !+
22 !
23 !history C. VILLARET
24 !+ **/10/2003
25 !+ V5P4
26 !+
27 !
28 !history
29 !+
30 !+ V6P0
31 !+
32 !
33 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
34 !+ 13/07/2010
35 !+ V6P0
36 !+ Translation of French comments within the FORTRAN sources into
37 !+ English comments
38 !
39 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
40 !+ 21/08/2010
41 !+ V6P0
42 !+ Creation of DOXYGEN tags for automated documentation and
43 !+ cross-referencing of the FORTRAN sources
44 !
45 !history C.VILLARET (EDF-LNHE), P.TASSI (EDF-LNHE)
46 !+ 19/07/2011
47 !+ V6P1
48 !+ Name of variables
49 !+
50 !
51 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
52 !| AC |<->| CRITICAL SHIELDS PARAMETER
53 !| ACLADM |-->| MEAN DIAMETER OF SEDIMENT
54 !| ACP |<->| MODIFIED SHIELDS PARAMETER
55 !| AHUNZI |<->| COEFFICIENT OF HUNZIKER FORMULA
56 !| DENS |-->| RELATIVE DENSITY
57 !| DM |-->| SEDIMENT GRAIN DIAMETER
58 !| GRAV |-->| ACCELERATION OF GRAVITY
59 !| HIDING |-->| HIDING FACTOR CORRECTION
60 !| MU |<->| CORRECTION FACTOR FOR BED ROUGHNESS
61 !| NPOIN |-->| NUMBER OF POINTS
62 !| QSC |<->| BED LOAD TRANSPORT
63 !| TETAP |<->| DIMENSIONLESS BED SHEAR STRESS
64 !| TOB |<->| BED SHEAR STRESS (TOTAL FRICTION)
65 !| UNLADM |-->| MEAN DIAMETER OF ACTIVE STRATUM LAYER
66 !| XMVE |-->| FLUID DENSITY
67 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
68 !
70  & ex_bedload_hunz_meyer => bedload_hunz_meyer
71  USE bief
73  IMPLICIT NONE
74 !
75  ! 2/ GLOBAL VARIABLES
76  ! -------------------
77  TYPE(bief_obj), INTENT(IN) :: TOB, MU, ACLADM, UNLADM
78  INTEGER, INTENT(IN) :: NPOIN
79  DOUBLE PRECISION, INTENT(IN) :: DENS, XMVE, GRAV, DM, AC
80  TYPE(bief_obj), INTENT(INOUT) :: TETAP, AHUNZI ! WORK ARRAY T1, T2
81  TYPE(bief_obj), INTENT(INOUT) :: ACP ! WORK ARRAY T3
82  TYPE(bief_obj), INTENT(INOUT) :: HIDING, QSC
83 !
84  ! 3/ LOCAL VARIABLES
85  ! ------------------
86  INTEGER :: I
87  DOUBLE PRECISION :: C1, C2
88 !======================================================================!
89 !======================================================================!
90 ! PROGRAM !
91 !======================================================================!
92 !======================================================================!
93  ! ************************************* !
94  ! I - ADIMENSIONAL SKIN STRESS !
95  ! ************************************* !
96  c1 = 1.d0/(dens*xmve*grav*dm)
97  c2 = 5.d0*sqrt(grav*dens*dm**3)
98  CALL os('X=CYZ ', x=tetap, y=tob, z=mu, c=c1)
99 !
100  CALL os('X=+(Y,C)', x=tetap , y=tetap, c= 1.d-02 )
101 !
102  CALL os('X=Y**C ', x=ahunzi, y=tetap, c=-1.5d0 )
103  CALL os('X=CX ', x=ahunzi, c= 0.011d0)
104  CALL os('X=X+C ', x=ahunzi, c=-0.3d0 )
105 !
106 ! BEWARE: AHUNZI CAN BECOME SO LARGE THAT THE HIDING FACTOR BECOMES
107 ! INFINITE; HUNZIKER HIMSELF SUGGESTS THAT IT BE CAPPED TO 2.3.
108 ! THIS INITIALLY ADOPTS A LIMIT OF APPROXIMATELY 10.
109 ! (WHICH IS APPARENT IN TETAP BEING SET TO VALUES .GE. 0.01)
110 !
111 ! TODO: REMARK BY JMH: I WOULD STRONGLY RECOMMEND A SINGLE LOOP
112 ! WITH THE WHOLE FORMULA, INSTEAD OF PILING
113 ! UP CALLS TO OS
114 !
115  DO i = 1, npoin
116  hiding%R(i) = (dm/acladm%R(i))**(-ahunzi%R(i))
117  ENDDO
118  ! ************************************************* !
119  ! IV - CORRECTS THE ADIMENSIONAL CRITICAL STRESS !
120  ! ************************************************* !
121  CALL os('X=Y/Z ', x=acp, y=unladm, z=acladm)
122  CALL os('X=Y**C ', x=acp, y=acp , c=0.33d0)
123  CALL os('X=CX ', x=acp, c=ac)
124  ! ********************* !
125  ! V - TRANSPORT RATE !
126  ! ********************* !
127  CALL os('X=Y-Z ', x=qsc, y=tetap , z=acp )
128  CALL os('X=+(Y,C)', x=qsc, y=qsc , c=0.d0)
129  CALL os('X=XY ', x=qsc, y=hiding)
130  CALL os('X=Y**C ', x=qsc, y=qsc , c=1.5d0)
131 
132  CALL os('X=CX ', x=qsc, c=c2)
133 !======================================================================!
134 !======================================================================!
135  RETURN
136  END
subroutine bedload_hunz_meyer(TOB, MU, ACLADM, UNLADM, NPOIN, DENS, XMVE, GRAV, DM, AC, TETAP, AHUNZI, ACP, HIDING, QSC)
subroutine os(OP, X, Y, Z, C, IOPT, INFINI, ZERO)
Definition: os.f:7
Definition: bief.f:3