37 1 JLT ,CAND_N ,CAND_E ,CN_LOC ,CE_LOC ,
38 2 X1 ,X2 ,X3 ,X4 ,Y1 ,
39 3 Y2 ,Y3 ,Y4 ,Z1 ,Z2 ,
40 4 Z3 ,Z4 ,XI ,YI ,ZI ,
41 5 VX1 ,VX2 ,VX3 ,VX4 ,VXI ,
42 6 VY1 ,VY2 ,VY3 ,VY4 ,VYI ,
43 7 VZ1 ,VZ2 ,VZ3 ,VZ4 ,VZI ,
44 8 N1 ,N2 ,N3 ,H1 ,H2 ,
45 9 H3 ,H4 ,NIN ,NSN ,IX1 ,
46 A IX2 ,IX3 ,IX4 ,NSVG ,STIF ,
47 B JLT_NEW,INACTI ,MSEGLO ,GAPS ,GAP_NM ,
48 C KINI ,IRECT ,IRTLM ,TIME_S ,SUBTRIA,
49 D INTTH ,NSMS ,PENE ,XX0 ,YY0 ,
50 E ZZ0 ,VX ,VY ,VZ ,IXX ,
51 F MVOISIN,PMAX_GAP,SECND_FR,GAP_M ,PENE_OLD,
52 G STIF_OLD,ITRIV ,ITAB ,CAND_T ,IEDGE ,
53 H NFT ,PENMIN,EPS0 ,NM1 ,NM2 ,
54 I NM3 ,INTPLY ,DGAP_NM,ICONT_I,MARGE ,
55 J NSNE ,ISPT2 ,IZERO ,IKNON ,PENREF )
63#include "implicit_f.inc"
73 INTEGER JLT, JLT_NEW,NIN,NSN,INACTI,IEDGE, NFT,
74 . CAND_N(*),CN_LOC(MVSIZ),
75 . CAND_E(*),CE_LOC(MVSIZ), NSVG(MVSIZ), KINI(*), CAND_T(*)
76 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ),
77 . INTTH,MSEGLO(*),IRTLM(2,NSN) ,SUBTRIA(MVSIZ),
78 . nsms(*),ixx(mvsiz,13),mvoisin(4,*),itriv(4,mvsiz),
79 . intply ,nsne,ispt2(*),izero
81 . n1(mvsiz), n2(mvsiz), n3(mvsiz), pmax_gap,
82 . h1(mvsiz), h2(mvsiz), h3(mvsiz), h4(mvsiz),
83 . kb1(mvsiz), kb2(mvsiz), kb3(mvsiz), kb4(mvsiz),
84 . kc1(mvsiz), kc2(mvsiz), kc3(mvsiz), kc4(mvsiz),
85 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
86 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
87 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
88 . xi(mvsiz), yi(mvsiz), zi(mvsiz), stif(mvsiz),
89 . vx1(mvsiz),vx2(mvsiz),vx3(mvsiz),vx4(mvsiz),vy1(mvsiz),
90 . vy2(mvsiz),vy3(mvsiz),vy4(mvsiz),vz1(mvsiz),vz2(mvsiz),
91 . vz3(mvsiz),vz4(mvsiz),vxi(mvsiz),vyi(mvsiz),vzi(mvsiz),
92 . time_s(nsn),pene(mvsiz),secnd_fr(6,nsn),
93 . xx0(mvsiz,17),yy0(mvsiz,17),zz0(mvsiz,17),gap_m(*),
94 . vx(mvsiz,17),vy(mvsiz,17),vz(mvsiz,17),gaps(*),gap_nm(12,*),
95 . pene_old(5,nsn),stif_old(2,nsn),penmin,eps0,
96 . nm1(mvsiz), nm2(mvsiz), nm3(mvsiz),dgap_nm(4,*),marge
97 INTEGER IRECT(4,*),ITAB(*),ICONT_I(*)
98 INTEGER,
DIMENSION(MVSIZ),
INTENT(IN) :: IKNON
99 my_real,
DIMENSION(MVSIZ),
INTENT(OUT) :: penref
103#include "scr05_c.inc"
104#include "com08_c.inc"
108 INTEGER I, IG, J, K, L, INTERSECT,MG,N,II,NSLID,ITR,ITS,ITT,ITQ,NS
110 . X5(MVSIZ), Y5(MVSIZ), Z5(MVSIZ),
111 . VX5(MVSIZ), VY5(MVSIZ), VZ5(MVSIZ),
112 . AL1(MVSIZ), AL2(MVSIZ), AL3(MVSIZ), AL4(MVSIZ),
113 . NXX(MVSIZ,17),NYY(MVSIZ,17),NZZ(MVSIZ,17),
114 . X51, X52, X53, X54,
115 . Y51, Y52, Y53, Y54,
116 . z51, z52, z53, z54,
117 . xo16, xo17, xo15, xo14, x163, x153, x152, x142, x141,
118 . yo16, yo17, yo15, yo14, y163, y153, y152, y142, y141,
119 . zo16, zo17, zo15, zo14, z163, z153, z152, z142, z141,
123 . xi1, xi2, xi3, xi4, xi5,
124 . yi1, yi2, yi3, yi4, yi5,
125 . zi1, zi2, zi3, zi4, zi5,
129 . xo1, xo2, xo3, xo4, xo5, xoi,
130 . yo1, yo2, yo3, yo4, yo5, yoi,
131 . zo1, zo2, zo3, zo4, zo5, zoi,xs,ys,zs,
132 . xm1, xm2, xm3, xm4, xm5,
133 . ym1, ym2, ym3, ym4, ym5,
134 . zm1, zm2, zm3, zm4, zm5
136 . nx(mvsiz), ny(mvsiz), nz(mvsiz),
137 . sx125(mvsiz),sx235(mvsiz),sx345(mvsiz),sx415(mvsiz),
138 . sy125(mvsiz),sy235(mvsiz),sy345(mvsiz),sy415(mvsiz),
139 . sz125(mvsiz),sz235(mvsiz),sz345(mvsiz),sz415(mvsiz),
140 . sx1250(mvsiz),sx2350(mvsiz),sx3450(mvsiz),sx4150(mvsiz),
141 . sy1250(mvsiz),sy2350(mvsiz),sy3450(mvsiz),sy4150(mvsiz),
142 . sz1250(mvsiz),sz2350(mvsiz),sz3450(mvsiz),sz4150(mvsiz),
143 . sx2114(mvsiz),sx3215(mvsiz),sx4316(mvsiz),sx1417(mvsiz),
144 . sy2114(mvsiz),sy3215(mvsiz),sy4316(mvsiz),sy1417(mvsiz),
145 . sz2114(mvsiz),sz3215(mvsiz),sz4316(mvsiz),sz1417(mvsiz),
146 . sx21140(mvsiz),sx32150(mvsiz),sx43160(mvsiz),sx14170(mvsiz),
147 . sy21140(mvsiz),sy32150(mvsiz),sy43160(mvsiz),sy14170(mvsiz),
148 . sz21140(mvsiz),sz32150(mvsiz),sz43160(mvsiz),sz14170(mvsiz),
149 . la(mvsiz),lb(mvsiz), lc(mvsiz),
150 . xa(mvsiz),ya(mvsiz),za(mvsiz),
151 . xb(mvsiz),yb(mvsiz),zb(mvsiz),
152 . xc(mvsiz),yc(mvsiz),zc(mvsiz),
153 . xd(mvsiz),yd(mvsiz),zd(mvsiz),
154 . xe(mvsiz),ye(mvsiz),ze(mvsiz),
155 . xf(mvsiz),yf(mvsiz),zf(mvsiz),adt0(mvsiz),
156 . xx(mvsiz,17),yy(mvsiz,17),zz(mvsiz,17),
157 . xxl(17),yyl(17),zzl(17)
159 . s2,d1,d2,d3,d4,unp,zerom,h0,nqx,nqy,nqz,la2,lb2,lc2,
160 . sx,sx1,sx2,sx3,sx4,sx5,sx0,
161 . sy,sy1,sy2,sy3,sy4,sy5,sy0,
162 . sz,sz1,sz2,sz3,sz4,sz5,sz0,
164 . nx1, nx2, nx3, nx4,
165 . ny1, ny2, ny3, ny4,
166 . nz1, nz2, nz3, nz4,
167 . nx14, nx15, nx16, nx17,
168 . ny14, ny15, ny16, ny17,
169 . nz14, nz15, nz16, nz17,
170 . sox125,sox235,sox345,sox415,
171 . soy125,soy235,soy345,soy415,
172 . soz125,soz235,soz345,soz415,
173 . sox2114,sox3215,sox4316,sox1417,
174 . soy2114,soy3215,soy4316,soy1417,
175 . soz2114,soz3215,soz4316,soz1417,
176 . xo12,xo23,xo34,xo41,sxo1,sxo2,sxo3,sxo4,sxo5,
177 . yo12,yo23,yo34,yo41,syo1,syo2,syo3,syo4,syo5,
178 . zo12,zo23,zo34,zo41,szo1,szo2,szo3,szo4,szo5,
179 . sxo12,sxo23,sxo34,sxo41,vo12,vo23,vo34,vo41,
180 . syo12,syo23,syo34,syo41,
181 . szo12,szo23,szo34,szo41,
182 . x13_2,y13_2,z13_2,x7_3 ,y7_3 ,z7_3 ,
183 . x9_4 ,y9_4 ,z9_4 ,x11_1,y11_1,z11_1,
184 . x6_4 ,y6_4 ,z6_4 ,x8_1 ,y8_1 ,z8_1 ,
185 . x10_2,y10_2,z10_2,x12_3,y12_3,z12_3,
186 . prx,pry,prz,psx,psy,psz,ptx,pty,ptz,
187 . nqrx,nqry,nqrz,nqsx,nqsy,nqsz,nqtx,nqty,nqtz,
188 . nrx,nry,nrz,nsx,nsy,nsz,ntx,nty,ntz,
189 . nax,nay,naz,nbx,nby,nbz,ncx,ncy,ncz,
190 . sax,say,saz,sbx,sby,sbz,scx,scy,scz,
191 . trx,try,trz,tsx,tsy,tsz,ttx,tty,ttz,
192 . tr2,ts2,tt2,aaa,bbb,vr,vs,vt,nnx,nny,nnz,
193 . xab,xbc,xca,yab,ybc,yca,zab,zbc,zca,
194 . xce,yce,zce,xaf,yaf,zaf,
195 . xpa,ypa,zpa,xpb,ypb,zpb,xpc,ypc,zpc,xpi,ypi,zpi,
196 . abx,bcx,cax,aby,bcy,cay,abz,bcz,caz,xbd,ybd,zbd
198 . gap2, ds2,t1,t2,t3,xxx,yyy,zzz,nni,ni2,
199 . al1num,al2num,al3num,al4num,al1den,al2den,al3den,al4den,
200 . x23d,y23d,z23d,x34d,y34d,z34d,x41d,y41d,z41d,
202 . hla, adt,overw,eps,pene_sh,overw0,vol,eps2,dgap,rx,ry,rz,
203 . pene_tm(mvsiz),la_tm(mvsiz),lb_tm(mvsiz),n_tm(3,mvsiz),
204 .
area(mvsiz),f_pene,fac_k,fac_p
205 INTEGER ICONTACT(MVSIZ),IT0(3,20),IT(3,20,MVSIZ),IC(10,20),
206 . ISTEP(MVSIZ),IRTLM_OLD(MVSIZ),SUBTRIA_N(MVSIZ),
207 . NSS,MGLOB,ibug,JG,IZLIM,ip,IKEEP,LARGEP,IPEN0(MVSIZ),IER,
208 . NOD1,NOD2,NOR_OLD,ISHEL(MVSIZ),ICONT_R(MVSIZ),
209 . SUBTRIA_TM(MVSIZ),IFIRST
211 . UNPT,ZEROMT,EPS02,TOLE,EPSEG,MARGE025,TOL_INTS,TOL_B,EPSEXT
243 1 5, 1, 2 , 14, 3, 4 , 3, 4, 1, 2,
244 2 5, 2, 3 , 15, 4, 1 , 4, 1, 2, 3,
245 3 5, 3, 4 , 16, 1, 2 , 1, 2, 3, 4,
246 4 5, 4, 1 , 17, 2, 3 , 2, 3, 4, 1,
247 5 14, 2, 1 , 5, 6, 7 , 6, 7, 2, 1,
248 6 15, 3, 2 , 5, 8, 9 , 8, 9, 3, 2,
249 7 16, 4, 3 , 5,10,11 , 10,11, 4, 3,
250 8 17, 1, 4 , 5,12,13 , 12,13, 1, 4,
251 9 14, 1, 6 , 0, 7, 2 , 7, 2, 1, 6,
252 . 15, 2, 8 , 0, 9, 3 , 9, 3, 2, 8,
253 1 16, 3,10 , 0,11, 4 , 11, 4, 3,10,
254 2 17, 4,12 , 0,13, 1 , 13, 1, 4,12,
255 3 14, 7, 2 , 0, 1, 6 , 1, 6, 7, 2,
256 4 15, 9, 3 , 0, 2, 8 , 2, 8, 9, 3,
257 5 16,11, 4 , 0, 3,10 , 3,10,11, 4,
258 6 17,13, 1 , 0, 4,12 , 4,12,13, 1,
259 7 14, 6, 7 , 0, 2, 1 , 2, 1, 6, 7,
260 8 15, 8, 9 , 0, 3, 2 , 3, 2, 8, 9,
261 9 16,10,11 , 0, 4, 3 , 4, 3,10,11,
262 . 17,12,13 , 0, 1, 4 , 1, 4,12,13/
324 eps = (two+half)/hundred
334 marge025=fourth*marge
359 icontact(i) = irtlm(1,n)
360 subtria(i)=irtlm(2,n)
362 icontact(i) =
irtlm_fi(nin)%P(1,n-nsn)
363 subtria(i) =
irtlm_fi(nin)%P(2,n-nsn)
365 irtlm_old(i) = icontact(i)
367 IF(icontact(i) <= zero)
THEN
370 ELSEIF(icontact(i) == mseglo(cand_e(i)))
THEN
376 IF(stif(i) == zero)
THEN
381 IF (pene_old(5,n)> zero.AND.istep(i) == 1) ipen0(i)=1
383 IF (
pene_oldfi(nin)%P(5,n-nsn)> zero.AND.istep(i) == 1) ipen0(i)=1
386 IF(istep(i) == 1.AND.subtria(i) > 20)
THEN
387 subtria(i) = subtria(i) - 20
429 IF(istep(i) == 0)cycle
448 x51 = xx0(i,1) - xx0(i,5)
449 y51 = yy0(i,1) - yy0(i,5)
450 z51 = zz0(i,1) - zz0(i,5)
452 x52 = xx0(i,2) - xx0(i,5)
453 y52 = yy0(i,2) - yy0(i,5)
454 z52 = zz0(i,2) - zz0(i,5)
456 x53 = xx0(i,3) - xx0(i,5)
457 y53 = yy0(i,3) - yy0(i,5)
458 z53 = zz0(i,3) - zz0(i,5)
460 x54 = xx0(i,4) - xx0(i,5)
461 y54 = yy0(i,4) - yy0(i,5)
462 z54 = zz0(i,4) - zz0(i,5)
465 sx1250(i) = y51*z52 - z51*y52
466 sy1250(i) = z51*x52 - x51*z52
467 sz1250(i) = x51*y52 - y51*x52
469 sx2350(i) = y52*z53 - z52*y53
470 sy2350(i) = z52*x53 - x52*z53
471 sz2350(i) = x52*y53 - y52*x53
473 sx3450(i) = y53*z54 - z53*y54
474 sy3450(i) = z53*x54 - x53*z54
475 sz3450(i) = x53*y54 - y53*x54
477 sx4150(i) = y54*z51 - z54*y51
478 sy4150(i) = z54*x51 - x54*z51
479 sz4150(i) = x54*y51 - y54*x51
482 x141 = xx0(i,1) - xx0(i,14)
483 y141 = yy0(i,1) - yy0(i,14)
484 z141 = zz0(i,1) - zz0(i,14)
486 x142 = xx0(i,2) - xx0(i,14)
487 y142 = yy0(i,2) - yy0(i,14)
488 z142 = zz0(i,2) - zz0(i,14)
490 x152 = xx0(i,2) - xx0(i,15)
491 y152 = yy0(i,2) - yy0(i,15)
492 z152 = zz0(i,2) - zz0(i,15)
494 x153 = xx0(i,3) - xx0(i,15)
495 y153 = yy0(i,3) - yy0(i,15)
496 z153 = zz0(i,3) - zz0(i,15)
498 x163 = xx0(i,3) - xx0(i,16)
499 y163 = yy0(i,3) - yy0(i,16)
500 z163 = zz0(i,3) - zz0(i,16)
502 x164 = xx0(i,4) - xx0(i,16)
503 y164 = yy0(i,4) - yy0(i,16)
504 z164 = zz0(i,4) - zz0(i,16)
506 x174 = xx0(i,4) - xx0(i,17)
507 y174 = yy0(i,4) - yy0(i,17)
508 z174 = zz0(i,4) - zz0(i,17)
510 x171 = xx0(i,1) - xx0(i,17)
511 y171 = yy0(i,1) - yy0(i,17)
512 z171 = zz0(i,1) - zz0(i,17)
515 x13_2 = xx0(i,2) - xx0(i,13)
516 y13_2 = yy0(i,2) - yy0(i,13)
517 z13_2 = zz0(i,2) - zz0(i,13)
519 x7_3 = xx0(i,3) - xx0(i,7)
520 y7_3 = yy0(i,3) - yy0(i,7)
521 z7_3 = zz0(i,3) - zz0(i,7)
523 x9_4 = xx0(i,4) - xx0(i,9)
524 y9_4 = yy0(i,4) - yy0(i,9)
525 z9_4 = zz0(i,4) - zz0(i,9)
527 x11_1 = xx0(i,1) - xx0(i,11)
528 y11_1 = yy0(i,1) - yy0(i,11)
529 z11_1 = zz0(i,1) - zz0(i,11)
531 x6_4 = xx0(i,4) - xx0(i,6)
532 y6_4 = yy0(i,4) - yy0(i,6)
533 z6_4 = zz0(i,4) - zz0(i,6)
535 x8_1 = xx0(i,1) - xx0(i,8)
536 y8_1 = yy0(i,1) - yy0(i,8)
537 z8_1 = zz0(i,1) - zz0(i,8)
539 x10_2 = xx0(i,2) - xx0(i,10)
540 y10_2 = yy0(i,2) - yy0(i,10)
541 z10_2 = zz0(i,2) - zz0(i,10)
543 x12_3 = xx0(i,3) - xx0(i,12)
544 y12_3 = yy0(i,3) - yy0(i,12)
545 z12_3 = zz0(i,3) - zz0(i,12)
549 IF(mvoisin(1,cand_e(i))/=0)
THEN
550 sx21140(i) = y142*z141 - z142*y141
551 sy21140(i) = z142*x141 - x142*z141
552 sz21140(i) = x142*y141 - y142*x141
554 sx21140(i) = sx1250(i)
555 sy21140(i) = sy1250(i)
556 sz21140(i) = sz1250(i)
560 IF(ixx(i,3) /= ixx(i,4))
THEN
561 IF(mvoisin(2,cand_e(i))/=0)
THEN
562 sx32150(i) = y153*z152 - z153*y152
563 sy32150(i) = z153*x152 - x153*z152
564 sz32150(i) = x153*y152 - y153*x152
566 sx32150(i) = sx2350(i)
567 sy32150(i) = sy2350(i)
568 sz32150(i) = sz2350(i)
571 IF(mvoisin(3,cand_e(i))/=0)
THEN
572 sx43160(i) = y164*z163 - z164*y163
573 sy43160(i) = z164*x163 - x164*z163
574 sz43160(i) = x164*y163 - y164*x163
576 sx43160(i) = sx3450(i)
577 sy43160(i) = sy3450(i)
578 sz43160(i) = sz3450(i)
581 IF(mvoisin(4,cand_e(i))/=0)
THEN
582 sx14170(i) = y171*z174 - z171*y174
583 sy14170(i) = z171*x174 - x171*z174
584 sz14170(i) = x171*y174 - y171*x174
586 sx14170(i) = sx4150(i)
587 sy14170(i) = sy4150(i)
588 sz14170(i) = sz4150(i)
592 nxx(i,1) = y13_2 * z6_4 - z13_2 * y6_4
593 nyy(i,1) = z13_2 * x6_4 - x13_2 * z6_4
594 nzz(i,1) = x13_2 * y6_4 - y13_2 * x6_4
596 nxx(i,2) = y7_3 * z8_1 - z7_3 * y8_1
597 nyy(i,2) = z7_3 * x8_1 - x7_3 * z8_1
598 nzz(i,2) = x7_3 * y8_1 - y7_3 * x8_1
600 nxx(i,3) = y9_4 * z10_2 - z9_4 * y10_2
601 nyy(i,3) = z9_4 * x10_2 - x9_4 * z10_2
602 nzz(i,3) = x9_4 * y10_2 - y9_4 * x10_2
604 nxx(i,4) = y11_1 * z12_3 - z11_1 * y12_3
605 nyy(i,4) = z11_1 * x12_3 - x11_1 * z12_3
606 nzz(i,4) = x11_1 * y12_3 - y11_1 * x12_3
608 nxx(i,5) = fourth*(nxx(i,1)+nxx(i,2)+nxx(i,3)+nxx(i,4))
609 nyy(i,5) = fourth*(nyy(i,1)+nyy(i,2)+nyy(i,3)+nyy(i,4))
610 nzz(i,5) = fourth*(nzz(i,1)+nzz(i,2)+nzz(i,3)+nzz(i,4))
614 IF(mvoisin(2,cand_e(i))/=0)
THEN
615 sx32150(i) = y153*z152 - z153*y152
616 sy32150(i) = z153*x152 - x153*z152
617 sz32150(i) = x153*y152 - y153*x152
619 sx32150(i) = sx1250(i)
620 sy32150(i) = sy1250(i)
621 sz32150(i) = sz1250(i)
624 IF(mvoisin(3,cand_e(i))/=0)
THEN
625 sx43160(i) = y164*z163 - z164*y163
626 sy43160(i) = z164*x163 - x164*z163
627 sz43160(i) = x164*y163 - y164*x163
629 sx43160(i) = sx1250(i)
630 sy43160(i) = sy1250(i)
631 sz43160(i) = sz1250(i)
634 IF(mvoisin(4,cand_e(i))/=0)
THEN
635 sx14170(i) = y171*z174 - z171*y174
636 sy14170(i) = z171*x174 - x171*z174
637 sz14170(i) = x171*y174 - y171*x174
639 sx14170(i) = sx1250(i)
640 sy14170(i) = sy1250(i)
641 sz14170(i) = sz1250(i)
644 nxx(i,1) =sx1250(i)+sx14170(i)+sx21140(i)
645 nyy(i,1) =sy1250(i)+sy14170(i)+sy21140(i)
646 nzz(i,1) =sz1250(i)+sz14170(i)+sz21140(i)
648 nxx(i,2) =sx1250(i)+sx21140(i)+sx32150(i)
649 nyy(i,2) =sy1250(i)+sy21140(i)+sy32150(i)
650 nzz(i,2) =sz1250(i)+sz21140(i)+sz32150(i)
652 nxx(i,3) =sx1250(i)+sx32150(i)+sx14170(i)
653 nyy(i,3) =sy1250(i)+sy32150(i)+sy14170(i)
654 nzz(i,3) =sz1250(i)+sz32150(i)+sz14170(i)
675 IF(gaps(i)>zero.OR.gap_m(l)>zero)
THEN
677 ELSEIF(gap_nm(5,l)>zero.OR.gap_nm(6,l)>zero.OR.gap_nm(7,l)>zero)
THEN
679 ELSEIF(gap_nm(8,l)>zero.OR.gap_nm(9,l)>zero.OR.gap_nm(10,l)>zero)
THEN
681 ELSEIF(gap_nm(11,l)>zero.OR.gap_nm(12,l)>zero)
THEN
685 IF(gaps(i)>zero.AND.gap_m(l)>zero) ishel(i)=2
690 aaa = gaps(i)+gap_nm(1,l)
691 aaa = aaa/sqrt(nx1*nx1+ny1*ny1+nz1*nz1)
699 aaa = gaps(i)+gap_nm(2,l)
700 aaa = aaa/sqrt(nx2*nx2+ny2*ny2+nz2*nz2)
705 IF(ixx(i,3) /= ixx(i,4))
THEN
709 aaa = gaps(i)+gap_nm(3,l)
710 aaa = aaa/sqrt(nx3*nx3+ny3*ny3+nz3*nz3)
718 aaa = gaps(i)+gap_nm(4,l)
719 aaa = aaa/sqrt(nx4*nx4+ny4*ny4+nz4*nz4)
724 xx(i,1) = xx0(i,1) + nx1
725 yy(i,1) = yy0(i,1) + ny1
726 zz(i,1) = zz0(i,1) + nz1
728 xx(i,2) = xx0(i,2) + nx2
729 yy(i,2) = yy0(i,2) + ny2
732 xx(i,3) = xx0(i,3) + nx3
733 yy(i,3) = yy0(i,3) + ny3
734 zz(i,3) = zz0(i,3) + nz3
736 xx(i,4) = xx0(i,4) + nx4
737 yy(i,4) = yy0(i,4) + ny4
740 xx(i,5) = fourth*(xx(i,1)+xx(i,2)+xx(i,3)+xx(i,4))
741 yy(i,5) = fourth*(yy(i,1)+yy(i,2)+yy(i,3)+yy(i,4))
742 zz(i,5) = fourth*(zz(i,1)+zz(i,2)+zz(i,3)+zz(i,4))
743 IF(ixx(i,10)==ixx(i,11))
THEN
748 xx(i,16) = fourth*(xx0(i,4)+xx0(i,3)+xx0(i,10)+xx0(i,11))
749 yy(i,16) = fourth*(yy0(i,4)+yy0(i,3)+yy0(i,10)+yy0(i,11))
750 zz(i,16) = fourth*(zz0(i,4)+zz0(i,3)+zz0(i,10)+zz0(i,11))
755 aaa = gaps(i)+fourth*(
756 . gap_nm(3,l)+gap_nm(4,l)
757 . + gap_nm(9,l)+gap_nm(10,l) )
758 aaa = aaa/sqrt(nx16*nx16+ny16*ny16+nz16*nz16)
759 xx(i,16) = xx(i,16) + nx16 * aaa
760 yy(i,16) = yy(i,16) + ny16 * aaa
761 zz(i,16) = zz(i,16) + nz16 * aaa
766 aaa = gaps(i)+gap_nm(3,l)
767 aaa = aaa/sqrt(nx3*nx3+ny3*ny3+nz3*nz3)
776 xx(i,1) = xx0(i,1) + nx1
777 yy(i,1) = yy0(i,1) + ny1
778 zz(i,1) = zz0(i,1) + nz1
780 xx(i,2) = xx0(i,2) + nx2
781 yy(i,2) = yy0(i,2) + ny2
782 zz(i,2) = zz0(i,2) + nz2
784 xx(i,3) = xx0(i,3) + nx3
785 yy(i,3) = yy0(i,3) + ny3
786 zz(i,3) = zz0(i,3) + nz3
796 IF(ixx(i,6) == ixx(i,7))
THEN
801 xx(i,14) = fourth*(xx0(i,2)+xx0(i,1)+xx0(i,6)+xx0(i,7
802 yy(i,14) = fourth*(yy0(i,2)+yy0(i,1)+yy0(i,6)+yy0(i,7))
803 zz(i,14) = fourth*(zz0(i,2)+zz0(i,1)+zz0(i,6)+zz0(i,7))
808 aaa = gaps(i)+fourth*(
809 . gap_nm(1,l)+gap_nm(2,l)
810 . + gap_nm(5,l)+gap_nm(6,l) )
811 aaa = aaa/sqrt(nx14*nx14+ny14*ny14+nz14*nz14)
812 xx(i,14) = xx(i,14) + nx14 * aaa
813 yy(i,14) = yy(i,14) + ny14 * aaa
814 zz(i,14) = zz(i,14) + nz14 * aaa
820 xx(i,15) = fourth*(xx0(i,3)+xx0(i,2)+xx0(i,8)+xx0(i,9))
821 yy(i,15) = fourth*(yy0(i,3)+yy0(i,2)+yy0(i,8)+yy0(i,9))
822 zz(i,15) = fourth*(zz0(i,3)+zz0(i,2)+zz0(i,8)+zz0(i,9))
827 aaa = gaps(i)+fourth*(
828 . gap_nm(2,l)+gap_nm(3,l)
829 . + gap_nm(7,l)+gap_nm(8,l) )
830 aaa = aaa/sqrt(nx15*nx15+ny15*ny15+nz15*nz15)
831 xx(i,15) = xx(i,15) + nx15 * aaa
832 yy(i,15) = yy(i,15) + ny15 * aaa
833 zz(i,15) = zz(i,15) + nz15 * aaa
834 IF(ixx(i,12)==ixx(i,13))
THEN
839 xx(i,17) = fourth*(xx0(i,1)+xx0(i,4)+xx0(i,12)+xx0(i,13))
840 yy(i,17) = fourth*(yy0(i,1)+yy0(i,4)+yy0(i,12)+yy0(i,13))
841 zz(i,17) = fourth*(zz0(i,1)+zz0(i,4)+zz0(i,12)+zz0(i,13))
846 aaa = gaps(i)+fourth*(
847 . gap_nm(4,l)+gap_nm(1,l)
848 . + gap_nm(11,l)+gap_nm(12,l) )
849 aaa = aaa/sqrt(nx17*nx17+ny17*ny17+nz17*nz17)
850 xx(i,17) = xx(i,17) + nx17 * aaa
851 yy(i,17) = yy(i,17) + ny17 * aaa
852 zz(i,17) = zz(i,17) + nz17 * aaa
854 x51 = xx(i,1) - xx(i,5)
855 y51 = yy(i,1) - yy(i,5)
856 z51 = zz(i,1) - zz(i,5)
858 x52 = xx(i,2) - xx(i,5)
859 y52 = yy(i,2) - yy(i,5)
860 z52 = zz(i,2) - zz(i,5)
862 x53 = xx(i,3) - xx(i,5)
863 y53 = yy(i,3) - yy(i,5)
864 z53 = zz(i,3) - zz(i,5)
866 x54 = xx(i,4) - xx(i,5)
867 y54 = yy(i,4) - yy(i,5)
868 z54 = zz(i,4) - zz(i,5)
871 sx125(i) = y51*z52 - z51*y52
872 sy125(i) = z51*x52 - x51*z52
873 sz125(i) = x51*y52 - y51*x52
875 sx235(i) = y52*z53 - z52*y53
876 sy235(i) = z52*x53 - x52*z53
877 sz235(i) = x52*y53 - y52*x53
879 sx345(i) = y53*z54 - z53*y54
880 sy345(i) = z53*x54 - x53*z54
881 sz345(i) = x53*y54 - y53*x54
883 sx415(i) = y54*z51 - z54*y51
884 sy415(i) = z54*x51 - x54*z51
885 sz415(i) = x54*y51 - y54*x51
889 xx(i,1:17) = xx0(i,1:17)
890 yy(i,1:17) = yy0(i,1:17)
891 zz(i,1:17) = zz0(i,1:17)
920 IF(istep(i) == 0)cycle
921 IF(istep(i) /= 1.AND.tt /= zero)cycle
977 s2 =
max(em30,sqrt(nqx*nqx + nqy*nqy + nqz*nqz))
984 bbb = (xi(i)-xa(i))*nqx+(yi(i)-ya(i))*nqy+(zi(i)-za(i))*nqz
986 IF (tt == zero .AND. istep(i)/= 1)
THEN
987 IF (abs(bbb) < penmin.AND.bbb/=zero)
THEN
989 CALL s_in_m4(xx(i,1),yy(i,1),zz(i,1),xx(i,2),yy(i,2),zz(i,2),
990 1 xx(i,3),yy(i,3),zz(i,3),xx(i,4),yy(i,4),zz(i,4),
991 1 xi(i),yi(i),zi(i),ier)
997 IF(irtlm(1,n)==0)
THEN
998 irtlm(1,n)=-mseglo(cand_e(i))
1002 IF( time_s(n)<pene(i) .OR.
1003 * (time_s(n)==pene(i).AND.-irtlm(1,n) < mseglo(cand_e(i)) ) )
THEN
1004 irtlm(1,n)=-mseglo(cand_e(i))
1010 IF(
irtlm_fi(nin)%P(1,n-nsn) == 0)
THEN
1011 irtlm_fi(nin)%P(1,n-nsn)=-mseglo(cand_e(i))
1015 IF(
time_sfi(nin)%P(n-nsn)<pene(i) .OR.
1016 * (
time_sfi(nin)%P(n-nsn)==pene(i).AND.-
irtlm_fi(nin)%P(1,n-nsn) < mseglo(cand_e(i)) ) )
THEN
1017 irtlm_fi(nin)%P(1,n-nsn)=-mseglo(cand_e(i))
1023#include "lockoff.inc"
1034 pene(i) = -
min(zero,bbb)
1037 IF(pene(i)*pene(i) > eps2*s2.AND.ipen0(i)==0) largep = 1
1053 ! / \ a,b,c position at current time
1058 ! / / \ \ na = a - a
1064 ! b-------------------------c
1096 sx = - yab*zca + zab*yca
1097 sy = - zab*xca + xab*zca
1098 sz = - xab*yca + yab*xca
1099 s2 = sx*sx+sy*sy+sz*sz
1100 sax = yib*zic - zib*yic
1101 say = zib*xic - xib*zic
1102 saz = xib*yic - yib*xic
1103 la(i) = (sx*sax+sy*say+sz*saz)/s2
1104 sbx = yic*zia - zic*yia
1105 sby = zic*xia - xic*zia
1106 sbz = xic*yia - yic*xia
1107 lb(i) = (sx*sbx+sy*sby+sz*sbz)/s2
1108 lc(i) = one - la(i) - lb(i)
1110 subtria_tm(i) = subtria(i)
1116 IF (nsne >0) epsext=em04
1117 IF (ispt2(i) >0) epseg=em04
1118 IF(ixx(i,3) /= ixx(i,4))
THEN
1125 subtria_n(i)=it0(2,itq)
1126 subtria(i)=it0(2,itq)
1127 xxl(1:17)=xx(i,1:17)
1128 yyl(1:17)=yy(i,1:17)
1129 zzl(1:17)=zz(i,1:17)
1131 gap2 = gaps(i)+gap_m(cand_e(i))
1133 1 izlim ,istep(i),subtria_n(i),subtria(i),
1134 2 largep ,pene(i) ,xxl ,yyl ,zzl ,
1135 3 sx125(i),sy125(i),sz125(i),sx235(i),sy235(i),
1136 4 sz235(i),sx345(i),sy345(i),sz345(i),sx415(i),
1137 5 sy415(i),sz415(i),xi(i) ,yi(i) ,zi(i) ,
1138 6 n1(i) ,n2(i) ,n3(i) ,la(i) ,lb(i) ,
1139 7 lc(i) ,gap2 ,epseg )
1140 subtria_tm(i) = subtria(i)
1142 ELSEIF(lc(i)<aaa)
THEN
1144 subtria_n(i)=it0(3,itq)
1145 subtria(i)=it0(3,itq)
1146 xxl(1:17)=xx(i,1:17)
1147 yyl(1:17)=yy(i,1:17)
1148 zzl(1:17)=zz(i,1:17)
1150 gap2 = gaps(i)+gap_m(cand_e(i))
1152 1 izlim ,istep(i),subtria_n(i),subtria(i),
1153 2 largep ,pene(i) ,xxl ,yyl ,zzl ,
1154 3 sx125(i),sy125(i),sz125(i),sx235(i),sy235(i),
1155 4 sz235(i),sx345(i),sy345(i),sz345(i),sx415(i),
1156 5 sy415(i),sz415(i),xi(i) ,yi(i) ,zi(i) ,
1157 6 n1(i) ,n2(i) ,n3(i) ,la(i) ,lb(i) ,
1159 subtria_tm(i) = subtria(i)
1161 ELSEIF(la(i)<-epsext.OR.(pene(i)==zero.AND.la(i)<zero))
THEN
1164 subtria_n(i)=it0(1,itq)
1166 ELSEIF(la(i)<epseg)
THEN
1168 vol = n1(i)*xbd + n2(i)*ybd + n3(i)*zbd
1169 gap2 = gaps(i)+gap_m(cand_e(i))
1170 IF (gap2<epseg.AND.(lb(i)<epseg.OR.lc(i)<epseg))vol=-abs(vol)
1174 subtria_n(i)=it0(1,itq)
1176 ELSEIF(vol < zero)
THEN
1179 ELSEIF(la(i)<zerom)
THEN
1181 subtria_n(i)=it0(1,itq)
1185 IF(izlim == -1)cycle
1190 IF(la(i)<-epsext.OR.(pene(i)==zero.AND.la(i
THEN
1194 ELSEIF(la(i)<epseg)
THEN
1196 vol = n1(i)*xbd + n2(i)*ybd + n3(i)*zbd
1197 gap2 = gaps(i)+gap_m(cand_e(i))
1198 IF (gap2<epseg.AND.(lb(i)<epseg.OR.lc(i)<epseg))vol=-abs(vol)
1204 ELSEIF(vol < zero)
THEN
1207 ELSEIF(la(i)<zerom)
THEN
1213 IF(lb(i)<-epsext.OR.(pene(i)==zero.AND.lb(i)<zero))
THEN
1215 IF(lb(i) < la(i)) subtria_n(i)=6
1217 ELSEIF(lb(i)<epseg)
THEN
1219 vol = n1(i)*xce + n2(i)*yce + n3(i)*zce
1220 gap2 = gaps(i)+gap_m(cand_e(i))
1221 IF (gap2<epseg.AND.(lb(i)<epseg.OR.lc(i
1225 IF(lb(i) < la(i).OR.izlim==1) subtria_n(i)=6
1227 ELSEIF(vol < zero)
THEN
1230 ELSEIF(lb(i)<zerom)
THEN
1232 IF(lb(i) < la(i).OR.izlim==1) subtria_n(i)=6
1236 IF(lc(i)<-epsext.OR.(pene(i)==zero.AND.lc(i)<zero))
THEN
1238 IF(lc(i) < la(i).AND.lc(i) < lb(i)) subtria_n(i)=8
1240 ELSEIF(lc(i)<epseg)
THEN
1242 vol = n1(i)*xaf + n2(i)*yaf + n3(i)*zaf
1243 gap2 = gaps(i)+gap_m(cand_e(i))
1244 IF (gap2<epseg.AND.(lb(i)<epseg.OR.lc(i)<epseg))vol=-abs(vol)
1248 IF((lc(i) < la(i).AND.lc(i) < lb(i)).OR.izlim==1) subtria_n(i)=8
1250 ELSEIF(vol < zero)
THEN
1253 ELSEIF(lc(i)<zerom)
THEN
1255 IF((lc(i) < la(i).AND.lc(i) < lb(i)).OR.izlim==1) subtria_n(i)=8
1259 IF(izlim == -1)cycle
1269 ELSEIF(lc(i)<zero)
THEN
1279 ELSEIF(lb(i)<zero)
THEN
1290 ELSEIF(lc(i)<zero)
THEN
1299 IF(izlim==1 .OR. ispt2(i)>0)
THEN
1318 n1(i) = la(i)*nax + lb(i)*nbx + lc
1319 n2(i) = la(i)*nay + lb(i)*nby + lc(i)*ncy
1320 n3(i) = la(i)*naz + lb(i)*nbz + lc(i)*ncz
1323 nni = nqx*n1(i) + nqy*n2(i) + nqz*n3(i)
1324 ni2 = n1(i)*n1(i) + n2(i)*n2(i) + n3(i)*n3(i)
1325 IF(two*nni*nni < ni2)
THEN
1327 aaa = sqrt(ni2-nni*nni) - nni
1328 n1(i) = n1(i) + aaa*nqx
1329 n2(i) = n2(i) + aaa*nqy
1330 n3(i) = n3(i) + aaa*nqz
1331 ni2 = n1(i)*n1(i) + n2(i)*n2(i) + n3(i)*n3(i)
1333 s2 = one/
max(em30,sqrt(ni2))
1338 nni = nqx*n1(i) + nqy*n2(i) + nqz*n3(i)
1350 IF(pene(i) == zero)
THEN
1356 ix1(i) = ixx(i,ic( 7,itq))
1357 ix2(i) = ixx(i,ic( 8,itq))
1358 ix3(i) = ixx(i,ic( 9,itq))
1359 ix4(i) = ixx(i,ic(10,itq))
1360 x1(i) = xx0(i,ic( 7,itq))
1361 x2(i) = xx0(i,ic( 8,itq))
1362 x3(i) = xx0(i,ic( 9,itq))
1363 x4(i) = xx0(i,ic(10,itq))
1364 y1(i) = yy0(i,ic( 7,itq))
1365 y2(i) = yy0(i,ic( 8,itq))
1366 y3(i) = yy0(i,ic( 9,itq))
1367 y4(i) = yy0(i,ic(10,itq))
1368 z1(i) = zz0(i,ic( 7,itq))
1369 z2(i) = zz0(i,ic( 8,itq))
1370 z3(i) = zz0(i,ic( 9,itq))
1371 z4(i) = zz0(i,ic(10,itq))
1373 vx1(i) = vx(i,ic( 7,itq))
1374 vx2(i) = vx(i,ic( 8,itq))
1375 vx3(i) = vx(i,ic( 9,itq))
1376 vx4(i) = vx(i,ic(10,itq))
1377 vy1(i) = vy(i,ic( 7,itq))
1378 vy2(i) = vy(i,ic( 8,itq))
1379 vy3(i) = vy(i,ic( 9,itq))
1380 vy4(i) = vy(i,ic(10,itq))
1381 vz1(i) = vz(i,ic( 7,itq))
1382 vz2(i) = vz(i,ic( 8,itq))
1383 vz3(i) = vz(i,ic( 9,itq))
1384 vz4(i) = vz(i,ic(10,itq))
1386 IF (ix1(i) == ix2(i))
THEN
1391 ELSEIF(ix2(i) == ix3(i))
THEN
1397 ELSEIF(ix4(i) == ix1(i))
THEN
1415 IF(istep(i) /= 2)cycle
1418 xi5 = xx(i,5) - xi(i)
1419 yi5 = yy(i,5) - yi(i)
1420 zi5 = zz(i,5) - zi(i)
1422 v12 = sx125(i)*xi5 + sy125(i)*yi5 + sz125(i)*zi5
1423 v23 = sx235(i)*xi5 + sy235(i)*yi5 + sz235(i)*zi5
1424 v34 = sx345(i)*xi5 + sy345(i)*yi5 + sz345(i)*zi5
1425 v41 = sx415(i)*xi5 + sy415(i)*yi5 + sz415(i)*zi5
1427 IF(v12 < zero .and. v23 < zero .and.
1428 . v34 < zero .and. v41 < zero )
THEN
1442 dgap = dgap_nm(1,cand_e(i))
1446 aaa = one/sqrt(nx1*nx1+ny1*ny1+nz1*nz1)
1451 xo1 = xx(i,1) - dt1*vx(i,1) - dgap*nx1
1452 yo1 = yy(i,1) - dt1*vy(i,1) - dgap*ny1
1453 zo1 = zz(i,1) - dt1*vz(i,1) - dgap*nz1
1454 dgap = dgap_nm(2,cand_e(i))
1458 aaa = one/sqrt(nx1*nx1+ny1*ny1+nz1*nz1)
1463 xo2 = xx(i,2) - dt1*vx(i,2)- dgap*nx1
1464 yo2 = yy(i,2) - dt1*vy(i,2)- dgap*ny1
1465 zo2 = zz(i,2) - dt1*vz(i,2)- dgap*nz1
1466 dgap = dgap_nm(3,cand_e(i))
1470 aaa = one/sqrt(nx1*nx1+ny1*ny1+nz1*nz1)
1475 xo3 = xx(i,3) - dt1*vx(i,3)- dgap*nx1
1476 yo3 = yy(i,3) - dt1*vy(i,3)- dgap*ny1
1477 zo3 = zz(i,3) - dt1*vz(i,3)- dgap*nz1
1478 dgap = dgap_nm(4,cand_e(i))
1482 aaa = one/sqrt(nx1*nx1+ny1*ny1+nz1*nz1)
1487 xo4 = xx(i,4) - dt1*vx(i,4)- dgap*nx1
1488 yo4 = yy(i,4) - dt1*vy(i,4)- dgap*ny1
1489 zo4 = zz(i,4) - dt1*vz(i,4)- dgap*nz1
1491 xo1 = xx(i,1) - dt1*vx(i,1)
1492 yo1 = yy(i,1) - dt1*vy(i,1)
1493 zo1 = zz(i,1) - dt1*vz(i,1)
1495 xo2 = xx(i,2) - dt1*vx(i,2)
1496 yo2 = yy(i,2) - dt1*vy(i,2)
1497 zo2 = zz(i,2) - dt1*vz(i,2)
1499 xo3 = xx(i,3) - dt1*vx(i,3)
1500 yo3 = yy(i,3) - dt1*vy(i,3)
1501 zo3 = zz(i,3) - dt1*vz(i,3)
1503 xo4 = xx(i,4) - dt1*vx(i,4)
1504 yo4 = yy(i,4) - dt1*vy(i,4)
1505 zo4 = zz(i,4) - dt1*vz(i,4)
1508 xoi = xi(i) - dt1*vxi(i)
1509 yoi = yi(i) - dt1*vyi(i)
1510 zoi = zi(i) - dt1*vzi(i)
1512 IF(ixx(i,3) /= ixx(i,4))
THEN
1513 xo5 = fourth*(xo1+xo2+xo3+xo4)
1514 yo5 = fourth*(yo1+yo2+yo3+yo4)
1515 zo5 = fourth*(zo1+zo2+zo3+zo4)
1544 sox125 = y51*z52 - z51*y52
1545 soy125 = z51*x52 - x51*z52
1546 soz125 = x51*y52 - y51*x52
1547 vo12 = sox125*xi5 + soy125*yi5 + soz125*zi5
1549 sox235 = y52*z53 - z52*y53
1550 soy235 = z52*x53 - x52*z53
1551 soz235 = x52*y53 - y52*x53
1552 vo23 = sox235*xi5 + soy235*yi5 + soz235*zi5
1554 sox345 = y53*z54 - z53*y54
1555 soy345 = z53*x54 - x53*z54
1556 soz345 = x53*y54 - y53*x54
1557 vo34 = sox345*xi5 + soy345*yi5 + soz345*zi5
1559 sox415 = y54*z51 - z54*y51
1560 soy415 = z54*x51 - x54*z51
1561 soz415 = x54*y51 - y54*x51
1562 vo41 = sox415*xi5 + soy415*yi5 + soz415*zi5
1574 1 istep(i) ,subtria(i),ixx(i,3) ,ixx(i,4),
1575 1 intersect,v12 ,v23 ,v34 ,v41 ,
1576 2 vo12 ,vo23 ,vo34 ,vo41 ,xx(i,1),
1577 3 yy(i,1) ,zz(i,1),xx(i,2),yy(i,2),zz(i,2) ,
1578 4 xx(i,3 ) ,yy(i,3),zz(i,3),xx(i,4),yy(i,4) ,
1579 5 zz(i,4) ,xx(i,5),yy(i,5),zz(i,5),adt0(i) ,
1580 6 vxi(i) ,vyi(i) ,vzi(i) ,xo1 ,xo2 ,
1581 7 xo3 ,xo4 ,xo5 ,yo1 ,yo2 ,
1582 8 yo3 ,yo4 ,yo5 ,zo1 ,zo2 ,
1583 9 zo3 ,zo4 ,zo5 ,nx(i) ,ny(i) ,
1584 a nz(i) ,sx125(i),sx235(i),sx345(i),sx415(i),
1586 c sz235(i) ,sz345(i),sz415(i),xi(i) ,yi(i) ,
1587 d zi(i) ,zerom ,unp ,zeromt,unpt )
1589 xi5 = xx0(i,5) - xi(i)
1590 yi5 = yy0(i,5) - yi(i)
1591 zi5 = zz0(i,5) - zi(i)
1592 aaa = abs(sx1250(i)*xi5 + sy1250(i)*yi5 + sz1250(i)*zi5)
1593 aaa =
max(aaa,(sx2350(i)*xi5 + sy2350(i)*yi5 + sz2350(i)*zi5))
1594 aaa =
max(aaa,(sx3450(i)*xi5 + sy3450(i)*yi5 + sz3450(i)*zi5))
1595 aaa =
max(aaa,(sx4150(i)*xi5 + sy4150(i)*yi5 + sz4150(i)*zi5))
1598 1 istep(i) ,subtria(i),ixx(i,3) ,ixx(i,4),
1599 1 intersect,xx(i,1),
1600 3 yy(i,1) ,zz(i,1),xx(i,2),yy(i,2),zz(i,2) ,
1601 4 xx(i,3 ) ,yy(i,3),zz(i,3),xx(i,4),yy(i,4) ,
1602 5 zz(i,4) ,xx(i,5),yy(i,5),zz(i,5),adt0(i) ,
1603 6 xoi ,yoi ,zoi ,xo1 ,xo2 ,
1604 7 xo3 ,xo4 ,xo5 ,yo1 ,yo2 ,
1605 8 yo3 ,yo4 ,yo5 ,zo1 ,zo2 ,
1606 9 zo3 ,zo4 ,zo5 ,nx(i) ,ny(i) ,
1607 a nz(i) ,sx125(i),sx235(i),sx345(i),sx415(i),
1608 b sy125(i) ,sy235(i),sy345(i),sy415(i),sz125(i),
1609 c sz235(i) ,sz345(i),sz415(i),xi(i) ,yi(i) ,
1610 d zi(i) ,sox125 ,sox235 ,sox345 ,sox415 ,
1611 b soy125 ,soy235 ,soy345 ,soy415 ,soz125 ,
1612 c soz235 ,soz345 ,soz415 ,mvoisin(1,cand_e(i)) )
1615 IF(intersect == 0.AND.n <= nsn)
THEN
1616 IF (icont_i(n) < 0 ) ikeep = 0
1617 ELSEIF(intersect == 0)
THEN
1621 IF(ikeep == 1.AND.ishel(i)>0.AND.ispt2(i)==0.AND.inacti/=5)
THEN
1622 IF ((gaps(i)+gap_m(cand_e(i)))>tol_ints) ikeep = 0
1624 IF(ikeep == 1.AND.intersect == 0)
THEN
1626 1 istep(i) ,subtria(i),ixx(i,3) ,ixx(i,4),
1627 1 intersect,v12 ,v23 ,v34 ,v41 ,
1628 2 vo12 ,vo23 ,vo34 ,vo41 ,xx(i,1),
1629 3 yy(i,1) ,zz(i,1),xx(i,2),yy(i,2),zz(i,2) ,
1630 4 xx(i,3 ) ,yy(i,3),zz(i,3),xx(i,4),yy(i,4) ,
1631 5 zz(i,4) ,xx(i,5),yy(i,5),zz(i,5),adt0(i) ,
1632 6 xoi ,yoi ,zoi ,xo1 ,xo2 ,
1633 7 xo3 ,xo4 ,xo5 ,yo1 ,yo2 ,
1634 8 yo3 ,yo4 ,yo5 ,zo1 ,zo2 ,
1635 9 zo3 ,zo4 ,zo5 ,nx(i) ,ny(i) ,
1636 a nz(i) ,sx125(i),sx235(i),sx345(i),sx415(i),
1637 b sy125(i) ,sy235(i),sy345(i),sy415(i),sz125(i),
1638 c sz235(i) ,sz345(i),sz415(i),xi(i) ,yi(i) ,
1639 d zi(i) ,zerom ,unp )
1641 IF (tt==zero.AND.intersect>0.AND.inacti==0)
THEN
1643 icont_i(n) = -cand_e(i)
1650 icont_r(i) = intersect
1665! |\ 12 /|\ /|\ 14 /| | / 1 | 6 \
1757 IF(istep(i) /= 3)cycle
1760 nxx(i,6) =sx21140(i)
1761 nyy(i,6) =sy21140(i)
1762 nzz(i,6) =sz21140(i)
1764 nxx(i,7) =sx21140(i)
1765 nyy(i,7) =sy21140(i)
1766 nzz(i,7) =sz21140(i)
1768 nxx(i,8) =sx32150(i)
1769 nyy(i,8) =sy32150(i)
1770 nzz(i,8) =sz32150(i)
1772 nxx(i,9) =sx32150(i)
1773 nyy(i,9) =sy32150(i)
1774 nzz(i,9) =sz32150(i)
1776 nxx(i,15)=sx32150(i)
1777 nyy(i,15)=sy32150(i)
1778 nzz(i,15)=sz32150(i)
1780 nxx(i,10)=sx43160(i)
1781 nyy(i,10)=sy43160(i)
1782 nzz(i,10)=sz43160(i)
1784 nxx(i,11)=sx43160(i)
1785 nyy(i,11)=sy43160(i)
1786 nzz(i,11)=sz43160(i)
1788 nxx(i,14)=sx21140(i)
1789 nyy(i,14)=sy21140(i)
1790 nzz(i,14)=sz21140(i)
1792 nxx(i,16)=sx43160(i)
1793 nyy(i,16)=sy43160(i)
1794 nzz(i,16)=sz43160(i)
1796 nxx(i,12)=sx14170(i)
1797 nyy(i,12)=sy14170(i)
1798 nzz(i,12)=sz14170(i)
1800 nxx(i,13)=sx14170(i)
1801 nyy(i,13)=sy14170(i)
1802 nzz(i,13)=sz14170(i)
1804 nxx(i,17)=sx14170(i)
1805 nyy(i,17)=sy14170(i)
1806 nzz(i,17)=sz14170(i)
1822 bbb = sqrt(sx21140(i)*sx21140(i)
1823 + +sy21140(i)*sy21140(i)
1824 + +sz21140(i)*sz21140(i))
1825 aaa = gaps(i)+gap_nm(5,cand_e(i))
1827 xx(i,6) = xx0(i,6) + sx21140(i) * aaa
1828 yy(i,6) = yy0(i,6) + sy21140(i) * aaa
1829 zz(i,6) = zz0(i,6) + sz21140(i) * aaa
1830 aaa = gaps(i)+gap_nm(6,cand_e(i))
1832 xx(i,7) = xx0(i,7) + sx21140(i) * aaa
1833 yy(i,7) = yy0(i,7) + sy21140(i) * aaa
1834 zz(i,7) = zz0(i,7) + sz21140(i) * aaa
1836 bbb = sqrt(sx32150(i)*sx32150(i)
1837 + +sy32150(i)*sy32150(i)
1838 + +sz32150(i)*sz32150(i))
1839 aaa = gaps(i)+gap_nm(7,cand_e(i))
1841 xx(i,8) = xx0(i,8) + sx32150(i) * aaa
1842 yy(i,8) = yy0(i,8) + sy32150(i) * aaa
1843 zz(i,8) = zz0(i,8) + sz32150(i) * aaa
1844 aaa = gaps(i)+gap_nm(8,cand_e(i))
1846 xx(i,9) = xx0(i,9) + sx32150(i) * aaa
1847 yy(i,9) = yy0(i,9) + sy32150(i) * aaa
1848 zz(i,9) = zz0(i,9) + sz32150(i) * aaa
1850 IF(ixx(i,3) == ixx(i,4))
THEN
1852 xx(i,10) = xx0(i,10)
1853 yy(i,10) = yy0(i,10)
1854 zz(i,10) = zz0(i,10)
1856 xx(i,11) = xx0(i,11)
1857 yy(i,11) = yy0(i,11)
1858 zz(i,11) = zz0(i,11)
1862 bbb = sqrt(sx43160(i)*sx43160(i)
1863 + +sy43160(i)*sy43160(i)
1864 + +sz43160(i)*sz43160(i))
1865 aaa = gaps(i)+gap_nm(9,cand_e(i))
1867 xx(i,10) = xx0(i,10) + sx43160(i) * aaa
1868 yy(i,10) = yy0(i,10) + sy43160(i) * aaa
1869 zz(i,10) = zz0(i,10) + sz43160(i) * aaa
1870 aaa = gaps(i)+gap_nm(10,cand_e(i))
1872 xx(i,11) = xx0(i,11) + sx43160(i) * aaa
1873 yy(i,11) = yy0(i,11) + sy43160(i) * aaa
1874 zz(i,11) = zz0(i,11) + sz43160(i) * aaa
1877 bbb = sqrt(sx14170(i)*sx14170(i)
1878 + +sy14170(i)*sy14170(i)
1879 + +sz14170(i)*sz14170(i))
1880 aaa = gaps(i)+gap_nm(11,cand_e(i))
1882 xx(i,12) = xx0(i,12) + sx14170(i) * aaa
1883 yy(i,12) = yy0(i,12) + sy14170(i) * aaa
1884 zz(i,12) = zz0(i,12) + sz14170(i) * aaa
1885 aaa = gaps(i)+gap_nm(12,cand_e(i))
1887 xx(i,13) = xx0(i,13) + sx14170(i) * aaa
1888 yy(i,13) = yy0(i,13) + sy14170(i) * aaa
1889 zz(i,13) = zz0(i,13) + sz14170(i) * aaa
1892 IF(ixx(i,6) == ixx(i,7))
THEN
1897 xx(i,14) = fourth*(xx(i,2)+xx(i,1)+xx(i,6)+xx(i,7))
1898 yy(i,14) = fourth*(yy(i,2)+yy(i,1)+yy(i,6)+yy(i,7))
1899 zz(i,14) = fourth*(zz(i,2)+zz(i,1)+zz(i,6)+zz(i,7))
1901 IF(ixx(i,8)==ixx(i,9))
THEN
1906 xx(i,15) = fourth*(xx(i,3)+xx(i,2)+xx(i,8)+xx(i,9))
1907 yy(i,15) = fourth*(yy(i,3)+yy(i,2)+yy(i,8)+yy(i,9))
1908 zz(i,15) = fourth*(zz(i,3)+zz(i,2)+zz(i,8)+zz(i,9))
1910 IF(ixx(i,10)==ixx(i,11))
THEN
1915 xx(i,16) = fourth*(xx(i,4)+xx(i,3)+xx(i,10)+xx(i,11))
1916 yy(i,16) = fourth*(yy(i,4)+yy(i,3)+yy(i,10)+yy(i,11))
1917 zz(i,16) = fourth*(zz(i,4)+zz(i,3)+zz(i,10)+zz(i,11))
1919 IF(ixx(i,12)==ixx(i,13))
THEN
1924 xx(i,17) = fourth*(xx(i,1)+xx(i,4)+xx(i,12)+xx(i,13))
1925 yy(i,17) = fourth*(yy(i,1)+yy(i,4)+yy(i,12)+yy(i,13))
1926 zz(i,17) = fourth*(zz(i,1)+zz(i,4)+zz(i,12)+zz(i,13))
1929 x141 = xx(i,1) - xx(i,14)
1930 y141 = yy(i,1) - yy(i,14)
1931 z141 = zz(i,1) - zz(i,14)
1933 x142 = xx(i,2) - xx(i,14)
1934 y142 = yy(i,2) - yy(i,14)
1935 z142 = zz(i,2) - zz(i,14)
1937 x152 = xx(i,2) - xx(i,15)
1938 y152 = yy(i,2) - yy(i,15)
1939 z152 = zz(i,2) - zz(i,15)
1941 x153 = xx(i,3) - xx(i,15)
1942 y153 = yy(i,3) - yy(i,15)
1943 z153 = zz(i,3) - zz(i,15)
1945 x163 = xx(i,3) - xx(i,16)
1946 y163 = yy(i,3) - yy(i,16)
1947 z163 = zz(i,3) - zz(i,16)
1949 x164 = xx(i,4) - xx(i,16)
1950 y164 = yy(i,4) - yy(i,16)
1951 z164 = zz(i,4) - zz(i,16)
1953 x174 = xx(i,4) - xx(i,17)
1954 y174 = yy(i,4) - yy(i,17)
1955 z174 = zz(i,4) - zz(i,17)
1957 x171 = xx(i,1) - xx(i,17)
1958 y171 = yy(i,1) - yy(i,17)
1959 z171 = zz(i,1) - zz(i,17)
1961 IF(mvoisin(1,cand_e(i))/=0)
THEN
1962 sx2114(i) = y142*z141 - z142*y141
1963 sy2114(i) = z142*x141 - x142*z141
1964 sz2114(i) = x142*y141 - y142*x141
1966 sx2114(i) = sx125(i)
1967 sy2114(i) = sy125(i)
1968 sz2114(i) = sz125(i)
1971 IF(mvoisin(2,cand_e(i))/=0)
THEN
1972 sx3215(i) = y153*z152 - z153*y152
1973 sy3215(i) = z153*x152 - x153*z152
1974 sz3215(i) = x153*y152 - y153*x152
1976 sx3215(i) = sx235(i)
1977 sy3215(i) = sy235(i)
1978 sz3215(i) = sz235(i)
1981 IF(mvoisin(3,cand_e(i))/=0)
THEN
1982 sx4316(i) = y164*z163 - z164*y163
1983 sy4316(i) = z164*x163 - x164*z163
1984 sz4316(i) = x164*y163 - y164*x163
1986 sx4316(i) = sx345(i)
1987 sy4316(i) = sy345(i)
1988 sz4316(i) = sz345(i)
1991 IF(mvoisin(4,cand_e(i))/=0)
THEN
1992 sx1417(i) = y171*z174 - z171*y174
1993 sy1417(i) = z171*x174 - x171*z174
1994 sz1417(i) = x171*y174 - y171*x174
1996 sx1417(i) = sx415(i)
1997 sy1417(i) = sy415(i)
1998 sz1417(i) = sz415(i)
2003 xx(i,6:17) = xx0(i,6:17)
2004 yy(i,6:17) = yy0(i,6:17)
2005 zz(i,6:17) = zz0(i,6:17)
2007 sx2114(i) = sx21140(i)
2008 sy2114(i) = sy21140(i)
2009 sz2114(i) = sz21140(i)
2011 sx3215(i) = sx32150(i)
2012 sy3215(i) = sy32150(i)
2013 sz3215(i) = sz32150(i)
2015 sx4316(i) = sx43160(i)
2016 sy4316(i) = sy43160(i)
2017 sz4316(i) = sz43160(i)
2019 sx1417(i) = sx14170(i)
2020 sy1417(i) = sy14170(i)
2021 sz1417(i) = sz14170(i)
2035 IF(istep(i) /= 3)cycle
2069 it(1:3,1:20,i)=it0(1:3,1:20)
2071 IF(ixx(i,3) /= ixx(i,4))
THEN
2072 IF(mvoisin(1,cand_e(i))==0)it( 1, 1,i) = 0
2073 IF(mvoisin(2,cand_e(i))==0)it( 1, 2,i) = 0
2074 IF(mvoisin(3,cand_e(i))==0)it( 1, 3,i) = 0
2075 IF(mvoisin(4,cand_e(i))==0)it( 1, 4,i) = 0
2082 IF(mvoisin(1,cand_e(i))==0)it( 1, 1,i) = 0
2083 IF(mvoisin(2,cand_e(i))==0)it( 2, 1,i) = 0
2084 IF(mvoisin(3,cand_e(i))==0)it( 3, 1,i) = 0
2087 IF(ixx(i,6)==ixx(i,7))
THEN
2091 IF(ixx(i,8)==ixx(i,9))
THEN
2095 IF(ixx(i,10)==ixx(i,11))
THEN
2099 IF(ixx(i,12)==ixx(i,13))
THEN
2104 IF(ixx(i,3) /= ixx(i,4))
THEN
2106 IF(subtria(i)==1)
THEN
2130 IF(mvoisin(1,cand_e(i))==0)
THEN
2138 ELSEIF(subtria(i)==2)
THEN
2161 IF(mvoisin(2,cand_e(i))==0)
THEN
2169 ELSEIF(subtria(i)==3)
THEN
2192 IF(mvoisin(3,cand_e(i))==0)
THEN
2200 ELSEIF(subtria(i)==4)
THEN
2223 IF(mvoisin(4,cand_e(i))==0)
THEN
2255 IF(mvoisin(1,cand_e(i))==0)
THEN
2262 IF(mvoisin(2,cand_e(i))==0)
THEN
2269 IF(mvoisin(4,cand_e(i))==0)
THEN
2291 IF(abs(itr)==subtria_n(i))
THEN
2292 prx = nqry*(zc(i)-zb(i)) - nqrz*(yc(i)-yb(i))
2293 pry = nqrz*(xc(i)-xb(i)) - nqrx*(zc(i)-zb(i))
2294 prz = nqrx*(yc(i)-yb(i)) - nqry*(xc(i)-xb(i))
2295 vr = prx*(xi(i)-xb(i))+ pry*(yi(i)-yb(i))+ prz*(zi(i)-zb(i))
2311 ELSEIF(abs(its)==subtria_n(i))
THEN
2312 psx = nqsy*(za(i)-zc(i)) - nqsz*(ya(i)-yc(i))
2313 psy = nqsz*(xa(i)-xc(i)) - nqsx*(za(i)-zc(i))
2314 psz = nqsx*(ya(i)-yc(i)) - nqsy*(xa(i)-xc(i))
2315 vs = psx*(xi(i)-xc(i))+ psy*(yi(i)-yc(i))+ psz*(zi(i)-zc(i))
2331 ELSEIF(abs(itt)==subtria_n(i))
THEN
2332 ptx = nqty*(zb(i)-za(i)) - nqtz*(yb(i)-ya(i))
2333 pty = nqtz*(xb(i)-xa(i)) - nqtx*(zb(i)-za(i))
2334 ptz = nqtx*(yb(i)-ya(i)) - nqty*(xb(i)-xa(i))
2335 vt = ptx*(xi(i)-xa(i))+ pty*(yi(i)-ya(i))+ ptz*(zi(i)-za(i))
2364#include "lockon.inc"
2367 IF(istep(i) /= 1)pene(i) = zero
2368 IF(istep(i) < 4 .OR.istep(i) == 6)cycle
2398 aaa =
max(em30,sqrt(nqx*nqx + nqy*nqy + nqz*nqz))
2405 bbb = (xi(i)-xa(i))*nqx+(yi(i)-ya(i))*nqy+(zi(i)-za(i))*nqz
2409 IF (bbb>=zero .AND.bbb<marge025.AND.eps>em02 .AND. impl_s==0
2410 + .AND. nsne==0)
THEN
2414 pene(i) = -
min(zero,bbb)
2419 IF(icont_r(i) >0)
THEN
2421 gap2 = gaps(i)+gap_m(cand_e(i))
2422 IF (gap2 >zero) tole =
min(tole,gap2*gap2)
2423 IF(pene(i)*pene(i) > tole)
THEN
2428 IF(pene(i) == zero)
THEN
2451 ! / b--------------c \
2456 nni = (nqx*nax + nqy*nay + nqz*naz)
2457 ni2 = nax*nax + nay*nay + naz*naz
2458 IF(two*nni*nni < ni2)
THEN
2460 aaa = sqrt(ni2-nni*nni) - nni
2464 nni = (nqx*nax + nqy*nay + nqz*naz)
2476 nni = (nqx*nbx + nqy*nby + nqz*nbz)
2477 ni2 = nbx*nbx + nby*nby + nbz*nbz
2478 IF(two*nni*nni < ni2)
THEN
2480 aaa = sqrt(ni2-nni*nni) - nni
2484 nni = (nqx*nbx + nqy*nby + nqz*nbz)
2496 nni = (nqx*ncx + nqy*ncy + nqz*ncz)
2497 ni2 = ncx*ncx + ncy*ncy + ncz*ncz
2498 IF(two*nni*nni < ni2)
THEN
2500 aaa = sqrt(ni2-nni*nni) - nni
2504 nni = (nqx*ncx + nqy*ncy + nqz*ncz)
2516 nnx=(ypb-ypa)*(zpc-zpa) - (zpb-zpa)*(ypc-ypa)
2517 nny=(zpb-zpa)*(xpc-xpa) - (xpb-xpa)*(zpc-zpa)
2518 nnz=(xpb-xpa)*(ypc-ypa) - (ypb-ypa)*(xpc-xpa)
2519 aaa = nnx*nqx + nny*nqy + nnz*nqz
2560 sx = - yab*zca + zab*yca
2561 sy = - zab*xca + xab*zca
2562 sz = - xab*yca + yab*xca
2563 s2 = sx*sx+sy*sy+sz*sz
2564 sax = yib*zic - zib*yic
2565 say = zib*xic - xib*zic
2566 saz = xib*yic - yib*xic
2567 la(i) = (sx*sax+sy*say+sz*saz)/s2
2568 sbx = yic*zia - zic*yia
2569 sby = zic*xia - xic*zia
2570 sbz = xic*yia - yic*xia
2571 lb(i) = (sx*sbx+sy*sby+sz*sbz)/s2
2572 lc(i) = one - la(i) - lb(i)
2574 IF(la(i)>=zero.and.lb(i)>=zero.and.lc(i)>=zero)
THEN
2591 bbb = pene_tm(i)-pene(i)
2592 IF (bbb>tol_b.AND.la(i)<zero)
THEN
2593 pene(i) = pene_tm(i)
2597 ix1(i) = ixx(i,ic( 7,itq))
2598 ix2(i) = ixx(i,ic( 8,itq))
2599 ix3(i) = ixx(i,ic( 9,itq))
2600 ix4(i) = ixx(i,ic(10,itq))
2601 x1(i) = xx0(i,ic( 7,itq))
2602 x2(i) = xx0(i,ic( 8,itq))
2603 x3(i) = xx0(i,ic( 9,itq))
2604 x4(i) = xx0(i,ic(10,itq))
2605 y1(i) = yy0(i,ic( 7,itq))
2606 y2(i) = yy0(i,ic( 8,itq))
2607 y3(i) = yy0(i,ic( 9,itq))
2608 y4(i) = yy0(i,ic(10,itq))
2609 z1(i) = zz0(i,ic( 7,itq))
2610 z2(i) = zz0(i,ic( 8,itq))
2611 z3(i) = zz0(i,ic( 9,itq))
2612 z4(i) = zz0(i,ic(10,itq))
2614 vx1(i) = vx(i,ic( 7,itq))
2615 vx2(i) = vx(i,ic( 8,itq))
2616 vx3(i) = vx(i,ic( 9,itq))
2617 vx4(i) = vx(i,ic(10,itq))
2618 vy1(i) = vy(i,ic( 7,itq))
2619 vy2(i) = vy(i,ic( 8,itq))
2620 vy3(i) = vy(i,ic( 9,itq))
2621 vy4(i) = vy(i,ic(10,itq))
2622 vz1(i) = vz(i,ic( 7,itq))
2623 vz2(i) = vz(i,ic( 8,itq))
2624 vz3(i) = vz(i,ic( 9,itq))
2625 vz4(i) = vz(i,ic(10,itq))
2629 lc(i) = one - la(i) - lb(i)
2635 ELSEIF(lc(i)<zero)
THEN
2645 ELSEIF(lb(i)<zero)
THEN
2656 ELSEIF(lc(i)<zero)
THEN
2663 IF (ix1(i) == ix2(i))
THEN
2668 ELSEIF(ix2(i) == ix3(i))
THEN
2674 ELSEIF(ix4(i) == ix1(i))
THEN
2694 IF(la(i)<zero.and.lb(i)<zero)
THEN
2698 ELSEIF(lb(i)<zero.and.lc(i)<zero)
THEN
2702 ELSEIF(lc(i)<zero.and.la(i)<zero)
THEN
2706 ELSEIF(la(i)<zero)
THEN
2711 ELSEIF(lb(i)<zero)
THEN
2716 ELSEIF(lc(i)<zero)
THEN
2723 xpi = la(i)*xa(i) + lb(i)*xb(i) + lc(i)*xc(i)
2724 ypi = la(i)*ya(i) + lb(i)*yb(i) + lc(i)*yc(i)
2725 zpi = la(i)*za(i) + lb(i)*zb(i) + lc(i)*zc(i)
2729 pene(i) = sqrt(n1(i)**2 + n2(i)**2 + n3(i)**2)
2730 s2 = one/
max(em30,pene(i))
2738 IF ((impl_s>0 .AND. ittoff>0))
THEN
2743 n1(i) = la(i)*nax + lb(i)*nbx + lc(i)*ncx
2744 n2(i) = la(i)*nay + lb(i)*nby + lc(i)*ncy
2745 n3(i) = la(i)*naz + lb(i)*nbz + lc(i)*ncz
2753 s2 = one/
max(em30,sqrt(n1(i)**2 + n2(i)**2 + n3(i)**2))
2758 aaa = nqx*n1(i) + nqy*n2(i) + nqz*n3(i)
2759 aaa =
max(one,one/
max(aaa,em20))
2760 pene(i) = pene(i)*aaa
2769 ix1(i) = ixx(i,ic( 7,itq))
2770 ix2(i) = ixx(i,ic( 8,itq))
2771 ix3(i) = ixx(i,ic( 9,itq))
2772 ix4(i) = ixx(i,ic(10,itq))
2774 x1(i) = xx0(i,ic( 7,itq))
2775 x2(i) = xx0(i,ic( 8,itq))
2776 x3(i) = xx0(i,ic( 9,itq))
2777 x4(i) = xx0(i,ic(10,itq))
2778 y1(i) = yy0(i,ic( 7,itq))
2779 y2(i) = yy0(i,ic( 8,itq))
2780 y3(i) = yy0(i,ic( 9,itq))
2781 y4(i) = yy0(i,ic(10,itq))
2782 z1(i) = zz0(i,ic( 7,itq))
2783 z2(i) = zz0(i,ic( 8,itq))
2784 z3(i) = zz0(i,ic( 9,itq))
2785 z4(i) = zz0(i,ic(10,itq))
2787 vx1(i) = vx(i,ic( 7,itq))
2788 vx2(i) = vx(i,ic( 8,itq))
2789 vx3(i) = vx(i,ic( 9,itq))
2790 vx4(i) = vx(i,ic(10,itq))
2791 vy1(i) = vy(i,ic( 7,itq))
2792 vy2(i) = vy(i,ic( 8,itq))
2793 vy3(i) = vy(i,ic( 9,itq))
2794 vy4(i) = vy(i,ic(10,itq))
2795 vz1(i) = vz(i,ic( 7,itq))
2796 vz2(i) = vz(i,ic( 8,itq))
2797 vz3(i) = vz(i,ic( 9,itq))
2798 vz4(i) = vz(i,ic(10,itq))
2800 IF (ix1(i) == ix2(i))
THEN
2805 ELSEIF(ix2(i) == ix3(i))
THEN
2811 ELSEIF(ix4(i) == ix1(i))
THEN
2850 mglob = mseglo(cand_e(i))
2851 IF (itq==5 .or. itq==9 .or. itq==13 .or. itq==17)
THEN
2852 mglob = mvoisin(1,cand_e(i))
2854 ELSEIF(itq==6 .or. itq==10 .or. itq==14 .or. itq==18)
THEN
2855 mglob = mvoisin(2,cand_e(i))
2857 ELSEIF(itq==7 .or. itq==11 .or. itq==15 .or. itq==19)
THEN
2858 mglob = mvoisin(3,cand_e(i))
2860 ELSEIF(itq==8 .or. itq==12 .or. itq==16 .or. itq==20)
THEN
2861 mglob = mvoisin(4,cand_e(i))
2865 IF(irtlm(1,n)>0)
THEN
2875 ELSEIF((time_s(n) < pene(i)) .or.
2876 . (time_s(n) == pene(i) .and.
2877 . -irtlm(1,n) < mglob ) )
THEN
2884 IF(irtlm_fi(nin)%P(1,ii) > 0)
THEN
2885 irtlm_fi(nin)%P(1,ii) = mglob
2886 time_sfi(nin)%P(ii) = -ep20
2887 irtlm_fi(nin)%P(2,ii) = itq
2888 ELSEIF((time_sfi(nin)%P(ii) < pene(i)).or.
2889 . (time_sfi(nin)%P(ii)== pene(i).and.
2890 . -irtlm_fi(nin)%P(1,ii) < mglob) )
THEN
2891 irtlm_fi(nin)%P(2,ii) = itq
2892 irtlm_fi(nin)%P(1,ii) = -mglob
2893 time_sfi(nin)%P(ii) = pene(i)
2911! | 2 | 5 2 3 | 15 4 1 | 4 1 2 3 | | \ / |
2913! | 4 | 5 4 1 | 17 2 3 | 2 3 4 1 | | 16 |
2937 IF(istep(i) /= 6 .OR. subtria(i)>20)cycle
2940 IF (ixx(i,4)==ixx(i,3)) itq =1
2972 aaa = xib*xbc+yib*ybc+zib*zbc
2979 bbb = xib*xbd+yib*ybd+zib*zbd
2983 IF(itq ==1.AND.mvoisin(4,l)>0)
THEN
2985 ELSEIF(itq ==2.AND.mvoisin(1,l)>0)
THEN
2987 ELSEIF(itq ==3.AND.mvoisin(2,l)>0)
THEN
2989 ELSEIF(itq ==4.AND.mvoisin(3,l)>0)
THEN
2998 ELSEIF (bbb<zero)
THEN
3000 IF(itq ==1.AND.mvoisin(4,l)==0)
THEN
3004 nni = (nqy*zbd - nqz*ybd)*xib+(nqz*xbd - nqx*zbd)*yib+
3005 . (nqx*ybd - nqy*xbd)*zib
3006 IF (nni<zero.AND.bbb<aaa) subtria_n(i) = 4
3007 ELSEIF(itq ==2.AND.mvoisin(1,l)==0)
THEN
3011 nni = (nqy*zbd - nqz*ybd)*xib+(nqz*xbd - nqx*zbd)*yib+
3012 . (nqx*ybd - nqy*xbd)*zib
3013 IF (nni<zero.AND.bbb<aaa) subtria_n(i) = 1
3014 ELSEIF(itq ==3.AND.mvoisin(2,l)==0)
THEN
3018 nni = (nqy*zbd - nqz*ybd)*xib+(nqz*xbd - nqx*zbd)*yib+
3019 . (nqx*ybd - nqy*xbd)*zib
3020 IF (nni<zero.AND.bbb<aaa) subtria_n(i) = 2
3021 ELSEIF(itq ==4.AND.mvoisin(3,l)==0)
THEN
3025 nni = (nqy*zbd - nqz*ybd)*xib+(nqz*xbd - nqx*zbd)*yib+
3026 . (nqx*ybd - nqy*xbd)*zib
3027 IF (nni<zero.AND.bbb<aaa) subtria_n(i) = 3
3039 aaa = xic*xbc+yic*ybc+zic*zbc
3040 bbb = xic*xce+yic*yce+zic*zce
3042 IF (aaa<zero.AND.subtria_n(i)==0)
THEN
3043 IF(itq ==1.AND.mvoisin(2,l)>0)
THEN
3045 ELSEIF(itq ==2.AND.mvoisin(3,l)>0)
THEN
3047 ELSEIF(itq ==3.AND.mvoisin(4,l)>0)
THEN
3049 ELSEIF(itq ==4.AND.mvoisin(1,l)>0)
THEN
3058 ELSEIF (bbb>zero)
THEN
3060 IF(itq ==1.AND.mvoisin(2,l)==0)
THEN
3064 nni = (nqy*zce - nqz*yce)*xic+(nqz*xce - nqx*zce)*yic+
3065 . (nqx*yce - nqy*xce)*zic
3066 IF (nni<zero.AND.bbb>aaa) subtria_n(i) = 2
3067 ELSEIF(itq ==2.AND.mvoisin(1,l)==0)
THEN
3071 nni = (nqy*zce - nqz*yce)*xic+(nqz*xce - nqx*zce)*yic+
3072 . (nqx*yce - nqy*xce)*zic
3073 IF (nni<zero.AND.bbb>aaa) subtria_n(i) = 3
3074 ELSEIF(itq ==3.AND.mvoisin(2,l)==0)
THEN
3078 nni = (nqy*zce - nqz*yce)*xic+(nqz*xce - nqx*zce)*yic+
3079 . (nqx*yce - nqy*xce)*zic
3080 IF (nni<zero.AND.bbb>aaa) subtria_n(i) = 4
3081 ELSEIF(itq ==4.AND.mvoisin(3,l)==0)
THEN
3085 nni = (nqy*zce - nqz*yce)*xic+(nqz*xce - nqx*zce)*yic+
3086 . (nqx*yce - nqy*xce)*zic
3087 IF (nni<zero.AND.bbb>aaa) subtria_n(i) = 1
3095 IF (subtria_n(i)>0) subtria(i) = subtria_n(i)
3100 IF(istep(i) /= 6 )cycle
3103 IF (itq>20) itq = itq -20
3145 nqx = yab*zbc - zab*ybc
3146 nqy = zab*xbc - xab*zbc
3147 nqz = xab*ybc - yab*xbc
3149 nx(i) = nqy*zbc - nqz*ybc
3150 ny(i) = nqz*xbc - nqx*zbc
3151 nz(i) = nqx*ybc - nqy*xbc
3157 aaa =
max(em30,sqrt(nqx*nqx + nqy*nqy + nqz*nqz))
3163 bbb = (xi(i)-xb(i))*nqx+(yi(i)-yb(i))*nqy+(zi(i)-zb(i))*nqz
3164 pene(i) = -
min(zero,bbb)
3165 IF(pene(i) == zero)
THEN
3172 ix1(i) = ixx(i,ic( 7,itq))
3173 ix2(i) = ixx(i,ic( 8,itq))
3174 ix3(i) = ixx(i,ic( 9,itq))
3175 ix4(i) = ixx(i,ic(10,itq))
3177 x1(i) = xx0(i,ic( 7,itq))
3178 x2(i) = xx0(i,ic( 8,itq))
3179 x3(i) = xx0(i,ic( 9,itq))
3180 x4(i) = xx0(i,ic(10,itq))
3181 y1(i) = yy0(i,ic( 7,itq))
3182 y2(i) = yy0(i,ic( 8,itq))
3183 y3(i) = yy0(i,ic( 9,itq))
3184 y4(i) = yy0(i,ic(10,itq))
3185 z1(i) = zz0(i,ic( 7,itq))
3186 z2(i) = zz0(i,ic( 8,itq))
3187 z3(i) = zz0(i,ic( 9,itq))
3188 z4(i) = zz0(i,ic(10,itq))
3190 vx1(i) = vx(i,ic( 7,itq))
3191 vx2(i) = vx(i,ic( 8,itq))
3192 vx3(i) = vx(i,ic( 9,itq))
3193 vx4(i) = vx(i,ic(10,itq))
3194 vy1(i) = vy(i,ic( 7,itq))
3195 vy2(i) = vy(i,ic( 8,itq))
3196 vy3(i) = vy(i,ic( 9,itq))
3197 vy4(i) = vy(i,ic(10,itq))
3198 vz1(i) = vz(i,ic( 7,itq))
3199 vz2(i) = vz(i,ic( 8,itq))
3200 vz3(i) = vz(i,ic( 9,itq))
3201 vz4(i) = vz(i,ic(10,itq))
3208 mglob = mseglo(cand_e(i))
3209 IF (itq==5 .or. itq==9 .or. itq==13 .or. itq==17)
THEN
3210 mglob = mvoisin(1,cand_e(i))
3212 ELSEIF(itq==6 .or. itq==10 .or. itq==14 .or. itq==18)
THEN
3213 mglob = mvoisin(2,cand_e(i))
3215 ELSEIF(itq==7 .or. itq==11 .or. itq==15 .or. itq==19)
THEN
3216 mglob = mvoisin(3,cand_e(i))
3218 ELSEIF(itq==8 .or. itq==12 .or. itq==16 .or. itq==20)
THEN
3219 mglob = mvoisin(4,cand_e(i))
3222 IF (itq>8) itq = subtria_n(i)
3225 IF(irtlm(1,n)>0)
THEN
3229 ELSEIF((time_s(n) < pene(i)) .or.
3230 . (time_s(n) == pene(i) .and.
3231 . -irtlm(1,n) < mglob ) )
THEN
3238 IF(irtlm_fi(nin)%P(1,ii) > 0)
THEN
3239 irtlm_fi(nin)%P(1,ii) = mglob
3240 time_sfi(nin)%P(ii) = -ep20
3241 irtlm_fi(nin)%P(2,ii) = itq+20
3242 ELSEIF((time_sfi(nin)%P(ii) < pene(i)).or.
3243 . (time_sfi(nin)%P(ii)== pene(i).and.
3244 . -irtlm_fi(nin)%P(1,ii) < mglob) )
THEN
3245 irtlm_fi(nin)%P(2,ii) = itq+20
3246 irtlm_fi(nin)%P(1,ii) = -mglob
3247 time_sfi(nin)%P(ii) = pene(i)
3258 ce_loc(i) = cand_e(i)
3259 cn_loc(i) = cand_n(i)
3260 IF(pene(i) == 0 )
THEN
3266 IF(irtlm(1,n) > 0)
THEN
3272 IF (imconv==1) pene_old(2,n) = zero
3273 pene_old(5,n) = zero
3274 IF (imconv==1) stif_old(2,n) = zero
3277 IF(irtlm_fi(nin)%P(1,n-nsn) > 0)
THEN
3278 irtlm_fi(nin)%P(1,n-nsn)=0
3279 time_sfi(nin)%P(n-nsn) = -ep20
3280 secnd_frfi(nin)%P(4,n-nsn)= zero
3281 secnd_frfi(nin)%P(5,n-nsn)= zero
3282 secnd_frfi(nin)%P(6,n-nsn)= zero
3283 IF (imconv==1) pene_oldfi(nin)%P(2,n-nsn) = zero
3284 pene_oldfi(nin)%P(5,n-nsn) = zero
3285 IF (imconv==1) stif_oldfi(nin)%P(2,n-nsn) = zero
3290 IF (nm1(i)==zero.AND.nm2(i)==zero.AND.nm3
THEN
3296 IF (ix1(i) == ix2(i))
THEN
3297 ELSEIF(ix2(i) == ix3(i))
THEN
3299 ELSEIF(ix4(i) == ix1(i))
THEN
3303 xs = h1(i)*x1(i) + h2(i)*x2(i) + h3(i)*x3(i) + h4(i)*x4(i)
3304 ys = h1(i)*y1(i) + h2(i)*y2(i) + h3(i)*y3(i) + h4(i)*y4(i)
3305 zs = h1(i)*z1(i) + h2(i)*z2(i) + h3(i)*z3(i) + h4(i)*z4(i)
3310 aaa = xs*n1(i) + ys*n2(i) + zs*n3(i)
3314 aaa = xs**2 + ys**2 + zs**2
3315 aaa = onep01*sqrt(aaa)
3316 pmax_gap =
max(pmax_gap,aaa)
3320 pene_old(3,n) =
max(pene_old(3,n),aaa)
3322 pene_oldfi(nin)%P(3,n-nsn) =
3323 .
max(pene_oldfi(nin)%P(3,n-nsn),aaa)
3328#include "lockoff.inc"
3334 IF(pene(i) == zero)cycle
3338#include "lockon.inc"
3339 pene_old(5,n) =
max( pene(i) ,pene_old(5,n) )
3340 stif_old(1,n) =
max( stif(i) ,stif_old(1,n) )
3341#include "lockoff.inc"
3344#include "lockon.inc"
3345 pene_oldfi(nin)%P(5,jg) =
max( pene(i),pene_oldfi(nin)%P(5,jg))
3346 stif_oldfi(nin)%P(1,jg) =
max( stif(i),stif_oldfi(nin)%P(1
3347#include "lockoff.inc"
3353 IF(pene(i) == zero)cycle
3357 IF (ipen0(i)==0)
THEN
3358#include "lockon.inc"
3359 pene_old(5,n) =
max( pene(i) ,pene_old(5,n) )
3360 stif_old(1,n) =
max( stif(i
3361#include "lockoff.inc"
3365 IF (ipen0(i)==0)
THEN
3366#include "lockon.inc"
3367 pene_oldfi(nin)%P(5,jg) =
max( pene(i),pene_oldfi(nin)%P(5,jg))
3368 stif_oldfi(nin)%P(1,jg) =
max( stif(i),stif_oldfi(nin
3369#include "lockoff.inc"
3376 IF(pene(i) == zero)cycle
3380 pene_sh =
max(zero,pene(i)-pene_old(5,n))
3383 pene_sh =
max(zero,pene(i)-pene_oldfi(nin)%P(5,jg))
3390 penref(1:jlt) = zero
3391 IF (inacti==-1)
THEN
3393 IF(pene(i) == zero.OR.iknon(i)==0) cycle
3394 penref(i) = sqrt(eps2*
area(i))
3398 pene_sh = em01*pene_old(5,n)
3401 pene_sh = em01*pene_oldfi(nin)%P(5,jg)
3403 penref(i) =
max(penref(i),pene_sh)
3404 IF (iknon(i)<0)
THEN
3405 f_pene = em01*pene(i)/pene_sh
3407 IF (f_pene>two_third)
THEN
3408 fac_k =
min(twenty,six*f_pene)
3409 penref(i) = pene_sh/sqrt(fac_k)
3415 IF(pene(i) == zero.OR.iknon(i)==0) cycle
3418 penref(i) = one_fifth*sqrt(
area(i))
3419 gap2 = one_fifth*(gaps(i)+gap_m(l))
3420 IF (gap2 > em04) penref(i)=
min(penref(i),gap2)
3423 pene_sh = pene_old(5,n)
3426 pene_sh = pene_oldfi(nin)%P(5,jg)
3428 penref(i) =
max(penref(i),pene_sh)
3429 IF(iknon(i)==1) penref(i) = ten*penref(i)
3430 IF(iknon(i)>2) penref(i) = one_fifth*penref(i)