The TELEMAC-MASCARET system  trunk
dirale.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE dirale
3 ! *****************
4 !
5  &(dale,expos,tetah,tetmin,tetmax,ndale)
6 !
7 !***********************************************************************
8 ! ARTEMIS V6P1 21/08/2010
9 !***********************************************************************
10 !
11 !brief DISCRETISES A DIRECTIONAL ENERGY SPECTRUM IN
12 !+ NDALE BANDS OF EQUAL ENERGY. THE RESULT IS A
13 !+ LIST OF DIRECTIONS CORRESPONDING TO EACH BAND.
14 !+
15 !+ USES THE FORMULATION GIVEN BY GODA IN ' RANDOM SEAS AND
16 !+ DESIGN OF MARITIME STRUCTURES' - UNIVERSITY OF TOKYO PRESS
17 !+
18 !+ G = ( COS( (TETA-TETAH))/2 ) )**EXPOS
19 !
20 !history J-M HERVOUET (LNH)
21 !+
22 !+
23 !+ LINKED TO BIEF 5.0
24 !
25 !history D. AELBRECHT (LNH)
26 !+ 02/06/1999
27 !+ V5P1
28 !+
29 !
30 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
31 !+ 13/07/2010
32 !+ V6P0
33 !+ Translation of French comments within the FORTRAN sources into
34 !+ English comments
35 !
36 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
37 !+ 21/08/2010
38 !+ V6P0
39 !+ Creation of DOXYGEN tags for automated documentation and
40 !+ cross-referencing of the FORTRAN sources
41 !
42 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
43 !| DALE |<--| DIRECTIONS FOR SPECTRUM DISCRETISATION
44 !| EXPOS |-->| COEFFICIENT FOR THE SPECTRUM FORMULA
45 !| NDALE |-->| NUMBER OF DISCRETISATION BAND
46 !| TETAH |-->| MAIN DIRECTION OF THE PROPAGATION
47 !| TETMAX |-->| MAXIMUM VALUE FOR THE PROPAGATION ANGLE
48 !| TETMIN |-->| MAXIMUM VALUE FOR THE PROPAGATION ANGLE
49 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
50 !
51  USE bief
52  USE interface_artemis, ONLY: spd
53  USE declarations_artemis, ONLY: expo
55  IMPLICIT NONE
56 !
57  INTEGER NDALE,NPAS,I,K
58 !
59  DOUBLE PRECISION DALE(ndale)
60  DOUBLE PRECISION EXPOS,TETMIN,TETMAX,TETAH,DTETA,SUMB,VAR,SUMICI
61 !
62 !-----------------------------------------------------------------------
63 !
64 ! EXPOS IS IN THE COMMON STATEMENT OF FUNCTION SPD (CANNOT BE
65 ! CALLED EXPOS BECAUSE IT IS AN ARGUMENT OF THIS SUBROUTINE)
66  expo = expos
67 !
68 !-----------------------------------------------------------------------
69 !
70 ! NUMBER OF INTEGRATION INTERVALS FOR THE TRAPEZOIDS METHOD
71  npas = 2000*ndale
72 !
73 ! WIDTH OF AN INTEGRATION INTERVAL
74  dteta = (tetmax-tetmin)/float(npas)
75 !
76 ! SURFACE OF THE SPECTRUM
77  sumb = (spd(tetmin-tetah) + spd(tetmax-tetah))/2.d0
78  DO i = 2,npas-1
79  sumb = sumb + spd(tetmin-tetah+float(i)*dteta)
80  ENDDO
81 !
82 ! DIVIDES THE SPECTRUM INTO 2*NDALE BANDS OF EQUAL ENERGY
83  sumb = sumb/float(2*ndale)
84 !
85 ! IDENTIFIES THE ANGLES EVERY (2*I-1)*SUMB (I=1,NDALE)
86  sumici = spd(tetmin-tetah)/2.d0
87  i = 1
88  DO k=1,npas
89  var = spd(tetmin-tetah+dteta*float(k))
90  sumici = sumici + var/2.d0
91  IF (sumici.GE.sumb*float(2*i-1)) THEN
92  dale(i) = tetmin + dteta*(float(k)-0.5d0)
93  i = i + 1
94  IF (i.GT.ndale) RETURN
95  ENDIF
96  sumici = sumici + var/2.d0
97  ENDDO
98 !
99 !-----------------------------------------------------------------------
100 !
101  RETURN
102  END SUBROUTINE
double precision function spd(TETA)
Definition: spd.f:7
subroutine dirale(DALE, EXPOS, TETAH, TETMIN, TETMAX, NDALE)
Definition: dirale.f:7
Definition: bief.f:3