35 1 JLT ,CAND_N ,CAND_E ,ISHEL ,
38 4 VX1 ,VX2 ,VX3 ,VX4 ,VXI ,
39 5 VY1 ,VY2 ,VY3 ,VY4 ,VYI ,
40 6 VZ1 ,VZ2 ,VZ3 ,VZ4 ,VZI ,
42 9 IX2 ,IX3 ,IX4 ,NSVG ,STIF ,
43 A INACTI ,MSEGLO ,GAPS ,GAPM ,
44 B IRECT ,IRTLM ,TIME_S ,GAP_NM ,
45 C PENE_OLD,STIF_OLD,ITAB ,
46 D PENMIN,EPS0 ,ICONT_I,MARGE ,
50 L SUBTRIA ,LBS ,LCS ,LBP ,LCP ,
51 P MVOISA ,MVOISB,GAPMXL ,IBOUNDA,IBOUNDB,
52 Q VTX_BISECTOR,DRAD,DGAPLOAD)
60#include "implicit_f.inc"
70 INTEGER JLT, NIN, NSN, INACTI,
71 . CAND_N(*),CAND_E(*),NSVG(MVSIZ), ISHEL(MVSIZ)
72 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ),
73 . INTTH,MSEGLO(*),IRTLM(4,NSN), SUBTRIA(MVSIZ),
74 . mvoisa(mvsiz,4), mvoisb(mvsiz,4),ibounda(4,mvsiz),iboundb(4,mvsiz)
75 my_real ,
INTENT(IN) :: dgapload ,drad
77 . time_s(2,nsn), gaps(*), gapm(*),
78 . pene_old(5,*),stif_old(2,nsn), penmin, eps0, marge
80 . xx(mvsiz,5),yy(mvsiz,5),zz(mvsiz,5),
81 . xi(mvsiz), yi(mvsiz), zi(mvsiz), stif(mvsiz),
82 . vx1(mvsiz),vx2(mvsiz),vx3(mvsiz),vx4(mvsiz),vy1(mvsiz),
83 . vy2(mvsiz),vy3(mvsiz),vy4(mvsiz),vz1(mvsiz),vz2(mvsiz),
84 . vz3(mvsiz),vz4(mvsiz),vxi(mvsiz),vyi(mvsiz),vzi(mvsiz),
85 . nax(mvsiz,5), nay(mvsiz,5), naz(mvsiz,5),
86 . nbx(mvsiz,5), nby(mvsiz,5), nbz(mvsiz,5),
88 . lbs(mvsiz), lcs(mvsiz), lbp(mvsiz,4), lcp(mvsiz,4),
89 . gap_nm(4,mvsiz), gapmxl(mvsiz)
90 INTEGER IRECT(4,*),ITAB(*),ICONT_I(*), FAR(MVSIZ)
91 REAL*4 VTX_BISECTOR(3,2,*)
99 INTEGER I, J, K, L, N, IT, I1, I2, ITRIA(2,4),
100 . N4N, MGLOB, ITPERM(4), IA, IB, IB1, IB2, IB3, IBX, IX, IY, IZ
101 INTEGER I4N(MVSIZ), INTERSECTA(MVSIZ), INTERSECTB(MVSIZ),
102 . INTERSECA, INTERSECB, IKEEP,
103 . FARA(MVSIZ,4), FARB(MVSIZ,4), INGAPA(MVSIZ,4), INGAPB(MVSIZ,4),
104 . SUBTRIB(MVSIZ), SUBTRIX(MVSIZ), ICONT_R(MVSIZ)
106 . XIJ(MVSIZ,4), XI0V(MVSIZ), XI5, ,
107 . YIJ(MVSIZ,4), YI0V(MVSIZ), YI5, YOI5,
108 . zij(mvsiz,4), zi0v(mvsiz), zi5, zoi5,
109 . x51, x52, x53, x54,
110 . y51, y52, y53, y54,
111 . z51, z52, z53, z54,
112 . xo1, xo2, xo3, xo4, xo5, xoi,
113 . yo1, yo2, yo3, yo4, yo5, yoi,
114 . zo1, zo2, zo3, zo4, zo5, zoi,
115 . vo12, vo23, vo34, vo41, pene, penax, penbx
117 . gap_mm(mvsiz), gap, gap21,gap22,gap23,gap24,
119 . dx, dy, dz, lx, ld, lax, lbx, lcx, dmin, pmin,
121 . lap, hla, hlb(mvsiz,4), hlc(mvsiz,4),
122 . lap1,lap2,lap3,lap4,
125 . unp,zerom,eps,unpt,zeromt,aaa,
126 . pena(mvsiz,4), penb(mvsiz,4), bb(mvsiz,4),
127 . sx1,sx2,sx3,sx4,sy1,sy2,sy3,sy4,sz1,sz2,sz3,sz4,
128 . x0n(mvsiz,4), y0n(mvsiz,4), z0n(mvsiz,4),
129 . xn(mvsiz,4),yn(mvsiz,4),zn(mvsiz,4),hh,
130 . lb(mvsiz,4), lc(mvsiz,4),
131 . sida(mvsiz,4), sidb(mvsiz,4),
133 . px, py, pz, pp, p1, p2, xh, yh, zh, d1, d2, d3, vx, vy, vz,
134 . dist(mvsiz),ll,nn,pn,
136 . nx1, nx2, nx3, nx4,
137 . ny1, ny2, ny3, ny4,
138 . nz1, nz2, nz3, nz4,
139 . sox125,sox235,sox345,sox415,
140 . soy125,soy235,soy345,soy415,
141 . soz125,soz235,soz345,soz415,
143 . n2x,n2y,n2z,n2n,eps02,tole
144 DATA itria/1,2,2,3,3,4,4,1/,
146 LOGICAL :: ANY_TRIANGLE
151 eps = (two+half)/hundred
159 pena(1:jlt,1:4) = zero
160 penb(1:jlt,1:4) = zero
163 any_triangle = .false.
165 IF(ix3(i)==ix4(i))
THEN
166 any_triangle = .true.
176 x0n(i,1) = xx(i,1) - xx(i,5)
177 y0n(i,1) = yy(i,1) - yy(i,5)
178 z0n(i,1) = zz(i,1) - zz(i,5)
180 x0n(i,2) = xx(i,2) - xx(i,5)
181 y0n(i,2) = yy(i,2) - yy(i,5)
182 z0n(i,2) = zz(i,2) - zz(i,5)
184 x0n(i,3) = xx(i,3) - xx(i,5)
185 y0n(i,3) = yy(i,3) - yy(i,5)
186 z0n(i,3) = zz(i,3) - zz(i,5)
188 x0n(i,4) = xx(i,4) - xx(i,5)
189 y0n(i,4) = yy(i,4) - yy(i,5)
190 z0n(i,4) = zz(i,4) - zz(i,5)
192 gap_mm(i)=fourth*(gap_nm(1,i)+gap_nm(2,i)+gap_nm(3,i)+gap_nm(4,i))
195 IF (any_triangle)
THEN
197 IF(ix3(i)==ix4(i))
THEN
198 gap_mm(i)=gap_nm(3,i)
212 xn(i,1) = y0n(i,1)*z0n(i,2) - z0n(i,1)*y0n(i,2)
213 yn(i,1) = z0n(i,1)*x0n(i,2) - x0n(i,1)*z0n(i,2)
214 zn(i,1) = x0n(i,1)*y0n(i,2) - y0n(i,1)*x0n(i,2)
216 xn(i,2) = y0n(i,2)*z0n(i,3) - z0n(i,2)*y0n(i,3)
217 yn(i,2) = z0n(i,2)*x0n(i,3) - x0n(i,2)*z0n(i,3)
218 zn(i,2) = x0n(i,2)*y0n(i,3) - y0n(i,2)*x0n(i,3)
220 xn(i,3) = y0n(i,3)*z0n(i,4) - z0n(i,3)*y0n(i,4)
221 yn(i,3) = z0n(i,3)*x0n(i,4) - x0n(i,3)*z0n(i,4)
222 zn(i,3) = x0n(i,3)*y0n(i,4) - y0n(i,3)*x0n(i,4)
224 xn(i,4) = y0n(i,4)*z0n(i,1) - z0n(i,4)*y0n(i,1)
225 yn(i,4) = z0n(i,4)*x0n(i,1) - x0n(i,4)*z0n(i,1)
226 zn(i,4) = x0n(i,4)*y0n(i,1) - y0n(i,4)*x0n(i,1)
234 intersecta(1:jlt) = 0
235 intersectb(1:jlt) = 0
237 ingapa(1:jlt,1:4) = 0
238 ingapb(1:jlt,1:4) = 0
245 xi5 = xx(i,5) - xi(i)
246 yi5 = yy(i,5) - yi(i)
247 zi5 = zz(i,5) - zi(i)
249 v12 = xn(i,1)*xi5 + yn(i,1)*yi5 + zn(i,1)*zi5
250 v23 = xn(i,2)*xi5 + yn(i,2)*yi5 + zn(i,2)*zi5
251 v34 = xn(i,3)*xi5 + yn(i,3)*yi5 + zn(i,3)*zi5
252 v41 = xn(i,4)*xi5 + yn(i,4)*yi5 + zn(i,4)*zi5
255 IF(v12 < zero .and. v23 < zero .and.
256 . v34 < zero .and. v41 < zero )
THEN
267 xo1 = xx(i,1) - dt1*vx1(i)
268 yo1 = yy(i,1) - dt1*vy1(i)
269 zo1 = zz(i,1) - dt1*vz1(i)
271 xo2 = xx(i,2) - dt1*vx2(i)
272 yo2 = yy(i,2) - dt1*vy2(i)
273 zo2 = zz(i,2) - dt1*vz2(i)
275 xo3 = xx(i,3) - dt1*vx3(i)
276 yo3 = yy(i,3) - dt1*vy3(i)
277 zo3 = zz(i,3) - dt1*vz3(i)
279 xo4 = xx(i,4) - dt1*vx4(i)
280 yo4 = yy(i,4) - dt1*vy4(i)
281 zo4 = zz(i,4) - dt1*vz4(i)
283 xoi = xi(i) - dt1*vxi(i)
284 yoi = yi(i) - dt1*vyi(i)
285 zoi = zi(i) - dt1*vzi(i)
287 IF(ix3(i) /= ix4(i))
THEN
288 xo5 = fourth*(xo1+xo2+xo3+xo4)
289 yo5 = fourth*(yo1+yo2+yo3+yo4)
290 zo5 = fourth*(zo1+zo2+zo3+zo4)
319 sox125 = y51*z52 - z51*y52
320 soy125 = z51*x52 - x51*z52
321 soz125 = x51*y52 - y51*x52
322 vo12 = sox125*xoi5 + soy125*yoi5 + soz125*zoi5
324 sox235 = y52*z53 - z52*y53
325 soy235 = z52*x53 - x52*z53
326 soz235 = x52*y53 - y52*x53
327 vo23 = sox235*xoi5 + soy235*yoi5 + soz235*zoi5
329 sox345 = y53*z54 - z53*y54
330 soy345 = z53*x54 - x53*z54
331 soz345 = x53*y54 - y53*x54
332 vo34 = sox345*xoi5 + soy345*yoi5 + soz345*zoi5
334 sox415 = y54*z51 - z54*y51
335 soy415 = z54*x51 - x54*z51
336 soz415 = x54*y51 - y54*x51
337 vo41 = sox415*xoi5 + soy415*yoi5 + soz415*zoi5
344 1 ix3(i) ,ix4(i),interseca,
345 1 v12 ,v23 ,v34 ,v41 ,
346 2 vo12 ,vo23 ,vo34 ,vo41 ,xx(i,1),
347 3 yy(i,1) ,zz(i,1),xx(i,2),yy(i,2),zz(i,2),
348 4 xx(i,3) ,yy(i,3),zz(i,3),xx(i,4),yy(i,4),
349 5 zz(i,4) ,xx(i,5),yy(i,5),zz(i,5),
350 6 vxi(i) ,vyi(i) ,vzi(i) ,xo1 ,xo2 ,
351 7 xo3 ,xo4 ,xo5 ,yo1 ,yo2 ,
352 8 yo3 ,yo4 ,yo5 ,zo1 ,zo2 ,
353 9 zo3 ,zo4 ,zo5 ,xi(i) ,yi(i) ,
354 a zi(i) ,xoi ,yoi ,zoi ,zerom ,
360 IF(icont_i(n) < 0) ikeep = 0
365 IF(ikeep == 1.AND.interseca == 0)
THEN
367 1 ix3(i) ,ix4(i) , interseca,
368 1 v12 ,v23 ,v34 ,v41 ,
369 2 vo12 ,vo23 ,vo34 ,vo41 ,xx(i,1),
370 3 yy(i,1) ,zz(i,1),xx(i,2),yy(i,2),zz
371 4 xx(i,3) ,yy(i,3),zz(i,3),xx(i,4),yy(i,4),
372 5 zz(i,4) ,xx(i,5),yy(i,5),zz(i,5),
373 6 xoi ,yoi ,zoi ,xo1 ,xo2 ,
374 7 xo3 ,xo4 ,xo5 ,yo1 ,yo2 ,
375 8 yo3 ,yo4 ,yo5 ,zo1 ,zo2 ,
376 9 zo3 ,zo4 ,zo5 ,xi(i) ,yi(i) ,
377 a zi(i) ,zerom , unp )
378 icont_r(i) = interseca
381 intersecta(i)=interseca
384 1 ix3(i) ,ix4(i),interseca,intersecb,
386 2 vo12 ,vo23 ,vo34 ,vo41 ,xx(i,1),
387 3 yy(i,1) ,zz(i,1),xx(i,2),yy(i,2),zz(i,2),
388 4 xx(i,3) ,yy(i,3),zz(i,3),xx(i,4),yy(i,4),
389 5 zz(i,4) ,xx(i,5),yy(i,5),zz(i,5),
390 6 vxi(i) ,vyi(i) ,vzi(i) ,xo1 ,xo2 ,
391 7 xo3 ,xo4 ,xo5 ,yo1 ,yo2 ,
392 8 yo3 ,yo4 ,yo5 ,zo1 ,zo2 ,
393 9 zo3 ,zo4 ,zo5 ,xi(i) ,yi(i) ,
396 intersecta(i)=interseca
397 intersectb(i)=intersecb
407 xi0v(i) = xx(i,5) - xi(i)
408 yi0v(i) = yy(i,5) - yi(i)
409 zi0v(i) = zz(i,5) - zi(i)
411 xij(i,1) = xx(i,1) - xi(i)
412 yij(i,1) = yy(i,1) - yi(i)
413 zij(i,1) = zz(i,1) - zi(i)
415 xij(i,2) = xx(i,2) - xi(i)
416 yij(i,2) = yy(i,2) - yi(i)
417 zij(i,2) = zz(i,2) - zi(i)
419 xij(i,3) = xx(i,3) - xi(i)
420 yij(i,3) = yy(i,3) - yi(i)
421 zij(i,3) = zz(i,3) - zi(i)
423 xij(i,4) = xx(i,4) - xi(i)
424 yij(i,4) = yy(i,4) - yi(i)
425 zij(i,4) = zz(i,4) - zi(i)
427 sx1 = yi0v(i)*zij(i,1) - zi0v(i)*yij(i,1)
428 sy1 = zi0v(i)*xij(i,1) - xi0v(i)*zij(i,1)
429 sz1 = xi0v(i)*yij(i,1) - yi0v(i)*xij(i,1)
431 sx2 = yi0v(i)*zij(i,2) - zi0v(i)*yij(i,2)
432 sy2 = zi0v(i)*xij(i,2) - xi0v(i)*zij(i,2)
433 sz2 = xi0v(i)*yij(i,2) - yi0v(i)*xij(i,2)
435 sx3 = yi0v(i)*zij(i,3) - zi0v(i)*yij(i,3)
436 sy3 = zi0v(i)*xij(i,3) - xi0v(i)*zij(i,3)
437 sz3 = xi0v(i)*yij(i,3) - yi0v(i)*xij(i,3)
439 sx4 = yi0v(i)*zij(i,4) - zi0v(i)*yij(i,4)
440 sy4 = zi0v(i)*xij(i,4) - xi0v(i)*zij(i,4)
441 sz4 = xi0v(i)*yij(i,4) - yi0v(i)*xij(i,4)
444 .
max(em30,sqrt(xn(i,1)*xn(i,1)+ yn(i,1)*yn(i,1)+ zn(i,1)*zn(i,1)))
448 lb(i,1) = -(xn(i,1)*sx2 + yn(i,1)*sy2 + zn(i,1)*sz2)*nn
449 lc(i,1) = (xn(i,1)*sx1 + yn(i,1)*sy1 + zn(i,1)*sz1)*nn
452 .
max(em30,sqrt(xn(i,2)*xn(i,2)+ yn(i,2)*yn(i,2)+ zn(i,2)*zn(i,2)))
456 lb(i,2) = -(xn(i,2)*sx3 + yn(i,2)*sy3 + zn(i,2)*sz3)*nn
457 lc(i,2) = (xn(i,2)*sx2 + yn(i,2)*sy2 + zn(i,2)*sz2)*nn
460 .
max(em30,sqrt(xn(i,3)*xn(i,3)+ yn(i,3)*yn(i,3)+ zn(i,3)*zn(i,3)))
464 lb(i,3) = -(xn(i,3)*sx4 + yn(i,3)*sy4 + zn(i,3)*sz4)*nn
465 lc(i,3) = (xn(i,3)*sx3 + yn(i,3)*sy3 + zn(i,3)*sz3)*nn
468 .
max(em30,sqrt(xn(i,4)*xn(i,4)+ yn(i,4)*yn(i,4)+ zn(i,4)*zn(i,4)))
472 lb(i,4) = -(xn(i,4)*sx1 + yn(i,4)*sy1 + zn(i,4)*sz1)*nn
473 lc(i,4) = (xn(i,4)*sx4 + yn(i,4)*sy4 + zn(i,4)*sz4)*nn
483 aaa = one/
max(em30,x0n(i,1)*x0n(i,1)+y0n(i,1)*y0n(i,1)+z0n(i,1)*z0n(i,1))
484 hlc(i,1) = lc(i,1)*abs(lc(i,1))*aaa
485 hlb(i,4) = lb(i,4)*abs(lb(i,4))*aaa
486 al(i,1) = -(xi0v(i)*x0n(i,1)+yi0v(i)*y0n(i,1)+zi0v(i)*z0n(i,1))*aaa
487 al(i,1) =
max(zero,
min(one,al(i,1)))
488 aaa = one/
max(em30,x0n(i,2)*x0n(i,2)+y0n(i,2)*y0n(i,2)+z0n(i,2)*z0n(i,2))
489 hlc(i,2) = lc(i,2)*abs(lc(i,2))*aaa
490 hlb(i,1) = lb(i,1)*abs(lb(i,1))*aaa
491 al(i,2) = -(xi0v(i)*x0n(i,2)+yi0v(i)*y0n(i,2)+zi0v(i)*z0n(i,2))*aaa
492 al(i,2) =
max(zero,
min(one,al(i,2)))
493 aaa = one/
max(em30,x0n(i,3)*x0n(i,3)+y0n(i,3)*y0n(i,3)+z0n(i,3)*z0n(i,3))
494 hlc(i,3) = lc(i,3)*abs(lc(i,3))*aaa
495 hlb(i,2) = lb(i,2)*abs(lb(i,2))*aaa
496 al(i,3) = -(xi0v(i)*x0n(i,3)+yi0v(i)*y0n(i,3)+zi0v(i)*z0n(i,3))*aaa
497 al(i,3) =
max(zero,
min(one,al(i,3)))
498 aaa = one/
max(em30,x0n(i,4)*x0n(i,4)+y0n(i,4)*y0n(i,4)+z0n(i,4)*z0n(i,4))
499 hlc(i,4) = lc(i,4)*abs(lc(i,4))*aaa
500 hlb(i,3) = lb(i,3)*abs(lb(i,3))*aaa
501 al(i,4) = -(xi0v(i)*x0n(i,4)+yi0v(i)*y0n(i,4)+zi0v(i)*z0n(i,4))*aaa
502 al(i,4) =
max(zero,
min(one,al(i,4)))
508 IF(lb(i,1) < -em03 .OR. lc(i,1) < -em03 .OR.
509 . lb(i,1)+lc(i,1) > one+em03)
THEN
513 x12 = xx(i,2) - xx(i,1)
514 y12 = yy(i,2) - yy(i,1)
515 z12 = zz(i,2) - zz(i,1)
518 lap = one-lbp(i,1)-lcp(i,1)
519 aaa = one /
max(em20,x12*x12+y12*y12+z12*z12)
520 hla= lap*abs(lap) * aaa
522 + hla<=hlb(i,1).AND.hla<=hlc(i,1))
THEN
523 lbp(i,1) = (xij(i,2)*x12+yij(i,2)*y12+zij(i,2)*z12) * aaa
524 lbp(i,1) =
max(zero,
min(one,lbp(i,1)))
525 lcp(i,1) = one - lbp(i,1)
526 ELSEIF(lbp(i,1)<zero.AND.
527 + hlb(i,1)<=hlc(i,1).AND.hlb
THEN
530 ELSEIF(lcp(i,1)<zero.AND.
531 + hlc(i,1)<=hla.AND.hlc(i,1)<=hlb(i,1))
THEN
536 IF(lb(i,2) < -em03 .OR. lc(i,2) < -em03 .OR.
537 . lb(i,2)+lc(i,2) > one+em03)
THEN
541 x12 = xx(i,3) - xx(i,2)
542 y12 = yy(i,3) - yy(i,2)
543 z12 = zz(i,3) - zz(i,2)
546 lap = one-lbp(i,2)-lcp(i,2)
547 aaa = one /
max(em20,x12*x12+y12*y12+z12*z12)
548 hla= lap*abs(lap) * aaa
550 + hla<=hlb(i,2).AND.hla<=hlc(i,2))
THEN
551 lbp(i,2) = (xij(i,3)*x12+yij(i,3)*y12+zij(i,3)*z12) * aaa
552 lbp(i,2) =
max(zero,
min(one,lbp(i,2)))
553 lcp(i,2) = one - lbp(i,2)
554 ELSEIF(lbp(i,2)<zero.AND.
555 + hlb(i,2)<=hlc(i,2).AND.hlb(i,2)<=hla)
THEN
558 ELSEIF(lcp(i,2)<zero.AND.
559 + hlc(i,2)<=hla.AND.hlc(i,2)<=hlb(i,2))
THEN
564 IF(lb(i,3) < -em03 .OR. lc(i,3) < -em03 .OR.
565 . lb(i,3)+lc(i,3) > one+em03)
THEN
569 x12 = xx(i,4) - xx(i,3)
570 y12 = yy(i,4) - yy(i,3)
571 z12 = zz(i,4) - zz(i,3)
574 lap = one-lbp(i,3)-lcp(i,3)
575 aaa = one /
max(em20,x12*x12+y12*y12+z12*z12)
576 hla= lap*abs(lap) * aaa
578 + hla<=hlb(i,3).AND.hla<=hlc(i,3))
THEN
579 lbp(i,3) = (xij(i,4)*x12+yij(i,4)*y12+zij(i,4)*z12) * aaa
580 lbp(i,3) =
max(zero,
min(one,lbp(i,3)))
581 lcp(i,3) = one - lbp(i,3)
582 ELSEIF(lbp(i,3)<zero.AND.
583 + hlb(i,3)<=hlc(i,3).AND.hlb(i,3)<=hla)
THEN
586 ELSEIF(lcp(i,3)<zero.AND.
587 + hlc(i,3)<=hla.AND.hlc(i,3)<=hlb(i,3))
THEN
592 IF(lb(i,4) < -em03 .OR. lc(i,4) < -em03 .OR.
593 . lb(i,4)+lc(i,4) > one+em03)
THEN
597 x12 = xx(i,1) - xx(i,4)
598 y12 = yy(i,1) - yy(i,4)
599 z12 = zz(i,1) - zz(i,4)
602 lap = one-lbp(i,4)-lcp(i,4)
603 aaa = one /
max(em20,x12*x12+y12*y12+z12*z12)
604 hla= lap*abs(lap) * aaa
606 + hla<=hlb(i,4).AND.hla<=hlc(i,4))
THEN
607 lbp(i,4) = (xij(i,1)*x12+yij(i,1)*y12+zij(i,1)*z12) * aaa
608 lbp(i,4) =
max(zero,
min(one,lbp(i,4)))
609 lcp(i,4) = one - lbp(i,4)
610 ELSEIF(lbp(i,4)<zero.AND.
611 + hlb(i,4)<=hlc(i,4).AND.hlb(i,4)<=hla)
THEN
614 ELSEIF(lcp(i,4)<zero.AND.
615 + hlc(i,4)<=hla.AND.hlc(i,4)<=hlb(i,4))
THEN
624 lap1 = one-lbp(i,1)-lcp(i,1)
625 xp =lap1*xx(i,5)+lbp(i,1)*xx(i,1) + lcp(i,1)*xx(i,2)
626 yp =lap1*yy(i,5)+lbp(i,1)*yy(i,1) + lcp(i,1)*yy(i,2)
627 zp =lap1*zz(i,5)+lbp(i,1)*zz(i,1) + lcp(i,1)*zz(i,2)
631 dd(i,1) =dx*dx+dy*dy+dz*dz
633 lap2 = one-lbp(i,2)-lcp(i,2)
634 xp =lap2*xx(i,5)+lbp(i,2)*xx(i,2) + lcp(i,2)*xx(i,3)
635 yp =lap2*yy(i,5)+lbp(i,2)*yy(i,2) + lcp(i,2)*yy(i,3)
636 zp =lap2*zz(i,5)+lbp(i,2)*zz(i,2) + lcp(i,2)*zz(i,3)
640 dd(i,2) =dx*dx+dy*dy+dz*dz
642 lap3 = one-lbp(i,3)-lcp(i,3)
643 xp =lap3*xx(i,5)+lbp(i,3)*xx(i,3) + lcp(i,3)*xx(i,4)
644 yp =lap3*yy(i,5)+lbp(i,3)*yy(i,3) + lcp(i,3)*yy(i,4)
645 zp =lap3*zz(i,5)+lbp(i,3)*zz(i,3) + lcp(i,3)*zz(i,4)
649 dd(i,3) =dx*dx+dy*dy+dz*dz
651 lap4 = one-lbp(i,4)-lcp(i,4)
652 xp =lap4*xx(i,5)+lbp(i,4)*xx(i,4) + lcp(i,4)*xx(i,1)
653 yp =lap4*yy(i,5)+lbp(i,4)*yy(i,4) + lcp(i,4)*yy(i,1)
654 zp =lap4*zz(i,5)+lbp(i,4)*zz(i,4) + lcp(i,4)*zz(i,1)
658 dd(i,4) =dx*dx+dy*dy+dz*dz
661 gap =
min(
max(drad,gaps(i)+lap1*gap_mm(i)+lbp(i,1)*gap_nm(1,i)+lcp(i,1)*gap_nm(2,i)+dgapload),
662 .
max(drad,gapmxl(i)+dgapload))
664 bb(i,1) =((xx(i,5)-xi(i))*xn(i,1)+(yy(i,5)-yi(i))*yn(i,1)+(zz(i,5)-zi(i))*zn(i,1))
666 gap =
min(
max(drad,gaps(i)+lap2*gap_mm(i)+lbp(i,2)*gap_nm(2,i)+lcp(i,2)*gap_nm(3,i)+dgapload),
667 .
max(drad,gapmxl(i)+dgapload))
669 bb(i,2) =((xx(i,5)-xi(i))*xn(i,2)+(yy(i,5)-yi(i))*yn(i,2)+(zz(i,5)-zi(i))*zn(i,2))
671 gap =
min(
max(drad,gaps(i)+lap3*gap_mm(i)+lbp(i,3)*gap_nm(3,i)+lcp(i,3)*gap_nm(4,i)+dgapload),
672 .
max(drad,gapmxl(i)+dgapload))
674 bb(i,3) =((xx(i,5)-xi(i))*xn(i,3)+(yy(i,5)-yi(i))*yn(i,3)+(zz(i,5)-zi(i))*zn(i,3))
676 gap =
min(
max(drad,gaps(i)+lap4*gap_mm(i)+lbp(i,4)*gap_nm(4,i)+lcp(i,4)*gap_nm(1,i)+dgapload),
677 .
max(drad,gapmxl(i)+dgapload))
679 bb(i,4) =((xx(i,5)-xi(i))*xn(i,4)+(yy(i,5)-yi(i))*yn(i,4)+(zz(i,5)-zi(i))*zn(i,4))
681 IF(dd(i,1) <= gap21)
THEN
682 IF(bb(i,1) <= zero .AND. intersecta(i) /= 1)
THEN
685 IF(bb(i,1) >= zero .AND. intersectb(i) /= 1)
THEN
689 IF(dd(i,2) <= gap22)
THEN
690 IF(bb(i,2) <= zero .AND. intersecta(i) /= 1)
THEN
693 IF(bb(i,2) >= zero .AND. intersectb(i) /= 1)
THEN
697 IF(dd(i,3) <= gap23)
THEN
698 IF(bb(i,3) <= zero .AND. intersecta(i) /= 1)
THEN
701 IF(bb(i,3) >= zero .AND. intersectb(i) /= 1)
THEN
705 IF(dd(i,4) <= gap24)
THEN
706 IF(bb(i,4) <= zero .AND. intersecta(i) /= 1)
THEN
709 IF(bb(i,4) >= zero .AND. intersectb(i) /= 1)
THEN
723 IF(stif(i) <= zero)cycle
725 IF(ix3(i)/=ix4(i))
THEN
727 dmin=
min(dd(i,1),dd(i,2),dd(i,3),dd(i,4))
730 IF(dd(i,it) <= onep03*dmin)
THEN
733 lax = one-lb(i,it)-lc(i,it)
736 IF(lbx >= zero .AND. lcx >= zero)
THEN
740 lx =
max(zero,dd(i,it)-bb(i,it)*bb(i,it))
753 IF(intersecta(i)/=0.OR.ingapa(i,it)/=0)subtria(i)=it
754 IF (ishel(i) /= 0)
THEN
755 IF(intersectb(i)/=0.OR.ingapb(i,it)/=0)subtrib(i)=it
760 IF(intersecta(i)/=0.OR.ingapa(i,1)/=0)
THEN
764 IF (ishel(i) /= 0)
THEN
765 IF(intersectb(i)/=0.OR.ingapb(i,1)/=0)
THEN
776#include "vectorize.inc"
787 lap = one-lbp(i,it)-lcp(i,it)
788 gap =
min(
max(drad,gaps(i)+lap*gap_mm(i)+lbp(i,it)*gap_nm(i1,i)+lcp(i,it)*gap_nm(i2,i))+dgapload,
789 .
max(drad,gapmxl(i)+dgapload))
791 IF(bb(i,it) > zero)
THEN
794 pena(i,it)=
max(zero,gap+bb(i,it))
796 pena(i,it)=
max(zero,gap-sqrt(dd(i,it)))
800 IF(icont_r(i) >0)
THEN
801 aaa =
max(em30,x0n(i,it)*x0n(i,1)+y0n(i,it)*y0n(i,it)+z0n(i,it)*z0n(i,it))
803 IF (gap >zero) tole =
min(tole,gap*gap)
804 IF(pena(i,it)*pena(i,it) > tole)
THEN
814#include "vectorize.inc"
822 IF(pena(i,it)==zero) cycle
827 xh=xi(i)+bb(i,it)*xn(i,it)
828 yh=yi(i)+bb(i,it)*yn(i,it)
829 zh=zi(i)+bb(i,it)*zn(i,it)
831 IF(ix3(i) /= ix4(i))
THEN
835 IF(mvoisa(i,it)==0)
THEN
837 IF( (xh-xx(i,i1))* nax(i,it)+
838 . (yh-yy(i,i1))* nay(i,it)+
839 . (zh-zz(i,i1))* naz(i,it) >= gaps(i)) fara(i,it) =3
841 ELSEIF((ib1 /= 0 .AND. ib2 == 0).OR.
853 xh=xi(i)+bb(i,it)*xn(i,it)
854 yh=yi(i)+bb(i,it)*yn(i,it)
855 zh=zi(i)+bb(i,it)*zn(i,it)
857 IF(vtx_bisector(1,1,ibx)/=zero.OR.
858 . vtx_bisector(2,1,ibx)/=zero.OR.
859 . vtx_bisector(3,1,ibx)/=zero.OR.
860 . vtx_bisector(1,2,ibx)/=zero.OR.
861 . vtx_bisector(2,2,ibx)/=zero.OR.
862 . vtx_bisector(3,2,ibx)/=zero)
THEN
863 p1 = (xh-xx(i,ix))* vtx_bisector(1,1,ibx)+
864 . (yh-yy(i,ix))* vtx_bisector(2,1,ibx)+
865 . (zh-zz(i,ix))* vtx_bisector(3,1,ibx)
866 p2 = (xh-xx(i,ix))* vtx_bisector(1,2,ibx)+
867 . (yh-yy(i,ix))* vtx_bisector(2,2,ibx)+
868 . (zh-zz(i,ix))* vtx_bisector(3,2,ibx)
869 IF(p1 >= gaps(i) .AND. p2 >= gaps(i)) fara(i,it) =3
874 nn = one/
max(em20,sqrt(vx*vx+vy*vy+vz*vz))
875 pn = ((xh-xx(i,ix))*vx+(yh-yy(i,ix))*vy+(zh-zz(i,ix))*vz)*nn
876 IF(pn >= gaps(i)) fara(i,it) =3
882 IF(ingapa(i,it) == 1 .AND. (fara(i,it)==1 .OR. bb(i,it) <= zero))
THEN
885 x12=xx(i,i2)-xx(i,i1)
886 y12=yy(i,i2)-yy(i,i1)
887 z12=zz(i,i2)-zz(i,i1)
890 px = z12*nay(i,it)-y12*naz(i,it)
891 py = x12*naz(i,it)-z12*nax(i,it)
892 pz = y12*nax(i,it)-x12*nay(i,it)
893 pp = px*px+py*py+pz*pz
895 ll = xij(i,i1)*xij(i,i1)+yij(i,i1)*yij(i,i1)+zij(i,i1)*zij(i,i1)
897 sida(i,it)=-(xij(i,i1)*px+yij(i,i1)*py+zij(i,i1)*pz)*sqrt(one/
max(em30,ll*pp))
898 IF(sida(i,it) < -zep01) fara(i,it) =2
906 d1=(xh-xx(i,1))* nax(i,1)+
907 . (yh-yy(i,1))* nay(i,1)+
908 . (zh-zz(i,1))* naz(i,1)
909 d2=(xh-xx(i,2))* nax(i,2)+
910 . (yh-yy(i,2))* nay(i,2)+
911 . (zh-zz(i,2))* naz(i,2)
912 d3=(xh-xx(i,3))* nax(i,4)+
913 . (yh-yy(i,3))* nay(i,4)+
914 . (zh-zz(i,3))* naz(i,4)
916 IF( (mvoisa(i,1) == 0 .AND. d1 >= gaps(i)).OR.
917 . (mvoisa(i,2) == 0 .AND. d2 >= gaps(i)).OR.
918 . (mvoisa(i,4) == 0 .AND. d3 >= gaps(i)) )
THEN
922 ELSEIF((ib1/=0 .AND. ib2==0 .AND. ib3==0).OR.
923 . (ib2/=0 .AND. ib3==0 .AND. ib1==0).OR.
924 . (ib3/=0 .AND. ib1==0 .AND. ib2==0))
THEN
941 IF(vtx_bisector(1,1,ibx)/=zero.OR.
942 . vtx_bisector(2,1,ibx)/=zero.OR.
943 . vtx_bisector(3,1,ibx)/=zero.OR.
944 . vtx_bisector(1,2,ibx)/=zero.OR.
945 . vtx_bisector(2,2,ibx)/=zero.OR.
946 . vtx_bisector(3,2,ibx)/=zero)
THEN
947 p1 = (xh-xx(i,ix))* vtx_bisector(1,1,ibx)+
948 . (yh-yy(i,ix))* vtx_bisector(2,1,ibx)+
949 . (zh-zz(i,ix))* vtx_bisector(3,1,ibx)
950 p2 = (xh-xx(i,ix))* vtx_bisector(1,2,ibx)+
951 . (yh-yy(i,ix))* vtx_bisector(2,2,ibx)+
952 . (zh-zz(i,ix))* vtx_bisector(3,2,ibx)
953 IF(p1 >= gaps(i) .AND. p2 >= gaps(i)) fara(i,it) =3
955 vx = two*xx(i,ix)-(xx(i,iy)+xx(i,iz))
956 vy = two*yy(i,ix)-(yy(i,iy)+yy(i,iz))
957 vz = two*zz(i,ix)-(zz(i,iy)+zz(i,iz))
958 nn = one/
max(em20,sqrt(vx*vx+vy*vy+vz*vz))
959 pn = ((xh-xx(i,ix))*vx+(yh-yy(i,ix))*vy+(zh-zz(i,ix))*vz)*nn
960 IF(pn >= gaps(i)) fara(i,it) =3
965 IF(ingapa(i,it) == 1 .AND. (fara(i,it)==1 .OR. bb(i,it) <= zero))
THEN
969 IF( mvoisa(i,1) /= 0 )
THEN
976 px = z12*nay(i,1)-y12*naz(i,1)
977 py = x12*naz(i,1)-z12*nax(i,1)
978 pz = y12*nax(i,1)-x12*nay(i,1)
979 pp = px*px+py*py+pz*pz
981 ll = xij(i,1)*xij(i,1)+yij(i,1)*yij(i,1)+zij(i,1)*zij(i,1)
983 sida(i,1)=-(xij(i,1)*px+yij(i,1)*py+zij(i,1)*pz)*sqrt(one/
max(em30,ll*pp))
984 IF(sida(i,1) < -zep01) fara(i,it) =2
988 IF( mvoisa(i,2) /= 0 )
THEN
997 px = z12*nay(i,2)-y12*naz(i,2)
998 py = x12*naz(i,2)-z12*nax(i,2)
999 pz = y12*nax(i,2)-x12*nay(i,2)
1000 pp = px*px+py*py+pz*pz
1002 ll = xij(i,2)*xij(i,2)+yij(i,2)*yij(i,2)+zij(i,2)*zij(i,2)
1004 sida(i,2)=-(xij(i,2)*px+yij(i,2)*py+zij(i,2)*pz)*sqrt(one/
max(em30,ll*pp))
1005 IF(sida(i,2) < -zep01) fara(i,it) =2
1009 IF( mvoisa(i,4) /= 0 )
THEN
1017 px = z12*nay(i,4)-y12*naz(i,4)
1018 py = x12*naz(i,4)-z12*nax(i,4)
1019 pz = y12*nax(i,4)-x12*nay(i,4)
1020 pp = px*px+py*py+pz*pz
1022 ll = xij(i,3)*xij(i,3)+yij(i,3)*yij(i,3)+zij(i,3)*zij(i,3)
1024 sida(i,4)=-(xij(i,3)*px+yij(i,3)*py+zij(i,3)*pz)*sqrt(one/
max(em30,ll*pp))
1025 IF(sida(i,4) < -zep01) fara(i,it) =2
1031 IF(fara(i,it)==2 .AND. intersecta(i)==0) pena(i,it)=zero
1032 IF(fara(i,it)==3) pena(i,it)=zero
1038#include "vectorize.inc"
1049 lap = one-lbp(i,it)-lcp(i,it)
1050 gap =
min(
max(drad,gaps(i)+lap*gap_mm(i)+lbp(i,it)*gap_nm(i1,i)+lcp(i,it)*gap_nm(i2,i)+dgapload),
1051 .
max(drad,gapmxl(i)+dgapload))
1053 IF(bb(i,it) < zero)
THEN
1056 penb(i,it)=
max(zero,gap-bb(i,it))
1058 penb(i,it)=
max(zero,gap-sqrt(dd(i,it)))
1065#include "vectorize.inc"
1073 IF(penb(i,it)==zero) cycle
1078 xh=xi(i)+bb(i,it)*xn(i,it)
1079 yh=yi(i)+bb(i,it)*yn(i,it)
1080 zh=zi(i)+bb(i,it)*zn(i,it)
1082 IF(ix3(i) /= ix4(i))
THEN
1087 IF(mvoisb(i,it)==0)
THEN
1089 IF( (xh-xx(i,i1))* nbx(i,it)+
1090 . (yh-yy(i,i1))* nby(i,it)+
1091 . (zh-zz(i,i1))* nbz(i,it) >= gaps(i)) farb(i,it) =3
1093 ELSEIF((ib1 /= 0 .AND. ib2 == 0).OR.
1094 . (ib2 /= 0 .AND. ib1 == 0))
THEN
1103 xh=xi(i)+bb(i,it)*xn(i,it)
1104 yh=yi(i)+bb(i,it)*yn(i,it)
1105 zh=zi(i)+bb(i,it)*zn(i,it)
1107 IF(vtx_bisector(1,1,ibx)/=zero.OR.
1108 . vtx_bisector(2,1,ibx)/=zero.OR.
1109 . vtx_bisector(3,1,ibx)/=zero.OR.
1110 . vtx_bisector(1,2,ibx)/=zero.OR.
1111 . vtx_bisector(2,2,ibx)/=zero.OR.
1112 . vtx_bisector(3,2,ibx)/=zero)
THEN
1113 p1 = (xh-xx(i,ix))* vtx_bisector(1,1,ibx)+
1114 . (yh-yy(i,ix))* vtx_bisector(2,1,ibx)+
1115 . (zh-zz(i,ix))* vtx_bisector(3,1,ibx)
1116 p2 = (xh-xx(i,ix))* vtx_bisector(1,2,ibx)+
1117 . (yh-yy(i,ix))* vtx_bisector(2,2,ibx)+
1118 . (zh-zz(i,ix))* vtx_bisector(3,2,ibx)
1119 IF(p1 >= gaps(i) .AND. p2 >= gaps(i)) farb(i,it) =3
1124 nn = one/
max(em20,sqrt(vx*vx+vy*vy+vz*vz))
1125 pn = ((xh-xx(i,ix))*vx+(yh-yy(i,ix))*vy+(zh-zz(i,ix))*vz)*nn
1126 IF(pn >= gaps(i)) farb(i,it) =3
1132 IF(ingapb(i,it) == 1 .AND. (farb(i,it)==1 .OR. bb(i,it) >= zero))
THEN
1136 x12=xx(i,i2)-xx(i,i1)
1137 y12=yy(i,i2)-yy(i,i1)
1138 z12=zz(i,i2)-zz(i,i1)
1141 px = z12*nby(i,it)-y12*nbz(i,it)
1142 py = x12*nbz(i,it)-z12*nbx(i,it)
1143 pz = y12*nbx(i,it)-x12*nby(i,it)
1144 pp = px*px+py*py+pz*pz
1146 ll = xij(i,i1)*xij(i,i1)+yij(i,i1)*yij(i,i1)+zij(i,i1)*zij(i,i1)
1148 sidb(i,it)= (xij(i,i1)*px+yij(i,i1)*py+zij(i,i1)*pz)*sqrt(one/
max(em30,ll*pp))
1149 IF(sidb(i,it) < -zep01) farb(i,it) =2
1157 d1=(xh-xx(i,1))* nbx(i,1)+
1158 . (yh-yy(i,1))* nby(i,1)+
1159 . (zh-zz(i,1))* nbz(i,1)
1160 d2=(xh-xx(i,2))* nbx(i,2)+
1161 . (yh-yy(i,2))* nby(i,2)+
1162 . (zh-zz(i,2))* nbz(i,2)
1163 d3=(xh-xx(i,3))* nbx(i,4)+
1164 . (yh-yy(i,3))* nby(i,4)+
1165 . (zh-zz(i,3))* nbz(i,4)
1167 IF( (mvoisb(i,1) == 0 .AND. d1 >= gaps(i)).OR.
1168 . (mvoisb(i,2) == 0 .AND. d2 >= gaps(i)).OR.
1169 . (mvoisb(i,4) == 0 .AND. d3 >= gaps(i)) )
THEN
1173 ELSEIF((ib1/=0 .AND. ib2==0 .AND. ib3==0).OR.
1174 . (ib2/=0 .AND. ib3==0 .AND. ib1==0).OR.
1175 . (ib3/=0 .AND. ib1==0 .AND. ib2==0))
THEN
1177 ibx=
max(ib1,ib2,ib3)
1192 IF(vtx_bisector(1,1,ibx)/=zero.OR.
1193 . vtx_bisector(2,1,ibx)/=zero.OR.
1194 . vtx_bisector(3,1,ibx)/=zero.OR.
1195 . vtx_bisector(1,2,ibx)/=zero.OR.
1196 . vtx_bisector(2,2,ibx)/=zero.OR.
1197 . vtx_bisector(3,2,ibx)/=zero)
THEN
1198 p1 = (xh-xx(i,ix))* vtx_bisector(1,1,ibx)+
1199 . (yh-yy(i,ix))* vtx_bisector(2,1,ibx)+
1200 . (zh-zz(i,ix))* vtx_bisector(3,1,ibx)
1201 p2 = (xh-xx(i,ix))* vtx_bisector(1,2,ibx)+
1202 . (yh-yy(i,ix))* vtx_bisector(2,2,ibx)+
1203 . (zh-zz(i,ix))* vtx_bisector(3,2,ibx)
1204 IF(p1 >= gaps(i) .AND. p2 >= gaps(i)) farb(i,it) =3
1206 vx = two*xx(i,ix)-(xx(i,iy)+xx(i,iz))
1207 vy = two*yy(i,ix)-(yy(i,iy)+yy(i,iz))
1208 vz = two*zz(i,ix)-(zz(i,iy)+zz(i,iz))
1209 nn = one/
max(em20,sqrt(vx*vx+vy*vy+vz*vz))
1210 pn = ((xh-xx(i,ix))*vx+(yh-yy(i,ix))*vy+(zh-zz(i,ix))*vz)*nn
1211 IF(pn >= gaps(i)) farb(i,it) =3
1216 IF(ingapb(i,it) == 1 .AND. (farb(i,it)==1 .OR. bb(i,it) >= zero))
THEN
1220 IF( mvoisb(i,1) /= 0 )
THEN
1227 px = z12*nby(i,1)-y12*nbz(i,1)
1228 py = x12*nbz(i,1)-z12*nbx(i,1)
1229 pz = y12*nbx(i,1)-x12*nby(i,1)
1230 pp = px*px+py*py+pz*pz
1232 ll = xij(i,1)*xij(i,1)+yij(i,1)*yij(i,1)+zij(i,1)*zij(i,1)
1234 sidb(i,1)= (xij(i,1)*px+yij(i,1)*py+zij(i,1)*pz)*sqrt(one/
max(em30,ll*pp))
1235 IF(sidb(i,1) < -zep01) farb(i,it) =2
1239 IF( mvoisb(i,2) /= 0 )
THEN
1246 px = z12*nby(i,2)-y12*nbz(i,2)
1247 py = x12*nbz(i,2)-z12*nbx(i,2)
1248 pz = y12*nbx(i,2)-x12*nby(i,2)
1249 pp = px*px+py*py+pz*pz
1251 ll = xij(i,2)*xij(i,2)+yij(i,2)*yij(i,2)+zij(i,2)*zij(i,2)
1253 sidb(i,2)= (xij(i,2)*px+yij(i,2)*py+zij(i,2)*pz)*sqrt(one/
max(em30,ll*pp))
1254 IF(sidb(i,2) < -zep01) farb(i,it) =2
1258 IF( mvoisb(i,4) /= 0 )
THEN
1265 px = z12*nby(i,4)-y12*nbz(i,4)
1266 py = x12*nbz(i,4)-z12*nbx(i,4)
1267 pz = y12*nbx(i,4)-x12*nby(i,4)
1268 pp = px*px+py*py+pz*pz
1270 ll = xij(i,3)*xij(i,3)+yij(i,3)*yij(i,3)+zij(i,3)*zij(i,3)
1272 sidb(i,4)= (xij(i,3)*px+yij(i,3)*py+zij(i,3)*pz)*sqrt(one/
max(em30,ll*pp))
1273 IF(sidb(i,4) < -zep01) farb(i,it) =2
1279 IF(farb(i,it)==2 .AND. intersectb(i)==0) penb(i,it)=zero
1280 IF(farb(i,it)==3) penb(i,it)=zero
1286 IF(stif(i) <= zero)cycle
1290 IF(ia/=0)penax=pena(i,ia)
1294 IF(ib/=0)penbx=penb(i,ib)
1296 IF(penax > penbx .AND. ia > 0)
THEN
1305 ELSEIF(penbx > penax .AND. ib > 0)
THEN
1316 subtria(i)=itperm(it)
1341#include "lockon.inc"
1343 IF( time_s(1,n) < pene .OR.
1344 * (time_s(1,n) == pene .AND. -irtlm(1,n) < mglob ))
THEN
1347 irtlm(3,n) = cand_e(i)
1348 irtlm(4,n) = ispmd+1
1365#include "lockoff.inc"
1367#include "lockon.inc"
1368 IF( time_sfi(nin)%P(2*(n-nsn-1)+1) < pene .OR.
1369 * (time_sfi(nin)%P(2*(n-nsn-1)+1) == pene .AND. -irtlm_fi(nin)%P(1,n-nsn) < mglob ))
THEN
1370 irtlm_fi(nin)%P(1,n-nsn) = -mglob
1371 irtlm_fi(nin)%P(2,n-nsn) = it
1372 irtlm_fi(nin)%P(3,n-nsn) = cand_e(i)
1373 irtlm_fi(nin)%P(4,n-nsn) = ispmd+1
1374 time_sfi(nin)%P(2*(n-nsn-1)+1) = pene
1383#include "lockoff.inc"