The TELEMAC-MASCARET system  trunk
qveg.f
Go to the documentation of this file.
1 ! ***************
2  SUBROUTINE qveg
3 ! ***************
4 !
5  & ( tstot , tsder , f , varian , fmoy , xkmoy , nf , ndire ,
6  & npoin2 )
7 !
8 !***********************************************************************
9 ! TOMAWAC V7P0
10 !***********************************************************************
11 !
12 !brief Takes into account the friction due to vegetation
13 !
14 !history VITO BACCHI (EDF - LNHE)
15 !+ 12/09/2014
16 !+ V7P0
17 !+ First version, on birthday eve...
18 !
19 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
20 !| DEPTH |-->| WATER DEPTH
21 !| F |-->| DIRECTIONAL SPECTRUM
22 !| FMOY |-->| MEAN SPECTRAL FRQUENCY FMOY (relative frequency)
23 !| NF |-->| NUMBER OF FREQUENCIES
24 !| NDIRE |-->| NUMBER OF DIRECTIONS
25 !| NPOIN2 |-->| NUMBER OF POINTS IN 2D MESH
26 !| TSDER |<->| DERIVED PART OF THE SOURCE TERM CONTRIBUTION
27 !| TSTOT |<->| TOTAL PART OF THE SOURCE TERM CONTRIBUTION
28 !| VARIAN |-->| ENERGY SPECTRUM VARIANCE
29 !| XKMOY |-->| AVERAGE WAVE NUMBER
30 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
31 !
32  USE bief
34 !
35  USE interface_tomawac, ex_qveg => qveg
36  IMPLICIT NONE
37 !
38 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
39 !
40  INTEGER, INTENT(IN) :: NF,NDIRE,NPOIN2
41  DOUBLE PRECISION, INTENT(IN) :: XKMOY(npoin2),VARIAN(npoin2)
42  DOUBLE PRECISION, INTENT(INOUT) :: TSTOT(npoin2,ndire,nf)
43  DOUBLE PRECISION, INTENT(INOUT) :: TSDER(npoin2,ndire,nf)
44  DOUBLE PRECISION, INTENT(IN) :: F(npoin2,ndire,nf),FMOY(npoin2)
45 !
46 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
47 !
48  INTEGER JP , JF , IP
49  DOUBLE PRECISION C1,CVEG,CD,NV,BV,ALFA,KH,AKH,RO,DV
50  DOUBLE PRECISION AUX,NUM,DENUM,SHAKH, BETA
51 !
52 !-----------------------------------------------------------------------
53 !
54 ! DISSIPATION COEFFICIENTS OF VEGETATION
55  ro = 1.d0
56 ! NUMBER OF PLANTS*SQM
57  nv = 20.d0
58 ! PLANT AREA PER UNINT HEIGHT
59  bv = 0.25d0
60 ! BULK DRAG COEFFICIENT
61  cd = 0.2d0
62 ! VEGETATION HEIGHT
63  dv = 2.d0
64 !TF NEXT LINE USELESS
65 ! ALFA = 0.9D0
66  c1 = - sqrt(2.d0/pi)*gravit**2
67  cveg = c1*cd*bv*nv/(deupi**3)
68 !
69 ! VEGETATION OVER A CONSTANT DEPTH
70 ! COMPUTES THE BETA COEFFICIENT : QVEG1 = BETA * F
71 !
72  DO ip=1,npoin2
73  alfa = dv/depth(ip)
74  kh = xkmoy(ip)*depth(ip)
75  akh = alfa*kh
76  shakh = sinh(akh)
77  num = shakh*(shakh**2 + 3.d0)
78  denum = 3.d0*xkmoy(ip)*cosh(kh)**3
79  aux = (xkmoy(ip)/fmoy(ip))**3
80  beta = ro*cveg*aux*(num/denum)*sqrt(varian(ip))
81 !
82 ! LOOP OVER THE DISCRETISED FREQUENCIES
83 !
84 ! TAKES THE SOURCE TERM INTO ACCOUNT
85 !
86  DO jf=1,nf
87  DO jp=1,ndire
88  tstot(ip,jp,jf) = tstot(ip,jp,jf)+beta*f(ip,jp,jf)
89  tsder(ip,jp,jf) = tsder(ip,jp,jf)+beta
90  ENDDO
91  ENDDO
92 
93  ENDDO
94 
95 !
96 !-----------------------------------------------------------------------
97 !
98  RETURN
99  END
double precision, dimension(:), pointer depth
subroutine qveg(TSTOT, TSDER, F, VARIAN, FMOY, XKMOY, NF, NDIRE, NPOIN2)
Definition: qveg.f:8
Definition: bief.f:3