The TELEMAC-MASCARET system  trunk
totnrj.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE totnrj
3 ! *****************
4 !
5  &(varian, f, nf, ndire, npoin2)
6 !
7 !***********************************************************************
8 ! TOMAWAC V6P1 28/06/2011
9 !***********************************************************************
10 !
11 !brief COMPUTES THE VARIANCE OF THE DIRECTIONAL SPECTRUM
12 !+ FOR 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 P. THELLIER; M. BENOIT
21 !+ 09/02/95
22 !+ V1P0
23 !+ CREATED
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 !+ 28/06/2011
39 !+ V6P1
40 !+ Translation of French names of the variables in argument
41 !
42 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
43 !| DFREQ |-->| FREQUENCY STEPS BETWEEN DISCRETIZED FREQUENCIES
44 !| F |---| VARIANCE DENSITY DIRECTIONAL SPECTRUM
45 !| FREQ |-->| DISCRETIZED FREQUENCIES
46 !| NF |-->| NUMBER OF FREQUENCIES
47 !| NDIRE |-->| NUMBER OF DIRECTIONS
48 !| NPOIN2 |-->| NUMBER OF POINTS IN 2D MESH
49 !| TAILF |-->| SPECTRUM QUEUE FACTOR
50 !| VARIAN |<--| SPECTRUM VARIANCE
51 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
52 !
54 !
55  USE interface_tomawac, ex_totnrj => totnrj
56  IMPLICIT NONE
57 !
58 !.....VARIABLES IN ARGUMENT
59 ! """"""""""""""""""""
60  INTEGER, INTENT(IN) :: NF , NDIRE , NPOIN2
61  DOUBLE PRECISION, INTENT(IN) :: F(npoin2,ndire,nf)
62  DOUBLE PRECISION, INTENT(INOUT) :: VARIAN(npoin2)
63 !
64 !.....LOCAL VARIABLES
65 ! """""""""""""""""
66  INTEGER IP , JP , JF
67  DOUBLE PRECISION AUX1 , DTETAR
68 !
69 !
70  dtetar=deupi/float(ndire)
71  DO ip = 1,npoin2
72  varian(ip) = 0.d0
73  ENDDO
74 !
75 !-----C-------------------------------------------------------C
76 !-----C SUMS UP THE DISCRETISED PART OF THE SPECTRUM C
77 !-----C-------------------------------------------------------C
78 !
79  DO jf = 1,nf-1
80  aux1=dfreq(jf)*dtetar
81  DO jp = 1,ndire
82  DO ip=1,npoin2
83  varian(ip) = varian(ip) + f(ip,jp,jf)*aux1
84  ENDDO ! IP
85  ENDDO ! JP
86  ENDDO ! JF
87 !
88 !-----C-------------------------------------------------------------C
89 !-----C TAKES THE HIGH FREQUENCY PART INTO ACCOUNT (OPTIONAL) C
90 !-----C-------------------------------------------------------------C
91 !
92  IF(tailf.GT.1.d0) THEN
93  aux1=dtetar*(dfreq(nf)+freq(nf)/(tailf-1.d0))
94  ELSE
95  aux1=dtetar*dfreq(nf)
96  ENDIF
97  DO jp = 1,ndire
98  DO ip=1,npoin2
99  varian(ip) = varian(ip) + f(ip,jp,nf)*aux1
100  ENDDO ! IP
101  ENDDO ! JP
102 !
103  RETURN
104  END
double precision, dimension(:), pointer freq
double precision, dimension(:), pointer dfreq
subroutine totnrj(VARIAN, F, NF, NDIRE, NPOIN2)
Definition: totnrj.f:7