31 1 JLT ,CAND_S,CAND_M,H1S ,H2S ,
32 2 H1M ,H2M ,NX ,NY ,NZ ,
33 3 STIF ,N1 ,N2 ,M1 ,M2 ,
34 4 XXS1 ,XXS2 ,XYS1 ,XYS2 ,
35 5 XZS1 ,XZS2 ,XXM1 ,XXM2 ,XYM1 ,
36 6 XYM2 ,XZM1 ,XZM2 ,VXS1 ,VXS2 ,
37 7 VYS1 ,VYS2 ,VZS1 ,VZS2 ,VXM1 ,
38 8 VXM2 ,VYM1 ,VYM2 ,VZM1 ,VZM2 ,
39 9 MS1 ,MS2 ,MM1 ,MM2 ,GAPV )
43#include
"implicit_f.inc"
52 INTEGER CAND_S(*),CAND_M(*),
53 . N1(*),(*),M1(*),M2(*)
55 . H1S(*),H2S(*),H1M(*),H2M(*),NX(*),NY(*),NZ(*),STIF(*),
56 . (*) ,XXS2(*) ,XYS1(*) ,XYS2(*) ,
57 . XZS1(*) ,XZS2(*) ,XXM1(*) ,XXM2(*) ,XYM1(*),
58 . XYM2(*) ,XZM1(*) ,XZM2(*) ,VXS1(*) ,VXS2(*),
59 . VYS1(*) ,VYS2(*) ,VZS1(*) ,VZS2(*) ,VXM1(*),
60 . vxm2(*) ,vym1(*) ,vym2(*) ,vzm1(*) ,vzm2(*),
61 . ms1(*) ,ms2(*) ,mm1(*) ,mm2(*), gapv(*
68 . XS12,YS12,ZS12,XM12,YM12,ZM12,XA,XB,
69 . XS2,XM2,XSM,XS2M2,YS2,YM2,YSM,YS2M2,ZS2,ZM2,ZSM,ZS2M2,
121 xs12 = xxs2(i)-xxs1(i)
122 ys12 = xys2(i)-xys1(i)
123 zs12 = xzs2(i)-xzs1(i)
124 xs2 = xs12*xs12 + ys12*ys12 + zs12*zs12
125 xm12 = xxm2(i)-xxm1(i)
126 ym12 = xym2(i)-xym1(i)
127 zm12 = xzm2(i)-xzm1(i)
128 xm2 = xm12*xm12 + ym12*ym12 + zm12*zm12
129 xsm = - (xs12*xm12 + ys12*ym12 + zs12*zm12
130 xs2m2 = xxm2(i)-xxs2(i)
131 ys2m2 = xym2(i)-xys2(i)
132 zs2m2 = xzm2(i)-xzs2(i)
134 xa = xs12*xs2m2 + ys12*ys2m2 + zs12*zs2m2
135 xb = -xm12*xs2m2 - ym12*ys2m2 - zm12*zs2m2
136 det = xm2*xs2 - xsm*xsm
139 h1s(i) = (xb*xsm-xa*xm2) / det
140 h1m(i) = (xa*xsm-xb*xs2) / det
147 ELSEIF(h1m(i)>one)
THEN
149 h1s(i) = -(xa + xsm) / xs2
155 ELSEIF(h1s(i)>one)
THEN
157 h1m(i) = -(xb + xsm) / xm2
160 h1m(i) =
min(one,h1m(i))
161 h1m(i) =
max(zero,h1m(i))
168 nx(i) = h1s(i)*xxs1(i) + h2s(i)*xxs2(i)
169 . - h1m(i)*xxm1(i) - h2m(i)*xxm2(i)
170 ny(i) = h1s(i)*xys1(i) + h2s(i)*xys2(i)
171 . - h1m(i)*xym1(i) - h2m(i)*xym2(i)
172 nz(i) = h1s(i)*xzs1(i) + h2s(i)*xzs2(i)
173 . - h1m(i)*xzm1(i) - h2m(i)*xzm2(i)
185 1 JLT ,CAND_S,CAND_M,STIF ,GAPV ,
186 2 NX ,NY ,NZ ,JLT_NEW)
190#include "implicit_f.inc"
194#include "mvsiz_p.inc"
199 INTEGER CAND_S(*),CAND_M(*)
201 . NX(*),NY(*),NZ(*),STIF(*), GAPV(*)
207 . PENE2(MVSIZ),GAP2,FAC
211 gap2 = fac*gapv(i)*gapv(i)
212 pene2(i) = gap2 - nx(i)*nx(i) - ny(i)*ny(i) - nz(i)*nz(i)
213 pene2(i) =
max(zero,pene2(i))
216 IF(pene2(i)/=zero.AND.stif(i)/=zero)
THEN
217 jlt_new = jlt_new + 1
218 cand_s(jlt_new) = cand_s(i)
219 cand_m(jlt_new) = cand_m(i)
subroutine i11dstk3(jlt, cand_s, cand_m, h1s, h2s, h1m, h2m, nx, ny, nz, stif, n1, n2, m1, m2, xxs1, xxs2, xys1, xys2, xzs1, xzs2, xxm1, xxm2, xym1, xym2, xzm1, xzm2, vxs1, vxs2, vys1, vys2, vzs1, vzs2, vxm1, vxm2, vym1, vym2, vzm1, vzm2, ms1, ms2, mm1, mm2, gapv)