The TELEMAC-MASCARET system  trunk
bedload_interact_gaia.f
Go to the documentation of this file.
1 ! ********************************
2  SUBROUTINE bedload_interact_gaia
3 ! ********************************
4 !
5  &(ucmoy,tobw,tob,alphaw,fw,cf,uw,npoin,xmve,fcw)
6 !
7 !***********************************************************************
8 ! GAIA
9 !***********************************************************************
10 !
13 !
14 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
25 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
26 !
27  USE interface_gaia,ex_bedload_interact => bedload_interact_gaia
28  USE bief
30  IMPLICIT NONE
31  !
32  ! 2/ GLOBAL VARIABLES
33  ! -------------------
34  !
35  TYPE(bief_obj), INTENT(IN) :: UCMOY, TOBW, TOB, ALPHAW
36  TYPE(bief_obj), INTENT(IN) :: FW, CF, UW
37  INTEGER, INTENT(IN) :: NPOIN
38  DOUBLE PRECISION, INTENT(IN) :: XMVE
39  TYPE(bief_obj), INTENT(INOUT) :: FCW
40  !
41  ! 3/ LOCAL VARIABLES
42  ! ------------------
43  !
44  INTEGER :: I
45  DOUBLE PRECISION :: TX, LOGF
46  DOUBLE PRECISION :: CSAL,CSAL1, CSAL3
47  DOUBLE PRECISION :: AX, MX, NX, BX, PX, QX
48  DOUBLE PRECISION :: UCW2, TAUCW,ZERO
49 !
50  INTRINSIC max
51 !
52 !======================================================================!
53 !======================================================================!
54 ! PROGRAM !
55 !======================================================================!
56 !======================================================================!
57 !
58  zero = 1.d-6
59 !
60  DO i = 1, npoin
61 !
62  tx = tob%R(i) / max((tob%R(i) + tobw%R(i)),zero)
63 !
64  logf = log10(2.d0*max(fw%R(i),zero)/max(cf%R(i),zero))
65  csal = abs(cos(alphaw%R(i)))
66  csal1 = csal**0.82d0
67  csal3 = csal**2.70d0
68 !
69  ax = -0.07d0 + 1.87d0*csal1 + (-0.34d0 - 0.12d0*csal1)*logf
70  mx = 0.72d0 - 0.33d0*csal1 + ( 0.08d0 + 0.34d0*csal1)*logf
71  nx = 0.78d0 - 0.23d0*csal1 + ( 0.12d0 - 0.12d0*csal1)*logf
72 !
73  bx = 0.27d0 + 0.51d0*csal3 + (-0.10d0 - 0.24d0*csal3)*logf
74  px = -0.75d0 + 0.13d0*csal3 + ( 0.12d0 + 0.02d0*csal3)*logf
75  qx = 0.89d0 + 0.40d0*csal3 + ( 0.50d0 - 0.28d0*csal3)*logf
76 !
77  IF(tx.LE.zero) THEN
78  taucw = tobw%R(i)
79  ELSEIF(tx.LT.1.d0) THEN
80  taucw = (1.d0 + bx * tx**px * (1.d0 - tx)**qx)*tob%R(i)*tx
81  & + (1.d0 + ax * tx**mx * (1.d0 - tx)**nx)*tobw%R(i)
82  ELSE
83  taucw = tob%R(i)
84  ENDIF
85 !
86  ucw2 = (ucmoy%R(i)**2 + 0.5d0 * uw%R(i)**2) * xmve
87  fcw%R(i) = taucw / max(ucw2,1.d-10)
88 !
89  ENDDO
90 !
91 !======================================================================!
92 !======================================================================!
93 !
94  RETURN
95  END
subroutine bedload_interact_gaia(UCMOY, TOBW, TOB, ALPHAW, FW, CF, UW, NPOIN, XMVE, FCW)
Definition: bief.f:3