The TELEMAC-MASCARET system  trunk
intang.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE intang
3 ! *****************
4 !
5  &( lavant, lapres, idire , ndire , deltad)
6 !
7 !***********************************************************************
8 ! TOMAWAC V6P1 17/06/2011
9 !***********************************************************************
10 !
11 !brief GETS THE ANGULAR INDICES AROUND A GIVEN DIRECTION
12 !+ FOR THE NON-LINEAR INTERACTION TERM, USING THE DIA
13 !+ ("DISCRETE INTERACTION APPROXIMATION") METHOD
14 !+ PROPOSED BY HASSELMANN AND HASSELMANN (1985).
15 !+
16 !+
17 !+ PROCEDURE SPECIFIC TO THE CASE WHERE THE DIRECTIONS
18 !+ ARE EVENLY DISTRIBUTED OVER [0;2.PI].
19 !
20 !note THE DELTAD DEVIATION SHOULD BE GIVEN IN DEGREES.
21 !note LAVANT AND LAPRES ARE COMPRISED BETWEEN 1 AND NDIRE.
22 !
23 !reference HASSELMANN S., HASSELMANN K. ET AL.(1985) :
24 !+ "COMPUTATIONS AND PARAMETERIZATIONS OF THE NONLINEAR
25 !+ ENERGY TRANSFER IN GRAVITY-WAVE SPECTRUM. PART2 :
26 !+ PARAMETERIZATIONS OF THE NONLINEAR ENERGY TRANSFER
27 !+ FOR APPLICATION IN WAVE MODELS". JPO, VOL 15, PP 1378-1391.
28 !
29 !history M. BENOIT
30 !+ 26/06/96
31 !+ V1P2
32 !+ CREATED
33 !
34 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
35 !+ 13/07/2010
36 !+ V6P0
37 !+ Translation of French comments within the FORTRAN sources into
38 !+ English comments
39 !
40 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
41 !+ 21/08/2010
42 !+ V6P0
43 !+ Creation of DOXYGEN tags for automated documentation and
44 !+ cross-referencing of the FORTRAN sources
45 !
46 !history G.MATTAROLO (EDF - LNHE)
47 !+ 17/06/2011
48 !+ V6P1
49 !+ Translation of French names of the variables in argument
50 !
51 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
52 !| DELTAD |-->| ANGULAR DEVIATION FROM THE STARTING DIRECTION
53 !| IDIRE |-->| STARTING DIRECTION INDEX
54 !| LAPRES |<--| ANGULAR INDEX FOLLOWING THE DIRECTION
55 !| LAVANT |<--| ANGULAR INDEX PRECEDING THE DIRECTION
56 !| NDIRE |-->| NUMBER OF DIRECTIONS
57 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
58 !
59  USE interface_tomawac, ex_intang => intang
60  IMPLICIT NONE
61 !
62 !.....VARIABLES IN ARGUMENT
63 ! """""""""""""""""""""
64  INTEGER, INTENT(IN) :: NDIRE , IDIRE
65  DOUBLE PRECISION, INTENT(IN) :: DELTAD
66  INTEGER, INTENT(INOUT) :: LAVANT, LAPRES
67 !
68 !.....LOCAL VARIABLES
69 ! """"""""""""""""""
70  DOUBLE PRECISION TETA , DTETAD
71 !
72 !
73  dtetad=360.d0/dble(ndire)
74  teta=dble(idire-1)*dtetad+deltad
75 !
76 !.....TETA IS ADJUSTED TO BE COMPRISED BETWEEN 0 AND 360 DEG.
77 ! """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
78  100 IF (teta.GE.360.d0) THEN
79  teta=teta-360.d0
80  GOTO 100
81  ENDIF
82  110 IF (teta.LT.0.d0) THEN
83  teta=teta+360.d0
84  GOTO 110
85  ENDIF
86 !
87 !.....GETS THE ANGULAR INDICES PRECEDING AND FOLLOWING TETA
88 ! """"""""""""""""""""""""""""""""""""""""""""""""""""""""
89  lavant=int(teta/dtetad)+1
90  lapres=lavant+1
91  IF (lapres.GT.ndire) lapres=1
92 !
93  RETURN
94  END
subroutine intang(LAVANT, LAPRES, IDIRE, NDIRE, DELTAD)
Definition: intang.f:7