5 &( a11 , a12 , a13 , a14 ,
6 & a21 , a22 , a23 , a24 ,
7 & a31 , a32 , a33 , a34 ,
8 & a41 , a42 , a43 , a44 ,
10 & xel,yel,ikle1,ikle2,ikle3,ikle4,nelem,nelmax,formul)
79 INTEGER,
INTENT(IN) :: NELEM,NELMAX
80 INTEGER,
INTENT(IN) :: IKLE1(nelmax),IKLE2(nelmax)
81 INTEGER,
INTENT(IN) :: IKLE3(nelmax),IKLE4(nelmax)
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(*)
88 DOUBLE PRECISION,
INTENT(IN) :: XMUL
89 DOUBLE PRECISION,
INTENT(IN) :: U(*),V(*)
92 TYPE(bief_obj),
INTENT(IN) :: SU,SV
94 DOUBLE PRECISION,
INTENT(IN) :: XEL(nelmax,3),YEL(nelmax,3)
96 CHARACTER(LEN=16) :: FORMUL
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
112 INTEGER IELEM,IELMU,IELMV
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
131 xsu216 = xmul / 216.d0
132 xsur72 = xmul / 72.d0
133 xsur24 = xmul / 24.d0
139 IF(ielmu.EQ.10.AND.ielmv.EQ.10)
THEN 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
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
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
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
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
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
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
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
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
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
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
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
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)
214 ELSEIF(ielmu.EQ.11.AND.ielmv.EQ.11)
THEN 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
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
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
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
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
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
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
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
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
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
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
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
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)
287 ELSEIF(ielmu.EQ.12.AND.ielmv.EQ.12)
THEN 293 IF(formul(16:16).EQ.
'N')
THEN 301 x2t1 = xel(ielem,2) - x1t1
303 y2t1 = yel(ielem,2) - y1t1
306 x2t2 = xel(ielem,3) - x1t2
308 y2t2 = yel(ielem,3) - y1t2
311 x2t3 = xel(ielem,1) - x1t3
313 y2t3 = yel(ielem,1) - y1t3
315 x4 = tiers * (xel(ielem,1)+xel(ielem,2)+xel(ielem,3))
316 y4 = tiers * (yel(ielem,1)+yel(ielem,2)+yel(ielem,3))
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
340 k1t1 = us2t1 * (y2t1-y3t1) - vs2t1 * (x2t1-x3t1)
341 k2t1 = us2t1 * (y3t1 ) - vs2t1 * (x3t1 )
342 k3t1 = us2t1 * ( -y2t1) - vs2t1 * ( -x2t1)
344 k1t2 = us2t2 * (y2t2-y3t2) - vs2t2 * (x2t2-x3t2)
345 k2t2 = us2t2 * (y3t2 ) - vs2t2 * (x3t2 )
346 k3t2 = us2t2 * ( -y2t2) - vs2t2 * ( -x2t2)
348 k1t3 = us2t3 * (y2t3-y3t3) - vs2t3 * (x2t3-x3t3)
349 k2t3 = us2t3 * (y3t3 ) - vs2t3 * (x3t3 )
350 k3t3 = us2t3 * ( -y2t3) - vs2t3 * ( -x2t3)
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 )
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 )
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 )
377 a14(ielem) = - l13t1 - l23t3
380 a24(ielem) = - l13t2 - l23t1
383 a34(ielem) = - l13t3 - l23t2
384 a41(ielem) = - l31t1 - l32t3
385 a42(ielem) = - l31t2 - l32t1
386 a43(ielem) = - l31t3 - l32t2
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)
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
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
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
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
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
436 a24(ielem)= (x2*(-v3+v1)+x3*(v3+v4+2*v2)+y2*(u3-u1)+y3*(-
437 & u3-u4-2*u2))*xsur24
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
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
445 a34(ielem)= (x2*(-2*v3-v4-v2)+x3*(v2-v1)+y2*(2*u3+u4+u2)+
446 & y3*(-u2+u1))*xsur24
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
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
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
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)
473 WRITE(
lu,11) ielmu,ielmv
475 &
'MT05BB (BIEF) : TYPES OF VELOCITIES NOT AVAILABLE : ',2i6)
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)