9 & surfac,ikle1,ikle2,ikle3,nelem,nelmax,formul,tdia,text)
73 INTEGER,
INTENT(IN) :: NELEM,NELMAX
74 INTEGER,
INTENT(IN) :: IKLE1(nelmax),IKLE2(nelmax),IKLE3(nelmax)
76 CHARACTER(LEN=1),
INTENT(INOUT) :: TDIA,TEXT
77 CHARACTER(LEN=16),
INTENT(IN) :: FORMUL
79 DOUBLE PRECISION,
INTENT(INOUT) :: A11(*),A12(*),A13(*)
80 DOUBLE PRECISION,
INTENT(INOUT) :: A21(*),A22(*),A23(*)
81 DOUBLE PRECISION,
INTENT(INOUT) :: A31(*),A32(*),A33(*)
83 DOUBLE PRECISION,
INTENT(IN) :: XMUL
84 DOUBLE PRECISION,
INTENT(IN) :: F(*)
88 TYPE(bief_obj),
INTENT(IN) :: SF
90 DOUBLE PRECISION,
INTENT(IN) :: XEL(nelmax,3),YEL(nelmax,3)
91 DOUBLE PRECISION,
INTENT(IN) :: SURFAC(nelmax)
98 DOUBLE PRECISION SUR48,DET,F1,F2,F3,X2,X3,Y2,Y3,F123,SUR24
107 IF(sf%ELM.NE.11)
THEN 109 WRITE(
lu,2001) sf%ELM
110 2001
FORMAT(1x,
'MT99AA (BIEF) : TYPE OF F:',i6,
' NOT IMPLEMENTED')
118 IF(formul(8:16).EQ.
' 0XX0')
THEN 127 det = sur48 / surfac(ielem)
138 a11(ielem)=-(-y2*f1+y3*f1-y3*f2+y2*f3)*(y2-y3)*(2*f1+f2+f3)*det
139 a12(ielem)=-(-y2*f1+y3*f1-y3*f2+y2*f3)*y3*(2*f1+f2+f3)*det
140 a13(ielem)=(-y2*f1+y3*f1-y3*f2+y2*f3)*y2*(2*f1+f2+f3)*det
141 a21(ielem)=-(-y2*f1+y3*f1-y3*f2+y2*f3)*(y2-y3)*(f1+2*f2+f3)*det
142 a22(ielem)=-(-y2*f1+y3*f1-y3*f2+y2*f3)*y3*(f1+2*f2+f3)*det
143 a23(ielem)=(-y2*f1+y3*f1-y3*f2+y2*f3)*y2*(f1+2*f2+f3)*det
144 a31(ielem)=-(-y2*f1+y3*f1-y3*f2+y2*f3)*(y2-y3)*(f1+f2+2*f3)*det
145 a32(ielem)=-(-y2*f1+y3*f1-y3*f2+y2*f3)*y3*(f1+f2+2*f3)*det
146 a33(ielem)=(-y2*f1+y3*f1-y3*f2+y2*f3)*y2*(f1+f2+2*f3)*det
154 ELSEIF(formul(8:16).EQ.
' 0YY0')
THEN 163 det = sur48 / surfac(ielem)
174 a11(ielem)=-(x2*f1-x3*f1+x3*f2-x2*f3)*(-x2+x3)*(2*f1+f2+f3)*det
175 a12(ielem)=(x2*f1-x3*f1+x3*f2-x2*f3)*x3*(2*f1+f2+f3)*det
176 a13(ielem)=-(x2*f1-x3*f1+x3*f2-x2*f3)*x2*(2*f1+f2+f3)*det
177 a21(ielem)=-(x2*f1-x3*f1+x3*f2-x2*f3)*(-x2+x3)*(f1+2*f2+f3)*det
178 a22(ielem)=(x2*f1-x3*f1+x3*f2-x2*f3)*x3*(f1+2*f2+f3)*det
179 a23(ielem)=-(x2*f1-x3*f1+x3*f2-x2*f3)*x2*(f1+2*f2+f3)*det
180 a31(ielem)=-(x2*f1-x3*f1+x3*f2-x2*f3)*(-x2+x3)*(f1+f2+2*f3)*det
181 a32(ielem)=(x2*f1-x3*f1+x3*f2-x2*f3)*x3*(f1+f2+2*f3)*det
182 a33(ielem)=-(x2*f1-x3*f1+x3*f2-x2*f3)*x2*(f1+f2+2*f3)*det
190 ELSEIF(formul(8:16).EQ.
' XX00')
THEN 201 det = sur48 / surfac(ielem)
211 a11(ielem)=(-y2*f1+y3*f1-y3*f2+y2*f3)**2*2*det
212 a12(ielem)=(-y2*f1+y3*f1-y3*f2+y2*f3)**2*det
213 a13(ielem)=(-y2*f1+y3*f1-y3*f2+y2*f3)**2*det
214 a21(ielem)=(-y2*f1+y3*f1-y3*f2+y2*f3)**2*det
215 a22(ielem)=(-y2*f1+y3*f1-y3*f2+y2*f3)**2*2*det
216 a23(ielem)=(-y2*f1+y3*f1-y3*f2+y2*f3)**2*det
217 a31(ielem)=(-y2*f1+y3*f1-y3*f2+y2*f3)**2*det
218 a32(ielem)=(-y2*f1+y3*f1-y3*f2+y2*f3)**2*det
219 a33(ielem)=(-y2*f1+y3*f1-y3*f2+y2*f3)**2*2*det
227 ELSEIF(formul(8:16).EQ.
' 0X0Y')
THEN 236 det = sur48 / surfac(ielem)
249 a11(ielem)=-(-y2*f1+y3*f1-y3*f2+y2*f3)*(-x2+x3)*(2*f1+f2+f3)*det
250 a12(ielem)=-(-y2*f1+y3*f1-y3*f2+y2*f3)*(-x2+x3)*(f1+2*f2+f3)*det
251 a13(ielem)=-(-y2*f1+y3*f1-y3*f2+y2*f3)*(-x2+x3)*(f1+f2+2*f3)*det
252 a21(ielem)=(-y2*f1+y3*f1-y3*f2+y2*f3)*x3*(2*f1+f2+f3)*det
253 a22(ielem)=(-y2*f1+y3*f1-y3*f2+y2*f3)*x3*(f1+2*f2+f3)*det
254 a23(ielem)=(-y2*f1+y3*f1-y3*f2+y2*f3)*x3*(f1+f2+2*f3)*det
255 a31(ielem)=-(-y2*f1+y3*f1-y3*f2+y2*f3)*x2*(2*f1+f2+f3)*det
256 a32(ielem)=-(-y2*f1+y3*f1-y3*f2+y2*f3)*x2*(f1+2*f2+f3)*det
257 a33(ielem)=-(-y2*f1+y3*f1-y3*f2+y2*f3)*x2*(f1+f2+2*f3)*det
265 ELSEIF(formul(8:16).EQ.
' XY00')
THEN 276 det = sur48 / surfac(ielem)
290 &(-y2*f1+y3*f1-y3*f2+y2*f3)*(x2*f1-x3*f1+x3*f2-x2*f3)*2*det
292 &(-y2*f1+y3*f1-y3*f2+y2*f3)*(x2*f1-x3*f1+x3*f2-x2*f3)*det
294 &(-y2*f1+y3*f1-y3*f2+y2*f3)*(x2*f1-x3*f1+x3*f2-x2*f3)*det
296 &(-y2*f1+y3*f1-y3*f2+y2*f3)*(x2*f1-x3*f1+x3*f2-x2*f3)*det
298 &(-y2*f1+y3*f1-y3*f2+y2*f3)*(x2*f1-x3*f1+x3*f2-x2*f3)*2*det
300 &(-y2*f1+y3*f1-y3*f2+y2*f3)*(x2*f1-x3*f1+x3*f2-x2*f3)*det
302 &(-y2*f1+y3*f1-y3*f2+y2*f3)*(x2*f1-x3*f1+x3*f2-x2*f3)*det
304 &(-y2*f1+y3*f1-y3*f2+y2*f3)*(x2*f1-x3*f1+x3*f2-x2*f3)*det
306 &(-y2*f1+y3*f1-y3*f2+y2*f3)*(x2*f1-x3*f1+x3*f2-x2*f3)*2*det
314 ELSEIF(formul(8:16).EQ.
' YY00')
THEN 325 det = sur48 / surfac(ielem)
336 a11(ielem)=(x2*f1-x3*f1+x3*f2-x2*f3)**2*2*det
337 a12(ielem)=(x2*f1-x3*f1+x3*f2-x2*f3)**2*det
338 a13(ielem)=(x2*f1-x3*f1+x3*f2-x2*f3)**2*det
339 a21(ielem)=(x2*f1-x3*f1+x3*f2-x2*f3)**2*det
340 a22(ielem)=(x2*f1-x3*f1+x3*f2-x2*f3)**2*2*det
341 a23(ielem)=(x2*f1-x3*f1+x3*f2-x2*f3)**2*det
342 a31(ielem)=(x2*f1-x3*f1+x3*f2-x2*f3)**2*det
343 a32(ielem)=(x2*f1-x3*f1+x3*f2-x2*f3)**2*det
344 a33(ielem)=(x2*f1-x3*f1+x3*f2-x2*f3)**2*2*det
352 ELSEIF(formul(8:16).EQ.
' 0Y0X')
THEN 361 det = sur48 / surfac(ielem)
374 a11(ielem)=-(x2*f1-x3*f1+x3*f2-x2*f3)*(y2-y3)*(2*f1+f2+f3)*det
375 a12(ielem)=-(x2*f1-x3*f1+x3*f2-x2*f3)*(y2-y3)*(f1+2*f2+f3)*det
376 a13(ielem)=-(x2*f1-x3*f1+x3*f2-x2*f3)*(y2-y3)*(f1+f2+2*f3)*det
377 a21(ielem)=-(x2*f1-x3*f1+x3*f2-x2*f3)*y3*(2*f1+f2+f3)*det
378 a22(ielem)=-(x2*f1-x3*f1+x3*f2-x2*f3)*y3*(f1+2*f2+f3)*det
379 a23(ielem)=-(x2*f1-x3*f1+x3*f2-x2*f3)*y3*(f1+f2+2*f3)*det
380 a31(ielem)=(x2*f1-x3*f1+x3*f2-x2*f3)*y2*(2*f1+f2+f3)*det
381 a32(ielem)=(x2*f1-x3*f1+x3*f2-x2*f3)*y2*(f1+2*f2+f3)*det
382 a33(ielem)=(x2*f1-x3*f1+x3*f2-x2*f3)*y2*(f1+f2+2*f3)*det
390 ELSEIF(formul(8:16).EQ.
'00XX+00YY')
THEN 401 det = sur24 / surfac(ielem)
413 f123 = f2**2+f1*f2+f2*f3+f3**2+f1**2+f1*f3
417 a12(ielem) = (y2*y3-y3**2+x2*x3-x3**2)*f123*det
418 a13(ielem) = -(y2**2-y2*y3+x2**2-x2*x3)*f123*det
419 a23(ielem) = -(y2*y3+x2*x3)*f123*det
423 a11(ielem) = (y2**2-2*y2*y3+y3**2+x2**2-2*x2*x3+x3**2)*f123*det
424 a22(ielem) = (y3**2+x3**2)*f123*det
425 a33(ielem) = (y2**2+x2**2)*f123*det
429 a21(ielem) = a12(ielem)
430 a31(ielem) = a13(ielem)
431 a32(ielem) = a23(ielem)
439 ELSEIF(formul(8:16).EQ.
' 00XX')
THEN 450 det = sur24 / surfac(ielem)
460 f123 = f2**2+f1*f2+f2*f3+f3**2+f1**2+f1*f3
464 a12(ielem) = (y2*y3-y3**2)*f123*det
465 a13(ielem) = -(y2**2-y2*y3)*f123*det
466 a23(ielem) = -(y2*y3)*f123*det
470 a11(ielem) = (y2**2-2*y2*y3+y3**2)*f123*det
471 a22(ielem) = (y3**2)*f123*det
472 a33(ielem) = (y2**2)*f123*det
476 a21(ielem) = a12(ielem)
477 a31(ielem) = a13(ielem)
478 a32(ielem) = a23(ielem)
486 ELSEIF(formul(8:16).EQ.
' 00YY')
THEN 497 det = sur24 / surfac(ielem)
507 f123 = f2**2+f1*f2+f2*f3+f3**2+f1**2+f1*f3
511 a12(ielem) = (x2*x3-x3**2)*f123*det
512 a13(ielem) = -(x2**2-x2*x3)*f123*det
513 a23(ielem) = -(x2*x3)*f123*det
517 a11(ielem) = (x2**2-2*x2*x3+x3**2)*f123*det
518 a22(ielem) = (x3**2)*f123*det
519 a33(ielem) = (x2**2)*f123*det
523 a21(ielem) = a12(ielem)
524 a31(ielem) = a13(ielem)
525 a32(ielem) = a23(ielem)
533 ELSEIF(formul(8:16).EQ.
' 00XY')
THEN 542 det = sur24 / surfac(ielem)
554 f123 = f2**2+f1*f2+f2*f3+f3**2+f1**2+f1*f3
556 a11(ielem) = (y2-y3)*(-x2+x3)*f123*det
557 a12(ielem) = y3 *(-x2+x3)*f123*det
558 a13(ielem) = -y2 *(-x2+x3)*f123*det
559 a21(ielem) = -(y2-y3)* x3 *f123*det
560 a22(ielem) = -y3 * x3 *f123*det
561 a23(ielem) = y2 * x3 *f123*det
562 a31(ielem) = (y2-y3)* x2 *f123*det
563 a32(ielem) = y3 * x2 *f123*det
564 a33(ielem) = -y2 * x2 *f123*det
574 WRITE(
lu,1001) formul
575 1001
FORMAT(1x,
'MT99AA (BIEF) : MATRIX NOT IMPLEMENTED:',a16)
subroutine mt99aa(A11, A12, A13, A21, A22, A23, A31, A32, A33, XMUL, SF, F, XEL, YEL, SURFAC, IKLE1, IKLE2, IKLE3, NELEM, NELMAX, FORMUL, TDIA, TEXT)