The TELEMAC-MASCARET system  trunk
bedload_meyer.f
Go to the documentation of this file.
1 ! ************************
2  SUBROUTINE bedload_meyer
3 ! ************************
4 !
5  &(tetap,hiding,hidfac,dens,grav,dm,ac,acp,qsc,slopeff,coefpn)
6 !
7 !***********************************************************************
8 ! SISYPHE V6P2 21/07/2011
9 !***********************************************************************
10 !
11 !brief MEYER-PETER BEDLOAD TRANSPORT FORMULATION.
12 !
13 !history E. PELTIER; C. LENORMANT; J.-M. HERVOUET
14 !+ 11/09/1995
15 !+ V5P1
16 !+
17 !
18 !history C.VILLARET
19 !+ **/10/2003
20 !+ V5P4
21 !+
22 !
23 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
24 !+ 13/07/2010
25 !+ V6P0
26 !+ Translation of French comments within the FORTRAN sources into
27 !+ English comments
28 !
29 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
30 !+ 21/08/2010
31 !+ V6P0
32 !+ Creation of DOXYGEN tags for automated documentation and
33 !+ cross-referencing of the FORTRAN sources
34 !
35 !!history U.MERKEL R.KOPMAN
36 !+ 15/03/2011
37 !+ V6P1
38 !+
39 !
40 !history C.VILLARET (EDF-LNHE), P.TASSI (EDF-LNHE)
41 !+ 19/07/2011
42 !+ V6P1
43 !+ Name of variables
44 !+
45 !
46 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
47 !| AC |<->| CRITICAL SHIELDS PARAMETER
48 !| ACP |<->| MODIFIED SHIELDS PARAMETER
49 !| COEFPN |<->| CORRECTION OF TRANSORT FOR SLOPING BED EFFECT
50 !| DENS |-->| RELATIVE DENSITY
51 !| DM |-->| SEDIMENT GRAIN DIAMETER
52 !| GRAV |-->| ACCELERATION OF GRAVITY
53 !| HIDFAC |-->| HIDING FACTOR FORMULAS
54 !| HIDING |-->| HIDING FACTOR CORRECTION
55 !| QSC |<->| BED LOAD TRANSPORT
56 !| SLOPEFF |-->| LOGICAL, SLOPING BED EFFECT OR NOT
57 !| TETAP |-->| ADIMENSIONAL SKIN FRICTION
58 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
59 !
60  USE bief
61  USE interface_sisyphe, ex_bedload_meyer => bedload_meyer
62  USE declarations_sisyphe, ONLY : mpm_aray
64  IMPLICIT NONE
65 !
66 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
67 !
68  TYPE(bief_obj), INTENT(IN) :: TETAP, HIDING
69  INTEGER, INTENT(IN) :: HIDFAC, SLOPEFF
70  DOUBLE PRECISION, INTENT(IN) :: DENS, GRAV, DM, AC
71  TYPE(bief_obj), INTENT(INOUT) :: ACP ! WORK ARRAY T1
72  TYPE(bief_obj), INTENT(INOUT) :: QSC, COEFPN
73 !
74 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
75 !
76  INTEGER I
77  DOUBLE PRECISION :: C2
78 !
79 !======================================================================!
80 ! PROGRAM !
81 !=======================================================================
82 !
83  CALL cpstvc(qsc,acp)
84  CALL os('X=C ', x=acp, c=ac)
85 !
86 ! SLOPE EFFECT: SOULBY FORMULATION
87 !
88  IF(slopeff.EQ.2) THEN
89  CALL os('X=XY ', x=acp, y=coefpn )
90  ENDIF
91 !
92 ! BEDLOAD TRANSPORT CORRECTED FOR EXTENDED GRAIN SIZE
93 ! WITH VARIABLE MPM_COEFFICIENT
94 !
95  c2 = sqrt(grav*dens*dm**3)
96 !
97  IF(hidfac.EQ.1.OR.hidfac.EQ.2) THEN
98 ! CALL OS('X=XY ', X=ACP, Y=HIDING)
99 ! CALL OS('X=Y-Z ', X=QSC, Y=TETAP, Z=ACP)
100 ! CALL OS('X=+(Y,C)', X=QSC, Y=QSC , C=0.D0)
101 ! CALL OS('X=Y**C ', X=QSC, Y=QSC , C=1.5D0)
102 ! CALL OS('X=CX ', X=QSC, C=C2)
103 ! CALL OS('X=XY ', X=QSC, Y=MPM_ARAY)
104  DO i=1,qsc%DIM1
105  qsc%R(i)=c2*mpm_aray%R(i)
106  & *sqrt(max(tetap%R(i)-acp%R(i)*hiding%R(i),0.d0))**3
107  ENDDO
108  ELSE
109 ! CALL OS('X=Y-Z ', X=QSC, Y=TETAP, Z=ACP)
110 ! CALL OS('X=+(Y,C)', X=QSC, Y=QSC, C=0.D0)
111 ! CALL OS('X=Y**C ', X=QSC, Y=QSC, C=1.5D0)
112 ! CALL OS('X=CX ', X=QSC, C=C2)
113 ! CALL OS('X=XY ', X=QSC, Y=HIDING)
114 ! CALL OS('X=XY ', X=QSC, Y=MPM_ARAY)
115  DO i=1,qsc%DIM1
116  qsc%R(i)=c2*mpm_aray%R(i)*hiding%R(i)*sqrt(
117  & max(tetap%R(i)-acp%R(i),0.d0))**3
118  ENDDO
119  ENDIF
120 !
121 !=======================================================================
122 !
123  RETURN
124  END
type(bief_obj), target mpm_aray
subroutine bedload_meyer(TETAP, HIDING, HIDFAC, DENS, GRAV, DM, AC, ACP, QSC, SLOPEFF, COEFPN)
Definition: bedload_meyer.f:7
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