The TELEMAC-MASCARET system  trunk
mt01cc.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE mt01cc
3 ! *****************
4 !
5  &( a11 , a12 , a13 , a14 , a15 , a16 ,
6  & a22 , a23 , a24 , a25 , a26 ,
7  & a33 , a34 , a35 , a36 ,
8  & a44 , a45 , a46 ,
9  & a55 , a56 ,
10  & a66 ,
11  & xmul,surfac,nelem,nelmax )
12 !
13 !***********************************************************************
14 ! BIEF V6P1 21/08/2010
15 !***********************************************************************
16 !
17 !brief BUILDS THE MASS MATRIX FOR P2 TRIANGLES.
18 !
19 !warning THE JACOBIAN MUST BE POSITIVE
20 !
21 !history ALGIANE FROEHLY (MATMECA)
22 !+ 29/02/08
23 !+ V5P9
24 !+
25 !
26 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
27 !+ 13/07/2010
28 !+ V6P0
29 !+ Translation of French comments within the FORTRAN sources into
30 !+ English comments
31 !
32 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
33 !+ 21/08/2010
34 !+ V6P0
35 !+ Creation of DOXYGEN tags for automated documentation and
36 !+ cross-referencing of the FORTRAN sources
37 !
38 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
39 !| A11 |<--| ELEMENTS OF MATRIX
40 !| A12 |<--| ELEMENTS OF MATRIX
41 !| A13 |<--| ELEMENTS OF MATRIX
42 !| A14 |<--| ELEMENTS OF MATRIX
43 !| A15 |<--| ELEMENTS OF MATRIX
44 !| A16 |<--| ELEMENTS OF MATRIX
45 !| A22 |<--| ELEMENTS OF MATRIX
46 !| A23 |<--| ELEMENTS OF MATRIX
47 !| A24 |<--| ELEMENTS OF MATRIX
48 !| A25 |<--| ELEMENTS OF MATRIX
49 !| A26 |<--| ELEMENTS OF MATRIX
50 !| A33 |<--| ELEMENTS OF MATRIX
51 !| A34 |<--| ELEMENTS OF MATRIX
52 !| A35 |<--| ELEMENTS OF MATRIX
53 !| A36 |<--| ELEMENTS OF MATRIX
54 !| A44 |<--| ELEMENTS OF MATRIX
55 !| A45 |<--| ELEMENTS OF MATRIX
56 !| A46 |<--| ELEMENTS OF MATRIX
57 !| A55 |<--| ELEMENTS OF MATRIX
58 !| A56 |<--| ELEMENTS OF MATRIX
59 !| A66 |<--| ELEMENTS OF MATRIX
60 !| NELEM |-->| NUMBER OF ELEMENTS
61 !| NELMAX |-->| MAXIMUM NUMBER OF ELEMENTS
62 !| SURFAC |-->| AREA OF TRIANGLES
63 !| XMUL |-->| MULTIPLICATION FACTOR
64 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
65 !
66  USE bief !, EX_MT01CC => MT01CC
67 !
69  IMPLICIT NONE
70 !
71 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
72 !
73  INTEGER, INTENT(IN) :: NELEM,NELMAX
74 !
75  DOUBLE PRECISION, INTENT(INOUT) :: A11(*),A12(*),A13(*),A14(*)
76  DOUBLE PRECISION, INTENT(INOUT) :: A15(*),A16(*)
77  DOUBLE PRECISION, INTENT(INOUT) :: A22(*),A23(*),A24(*)
78  DOUBLE PRECISION, INTENT(INOUT) :: A25(*),A26(*)
79  DOUBLE PRECISION, INTENT(INOUT) :: A33(*),A34(*),A35(*),A36(*)
80  DOUBLE PRECISION, INTENT(INOUT) :: A44(*),A45(*),A46(*)
81  DOUBLE PRECISION, INTENT(INOUT) :: A55(*),A56(*),A66(*)
82 !
83  DOUBLE PRECISION, INTENT(IN) :: XMUL
84 !
85  DOUBLE PRECISION, INTENT(IN) :: SURFAC(nelmax)
86 !
87 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
88 !
89 ! DECLARATIONS SPECIFIC TO THIS SUBROUTINE
90 !
91  INTEGER IELEM
92  DOUBLE PRECISION XSUR180
93 !
94 !=======================================================================
95 !
96  xsur180 = xmul / 180.d0
97 !
98  DO ielem = 1 , nelem
99 !
100 ! EXTRADIAGONAL TERMS
101 !
102  a12(ielem) = - surfac(ielem) * xsur180
103  a13(ielem) = a12(ielem)
104  a14(ielem) = 0.d0
105  a15(ielem) = 4.d0 * a12(ielem)
106  a16(ielem) = 0.d0
107  a23(ielem) = a12(ielem)
108  a24(ielem) = 0.d0
109  a25(ielem) = 0.d0
110  a26(ielem) = a15(ielem)
111  a34(ielem) = a15(ielem)
112  a35(ielem) = 0.d0
113  a36(ielem) = 0.d0
114  a45(ielem) = - 4.d0 * a15(ielem)
115  a46(ielem) = a45(ielem)
116  a56(ielem) = a45(ielem)
117 !
118 ! DIAGONAL TERMS
119 !
120  a11(ielem) = - 6.d0 * a12(ielem)
121  a22(ielem) = a11(ielem)
122  a33(ielem) = a11(ielem)
123  a44(ielem) = - 8.d0 * a15(ielem)
124  a55(ielem) = a44(ielem)
125  a66(ielem) = a44(ielem)
126 !
127  ENDDO
128 !
129 !-----------------------------------------------------------------------
130 !
131  RETURN
132  END
subroutine mt01cc(A11, A12, A13, A14, A15, A16, A22, A23, A24, A25, A26, A33, A34, A35, A36, A44, A45, A46, A55, A56, A66, XMUL, SURFAC, NELEM, NELMAX)
Definition: mt01cc.f:13
Definition: bief.f:3