The TELEMAC-MASCARET system  trunk
mt01aa.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE mt01aa
3 ! *****************
4 !
5  &( a11 , a12 , a13 ,
6  & a22 , a23 ,
7  & a33 ,
8  & xmul,surfac,nelem,nelmax)
9 !
10 !***********************************************************************
11 ! BIEF V6P1 21/08/2010
12 !***********************************************************************
13 !
14 !brief BUILDS THE MASS MATRIX FOR P1 TRIANGLES.
15 !code
16 !+ COMPUTES THE COEFFICIENTS OF THE FOLLOWING MATRIX:
17 !+
18 !+ /
19 !+ A = XMUL / (P *P )*J(X,Y) DXDY
20 !+ I J /S I J
21 !+
22 !+ BY ELEMENTARY CELL
23 !+
24 !+ J(X,Y): JACOBIAN OF THE ISOPARAMETRIC TRANSFORMATION
25 !
26 !warning THE JACOBIAN MUST BE POSITIVE
27 !
28 !history J-M HERVOUET (LNH) ; F LEPEINTRE (LNH)
29 !+ 28/11/94
30 !+ V5P1
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 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
46 !| A11 |<--| ELEMENTS OF MATRIX
47 !| A12 |<--| ELEMENTS OF MATRIX
48 !| A13 |<--| ELEMENTS OF MATRIX
49 !| A22 |<--| ELEMENTS OF MATRIX
50 !| A23 |<--| ELEMENTS OF MATRIX
51 !| A33 |<--| ELEMENTS OF MATRIX
52 !| NELEM |-->| NUMBER OF ELEMENTS
53 !| NELMAX |-->| MAXIMUM NUMBER OF ELEMENTS
54 !| SURFAC |-->| AREA OF TRIANGLES
55 !| XMUL |-->| MULTIPLICATION FACTOR
56 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
57 !
58  USE bief, ex_mt01aa => mt01aa
59 !
61  IMPLICIT NONE
62 !
63 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
64 !
65  INTEGER, INTENT(IN) :: NELEM,NELMAX
66 !
67  DOUBLE PRECISION, INTENT(INOUT) :: A11(*),A12(*),A13(*)
68  DOUBLE PRECISION, INTENT(INOUT) :: A22(*),A23(*)
69  DOUBLE PRECISION, INTENT(INOUT) :: A33(*)
70 !
71  DOUBLE PRECISION, INTENT(IN) :: XMUL
72  DOUBLE PRECISION, INTENT(IN) :: SURFAC(nelmax)
73 !
74 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
75 !
76 ! DECLARATIONS SPECIFIC TO THIS SUBROUTINE
77 !
78  INTEGER IELEM
79  DOUBLE PRECISION SUR12,DET
80 !
81 !=======================================================================
82 !
83  sur12 = xmul/12.d0
84 !
85 !-----------------------------------------------------------------------
86 !
87 ! LOOP ON THE ELEMENTS
88 !
89  DO ielem = 1 , nelem
90 !
91  det = surfac(ielem) * sur12
92 !
93 ! ELEMENTS OFF THE DIAGONAL
94 !
95  a12(ielem) = det
96  a13(ielem) = det
97  a23(ielem) = det
98 !
99 ! DIAGONAL TERMS
100 !
101  a11(ielem) = det + det
102  a22(ielem) = det + det
103  a33(ielem) = det + det
104 !
105 ! END OF THE LOOP ON THE ELEMENTS
106 !
107  ENDDO ! IELEM
108 !
109 !-----------------------------------------------------------------------
110 !
111  RETURN
112  END
subroutine mt01aa(A11, A12, A13, A22, A23, A33, XMUL, SURFAC, NELEM, NELMAX)
Definition: mt01aa.f:10
Definition: bief.f:3