5 &(t,xm,xmul,sf,sg,sh,f,g,h,x,y,z,surfac,ikle,nelem,nelmax,inchyd,
111 INTEGER,
INTENT(IN) :: NELEM,NELMAX,NPLAN
112 INTEGER,
INTENT(IN) :: IKLE(nelmax,6)
114 DOUBLE PRECISION,
INTENT(INOUT) :: T(nelmax,6),XM(nelmax,15)
115 DOUBLE PRECISION,
INTENT(IN) :: SURFAC(nelmax)
117 DOUBLE PRECISION,
INTENT(IN) :: XMUL
118 DOUBLE PRECISION,
INTENT(IN) :: F(*),G(*),H(*)
122 TYPE(bief_obj),
INTENT(IN) :: SF,SG,SH
124 DOUBLE PRECISION,
INTENT(IN) :: X(nelmax,6),Y(nelmax,6),Z(*)
126 LOGICAL,
INTENT(IN) :: INCHYD
127 CHARACTER(LEN=16),
INTENT(IN) :: FORMUL
133 DOUBLE PRECISION H1,H2,H3,RI,RS,R,RRI,RRS,RRRI,RRRS
134 DOUBLE PRECISION D1,D2,D3,D12,D13,D23,D
135 DOUBLE PRECISION SH1,SHH,SNI,SNS,SNHI,SNHS,SNHHI,SNHHS,SNHH
136 DOUBLE PRECISION SNHI1,SNHS1,SNHI2,SNHS2,SNHI3,SNHS3
137 DOUBLE PRECISION HHI12,HHS12,HH12,HHI13,HHS13,HH13
138 DOUBLE PRECISION HHI23,HHS23,HH23
139 DOUBLE PRECISION HRI1,HRS1,HRI2,HRS2,HRI3,HRS3
140 DOUBLE PRECISION RR11,RR22,RR33,RR12,RR13,RR23
141 DOUBLE PRECISION NF1,NF2,NF3,NF4,NF5,NF6
142 DOUBLE PRECISION NG1,NG2,NG3,NG4,NG5,NG6
143 DOUBLE PRECISION NH1,NH2,NH3,XS06,XS2880
145 INTEGER I1,I2,I3,I4,I5,I6,IELEM,II4,II5,II6,NPOU0
147 DOUBLE PRECISION,
PARAMETER :: CHOUIA = 1.d-4
162 IF(sh%TYPR.EQ.
'0')
THEN 171 IF(sf%ELM.NE.41)
THEN 172 WRITE(
lu,1001) sf%ELM
173 1001
FORMAT(1x,
'MT02PP (BIEF) : TYPE OF F NOT IMPLEMENTED: ',i6)
177 IF(sg%ELM.NE.41)
THEN 178 WRITE(
lu,2001) sg%ELM
179 2001
FORMAT(1x,
'MT02PP (BIEF) : TYPE OF G NOT IMPLEMENTED: ',i6)
183 IF(sh%ELM.NE.41)
THEN 184 WRITE(
lu,3001) sh%ELM
185 3001
FORMAT(1x,
'MT02PP (BIEF) : TYPE OF H NOT IMPLEMENTED: ',i6)
193 IF(sh%DIMDISC.EQ.0)
THEN 196 ELSEIF(sh%DIMDISC.EQ.4111)
THEN 200 WRITE(
lu,4001) sh%DIMDISC
201 4001
FORMAT(1x,
'MT02PP (BIEF): DIMDISC OF H NOT IMPLEMENTED: ',i6)
236 shh=h1*h1+h2*h2+h3*h3
238 d1=y(ielem,2)-y(ielem,3)
244 d=xs2880/surfac(ielem)
246 ri=-(z(i1)*d1+z(i2)*d2+z(i3)*d3)
247 rs=-(z(i4)*d1+z(i5)*d2+z(i6)*d3)
258 IF(max(z(i1),z(i2),z(i3)).GT.min(z(i4),z(i5),z(i6)).OR.
259 & h1.LT.chouia.OR.h2.LT.chouia.OR.h3.LT.chouia )
THEN 291 nh1=(h(i1)+h(ii4))/h1
292 nh2=(h(i2)+h(ii5))/h2
293 nh3=(h(i3)+h(ii6))/h3
298 snhi=nf1*h1+nf2*h2+nf3*h3
299 snhs=nf4*h1+nf5*h2+nf6*h3
300 snhhi=(sni*sh1+snhi+snhi)*sh1+sni*shh
301 & +2*(nf1*h1*h1+nf2*h2*h2+nf3*h3*h3)
302 snhhs=(sns*sh1+snhs+snhs)*sh1+sns*shh
303 & +2*(nf4*h1*h1+nf5*h2*h2+nf6*h3*h3)
305 snhhi=snhh+snhhi+snhhi
306 snhhs=snhh+snhhs+snhhs
318 snhi1=(sni+nf1)*(sh1+h1)+snhi+nf1*h1
319 snhs1=(sns+nf4)*(sh1+h1)+snhs+nf4*h1
320 snhi2=(sni+nf2)*(sh1+h2)+snhi+nf2*h2
321 snhs2=(sns+nf5)*(sh1+h2)+snhs+nf5*h2
322 snhi3=(sni+nf3)*(sh1+h3)+snhi+nf3*h3
323 snhs3=(sns+nf6)*(sh1+h3)+snhs+nf6*h3
325 hri1=rri*snhi1+r*snhs1
326 hrs1=rrs*snhs1+r*snhi1
327 hri2=rri*snhi2+r*snhs2
328 hrs2=rrs*snhs2+r*snhi2
329 hri3=rri*snhi3+r*snhs3
330 hrs3=rrs*snhs3+r*snhi3
332 rr11=2*(rrri*(sni+nf1+nf1)+rrrs*(sns+nf4+nf4))
333 rr22=2*(rrri*(sni+nf2+nf2)+rrrs*(sns+nf5+nf5))
334 rr33=2*(rrri*(sni+nf3+nf3)+rrrs*(sns+nf6+nf6))
335 rr12= rrri*(sni+nf1+nf2)+rrrs*(sns+nf4+nf5)
336 rr13= rrri*(sni+nf1+nf3)+rrrs*(sns+nf4+nf6)
337 rr23= rrri*(sni+nf2+nf3)+rrrs*(sns+nf5+nf6)
341 xm(ielem, 1)=d*( hhi12 -d1*hri2-d2*hri1 +rr12)
342 xm(ielem, 2)=d*( hhi13 -d1*hri3-d3*hri1 +rr13)
343 xm(ielem, 3)=d*(-hh12-hh13+d1*(hri1-hrs1)-rr11)
344 xm(ielem, 4)=d*( hh12 +d1*hri2-d2*hrs1 -rr12)
345 xm(ielem, 5)=d*( hh13 +d1*hri3-d3*hrs1 -rr13)
346 xm(ielem, 6)=d*( hhi23 -d2*hri3-d3*hri2 +rr23)
347 xm(ielem, 7)=d*( hh12 +d2*hri1-d1*hrs2 -rr12)
348 xm(ielem, 8)=d*(-hh12-hh23+d2*(hri2-hrs2)-rr22)
349 xm(ielem, 9)=d*( hh23 +d2*hri3-d3*hrs2 -rr23)
350 xm(ielem,10)=d*( hh13 +d3*hri1-d1*hrs3 -rr13)
351 xm(ielem,11)=d*( hh23 +d3*hri2-d2*hrs3 -rr23)
352 xm(ielem,12)=d*(-hh13-hh23+d3*(hri3-hrs3)-rr33)
353 xm(ielem,13)=d*( hhs12 +d1*hrs2+d2*hrs1 +rr12)
354 xm(ielem,14)=d*( hhs13 +d1*hrs3+d3*hrs1 +rr13)
355 xm(ielem,15)=d*( hhs23 +d2*hrs3+d3*hrs2 +rr23)
363 d1=x(ielem,3)-x(ielem,2)
369 ri=-(z(i1)*d1+z(i2)*d2+z(i3)*d3)
370 rs=-(z(i4)*d1+z(i5)*d2+z(i6)*d3)
383 snhi=ng1*h1+ng2*h2+ng3*h3
384 snhs=ng4*h1+ng5*h2+ng6*h3
385 snhhi=(sni*sh1+snhi+snhi)*sh1+sni*shh
386 & +2*(ng1*h1*h1+ng2*h2*h2+ng3*h3*h3)
387 snhhs=(sns*sh1+snhs+snhs)*sh1+sns*shh
388 & +2*(ng4*h1*h1+ng5*h2*h2+ng6*h3*h3)
390 snhhi=snhh+snhhi+snhhi
391 snhhs=snhh+snhhs+snhhs
403 snhi1=(sni+ng1)*(sh1+h1)+snhi+ng1*h1
404 snhs1=(sns+ng4)*(sh1+h1)+snhs+ng4*h1
405 snhi2=(sni+ng2)*(sh1+h2)+snhi+ng2*h2
406 snhs2=(sns+ng5)*(sh1+h2)+snhs+ng5*h2
407 snhi3=(sni+ng3)*(sh1+h3)+snhi+ng3*h3
408 snhs3=(sns+ng6)*(sh1+h3)+snhs+ng6*h3
410 hri1=rri*snhi1+r*snhs1
411 hrs1=rrs*snhs1+r*snhi1
412 hri2=rri*snhi2+r*snhs2
413 hrs2=rrs*snhs2+r*snhi2
414 hri3=rri*snhi3+r*snhs3
415 hrs3=rrs*snhs3+r*snhi3
417 rr11=2*(rrri*(sni+ng1+ng1)+rrrs*(sns+ng4+ng4))
418 rr22=2*(rrri*(sni+ng2+ng2)+rrrs*(sns+ng5+ng5))
419 rr33=2*(rrri*(sni+ng3+ng3)+rrrs*(sns+ng6+ng6))
420 rr12= rrri*(sni+ng1+ng2)+rrrs*(sns+ng4+ng5)
421 rr13= rrri*(sni+ng1+ng3)+rrrs*(sns+ng4+ng6)
422 rr23= rrri*(sni+ng2+ng3)+rrrs*(sns+ng5+ng6)
426 xm(ielem, 1)=xm(ielem, 1)+d*( hhi12 -d1*hri2-d2*hri1 +rr12)
427 xm(ielem, 2)=xm(ielem, 2)+d*( hhi13 -d1*hri3-d3*hri1 +rr13)
428 xm(ielem, 3)=xm(ielem, 3)+d*(-hh12-hh13+d1*(hri1-hrs1)-rr11)
429 xm(ielem, 4)=xm(ielem, 4)+d*( hh12 +d1*hri2-d2*hrs1 -rr12)
430 xm(ielem, 5)=xm(ielem, 5)+d*( hh13 +d1*hri3-d3*hrs1 -rr13)
431 xm(ielem, 6)=xm(ielem, 6)+d*( hhi23 -d2*hri3-d3*hri2 +rr23)
432 xm(ielem, 7)=xm(ielem, 7)+d*( hh12 +d2*hri1-d1*hrs2 -rr12)
433 xm(ielem, 8)=xm(ielem, 8)+d*(-hh12-hh23+d2*(hri2-hrs2)-rr22)
434 xm(ielem, 9)=xm(ielem, 9)+d*( hh23 +d2*hri3-d3*hrs2 -rr23)
435 xm(ielem,10)=xm(ielem,10)+d*( hh13 +d3*hri1-d1*hrs3 -rr13)
436 xm(ielem,11)=xm(ielem,11)+d*( hh23 +d3*hri2-d2*hrs3 -rr23)
437 xm(ielem,12)=xm(ielem,12)+d*(-hh13-hh23+d3*(hri3-hrs3)-rr33)
438 xm(ielem,13)=xm(ielem,13)+d*( hhs12 +d1*hrs2+d2*hrs1 +rr12)
439 xm(ielem,14)=xm(ielem,14)+d*( hhs13 +d1*hrs3+d3*hrs1 +rr13)
440 xm(ielem,15)=xm(ielem,15)+d*( hhs23 +d2*hrs3+d3*hrs2 +rr23)
454 xm(ielem, 3)=xm(ielem, 3)-d*nh1
455 xm(ielem, 8)=xm(ielem, 8)-d*nh2
456 xm(ielem,12)=xm(ielem,12)-d*nh3
528 shh=h1*h1+h2*h2+h3*h3
530 d1=y(ielem,2)-y(ielem,3)
536 d=xs2880/surfac(ielem)
538 ri=-(z(i1)*d1+z(i2)*d2+z(i3)*d3)
539 rs=-(z(i4)*d1+z(i5)*d2+z(i6)*d3)
550 IF(h1.LT.chouia.OR.h2.LT.chouia.OR.h3.LT.chouia)
THEN 582 nh1=(h(i1)+h(ii4))/h1
583 nh2=(h(i2)+h(ii5))/h2
584 nh3=(h(i3)+h(ii6))/h3
589 snhi=nf1*h1+nf2*h2+nf3*h3
590 snhs=nf4*h1+nf5*h2+nf6*h3
591 snhhi=(sni*sh1+snhi+snhi)*sh1+sni*shh
592 & +2*(nf1*h1*h1+nf2*h2*h2+nf3*h3*h3)
593 snhhs=(sns*sh1+snhs+snhs)*sh1+sns*shh
594 & +2*(nf4*h1*h1+nf5*h2*h2+nf6*h3*h3)
596 snhhi=snhh+snhhi+snhhi
597 snhhs=snhh+snhhs+snhhs
609 snhi1=(sni+nf1)*(sh1+h1)+snhi+nf1*h1
610 snhs1=(sns+nf4)*(sh1+h1)+snhs+nf4*h1
611 snhi2=(sni+nf2)*(sh1+h2)+snhi+nf2*h2
612 snhs2=(sns+nf5)*(sh1+h2)+snhs+nf5*h2
613 snhi3=(sni+nf3)*(sh1+h3)+snhi+nf3*h3
614 snhs3=(sns+nf6)*(sh1+h3)+snhs+nf6*h3
616 hri1=rri*snhi1+r*snhs1
617 hrs1=rrs*snhs1+r*snhi1
618 hri2=rri*snhi2+r*snhs2
619 hrs2=rrs*snhs2+r*snhi2
620 hri3=rri*snhi3+r*snhs3
621 hrs3=rrs*snhs3+r*snhi3
623 rr11=2*(rrri*(sni+nf1+nf1)+rrrs*(sns+nf4+nf4))
624 rr22=2*(rrri*(sni+nf2+nf2)+rrrs*(sns+nf5+nf5))
625 rr33=2*(rrri*(sni+nf3+nf3)+rrrs*(sns+nf6+nf6))
626 rr12= rrri*(sni+nf1+nf2)+rrrs*(sns+nf4+nf5)
627 rr13= rrri*(sni+nf1+nf3)+rrrs*(sns+nf4+nf6)
628 rr23= rrri*(sni+nf2+nf3)+rrrs*(sns+nf5+nf6)
632 xm(ielem, 1)=d*( hhi12 -d1*hri2-d2*hri1 +rr12)
633 xm(ielem, 2)=d*( hhi13 -d1*hri3-d3*hri1 +rr13)
634 xm(ielem, 3)=d*(-hh12-hh13+d1*(hri1-hrs1)-rr11)
635 xm(ielem, 4)=d*( hh12 +d1*hri2-d2*hrs1 -rr12)
636 xm(ielem, 5)=d*( hh13 +d1*hri3-d3*hrs1 -rr13)
637 xm(ielem, 6)=d*( hhi23 -d2*hri3-d3*hri2 +rr23)
638 xm(ielem, 7)=d*( hh12 +d2*hri1-d1*hrs2 -rr12)
639 xm(ielem, 8)=d*(-hh12-hh23+d2*(hri2-hrs2)-rr22)
640 xm(ielem, 9)=d*( hh23 +d2*hri3-d3*hrs2 -rr23)
641 xm(ielem,10)=d*( hh13 +d3*hri1-d1*hrs3 -rr13)
642 xm(ielem,11)=d*( hh23 +d3*hri2-d2*hrs3 -rr23)
643 xm(ielem,12)=d*(-hh13-hh23+d3*(hri3-hrs3)-rr33)
644 xm(ielem,13)=d*( hhs12 +d1*hrs2+d2*hrs1 +rr12)
645 xm(ielem,14)=d*( hhs13 +d1*hrs3+d3*hrs1 +rr13)
646 xm(ielem,15)=d*( hhs23 +d2*hrs3+d3*hrs2 +rr23)
654 d1=x(ielem,3)-x(ielem,2)
660 ri=-(z(i1)*d1+z(i2)*d2+z(i3)*d3)
661 rs=-(z(i4)*d1+z(i5)*d2+z(i6)*d3)
674 snhi=ng1*h1+ng2*h2+ng3*h3
675 snhs=ng4*h1+ng5*h2+ng6*h3
676 snhhi=(sni*sh1+snhi+snhi)*sh1+sni*shh
677 & +2*(ng1*h1*h1+ng2*h2*h2+ng3*h3*h3)
678 snhhs=(sns*sh1+snhs+snhs)*sh1+sns*shh
679 & +2*(ng4*h1*h1+ng5*h2*h2+ng6*h3*h3)
681 snhhi=snhh+snhhi+snhhi
682 snhhs=snhh+snhhs+snhhs
694 snhi1=(sni+ng1)*(sh1+h1)+snhi+ng1*h1
695 snhs1=(sns+ng4)*(sh1+h1)+snhs+ng4*h1
696 snhi2=(sni+ng2)*(sh1+h2)+snhi+ng2*h2
697 snhs2=(sns+ng5)*(sh1+h2)+snhs+ng5*h2
698 snhi3=(sni+ng3)*(sh1+h3)+snhi+ng3*h3
699 snhs3=(sns+ng6)*(sh1+h3)+snhs+ng6*h3
701 hri1=rri*snhi1+r*snhs1
702 hrs1=rrs*snhs1+r*snhi1
703 hri2=rri*snhi2+r*snhs2
704 hrs2=rrs*snhs2+r*snhi2
705 hri3=rri*snhi3+r*snhs3
706 hrs3=rrs*snhs3+r*snhi3
708 rr11=2*(rrri*(sni+ng1+ng1)+rrrs*(sns+ng4+ng4))
709 rr22=2*(rrri*(sni+ng2+ng2)+rrrs*(sns+ng5+ng5))
710 rr33=2*(rrri*(sni+ng3+ng3)+rrrs*(sns+ng6+ng6))
711 rr12= rrri*(sni+ng1+ng2)+rrrs*(sns+ng4+ng5)
712 rr13= rrri*(sni+ng1+ng3)+rrrs*(sns+ng4+ng6)
713 rr23= rrri*(sni+ng2+ng3)+rrrs*(sns+ng5+ng6)
717 xm(ielem, 1)=xm(ielem, 1)+d*( hhi12 -d1*hri2-d2*hri1 +rr12)
718 xm(ielem, 2)=xm(ielem, 2)+d*( hhi13 -d1*hri3-d3*hri1 +rr13)
719 xm(ielem, 3)=xm(ielem, 3)+d*(-hh12-hh13+d1*(hri1-hrs1)-rr11)
720 xm(ielem, 4)=xm(ielem, 4)+d*( hh12 +d1*hri2-d2*hrs1 -rr12)
721 xm(ielem, 5)=xm(ielem, 5)+d*( hh13 +d1*hri3-d3*hrs1 -rr13)
722 xm(ielem, 6)=xm(ielem, 6)+d*( hhi23 -d2*hri3-d3*hri2 +rr23)
723 xm(ielem, 7)=xm(ielem, 7)+d*( hh12 +d2*hri1-d1*hrs2 -rr12)
724 xm(ielem, 8)=xm(ielem, 8)+d*(-hh12-hh23+d2*(hri2-hrs2)-rr22)
725 xm(ielem, 9)=xm(ielem, 9)+d*( hh23 +d2*hri3-d3*hrs2 -rr23)
726 xm(ielem,10)=xm(ielem,10)+d*( hh13 +d3*hri1-d1*hrs3 -rr13)
727 xm(ielem,11)=xm(ielem,11)+d*( hh23 +d3*hri2-d2*hrs3 -rr23)
728 xm(ielem,12)=xm(ielem,12)+d*(-hh13-hh23+d3*(hri3-hrs3)-rr33)
729 xm(ielem,13)=xm(ielem,13)+d*( hhs12 +d1*hrs2+d2*hrs1 +rr12)
730 xm(ielem,14)=xm(ielem,14)+d*( hhs13 +d1*hrs3+d3*hrs1 +rr13)
731 xm(ielem,15)=xm(ielem,15)+d*( hhs23 +d2*hrs3+d3*hrs2 +rr23)
745 xm(ielem, 3)=xm(ielem, 3)-d*nh1
746 xm(ielem, 8)=xm(ielem, 8)-d*nh2
747 xm(ielem,12)=xm(ielem,12)-d*nh3
761 IF(formul(14:16).EQ.
'MON')
THEN 763 IF(xmul.GT.0.d0)
THEN 765 xm(ielem, 1)=min(xm(ielem, 1),0.d0)
766 xm(ielem, 2)=min(xm(ielem, 2),0.d0)
767 xm(ielem, 3)=min(xm(ielem, 3),0.d0)
768 xm(ielem, 4)=min(xm(ielem, 4),0.d0)
769 xm(ielem, 5)=min(xm(ielem, 5),0.d0)
770 xm(ielem, 6)=min(xm(ielem, 6),0.d0)
771 xm(ielem, 7)=min(xm(ielem, 7),0.d0)
772 xm(ielem, 8)=min(xm(ielem, 8),0.d0)
773 xm(ielem, 9)=min(xm(ielem, 9),0.d0)
774 xm(ielem,10)=min(xm(ielem,10),0.d0)
775 xm(ielem,11)=min(xm(ielem,11),0.d0)
776 xm(ielem,12)=min(xm(ielem,12),0.d0)
777 xm(ielem,13)=min(xm(ielem,13),0.d0)
778 xm(ielem,14)=min(xm(ielem,14),0.d0)
779 xm(ielem,15)=min(xm(ielem,15),0.d0)
783 xm(ielem, 1)=max(xm(ielem, 1),0.d0)
784 xm(ielem, 2)=max(xm(ielem, 2),0.d0)
785 xm(ielem, 3)=max(xm(ielem, 3),0.d0)
786 xm(ielem, 4)=max(xm(ielem, 4),0.d0)
787 xm(ielem, 5)=max(xm(ielem, 5),0.d0)
788 xm(ielem, 6)=max(xm(ielem, 6),0.d0)
789 xm(ielem, 7)=max(xm(ielem, 7),0.d0)
790 xm(ielem, 8)=max(xm(ielem, 8),0.d0)
791 xm(ielem, 9)=max(xm(ielem, 9),0.d0)
792 xm(ielem,10)=max(xm(ielem,10),0.d0)
793 xm(ielem,11)=max(xm(ielem,11),0.d0)
794 xm(ielem,12)=max(xm(ielem,12),0.d0)
795 xm(ielem,13)=max(xm(ielem,13),0.d0)
796 xm(ielem,14)=max(xm(ielem,14),0.d0)
797 xm(ielem,15)=max(xm(ielem,15),0.d0)
811 t(ielem,1)= -xm(ielem,01)
816 t(ielem,2)= -xm(ielem,01)
821 t(ielem,3)= -xm(ielem,02)
826 t(ielem,4)= -xm(ielem,03)
831 t(ielem,5)= -xm(ielem,04)
836 t(ielem,6)= -xm(ielem,05)
subroutine mt02pp(T, XM, XMUL, SF, SG, SH, F, G, H, X, Y, Z, SURFAC, IKLE, NELEM, NELMAX, INCHYD, FORMUL, NPLAN)