The TELEMAC-MASCARET system  trunk
calcuw_gaia.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE calcuw_gaia
3 ! *****************
4 !
5  & ( uw, h, hw, tw, grav ,npoin, type_houle)
6 !
7 !***********************************************************************
8 ! GAIA
9 !***********************************************************************
10 !
12 !
13 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
20 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
21 !
23 !
24  IMPLICIT NONE
25 !
26 !!-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
27 !
28  INTEGER, INTENT(IN) :: NPOIN
29  DOUBLE PRECISION, INTENT(INOUT) :: UW(npoin)
30  DOUBLE PRECISION, INTENT(IN) :: TW(npoin),H(npoin), HW(npoin)
31  DOUBLE PRECISION, INTENT(IN) :: GRAV
32  INTEGER, INTENT(IN) :: TYPE_HOULE
33 !
34 !!-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
35 !
36  DOUBLE PRECISION PI,DPI2
37  DOUBLE PRECISION POL, Y ,X
38 !
39  DOUBLE PRECISION TN,T,A,URMS
40  INTEGER I
41  INTRINSIC sqrt, sinh, atan
42 !
43 !-----------------------------------------------------------------------
44 !
45  pi = 4.d0 * atan( 1.d0 )
46  dpi2 = 4.d0 * pi * pi
47 !
48  IF(type_houle==1)THEN
49 ! REGULAR (MONOCHROMATIC) WAVE CASE
50 !
51 ! SOLVES Y=X*TH(X) WITH Y=(2*PI/TW)**2*H/G AND X=(2*PI/L)*H
52 ! USING A POLYNOMIAL FUNCTION (HUNT METHOD - 9TH ORDER)
53 !
54  DO i=1,npoin
55  IF ( (tw(i) .GT. 0.d0).AND.(hw(i).GT.0.d0) ) THEN
56  y = dpi2 / grav * h(i) / (tw(i) * tw(i))
57  pol = 1.d0 + y * ( 0.66667d0 +
58  & y * ( 0.35550d0 +
59  & y * ( 0.16084d0 +
60  & y * ( 0.06320d0 +
61  & y * ( 0.02174d0 +
62  & y * ( 0.00654d0 +
63  & y * ( 0.00171d0 +
64  & y * ( 0.00039d0 +
65  & y * ( 0.00011d0 ) ))))))))
66  x = sqrt( y*y + y / pol )
67 !
68  IF ( x .GT. 10.d0) THEN
69  uw(i) = 0.d0
70  ELSE
71  uw(i) = pi / tw(i) * hw(i) / (sinh(x))
72  ENDIF
73  ELSE
74  uw(i) = 0.d0
75  ENDIF
76  ENDDO
77 !
78  ELSEIF(type_houle==2)THEN
79 ! IRREGULAR (SPECTRAL)WAVE CASE
80 !
81 ! SOULSBY AND SMALLMAN METHOD (1986)
82 !
83  DO i=1,npoin
84  IF ( (tw(i) .GT. 0.d0).AND.(hw(i).GT.0.d0) ) THEN
85 ! for a Jonswap spectrum
86 ! Tp=1.28*Tz
87 ! (Tw is supposed be Tp from tomawac)
88 ! (Hw is supposed be Hm0 from tomawac)
89  tn=(h(i)/grav)**0.5d0
90 ! T=TN/TZ
91  t=tn/(tw(i)/1.28d0)
92  a=(6500.d0+(0.56+15.54*t)**6)**(1.d0/6.d0)
93  urms=(0.25d0/(1+a*t**2)**3)*hw(i)/tn
94  uw(i)= dsqrt(2.d0)*urms
95  ELSE
96  uw(i)=0.d0
97  ENDIF
98  ENDDO
99  ELSE
100  WRITE(lu,*)'VALUE OF TYPE OF WAVES IS NOT OK'
101  CALL plante(1)
102  stop
103  ENDIF
104 !
105  RETURN
106  END SUBROUTINE calcuw_gaia
subroutine calcuw_gaia(UW, H, HW, TW, GRAV, NPOIN, TYPE_HOULE)
Definition: calcuw_gaia.f:7