The TELEMAC-MASCARET system  trunk
tassement_2.f
Go to the documentation of this file.
1 ! **********************
2  SUBROUTINE tassement_2
3 ! **********************
4 !
5  &(npoin,dts,elay,dzf_tass,t2,lt,xmvs,xmve,nomblay,
6  & es,conc_vase,ms_vase,xwc,coef_n,conc_gel,conc_max)
7 !
8 !***********************************************************************
9 ! SISYPHE V6P2 13/01/2012
10 !***********************************************************************
11 !
12 !BRIEF COMPUTES THE CONSOLIDATION BASED ON GIBSON THEORY
13 !+
14 !
15 !history LAN ANH VAN (LHSV)
16 !+ 10/01/2011
17 !+ V6P2
18 !+ FIRST VERSION IN TEST (NOT YET CALLED IN CURRENT VERSION 6.2)
19 !+
20 !history PABLO SANTORO (IMFIA) AND PABLO TASSI (EDF R&D - LHSV)
21 !+ 01/08/2015
22 !+ V7P1
23 !+ INFLUENCE OF THE DIFFUSION EFFECT IN COMPUTATION OF
24 !+ THE EFFECTIVE STRESS, SEE VAN (2012)
25 !
26 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
27 !| COEF_N |-->| PERMEABILITY COEFFICIENT
28 !| CONC_GEL |-->| GEL CONCENTRATION
29 !| CONC_MAX |-->| MAXIMUM CONCENTRATION
30 !| CONC_VASE |<->| MUD CONCENTRATION FOR EACH LAYER
31 !| DTS |-->| TIME STEP FOR SUSPENSION
32 !| DZF_TASS |-->| BED EVOLUTION DUE TO CONSOLIDATION
33 !| ELAY |<->| THICKNESS OF EACH LAYER
34 !| ES |<->| LAYER THICKNESSES AS DOUBLE PRECISION
35 !| GRAV |-->| GRAVITY ACCELERATION
36 !| LT |-->| ITERATION
37 !| MS_VASE |<->| MASS OF MUD PER LAYER (KG/M2)
38 !| NOMBLAY |-->| NUMBER OF LAYERS FOR CONSOLIDATION
39 !| NPOIN |-->| NUMBER OF POINTS
40 !| T2 |<->| WORK BIEF_OBJ STRUCTURE
41 !| XMVE |-->| WATER DENSITY
42 !| XMVS |-->| SEDIMENT DENSITY
43 !| XWC |-->| SETTLING VELOCITY
44 !| ZF |-->| ELEVATION OF BOTTOM
45 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
46 !
47  USE bief
48  USE declarations_sisyphe, ONLY : nlaymax
49  USE interface_sisyphe, ex_tassement_2 => tassement_2
50 !
52  IMPLICIT NONE
53 !
54 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
55 !
56  INTEGER,INTENT(IN) :: NPOIN
57  INTEGER, INTENT(IN) :: LT,NOMBLAY
58  DOUBLE PRECISION, INTENT(IN) :: DTS
59  DOUBLE PRECISION, INTENT(IN) :: XMVS,XMVE
60  type(bief_obj), INTENT(INOUT) :: dzf_tass,elay,t2
61  DOUBLE PRECISION, INTENT(INOUT) :: MS_VASE(npoin,nomblay)
62  DOUBLE PRECISION, INTENT(INOUT) :: ES(npoin,nomblay)
63  DOUBLE PRECISION, INTENT(IN) :: CONC_VASE(nomblay)
64  DOUBLE PRECISION, INTENT(IN) :: XWC
65  DOUBLE PRECISION, INTENT(IN) :: COEF_N,CONC_GEL,CONC_MAX
66 !
67 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
68 !
69  INTEGER I,J
70 ! FALLING VELOCITY OF EACH LAYER
71  DOUBLE PRECISION V_S(nlaymax)
72 ! EFFECTIVE STRESS OF EACH LAYER
73  DOUBLE PRECISION SIG_EFF(nlaymax)
74 ! PERMEABILITY
75  DOUBLE PRECISION KSED(nlaymax),KCONSO(nlaymax)
76 ! SEDIMENT FLUX BETWEEN TWO CONSECUTIVE LAYERS
77  DOUBLE PRECISION FLUX(nlaymax)
78 ! DIFFUSION TERM
79  DOUBLE PRECISION DIFFU(nlaymax)
80 !
81 ! ******************************************************************
82 ! * PROGRAM SIMULATING THE SEDIMENTATION-CONSOLIDATION *
83 ! ******************************************************************
84 !
85  DO i =1,npoin
86  t2%R(i)=0.d0
87  DO j=1,nomblay
88  t2%R(i)=t2%R(i)+es(i,j)
89  ENDDO
90 
91 ! FROM VAN (2012)
92 ! DEPENDING ON THE CLOSURE EQUATIONS,
93 ! THE INPUT CAN BE EFFECTIVE STRESS OF DIFFUSION TERM (=
94 ! KC*DSIGMA/DC/(G*RHO_F))
95 !
96 ! EFFECTIVE STRESS: DIFFUSION TERM
97 ! ----------------------------------
98  DO j = 1,nomblay
99  diffu(j)=11.55d0*(conc_vase(j)/(xmvs*0.0296d0))**12.d0*
100  & (lt*dts)**(-3.4d0)
101  ENDDO
102 
103 ! EFFECTIVE STRESS
104 ! ------------------------
105  DO j = 1,nomblay
106  sig_eff(j)=119033.d0*(conc_vase(j)/xmvs)**14.d0
107  ENDDO
108 
109 ! PERMEABILITY
110 ! --------------
111  DO j=1,nomblay-1
112 ! SEDIMENTATION
113  ksed(j)=xwc*(1.d0-conc_vase(j)/xmvs)*
114  & (1.d0-(conc_vase(j)/conc_gel))**coef_n/
115  & ((xmvs-xmve)*(conc_vase(j)/xmvs)/xmve)
116 ! CONSOLIDATION
117  kconso(j)=xwc*(1.d0-conc_vase(j)/xmvs)*
118  & (1.d0-(conc_vase(j)/conc_max))**coef_n/
119  & ((xmvs-xmve)*(conc_vase(j)/xmvs)/xmve)
120 !
121  IF (conc_vase(j).GT.conc_gel) THEN
122 !
123 ! SEDIMENTATION AND CONSOLIDATION :
124 ! --------------------------------
125  IF ((es(i,j+1) + es(i,j)).GT.1.d-8) THEN
126  v_s(j) =
127  & kconso(j) * conc_vase(j) * (1.d0/xmvs - 1.d0/xmve)
128  & + diffu(j)/conc_vase(j)*
129  & (conc_vase(j+1)-conc_vase(j))/
130  & (0.5d0 * (es(i,j+1) + es(i,j)))
131 ! CALCULATE FROM SIG_EFF
132 ! V_S(J) =
133 ! & KCONSO(J) * CONC_VASE(J) * (1.D0/XMVS - 1.D0/XMVE)
134 ! & + ( KCONSO(J) / (XMVE * GRAV)) *
135 ! & (SIG_EFF(J+1) - SIG_EFF(J)) /
136 ! & (0.5D0 * (ES(I,J+1) + ES(I,J)))
137  ELSE
138  v_s(j) = 1.d8
139  ENDIF
140  ELSE
141 ! PURE SEDIMENTATION :
142 ! ---------------
143  v_s(j) = ksed(j)*conc_vase(j)*(1.d0/xmvs-1.d0/xmve)
144  ENDIF
145  ENDDO
146 !
147  DO j=1,nomblay
148  IF (v_s(j).GT.0.d0) v_s(j) = 0.d0
149  ENDDO
150 !
151 ! FALLING VELOCITY AT THE LEVEL OF ZR (AT THE BED)
152  v_s(nomblay) = 0.d0
153 ! SEDIMENT FLUX :
154 ! --------------
155  DO j=nomblay-1,1,-1
156  flux(j) =
157  & (v_s(j)-v_s(j+1))*conc_vase(j+1)*conc_vase(j)/
158  & (conc_vase(j+1)-conc_vase(j))
159  IF (flux(j).GT.0.d0) flux(j) = 0.d0
160  ENDDO
161 ! SEDIMENT FLUX AT THE RIGID BED
162  flux(nomblay) = 0.d0
163 !
164 ! REDISTRIBUTE THE MASS :
165 ! ----------------------------------
166 ! RECALCULATE THE FLUX FROM LAYER 1 TO NCOUCH_TASS
167  IF ((ms_vase(i,1)+dts*flux(1)).LT.0.d0) THEN
168  flux(1) = -ms_vase(i,1)/dts
169  ENDIF
170  DO j=2,nomblay
171  IF ((ms_vase(i,j)-dts*(flux(j-1)-flux(j))).LT.0.d0) THEN
172  flux(j) = -ms_vase(i,j)/dts + flux(j-1)
173  ENDIF
174  ENDDO
175 ! MASS OF FIRST LAYER
176  ms_vase(i,1)=ms_vase(i,1)+dts*flux(1)
177 ! MASS OF LAYER 2 TO NCOUCH_TASS
178  DO j=2,nomblay
179  ms_vase(i,j) = ms_vase(i,j) - dts * (flux(j-1)-flux(j))
180  ENDDO
181 !
182 ! THICKNESSES
183  elay%R(i)=0.d0
184 !
185  DO j=1,nomblay
186  es(i,j) = ms_vase(i,j) / conc_vase(j)
187  elay%R(i)=elay%R(i) + es(i,j)
188  ENDDO
189 ! BED EVOLUTION DUE TO CONSOLIDATION
190  dzf_tass%R(i)=elay%R(i)-t2%R(i)
191  ENDDO
192 ! END SUBROUTINE TASSEMENT_2
193  RETURN
194  END
subroutine tassement_2(NPOIN, DTS, ELAY, DZF_TASS, T2, LT, XMVS, XMVE, NOMBLAY, ES, CONC_VASE, MS_VASE, XWC, COEF_N, CONC_GEL, CONC_MAX)
Definition: tassement_2.f:8
integer, parameter nlaymax
Definition: bief.f:3