The TELEMAC-MASCARET system  trunk
vitfon.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE vitfon
3 ! *****************
4 !
5  &(vifond, f, xk , nf , npoin2, ndire )
6 !
7 !***********************************************************************
8 ! TOMAWAC V6P1 29/06/2011
9 !***********************************************************************
10 !
11 !brief COMPUTES THE MAXIMUM ORBITAL VELOCITY NEAR THE BOTTOM
12 !+ (AVERAGE VELOCITY ON THE SPECTRUM).
13 !
14 !history M. BENOIT
15 !+ 05/07/96
16 !+ V1P2
17 !+
18 !
19 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
20 !+ 13/07/2010
21 !+ V6P0
22 !+ Translation of French comments within the FORTRAN sources into
23 !+ English comments
24 !
25 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
26 !+ 21/08/2010
27 !+ V6P0
28 !+ Creation of DOXYGEN tags for automated documentation and
29 !+ cross-referencing of the FORTRAN sources
30 !
31 !history G.MATTAROLO (EDF - LNHE)
32 !+ 29/06/2011
33 !+ V6P1
34 !+ Translation of French names of the variables in argument
35 !
36 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
37 !| BETA |<->| WORK TABLE
38 !| DEPTH |-->| WATER DEPTH
39 !| DFREQ |-->| FREQUENCY STEPS BETWEEN DISCRETIZED FREQUENCIES
40 !| F |-->| VARIANCE DENSITY DIRECTIONAL SPECTRUM
41 !| NF |-->| NUMBER OF FREQUENCIES
42 !| NDIRE |-->| NUMBER OF DIRECTIONS
43 !| NPOIN2 |-->| NUMBER OF POINTS IN 2D MESH
44 !| UWBM |<--| MAXIMUM ORBITAL VELOCITY NEAR THE BOTTOM
45 !| XK |-->| DISCRETIZED WAVE NUMBER
46 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
47 !
49 !
50  USE interface_tomawac, ex_vitfon => vitfon
51  IMPLICIT NONE
52 !
53 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
54 !
55  INTEGER, INTENT(IN) :: NF,NDIRE,NPOIN2
56  DOUBLE PRECISION, INTENT(IN) :: F(npoin2,ndire,nf)
57  DOUBLE PRECISION, INTENT(IN) :: XK(npoin2,nf)
58  DOUBLE PRECISION, INTENT(INOUT) :: VIFOND(npoin2)
59 !
60 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
61 !
62  INTEGER IP , JP , JF
63  DOUBLE PRECISION DTETAR, DEUKD , COEF , BETAA
64 !
65 !-----------------------------------------------------------------------
66 !
67  dtetar=deupi/float(ndire)
68 !
69  DO ip = 1,npoin2
70  vifond(ip) = 0.d0
71 !
72 ! SUMS UP THE DISCRETISED PART OF THE SPECTRUM
73 !
74  DO jf = 1,nf
75  coef=2.d0*gravit*dfreq(jf)*dtetar
76  deukd = min(2.d0*depth(ip)*xk(ip,jf),7.d2)
77  betaa = coef*xk(ip,jf)/sinh(deukd)
78  DO jp = 1,ndire
79  vifond(ip) = vifond(ip) + f(ip,jp,jf)*betaa
80  ENDDO
81  ENDDO
82 !
83  IF (vifond(ip).GE.0) THEN
84  vifond(ip) = sqrt(vifond(ip))
85  ELSE
86  WRITE(*,*) 'VITESSE NEGATIVE'
87  CALL plante(0)
88  ENDIF
89  ENDDO
90 !
91 !-----------------------------------------------------------------------
92 !
93  RETURN
94  END
subroutine vitfon(VIFOND, F, XK, NF, NPOIN2, NDIRE)
Definition: vitfon.f:7
double precision, dimension(:), pointer depth
double precision, dimension(:), pointer dfreq