The TELEMAC-MASCARET system  trunk
slop10.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE slop10
3 ! *****************
4 !
5  &(coef,xel,yel,z,ikle,nelem,nelmax)
6 !
7 !***********************************************************************
8 ! BIEF V6P1 21/08/2010
9 !***********************************************************************
10 !
11 !brief COMPUTES THE COEFFICIENT 1 / COS(ALFA)
12 !+ WHERE ALFA IS THE SLOPE OF A TRIANGULAR ELEMENT.
13 !+
14 !+ THIS COEFFICIENT IS USED IN THE BOTTOM FRICTION
15 !+ TERM.
16 !
17 !warning THE JACOBIAN MUST BE POSITIVE
18 !
19 !history J-M HERVOUET (LNH)
20 !+ 27/01/95
21 !+ V5P1
22 !+
23 !
24 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
25 !+ 13/07/2010
26 !+ V6P0
27 !+ Translation of French comments within the FORTRAN sources into
28 !+ English comments
29 !
30 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
31 !+ 21/08/2010
32 !+ V6P0
33 !+ Creation of DOXYGEN tags for automated documentation and
34 !+ cross-referencing of the FORTRAN sources
35 !
36 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
37 !| COEF |<--| RESULT
38 !| IKLE |-->| CONNECTIVITY TABLE.
39 !| NELEM |-->| NUMBER OF ELEMENTS
40 !| NELMAX |-->| MAXIMUM NUMBER OF ELEMENTS
41 !| XEL |-->| ABSCISSAE OF POINTS IN THE MESH, PER ELEMENT
42 !| YEL |-->| ORDINATES OF POINTS IN THE MESH, PER ELEMENT
43 !| Z |-->| BOTTOM ELEVATIONS
44 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
45 !
47  IMPLICIT NONE
48 !
49 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
50 !
51  INTEGER, INTENT(IN) :: NELEM,NELMAX
52  INTEGER, INTENT(IN) :: IKLE(nelmax,*)
53 !
54  DOUBLE PRECISION, INTENT(INOUT) :: COEF(nelem)
55  DOUBLE PRECISION, INTENT(IN) :: XEL(nelmax,*),YEL(nelmax,*),Z(*)
56 !
57 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
58 !
59  INTEGER IELEM
60  DOUBLE PRECISION X2,X3,Y2,Y3,Z2,Z3,A,B,C
61 !
62  INTRINSIC sqrt
63 !
64 !-----------------------------------------------------------------------
65 !
66  DO ielem = 1 , nelem
67 !
68  x2 = xel(ielem,2)
69  x3 = xel(ielem,3)
70 !
71  y2 = yel(ielem,2)
72  y3 = yel(ielem,3)
73 !
74  z2 = z(ikle(ielem,2)) - z(ikle(ielem,1))
75  z3 = z(ikle(ielem,3)) - z(ikle(ielem,1))
76 !
77  a = (x2*y3-x3*y2)**2
78  b = (y2*z3-z2*y3)**2
79  c = (x3*z2-z3*x2)**2
80 !
81  coef(ielem) = sqrt( (a+b+c)/a )
82 !
83  ENDDO ! IELEM
84 !
85 !-----------------------------------------------------------------------
86 !
87  RETURN
88  END
subroutine slop10(COEF, XEL, YEL, Z, IKLE, NELEM, NELMAX)
Definition: slop10.f:7
subroutine coef(S3D_IVIDE, S3D_EPAI, TRA01, S3D_NPFMAX, IMAX, NDEB, S3D_RHOS, GRAV, S3D_DTC, DSIG1)
Definition: coef.f:9