The TELEMAC-MASCARET system  trunk
bedload_solidischarge_gaia.f
Go to the documentation of this file.
1 ! *************************************
3 ! *************************************
4 !
5  &(mesh,u2d,v2d,unorm,hn,tw,uw,mu,tob,cf,tobw,fw,thetaw,
6  & ratio_sand,maskpt,maskel,acladm,unladm,ksp,ksr,liqbor,
7  & debug,npoin,nptfr,ielmt,icf,kent,optban,
8  & hidfac,grav,dcla,xwc,xmve,xmvs,vce,hmin,
9  & hidi,karman,zero,pi,k_h_y,
10  & susp,msk,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,
11  & t11,t12,ac,hiding,qsc,qss,
12  & slopeff,coefpn,phised,calfa,salfa,beta,zf,s,
13  & devia,beta2,seccurrent,
14  & bijk,houle,unsv2d,u3d,v3d,code,h_tel,
15  & hw,thetac,tobcw_mean,tobcw_max,cstaeq,sanfra)
16 !
17 !***********************************************************************
18 ! GAIA
19 !***********************************************************************
20 !
22 ! According to the formula used, it also computes qss
23 !
24 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
101 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
102 !
103  USE interface_gaia,
104  & ex_bedload_solidischarge => bedload_solidischarge_gaia
105  USE bief
106 !
108  IMPLICIT NONE
109 !
110 !!-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
111 !
112  TYPE(bief_mesh), INTENT(INOUT) :: MESH
113  TYPE(bief_obj), INTENT(IN) :: U2D, V2D, HN, TW, UW
114  TYPE(bief_obj), INTENT(IN) :: UNORM ,MU, KSR ,KSP
115  TYPE(bief_obj), INTENT(IN) :: TOB, CF, TOBW, FW, THETAW
116  TYPE(bief_obj), INTENT(IN) :: MASKPT, MASKEL
117  TYPE(bief_obj), INTENT(IN) :: ACLADM, UNLADM, LIQBOR
118  INTEGER, INTENT(IN) :: DEBUG
119  INTEGER, INTENT(IN) :: NPOIN, NPTFR, IELMT, ICF
120  INTEGER, INTENT(IN) :: KENT, OPTBAN,HIDFAC
121  DOUBLE PRECISION, INTENT(IN) :: GRAV, DCLA, XWC, XMVE, XMVS
122  DOUBLE PRECISION, INTENT(IN) :: VCE, HMIN
123  DOUBLE PRECISION, INTENT(IN) :: HIDI
124  DOUBLE PRECISION, INTENT(IN) :: KARMAN, ZERO, PI
125  DOUBLE PRECISION, INTENT(IN) :: K_H_Y
126  LOGICAL, INTENT(IN) :: SUSP, MSK,SECCURRENT,HOULE
127  TYPE(bief_obj), INTENT(INOUT) :: T1,T2,T3,T4,T5,T6
128  TYPE(bief_obj), INTENT(INOUT) :: T7,T8,T9,T10,T11,T12
129  DOUBLE PRECISION, INTENT(INOUT) :: AC
130  TYPE(bief_obj), INTENT(INOUT) :: HIDING
131  TYPE(bief_obj), INTENT(INOUT) :: QSC,QSS
132 !
133  INTEGER, INTENT(IN) :: SLOPEFF,DEVIA
134  DOUBLE PRECISION, INTENT(IN) :: PHISED,BETA,BETA2
135  TYPE(bief_obj), INTENT(IN) :: ZF,S,UNSV2D
136  TYPE(bief_obj), INTENT(INOUT) :: CALFA,SALFA,COEFPN
137 !
138  DOUBLE PRECISION, INTENT(IN) :: BIJK,RATIO_SAND(npoin)
139 !
140  TYPE(bief_obj), INTENT(IN) :: U3D,V3D
141  CHARACTER(LEN=24), INTENT(IN) :: CODE
142  TYPE(bief_obj), INTENT(IN) :: H_TEL
143  TYPE(bief_obj), INTENT(IN) :: HW, THETAC
144  TYPE(bief_obj), INTENT(IN) :: TOBCW_MEAN, TOBCW_MAX
145  TYPE(bief_obj), INTENT(IN) :: CSTAEQ
146 !
147  DOUBLE PRECISION, INTENT(IN) :: SANFRA(npoin)
148 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
149 !
150  DOUBLE PRECISION U3DNORM
151 !
152  INTEGER :: I
153 !
154 !======================================================================!
155 ! PROGRAM !
156 !======================================================================!
157 !
158  IF (debug > 0) WRITE(lu,*) 'BEDLOAD_EFFPNT_GAIA'
159 !
160 ! SLOPE EFFECT
161 !
162  IF(code(1:9).EQ.'TELEMAC3D') THEN
163  DO i=1,npoin
164  u3dnorm=sqrt(u3d%R(i)**2+v3d%R(i)**2)
165  IF(u3dnorm.GE.1.d-12) THEN
166  calfa%R(i)=u3d%R(i)/u3dnorm
167  salfa%R(i)=v3d%R(i)/u3dnorm
168  ELSE
169  calfa%R(i)=1.d0
170  salfa%R(i)=0.d0
171  ENDIF
172  ENDDO
173  ELSE
174  CALL os('X=Y/Z ',x=calfa, y=u2d, z=unorm, c=0.d0,
175  & iopt=2, infini=1.d0, zero=1.d-12)
176  CALL os('X=Y/Z ',x=salfa, y=v2d, z=unorm, c=0.d0,
177  & iopt=2, infini=0.d0, zero=1.d-12)
178  ENDIF
179 !
180  IF(slopeff.EQ.0) CALL os('X=C ',x=coefpn,c=1.d0)
181 !
182  IF(slopeff.NE.0.OR.devia.NE.0) THEN
184  & (maskel,liqbor,s,zf,npoin,nptfr,ielmt,
185  & kent,beta,pi,msk,mesh,t1,t2,t3,t4,
186  & coefpn,calfa,salfa,slopeff,phised,devia,beta2,
187  & tob,xmvs,xmve,dcla,grav,unsv2d)
188  ENDIF
189 !
190  IF (debug > 0) WRITE(lu,*) 'END_BEDLOAD_EFFPNT'
191 !
192 ! MASKING/EXPOSURE COEFFICIENT
193 !
194  IF (debug > 0) WRITE(lu,*) 'BEDLOAD_HIDING_FACTOR_GAIA'
195 !
196 ! WITH HUNZIKER FORMULATION (6), THE HIDING FACTOR IS COMPUTED
197 ! WITH THE SOLID DISCHARGE (SEE BEDLOAD_HUNZ_MEYER_GAIA.F)
198 !
199  IF(icf.NE.6) THEN
201  & (acladm, hidfac, npoin, hidi, dcla, k_h_y, hiding)
202  ENDIF
203  IF (debug > 0) WRITE(lu,*) 'END_BEDLOAD_HIDING_FACTOR'
204 !
205 ! QSC COMPUTED USING EMPIRICAL FORMULATION : T1 = DQSC/DH !
206 !
207  IF (debug > 0) WRITE(lu,*) 'BEDLOAD_FORMULA_GAIA'
208 !
210  & (u2d,v2d, unorm,hn, cf, mu,tob, tobw, uw, tw, thetaw, fw,
211  & acladm, unladm, ksp,ksr,ratio_sand, npoin, icf, hidfac, xmvs,
212  & xmve, dcla, grav, vce, hmin, xwc, karman, zero,
213  & pi, susp, ac, hiding, t1, t2, t3, t4, t5, t6, t7, t8, t9,
214  & t10, t11, t12, qsc, qss, ielmt,seccurrent,
215  & slopeff, coefpn, calfa, salfa, bijk, houle, h_tel,
216  & hw,thetac,tobcw_mean,tobcw_max,cstaeq,sanfra)
217  IF (debug > 0) WRITE(lu,*) 'END_BEDLOAD_FORMULA'
218 !
219 ! TIDAL FLATS
220 !
221  IF(optban.EQ.2) THEN
222  IF (debug > 0) WRITE(lu,*) 'TIDAL_FLATS_TREATMENT'
223  CALL os('X=XY ', x=qsc, y=maskpt)
224  IF (debug > 0) WRITE(lu,*) 'END_TIDAL_FLATS_TREATMENT'
225  ENDIF
226 !
227 !-----------------------------------------------------------------------
228 !
229  RETURN
230  END
subroutine bedload_hiding_factor_gaia(ACLADM, HIDFAC, NPOIN, HIDI, DCLA, K_H_Y, HIDING)
subroutine bedload_formula_gaia(U2D, V2D, UNORM, HN, CF, MU, TOB, TOBW, UW, TW, THETAW, FW, ACLADM, UNLADM, KSP, KSR, RATIO_SAND, NPOIN, ICF, HIDFAC, XMVS, XMVE, DCLA, GRAV, VCE, HMIN, XWC, 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, H_TEL, HW, THETAC, TOBCW_MEAN, TOBCW_MAX, CSTAEQ, SANFRA)
subroutine bedload_effpnt_gaia(MASKEL, LIQBOR, S, ZF, NPOIN, NPTFR, IELMT, KENT, BETA, PI, MSK, MESH, DZFDX, DZFDY, CTETA, STETA, COEF, CALFA, SALFA, SLOPEFF, PHISED, DEVIA, BETA2, TOB, XMVS, XMVE, DCLA, GRAV, UNSV2D)
subroutine bedload_solidischarge_gaia(MESH, U2D, V2D, UNORM, HN, TW, UW, MU, TOB, CF, TOBW, FW, THETAW, RATIO_SAND, MASKPT, MASKEL, ACLADM, UNLADM, KSP, KSR, LIQBOR, DEBUG, NPOIN, NPTFR, IELMT, ICF, KENT, OPTBAN, HIDFAC, GRAV, DCLA, XWC, XMVE, XMVS, VCE, HMIN, HIDI, KARMAN, ZERO, PI, K_H_Y, SUSP, MSK, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, AC, HIDING, QSC, QSS, SLOPEFF, COEFPN, PHISED, CALFA, SALFA, BETA, ZF, S, DEVIA, BETA2, SECCURRENT, BIJK, HOULE, UNSV2D, U3D, V3D, CODE, H_TEL, HW, THETAC, TOBCW_MEAN, TOBCW_MAX, CSTAEQ, SANFRA)
subroutine os(OP, X, Y, Z, C, IOPT, INFINI, ZERO)
Definition: os.f:7
Definition: bief.f:3