5 &(t,xm,xmul,sf,sg,sh,f,g,h,x,y,z,ikle,nelem,nelmax,inchyd)
84 INTEGER,
INTENT(IN) :: NELEM,NELMAX
85 INTEGER,
INTENT(IN) :: IKLE(nelmax,6)
86 DOUBLE PRECISION,
INTENT(INOUT) :: T(nelmax,6),XM(nelmax,15)
87 DOUBLE PRECISION,
INTENT(IN) :: XMUL
88 DOUBLE PRECISION,
INTENT(IN) :: F(*),G(*),H(*)
89 TYPE(bief_obj),
INTENT(IN) :: SF,SG,SH
90 DOUBLE PRECISION,
INTENT(IN) :: X(*),Y(*),Z(*)
91 LOGICAL,
INTENT(IN) :: INCHYD
97 DOUBLE PRECISION X2,Y2,Z2,X3,Y3,Z3,X4,Y4,Z4
98 DOUBLE PRECISION DIAG1,DIAG2,DIAG3,DIAG4
99 DOUBLE PRECISION EXTR12,EXTR13,EXTR14,EXTR23,EXTR24,EXTR34
100 INTEGER IT1,IT2,IT3,IT4,I,I1,I2,I3,I4,I5,I6,NUM1,NUM2,NUM3,NUM4
101 INTEGER :: IGLOB(6),SENS(3),STO(6,6),IELEM
103 DOUBLE PRECISION SUR24,HTOT,VTOT,WTOT,COEF
104 DOUBLE PRECISION T1,T3,T5,T7,T9,T11,T13,T15,T17,T19,T21,T23
105 DOUBLE PRECISION T35,T49,T28,T42,T51,T54,SURF
117 parameter( sto = reshape((/
118 & 00 , 01 , 02 , 03 , 04 , 05 ,
119 & 01 , 00 , 06 , 07 , 08 , 09 ,
120 & 02 , 06 , 00 , 10 , 11 , 12 ,
121 & 03 , 07 , 10 , 00 , 13 , 14 ,
122 & 04 , 08 , 11 , 13 , 00 , 15 ,
123 & 05 , 09 , 12 , 14 , 15 , 00 /), (/6,6/)) )
244 IF(sf%ELM.EQ.41.AND.sg%ELM.EQ.41.AND.sh%ELM.EQ.41)
THEN 254 iglob(1)=ikle(ielem,1)
255 iglob(2)=ikle(ielem,2)
256 iglob(3)=ikle(ielem,3)
257 iglob(4)=ikle(ielem,4)
258 iglob(5)=ikle(ielem,5)
259 iglob(6)=ikle(ielem,6)
261 IF(iglob(1).GT.iglob(2))
THEN 266 IF(iglob(2).GT.iglob(3))
THEN 271 IF(iglob(3).GT.iglob(1))
THEN 280 & ((x(iglob(2))-x(iglob(1)))*(y(iglob(3))-y(iglob(1)))
281 & -(x(iglob(3))-x(iglob(1)))*(y(iglob(2))-y(iglob(1))))
318 num1=
tetra(sens(1),sens(2),sens(3),i,1)
319 num2=
tetra(sens(1),sens(2),sens(3),i,2)
320 num3=
tetra(sens(1),sens(2),sens(3),i,3)
321 num4=
tetra(sens(1),sens(2),sens(3),i,4)
332 htot=f(it1)+f(it2)+f(it3)+f(it4)
333 vtot=g(it1)+g(it2)+g(it3)+g(it4)
334 wtot=h(it1)+h(it2)+h(it3)+h(it4)
357 t13 = t1*z4-t3*z3-t5*z4+t7*z3+t9*y4-t11*y3
369 coef=xmul*sur24/max(t13,0.01d0*surf)
374 t54 = t49-t3+t7+t1-t5
376 diag1 =coef*( htot*t28**2 +vtot*t42**2 +wtot*t54**2)
377 diag2 =coef*( htot*t19**2 +vtot*t35**2 +wtot*t49**2)
378 diag3 =coef*( htot*t23**2 +vtot*t17**2 +wtot*t51**2)
379 extr12 =coef*( htot*t28*t19+vtot*t42*t35-wtot*t54*t49)
380 extr13 =coef*(-htot*t28*t23-vtot*t42*t17+wtot*t54*t51)
381 extr23 =coef*(-htot*t19*t23-vtot*t35*t17-wtot*t49*t51)
385 extr14 = -(extr13+extr12+diag1)
386 extr24 = -(extr23+diag2+extr12)
387 extr34 = -(diag3+extr23+extr13)
388 diag4 = -(extr14+extr24+extr34)
392 t(ielem,num1) = t(ielem,num1)+ diag1
393 t(ielem,num2) = t(ielem,num2)+ diag2
394 t(ielem,num3) = t(ielem,num3)+ diag3
395 t(ielem,num4) = t(ielem,num4)+ diag4
397 xm(ielem,sto(num1,num2))=xm(ielem,sto(num1,num2))+extr12
398 xm(ielem,sto(num1,num3))=xm(ielem,sto(num1,num3))+extr13
399 xm(ielem,sto(num1,num4))=xm(ielem,sto(num1,num4))+extr14
400 xm(ielem,sto(num2,num3))=xm(ielem,sto(num2,num3))+extr23
401 xm(ielem,sto(num2,num4))=xm(ielem,sto(num2,num4))+extr24
402 xm(ielem,sto(num3,num4))=xm(ielem,sto(num3,num4))+extr34
410 ELSEIF(sf%ELM.EQ.40.AND.sg%ELM.EQ.40.AND.sh%ELM.EQ.40)
THEN 421 iglob(1)=ikle(ielem,1)
422 iglob(2)=ikle(ielem,2)
423 iglob(3)=ikle(ielem,3)
424 iglob(4)=ikle(ielem,4)
425 iglob(5)=ikle(ielem,5)
426 iglob(6)=ikle(ielem,6)
428 IF(iglob(1).GT.iglob(2))
THEN 433 IF(iglob(2).GT.iglob(3))
THEN 438 IF(iglob(3).GT.iglob(1))
THEN 447 & ((x(iglob(2))-x(iglob(1)))*(y(iglob(3))-y(iglob(1)))
448 & -(x(iglob(3))-x(iglob(1)))*(y(iglob(2))-y(iglob(1))))
485 num1=
tetra(sens(1),sens(2),sens(3),i,1)
486 num2=
tetra(sens(1),sens(2),sens(3),i,2)
487 num3=
tetra(sens(1),sens(2),sens(3),i,3)
488 num4=
tetra(sens(1),sens(2),sens(3),i,4)
524 t13 = t1*z4-t3*z3-t5*z4+t7*z3+t9*y4-t11*y3
536 coef=xmul*sur24/max(t13,0.01d0*surf)
541 t54 = t49-t3+t7+t1-t5
543 diag1 =coef*( htot*t28**2 +vtot*t42**2 +wtot*t54**2)
544 diag2 =coef*( htot*t19**2 +vtot*t35**2 +wtot*t49**2)
545 diag3 =coef*( htot*t23**2 +vtot*t17**2 +wtot*t51**2)
546 extr12 =coef*( htot*t28*t19+vtot*t42*t35-wtot*t54*t49)
547 extr13 =coef*(-htot*t28*t23-vtot*t42*t17+wtot*t54*t51)
548 extr23 =coef*(-htot*t19*t23-vtot*t35*t17-wtot*t49*t51)
552 extr14 = -(extr13+extr12+diag1)
553 extr24 = -(extr23+diag2+extr12)
554 extr34 = -(diag3+extr23+extr13)
555 diag4 = -(extr14+extr24+extr34)
559 t(ielem,num1) = t(ielem,num1)+ diag1
560 t(ielem,num2) = t(ielem,num2)+ diag2
561 t(ielem,num3) = t(ielem,num3)+ diag3
562 t(ielem,num4) = t(ielem,num4)+ diag4
564 xm(ielem,sto(num1,num2))=xm(ielem,sto(num1,num2))+extr12
565 xm(ielem,sto(num1,num3))=xm(ielem,sto(num1,num3))+extr13
566 xm(ielem,sto(num1,num4))=xm(ielem,sto(num1,num4))+extr14
567 xm(ielem,sto(num2,num3))=xm(ielem,sto(num2,num3))+extr23
568 xm(ielem,sto(num2,num4))=xm(ielem,sto(num2,num4))+extr24
569 xm(ielem,sto(num3,num4))=xm(ielem,sto(num3,num4))+extr34
582 WRITE(
lu,1001) sf%ELM,sg%ELM,sh%ELM
583 1000
FORMAT(1x,
'MT02PT (BIEF) : MAUVAIS TYPE DE F,G OU H : ',
585 1001
FORMAT(1x,
'MT02PT (BIEF) : WRONG TYPE OF F,G OR H: ',
607 IF(max(z(i1),z(i2),z(i3)).GT.min(z(i4),z(i5),z(i6)))
THEN
integer, dimension(2, 2, 2, 3, 4) tetra
subroutine mt02pt(T, XM, XMUL, SF, SG, SH, F, G, H, X, Y, Z, IKLE, NELEM, NELMAX, INCHYD)