The TELEMAC-MASCARET system  trunk
mt05bb.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE mt05bb
3 ! *****************
4 !
5  &( a11 , a12 , a13 , a14 ,
6  & a21 , a22 , a23 , a24 ,
7  & a31 , a32 , a33 , a34 ,
8  & a41 , a42 , a43 , a44 ,
9  & xmul,su,sv,u,v,
10  & xel,yel,ikle1,ikle2,ikle3,ikle4,nelem,nelmax,formul)
11 !
12 !***********************************************************************
13 ! BIEF V6P1 21/08/2010
14 !***********************************************************************
15 !
16 !brief BUILDS THE FOLLOWING MATRIX FOR QUASI-BUBBLE TRIANGLES:
17 !code
18 !+ -> --->
19 !+ U . GRAD
20 !
21 !history J-M HERVOUET (LNH) ; C MOULIN (LNH)
22 !+ 10/01/95
23 !+ V5P1
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 !| A21 |<--| ELEMENTS OF MATRIX
44 !| A22 |<--| ELEMENTS OF MATRIX
45 !| A23 |<--| ELEMENTS OF MATRIX
46 !| A24 |<--| ELEMENTS OF MATRIX
47 !| A31 |<--| ELEMENTS OF MATRIX
48 !| A32 |<--| ELEMENTS OF MATRIX
49 !| A33 |<--| ELEMENTS OF MATRIX
50 !| A34 |<--| ELEMENTS OF MATRIX
51 !| A41 |<--| ELEMENTS OF MATRIX
52 !| A42 |<--| ELEMENTS OF MATRIX
53 !| A43 |<--| ELEMENTS OF MATRIX
54 !| A44 |<--| ELEMENTS OF MATRIX
55 !| FORMUL |-->| FORMULA DESCRIBING THE RESULTING MATRIX
56 !| IKLE1 |-->| FIRST POINTS OF TRIANGLES
57 !| IKLE2 |-->| SECOND POINTS OF TRIANGLES
58 !| IKLE3 |-->| THIRD POINTS OF TRIANGLES
59 !| IKLE4 |-->| QUASI-BUBBLE POINT
60 !| NELEM |-->| NUMBER OF ELEMENTS
61 !| NELMAX |-->| MAXIMUM NUMBER OF ELEMENTS
62 !| SU |-->| BIEF_OBJ STRUCTURE OF U
63 !| SURFAC |-->| AREA OF TRIANGLES
64 !| SV |-->| BIEF_OBJ STRUCTURE OF V
65 !| U |-->| FUNCTION U USED IN THE FORMULA
66 !| V |-->| FUNCTION V USED IN THE FORMULA
67 !| XEL |-->| ABSCISSAE OF POINTS IN THE MESH, PER ELEMENT
68 !| YEL |-->| ORDINATES OF POINTS IN THE MESH, PER ELEMENT
69 !| XMUL |-->| MULTIPLICATION FACTOR
70 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71 !
72  USE bief, ex_mt05bb => mt05bb
73 !
75  IMPLICIT NONE
76 !
77 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
78 !
79  INTEGER, INTENT(IN) :: NELEM,NELMAX
80  INTEGER, INTENT(IN) :: IKLE1(nelmax),IKLE2(nelmax)
81  INTEGER, INTENT(IN) :: IKLE3(nelmax),IKLE4(nelmax)
82 !
83  DOUBLE PRECISION, INTENT(INOUT) :: A11(*),A12(*),A13(*),A14(*)
84  DOUBLE PRECISION, INTENT(INOUT) :: A21(*),A22(*),A23(*),A24(*)
85  DOUBLE PRECISION, INTENT(INOUT) :: A31(*),A32(*),A33(*),A34(*)
86  DOUBLE PRECISION, INTENT(INOUT) :: A41(*),A42(*),A43(*),A44(*)
87 !
88  DOUBLE PRECISION, INTENT(IN) :: XMUL
89  DOUBLE PRECISION, INTENT(IN) :: U(*),V(*)
90 !
91 ! STRUCTURES OF U, V
92  TYPE(bief_obj), INTENT(IN) :: SU,SV
93 !
94  DOUBLE PRECISION, INTENT(IN) :: XEL(nelmax,3),YEL(nelmax,3)
95 !
96  CHARACTER(LEN=16) :: FORMUL
97 !
98 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
99 !
100  DOUBLE PRECISION XSUR6,TIERS
101  DOUBLE PRECISION K1T1,K2T1,K3T1,US2T1,VS2T1
102  DOUBLE PRECISION L12T1,L13T1,L21T1,L23T1,L31T1,L32T1
103  DOUBLE PRECISION K1T2,K2T2,K3T2,US2T2,VS2T2
104  DOUBLE PRECISION L12T2,L13T2,L21T2,L23T2,L31T2,L32T2
105  DOUBLE PRECISION K1T3,K2T3,K3T3,US2T3,VS2T3
106  DOUBLE PRECISION L12T3,L13T3,L21T3,L23T3,L31T3,L32T3
107 !
108 !-----------------------------------------------------------------------
109 !
110 ! DECLARATIONS SPECIFIC TO THIS SUBROUTINE
111 !
112  INTEGER IELEM,IELMU,IELMV
113 !
114  DOUBLE PRECISION X2,X3,X4,Y2,Y3,Y4,U1,U2,U3,U4,V1,V2,V3,V4
115  DOUBLE PRECISION XSU216,XSUR72,XSUR24
116  DOUBLE PRECISION X1T1,X2T1,X3T1,Y1T1,Y2T1,Y3T1
117  DOUBLE PRECISION X1T2,X2T2,X3T2,Y1T2,Y2T2,Y3T2
118  DOUBLE PRECISION X1T3,X2T3,X3T3,Y1T3,Y2T3,Y3T3
119 !
120 !=======================================================================
121 !
122 ! EXTRACTS THE TYPE OF ELEMENT FOR VELOCITY
123 !
124  ielmu = su%ELM
125  ielmv = sv%ELM
126 !
127 !-----------------------------------------------------------------------
128 !
129  tiers = 1.d0 / 6.d0
130  xsur6 = xmul / 6.d0
131  xsu216 = xmul / 216.d0
132  xsur72 = xmul / 72.d0
133  xsur24 = xmul / 24.d0
134 !
135 !-----------------------------------------------------------------------
136 !
137 ! CASE WHERE U AND V ARE CONSTANT BY ELEMENT
138 !
139  IF(ielmu.EQ.10.AND.ielmv.EQ.10) THEN
140 !
141 !-----------------------------------------------------------------------
142 !
143 ! P1 DISCRETISATION OF THE VELOCITY:
144 !
145  DO ielem = 1 , nelem
146 !
147 ! INITIALISES THE GEOMETRICAL VARIABLES
148 !
149  x2 = xel(ielem,2)
150  x3 = xel(ielem,3)
151 !
152  y2 = yel(ielem,2)
153  y3 = yel(ielem,3)
154 !
155  u1 = u(ielem)
156  u2 = u(ielem)
157  u3 = u(ielem)
158  v1 = v(ielem)
159  v2 = v(ielem)
160  v3 = v(ielem)
161 !
162 ! EXTRADIAGONAL TERMS
163 !
164  a12(ielem)= (x2*(-v3-4*v2-7*v1)+x3*(-v3-4*v2-7*v1)+y2*(
165  & u3+4*u2+7*u1)+y3*(u3+4*u2+7*u1))*xsu216
166 !
167  a13(ielem)= (x2*(4*v3+v2+7*v1)+x3*(4*v3+v2+7*v1)+y2*(-
168  & 4*u3-u2-7*u1)+y3*(-4*u3-u2-7*u1))*xsu216
169 !
170  a14(ielem)= (x2*(v3+4*v2+7*v1)+x3*(-4*v3-v2-7*v1)+y2*(-
171  & u3-4*u2-7*u1)+y3*(4*u3+u2+7*u1))*xsur72
172 !
173  a21(ielem)= (2*x2*(-v3-7*v2-4*v1)+x3*(v3+7*v2+4*v1)+2
174  & *y2*(u3+7*u2+4*u1)+y3*(-u3-7*u2-4*u1))*xsu216
175 !
176  a23(ielem)= (2*x2*(4*v3+7*v2+v1)+x3*(-4*v3-7*v2-v1)+2
177  & *y2*(-4*u3-7*u2-u1)+y3*(4*u3+7*u2+u1))*xsu216
178 !
179  a24(ielem)= (3*x2*(-v3+v1)+x3*(4*v3+7*v2+v1)+3*y2*(u3-
180  & u1)+y3*(-4*u3-7*u2-u1))*xsur72
181 !
182  a31(ielem)= (x2*(-7*v3-v2-4*v1)+2*x3*(7*v3+v2+4*v1)+y2
183  & *(7*u3+u2+4*u1)+2*y3*(-7*u3-u2-4*u1))*xsu216
184 !
185  a32(ielem)= (x2*(7*v3+4*v2+v1)+2*x3*(-7*v3-4*v2-v1)+y2
186  & *(-7*u3-4*u2-u1)+2*y3*(7*u3+4*u2+u1))*xsu216
187 !
188  a34(ielem)= (x2*(-7*v3-4*v2-v1)+3*x3*(v2-v1)+y2*(7*u3+
189  & 4*u2+u1)+3*y3*(-u2+u1))*xsur72
190 !
191  a41(ielem)= (x2*(-3*v3-4*v2-5*v1)+x3*(4*v3+3*v2+5*v1)
192  & +y2*(3*u3+4*u2+5*u1)
193  & +y3*(-4*u3-3*u2-5*u1))*xsur72
194 !
195  a42(ielem)= (x2*(v3-v1)+x3*(-4*v3-5*v2-3*v1)+y2*(-u3+u1)
196  & +y3*(4*u3+5*u2+3*u1))*xsur72
197 !
198  a43(ielem)= (x2*(5*v3+4*v2+3*v1)+x3*(-v2+v1)+y2*(-5*u3-
199  & 4*u2-3*u1)+y3*(u2-u1))*xsur72
200 !
201 ! THE DIAGONAL TERMS ARE OBTAINED BY MEANS OF THE 'MAGIC SQUARE':
202 !
203  a11(ielem) = - a12(ielem) - a13(ielem) - a14(ielem)
204  a22(ielem) = - a21(ielem) - a23(ielem) - a24(ielem)
205  a33(ielem) = - a31(ielem) - a32(ielem) - a34(ielem)
206  a44(ielem) = - a41(ielem) - a42(ielem) - a43(ielem)
207 !
208  ENDDO ! IELEM
209 !
210 !-----------------------------------------------------------------------
211 !
212 ! CASE WHERE U AND V ARE LINEAR
213 !
214  ELSEIF(ielmu.EQ.11.AND.ielmv.EQ.11) THEN
215 !
216 !-----------------------------------------------------------------------
217 !
218 ! P1 DISCRETISATION OF THE VELOCITY:
219 !
220  DO ielem = 1 , nelem
221 !
222 ! INITIALISES THE GEOMETRICAL VARIABLES
223 !
224  x2 = xel(ielem,2)
225  x3 = xel(ielem,3)
226 !
227  y2 = yel(ielem,2)
228  y3 = yel(ielem,3)
229 !
230  u1 = u(ikle1(ielem))
231  u2 = u(ikle2(ielem))
232  u3 = u(ikle3(ielem))
233  v1 = v(ikle1(ielem))
234  v2 = v(ikle2(ielem))
235  v3 = v(ikle3(ielem))
236 !
237 ! EXTRADIAGONAL TERMS
238 !
239  a12(ielem)= (x2*(-v3-4*v2-7*v1)+x3*(-v3-4*v2-7*v1)+y2*(
240  & u3+4*u2+7*u1)+y3*(u3+4*u2+7*u1))*xsu216
241 !
242  a13(ielem)= (x2*(4*v3+v2+7*v1)+x3*(4*v3+v2+7*v1)+y2*(-
243  & 4*u3-u2-7*u1)+y3*(-4*u3-u2-7*u1))*xsu216
244 !
245  a14(ielem)= (x2*(v3+4*v2+7*v1)+x3*(-4*v3-v2-7*v1)+y2*(-
246  & u3-4*u2-7*u1)+y3*(4*u3+u2+7*u1))*xsur72
247 !
248  a21(ielem)= (2*x2*(-v3-7*v2-4*v1)+x3*(v3+7*v2+4*v1)+2
249  & *y2*(u3+7*u2+4*u1)+y3*(-u3-7*u2-4*u1))*xsu216
250 !
251  a23(ielem)= (2*x2*(4*v3+7*v2+v1)+x3*(-4*v3-7*v2-v1)+2
252  & *y2*(-4*u3-7*u2-u1)+y3*(4*u3+7*u2+u1))*xsu216
253 !
254  a24(ielem)= (3*x2*(-v3+v1)+x3*(4*v3+7*v2+v1)+3*y2*(u3-
255  & u1)+y3*(-4*u3-7*u2-u1))*xsur72
256 !
257  a31(ielem)= (x2*(-7*v3-v2-4*v1)+2*x3*(7*v3+v2+4*v1)+y2
258  & *(7*u3+u2+4*u1)+2*y3*(-7*u3-u2-4*u1))*xsu216
259 !
260  a32(ielem)= (x2*(7*v3+4*v2+v1)+2*x3*(-7*v3-4*v2-v1)+y2
261  & *(-7*u3-4*u2-u1)+2*y3*(7*u3+4*u2+u1))*xsu216
262 !
263  a34(ielem)= (x2*(-7*v3-4*v2-v1)+3*x3*(v2-v1)+y2*(7*u3+
264  & 4*u2+u1)+3*y3*(-u2+u1))*xsur72
265 !
266  a41(ielem)= (x2*(-3*v3-4*v2-5*v1)+x3*(4*v3+3*v2+5*v1)
267  & +y2*(3*u3+4*u2+5*u1)
268  & +y3*(-4*u3-3*u2-5*u1))*xsur72
269 !
270  a42(ielem)= (x2*(v3-v1)+x3*(-4*v3-5*v2-3*v1)+y2*(-u3+u1)
271  & +y3*(4*u3+5*u2+3*u1))*xsur72
272 !
273  a43(ielem)= (x2*(5*v3+4*v2+3*v1)+x3*(-v2+v1)+y2*(-5*u3-
274  & 4*u2-3*u1)+y3*(u2-u1))*xsur72
275 !
276 ! THE DIAGONAL TERMS ARE OBTAINED BY MEANS OF THE 'MAGIC SQUARE':
277 !
278  a11(ielem) = - a12(ielem) - a13(ielem) - a14(ielem)
279  a22(ielem) = - a21(ielem) - a23(ielem) - a24(ielem)
280  a33(ielem) = - a31(ielem) - a32(ielem) - a34(ielem)
281  a44(ielem) = - a41(ielem) - a42(ielem) - a43(ielem)
282 !
283  ENDDO ! IELEM
284 !
285 !-----------------------------------------------------------------------
286 !
287  ELSEIF(ielmu.EQ.12.AND.ielmv.EQ.12) THEN
288 !
289 !-----------------------------------------------------------------------
290 !
291 ! QUASI-BUBBLE DISCRETISATION OF THE VELOCITY:
292 !
293  IF(formul(16:16).EQ.'N') THEN
294 !
295 ! N SCHEME
296 !
297  DO ielem = 1 , nelem
298 !
299 ! COORDINATES OF THE SUB-TRIANGLE VERTICES
300  x1t1 = xel(ielem,1)
301  x2t1 = xel(ielem,2) - x1t1
302  y1t1 = yel(ielem,1)
303  y2t1 = yel(ielem,2) - y1t1
304 !
305  x1t2 = xel(ielem,2)
306  x2t2 = xel(ielem,3) - x1t2
307  y1t2 = yel(ielem,2)
308  y2t2 = yel(ielem,3) - y1t2
309 !
310  x1t3 = xel(ielem,3)
311  x2t3 = xel(ielem,1) - x1t3
312  y1t3 = yel(ielem,3)
313  y2t3 = yel(ielem,1) - y1t3
314 ! POINT 3 IS ALWAYS THE CENTRE OF THE INITIAL TRIANGLE
315  x4 = tiers * (xel(ielem,1)+xel(ielem,2)+xel(ielem,3))
316  y4 = tiers * (yel(ielem,1)+yel(ielem,2)+yel(ielem,3))
317  x3t1 = x4 - x1t1
318  y3t1 = y4 - y1t1
319  x3t2 = x4 - x1t2
320  y3t2 = y4 - y1t2
321  x3t3 = x4 - x1t3
322  y3t3 = y4 - y1t3
323 !
324  u1 = u(ikle1(ielem))
325  u2 = u(ikle2(ielem))
326  u3 = u(ikle3(ielem))
327  u4 = u(ikle4(ielem))
328  v1 = v(ikle1(ielem))
329  v2 = v(ikle2(ielem))
330  v3 = v(ikle3(ielem))
331  v4 = v(ikle4(ielem))
332 !
333  us2t1 = (u1+u2+u4)*xsur6
334  vs2t1 = (v1+v2+v4)*xsur6
335  us2t2 = (u2+u3+u4)*xsur6
336  vs2t2 = (v2+v3+v4)*xsur6
337  us2t3 = (u3+u1+u4)*xsur6
338  vs2t3 = (v3+v1+v4)*xsur6
339 !
340  k1t1 = us2t1 * (y2t1-y3t1) - vs2t1 * (x2t1-x3t1)
341  k2t1 = us2t1 * (y3t1 ) - vs2t1 * (x3t1 )
342  k3t1 = us2t1 * ( -y2t1) - vs2t1 * ( -x2t1)
343 !
344  k1t2 = us2t2 * (y2t2-y3t2) - vs2t2 * (x2t2-x3t2)
345  k2t2 = us2t2 * (y3t2 ) - vs2t2 * (x3t2 )
346  k3t2 = us2t2 * ( -y2t2) - vs2t2 * ( -x2t2)
347 !
348  k1t3 = us2t3 * (y2t3-y3t3) - vs2t3 * (x2t3-x3t3)
349  k2t3 = us2t3 * (y3t3 ) - vs2t3 * (x3t3 )
350  k3t3 = us2t3 * ( -y2t3) - vs2t3 * ( -x2t3)
351 !
352  l12t1 = max( min(k1t1,-k2t1) , 0.d0 )
353  l13t1 = max( min(k1t1,-k3t1) , 0.d0 )
354  l21t1 = max( min(k2t1,-k1t1) , 0.d0 )
355  l23t1 = max( min(k2t1,-k3t1) , 0.d0 )
356  l31t1 = max( min(k3t1,-k1t1) , 0.d0 )
357  l32t1 = max( min(k3t1,-k2t1) , 0.d0 )
358 !
359  l12t2 = max( min(k1t2,-k2t2) , 0.d0 )
360  l13t2 = max( min(k1t2,-k3t2) , 0.d0 )
361  l21t2 = max( min(k2t2,-k1t2) , 0.d0 )
362  l23t2 = max( min(k2t2,-k3t2) , 0.d0 )
363  l31t2 = max( min(k3t2,-k1t2) , 0.d0 )
364  l32t2 = max( min(k3t2,-k2t2) , 0.d0 )
365 !
366  l12t3 = max( min(k1t3,-k2t3) , 0.d0 )
367  l13t3 = max( min(k1t3,-k3t3) , 0.d0 )
368  l21t3 = max( min(k2t3,-k1t3) , 0.d0 )
369  l23t3 = max( min(k2t3,-k3t3) , 0.d0 )
370  l31t3 = max( min(k3t3,-k1t3) , 0.d0 )
371  l32t3 = max( min(k3t3,-k2t3) , 0.d0 )
372 !
373 ! EXTRADIAGONAL TERMS
374 !
375  a12(ielem) = - l12t1
376  a13(ielem) = - l21t3
377  a14(ielem) = - l13t1 - l23t3
378  a21(ielem) = - l21t1
379  a23(ielem) = - l12t2
380  a24(ielem) = - l13t2 - l23t1
381  a31(ielem) = - l12t3
382  a32(ielem) = - l21t2
383  a34(ielem) = - l13t3 - l23t2
384  a41(ielem) = - l31t1 - l32t3
385  a42(ielem) = - l31t2 - l32t1
386  a43(ielem) = - l31t3 - l32t2
387 !
388  a11(ielem) = - a12(ielem) - a13(ielem) - a14(ielem)
389  a22(ielem) = - a21(ielem) - a23(ielem) - a24(ielem)
390  a33(ielem) = - a31(ielem) - a32(ielem) - a34(ielem)
391  a44(ielem) = - a41(ielem) - a42(ielem) - a43(ielem)
392 !
393  ENDDO ! IELEM
394 !
395  ELSE
396 !
397  DO ielem = 1 , nelem
398 !
399 ! TRADITIONAL METHOD
400 !
401 !
402 ! INITIALISES THE GEOMETRICAL VARIABLES
403 !
404  x2 = xel(ielem,2)
405  x3 = xel(ielem,3)
406 !
407  y2 = yel(ielem,2)
408  y3 = yel(ielem,3)
409 !
410  u1 = u(ikle1(ielem))
411  u2 = u(ikle2(ielem))
412  u3 = u(ikle3(ielem))
413  u4 = u(ikle4(ielem))
414  v1 = v(ikle1(ielem))
415  v2 = v(ikle2(ielem))
416  v3 = v(ikle3(ielem))
417  v4 = v(ikle4(ielem))
418 !
419 ! EXTRADIAGONAL TERMS
420 !
421  a12(ielem)= (x2*(-v4-v2-2*v1)+x3*(-v4-v2-2*v1)+y2*(u4+u2+
422  & 2*u1)+y3*(u4+u2+2*u1))*xsur72
423 !
424  a13(ielem)= (x2*(v3+v4+2*v1)+x3*(v3+v4+2*v1)+y2*(-u3-u4-
425  & 2*u1)+y3*(-u3-u4-2*u1))*xsur72
426 !
427  a14(ielem)= (x2*(v4+v2+2*v1)+x3*(-v3-v4-2*v1)+y2*(-u4-u2-
428  & 2*u1)+y3*(u3+u4+2*u1))*xsur24
429 !
430  a21(ielem)= (2*x2*(-v4-2*v2-v1)+x3*(v4+2*v2+v1)+2*y2*(
431  & u4+2*u2+u1)+y3*(-u4-2*u2-u1))*xsur72
432 !
433  a23(ielem)= (2*x2*(v3+v4+2*v2)+x3*(-v3-v4-2*v2)+2*y2*(-
434  & u3-u4-2*u2)+y3*(u3+u4+2*u2))*xsur72
435 !
436  a24(ielem)= (x2*(-v3+v1)+x3*(v3+v4+2*v2)+y2*(u3-u1)+y3*(-
437  & u3-u4-2*u2))*xsur24
438 !
439  a31(ielem)= (x2*(-2*v3-v4-v1)+2*x3*(2*v3+v4+v1)+y2*(2*
440  & u3+u4+u1)+2*y3*(-2*u3-u4-u1))*xsur72
441 !
442  a32(ielem)= (x2*(2*v3+v4+v2)+2*x3*(-2*v3-v4-v2)+y2*(-2*
443  & u3-u4-u2)+2*y3*(2*u3+u4+u2))*xsur72
444 !
445  a34(ielem)= (x2*(-2*v3-v4-v2)+x3*(v2-v1)+y2*(2*u3+u4+u2)+
446  & y3*(-u2+u1))*xsur24
447 !
448  a41(ielem)= (x2*(-v3-6*v4-2*v2-3*v1)+x3*(2*v3+6*v4+v2+
449  & 3*v1)+y2*(u3+6*u4+2*u2+3*u1)
450  & +y3*(-2*u3-6*u4-u2-3*u1))*xsur72
451 !
452  a42(ielem)= (x2*(v3-v1)+x3*(-2*v3-6*v4-3*v2-v1)+y2*(-u3+
453  & u1)+y3*(2*u3+6*u4+3*u2+u1))*xsur72
454 !
455  a43(ielem)= (x2*(3*v3+6*v4+2*v2+v1)+x3*(-v2+v1)+y2*(-3*
456  & u3-6*u4-2*u2-u1)+y3*(u2-u1))*xsur72
457 !
458 ! THE DIAGONAL TERMS ARE OBTAINED BY MEANS OF THE 'MAGIC SQUARE':
459 !
460  a11(ielem) = - a12(ielem) - a13(ielem) - a14(ielem)
461  a22(ielem) = - a21(ielem) - a23(ielem) - a24(ielem)
462  a33(ielem) = - a31(ielem) - a32(ielem) - a34(ielem)
463  a44(ielem) = - a41(ielem) - a42(ielem) - a43(ielem)
464 !
465  ENDDO ! IELEM
466 !
467  ENDIF
468 !
469 !-----------------------------------------------------------------------
470 !
471  ELSE
472 !
473  WRITE(lu,11) ielmu,ielmv
474 11 FORMAT(1x,
475  & 'MT05BB (BIEF) : TYPES OF VELOCITIES NOT AVAILABLE : ',2i6)
476  CALL plante(0)
477  stop
478 !
479  ENDIF
480 !
481 !-----------------------------------------------------------------------
482 !
483  RETURN
484  END
subroutine mt05bb(A11, A12, A13, A14, A21, A22, A23, A24, A31, A32, A33, A34, A41, A42, A43, A44, XMUL, SU, SV, U, V, XEL, YEL, IKLE1, IKLE2, IKLE3, IKLE4, NELEM, NELMAX, FORMUL)
Definition: mt05bb.f:12
Definition: bief.f:3