5 &(t,xm,xmul,sf,sg,sh,f,g,h,x,y,z,ikle,nelem,nelmax,npoin2)
85 INTEGER,
INTENT(IN) :: NELEM,NELMAX,NPOIN2
86 INTEGER,
INTENT(IN) :: IKLE(nelmax,4)
88 DOUBLE PRECISION,
INTENT(INOUT) :: T(nelmax,4),XM(nelmax,6)
90 DOUBLE PRECISION,
INTENT(IN) :: XMUL
91 DOUBLE PRECISION,
INTENT(IN) :: F(*),G(*),H(*)
95 TYPE(bief_obj),
INTENT(IN) :: SF,SG,SH
97 DOUBLE PRECISION,
INTENT(IN) :: X(*),Y(*),Z(*)
103 DOUBLE PRECISION X2,Y2,Z2,X3,Y3,Z3,X4,Y4,Z4,VOL6
104 INTEGER I1,I2,I3,I4,IELEM,ISO,IL1,IL2,IL3,IL4,ILOW
106 DOUBLE PRECISION COEF,SUR24,DZ1,DZ2,DZ3,DZ4
107 DOUBLE PRECISION FTOT,GTOT,HTOT,VTOT,WTOT,FGTOT,GHTOT,FHTOT
108 DOUBLE PRECISION T1,T3,T5,T7,T9,T11,T13,T15,T17,T19,T21,T23
109 DOUBLE PRECISION T35,T49,T28,T42,T51,T54
110 DOUBLE PRECISION AUX,AUXX,AUXXX
111 DOUBLE PRECISION AUX1,AUX2,AUX3,AUX4,AUX5,AUX6,AUX7,AUX8,AUX9
113 DOUBLE PRECISION,
PARAMETER :: CHOUIA = 1.d-4
123 IF(sh%DIMDISC.EQ.0)
THEN 130 WRITE(
lu,4001) sh%DIMDISC
131 4001
FORMAT(1x,
'MT02TT (BIEF): DIMDISC OF H NOT IMPLEMENTED: ',i6)
138 IF(sf%ELM.EQ.31.AND.sg%ELM.EQ.31.AND.
139 & sh%ELM.EQ.31.AND.iso.EQ.1)
THEN 158 htot=f(i1)+f(i2)+f(i3)+f(i4)
159 vtot=g(i1)+g(i2)+g(i3)+g(i4)
160 wtot=h(i1)+h(i2)+h(i3)+h(i4)
183 t13 = t1*z4-t3*z3-t5*z4+t7*z3+t9*y4-t11*y3
195 coef=xmul*sur24/max(t13,1.d-10)
201 t54 = t49-t3+t7+t1-t5
203 t(ielem,1) =coef*(htot*t28**2+vtot*t42**2+wtot*t54**2)
204 t(ielem,2) =coef*(htot*t19**2+vtot*t35**2+wtot*t49**2)
205 t(ielem,3) =coef*(htot*t23**2+vtot*t17**2+wtot*t51**2)
206 xm(ielem,1)=coef*(htot*t28*t19+vtot*t42*t35-wtot*t54*t49)
207 xm(ielem,2)=coef*(-htot*t28*t23-vtot*t42*t17+wtot*t54*t51)
208 xm(ielem,3)=-(xm(ielem,2)+xm(ielem,1)+t(ielem,1))
209 xm(ielem,4)=coef*(-htot*t19*t23-vtot*t35*t17-wtot*t49*t51)
210 xm(ielem,5)= -(xm(ielem,4)+t(ielem,2)+xm(ielem,1))
211 xm(ielem,6)= -(t(ielem,3)+xm(ielem,4)+xm(ielem,2))
212 t(ielem,4) = -(xm(ielem,3)+xm(ielem,5)+xm(ielem,6))
220 ELSEIF(sf%ELM.EQ.51.AND.sg%ELM.EQ.51.AND.sh%ELM.EQ.51.AND.
246 ilow=min(il1,il2,il3,il4)
256 dz1=z(i1+npoin2)-z(i1)
258 dz1=z(i1)-z(i1-npoin2)
261 dz2=z(i2+npoin2)-z(i2)
263 dz2=z(i2)-z(i2-npoin2)
266 dz3=z(i3+npoin2)-z(i3)
268 dz3=z(i3)-z(i3-npoin2)
271 dz4=z(i4+npoin2)-z(i4)
273 dz4=z(i4)-z(i4-npoin2)
280 IF(dz1.LT.chouia.OR.dz2.LT.chouia.OR.
281 & dz3.LT.chouia.OR.dz4.LT.chouia )
THEN 286 htot=f(i1)+f(i2)+f(i3)+f(i4)
287 vtot=g(i1)+g(i2)+g(i3)+g(i4)
288 wtot=h(i1)+h(i2)+h(i3)+h(i4)
303 vol6 = x2*(y3*z4-y4*z3)+y2*(x4*z3-x3*z4)+z2*(x3*y4-x4*y3)
315 coef=xmul*sur24/max(vol6,1.d-10)
320 t54 = t49-x2*y4+x4*y2+x2*y3-x3*y2
322 t(ielem,1) =coef*( htot*t28**2+vtot*t42**2+wtot*t54**2)
323 t(ielem,2) =coef*( htot*t19**2+vtot*t35**2+wtot*t49**2)
324 t(ielem,3) =coef*( htot*t23**2+vtot*t17**2+wtot*t51**2)
325 xm(ielem,1)=coef*( htot*t28*t19+vtot*t42*t35-wtot*t54*t49)
326 xm(ielem,2)=coef*(-htot*t28*t23-vtot*t42*t17+wtot*t54*t51)
327 xm(ielem,3)=-(xm(ielem,2)+xm(ielem,1)+t(ielem,1))
328 xm(ielem,4)=coef*(-htot*t19*t23-vtot*t35*t17-wtot*t49*t51)
329 xm(ielem,5)= -(xm(ielem,4)+t(ielem,2)+xm(ielem,1))
330 xm(ielem,6)= -(t(ielem,3)+xm(ielem,4)+xm(ielem,2))
331 t(ielem,4) = -(xm(ielem,3)+xm(ielem,5)+xm(ielem,6))
337 ELSEIF(sf%ELM.EQ.30.AND.sg%ELM.EQ.30.AND.sh%ELM.EQ.30.AND.
383 t13 = t1*z4-t3*z3-t5*z4+t7*z3+t9*y4-t11*y3
399 coef=xmul*sur24/max(t13,1.d-10)
405 t54 = t49-t3+t7+t1-t5
407 t(ielem,1) =coef*(htot*t28**2+vtot*t42**2+wtot*t54**2)
408 t(ielem,2) =coef*(htot*t19**2+vtot*t35**2+wtot*t49**2)
409 t(ielem,3) =coef*(htot*t23**2+vtot*t17**2+wtot*t51**2)
410 xm(ielem,1)=coef*(htot*t28*t19+vtot*t42*t35-wtot*t54*t49)
411 xm(ielem,2)=coef*(-htot*t28*t23-vtot*t42*t17+wtot*t54*t51)
412 xm(ielem,3)=-(xm(ielem,2)+xm(ielem,1)+t(ielem,1))
413 xm(ielem,4)=coef*(-htot*t19*t23-vtot*t35*t17-wtot*t49*t51)
414 xm(ielem,5)= -(xm(ielem,4)+t(ielem,2)+xm(ielem,1))
415 xm(ielem,6)= -(t(ielem,3)+xm(ielem,4)+xm(ielem,2))
416 t(ielem,4) = -(xm(ielem,3)+xm(ielem,5)+xm(ielem,6))
422 ELSEIF(sf%ELM.EQ.30.AND.iso.EQ.6)
THEN 443 ftot = 4.d0*f(ielem )
444 gtot = 4.d0*f(ielem + nelem)
445 htot = 4.d0*f(ielem + 2*nelem)
446 ghtot= 4.d0*f(ielem + 3*nelem)
447 fhtot= 4.d0*f(ielem + 4*nelem)
448 fgtot= 4.d0*f(ielem + 5*nelem)
466 t13 = x2*y3*z4-x2*y4*z3-y2*x3*z4+y2*x4*z3+z2*x3*y4-z2*x4*y3
468 aux = y3*z4-y4*z3-y2*z4+z2*y4+y2*z3-z2*y3
469 auxx = x3*z4-x4*z3-x2*z4+z2*x4+x2*z3-z2*x3
470 auxxx = x3*y4-x4*y3-x2*y4+y2*x4+x2*y3-y2*x3
471 aux1 = ftot*(y3*z4-y4*z3-y2*z4+z2*y4+y2*z3-z2*y3)
472 aux2 = fgtot*(-x3*z4+x4*z3+x2*z4-z2*x4-x2*z3+z2*x3)
473 aux3 = fhtot*(x3*y4-x4*y3-x2*y4+y2*x4+x2*y3-y2*x3)
474 aux4 = gtot*(-x3*z4+x4*z3+x2*z4-z2*x4-x2*z3+z2*x3)
475 aux5 = ghtot*(x3*y4-x4*y3-x2*y4+y2*x4+x2*y3-y2*x3)
476 aux6 = fgtot*(y3*z4-y4*z3-y2*z4+z2*y4+y2*z3-z2*y3)
477 aux7 = htot*(x3*y4-x4*y3-x2*y4+y2*x4+x2*y3-y2*x3)
478 aux8 = fhtot*(y3*z4-y4*z3-y2*z4+z2*y4+y2*z3-z2*y3)
479 aux9 = ghtot*(-x3*z4+x4*z3+x2*z4-z2*x4-x2*z3+z2*x3)
481 coef=xmul*sur24/max(t13,1.d-14)
483 t(ielem,1) =coef*(aux*(aux1+aux2+aux3)
484 & -auxx*(aux4+aux5+aux6)+auxxx*(aux7+aux8+aux9))
485 t(ielem,2) =coef*((y3*z4-y4*z3)*
486 & (ftot*(y3*z4-y4*z3)+fgtot*(-x3*z4+x4*z3)+fhtot*(x3*y4-x4*y3))
487 & -(x3*z4-x4*z3)*(gtot*(-x3*z4+x4*z3)+fgtot*(y3*z4-y4*z3)
488 & +ghtot*(x3*y4-x4*y3))+(x3*y4-x4*y3)*(htot*(x3*y4-x4*y3)
489 & +fhtot*(y3*z4-y4*z3)+ghtot*(-x3*z4+x4*z3)))
490 t(ielem,3) =coef*((y2*z4-z2*y4)*(ftot*(y2*z4-z2*y4)+
491 & fgtot*(-x2*z4+z2*x4)+fhtot*(x2*y4-y2*x4))-
492 & (x2*z4-z2*x4)*(gtot*(-x2*z4+z2*x4)+fgtot*(y2*z4-z2*y4)+
493 & ghtot*(x2*y4-y2*x4))+(x2*y4-y2*x4)*(htot*(x2*y4-y2*x4)+
494 & fhtot*(y2*z4-z2*y4)+ghtot*(-x2*z4+z2*x4)))
495 t(ielem,4) =coef*((y2*z3-z2*y3)*(ftot*(y2*z3-z2*y3)+
496 & fgtot*(-x2*z3+z2*x3)+fhtot*(x2*y3-y2*x3))-
497 & (x2*z3-z2*x3)*(gtot*(-x2*z3+z2*x3)+fgtot*(y2*z3-z2*y3)+
498 & ghtot*(x2*y3-y2*x3))+(x2*y3-y2*x3)*(htot*(x2*y3-y2*x3)+
499 & fhtot*(y2*z3-z2*y3)+ghtot*(-x2*z3+z2*x3)))
500 xm(ielem,1)=coef*((x3*z4-x4*z3)*(aux4+aux5+aux6)-
501 & (y3*z4-y4*z3)*(aux1+aux2+aux3)-(x3*y4-x4*y3)*(aux7+aux8+aux9))
502 xm(ielem,2)=coef*((y2*z4-z2*y4)*(aux1+aux2+aux3)-
503 & (x2*z4-z2*x4)*(aux4+aux5+aux6)+(x2*y4-y2*x4)*(aux7+aux8+aux9))
504 xm(ielem,3)=coef*((x2*z3-z2*x3)*(aux4+aux5+aux6)-
505 & (y2*z3-z2*y3)*(aux1+aux2+aux3)-(x2*y3-y2*x3)*(aux7+aux8+aux9))
506 xm(ielem,4)=coef*((x2*z4-z2*x4)*(gtot*(-x3*z4+x4*z3)+
507 & fgtot*(y3*z4-y4*z3)+ghtot*(x3*y4-x4*y3))-
508 & (y2*z4-z2*y4)*(ftot*(y3*z4-y4*z3)+fgtot*(-x3*z4+x4*z3)+
509 & fhtot*(x3*y4-x4*y3))-(x2*y4-y2*x4)*(htot*(x3*y4-x4*y3)+
510 & fhtot*(y3*z4-y4*z3)+ghtot*(-x3*z4+x4*z3)))
511 xm(ielem,5)=coef*((y2*z3-z2*y3)*(ftot*(y3*z4-y4*z3)+
512 & fgtot*(-x3*z4+x4*z3)+fhtot*(x3*y4-x4*y3))-
513 & (x2*z3-z2*x3)*(gtot*(-x3*z4+x4*z3)+fgtot*(y3*z4-y4*z3)
514 & +ghtot*(x3*y4-x4*y3))+(x2*y3-y2*x3)*(htot*(x3*y4-x4*y3)
515 & +fhtot*(y3*z4-y4*z3)+ghtot*(-x3*z4+x4*z3)))
516 xm(ielem,6)=coef*((x2*z3-z2*x3)*(gtot*(-x2*z4+z2*x4)+
517 & fgtot*(y2*z4-z2*y4)+ghtot*(x2*y4-y2*x4))-
518 & (y2*z3-z2*y3)*(ftot*(y2*z4-z2*y4)+fgtot*(-x2*z4+z2*x4)+
519 & fhtot*(x2*y4-y2*x4))-(x2*y3-y2*x3)*(htot*(x2*y4-y2*x4)+
520 & fhtot*(y2*z4-z2*y4)+ghtot*(-x2*z4+z2*x4)))
525 WRITE(
lu,1001) sf%ELM,sg%ELM,sh%ELM
526 1001
FORMAT(1x,
'MT02TT (BIEF) : WRONG TYPE OF F,G OR H: ',
subroutine mt02tt(T, XM, XMUL, SF, SG, SH, F, G, H, X, Y, Z, IKLE, NELEM, NELMAX, NPOIN2)