The TELEMAC-MASCARET system  trunk
wpower.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE wpower
3 ! *****************
4 !
5  &( f , cg , nf , ndire , npoin2)
6 !
7 !***********************************************************************
8 ! TOMAWAC V6P1 29/06/2011
9 !***********************************************************************
10 !
11 !brief COMPUTES THE VARIANCE OF THE DIRECTIONAL SPECTRUM FOR
12 !+ ALL THE NODES IN THE 2D MESH. IT IS COMPUTED BY
13 !+ INTEGRATION OVER FREQUENCIES AND DIRECTIONS AND CAN
14 !+ TAKE THE HIGH FREQUENCY PART OF THE SPECTRUM INTO
15 !+ ACCOUNT.
16 !
17 !note THE HIGH-FREQUENCY PART OF THE SPECTRUM IS ONLY CONSIDERED
18 !+ IF THE TAIL FACTOR (TAILF) IS STRICTLY GREATER THAN 1.
19 !
20 !history M. BENOIT
21 !+ 20/05/2003
22 !+ V5P3
23 !+
24 !
25 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
26 !+ 13/07/2010
27 !+ V6P0
28 !+ Translation of French comments within the FORTRAN sources into
29 !+ English comments
30 !
31 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
32 !+ 21/08/2010
33 !+ V6P0
34 !+ Creation of DOXYGEN tags for automated documentation and
35 !+ cross-referencing of the FORTRAN sources
36 !
37 !history G.MATTAROLO (EDF - LNHE)
38 !+ 29/06/2011
39 !+ V6P1
40 !+ Translation of French names of the variables in argument
41 !
42 !history G.MATTAROLO (EDF - LNHE)
43 !+ 29/06/2011
44 !+ V6P1
45 !+ Translation of French names of the variables in argument
46 !
47 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
48 !| CG |-->| DISCRETIZED GROUP VELOCITY
49 !| DFREQ |-->| FREQUENCY STEPS BETWEEN DISCRETIZED FREQUENCIES
50 !| F |-->| VARIANCE DENSITY DIRECTIONAL SPECTRUM
51 !| FREQ |-->| DISCRETIZED FREQUENCIES
52 !| GRAVIT |-->| GRAVITY ACCELERATION
53 !| NF |-->| NUMBER OF FREQUENCIES
54 !| NDIRE |-->| NUMBER OF DIRECTIONS
55 !| NPOIN2 |-->| NUMBER OF POINTS IN 2D MESH
56 !| POWER |<--| WAVE POWER PER METER ALONG WAVE CREST
57 !| ROEAU |-->| WATER DENSITY
58 !| TAILF |-->| FACTEUR DE QUEUE DU SPECTRE
59 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
60 !
62  & dfreq, power
63 !
64  USE interface_tomawac, ex_wpower => wpower
65  IMPLICIT NONE
66 !
67 !.....VARIABLES IN ARGUMENT
68 ! """"""""""""""""""""
69  INTEGER, INTENT(IN) :: NF , NDIRE , NPOIN2
70  DOUBLE PRECISION, INTENT(IN) :: F(npoin2,ndire,nf)
71  DOUBLE PRECISION, INTENT(IN) :: CG(npoin2,nf)
72 !.....LOCAL VARIABLES
73 ! """""""""""""""""
74  INTEGER IP , JP , JF
75  DOUBLE PRECISION AUX1 , DTETAR, ROGER
76 !
77 !
78  dtetar=deupi/dble(ndire)
79  roger=roeau*gravit/1000.d0
80  DO ip=1,npoin2
81  power(ip)=0.d0
82  ENDDO
83 !
84 !-----C-------------------------------------------------------C
85 !-----C SUMS UP THE DISCRETISED PART OF THE SPECTRUM C
86 !-----C-------------------------------------------------------C
87  DO jf=1,nf
88  aux1=dfreq(jf)*dtetar
89  DO jp=1,ndire
90  DO ip=1,npoin2
91  power(ip) = power(ip) + f(ip,jp,jf)*cg(ip,jf)*aux1
92  ENDDO
93  ENDDO
94  ENDDO
95 !
96 !-----C-------------------------------------------------------------C
97 !-----C TAKES THE HIGH FREQUENCY PART INTO ACCOUNT (OPTIONAL) C
98 !-----C-------------------------------------------------------------C
99 !
100  IF(tailf.GT.1.d0) THEN
101  aux1=dtetar*gravit/(2.d0*deupi*tailf)
102  DO jp=1,ndire
103  DO ip=1,npoin2
104  power(ip)=power(ip) + f(ip,jp,nf)*aux1
105  ENDDO
106  ENDDO
107  ENDIF
108 !
109 !-----C-------------------------------------------------------------C
110 !-----C CONVERTS TO KW/M (MULTIPLIES BY RO.G/1000) C
111 !-----C-------------------------------------------------------------C
112 !
113  DO ip=1,npoin2
114  power(ip)=power(ip)*roger
115  ENDDO
116 !
117  RETURN
118  END
subroutine wpower(F, CG, NF, NDIRE, NPOIN2)
Definition: wpower.f:7