The TELEMAC-MASCARET system  trunk
init_transport.f
Go to the documentation of this file.
1 ! *************************
2  SUBROUTINE init_transport
3 ! *************************
4 !
5  &(trouve,debu,hiding,nsicla,npoin,
6  & t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,
7  & charr,qs_c,qsxc,qsyc,calfa_cl,salfa_cl,coefpn,slopeff,
8  & susp,qs_s,qs,qscl,qscl_c,qscl_s,qsclxs,qsclys,
9  & unorm,u2d,v2d,hn,cf,mu,tob,tobw,uw,tw,thetaw,fw,houle,
10  & avail,acladm,unladm,ksp,ksr,ks,
11  & icf,hidfac,xmvs,xmve,grav,vce,hmin,karman,
12  & zero,pi,ac,imp_inflow_c,zref,icq,cstaeq,csratio,
13  & cmax,cs,cs0,seccurrent,bijk,
14  & ielmt,fdm,xwc,fd90,sedco,vitce,partheniades,vitcd,
15  & u3d,v3d,code)
16 !
17 !***********************************************************************
18 ! SISYPHE V7P2 21/07/2011
19 !***********************************************************************
20 !
21 !brief
22 !
23 !history JMH
24 !+ 24/01/2008
25 !+
26 !+ TEST 'IF(CHARR.OR.SUSP)' ADDED AT THE END
27 !
28 !history JMH
29 !+ 16/09/2009
30 !+
31 !+ AVAIL(NPOIN,10,NSICLA)
32 !
33 !history JMH
34 !+ 07/12/2009
35 !+
36 !+ MODIFICATIONS FOR RESTART WITH WARNINGS WHEN A VARIABLE
37 !
38 !history C. VILLARET (LNHE)
39 !+
40 !+ V6P0
41 !+
42 !
43 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
44 !+ 13/07/2010
45 !+ V6P0
46 !+ Translation of French comments within the FORTRAN sources into
47 !+ English comments
48 !
49 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
50 !+ 21/08/2010
51 !+ V6P0
52 !+ Creation of DOXYGEN tags for automated documentation and
53 !+ cross-referencing of the FORTRAN sources
54 !+
55 !history C. VILLARET (LNHE)+ R. KOPMANN + U.MERKEL
56 !+
57 !+ 20/03/2011
58 !+ V6P1
59 !
60 !history C.VILLARET (EDF-LNHE), P.TASSI (EDF-LNHE)
61 !+ 19/07/2011
62 !+ V6P1
63 !+ Name of variables
64 !
65 !history MAK (HRW)
66 !+ 31/05/2012
67 !+ V6P2
68 !+ Include CSRATIO
69 !
70 !history P TASSI (LNHE)
71 !+ 18/06/2012
72 !+ V6P2
73 !+ updated version with HRW's development for Soulsby-van Rijn's concentration
74 !
75 !history R KOPMANN (BAW)
76 !+ 10/05/2016
77 !+ V7P2
78 !+ CALFA,SALFA dependent of grain classes
79 !
80 !history F.CORDIER & P.TASSI (EDF-LNHE)
81 !+ 12/09/2018
82 !+ V8P0
83 !+ CALCULATION OF SAND FRACTION CONTENT AT EACH NODE
84 !+ FOR WILCOCK AND CROWE FORMULA (2003)
85 !
86 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
87 !| AC |<->| CRITICAL SHIELDS PARAMETER
88 !| ACLADM |-->| MEAN DIAMETER OF SEDIMENT
89 !| AVAIL |<->| VOLUME PERCENT OF EACH CLASS
90 !| BIJK |-->| COEFFICIENT OF THE BIJKER FORMULA
91 !| CALFA |<->| COSINUS OF THE ANGLE BETWEEN MEAN FLOW AND TRANSPORT
92 !| CF |-->| QUADRATIC FRICTION COEFFICIENT
93 !| CHARR |-->| BEDLOAD
94 !| CMAX |---| MAX(PARTHENIADES/SETTLING VELOCITY)
95 !| COEFPN |<->| CORRECTION OF TRANSORT FOR SLOPING BED EFFECT
96 !| CS |<->| CONCENTRATION AT TIME N
97 !| CS0 |-->| CONCENTRATION AT TIME 0
98 !| CSTAEQ |<->| EQUILIBRIUM CONCENTRATION
99 !| CSRATIO |<->| EQUILIBRIUM CONCENTRATION FOR SOULSBY-VAN RIJN EQ.
100 !| DEBUG |-->| FLAG FOR DEBUGGING
101 !| FD90 |-->| DIAMETER D90
102 !| FDM |-->| DIAMETER DM FOR EACH CLASS
103 !| FW |-->| WAVE FRICTION FACTOR
104 !| GRAV |-->| ACCELERATION OF GRAVITY
105 !| HIDFAC |-->| HIDING FACTOR FORMULAS
106 !| HIDING |-->| HIDING FACTOR CORRECTION
107 !| HMIN |-->| MINIMUM VALUE OF WATER DEPTH
108 !| HN |-->| WATER DEPTH
109 !| HOULE |-->| LOGICAL, FOR WAVE EFFECTS
110 !| ICF |-->| BED-LOAD OR TOTAL LOAD TRANSPORT FORMULAS
111 !| ICQ |-->| REFERENCE CONCENTRATION FORMULA
112 !| IELMT |-->| NUMBER OF ELEMENTS
113 !| IMP_INFLOW_C |-->| IMPOSED CONCENTRATION IN INFLOW
114 !| KARMAN |-->| VON KARMAN CONSTANT
115 !| KS |-->| BED ROUGHNESS
116 !| KSP |-->| BED SKIN ROUGHNESS
117 !| KSR |-->| RIPPLE BED ROUGHNESS
118 !| MU |<->| CORRECTION FACTOR FOR BED ROUGHNESS
119 !| NPOIN |-->| NUMBER OF POINTS
120 !| NSICLA |-->| NUMBER OF SEDIMENT CLASSES
121 !| PARTHENIADES |-->| CONSTANT OF THE KRONE AND PARTHENIADES EROSION LAW (KG/M2/S)
122 !| PI |-->| PI
123 !| QS |<->| BEDLOAD TRANSPORT RATE
124 !| QSCL |<->| SUSPENDED LOAD TRANSPORT RATE
125 !| QSCLXS |<->| SUSPENDED LOAD TRANSPORT RATE FOR EACH CLASS X-DIRECTION
126 !| QSCLYS |<->| SUSPENDED LOAD TRANSPORT RATE FOR EACH CLASS Y-DIRECTION
127 !| QSCL_C |<->| BEDLOAD TRANSPORT RATE
128 !| QSCL_S |<->| SUSPENDED LOAD TRANSPORT RATE
129 !| QSXS |<->| SOLID DISCHARGE X (SUSPENSION)
130 !| QSYS |<->| SOLID DISCHARGE Y (SUSPENSION)
131 !| QS_C |-->| BEDLOAD TRANSPORT RATE
132 !| QS_S |<->| SUSPENDED LOAD TRANSPORT RATE
133 !| SALFA |<->| SINUS OF THE ANGLE BETWEEN TRANSPORT RATE AND CURRENT
134 !| SECCURRENT |-->| LOGICAL, PARAMETRISATION FOR SECONDARY CURRENTS
135 !| SEDCO |-->| LOGICAL, SEDIMENT COHESIVE OR NOT
136 !| SLOPEFF |-->| LOGICAL, SLOPING BED EFFECT OR NOT
137 !| SUSP |-->| LOGICAL, SUSPENSION
138 !| T1 |<->| WORK BIEF_OBJ STRUCTURE
139 !| T10 |<->| WORK BIEF_OBJ STRUCTURE
140 !| T11 |<->| WORK BIEF_OBJ STRUCTURE
141 !| T12 |<->| WORK BIEF_OBJ STRUCTURE
142 !| T13 |<->| WORK BIEF_OBJ STRUCTURE
143 !| T2 |<->| WORK BIEF_OBJ STRUCTURE
144 !| T3 |<->| WORK BIEF_OBJ STRUCTURE
145 !| T4 |<->| WORK BIEF_OBJ STRUCTURE
146 !| T5 |<->| WORK BIEF_OBJ STRUCTURE
147 !| T6 |<->| WORK BIEF_OBJ STRUCTURE
148 !| T7 |<->| WORK BIEF_OBJ STRUCTURE
149 !| T8 |<->| WORK BIEF_OBJ STRUCTURE
150 !| T9 |<->| WORK BIEF_OBJ STRUCTURE
151 !| THETAW |-->| ANGLE BETWEEN WAVE AND CURRENT
152 !| TOB |<->| BED SHEAR STRESS (TOTAL FRICTION)
153 !| TOBW |-->| WAVE INDUCED SHEAR STRESS
154 !| TW |-->| WAVE PERIOD
155 !| U2D |<->| MEAN FLOW VELOCITY X-DIRECTION
156 !| UNLADM |-->| MEAN DIAMETER OF ACTIVE STRATUM LAYER
157 !| UNORM |<->| NORM OF THE MEAN FLOW VELOCITY
158 !| UW |-->| ORBITAL WAVE VELOCITY
159 !| V2D |<->| MEAN FLOW VELOCITY Y-DIRECTION
160 !| VCE |-->| WATER VISCOSITY
161 !| VITCD |-->| CRITICAL SHEAR VELOCITY FOR MUD DEPOSITION
162 !| VITCE |-->| CRITICAL EROSION SHEAR VELOCITY OF THE MUD
163 !| XMVE |-->| FLUID DENSITY
164 !| XMVS |-->| WATER DENSITY
165 !| XWC |-->| SETTLING VELOCITY
166 !| ZERO |-->| ZERO
167 !| ZREF |-->| REFERENCE ELEVATION
168 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
169 !
170  USE bief
171  USE interface_sisyphe, ex_init_transport => init_transport
172 !
174 !
176  IMPLICIT NONE
177 !
178 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
179 !
180  INTEGER, INTENT(IN) :: NSICLA,NPOIN,TROUVE(*),ICQ
181  INTEGER, INTENT(IN) :: ICF,HIDFAC,IELMT,SLOPEFF
182  LOGICAL, INTENT(IN) :: CHARR,DEBU,SUSP,IMP_INFLOW_C
183  LOGICAL, INTENT(IN) :: SECCURRENT,SEDCO(*)
184  LOGICAL, INTENT(IN) :: HOULE
185  TYPE(bief_obj), INTENT(IN) :: U2D,V2D,UNORM,HN,CF
186  TYPE(bief_obj), INTENT(IN) :: MU,TOB,TOBW,UW,TW,THETAW,FW
187  TYPE(bief_obj), INTENT(IN) :: ACLADM,UNLADM,KSP,KSR,KS
188  TYPE(bief_obj), INTENT(INOUT) :: HIDING
189  TYPE(bief_obj), INTENT(INOUT) :: QS_C, QSXC, QSYC
190  TYPE(bief_obj), INTENT(INOUT) :: CALFA_CL,SALFA_CL
191  TYPE(bief_obj), INTENT(INOUT) :: T1,T2,T3,T4,T5,T6,T7,T8
192  TYPE(bief_obj), INTENT(INOUT) :: T9,T10,T11,T12
193  TYPE(bief_obj), INTENT(INOUT) :: ZREF,CSTAEQ,CSRATIO
194  TYPE(bief_obj), INTENT(INOUT) :: CS
195  TYPE(bief_obj), INTENT(INOUT) :: QS_S,QS,QSCL_C,QSCL_S
196  TYPE(bief_obj), INTENT(INOUT) :: COEFPN
197  TYPE(bief_obj), INTENT(INOUT) :: QSCLXS,QSCLYS,QSCL
198  DOUBLE PRECISION, INTENT(IN) :: XMVS,XMVE,GRAV,VCE
199  DOUBLE PRECISION, INTENT(IN) :: HMIN,KARMAN,ZERO,PI
200  DOUBLE PRECISION, INTENT(IN) :: PARTHENIADES,BIJK,XWC(nsicla)
201  DOUBLE PRECISION, INTENT(IN) :: FD90(nsicla),CS0(nsicla)
202  DOUBLE PRECISION, INTENT(IN) :: VITCE,VITCD
203  DOUBLE PRECISION, INTENT(INOUT) :: AC(nsicla),CMAX,FDM(nsicla)
204  DOUBLE PRECISION, INTENT(INOUT) :: AVAIL(npoin,nomblay,nsicla)
205 !
206  TYPE(bief_obj), INTENT(IN) :: U3D,V3D
207  CHARACTER(LEN=24), INTENT(IN) :: CODE
208 !
209 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
210 !
211  INTEGER I,J
212  DOUBLE PRECISION AAA,USTARP,U3DNORM
213  LOGICAL NEED_CS
214 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
215 !
216  DOUBLE PRECISION SANFRA(npoin)
217  INTEGER K
218 !
219 !======================================================================!
220 !======================================================================!
221 ! PROGRAM !
222 !======================================================================!
223 !======================================================================!
224 !
225 ! --- START : INITIALISES RATE OF TRANSPORT AND SUSPENSION
226 !
227 ! FOR INITIALISATION : SLOPE EFFECT AND DEVIATION ARE CANCELLED
228 !
229 ! RK in case of coupling with T3D, the direction should
230 ! come from the bottom velocity
231 !
232 ! Calculation of sand fraction content at each node (Wilcock and Crowe, 2003)
233  IF (icf == 10) THEN
234  DO k = 1, npoin
235  sanfra(k) = 0.0d0
236  DO i = 1, nsicla
237  IF (fdm(i).LT.2d-3) THEN
238  sanfra(k) = sanfra(k) + avail(k,1,i)
239  ENDIF
240  ENDDO
241  ENDDO
242  ENDIF
243 !
244  IF(code(1:9).EQ.'TELEMAC3D') THEN
245  DO i=1,npoin
246  u3dnorm=sqrt(u3d%R(i)*u3d%R(i)+v3d%R(i)*v3d%R(i))
247  IF(u3dnorm.GE.1.d-12) THEN
248  calfa_cl%ADR(1)%P%R(i)=u3d%R(i)/u3dnorm
249  salfa_cl%ADR(1)%P%R(i)=v3d%R(i)/u3dnorm
250  ELSE
251  calfa_cl%ADR(1)%P%R(i)=1.d0
252  salfa_cl%ADR(1)%P%R(i)=0.d0
253  ENDIF
254  ENDDO
255  ELSE
256  CALL os('X=Y/Z ',x=calfa_cl%ADR(1)%P, y=u2d, z=unorm,
257  & c=0.d0, iopt=2, infini=1.d0, zero=1.d-12)
258  CALL os('X=Y/Z ',x=salfa_cl%ADR(1)%P, y=v2d, z=unorm,
259  & c=0.d0, iopt=2, infini=0.d0, zero=1.d-12)
260  ENDIF
261  IF(nsicla.GT.1) THEN
262  DO i=2,nsicla
263  CALL os('X=Y ', x=calfa_cl%ADR(i)%P,
264  & y=calfa_cl%ADR(1)%P)
265  CALL os('X=Y ', x=salfa_cl%ADR(i)%P,
266  & y=salfa_cl%ADR(1)%P)
267  ENDDO
268  ENDIF
269 !
270 ! appel a effpnt ?
271 !
272  CALL os('X=C ',x=coefpn,c=1.d0)
273 !
274  IF(charr) THEN
275 !
276 ! MPM for each Layer
277 !
278  CALL os('X=C ', x=mpm_aray, c=mpm)
279 !
280  CALL os('X=C ',x=hiding,c=1.d0)
281 !
282  DO i = 1, nsicla
283 !
284  IF(sedco(i)) THEN
285 ! IF COHESIVE: NO BEDLOAD TRANSPORT
286  CALL os('X=0 ', x=qscl_c%ADR(i)%P)
287  ELSE
288 ! IF NON COHESIVE
289  CALL bedload_formula
290  & (u2d,v2d,unorm,hn,cf,mu,tob,tobw,uw,tw,thetaw,fw,
291  & acladm, unladm,ksp,ksr,avail(1:npoin,1,i),
292  & npoin,icf,hidfac,xmvs,xmve,
293  & fdm(i),grav,vce,hmin,xwc(i),fd90(i),karman,zero,
294  & pi,susp,ac(i),hiding,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,
295  & t11,t12,qscl_c%ADR(i)%P,qscl_s%ADR(i)%P,
296  & ielmt,seccurrent,slopeff,
297  & coefpn,calfa_cl%ADR(i)%P,salfa_cl%ADR(i)%P,
298 ! FC
299  & bijk,houle,sanfra)
300 ! ENDFC
301 !
302  ENDIF
303 ! SUM ON ALL CLASSES
304  DO j=1,npoin
305  qs_c%R(j) = qs_c%R(j) + qscl_c%ADR(i)%P%R(j)
306 !
307 ! COMPUTES THE X AND Y COMPONENTS OF TRANSPORT
308  qsxc%R(j) = qsxc%R(j) + qscl_c%ADR(i)%P%R(j)
309  & *calfa_cl%ADR(i)%P%R(j)
310  qsyc%R(j) = qsyc%R(j) + qscl_c%ADR(i)%P%R(j)
311  & *salfa_cl%ADR(i)%P%R(j)
312  ENDDO
313 !
314  ENDDO
315 !
316 !
317  ENDIF
318 !
319 ! START : COMPUTES THE SUSPENDED TRANSPORT
320 !
321  IF(susp) THEN
322 !
323 ! INITIALISES ZREF
324 !
325  IF(icq.EQ.1) THEN
326  CALL os('X=Y ', x=zref, y=ksp)
327  ELSEIF(icq.EQ.2) THEN
328  CALL os('X=Y ', x=zref, y=ksr)
329  ELSEIF(icq.EQ.3) THEN
330  CALL os('X=CY ', x=zref, y=ks,c=0.5d0)
331  ENDIF
332 !
333 ! FOR RANK OF CS IN TROUVE SEE POINT_SISYPHE, NOMVAR_SISYPHE
334 ! 22+I+(NOMBLAY+1)*NSICLA IS THE ADDRESS OF CONCENTRATIONS
335 !
336  need_cs=.false.
337  DO i=1,nsicla
338  IF(trouve(22+i+(nomblay+1)*nsicla).EQ.0) need_cs=.true.
339  ENDDO
340 !
341 ! COMPUTES THE INITIAL CONCENTRATIONS
342 !
343  IF(.NOT.debu.OR.need_cs) THEN
344 !
345  CALL condim_susp(cs,cs0,nsicla)
346 !
347 ! END MODIFICATIONS (CV)
348 ! OPTION: IMPOSED INFLOW CONCENTRATIONS ...
349 !
350  IF(imp_inflow_c) THEN
351 !
352 ! TAUP IN T8
353  CALL os('X=CYZ ', x=t8, y=tob, z=mu, c=1.d0)
354 ! USTAR (TOTAL) IN T9
355  CALL os('X=CY ', x=t9, y=tob, c=1.d0/xmve)
356  CALL os('X=SQR(Y)', x=t9, y=t9)
357 !
358 ! START: LOOP ON THE CLASSES
359 !
360  DO i=1,nsicla
361 !
362  IF(.NOT.sedco(i)) THEN
363 !
364 ! NON COHESIVE SED: INITIALISES CSTAEQ
365 !
366  IF(icq.EQ.1) THEN
367  CALL suspension_fredsoe( fdm(i) ,t8,npoin,
368  & grav, xmve, xmvs, ac(i), cstaeq )
369  ELSEIF(icq.EQ.2) THEN
370  CALL suspension_bijker(t8,npoin,charr,qs_c,zref,
371  & zero,cstaeq,xmve)
372  ELSEIF(icq.EQ.3) THEN
373  CALL suspension_vanrijn(fdm(i),t8,npoin,
374  & grav,xmve,xmvs,vce,zero,ac(i), cstaeq,zref)
375  ELSEIF(icq.EQ.4) THEN
376  csratio%R=1d0
377  CALL suspension_sandflow(fdm(i),fd90(i),npoin,
378  & grav,xmve,xmvs,zero,
379  & cstaeq,hn,u2d,v2d,
380  & csratio)
381  ENDIF
382 ! ROUSE CONCENTRATION PROFILE IS ASSUMED BASED ON TOTAL FRICTION
383 ! VELOCITY
384 !
385  CALL suspension_rouse(t9,hn,npoin,
386  & karman,zero,xwc(i),zref,t12)
387 !
388  DO j=1,npoin
389  cstaeq%R(j)=cstaeq%R(j)*avail(j,1,i)
390  ENDDO
391 ! CALL OS( 'X=XY ',X=CSTAEQ,Y=AVAI%ADR(I)%P)
392  CALL os( 'X=Y/Z ',x=cs%ADR(i)%P,y=cstaeq,z=t12)
393 !
394 ! END NON-COHESIVE
395 !
396  ELSE
397 !
398 ! FOR COHESIVE SEDIMENT
399 !
400 ! THIS VALUE CAN BE ALSO CHANGED BY THE USER
401 ! IN SUBROUTINE USER_KRONE_PARTHENIADES
402 !
403  CALL os('X=Y ', x=zref, y=ksp)
404 !
405  cmax = max(cmax,partheniades/xwc(i))
406 !
407  IF(vitce.GT.1.d-8.AND.vitcd.GT.1.d-8) THEN
408  DO j = 1, npoin
409 ! FLUER
410  ustarp= sqrt(t8%R(j)/xmve)
411  aaa= partheniades*
412  & max(((ustarp/vitce)**2-1.d0),zero)
413 ! FLUDPT
414 ! BBB=XWC(I)*MAX((1.D0-(USTARP/VITCD)**2),ZERO)
415 ! IF NO DEPOSITION, THE EQUILIBRIUM CONCENTRATION IS INFINITE!
416  cs%ADR(i)%P%R(j) = aaa/xwc(i)
417 !
418  ENDDO
419  ELSE
420  CALL os('X=0 ',x=cs%ADR(i)%P)
421  ENDIF
422 !
423  DO j=1,npoin
424  cs%ADR(i)%P%R(j)=cs%ADR(i)%P%R(j)*avail(j,1,i)
425  ENDDO
426 !
427 ! END COHESIVE
428 !
429  ENDIF
430 !
431 ! END OF LOOP ON THE CLASSES
432 !
433  ENDDO
434 !
435 ! END OF OPTION: IMPOSED INFLOW CONCENTRATION
436 !
437  ENDIF
438 !
439 ! END OF IF(.NOT.DEBU.OR.NEED_CS.EQ.0)) THEN
440 !
441  ENDIF
442 !
443 ! COMPUTES SUSPENDED TRANSPORT
444 !
445  DO i=1,nsicla
446 ! UCONV DONE IN SUSPENSION_COMPUTATION
447 ! HERE WE USE
448 ! U2D AS TENTATIVE VALUE OF UCONV
449  CALL os('X=YZ ',x=t11,y=u2d, z=hn)
450  CALL os('X=YZ ',x=t12,y=v2d, z=hn)
451 !
452  CALL os('X=YZ ',x=qsclxs%ADR(i)%P,y=cs%ADR(i)%P,z=t11)
453  CALL os('X=YZ ',x=qsclys%ADR(i)%P,y=cs%ADR(i)%P,z=t12)
454 !
455  CALL os('X=N(Y,Z) ',x=qscl_s%ADR(i)%P,
456  & y=qsclxs%ADR(i)%P,z=qsclys%ADR(i)%P)
457 !
458  ENDDO
459 
460  DO j=1,npoin
461  DO i=1,nsicla
462  qs_s%R(j) = qs_s%R(j) + qscl_s%ADR(i)%P%R(j)
463  ENDDO
464  ENDDO
465  ENDIF
466 !
467 ! END OF SUSPENSION
468 !
469 !
470 ! COMPUTES THE TRANSPORT FOR EACH CLASS (IF NOT RESTART OR IF
471 ! DATA NOT FOUND)
472  DO i=1, nsicla
473  WRITE(lu,*) 'QSCL REINITIALISED IN INIT_TRANSPORT'
474  WRITE(lu,*) 'FOR CLASS ',i
475  IF(charr.AND.susp) THEN
476  CALL os('X=Y+Z ', x=qscl%ADR(i)%P,
477  & y=qscl_s%ADR(i)%P, z=qscl_c%ADR(i)%P)
478  ELSEIF(charr) THEN
479  CALL os('X=Y ',x=qscl%ADR(i)%P,y=qscl_c%ADR(i)%P)
480  ELSEIF(susp) THEN
481  CALL os('X=Y ',x=qscl%ADR(i)%P,y=qscl_s%ADR(i)%P)
482  ENDIF
483  ENDDO
484 !
485 ! COMPUTES TOTAL TRANSPORT QS
486 !
487  WRITE(lu,*) 'QS REINITIALISED IN INIT_TRANSPORT'
488  IF(charr.AND.susp) THEN
489  CALL os('X=Y+Z ',x=qs,y=qs_c,z=qs_s)
490  ELSEIF(charr) THEN
491  CALL os('X=Y ',x=qs,y=qs_c)
492  ELSEIF(susp) THEN
493  CALL os('X=Y ',x=qs,y=qs_s)
494  ENDIF
495 !
496 !-----------------------------------------------------------------------
497 !
498  RETURN
499  END
subroutine suspension_sandflow(FDM, FD90, NPOIN, GRAV, XMVE, XMVS, ZERO, CSTAEQ, HN, U2D, V2D, CSRATIO)
subroutine suspension_vanrijn(FDM, TAUP, NPOIN, GRAV, XMVE, XMVS, VCE, ZERO, AC, CSTAEQ, ZREF)
subroutine bedload_formula(U2D, V2D, UCMOY, HN, CF, MU, TOB, TOBW, UW, TW, THETAW, FW, ACLADM, UNLADM, KSP, KSR, AVA, NPOIN, ICF, HIDFAC, XMVS, XMVE, DM, GRAV, VCE, HMIN, XWC, D90, KARMAN, ZERO, PI, SUSP, AC, HIDING, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, TETAP, QSC, QSS, IELMT, SECCURRENT, SLOPEFF, COEFPN, CALFA, SALFA, BIJK, HOULE, SANFRA)
type(bief_obj), target mpm_aray
subroutine suspension_rouse(USTAR, HN, NPOIN, KARMAN, ZERO, XWC, ZREF, T2)
subroutine condim_susp(CS, CS0, NSICLA)
Definition: condim_susp.f:7
subroutine suspension_bijker(TAUP, NPOIN, CHARR, QSC, ZREF, ZERO, CSTAEQ, XMVE)
subroutine os(OP, X, Y, Z, C, IOPT, INFINI, ZERO)
Definition: os.f:7
subroutine init_transport(TROUVE, DEBU, HIDING, NSICLA, NPOIN, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, CHARR, QS_C, QSXC, QSYC, CALFA_CL, SALFA_CL, COEFPN, SLOPEFF, SUSP, QS_S, QS, QSCL, QSCL_C, QSCL_S, QSCLXS, QSCLYS, UNORM, U2D, V2D, HN, CF, MU, TOB, TOBW, UW, TW, THETAW, FW, HOULE, AVAIL, ACLADM, UNLADM, KSP, KSR, KS, ICF, HIDFAC, XMVS, XMVE, GRAV, VCE, HMIN, KARMAN, ZERO, PI, AC, IMP_INFLOW_C, ZREF, ICQ, CSTAEQ, CSRATIO, CMAX, CS, CS0, SECCURRENT, BIJK, IELMT, FDM, XWC, FD90, SEDCO, VITCE, PARTHENIADES, VITCD, U3D, V3D, CODE)
double precision, target mpm
subroutine suspension_fredsoe(DM, TAUP, NPOIN, GRAV, XMVE, XMVS, AC, CSTAEQ)
Definition: bief.f:3