5 &( a11 , a12 , a13 , a14 , a15, a16,
6 & a21 , a22 , a23 , a24 , a25, a26,
7 & a31 , a32 , a33 , a34 , a35, a36,
10 & ikle1,ikle2,ikle3,ikle4,ikle5,ikle6,
11 & nelem,nelmax,icoord)
82 INTEGER,
INTENT(IN) :: NELEM,NELMAX,ICOORD
83 INTEGER,
INTENT(IN) :: IKLE1(nelmax),IKLE2(nelmax)
84 INTEGER,
INTENT(IN) :: IKLE3(nelmax),IKLE4(nelmax)
85 INTEGER,
INTENT(IN) :: IKLE5(nelmax),IKLE6(nelmax)
87 DOUBLE PRECISION,
INTENT(INOUT) :: A11(*),A12(*),A13(*)
88 DOUBLE PRECISION,
INTENT(INOUT) :: A14(*),A15(*),A16(*)
89 DOUBLE PRECISION,
INTENT(INOUT) :: A21(*),A22(*),A23(*)
90 DOUBLE PRECISION,
INTENT(INOUT) :: A24(*),A25(*),A26(*)
91 DOUBLE PRECISION,
INTENT(INOUT) :: A31(*),A32(*),A33(*)
92 DOUBLE PRECISION,
INTENT(INOUT) :: A34(*),A35(*),A36(*)
93 DOUBLE PRECISION,
INTENT(IN) :: XMUL
94 DOUBLE PRECISION,
INTENT(IN) :: F(*),U(*),V(*)
97 TYPE(bief_obj),
INTENT(IN) :: SF,SU,SV
99 DOUBLE PRECISION,
INTENT(IN) :: XEL(nelmax,3),YEL(nelmax,3)
100 DOUBLE PRECISION,
INTENT(IN) :: SURFAC(nelmax)
104 INTEGER IELEM,IELMF,IELMU,IELMV
105 DOUBLE PRECISION X2,X3,Y2,Y3,F1,F2,F3
106 DOUBLE PRECISION U1,U2,U3,U4,U5,U6,V1,V2,V3,V4,V5,V6,UX,UY
107 DOUBLE PRECISION XSUR12 ,XSUR180,XSUR720
108 DOUBLE PRECISION AUX12 ,AUX180 ,AUX720 , UNSURF
116 xsur12 = xmul / 12.d0
117 xsur720 = xmul / 720.d0
118 xsur180 = xmul / 180.d0
126 IF(ielmu.EQ.10.AND.ielmv.EQ.10)
THEN 146 f2 = f(ikle2(ielem)) - f1
147 f3 = f(ikle3(ielem)) - f1
152 unsurf= 1.d0 / surfac(ielem)
153 aux12 = xsur12 * unsurf
161 a24(ielem)= (y3*ux-uy*x3) * (y3*f2-y2*f3) * aux12
162 a25(ielem)= a24(ielem)
163 a26(ielem)= a24(ielem)
166 a34(ielem)= (x2*uy-ux*y2) * (y3*f2-y2*f3) * aux12
167 a35(ielem)= a34(ielem)
168 a36(ielem)= a34(ielem)
172 a14(ielem)= - a24(ielem) - a34(ielem)
173 a15(ielem)= a14(ielem)
174 a16(ielem)= a14(ielem)
184 ELSEIF(icoord.EQ.2)
THEN 200 f2 = f(ikle2(ielem)) - f1
201 f3 = f(ikle3(ielem)) - f1
206 unsurf = 1.d0 / surfac(ielem)
207 aux12 = xsur12 * unsurf
215 a24(ielem)= (x3*f2-x2*f3) * (uy*x3-ux*y3) * aux12
216 a25(ielem)= a24(ielem)
217 a26(ielem)= a24(ielem)
220 a34(ielem)= (x3*f2-x2*f3) * (ux*y2-uy*x2) * aux12
221 a35(ielem)= a34(ielem)
222 a36(ielem)= a34(ielem)
226 a14(ielem)= - a24(ielem) - a34(ielem)
227 a15(ielem)= a14(ielem)
228 a16(ielem)= a14(ielem)
245 ELSEIF(ielmu.EQ.13)
THEN 265 f2 = f(ikle2(ielem)) - f1
266 f3 = f(ikle3(ielem)) - f1
281 unsurf = 1.d0 / surfac(ielem)
282 aux720 = xsur720 * unsurf
283 aux180 = xsur180 * unsurf
287 a12(ielem)= (y3*f2-y2*f3) * ((u3+u1-6.d0*u2+4.d0*u6) * (y3-y2)
288 & + (v3+v1-6.d0*v2+4.d0*v6) * (x2-x3)) * aux720
290 a13(ielem)= (y3*f2-y2*f3) * ((4.d0*v4-6.d0*v3+v2+v1) * (x2-x3)
291 & + (6.d0*u3-4.d0*u4-u2-u1) * (y2-y3)) * aux720
293 a21(ielem)= (y3*f2-y2*f3) * ((4.d0*v5+v3+v2-6.d0*v1) * x3
294 & - (u3-6.d0*u1+4.d0*u5+u2) * y3 ) * aux720
296 a23(ielem)= (y3*f2-y2*f3) * ((v1-6.d0*v3+4.d0*v4+v2) * x3
297 & + (6.d0*u3-4.d0*u4-u2-u1) * y3 ) * aux720
299 a24(ielem)= (y3*f2-y2*f3) * ((v3-4.d0*v6-8.d0*v4-4.d0*v5) * x3
300 & - (u3-8.d0*u4-4.d0*u6-4.d0*u5) * y3) * aux180
302 a25(ielem)= (y3*f2-y2*f3) * ((v1-4.d0*v6-8.d0*v5-4.d0*v4) * x3
303 & + (4.d0*u6-u1+4.d0*u4+8.d0*u5) * y3) * aux180
305 a26(ielem)= (y3*f2-y2*f3) * ((v2-4.d0*v4-4.d0*v5-8.d0*v6) * x3
306 & + (8.d0*u6+4.d0*u4+4.d0*u5-u2) * y3) * aux180
308 a31(ielem)= (y3*f2-y2*f3) * ((6.d0*v1-4.d0*v5-v3-v2) * x2
309 & + (u3-6.d0*u1+4.d0*u5+u2) * y2 ) * aux720
311 a32(ielem)= (y3*f2-y2*f3) * ((-4.d0*v6+6.d0*v2-v1-v3) * x2
312 & + (u3+u1+4.d0*u6-6.d0*u2) * y2 ) * aux720
314 a34(ielem)= (y3*f2-y2*f3) * ((4.d0*v6+8.d0*v4+4.d0*v5-v3) * x2
315 & + (u3-8.d0*u4-4.d0*u6-4.d0*u5) * y2 ) * aux180
317 a35(ielem)= (y2*f3-y3*f2) * ((v1-8.d0*v5-4.d0*v4-4.d0*v6) * x2
318 & + (4.d0*u6-u1+4.d0*u4+8.d0*u5) * y2 ) * aux180
320 a36(ielem)= (y2*f3-y3*f2) * ((v2-4.d0*v4-4.d0*v5-8.d0*v6) * x2
321 & + (8.d0*u6+4.d0*u4+4.d0*u5-u2) * y2 ) * aux180
325 a14(ielem) = - a24(ielem) - a34(ielem)
326 a15(ielem) = - a25(ielem) - a35(ielem)
327 a16(ielem) = - a26(ielem) - a36(ielem)
332 a11(ielem) = - a21(ielem) - a31(ielem)
333 a22(ielem) = - a12(ielem) - a32(ielem)
334 a33(ielem) = - a13(ielem) - a23(ielem)
338 ELSEIF(icoord.EQ.2)
THEN 354 f2 = f(ikle2(ielem)) - f1
355 f3 = f(ikle3(ielem)) - f1
370 unsurf= 1.d0 / surfac(ielem)
371 aux180= xsur180 * unsurf
372 aux720= xsur720 * unsurf
376 a12(ielem)= (x2*f3-x3*f2) * ((4.d0*v6-6.d0*v2+v3+v1) * (x2-x3)
377 & + (u1+u3+4.d0*u6-6.d0*u2) * (y3-y2)) * aux720
379 a13(ielem)= (x2*f3-x3*f2) * ((v2-6.d0*v3+4.d0*v4+v1) * (x2-x3)
380 & + (6.d0*u3-u1-u2-4.d0*u4) * (y2-y3)) * aux720
382 a21(ielem)= (x3*f2-x2*f3) * ((6.d0*v1-v3-v2-4.d0*v5) * x3
383 & + (u3-6.d0*u1+u2+4.d0*u5) * y3 ) * aux720
385 a23(ielem)= (x2*f3-x3*f2) * ((v2-6.d0*v3+4.d0*v4+v1) * x3
386 & + (6.d0*u3-u1-u2-4.d0*u4) * y3 ) * aux720
388 a24(ielem)= (x2*f3-x3*f2) * ((v3-4.d0*v6-4.d0*v5-8.d0*v4) * x3
389 & + (4.d0*u5+8.d0*u4-u3+4.d0*u6) * y3 ) * aux180
391 a25(ielem)= (x2*f3-x3*f2) * ((v1-8.d0*v5-4.d0*v4-4.d0*v6) * x3
392 & + (4.d0*u4-u1+8.d0*u5+4.d0*u6) * y3 ) * aux180
394 a26(ielem)= (x2*f3-x3*f2) * ((v2-4.d0*v5-4.d0*v4-8.d0*v6) * x3
395 & + (4.d0*u5-u2+8.d0*u6+4.d0*u4) * y3 ) * aux180
397 a31(ielem)= (x2*f3-x3*f2) * ((6.d0*v1-v3-v2-4.d0*v5) * x2
398 & + (u3-6.d0*u1+u2+4.d0*u5) * y2 ) * aux720
400 a32(ielem)= (x3*f2-x2*f3) * ((4.d0*v6-6.d0*v2+v3+v1) * x2
401 & + (6.d0*u2-u1-u3-4.d0*u6) * y2 ) * aux720
403 a34(ielem)= (x3*f2-x2*f3) * ((v3-4.d0*v6-4.d0*v5-8.d0*v4) * x2
404 & + (4.d0*u5+8.d0*u4-u3+4.d0*u6) * y2 ) * aux180
406 a35(ielem)= (x3*f2-x2*f3) * ((v1-8.d0*v5-4.d0*v4-4.d0*v6) * x2
407 & + (4.d0*u4-u1+8.d0*u5+4.d0*u6) * y2 ) * aux180
409 a36(ielem)= (x3*f2-x2*f3) * ((v2-4.d0*v5-4.d0*v4-8.d0*v6) * x2
410 & + (4.d0*u5-u2+8.d0*u6+4.d0*u4) * y2 ) * aux180
414 a14(ielem) = - a24(ielem) - a34(ielem)
415 a15(ielem) = - a25(ielem) - a35(ielem)
416 a16(ielem) = - a26(ielem) - a36(ielem)
421 a11(ielem) = - a21(ielem) - a31(ielem)
422 a22(ielem) = - a12(ielem) - a32(ielem)
423 a33(ielem) = - a13(ielem) - a23(ielem)
445 101
FORMAT(1x,
'MT12AC (BIEF) :',/,
446 & 1x,
'DISCRETIZATION OF F : ',1i6,
' NOT AVAILABLE')
451 201
FORMAT(1x,
'MT12AC (BIEF) : IMPOSSIBLE COMPONENT ',
452 & 1i6,
' CHECK ICOORD')
454 301
FORMAT(1x,
'MT12AC (BIEF) :',/,
455 & 1x,
'DISCRETIZATION OF U : ',1i6,
' NOT AVAILABLE')
subroutine mt12ac(A11, A12, A13, A14, A15, A16, A21, A22, A23, A24, A25, A26, A31, A32, A33, A34, A35, A36, XMUL, SF, SU, SV, F, U, V, XEL, YEL, SURFAC, IKLE1, IKLE2, IKLE3, IKLE4, IKLE5, IKLE6, NELEM, NELMAX, ICOORD)