The TELEMAC-MASCARET system  trunk
suspension_rouse.f
Go to the documentation of this file.
1 ! ***************************
2  SUBROUTINE suspension_rouse
3 ! ***************************
4 !
5  &(ustar,hn,npoin,karman,zero,xwc,zref,t2)
6 !
7 !***********************************************************************
8 ! SISYPHE V6P1 21/07/2011
9 !***********************************************************************
10 !
11 !brief COMPUTES THE DEPOSITION FLUX AND
12 !+ CONCENTRATION ACCORDING TO ROUSE PROFILE.
13 !
14 !history C. VILLARET ; J-M HERVOUET
15 !+ 14/04/04
16 !+ V5P5
17 !+
18 !
19 !history F. HUVELIN
20 !+ 04/01/05
21 !+ V5P6
22 !+
23 !
24 !history J-M HERVOUET
25 !+ 13/07/07
26 !+ V5P7
27 !+
28 !
29 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
30 !+ 13/07/2010
31 !+ V6P0
32 !+ Translation of French comments within the FORTRAN sources into
33 !+ English comments
34 !
35 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
36 !+ 21/08/2010
37 !+ V6P0
38 !+ Creation of DOXYGEN tags for automated documentation and
39 !+ cross-referencing of the FORTRAN sources
40 !
41 !history C.VILLARET (EDF-LNHE), P.TASSI (EDF-LNHE)
42 !+ 19/07/2011
43 !+ V6P1
44 !+ Name of variables
45 !+
46 !
47 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
48 !| HN |-->| WATER DEPTH
49 !| KARMAN |-->| VON KARMAN CONSTANT
50 !| NPOIN |-->| NUMBER OF POINTS
51 !| T2 |<->| WORK BIEF_OBJ STRUCTURE
52 !| USTAR |-->| SHEAR VELOCITY
53 !| XWC |-->| SETTLING VELOCITIES
54 !| ZERO |-->| ZERO
55 !| ZREF |-->| REFERENCE ELEVATION
56 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
57 !
58  USE interface_sisyphe,ex_suspension_rouse => suspension_rouse
59  USE bief
61  IMPLICIT NONE
62  ! 2/ GLOBAL VARIABLES
63  ! -------------------
64  TYPE(bief_obj), INTENT(IN) :: USTAR,HN,ZREF
65  INTEGER, INTENT(IN) :: NPOIN
66  DOUBLE PRECISION, INTENT(IN) :: KARMAN,XWC,ZERO
67  TYPE(bief_obj), INTENT(INOUT) :: T2
68  ! 3/ LOCAL VARIABLES
69  ! ------------------
70  INTEGER :: I
71  DOUBLE PRECISION :: B,EXP1,ROUSE
72 !
73  INTRINSIC max,min,log
74 !
75 !======================================================================!
76 !======================================================================!
77 ! PROGRAM !
78 !======================================================================!
79 !======================================================================!
80 !
81 ! ROUSE NUMBER AND MINIMUM BOUND OF THE EINSTEIN INTEGRAL
82 !
83  DO i=1,npoin
84 !
85 ! ROUSE NUMBER
86 !
87  rouse= xwc / (karman*max(ustar%R(i),zero))
88 !
89 ! MINIMUM BOUND OF THE EINSTEIN INTEGRAL --> B = KS/H
90 !
91 ! B ALWAYS LESS THAN 1.
92  b = zref%R(i)/max(hn%R(i),zref%R(i))
93 !
94 ! RATIO BETWEEN REFERENCE CONC. ON BOTTOM AND MEAN CONC.
95 ! ASSUMING EXPONENTIAL PROFILE WITH EXPONENT ROUSE NUMBER --> T2
96 !
97  exp1=rouse-1.d0
98  IF(abs(exp1).GT.1.d-4) THEN
99  exp1=min(exp1,3.d0)
100  t2%R(i)=b*(1.d0-b**exp1)/exp1
101  ELSE
102  t2%R(i)=-b*log(b)
103  ENDIF
104  t2%R(i)=max(1.d0/max(t2%R(i),zero),1.d0)
105  ENDDO
106 !
107 !======================================================================!
108 !======================================================================!
109 !
110  RETURN
111  END
subroutine suspension_rouse(USTAR, HN, NPOIN, KARMAN, ZERO, XWC, ZREF, T2)
Definition: bief.f:3