The TELEMAC-MASCARET system  trunk
angles.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE angles
3 ! *****************
4 !
5  &( xlamd , dtplus, dtmoin)
6 !
7 !***********************************************************************
8 ! TOMAWAC V6P1 08/06/2011
9 !***********************************************************************
10 !
11 !brief COMPUTES THE ANGLES OF RESONANT VECTORS IN THE CASE
12 !+ OF THE STANDARD INTERACTION CONFIGURATION - DIA METHOD
13 !+ PROPOSED BY HASSELMANN AND HASSELMANN (1985).
14 !+
15 !+
16 !+ PROCEDURE SPECIFIC TO THE CASE WHERE THE DIRECTIONS
17 !+ ARE EVENLY DISTRIBUTED OVER [0;2.PI].
18 !
19 !note THE ANGLES DTPLUS AND DTMOIN ARE IN DEGREES AND ARE BOTH
20 !+ POSITIVE BY CONVENTION.
21 !
22 !reference HASSELMANN S., HASSELMANN K. ET AL.(1985) :
23 !+ "COMPUTATIONS AND PARAMETERIZATIONS OF THE NONLINEAR
24 !+ ENERGY TRANSFER IN GRAVITY-WAVE SPECTRUM. PART2 :
25 !+ PARAMETERIZATIONS OF THE NONLINEAR ENERGY TRANSFER
26 !+ FOR APPLICATION IN WAVE MODELS". JPO, VOL 15, PP 1378-1391.
27 !
28 !history M. BENOIT
29 !+ 26/06/96
30 !+ V1P2
31 !+
32 !
33 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
34 !+ 13/07/2010
35 !+ V6P0
36 !+ Translation of French comments within the FORTRAN sources into
37 !+ English comments
38 !
39 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
40 !+ 21/08/2010
41 !+ V6P0
42 !+ Creation of DOXYGEN tags for automated documentation and
43 !+ cross-referencing of the FORTRAN sources
44 !
45 !history G.MATTAROLO (EDF - LNHE)
46 !+ 08/06/2011
47 !+ V6P1
48 !+ Translation of French names of the variables in argument
49 !
50 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
51 !| DTMOIN |<--| ANGLE ASSOCIATED TO THE FREQUENCY (1-XLAMD).FREQ
52 !| DTPLUS |<--| ANGLE ASSOCIATED TO THE FREQUENCY (1+XLAMD).FREQ
53 !| XLAMD |-->| DIA STANDARD CONFIGURATION LAMBDA COEFFICIENT
54 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
55 !
56  USE declarations_tomawac, ONLY : gradeg
57 !
59  USE interface_tomawac, ex_angles => angles
60  IMPLICIT NONE
61 !
62 !
63 !.....VARIABLES IN ARGUMENT
64 ! """""""""""""""""""""
65  DOUBLE PRECISION, INTENT(IN) :: XLAMD
66  DOUBLE PRECISION, INTENT(INOUT) :: DTPLUS, DTMOIN
67 !
68 !.....LOCAL VARIABLES
69 ! """"""""""""""""""
70  DOUBLE PRECISION AUX
71 !
72 !
73 !.....1. CHECKS THAT LAMBDA RANGES BETWEEN 0 AND 0.5.
74 ! """"""""""""""""""""""""""""""""""""""""""""""""""""""
75 !
76  IF(xlamd.LT.0.d0.OR.xlamd.GT.0.5d0) THEN
77  WRITE(lu,1002) xlamd
78  CALL plante(1)
79  stop
80  ENDIF
81 !
82 !.....2. COMPUTES TETA_PLUS (DTPLUS) AND TETA_MOINS (DTMOIN).
83 ! """""""""""""""""""""""""""""""""""""""""""""""""""""""
84  aux=2.d0*xlamd*(1.d0+xlamd*xlamd)
85  dtplus=acos( (1.d0+aux)/(1.d0+xlamd)**2 )*gradeg
86  dtmoin=acos( (1.d0-aux)/(1.d0-xlamd)**2 )*gradeg
87 !
88 !
89  1002 FORMAT('/!/-----------------------------------------------/!/'/
90  & '/!/ PROGRAM STOP IN SUBROUTINE ANGLES /!/'/
91  & '/!/-----------------------------------------------/!/'/
92  & '/!/ THE VALUE OF THE LAMBDA PARAMETER /!/'/
93  & '/!/ USED IN THE DIA METHOD /!/'/
94  & '/!/ MUST BE INCLUDED IN THE INTERVAL [ 0. ; 0.5 ]/!/'/
95  & '/!/ THE VALUE HERE IMPOSED IS : ', g10.4,' /!/'/
96  & '/!/-----------------------------------------------/!/')
97 !
98  RETURN
99  END
subroutine angles(XLAMD, DTPLUS, DTMOIN)
Definition: angles.f:7