The TELEMAC-MASCARET system  trunk
bedload_einst_gaia.f
Go to the documentation of this file.
1 ! *****************************
2  SUBROUTINE bedload_einst_gaia
3 ! *****************************
4 !
5  &(tetap, npoin, dens, grav, dcla, dstar, qsc,xmvs)
6 !
7 !***********************************************************************
8 ! GAIA
9 !***********************************************************************
10 !
12 !
13 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
22 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
23 !
24  USE interface_gaia, ex_bedload_einst => bedload_einst_gaia
25  USE bief
27  IMPLICIT NONE
28 !
29 !!-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
30 !
31  TYPE(bief_obj), INTENT(IN) :: TETAP
32  INTEGER, INTENT(IN) :: NPOIN
33  DOUBLE PRECISION, INTENT(IN) :: DENS, GRAV, DCLA, DSTAR, XMVS
34  TYPE(bief_obj), INTENT(INOUT) :: QSC
35 !
36 !!-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
37 !
38  INTEGER :: I
39  DOUBLE PRECISION :: CEINST
40 !
41 !======================================================================!
42 ! PROGRAM !
43 !======================================================================!
44 !
45 ! BEDLOAD TRANSPORT
46 !
47  ceinst = 36.d0/(dstar**3)
48  ceinst = sqrt(2.d0/3.d0+ceinst) - sqrt(ceinst)
49  ceinst = ceinst * sqrt(dens*grav*(dcla**3))
50  DO i = 1, npoin
51  IF(tetap%R(i) < 2.5d-3) THEN
52  qsc%R(i) = 0.d0
53  ELSE IF (tetap%R(i) < 0.2d0) THEN
54  qsc%R(i) = 2.15d0* ceinst * exp(-0.391d0/tetap%R(i))
55  ELSE
56  qsc%R(i) = 40.d0 * ceinst * (tetap%R(i)**3.d0)
57  ENDIF
58  ENDDO
59 !
60 ! SOLID DISCHARGE IS TRANSFORMED IN [kg/(m*s)]
61 !
62  CALL os('X=CX ', x=qsc, c=xmvs)
63 !=======================================================================
64 !
65  RETURN
66  END
subroutine bedload_einst_gaia(TETAP, NPOIN, DENS, GRAV, DCLA, DSTAR, QSC, XMVS)
subroutine os(OP, X, Y, Z, C, IOPT, INFINI, ZERO)
Definition: os.f:7
Definition: bief.f:3