calcuw.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\sisyphe\calcuw.f
00002 !
00047                      SUBROUTINE CALCUW
00048 !                    *****************
00049 !
00050      & ( UW, H, HW, TW, GRAV ,NPOIN)
00051 !
00052 !***********************************************************************
00053 ! SISYPHE   V6P1                                   21/07/2011
00054 !***********************************************************************
00055 !
00056 !
00057 !
00058 !
00059 !
00060 !
00061 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00062 !| GRAV           |-->| ACCELERATION OF GRAVITY
00063 !| H              |-->| WATER DEPTH
00064 !| HW             |-->| WAVE DEPTH
00065 !| NPOIN          |-->| NUMBER OF POINTS
00066 !| TW             |-->| WAVE PERIOD
00067 !| UW             |<--| ORBITAL VELOCITY (WAVE)
00068 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00069 !
00070       IMPLICIT NONE
00071 !
00072 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00073 !
00074       INTEGER, INTENT(IN) :: NPOIN
00075       DOUBLE PRECISION, INTENT(INOUT) :: UW(NPOIN)
00076       DOUBLE PRECISION, INTENT(IN) :: TW(NPOIN),H(NPOIN), HW(NPOIN)
00077       DOUBLE PRECISION, INTENT(IN) :: GRAV
00078 !
00079 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00080 !
00081       DOUBLE PRECISION   PI,DPI2
00082       PARAMETER ( PI = 3.141592653589793D0 , DPI2 = (4.D0*PI*PI) )
00083       DOUBLE PRECISION   POL, Y ,X
00084       INTEGER I
00085       INTRINSIC SQRT, SINH
00086 !
00087 !  SOLVES Y=X*TH(X) WITH Y=(2*PI/TW)**2*H/G AND X=(2*PI/L)*H
00088 !  USING A POLYNOMIAL FUNCTION (HUNT METHOD - 9TH ORDER)
00089 !
00090       DO I=1,NPOIN
00091         IF ( (TW(I) .GT. 0.D0).AND.(HW(I).GT.0.D0) ) THEN
00092           Y = DPI2 / GRAV * H(I) / (TW(I) * TW(I))
00093           POL = 1.D0 + Y * ( 0.66667D0 +
00094      &                Y * ( 0.35550D0 +
00095      &                Y * ( 0.16084D0 +
00096      &                Y * ( 0.06320D0 +
00097      &                Y * ( 0.02174D0 +
00098      &                Y * ( 0.00654D0 +
00099      &                Y * ( 0.00171D0 +
00100      &                Y * ( 0.00039D0 +
00101      &                Y * ( 0.00011D0 ) ))))))))
00102           X = SQRT( Y*Y + Y / POL )
00103 !
00104           IF ( X .GT. 10.D0) THEN
00105             UW(I) = 0.D0
00106           ELSE
00107             UW(I) = PI / TW(I) * HW(I) / (SINH(X))
00108           ENDIF
00109         ELSE
00110           UW(I) = 0.D0
00111         ENDIF
00112       ENDDO
00113       RETURN
00114       END SUBROUTINE CALCUW

Generated on Fri Aug 31 2013 18:12:58 by S.E.Bourban (HRW) using doxygen 1.7.0