The TELEMAC-MASCARET system  trunk
bedload_hunz_meyer_gaia.f
Go to the documentation of this file.
1 ! **********************************
2  SUBROUTINE bedload_hunz_meyer_gaia
3 ! **********************************
4 !
5  & (tob, mu, acladm, unladm, npoin, dens, xmve, grav, dcla, ac,
6  & tetap, ahunzi, acp, hiding, qsc,xmvs)
7 !
8 !***********************************************************************
9 ! GAIA
10 !***********************************************************************
11 !
14 !
15 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
32 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
33 !
34  USE interface_gaia,
35  & ex_bedload_hunz_meyer => bedload_hunz_meyer_gaia
36  USE bief
38  IMPLICIT NONE
39 !
40  ! 2/ GLOBAL VARIABLES
41  ! -------------------
42  TYPE(bief_obj), INTENT(IN) :: TOB, MU, ACLADM, UNLADM
43  INTEGER, INTENT(IN) :: NPOIN
44  DOUBLE PRECISION, INTENT(IN) :: DENS, XMVE, GRAV, DCLA, AC,XMVS
45  TYPE(bief_obj), INTENT(INOUT) :: TETAP, AHUNZI ! WORK ARRAY T1, T2
46  TYPE(bief_obj), INTENT(INOUT) :: ACP ! WORK ARRAY T3
47  TYPE(bief_obj), INTENT(INOUT) :: HIDING, QSC
48 !
49  ! 3/ LOCAL VARIABLES
50  ! ------------------
51  INTEGER :: I
52  DOUBLE PRECISION :: C1, C2
53 !======================================================================!
54 !======================================================================!
55 ! PROGRAM !
56 !======================================================================!
57 !======================================================================!
58  ! ************************************* !
59  ! I - ADIMENSIONAL SKIN STRESS !
60  ! ************************************* !
61  c1 = 1.d0/(dens*xmve*grav*dcla)
62  c2 = 5.d0*sqrt(grav*dens*dcla**3)
63  CALL os('X=CYZ ', x=tetap, y=tob, z=mu, c=c1)
64 !
65 ! CHANGED BY JMH ON 28/10/2009 AFTER MODIFICATIONS BY
66 ! REBEKKA KOPMANN TRANSMITTED BY JACEK JANKOWSKI
67 ! CALL OS('X=+(Y,C)', X=TETAP , Y=TETAP, C= 1.D-06 )
68  CALL os('X=+(Y,C)', x=tetap , y=tetap, c= 1.d-02 )
69 !
70  CALL os('X=Y**C ', x=ahunzi, y=tetap, c=-1.5d0 )
71  CALL os('X=CX ', x=ahunzi, c= 0.011d0)
72  CALL os('X=X+C ', x=ahunzi, c=-0.3d0 )
73 !
74 ! RK COMMENT:
75 ! BEWARE: AHUNZI CAN BECOME SO LARGE THAT THE HIDING FACTOR BECOMES
76 ! INFINITE; HUNZIKER HIMSELF SUGGESTS THAT IT BE CAPPED TO 2.3.
77 ! THIS INITIALLY ADOPTS A LIMIT OF APPROXIMATELY 10.
78 ! (WHICH IS APPARENT IN TETAP BEING SET TO VALUES .GE. 0.01)
79 !
80 ! REMARK BY JMH: I WOULD STRONGLY RECOMMEND A SINGLE LOOP
81 ! WITH THE WHOLE FORMULA, INSTEAD OF PILING
82 ! UP CALLS TO OS
83 !
84  DO i = 1, npoin
85  hiding%R(i) = (dcla/acladm%R(i))**(-ahunzi%R(i))
86  ENDDO
87  ! ************************************************* !
88  ! IV - CORRECTS THE ADIMENSIONAL CRITICAL STRESS !
89  ! ************************************************* !
90  CALL os('X=Y/Z ', x=acp, y=unladm, z=acladm)
91  CALL os('X=Y**C ', x=acp, y=acp , c=0.33d0)
92  CALL os('X=CX ', x=acp, c=ac)
93  ! ********************* !
94  ! V - TRANSPORT RATE !
95  ! ********************* !
96  CALL os('X=Y-Z ', x=qsc, y=tetap , z=acp )
97  CALL os('X=+(Y,C)', x=qsc, y=qsc , c=0.d0)
98  CALL os('X=XY ', x=qsc, y=hiding)
99  CALL os('X=Y**C ', x=qsc, y=qsc , c=1.5d0)
100 
101  CALL os('X=CX ', x=qsc, c=c2)
102 !======================================================================!
103 ! SOLID DISCHARGE IS TRANSFORMED IN [kg/(m*s)]
104 !
105  CALL os('X=CX ', x=qsc, c=xmvs)
106 !======================================================================!
107  RETURN
108  END
subroutine bedload_hunz_meyer_gaia(TOB, MU, ACLADM, UNLADM, NPOIN, DENS, XMVE, GRAV, DCLA, AC, TETAP, AHUNZI, ACP, HIDING, QSC, XMVS)
subroutine os(OP, X, Y, Z, C, IOPT, INFINI, ZERO)
Definition: os.f:7
Definition: bief.f:3