The TELEMAC-MASCARET system  trunk
mt01bb.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE mt01bb
3 ! *****************
4 !
5  &( a11 , a12 , a13 , a14 ,
6  & a22 , a23 , a24 ,
7  & a33 , a34 ,
8  & a44 ,
9  & xmul,surfac,nelem,nelmax)
10 !
11 !***********************************************************************
12 ! BIEF V6P1 21/08/2010
13 !***********************************************************************
14 !
15 !brief BUILDS THE MASS MATRIX FOR QUASI-BUBBLE TRIANGLES.
16 !
17 !warning THE JACOBIAN MUST BE POSITIVE
18 !
19 !history J-M HERVOUET (LNH) ; C MOULIN (LNH)
20 !+ 10/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 !| A11 |<--| ELEMENTS OF MATRIX
38 !| A12 |<--| ELEMENTS OF MATRIX
39 !| A13 |<--| ELEMENTS OF MATRIX
40 !| A14 |<--| ELEMENTS OF MATRIX
41 !| A22 |<--| ELEMENTS OF MATRIX
42 !| A23 |<--| ELEMENTS OF MATRIX
43 !| A24 |<--| ELEMENTS OF MATRIX
44 !| A33 |<--| ELEMENTS OF MATRIX
45 !| A34 |<--| ELEMENTS OF MATRIX
46 !| A44 |<--| ELEMENTS OF MATRIX
47 !| NELEM |-->| NUMBER OF ELEMENTS
48 !| NELMAX |-->| MAXIMUM NUMBER OF ELEMENTS
49 !| SURFAC |-->| AREA OF TRIANGLES
50 !| XMUL |-->| MULTIPLICATION FACTOR
51 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
52 !
53  USE bief, ex_mt01bb => mt01bb
54 !
56  IMPLICIT NONE
57 !
58 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
59 !
60  INTEGER, INTENT(IN) :: NELEM,NELMAX
61 !
62  DOUBLE PRECISION, INTENT(INOUT) :: A11(*),A12(*),A13(*),A14(*)
63  DOUBLE PRECISION, INTENT(INOUT) :: A22(*),A23(*),A24(*)
64  DOUBLE PRECISION, INTENT(INOUT) :: A33(*),A34(*)
65  DOUBLE PRECISION, INTENT(INOUT) :: A44(*)
66 !
67  DOUBLE PRECISION, INTENT(IN) :: XMUL
68 !
69  DOUBLE PRECISION, INTENT(IN) :: SURFAC(nelmax)
70 !
71 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
72 !
73 ! DECLARATIONS SPECIFIC TO THIS SUBROUTINE
74 !
75  INTEGER IELEM
76  DOUBLE PRECISION XSUR36
77 !
78 !=======================================================================
79 !
80  xsur36 = xmul / 36.d0
81 !
82  DO ielem = 1 , nelem
83 !
84 ! EXTRADIAGONAL TERMS
85 !
86  a12(ielem) = surfac(ielem)*xsur36
87  a13(ielem) = a12(ielem)
88  a23(ielem) = a12(ielem)
89  a14(ielem) = 2 * a12(ielem)
90  a24(ielem) = a14(ielem)
91  a34(ielem) = a14(ielem)
92 !
93 ! DIAGONAL TERMS
94 !
95  a11(ielem) = 2 * a14(ielem)
96  a22(ielem) = a11(ielem)
97  a33(ielem) = a11(ielem)
98  a44(ielem) = 3 * a14(ielem)
99 !
100  ENDDO ! IELEM
101 !
102 !-----------------------------------------------------------------------
103 !
104  RETURN
105  END
subroutine mt01bb(A11, A12, A13, A14, A22, A23, A24, A33, A34, A44, XMUL, SURFAC, NELEM, NELMAX)
Definition: mt01bb.f:11
Definition: bief.f:3