30 SUBROUTINE i15tot1(NOINT ,NDEB ,NSC ,X ,KSURF ,
31 2 IGRSURF,BUFSF ,KSC ,KSI ,NOLD ,
32 3 XP1 ,XP2 ,XP3 ,XP4 ,GX ,
33 4 XTK ,YTK ,ZTK ,NTX ,NTY ,
34 5 NTZ ,PENET ,DEPTH ,XI ,YI ,
35 6 ZI ,NXI ,NYI ,NZI ,ANSMX ,
44#include "implicit_f.inc"
58 INTEGER KSURF ,KSI(4,*) ,
59 . NOINT ,NDEB, NSC, IACTIV(4,*), KSC(*), ITAB(*)
63 . NOLD(3,*) ,XTK(4,*) ,YTK(4,*) ,(4,*) ,
64 . ntx(4,*) ,nty(4,*) ,ntz(4,*) ,
65 . penet(4,*),depth(4,*),
66 . xi(4,*) ,yi(4,*) ,zi(4,*) ,
67 . nxi(4,*) ,nyi(4,*) ,nzi(4,*) ,
68 . xp1(3,mvsiz), xp2(3,mvsiz), xp3(3,mvsiz), xp4(3,mvsiz),
69 . gx(3,mvsiz), ansmx, hold(3,*)
70 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
74 INTEGER ADRBUF, I, IL, NLS, IDG,
78 . a, b, c, an, bn, cn, rot(9), dgr, expn,
81 . n1, n2, n3, n, n11, n12, n13, n21, n22, n23, nr1, nr2,
82 . xkn1, ykn1, zkn1, sgnxkn, sgnykn, sgnzkn, xkn, ykn, zkn, eh,
83 . lambda1, lambda2, alp, bet,
84 . xh , yh , zh , mu, xh1, yh1, zh1, mu1, xh2, yh2, zh2, mu2,
85 . dx1, dy1, dz1, dx2, dy2, dz2, dx3, dy3, dz3,
86 . side1, side2, oldnx, oldny, oldnz, out, ps, nr,
89 . x1(mvsiz), y1(mvsiz), z1(mvsiz),
90 . x2(mvsiz), y2(mvsiz), z2(mvsiz),
91 . x3(mvsiz), y3(mvsiz), z3(mvsiz),
92 . x12(mvsiz), y12(mvsiz), z12(mvsiz),
93 . x13(mvsiz), y13(mvsiz), z13(mvsiz),
94 . x23(mvsiz), y23(mvsiz), z23(mvsiz),
95 . xm(mvsiz) , ym(mvsiz) , zm(mvsiz) ,
96 . xtk2(mvsiz), ytk2(mvsiz) , ztk2(mvsiz) ,
99 adrbuf=igrsurf(ksurf)%IAD_BUFR
103 dgr =bufsf(adrbuf+36)
115 rot(i)=bufsf(adrbuf+7+i-1)
120 DO 75 nls=ndeb+1,
min(ndeb+mvsiz,nsc)
128 xg=x(1,in1)-bufsf(adrbuf+4)
129 yg=x(2,in1)-bufsf(adrbuf+5)
130 zg=x(3,in1)-bufsf(adrbuf+6)
131 xp1(1,i)=rot(1)*xg+rot(2)*yg+rot(3)*zg
132 xp1(2,i)=rot(4)*xg+rot(5)*yg+rot(6)*zg
133 xp1(3,i)=rot(7)*xg+rot(8)*yg+rot(9)*zg
134 xg=x(1,in2)-bufsf(adrbuf+4)
135 yg=x(2,in2)-bufsf(adrbuf+5)
136 zg=x(3,in2)-bufsf(adrbuf+6)
137 xp2(1,i)=rot(1)*xg+rot(2)*yg+rot(3)*zg
138 xp2(2,i)=rot(4)*xg+rot(5)*yg+rot(6)*zg
139 xp2(3,i)=rot(7)*xg+rot(8)*yg+rot(9)*zg
140 xg=x(1,in3)-bufsf(adrbuf+4)
141 yg=x(2,in3)-bufsf(adrbuf+5)
142 zg=x(3,in3)-bufsf(adrbuf+6)
143 xp3(1,i)=rot(1)*xg+rot(2)*yg+rot(3)*zg
144 xp3(2,i)=rot(4)*xg+rot(5)*yg+rot(6)*zg
145 xp3(3,i)=rot(7)*xg+rot(8)*yg+rot(9)*zg
146 xg=x(1,in4)-bufsf(adrbuf+4)
147 yg=x(2,in4)-bufsf(adrbuf+5)
148 zg=x(3,in4)-bufsf(adrbuf+6)
149 xp4(1,i)=rot(1)*xg+rot(2)*yg+rot(3)*zg
150 xp4(2,i)=rot(4)*xg+rot(5)*yg+rot(6)*zg
151 xp4(3,i)=rot(7)*xg+rot(8)*yg+rot(9)*zg
152 gx(1,i)=fourth*(xp1(1,i)+xp2(1,i)+xp3(1,i)+xp4(1,i))
153 gx(2,i)=fourth*(xp1(2,i)+xp2(2,i)+xp3(2,i)+xp4(2,i))
154 gx(3,i)=fourth*(xp1(3,i)+xp2(3,i)+xp3(3,i)+xp4(3,i))
159 DO 100 nls=ndeb+1,
min(ndeb+mvsiz,nsc)
178 n1=y12(i)*z13(i)-z12(i)*y13(i)
179 n2=z12(i)*x13(i)-x12(i)*z13(i)
180 n3=x12(i)*y13(i)-y12(i)*x13(i)
181 ntn=one/
max(em20,sqrt(n1*n1+n2*n2+n3*n3))
185 d(i) =-ntx(1,i)*x1(i)-nty(1,i)*y1(i)-ntz(1,i)*z1(i)
194 DO 125 nls=ndeb+1,
min(ndeb+mvsiz,nsc)
197 eh =(abs(ntx(1,i)/(dgr*an))**expn)*an
198 . +(abs(nty(1,i)/(dgr*bn))**expn)*bn
199 . +(abs(ntz(1,i)/(dgr*cn))**expn)*cn
202 lambda1=(
max(em20,eh))**(-one/expn)
203 xh1=abs(lambda1*ntx(1,i)/(dgr*an))**(one/(dgr-one))
204 IF (ntx(1,i)<zero) xh1=-xh1
205 yh1=abs(lambda1*nty(1,i)/(dgr*bn))**(one/(dgr-one))
206 IF (nty(1,i)<zero) yh1=-yh1
207 zh1=abs(lambda1*ntz(1,i)/(dgr*cn))**(one/(dgr-one))
208 IF (ntz(1,i)<zero) zh1=-zh1
209 mu1 =-ntx(1,i)*xh1-nty(1,i)*yh1-ntz(1,i)*zh1-d(i)
216 xtk(1,i) =xh1+mu1*ntx(1,i)
217 ytk(1,i) =yh1+mu1*nty(1,i)
218 ztk(1,i) =zh1+mu1*ntz(1,i)
219 xtk2(i) =xh2+mu2*ntx(1,i)
220 ytk2(i) =yh2+mu2*nty(1,i)
221 ztk2(i) =zh2+mu2*ntz(1,i)
226 DO 150 nls=ndeb+1,
min(ndeb+mvsiz,nsc)
236 out = (dy1*dz2-dy2*dz1)*ntx(1,i)
237 . +(dz1*dx2-dz2*dx1)*nty(1,i)
238 . +(dx1*dy2-dy1*dx2)*ntz(1,i)
241 ps =dx1*x12(i)+dy1*y12
242 nr =x12(i)*x12(i)+y12(i
247 xtk(1,i)=alp*x1(i)+bet*x2(i)
249 ztk(1,i)=alp*z1(i)+bet*z2(i)
254 out = (dy2*dz3-dy3*dz2)*ntx(1,i)
256 . +(dx2*dy3-dy2*dx3)*ntz(1,i)
259 ps =dx2*x23(i)+dy2*y23(i)+dz2*z23(i)
260 nr =x23(i)*x23(i)+y23(i)*y23(i)+z23(i)*z23(i)
265 xtk(1,i)=alp*x2(i)+bet*x3(i)
266 ytk(1,i)=alp*y2(i)+bet*y3(i)
267 ztk(1,i)=alp*z2(i)+bet*z3(i)
269 out = (dy3*dz1-dy1*dz3)*ntx(1,i)
270 . +(dz3*dx1-dz1*dx3)*nty(1,i)
271 . +(dx3*dy1-dy3*dx1)*ntz(1,i)
274 ps =-dx3*x13(i)-dy3*y13(i)-dz3*z13(i)
275 nr =x13(i)*x13(i)+y13(i)*y13(i)+z13(i)*z13(i)
280 xtk(1,i)=alp*x3(i)+bet*x1(i)
281 ytk(1,i)=alp*y3(i)+bet*y1(i)
282 ztk(1,i)=alp*z3(i)+bet*z1(i)
291 out = (dy1*dz2-dy2*dz1)*ntx(1,i)
292 . +(dz1*dx2-dz2*dx1)*nty(1,i)
293 . +(dx1*dy2-dy1*dx2)*ntz(1,i)
296 ps =dx1*x12(i)+dy1*y12(i)+dz1*z12(i)
297 nr =x12(i)*x12(i)+y12(i)*y12(i)+z12(i)*z12(i)
302 xtk2(i)=alp*x1(i)+bet*x2(i)
303 ytk2(i)=alp*y1(i)+bet*y2(i)
304 ztk2(i)=alp*z1(i)+bet*z2(i)
309 out = (dy2*dz3-dy3*dz2)*ntx(1,i)
310 . +(dz2*dx3-dz3*dx2)*nty(1,i)
311 . +(dx2*dy3-dy2*dx3)*ntz(1,i)
314 ps =dx2*x23(i)+dy2*y23(i)+dz2*z23(i)
315 nr =x23(i)*x23(i)+y23(i)*y23(i)+z23(i)*z23(i)
320 xtk2(i)=alp*x2(i)+bet*x3(i)
321 ytk2(i)=alp*y2(i)+bet*y3(i)
322 ztk2(i)=alp*z2(i)+bet*z3(i)
324 out = (dy3*dz1-dy1*dz3)*ntx(1,i)
325 . +(dz3*dx1-dz1*dx3)*nty(1,i)
326 . +(dx3*dy1-dy3*dx1)*ntz(1,i)
329 ps =-dx3*x13(i)-dy3*y13(i)-dz3*z13(i)
330 nr =x13(i)*x13(i)+y13(i)*y13(i)+z13(i)*z13(i)
335 xtk2(i)=alp*x3(i)+bet*x1(i)
336 ytk2(i)=alp*y3(i)+bet*y1(i)
337 ztk2(i)=alp*z3(i)+bet*z1(i)
344 DO 175 nls=ndeb+1,
min(ndeb+mvsiz,nsc)
347 IF (iactiv(1,il)==-1)
GOTO 175
354 IF (xkn1*xh>=zero) sgnxkn=one
357 IF (ykn1*yh>=zero) sgnykn=one
360 IF (zkn1*zh>=zero) sgnzkn=one
364 nr1 =n11*n11+n12*n12+n13*n13
366 em =n11*xtk(1,i)+n12*ytk(1,i)+n13*ztk(1,i)
368 lambda1=(em-exp((dgr-one)*log(
max(em,em20))/dgr))
369 . /
max(exp((dgr-one)*log(em20)/dgr),nr1)
380 IF (xkn1*xh>=zero) sgnxkn=one
383 IF (ykn1*yh>=zero) sgnykn=one
386 IF (zkn1*zh>=zero) sgnzkn=one
390 nr2 =n21*n21+n22*n22+n23*n23
392 em =n21*xtk2(i)+n22*ytk2(i)+n23*ztk2(i)
394 lambda2=(em-exp((dgr-one)*log(
max(em,em20))/dgr))
395 . /
max(exp((dgr-one)*log(em20)/dgr),nr2)
401 IF (inside1==0.AND.inside2==0)
THEN
405 IF (iactiv(1,il)==0)
THEN
406 IF (inside1/=0.AND.inside2/=0)
THEN
407 IF (abs(lambda1)>=abs(lambda2))
THEN
408 xm(i)=xtk(1,i)-lambda1*n11/
max(em20,nr1)
409 ym(i)=ytk(1,i)-lambda1*n12/
max(em20,nr1)
410 zm(i)=ztk(1,i)-lambda1*n13/
max(em20,nr1)
412 xm(i)=xtk2(i)-lambda2*n21/
max(em20,nr2)
413 ym(i)=ytk2(i)-lambda2*n22/
max(em20,nr2)
414 zm(i)=ztk2(i)-lambda2*n23/
max(em20,nr2)
419 ELSEIF(inside1/=0)
THEN
420 xm(i)=xtk(1,i)-lambda1*n11/
max(em20,nr1)
421 ym(i)=ytk(1,i)-lambda1*n12/
max(em20,nr1)
422 zm(i)=ztk(1,i)-lambda1*n13/
max(em20,nr1)
423 ELSEIF(inside2/=0)
THEN
424 xm(i)=xtk2(i)-lambda2*n21/
max(em20,nr2)
425 ym(i)=ytk2(i)-lambda2*n22/
max(em20,nr2)
426 zm(i)=ztk2(i)-lambda2*n23/
max(em20,nr2)
433 xh=hold(1,4*(il-1)+1)
434 yh=hold(2,4*(il-1)+1)
435 zh=hold(3,4*(il-1)+1)
436 n1=nold(1,4*(il-1)+1)
437 n2=nold(2,4*(il-1)+1)
438 n3=nold(3,4*(il-1)+1)
439 lambda1=(xh-xtk(1,i))*n1
442 lambda2=(xh-xtk2(i))*n1
445 IF (inside1/=0.AND.inside2/=0)
THEN
446 IF (abs(lambda1)>=abs(lambda2))
THEN
447 xm(i)=xtk(1,i)+lambda1*n1
448 ym(i)=ytk(1,i)+lambda1*n2
449 zm(i)=ztk(1,i)+lambda1*n3
451 xm(i)=xtk2(i)+lambda2*n1
452 ym(i)=ytk2(i)+lambda2*n2
453 zm(i)=ztk2(i)+lambda2*n3
458 ELSEIF(inside1/=0)
THEN
459 xm(i)=xtk(1,i)+lambda1*n1
460 ym(i)=ytk(1,i)+lambda1*n2
461 zm(i)=ztk(1,i)+lambda1*n3
462 ELSEIF(inside2/=0)
THEN
463 xm(i)=xtk2(i)+lambda2*n1
464 ym(i)=ytk2(i)+lambda2*n2
465 zm(i)=ztk2(i)+lambda2*n3
473 IF (xkn1*xm(i)>=zero) sgnxkn=one
476 IF (ykn1*ym(i)>=zero) sgnykn=one
479 IF (zkn1*zm(i)>=zero) sgnzkn=one
483 em=n1*xm(i)+n2*ym(i)+n3*zm(i)
484 xm(i)=xm(i)/
max(em20,em**(one/dgr))
485 ym(i)=ym(i)/
max(em20,em**(one/dgr))
486 zm(i)=zm(i)/
max(em20,em**(one/dgr))
489 IF (xkn1*xm(i)>=zero) sgnxkn=one
492 IF (ykn1*ym(i)>=zero) sgnykn=one
495 IF (zkn1*zm(i)>=zero) sgnzkn=one
499 nr =n1*n1+n2*n2+n3*n3
500 nr =one/
max(em20,sqrt(nr))
504 lambda1=(xm(i)-xtk(1,i))*n1
505 . +(ym(i)-ytk(1,i))*n2
506 . +(zm(i)-ztk(1,i))*n3
507 xm(i)=xtk(1,i)+lambda1*n1
508 ym(i)=ytk(1,i)+lambda1*n2
509 zm(i)=ztk(1,i)+lambda1*n3
511 iactiv(1,il)=iactiv(1,il)+1
515#include "vectorize.inc"
516 DO 200 nls=ndeb+1,
min(ndeb+mvsiz,nsc)
520 IF (iactiv(1,il)<=0)
GOTO 200
525 IF (xkn1*xm(i)>=zero) sgnxkn=one
528 IF (ykn1*ym(i)>=zero) sgnykn=one
531 IF (zkn1*zm(i)>=zero) sgnzkn=one
535 em=n1*xm(i)+n2*ym(i)+n3*zm(i)
537 xm(i)=xm(i)/
max(em20,em**(one/dgr))
538 ym(i)=ym(i)/
max(em20,em**(one/dgr))
539 zm(i)=zm(i)/
max(em20,em**(one/dgr))
543 IF (xkn1*xm(i)>=zero) sgnxkn=one
546 IF (ykn1*ym(i)>=zero) sgnykn=one
549 IF (zkn1*zm(i)>=zero) sgnzkn=one
553 nr =n1*n1+n2*n2+n3*n3
554 nr =one/
max(em20,sqrt(nr))
561 depth(1,i)=xm(i)*nxi(1,i)+ym(i)*nyi(1,i)+zm(i)*nzi(1,i)
563 penet(1,i)=(xtk(1,i)-xm(i))*nxi(1,i)
564 . +(ytk(1,i)-ym(i))*nyi(1,i)
565 . +(ztk(1,i)-zm(i))*nzi(1,i)
566 penet(1,i)=-penet(1,i)
567 penet(1,i)=
max(zero,penet(1,i))
568 IF (depth(1,i)-penet(1,i)<em10*depth(1,i))
THEN
572 ansmx=
max(ansmx,penet(1,i))
577 DO 210 nls=ndeb+1,
min(ndeb+mvsiz,nsc)
581 IF (iactiv(1,il)==-2)
THEN
587 WRITE(istdo,
'(A,I8)')
' WARNING INTERFACE ',noint
588 WRITE(istdo,
'(A,A,A,/,2I8,A,4I8,A)')
' 3NODES FACET',
589 .
' FROM 4NODES ELEMENT/SEGMENT,',
590 .
' DE-ACTIVATED FROM INTERFACE; FACET VERTICES:',
591 . in1,in2,
'ISOCENTER(',in1,in2,in3,in4,
')'
592 WRITE(iout ,
'(A,I8)')
' WARNING INTERFACE ',noint
593 WRITE(iout,
'(A,A,A,/,2I8,A,4I8,A)')
' 3NODES FACET',
594 .
' FROM 4NODES ELEMENT/SEGMENT,',
595 .
' DE-ACTIVATED FROM INTERFACE; FACET VERTICES:',
596 . in1,in2,
'ISOCENTER(',in1,in2,in3,in4,
')'
597#include "lockoff.inc"
604 DO 225 nls=ndeb+1,
min(ndeb+mvsiz,nsc)
623 n1=y12(i)*z13(i)-z12(i)*y13(i)
624 n2=z12(i)*x13(i)-x12(i)*z13(i)
625 n3=x12(i)*y13(i)-y12(i)*x13(i)
626 ntn=one/
max(em20,sqrt(n1*n1+n2*n2+n3*n3))
630 d(i) =-ntx(2,i)*x1(i)-nty(2,i)*y1(i)-ntz(2,i)*z1(i)
639 DO 250 nls=ndeb+1,
min(ndeb+mvsiz,nsc)
643 eh =(abs(ntx(2,i)/(dgr*an))**expn)*an
644 . +(abs(nty(2,i)/(dgr*bn))**expn)*bn
645 . +(abs(ntz(2,i)/(dgr*cn))**expn)*cn
648 lambda1=(
max(em20,eh))**(-one/expn)
649 xh1 =abs(lambda1*ntx(2,i)/(dgr*an))**(one/(dgr-one))
650 IF (ntx(2,i)<zero) xh1=-xh1
651 yh1 =abs(lambda1*nty(2,i)/(dgr*bn))**(one/(dgr-one))
652 IF (nty(2,i)<zero) yh1=-yh1
653 zh1 =abs(lambda1*ntz(2,i)/(dgr*cn))**(one/(dgr-one))
654 IF (ntz(2,i)<zero) zh1=-zh1
655 mu1 =-ntx(2,i)*xh1-nty(2,i)*yh1-ntz(2,i)*zh1-d(i)
662 xtk(2,i) =xh1+mu1*ntx(2,i)
663 ytk(2,i) =yh1+mu1*nty(2,i)
664 ztk(2,i) =zh1+mu1*ntz(2,i)
665 xtk2(i) =xh2+mu2*ntx(2,i)
666 ytk2(i) =yh2+mu2*nty(2,i)
667 ztk2(i) =zh2+mu2*ntz(2,i)
673 DO 275 nls=ndeb+1,
min(ndeb+mvsiz,nsc)
683 out = (dy1*dz2-dy2*dz1)*ntx(2,i)
684 . +(dz1*dx2-dz2*dx1)*nty(2,i)
685 . +(dx1*dy2-dy1*dx2)*ntz(2,i)
688 ps =dx1*x12(i)+dy1*y12(i)+dz1*z12(i)
689 nr =x12(i)*x12(i)+y12(i)*y12(i)+z12(i)*z12(i)
694 xtk(2,i)=alp*x1(i)+bet*x2(i)
695 ytk(2,i)=alp*y1(i)+bet*y2(i)
696 ztk(2,i)=alp*z1(i)+bet*z2(i)
701 out = (dy2*dz3-dy3*dz2)*ntx(2,i)
702 . +(dz2*dx3-dz3*dx2)*nty(2,i)
703 . +(dx2*dy3-dy2*dx3)*ntz(2,i)
706 ps =dx2*x23(i)+dy2*y23(i)+dz2*z23(i)
707 nr =x23(i)*x23(i)+y23(i)*y23(i)+z23(i)*z23(i)
712 xtk(2,i)=alp*x2(i)+bet*x3(i)
713 ytk(2,i)=alp*y2(i)+bet*y3(i)
714 ztk(2,i)=alp*z2(i)+bet*z3(i)
716 out = (dy3*dz1-dy1*dz3)*ntx(2,i)
717 . +(dz3*dx1-dz1*dx3)*nty(2,i)
718 . +(dx3*dy1-dy3*dx1)*ntz(2,i)
721 ps =-dx3*x13(i)-dy3*y13(i)-dz3*z13(i)
722 nr =x13(i)*x13(i)+y13(i)*y13(i)+z13(i)*z13(i)
727 xtk(2,i)=alp*x3(i)+bet*x1(i)
728 ytk(2,i)=alp*y3(i)+bet*y1(i)
729 ztk(2,i)=alp*z3(i)+bet*z1(i)
738 out = (dy1*dz2-dy2*dz1)*ntx(2,i)
739 . +(dz1*dx2-dz2*dx1)*nty(2,i)
740 . +(dx1*dy2-dy1*dx2)*ntz(2,i)
743 ps =dx1*x12(i)+dy1*y12(i)+dz1*z12(i)
744 nr =x12(i)*x12(i)+y12(i)*y12(i)+z12(i)*z12(i)
749 xtk2(i)=alp*x1(i)+bet*x2(i)
750 ytk2(i)=alp*y1(i)+bet*y2(i)
751 ztk2(i)=alp*z1(i)+bet*z2(i)
756 out = (dy2*dz3-dy3*dz2)*ntx(2,i)
757 . +(dz2*dx3-dz3*dx2)*nty(2,i)
758 . +(dx2*dy3-dy2*dx3)*ntz(2,i)
761 ps =dx2*x23(i)+dy2*y23(i)+dz2*z23(i)
762 nr =x23(i)*x23(i)+y23(i)*y23(i)+z23(i)*z23(i)
767 xtk2(i)=alp*x2(i)+bet*x3(i)
768 ytk2(i)=alp*y2(i)+bet*y3(i)
769 ztk2(i)=alp*z2(i)+bet*z3(i)
771 out = (dy3*dz1-dy1*dz3)*ntx(2,i)
772 . +(dz3*dx1-dz1*dx3)*nty(2,i)
773 . +(dx3*dy1-dy3*dx1)*ntz(2,i)
776 ps =-dx3*x13(i)-dy3*y13(i)-dz3*z13(i)
777 nr =x13(i)*x13(i)+y13(i)*y13(i)+z13(i)*z13(i)
782 xtk2(i)=alp*x3(i)+bet*x1(i)
783 ytk2(i)=alp*y3(i)+bet*y1(i)
784 ztk2(i)=alp*z3(i)+bet*z1(i)
791 DO 300 nls=ndeb+1,
min(ndeb+mvsiz,nsc)
794 IF (iactiv(2,il)==-1)
GOTO 300
801 IF (xkn1*xh>=zero) sgnxkn=one
804 IF (ykn1*yh>=0.) sgnykn=1.
807 IF (zkn1*zh>=zero) sgnzkn=one
811 nr1 =n11*n11+n12*n12+n13*n13
813 em =n11*xtk(2,i)+n12*ytk(2,i)+n13*ztk(2,i)
815 lambda1=(em-exp((dgr-one)*log(
max(em,em20))/dgr))
816 . /
max(exp((dgr-one)*log(em20)/dgr),nr1)
827 IF (xkn1*xh>=zero) sgnxkn=one
830 IF (ykn1*yh>=zero) sgnykn=one
833 IF (zkn1*zh>=zero) sgnzkn=one
837 nr2 =n21*n21+n22*n22+n23*n23
839 em =n21*xtk2(i)+n22*ytk2(i)+n23*ztk2(i)
841 lambda2=(em-exp((dgr-one)*log(
max(em,em20))/dgr))
842 . /
max(exp((dgr-one)*log(em20)/dgr),nr2)
848 IF (inside1==0.AND.inside2==0)
THEN
852 IF (iactiv(2,il)==0)
THEN
853 IF (inside1/=0.AND.inside2/=0)
THEN
854 IF (abs(lambda1)>=abs(lambda2))
THEN
855 xm(i)=xtk(2,i)-lambda1*n11/
max(em20
856 ym(i)=ytk(2,i)-lambda1*n12/
max(em20,nr1)
857 zm(i)=ztk(2,i)-lambda1*n13/
max(em20,nr1)
859 xm(i)=xtk2(i)-lambda2*n21/
max(em20,nr2)
860 ym(i)=ytk2(i)-lambda2*n22/
max(em20,nr2)
861 zm(i)=ztk2(i)-lambda2*n23/
max(em20,nr2)
866 ELSEIF(inside1/=0)
THEN
867 xm(i)=xtk(2,i)-lambda1*n11/
max(em20,nr1)
868 ym(i)=ytk(2,i)-lambda1*n12/
max(em20,nr1)
869 zm(i)=ztk(2,i)-lambda1*n13/
max(em20,nr1)
870 ELSEIF(inside2/=0)
THEN
871 xm(i)=xtk2(i)-lambda2*n21/
max(em20,nr2)
872 ym(i)=ytk2(i)-lambda2*n22/
max(em20,nr2)
873 zm(i)=ztk2(i)-lambda2*n23/
max(em20,nr2)
880 xh=hold(1,4*(il-1)+2)
881 yh=hold(2,4*(il-1)+2)
882 zh=hold(3,4*(il-1)+2)
883 n1=nold(1,4*(il-1)+2)
884 n2=nold(2,4*(il-1)+2)
885 n3=nold(3,4*(il-1)+2)
886 lambda1=(xh-xtk(2,i))*n1
889 lambda2=(xh-xtk2(i))*n1
892 IF (inside1/=0.AND.inside2/=0)
THEN
893 IF (abs(lambda1)>=abs(lambda2))
THEN
894 xm(i)=xtk(2,i)+lambda1*n1
895 ym(i)=ytk(2,i)+lambda1*n2
896 zm(i)=ztk(2,i)+lambda1*n3
898 xm(i)=xtk2(i)+lambda2*n1
899 ym(i)=ytk2(i)+lambda2*n2
900 zm(i)=ztk2(i)+lambda2*n3
905 ELSEIF(inside1/=0)
THEN
906 xm(i)=xtk(2,i)+lambda1*n1
907 ym(i)=ytk(2,i)+lambda1*n2
908 zm(i)=ztk(2,i)+lambda1*n3
909 ELSEIF(inside2/=0)
THEN
910 xm(i)=xtk2(i)+lambda2*n1
911 ym(i)=ytk2(i)+lambda2*n2
912 zm(i)=ztk2(i)+lambda2*n3
920 IF (xkn1*xm(i)>=zero) sgnxkn=one
922 IF (ykn1*ym(i)>=zero) sgnykn=one
925 IF (zkn1*zm(i)>=zero) sgnzkn=one
929 em=n1*xm(i)+n2*ym(i)+n3*zm(i)
930 xm(i)=xm(i)/
max(em20,em**(one/dgr))
931 ym(i)=ym(i)/
max(em20,em**(one/dgr))
932 zm(i)=zm(i)/
max(em20,em**(one/dgr))
935 IF (xkn1*xm(i)>=zero) sgnxkn=one
938 IF (ykn1*ym(i)>=zero) sgnykn=one
941 IF (zkn1*zm(i)>=zero) sgnzkn=one
945 nr =n1*n1+n2*n2+n3*n3
946 nr =one/
max(em20,sqrt(nr))
950 lambda1=(xm(i)-xtk(2,i))*n1
951 . +(ym(i)-ytk(2,i))*n2
952 . +(zm(i)-ztk(2,i))*n3
953 xm(i)=xtk(2,i)+lambda1*n1
954 ym(i)=ytk(2,i)+lambda1*n2
955 zm(i)=ztk(2,i)+lambda1*n3
957 iactiv(2,il)=iactiv(2,il)+1
961#include "vectorize.inc"
962 DO 325 nls=ndeb+1,
min(ndeb+mvsiz,nsc)
966 IF (iactiv(2,il)<=0)
GOTO 325
971 IF (xkn1*xm(i)>=zero) sgnxkn=one
974 IF (ykn1*ym(i)>=zero) sgnykn=one
977 IF (zkn1*zm(i)>=zero) sgnzkn=one
981 em=n1*xm(i)+n2*ym(i)+n3*zm(i)
983 xm(i)=xm(i)/
max(em20,em**(one/dgr))
984 ym(i)=ym(i)/
max(em20,em**(one/dgr))
985 zm(i)=zm(i)/
max(em20,em**(one/dgr))
990 IF (xkn1*xm(i)>=zero) sgnxkn=one
993 IF (ykn1*ym(i)>=zero) sgnykn=one
996 IF (zkn1*zm(i)>=zero) sgnzkn=one
1000 nr =n1*n1+n2*n2+n3*n3
1001 nr =one/
max(em20,sqrt(nr))
1008 depth(2,i)=xm(i)*nxi(2,i)+ym(i)*nyi(2,i)+zm(i)*nzi(2,i)
1010 penet(2,i)=(xtk(2,i)-xm(i))*nxi(2,i)
1011 . +(ytk(2,i)-ym(i))*nyi(2,i)
1012 . +(ztk(2,i)-zm(i))*nzi(2,i)
1013 penet(2,i)=-penet(2,i)
1014 penet(2,i)=
max(zero,penet(2,i))
1015 IF (depth(2,i)-penet(2,i)<em10*depth(2,i))
THEN
1019 ansmx=
max(ansmx,penet(2,i))
1024 DO 335 nls=ndeb+1,
min(ndeb+mvsiz,nsc)
1028 IF (iactiv(2,il)==-2)
THEN
1033#include "lockon.inc"
1034 WRITE(istdo,
'(A,I8)')
' WARNING INTERFACE ',noint
1035 WRITE(istdo,
'(A,A,A,/,2I8,A,4I8,A)')
' 3NODES FACET',
1036 .
' FROM 4NODES ELEMENT/SEGMENT,',
1037 .
' DE-ACTIVATED FROM INTERFACE; FACET VERTICES:',
1038 . in2,in3,
'ISOCENTER(',in1,in2,in3,in4,
')'
1039 WRITE(iout ,
'(A,I8)')
' WARNING INTERFACE ',noint
1040 WRITE(iout,
'(A,A,A,/,2I8,A,4I8,A)')
' 3NODES FACET',
1041 .
' FROM 4NODES ELEMENT/SEGMENT,',
1042 .
' DE-ACTIVATED FROM INTERFACE; FACET VERTICES:'
1043 . in2,in3,
'ISOCENTER(',in1,in2,in3,in4,
')'
1044#include "lockoff.inc"
1070 n1=y12(i)*z13(i)-z12(i)*y13(i)
1071 n2=z12(i)*x13(i)-x12(i)*z13(i)
1072 n3=x12(i)*y13(i)-y12(i)*x13(i)
1073 ntn=one/
max(em20,sqrt(n1*n1+n2*n2+n3*n3))
1077 d(i) =-ntx(3,i)*x1(i)-nty(3,i)*y1(i)-ntz(3,i)*z1(i)
1086 DO 375 nls=ndeb+1,
min(ndeb+mvsiz,nsc)
1090 eh =(abs(ntx(3,i)/(dgr*an))**expn)*an
1091 . +(abs(nty(3,i)/(dgr*bn))**expn)*bn
1092 . +(abs(ntz(3,i)/(dgr*cn))**expn)*cn
1095 lambda1=(
max(em20,eh))**(-one/expn)
1096 xh1 =abs(lambda1*ntx(3,i)/(dgr*an))**(one/(dgr-one))
1097 IF (ntx(3,i)<zero) xh1=-xh1
1098 yh1 =abs(lambda1*nty(3,i)/(dgr*bn))**(one/(dgr-one))
1099 IF (nty(3,i)<zero) yh1=-yh1
1100 zh1 =abs(lambda1*ntz(3,i)/(dgr*cn))**(one/(dgr-one))
1101 IF (ntz(3,i)<zero) zh1=-zh1
1102 mu1 =-ntx(3,i)*xh1-nty(3,i)*yh1-ntz(3,i)*zh1-d(i)
1109 xtk(3,i) =xh1+mu1*ntx(3,i)
1110 ytk(3,i) =yh1+mu1*nty(3,i)
1111 ztk(3,i) =zh1+mu1*ntz(3,i)
1112 xtk2(i)=xh2+mu2*ntx(3,i)
1113 ytk2(i)=yh2+mu2*nty(3,i)
1114 ztk2(i)=zh2+mu2*ntz(3,i)
1120 DO 400 nls=ndeb+1,
min(ndeb+mvsiz,nsc)
1130 out = (dy1*dz2-dy2*dz1)*ntx(3,i)
1131 . +(dz1*dx2-dz2*dx1)*nty(3,i)
1132 . +(dx1*dy2-dy1*dx2)*ntz(3,i)
1135 ps =dx1*x12(i)+dy1*y12(i)+dz1*z12(i)
1136 nr =x12(i)*x12(i)+y12(i)*y12(i)+z12(i)*z12(i)
1141 xtk(3,i)=alp*x1(i)+bet
1142 ytk(3,i)=alp*y1(i)+bet*y2(i)
1143 ztk(3,i)=alp*z1(i)+bet*z2(i)
1148 out = (dy2*dz3-dy3*dz2)*ntx(3,i)
1149 . +(dz2*dx3-dz3*dx2)*nty(3,i)
1150 . +(dx2*dy3-dy2*dx3)*ntz(3,i)
1153 ps =dx2*x23(i)+dy2*y23(i)+dz2*z23(i)
1154 nr =x23(i)*x23(i)+y23(i)*y23(i)+z23(i)*z23(i)
1159 xtk(3,i)=alp*x2(i)+bet*x3(i)
1160 ytk(3,i)=alp*y2(i)+bet*y3(i)
1161 ztk(3,i)=alp*z2(i)+bet*z3(i)
1163 out = (dy3*dz1-dy1*dz3)*ntx(3,i)
1164 . +(dz3*dx1-dz1*dx3)*nty(3,i)
1165 . +(dx3*dy1-dy3*dx1)*ntz(3,i)
1168 ps =-dx3*x13(i)-dy3*y13(i)-dz3*z13(i)
1169 nr =x13(i)*x13(i)+y13(i)*y13(i)+z13(i)*z13
1174 xtk(3,i)=alp*x3(i)+bet*x1(i)
1175 ytk(3,i)=alp*y3(i)+bet*y1(i)
1176 ztk(3,i)=alp*z3(i)+bet*z1(i)
1185 out = (dy1*dz2-dy2*dz1)*ntx(3,i)
1186 . +(dz1*dx2-dz2*dx1)*nty(3,i)
1187 . +(dx1*dy2-dy1*dx2)*ntz(3,i)
1190 ps =dx1*x12(i)+dy1*y12(i)+dz1*z12(i)
1191 nr =x12(i)*x12(i)+y12(i)*y12(i)+z12(i)*z12(i)
1196 xtk2(i)=alp*x1(i)+bet*x2(i)
1197 ytk2(i)=alp*y1(i)+bet*y2(i)
1198 ztk2(i)=alp*z1(i)+bet*z2(i)
1203 out = (dy2*dz3-dy3*dz2)*ntx(3,i)
1204 . +(dz2*dx3-dz3*dx2)*nty(3,i)
1205 . +(dx2*dy3-dy2*dx3)*ntz(3,i)
1208 ps =dx2*x23(i)+dy2*y23(i)+dz2*z23(i)
1209 nr =x23(i)*x23(i)+y23(i)*y23(i)+z23(i)*z23(i)
1214 xtk2(i)=alp*x2(i)+bet*x3(i)
1215 ytk2(i)=alp*y2(i)+bet*y3(i)
1216 ztk2(i)=alp*z2(i)+bet*z3(i)
1218 out = (dy3*dz1-dy1*dz3)*ntx(3,i)
1219 . +(dz3*dx1-dz1*dx3)*nty(3,i)
1220 . +(dx3*dy1-dy3*dx1)*ntz(3,i)
1223 ps =-dx3*x13(i)-dy3*y13(i)-dz3*z13(i)
1224 nr =x13(i)*x13(i)+y13(i)*y13(i)+z13(i)*z13(i)
1229 xtk2(i)=alp*x3(i)+bet*x1(i)
1231 ztk2(i)=alp*z3(i)+bet*z1
1238 DO 425 nls=ndeb+1,
min(ndeb+mvsiz,nsc)
1241 IF (iactiv(3,il)==-1)
GOTO 425
1248 IF (xkn1*xh>=zero) sgnxkn=one
1254 IF (zkn1*zh>=zero) sgnzkn=one
1258 nr1 =n11*n11+n12*n12+n13*n13
1260 em =n11*xtk(3,i)+n12*ytk(3,i)+n13*ztk(3,i)
1262 lambda1=(em-exp((dgr-one)*log(
max(em,em20))/dgr))
1263 . /
max(exp((dgr-one)*log(em20)/dgr),nr1)
1274 IF (xkn1*xh>=zero) sgnxkn=one
1277 IF (ykn1*yh>=zero) sgnykn=one
1280 IF (zkn1*zh>=zero) sgnzkn=one
1284 nr2 =n21*n21+n22*n22+n23*n23
1286 em =n21*xtk2(i)+n22*ytk2(i)+n23*ztk2(i)
1288 lambda2=(em-exp((dgr-one)*log(
max(em,em20))/dgr))
1289 . /
max(exp((dgr-one)*log(em20)/dgr),nr2)
1295 IF (inside1==0.AND.inside2==0)
THEN
1299 IF (iactiv(3,il)==0)
THEN
1300 IF (inside1/=0.AND.inside2/=0)
THEN
1301 IF (abs(lambda1)>=abs(lambda2))
THEN
1302 xm(i)=xtk(3,i)-lambda1*n11/
max(em20,nr1)
1303 ym(i)=ytk(3,i)-lambda1*n12/
max(em20,nr1)
1304 zm(i)=ztk(3,i)-lambda1*n13/
max(em20,nr1)
1306 xm(i)=xtk2(i)-lambda2*n21/
max(em20,nr2)
1307 ym(i)=ytk2(i)-lambda2*n22/
max(em20,nr2)
1308 zm(i)=ztk2(i)-lambda2*n23/
max(em20,nr2)
1313 ELSEIF(inside1/=0)
THEN
1314 xm(i)=xtk(3,i)-lambda1*n11/
max(em20,nr1)
1315 ym(i)=ytk(3,i)-lambda1*n12/
max(em20,nr1)
1316 zm(i)=ztk(3,i)-lambda1*n13/
max(em20,nr1)
1317 ELSEIF(inside2/=0)
THEN
1318 xm(i)=xtk2(i)-lambda2*n21/
max(em20,nr2)
1319 ym(i)=ytk2(i)-lambda2*n22/
max(em20,nr2)
1320 zm(i)=ztk2(i)-lambda2*n23/
max(em20,nr2)
1327 xh=hold(1,4*(il-1)+3)
1328 yh=hold(2,4*(il-1)+3)
1329 zh=hold(3,4*(il-1)+3)
1330 n1=nold(1,4*(il-1)+3)
1331 n2=nold(2,4*(il-1)+3)
1332 n3=nold(3,4*(il-1)+3)
1333 lambda1=(xh-xtk(3,i))*n1
1336 lambda2=(xh-xtk2(i))*n1
1339 IF (inside1/=0.AND.inside2/=0)
THEN
1340 IF (abs(lambda1)>=abs(lambda2))
THEN
1341 xm(i)=xtk(3,i)+lambda1*n1
1342 ym(i)=ytk(3,i)+lambda1*n2
1343 zm(i)=ztk(3,i)+lambda1*n3
1345 xm(i)=xtk2(i)+lambda2*n1
1346 ym(i)=ytk2(i)+lambda2*n2
1347 zm(i)=ztk2(i)+lambda2*n3
1352 ELSEIF(inside1/=0)
THEN
1353 xm(i)=xtk(3,i)+lambda1*n1
1354 ym(i)=ytk(3,i)+lambda1*n2
1355 zm(i)=ztk(3,i)+lambda1*n3
1356 ELSEIF(inside2/=0)
THEN
1357 xm(i)=xtk2(i)+lambda2*n1
1358 ym(i)=ytk2(i)+lambda2*n2
1359 zm(i)=ztk2(i)+lambda2*n3
1365 xkn1 =xm(i)**(idg-1)
1367 IF (xkn1*xm(i)>=zero) sgnxkn=one
1368 ykn1 =ym(i)**(idg-1)
1370 IF (ykn1*ym(i)>=zero) sgnykn=one
1371 zkn1 =zm(i)**(idg-1)
1373 IF (zkn1*zm(i)>=zero) sgnzkn=one
1377 em=n1*xm(i)+n2*ym(i)+n3*zm(i)
1378 xm(i)=xm(i)/
max(em20,em**(one/dgr))
1379 ym(i)=ym(i)/
max(em20,em**(one/dgr))
1380 zm(i)=zm(i)/
max(em20,em**(one/dgr))
1381 xkn1 =xm(i)**(idg-1)
1383 IF (xkn1*xm(i)>=zero) sgnxkn=one
1384 ykn1 =ym(i)**(idg-1)
1386 IF (ykn1*ym(i)>=zero) sgnykn=one
1387 zkn1 =zm(i)**(idg-1)
1389 IF (zkn1*zm(i)>=zero) sgnzkn=one
1393 nr =n1*n1+n2*n2+n3*n3
1394 nr =one/
max(em20,sqrt(nr))
1398 lambda1=(xm(i)-xtk(3,i))*n1
1399 . +(ym(i)-ytk(3,i))*n2
1400 . +(zm(i)-ztk(3,i))*n3
1401 xm(i)=xtk(3,i)+lambda1*n1
1402 ym(i)=ytk(3,i)+lambda1*n2
1403 zm(i)=ztk(3,i)+lambda1*n3
1405 iactiv(3,il)=iactiv(3,il)+1
1409#include "vectorize.inc"
1410 DO 450 nls=ndeb+1,
min(ndeb+mvsiz,nsc)
1414 IF (iactiv(3,il)<=0)
GOTO 450
1417 xkn1 =xm(i)**(idg-1)
1419 IF (xkn1*xm(i)>=zero) sgnxkn=one
1420 ykn1 =ym(i)**(idg-1)
1422 IF (ykn1*ym(i)>=zero) sgnykn=one
1423 zkn1 =zm(i)**(idg-1)
1425 IF (zkn1*zm(i)>=zero) sgnzkn=one
1429 em=n1*xm(i)+n2*ym(i)+n3*zm(i)
1431 xm(i)=xm(i)/
max(em20,em**(one/dgr))
1432 ym(i)=ym(i)/
max(em20,em**(one/dgr))
1433 zm(i)=zm(i)/
max(em20,em**(one/dgr))
1436 xkn1 =xm(i)**(idg-1)
1438 IF (xkn1*xm(i)>=zero) sgnxkn=one
1439 ykn1 =ym(i)**(idg-1)
1441 IF (ykn1*ym(i)>=zero) sgnykn=one
1442 zkn1 =zm(i)**(idg-1)
1444 IF (zkn1*zm(i)>=zero) sgnzkn=one
1448 nr =n1*n1+n2*n2+n3*n3
1449 nr =one/
max(em20,sqrt(nr))
1456 depth(3,i)=xm(i)*nxi(3,i)+ym(i)*nyi(3,i)+zm(i)*nzi(3,i)
1458 penet(3,i)=(xtk(3,i)-xm(i))*nxi(3,i)
1459 . +(ytk(3,i)-ym(i))*nyi(3,i)
1460 . +(ztk(3,i)-zm(i))*nzi(3,i)
1461 penet(3,i)=-penet(3,i)
1462 penet(3,i)=
max(zero,penet(3,i))
1463 IF (depth(3,i)-penet(3,i)<em10*depth(3,i))
THEN
1467 ansmx=
max(ansmx,penet(3,i))
1472 DO 460 nls=ndeb+1,
min(ndeb+mvsiz,nsc)
1476 IF (iactiv(3,il)==-2)
THEN
1481#include "lockon.inc"
1482 WRITE(istdo,
'(A,I8)')
' WARNING INTERFACE ',noint
1483 WRITE(istdo,
'(A,A,A,/,2I8,A,4I8,A)')
' 3NODES FACET',
1484 .
' FROM 4NODES ELEMENT/SEGMENT,',
1485 .
' DE-ACTIVATED FROM INTERFACE; FACET VERTICES:',
1486 . in3,in4,
'ISOCENTER(',in1,in2,in3,in4,
')'
1487 WRITE(iout ,
'(A,I8)')
' WARNING INTERFACE ',noint
1488 WRITE(iout,
'(A,A,A,/,2I8,A,4I8,A)')
' 3NODES FACET',
1489 .
' FROM 4NODES ELEMENT/SEGMENT,',
1490 .
' DE-ACTIVATED FROM INTERFACE; FACET VERTICES:',
1491 . in3,in4,
'ISOCENTER(',in1,in2,in3,in4,
')'
1492#include "lockoff.inc"
1499 DO 475 nls=ndeb+1,
min(ndeb+mvsiz,nsc)
1518 n1=y12(i)*z13(i)-z12(i)*y13(i)
1519 n2=z12(i)*x13(i)-x12(i)*z13(i)
1520 n3=x12(i)*y13(i)-y12(i)*x13(i)
1521 ntn=one/
max(em20,sqrt(n1*n1+n2*n2+n3*n3))
1525 d(i) =-ntx(4,i)*x1(i)-nty(4,i)*y1(i)-ntz(4,i)*z1(i)
1534 DO 500 nls=ndeb+1,
min(ndeb+mvsiz,nsc)
1538 eh =(abs(ntx(4,i)/(dgr*an))**expn)*an
1539 . +(abs(nty(4,i)/(dgr*bn))**expn)*bn
1540 . +(abs(ntz(4,i)/(dgr*cn))**expn)*cn
1543 lambda1=(
max(em20,eh))**(-one/expn)
1544 xh1 =abs(lambda1*ntx(4,i)/(dgr*an))**(one/(dgr-one))
1545 IF (ntx(4,i)<zero) xh1=-xh1
1546 yh1 =abs(lambda1*nty(4,i)/(dgr*bn))**(one/(dgr-one))
1547 IF (nty(4,i)<zero) yh1=-yh1
1548 zh1 =abs(lambda1*ntz(4,i)/(dgr*cn))**(one/(dgr-one))
1549 IF (ntz(4,i)<zero) zh1=-zh1
1550 mu1 =-ntx(4,i)*xh1-nty(4,i)*yh1-ntz(4,i)*zh1-d(i)
1557 xtk(4,i) =xh1+mu1*ntx(4,i)
1558 ytk(4,i) =yh1+mu1*nty(4,i)
1559 ztk(4,i) =zh1+mu1*ntz(4,i)
1560 xtk2(i)=xh2+mu2*ntx(4,i)
1561 ytk2(i)=yh2+mu2*nty(4,i)
1562 ztk2(i)=zh2+mu2*ntz(4,i)
1568 DO 525 nls=ndeb+1,
min(ndeb+mvsiz,nsc)
1578 out = (dy1*dz2-dy2*dz1)*ntx(4,i)
1579 . +(dz1*dx2-dz2*dx1)*nty(4,i)
1580 . +(dx1*dy2-dy1*dx2)*ntz(4,i)
1583 ps =dx1*x12(i)+dy1*y12(i)+dz1*z12(i)
1584 nr =x12(i)*x12(i)+y12(i)*y12(i)+z12(i)*z12(i)
1589 xtk(4,i)=alp*x1(i)+bet*x2(i)
1590 ytk(4,i)=alp*y1(i)+bet*y2(i)
1591 ztk(4,i)=alp*z1(i)+bet*z2(i)
1596 out = (dy2*dz3-dy3*dz2)*ntx(4,i)
1597 . +(dz2*dx3-dz3*dx2)*nty(4,i)
1598 . +(dx2*dy3-dy2*dx3)*ntz(4,i)
1601 ps =dx2*x23(i)+dy2*y23(i)+dz2*z23(i)
1602 nr =x23(i)*x23(i)+y23(i)*y23(i)+z23(i)*z23(i)
1607 xtk(4,i)=alp*x2(i)+bet*x3(i)
1608 ytk(4,i)=alp*y2(i)+bet*y3(i)
1609 ztk(4,i)=alp*z2(i)+bet*z3(i)
1611 out = (dy3*dz1-dy1*dz3)*ntx(4,i)
1612 . +(dz3*dx1-dz1*dx3)*nty(4,i)
1613 . +(dx3*dy1-dy3*dx1)*ntz(4,i)
1616 ps =-dx3*x13(i)-dy3*y13(i)-dz3*z13(i)
1617 nr =x13(i)*x13(i)+y13(i)*y13(i)+z13(i)*z13(i)
1622 xtk(4,i)=alp*x3(i)+bet*x1(i)
1623 ytk(4,i)=alp*y3(i)+bet*y1(i)
1624 ztk(4,i)=alp*z3(i)+bet*z1(i)
1633 out = (dy1*dz2-dy2*dz1)*ntx(4,i)
1634 . +(dz1*dx2-dz2*dx1)*nty(4,i)
1635 . +(dx1*dy2-dy1*dx2)*ntz(4,i)
1638 ps =dx1*x12(i)+dy1*y12(i)+dz1*z12(i)
1639 nr =x12(i)*x12(i)+y12(i)*y12(i)+z12(i)*z12(i)
1644 xtk2(i)=alp*x1(i)+bet*x2(i)
1646 ztk2(i)=alp*z1(i)+bet*z2(i)
1651 out = (dy2*dz3-dy3*dz2)*ntx(4,i)
1652 . +(dz2*dx3-dz3*dx2)*nty(4,i)
1653 . +(dx2*dy3-dy2*dx3)*ntz(4,i)
1656 ps =dx2*x23(i)+dy2*y23(i)+dz2*z23(i)
1657 nr =x23(i)*x23(i)+y23(i)*y23(i)+z23(i)*z23(i)
1662 xtk2(i)=alp*x2(i)+bet*x3(i)
1663 ytk2(i)=alp*y2(i)+bet*y3(i)
1664 ztk2(i)=alp*z2(i)+bet*z3(i)
1666 out = (dy3*dz1-dy1*dz3)*ntx(4,i)
1667 . +(dz3*dx1-dz1*dx3)*nty(4,i)
1668 . +(dx3*dy1-dy3*dx1)*ntz(4,i)
1671 ps =-dx3*x13(i)-dy3*y13(i)-dz3*z13(i)
1672 nr =x13(i)*x13(i)+y13(i)*y13(i)+z13(i)*z13(i)
1677 xtk2(i)=alp*x3(i)+bet*x1(i)
1678 ytk2(i)=alp*y3(i)+bet*y1(i)
1679 ztk2(i)=alp*z3(i)+bet*z1(i)
1686 DO 550 nls=ndeb+1,
min(ndeb+mvsiz,nsc)
1689 IF (iactiv(4,il)==-1)
GOTO 550
1696 IF (xkn1*xh>=zero) sgnxkn=one
1699 IF (ykn1*yh>=zero) sgnykn=one
1706 nr1 =n11*n11+n12*n12+n13*n13
1708 em =n11*xtk(4,i)+n12*ytk(4,i)+n13*ztk(4,i)
1710 lambda1=(em-exp((dgr-one)*log(
max(em,em20))/dgr))
1711 . /
max(exp((dgr-one)*log(em20)/dgr),nr1)
1722 IF (xkn1*xh>=zero) sgnxkn=one
1725 IF (ykn1*yh>=one) sgnykn=one
1728 IF (zkn1*zh>=zero) sgnzkn=one
1732 nr2 =n21*n21+n22*n22+n23*n23
1734 em =n21*xtk2(i)+n22*ytk2(i)+n23*ztk2(i)
1736 lambda2=(em-exp((dgr-one)*log(
max
1737 . /
max(exp((dgr-one)*log(em20)/dgr),nr2)
1743 IF (inside1==0.AND.inside2==0)
THEN
1747 IF (iactiv(4,il)==0)
THEN
1748 IF (inside1/=0.AND.inside2/=0)
THEN
1749 IF (abs(lambda1)>=abs(lambda2))
THEN
1750 xm(i)=xtk(4,i)-lambda1*n11/
max(em20,nr1)
1751 ym(i)=ytk(4,i)-lambda1*n12/
max(em20,nr1)
1752 zm(i)=ztk(4,i)-lambda1*n13/
max(em20,nr1)
1754 xm(i)=xtk2(i)-lambda2*n21/
max(em20,nr2)
1755 ym(i)=ytk2(i)-lambda2*n22/
max(em20,nr2)
1756 zm(i)=ztk2(i)-lambda2*n23/
max(em20,nr2)
1761 ELSEIF(inside1/=0)
THEN
1762 xm(i)=xtk(4,i)-lambda1*n11/
max(em20,nr1)
1763 ym(i)=ytk(4,i)-lambda1*n12/
max(em20,nr1)
1764 zm(i)=ztk(4,i)-lambda1*n13/
max(em20,nr1)
1765 ELSEIF(inside2/=0)
THEN
1766 xm(i)=xtk2(i)-lambda2*n21/
max(em20,nr2)
1767 ym(i)=ytk2(i)-lambda2*n22/
max(em20,nr2)
1768 zm(i)=ztk2(i)-lambda2*n23/
max(em20,nr2)
1775 xh=hold(1,4*(il-1)+4)
1776 yh=hold(2,4*(il-1)+4)
1777 zh=hold(3,4*(il-1)+4)
1778 n1=nold(1,4*(il-1)+4)
1779 n2=nold(2,4*(il-1)+4)
1780 n3=nold(3,4*(il-1)+4)
1781 lambda1=(xh-xtk(4,i))*n1
1784 lambda2=(xh-xtk2(i))*n1
1787 IF (inside1/=0.AND.inside2/=0)
THEN
1788 IF (abs(lambda1)>=abs(lambda2))
THEN
1789 xm(i)=xtk(4,i)+lambda1*n1
1790 ym(i)=ytk(4,i)+lambda1*n2
1791 zm(i)=ztk(4,i)+lambda1*n3
1793 xm(i)=xtk2(i)+lambda2*n1
1794 ym(i)=ytk2(i)+lambda2*n2
1795 zm(i)=ztk2(i)+lambda2*n3
1800 ELSEIF(inside1/=0)
THEN
1801 xm(i)=xtk(4,i)+lambda1*n1
1802 ym(i)=ytk(4,i)+lambda1*n2
1803 zm(i)=ztk(4,i)+lambda1*n3
1804 ELSEIF(inside2/=0)
THEN
1805 xm(i)=xtk2(i)+lambda2*n1
1806 ym(i)=ytk2(i)+lambda2*n2
1807 zm(i)=ztk2(i)+lambda2*n3
1813 xkn1 =xm(i)**(idg-1)
1815 IF (xkn1*xm(i)>=zero) sgnxkn=one
1816 ykn1 =ym(i)**(idg-1)
1818 IF (ykn1*ym(i)>=zero) sgnykn=one
1819 zkn1 =zm(i)**(idg-1)
1821 IF (zkn1*zm(i)>=zero) sgnzkn=one
1825 em=n1*xm(i)+n2*ym(i)+n3*zm(i)
1826 xm(i)=xm(i)/
max(em20,em**(one/dgr))
1827 ym(i)=ym(i)/
max(em20,em**(one/dgr))
1828 zm(i)=zm(i)/
max(em20,em**(one/dgr))
1829 xkn1 =xm(i)**(idg-1)
1831 IF (xkn1*xm(i)>=zero) sgnxkn=one
1832 ykn1 =ym(i)**(idg-1)
1834 IF (ykn1*ym(i)>=zero) sgnykn=one
1835 zkn1 =zm(i)**(idg-1)
1837 IF (zkn1*zm(i)>=zero) sgnzkn=one
1841 nr =n1*n1+n2*n2+n3*n3
1842 nr =1./
max(em20,sqrt(nr))
1847 . +(ym(i)-ytk(4,i))*n2
1848 . +(zm(i)-ztk(4,i))*n3
1849 xm(i)=xtk(4,i)+lambda1*n1
1850 ym(i)=ytk(4,i)+lambda1*n2
1851 zm(i)=ztk(4,i)+lambda1*n3
1853 iactiv(4,il)=iactiv(4,il)+1
1857#include "vectorize.inc"
1858 DO 575 nls=ndeb+1,
min(ndeb+mvsiz,nsc)
1862 IF (iactiv(4,il)<=0)
GOTO 575
1865 xkn1 =xm(i)**(idg-1)
1867 IF (xkn1*xm(i)>=zero) sgnxkn=one
1868 ykn1 =ym(i)**(idg-1)
1870 IF (ykn1*ym(i)>=zero) sgnykn=one
1871 zkn1 =zm(i)**(idg-1)
1873 IF (zkn1*zm(i)>=zero) sgnzkn=one
1877 em=n1*xm(i)+n2*ym(i)+n3*zm(i)
1879 xm(i)=xm(i)/
max(em20,em**(one/dgr))
1880 ym(i)=ym(i)/
max(em20,em**(one/dgr))
1881 zm(i)=zm(i)/
max(em20,em**(one/dgr))
1884 xkn1 =xm(i)**(idg-1)
1886 IF (xkn1*xm(i)>=zero) sgnxkn=one
1887 ykn1 =ym(i)**(idg-1)
1889 IF (ykn1*ym(i)>=zero) sgnykn=one
1890 zkn1 =zm(i)**(idg-1)
1892 IF (zkn1*zm(i)>=zero) sgnzkn=one
1896 nr =n1*n1+n2*n2+n3*n3
1897 nr =one/
max(em20,sqrt(nr))
1904 depth(4,i)=xm(i)*nxi(4,i)+ym(i)*nyi(4,i)+zm(i)*nzi(4,i)
1906 penet(4,i)=(xtk(4,i)-xm(i))*nxi(4,i)
1907 . +(ytk(4,i)-ym(i))*nyi(4,i)
1908 . +(ztk(4,i)-zm(i))*nzi(4,i)
1909 penet(4,i)=-penet(4,i)
1910 penet(4,i)=
max(zero,penet(4,i))
1911 IF (depth(4,i)-penet(4,i)<em10*depth(4,i))
THEN
1915 ansmx=
max(ansmx,penet(4,i))
1920 DO 585 nls=ndeb+1,
min(ndeb+mvsiz,nsc)
1924 IF (iactiv(4,il)==-2)
THEN
1929#include "lockon.inc"
1930 WRITE(istdo,
'(A,I8)')
' WARNING INTERFACE ',noint
1931 WRITE(istdo,
'(A,A,A,/,2I8,A,4I8,A)')
' 3NODES FACET',
1932 .
' FROM 4NODES ELEMENT/SEGMENT,',
1933 .
' DE-ACTIVATED FROM INTERFACE; FACET VERTICES:',
1934 . in4,in1,
'ISOCENTER(',in1,in2,in3,in4,
')'
1935 WRITE(iout ,
'(A,I8)')
' WARNING INTERFACE ',noint
1936 WRITE(iout,'(a,a,a,/,2i8,a,4i8,a)
') ' 3nodes facet
',
1937 . ' from 4nodes element/segment,
',
1938 . ' de-activated from interface; facet vertices:
',
1939 . IN4,IN1,'isocenter(
',IN1,IN2,IN3,IN4,')
'
1940#include "lockoff.inc"