The TELEMAC-MASCARET system  trunk
vc05aa.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE vc05aa
3 ! *****************
4 !
5  &( xmul,sf,f,surfac,
6  & ikle1,ikle2,ikle3,nelem,nelmax,w1,w2,w3)
7 !
8 !***********************************************************************
9 ! BIEF V7P1 27/04/2015
10 !***********************************************************************
11 !
12 !brief COMPUTES THE FOLLOWING VECTOR IN FINITE ELEMENTS:
13 !code
14 !+ /
15 !+ VEC(I) = XMUL / PSI(I) * F D(OMEGA)
16 !+ /OMEGA
17 !+
18 !+ PSI(I) IS A BASE OF TYPE P1 TRIANGLE
19 !+
20 !+ F IS A VECTOR OF DISCRETISATION P0, P1 OR DISCONTINUOUS P1
21 !
22 !warning THE JACOBIAN MUST BE POSITIVE
23 !warning THE RESULT IS IN W IN NOT ASSEMBLED FORM
24 !
25 !history A JOLY (LNHE)
26 !+ 27/04/2015
27 !+ V7P1
28 !+
29 !
30 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
31 !| F |-->| FUNCTION USED IN THE VECTOR FORMULA
32 !| IKLE1 |-->| FIRST POINT OF TRIANGLES
33 !| IKLE2 |-->| SECOND POINT OF TRIANGLES
34 !| IKLE3 |-->| THIRD POINT OF TRIANGLES
35 !| NELEM |-->| NUMBER OF ELEMENTS
36 !| NELMAX |-->| MAXIMUM NUMBER OF ELEMENTS
37 !| SF |-->| BIEF_OBJ STRUCTURE OF F
38 !| SURFAC |-->| AREA OF TRIANGLES
39 !| W1 |<--| RESULT IN NON ASSEMBLED FORM
40 !| W2 |<--| RESULT IN NON ASSEMBLED FORM
41 !| W3 |<--| RESULT IN NON ASSEMBLED FORM
42 !| XMUL |-->| MULTIPLICATION COEFFICIENT
43 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
44 !
46  USE bief, ex_vc05aa => vc05aa
47 !
48  IMPLICIT NONE
49 !
50 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
51 !
52  INTEGER, INTENT(IN) :: NELEM,NELMAX
53  INTEGER, INTENT(IN) :: IKLE1(nelmax),IKLE2(nelmax),IKLE3(nelmax)
54 !
55  DOUBLE PRECISION, INTENT(IN) :: SURFAC(nelmax)
56  DOUBLE PRECISION,INTENT(INOUT)::W1(nelmax),W2(nelmax),W3(nelmax)
57  DOUBLE PRECISION, INTENT(IN) :: XMUL
58 !
59 ! STRUCTURE OF F AND REAL DATA
60 !
61  TYPE(bief_obj), INTENT(IN) :: SF
62  DOUBLE PRECISION, INTENT(IN) :: F(*)
63 !
64 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
65 !
66 !
67 ! ! Method 1
68 ! INTEGER IELEM,IELMF
69 ! DOUBLE PRECISION XSUR03,F1,F2,F3,COEF
70 !
71 ! Method 2
72  INTEGER IELEM,IELMF
73  DOUBLE PRECISION XSUR12,F1,F2,F3,F123,COEF
74 !
75 !
76 !-----------------------------------------------------------------------
77 !
78  ielmf=sf%ELM
79 !
80 !-----------------------------------------------------------------------
81 !
82 ! F IS A LINEAR TRIANGLE
83 !
84  IF(ielmf.EQ.11) THEN
85 !
86 ! !---------------
87 ! ! Method 1
88 ! !---------------
89 ! XSUR03 = XMUL / 3.D0
90 ! !
91 ! DO IELEM = 1 , NELEM
92 ! !
93 ! F1 = F(IKLE1(IELEM))
94 ! F2 = F(IKLE2(IELEM))
95 ! F3 = F(IKLE3(IELEM))
96 ! !
97 ! COEF = XSUR03 * SURFAC(IELEM)
98 ! !
99 ! ! SURFACE / 3.D0 * NOEUD
100 ! W1(IELEM) = COEF * F1
101 ! W2(IELEM) = COEF * F2
102 ! W3(IELEM) = COEF * F3
103 ! W4(IELEM) = 0.D0
104 ! W5(IELEM) = 0.D0
105 ! W6(IELEM) = 0.D0
106 ! !
107 ! ENDDO
108 !
109 !---------------
110 ! Method 2
111 !---------------
112  xsur12 = xmul / 12.d0
113 !
114  DO ielem = 1 , nelem
115 !
116  f1 = f(ikle1(ielem))
117  f2 = f(ikle2(ielem))
118  f3 = f(ikle3(ielem))
119  f123 = f1 + f2 + f3
120 !
121  coef = xsur12 * surfac(ielem)
122 !
123  ! SURFACE / 3.D0 * MOYENNE (FACE + NOEUD)
124  w1(ielem) = coef * ( f123 + f1 )
125  w2(ielem) = coef * ( f123 + f2 )
126  w3(ielem) = coef * ( f123 + f3 )
127 !
128  ENDDO
129 !
130 !-----------------------------------------------------------------------
131 !
132  ELSE
133 !
134 !-----------------------------------------------------------------------
135 !
136  WRITE(lu,101) ielmf,sf%NAME
137 101 FORMAT(1x,'VC05AA (BIEF) :',/,
138  & 1x,'DISCRETIZATION OF F NOT AVAILABLE:',1i6,
139  & 1x,'REAL NAME: ',a6)
140  CALL plante(1)
141  stop
142 !
143  ENDIF
144 !
145 !-----------------------------------------------------------------------
146 !
147  RETURN
148  END
subroutine vc05aa(XMUL, SF, F, SURFAC, IKLE1, IKLE2, IKLE3, NELEM, NELMAX, W1, W2, W3)
Definition: vc05aa.f:8
Definition: bief.f:3