The TELEMAC-MASCARET system
trunk
sources
sisyphe
bedload_direction.f
Go to the documentation of this file.
1
! **************************************
2
SUBROUTINE
bedload_direction
! (_IMP_)
3
! **************************************
4
!
5
& (qu, qv, npoin, pi, thetac)
6
!
7
!***********************************************************************
8
! SISYPHE V6P1 21/07/2011
9
!***********************************************************************
10
!
11
!brief COMPUTES THE THETAC ANGLE (FLOW DIRECTION).
12
!
13
!history C. VILLARET
14
!+ 01/10/2003
15
!+ V5P4
16
!+
17
!
18
!history N.DURAND (HRW), S.E.BOURBAN (HRW)
19
!+ 13/07/2010
20
!+ V6P0
21
!+ Translation of French comments within the FORTRAN sources into
22
!+ English comments
23
!
24
!history N.DURAND (HRW), S.E.BOURBAN (HRW)
25
!+ 21/08/2010
26
!+ V6P0
27
!+ Creation of DOXYGEN tags for automated documentation and
28
!+ cross-referencing of the FORTRAN sources
29
!
30
!history C.VILLARET (EDF-LNHE), P.TASSI (EDF-LNHE)
31
!+ 19/07/2011
32
!+ V6P1
33
!+ Name of variables
34
!+
35
!
36
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
37
!| NPOIN |-->| NUMBER OF POINTS
38
!| PI |-->| PI
39
!| QU |-->| DISCHARGE X
40
!| QV |-->| DISCHARGE Y
41
!| THETAC |<->| CURRENT ANGLE TO THE X AXIS
42
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
43
!
44
USE
interface_sisyphe
,
45
& ex_bedload_direction =>
bedload_direction
46
USE
bief
47
USE
declarations_special
48
IMPLICIT NONE
49
!
50
! 2/ GLOBAL VARIABLES
51
! -------------------
52
TYPE
(bief_obj),
INTENT(IN)
:: QU, QV
53
INTEGER
,
INTENT(IN)
:: NPOIN
54
DOUBLE PRECISION
,
INTENT(IN)
:: PI
55
TYPE
(bief_obj),
INTENT(INOUT)
:: THETAC
56
!
57
! 3/ LOCAL VARIABLES
58
! ------------------
59
INTEGER
:: I
60
DOUBLE PRECISION
,
PARAMETER
:: LOCAL_ZERO = 1.d-6
61
!
62
!======================================================================!
63
!======================================================================!
64
! DECLARES TYPES AND DIMENSIONS !
65
!======================================================================!
66
!======================================================================!
67
DO
i = 1, npoin
68
IF
(abs(qu%R(i)) <= local_zero)
THEN
69
IF
(qv%R(i) < = local_zero)
THEN
70
thetac%R(i) = -pi*0.5d0
71
ELSE
72
thetac%R(i) = pi*0.5d0
73
ENDIF
74
ELSE
75
thetac%R(i) = atan(qv%R(i) / qu%R(i))
76
IF
(qu%R(i) < 0.d0)
THEN
77
thetac%R(i) = pi + thetac%R(i)
78
ENDIF
79
ENDIF
80
END DO
81
!======================================================================!
82
!======================================================================!
83
RETURN
84
END SUBROUTINE
bedload_direction
declarations_special
Definition:
declarations_special.F:3
bedload_direction
subroutine bedload_direction
Definition:
bedload_direction.f:4
interface_sisyphe
Definition:
interface_sisyphe.f:3
bief
Definition:
bief.f:3