30 SUBROUTINE i7keg3(JLT ,A ,V ,MS ,FRIC ,
31 1 NX1 ,NX2 ,NX3 ,NX4 ,NY1 ,
32 2 NY2 ,NY3 ,NY4 ,NZ1 ,NZ2 ,
33 3 NZ3 ,NZ4 ,LB1 ,LB2 ,LB3 ,
34 4 LB4 ,LC1 ,LC2 ,LC3 ,LC4 ,
35 5 P1 ,P2 ,P3 ,P4 ,NIN ,
36 6 IX1 ,IX2 ,IX3 ,IX4 ,NSVG ,
37 7 GAPV ,INACTI ,CAND_P ,INDEX ,STIGLO ,
38 8 STIF ,VXI ,VYI ,VZI ,MSI ,
39 9 KI11 ,KI12 ,KJ11 ,KJ12 ,KK11 ,
40 A KK12 ,KL11 ,KL12 ,OFF ,SCALK ,
42 2 X1 ,X2 ,X3 ,X4 ,Y1 ,
43 3 Y2 ,Y3 ,Y4 ,Z1 ,Z2 ,
44 4 Z3 ,Z4 ,XI ,YI ,ZI )
52#include "implicit_f.inc"
67 INTEGER JLT, INACTI,NIN,LREM
68 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), (MVSIZ),
69 . NSVG(MVSIZ), (MVSIZ),ICURV(3)
71 . A(3,*), MS(*), V(3,*),
72 . STIGLO,CAND_P(*),FRIC,OFF(*),SCALK,
73 . VXI(MVSIZ),VYI(MVSIZ),VZI(MVSIZ),MSI()
75 . NX1(MVSIZ), NX2(MVSIZ), NX3(MVSIZ), NX4(MVSIZ),
76 . NY1(MVSIZ), NY2(MVSIZ), NY3(MVSIZ), NY4(MVSIZ),
77 . NZ1(MVSIZ), NZ2(MVSIZ), NZ3(), NZ4(MVSIZ),
78 . LB1(MVSIZ), LB2(MVSIZ), LB3(MVSIZ), LB4(MVSIZ),
79 . LC1(MVSIZ), LC2(MVSIZ), LC3(MVSIZ), LC4(MVSIZ),
80 . P1(MVSIZ), P2(MVSIZ), P3(MVSIZ), P4(MVSIZ), STIF(MVSIZ),
81 . gapv(mvsiz),ki11(3,3,mvsiz),kj11(3,3,mvsiz),
82 . kk11(3,3,mvsiz),kl11(3,3,mvsiz),ki12(3,3,mvsiz),
83 . kj12(3,3,mvsiz),kk12(3,3,mvsiz),kl12(3,3,mvsiz)
85 . x1(mvsiz),y1(mvsiz),z1(mvsiz),
86 . x2(mvsiz),y2(mvsiz),z2(mvsiz),
87 . x3(mvsiz),y3(mvsiz),z3(mvsiz),
88 . x4(mvsiz),y4(mvsiz),z4(mvsiz),
89 . xi(mvsiz),yi(mvsiz),zi(mvsiz),x(3,*)
93 INTEGER I, J, K, ISF, NN, NS, JLTF, NE
95 . N1(MVSIZ), N2(MVSIZ), N3(MVSIZ), PENE(),
96 . H1(MVSIZ), H2(MVSIZ), H3(MVSIZ), (MVSIZ),
97 . VX(MVSIZ), VY(MVSIZ), VZ(MVSIZ), VN(MVSIZ),
98 . s2,fac,facf, h0, la1, la2, la3, la4,fact(mvsiz),
99 . d1,d2,d3,d4,a1,a2,a3,a4,kn(4,mvsiz),q(3,3,mvsiz)
101 . prec,q11,q12,q13,q22,q23,q33,h00
102 . kt1,kt2,kt3,kt4,q1,q2
106 . ANX,ANY,ANZ,AAN,AAX,AAY,AAZ ,RR,RS,AAA
117 IF (imp_int7==3)
THEN
120 p1(i) = fourth*gapv(i)
122 p2(i) = fourth*gapv(i)
124 p3(i) = fourth*gapv(i)
126 p4(i) = fourth*gapv(i)
127 a1 = p1(i)/
max(em20,d1)
128 a2 = p2(i)/
max(em20,d2)
129 a3 = p3(i)/
max(em20,d3)
130 a4 = p4(i)/
max(em20,d4)
131 n1(i) = a1*nx1(i) + a2*nx2(i) + a3*nx3(i) + a4*nx4(i)
132 n2(i) = a1*ny1(i) + a2*ny2(i) + a3*ny3(i) + a4*ny4(i)
133 n3(i) = a1*nz1(i) + a2*nz2(i) + a3*nz3(i) + a4*nz4(i)
139 p1(i) =
max(zero, gapv(i) - d1)
142 p2(i) =
max(zero, gapv(i) - d2)
145 p3(i) =
max(zero, gapv(i) - d3)
148 p4(i) =
max(zero, gapv(i) - d4)
150 a1 = p1(i)/
max(em20,d1)
151 a2 = p2(i)/
max(em20,d2)
152 a3 = p3(i)/
max(em20,d3)
153 a4 = p4(i)/
max(em20,d4)
154 n1(i) = a1*nx1(i) + a2*nx2(i) + a3*nx3(i) + a4*nx4(i)
155 n2(i) = a1*ny1(i) + a2*ny2(i) + a3*ny3(i) + a4*ny4(i)
156 n3(i) = a1*nz1(i) + a2*nz2(i) + a3*nz3(i) + a4*nz4(i)
161 IF(ix3(i)/=ix4(i))
THEN
162 pene(i) =
max(p1(i),p2(i),p3(i),p4(i))
164 la1 = one - lb1(i) - lc1(i)
165 la2 = one - lb2(i) - lc2(i)
166 la3 = one - lb3(i) - lc3(i)
167 la4 = one - lb4(i) - lc4(i)
170 . (p1(i)*la1 + p2(i)*la2 + p3(i)*la3 + p4(i)*la4)
171 h1(i) = h0 + p1(i) * lb1(i) + p4(i) * lc4(i)
172 h2(i) = h0 + p2(i) * lb2(i) + p1(i) * lc1(i)
173 h3(i) = h0 + p3(i) * lb3(i) + p2(i) * lc2(i)
174 h4(i) = h0 + p4(i) * lb4(i) + p3(i) * lc3(i)
175 h00 = one/
max(em20,h1(i) + h2(i) + h3(i) + h4(i))
188 h3(i) = one - lb1(i) - lc1(i)
207 rr =
min(rr , rx*rx + ry*ry + rz*rz)
211 rr =
min(rr , rx*rx + ry*ry + rz*rz)
215 rr =
min(rr , rx*rx + ry*ry + rz*rz)
216 IF(ix3(i)/=ix4(i))
THEN
220 rr =
min(rr , rx*rx + ry*ry + rz*rz)
225 rs = sqrt(rx*rx + ry*ry + rz*rz)
227 IF(rs-rr+gapv(i)<0.)
THEN
230 ELSEIF(rs-rr+gapv(i)<pene(i))
THEN
231 pene(i) = rs-rr+gapv(i)
237 ELSEIF(icurv(1)==2)
THEN
249 aan = 1. / (anx*anx + any*any + anz*anz)
254 aaa = (aax*anx + aay*any + aaz*anz) * aan
258 rr =
min(rr , rx*rx + ry*ry + rz*rz)
262 aaa = (aax*anx + aay*any + aaz*anz) * aan
266 rr =
min(rr , rx*rx + ry*ry + rz*rz)
270 aaa = (aax*anx + aay*any + aaz*anz) * aan
274 rr =
min(rr , rx*rx + ry*ry + rz*rz)
275 IF(ix3(i)/=ix4(i))
THEN
279 aaa = (aax*anx + aay*any + aaz*anz) * aan
283 rr =
min(rr , rx*rx + ry*ry + rz*rz)
288 aaa = (aax*anx + aay*any + aaz*anz) * aan
292 rs = sqrt(rx*rx + ry*ry + rz*rz)
294 IF(rs-rr+gapv(i)<0.)
THEN
297 ELSEIF(rs-rr+gapv(i)<pene(i))
THEN
298 pene(i) = rs-rr+gapv(i)
304 ELSEIF(icurv(1) == 3)
THEN
309 s2 = one/
max(em30,sqrt(n1(i)**2 + n2(i)**2 + n3(i)**2))
316 vx(i) = vxi(i) - h1(i)*v(1,ix1(i)) - h2(i)*v(1,ix2(i))
317 . - h3(i)*v(1,ix3(i)) - h4(i)*v(1,ix4(i))
318 vy(i) = vyi(i) - h1(i)*v(2,ix1(i)) - h2(i)*v(2,ix2(i))
319 . - h3(i)*v(2,ix3(i)) - h4(i)*v(2,ix4(i))
320 vz(i) = vzi(i) - h1(i)*v(3,ix1(i)) - h2(i)*v(3,ix2(i))
321 . - h3(i)*v(3,ix3(i)) - h4(i)*v(3,ix4(i))
322 vn(i) = n1(i)*vx(i) + n2(i)*vy(i) + n3(i)*vz(i)
324 h0 = -.25*(h1(i) - h2(i) + h3(i) - h4(i))
325 h0 =
min(h0,h2(i),h4(i))
326 h0 =
max(h0,-h1(i),-h3(i))
327 IF(ix3(i)==ix4(i))h0 = zero
338 pene(i)=
max(zero,pene(i)-cand_p(index(i)))
339 IF( pene(i)==zero ) stif(i) = zero
340 gapv(i)=gapv(i)-cand_p(index(i))
342 ELSE IF(inacti==6)
THEN
344 cand_p(index(i))=
min(cand_p(index(i)),
345 . ( (one-fiveem2)*cand_p(index(i))
346 . +fiveem2*(pene(i)+fiveem2*(gapv(i)-pene
347 pene(i)=
max(zero,pene(i)-cand_p(index(i)))
348 IF( pene(i)==zero ) stif(i) = zero
349 gapv(i)=gapv(i)-cand_p(index(i))
357 stif(i) = half*stif(i)
358 ELSEIF(stif(i)/=zero)
THEN
362 ELSEIF(imp_int7==1)
THEN
364 fac = gapv(i)/
max( em10,( gapv(i)-pene(i) ) )
365 IF( (gapv(i)-pene(i))/gapv(i) <prec .AND.
366 . stif(i)>0. ) stif(i) = 0.
368 stif(i) = half*stif(i) * fac
369 ELSEIF(stif(i)/=zero)
THEN
376 fac = gapv(i)/
max( em10,( gapv(i)-pene(i) ) )
377 IF( (gapv(i)-pene(i))/gapv(i) <prec .AND.
378 . stif(i)>0. ) stif(i) = 0.
380 stif(i) = half*stif(i) * fac
381 ELSEIF(stif(i)/=zero)
THEN
382 stif(i) = stiglo * fac
386 stif(i) = stif(i) * gapv(i) /
387 .
max((gapv(i) - pene(i)),em10)
393 vtx = vx(i) -vn(i)*n1(i)
394 vty = vy(i) -vn(i)*n2(i)
395 vtz = vz(i) -vn(i)*n3(i)
396 vt = vtx*vtx+vty*vty+vtz*vtz
405 q(2,1,i)=q(3,2,i)*q(1,3,i)-q(3,3,i)*q(1,2,i)
406 q(2,2,i)=q(3,3,i)*q(1,1,i)-q(3,1,i)*q(1,3,i)
407 q(2,3,i)=q(3,1,i)*q(1,2,i)-q(3,2,i)*q(1,1,i)
423 ELSEIF (vn(i)<zero)
THEN
451 ki11(1,1,i)=kn(1,i)*q11
452 ki11(1,2,i)=kn(1,i)*q12
453 ki11(1,3,i)=kn(1,i)*q13
454 ki11(2,2,i)=kn(1,i)*q22
455 ki11(2,3,i)=kn(1,i)*q23
456 ki11(3,3,i)=kn(1,i)*q33
457 kj11(1,1,i)=kn(2,i)*q11
458 kj11(1,2,i)=kn(2,i)*q12
459 kj11(1,3,i)=kn(2,i)*q13
460 kj11(2,2,i)=kn(2,i)*q22
461 kj11(2,3,i)=kn(2,i)*q23
462 kj11(3,3,i)=kn(2,i)*q33
463 kk11(1,1,i)=kn(3,i)*q11
464 kk11(1,2,i)=kn(3,i)*q12
465 kk11(1,3,i)=kn(3,i)*q13
466 kk11(2,2,i)=kn(3,i)*q22
467 kk11(2,3,i)=kn(3,i)*q23
468 kk11(3,3,i)=kn(3,i)*q33
469 kl11(1,1,i)=kn(4,i)*q11
470 kl11(1,2,i)=kn(4,i)*q12
471 kl11(1,3,i)=kn(4,i)*q13
472 kl11(2,2,i)=kn(4,i)*q22
473 kl11(2,3,i)=kn(4,i)*q23
474 kl11(3,3,i)=kn(4,i)*q33
480 IF (fact(i)>zero)
THEN
481 q1 =q(1,j,i)*q(1,k,i)
482 q2 =q(2,j,i)*q(2,k,i)
485 ki11(j,k,i)=ki11(j,k,i)+kt1
487 kj11(j,k,i)=kj11(j,k,i)+kt2
489 kk11(j,k,i)=kk11(j,k,i)+kt3
491 kl11(j,k,i)=kl11(j,k,i)+kt4
500 ki12(j,k,i)=-ki11(j,k,i)
501 kj12(j,k,i)=-kj11(j,k,i)
502 kk12(j,k,i)=-kk11(j,k,i)
503 kl12(j,k,i)=-kl11(j,k,i)
510 ki12(k,j,i)=-ki11(j,k,i)
511 kj12(k,j,i)=-kj11(j,k,i)
512 kk12(k,j,i)=-kk11(j,k,i)
513 kl12(k,j,i)=-kl11(j,k,i)
522 IF (
intp_d <= 0 .AND. nspmd > 1)
THEN
552 1 N1 ,N2 ,N3 ,H1 ,H2 ,
553 2 H3 ,H4 ,IX1 ,IX2 ,IX3 ,
554 2 IX4 ,INDEX ,VXI ,VYI ,VZI ,
555 3 MSI ,DXI ,DYI ,DZI ,STIF ,
564#include "implicit_f.inc"
568#include "mvsiz_p.inc"
573 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ),
576 . A(3,*), MS(*), V(3,*),D(3,*),
577 . FRIC,SCALK,DXI(MVSIZ),DYI(MVSIZ),DZI(MVSIZ),
578 . H1(MVSIZ), H2(MVSIZ), H3(MVSIZ), H4(MVSIZ),
579 . vxi(mvsiz),vyi(mvsiz),vzi(mvsiz),msi(mvsiz)
581 . n1(mvsiz), n2(mvsiz), n3(mvsiz),stif(mvsiz)
587 . VX(), VY(MVSIZ), VZ(MVSIZ), VN(MVSIZ),
588 . DX(MVSIZ), DY(MVSIZ), DZ(MVSIZ), DN(MVSIZ),
589 . DNI(MVSIZ),DT(MVSIZ), DTI(MVSIZ),
590 . S2,FACN(MVSIZ),, FACT(MVSIZ)
592 . fx,fy,fz,fn,ft,fni,fti,vtx,vty,vtz,vt,
593 . t1(mvsiz), t2(mvsiz), t3(mvsiz)
597 vx(i) = vxi(i) - h1(i)*v(1,ix1(i)) - h2(i)*v(1,ix2(i))
598 . - h3(i)*v(1,ix3(i)) - h4(i)*v(1,ix4(i))
599 vy(i) = vyi(i) - h1(i)*v(2,ix1(i)) - h2(i)*v(2,ix2(i))
600 . - h3(i)*v(2,ix3(i)) - h4(i)*v(2,ix4(i))
601 vz(i) = vzi(i) - h1(i)*v(3,ix1(i)) - h2(i)*v(3,ix2(i))
602 . - h3(i)*v(3,ix3(i)) - h4(i)*v(3,ix4(i))
603 vn(i) = n1(i)*vx(i) + n2(i)*vy(i) + n3(i)*vz(i)
604 dx(i) = dxi(i) - h1(i)*d(1,ix1(i)) - h2(i)*d(1,ix2(i))
605 . - h3(i)*d(1,ix3(i)) - h4(i)*d(1,ix4(i))
606 dy(i) = dyi(i) - h1(i)*d(2,ix1(i)) - h2(i)*d(2,ix2(i))
607 . - h3(i)*d(2,ix3(i)) - h4(i)*d(2,ix4(i))
608 dz(i) = dzi(i) - h1(i)*d(3,ix1(i)) - h2(i)*d(3,ix2(i))
609 . - h3(i)*d(3,ix3(i)) - h4(i)*d(3,ix4(i))
610 dn(i) = n1(i)*dx(i) + n2(i)*dy(i) + n3(i)*dz(i)
611 dni(i) = n1(i)*dxi(i) + n2(i)*dyi(i) + n3(i)*dzi(i)
615 vtx = vx(i) -vn(i)*n1(i)
616 vty = vy(i) -vn(i)*n2(i)
617 vtz = vz(i) -vn(i)*n3(i)
618 vt = vtx*vtx+vty*vty+vtz*vtz
633 dt(i) = t1(i)*dx(i) + t2(i)*dy(i) + t3(i)*dz(i)
634 dti(i) = t1(i)*dxi(i) + t2(i)*dyi(i) + t3(i)*dzi(i)
646 ELSEIF (vn(i)<zero)
THEN
651 fact(i)=facn(i)*fact(i)
656 fact(i)=facn(i)*fact(i)
665 IF (fact(i)/=zero)
THEN
671 a(1,ix1(i))=a(1,ix1(i))+fx*h1(i)
672 a(1,ix2(i))=a(1,ix2(i))+fx*h2(i)
673 a(1,ix3(i))=a(1,ix3(i))+fx*h3(i)
674 a(1,ix4(i))=a(1,ix4(i))+fx*h4(i)
675 a(2,ix1(i))=a(2,ix1(i))+fy*h1(i)
676 a(2,ix2(i))=a(2,ix2(i))+fy*h2(i)
677 a(2,ix3(i))=a(2,ix3(i))+fy*h3(i)
678 a(2,ix4(i))=a(2,ix4(i))+fy*h4(i)
679 a(3,ix1(i))=a(3,ix1(i))+fz*h1(i)
680 a(3,ix2(i))=a(3,ix2(i))+fz*h2(i)
681 a(3,ix3(i))=a(3,ix3(i))+fz*h3(i)
682 a(3,ix4(i))=a(3,ix4(i))+fz*h4(i)
688 ffi(1,ni)=ffi(1,ni)+fni*n1(i)
689 ffi(2,ni)=ffi(2,ni)+fni*n2(i)
690 ffi(3,ni)=ffi(3,ni)+fni*n3(i)
691 IF (fact(i)/=zero)
THEN
693 ffi(1,ni)=ffi(1,ni)+fti*t1(i)
694 ffi(2,ni)=ffi(2,ni)+fti*t2(i)
695 ffi(3,ni)=ffi(3,ni)+fti*t3(i)
709 1 NX1 ,NX2 ,NX3 ,NX4 ,NY1 ,
710 2 NY2 ,NY3 ,NY4 ,NZ1 ,NZ2 ,
711 3 NZ3 ,NZ4 ,LB1 ,LB2 ,LB3 ,
712 4 LB4 ,LC1 ,LC2 ,LC3 ,LC4 ,
713 5 P1 ,P2 ,P3 ,P4 ,NIN ,
714 6 IX1 ,IX2 ,IX3 ,IX4 ,NSVG ,
715 7 GAPV ,INACTI ,CAND_P ,INDEX ,STIGLO ,
716 8 STIF ,VXI ,VYI ,VZI ,MSI ,
717 F X ,IRECT ,CE_LOC ,MFROT ,IFQ ,
718 G FROT_P ,CAND_FX,CAND_FY,CAND_FZ,ALPHA0,
719 H DXI ,DYI ,DZI ,D ,SCALK ,
720 2 X1 ,X2 ,X3 ,X4 ,Y1 ,
721 3 Y2 ,Y3 ,Y4 ,Z1 ,Z2 ,
722 4 Z3 ,Z4 ,XI ,YI ,ZI ,
731#include "implicit_f.inc"
732#include "comlock.inc"
736#include "mvsiz_p.inc"
740#include "com08_c.inc"
741#include "scr05_c.inc"
742#include "impl1_c.inc"
746 INTEGER JLT, INACTI, NIN, MFROT, IFQ, IRECT(4, *)
747 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ),
748 . CE_LOC(MVSIZ),INDEX(MVSIZ),NSVG(MVSIZ)
750 . STIGLO,CAND_P(*),FROT_P(*), X(3,*),A(3,*), MS(*), V(3,*),
751 . CAND_FX(*),CAND_FY(*),CAND_FZ(*),ALPHA0,FRIC,SCALK,ICURV(3)
753 . NX1(MVSIZ), NX2(MVSIZ), NX3(MVSIZ), NX4(MVSIZ),
754 . NY1(MVSIZ), NY2(MVSIZ), NY3(MVSIZ), NY4(MVSIZ),
755 . NZ1(MVSIZ), NZ2(MVSIZ), NZ3(MVSIZ), NZ4(MVSIZ),
756 . LB1(MVSIZ), LB2(MVSIZ), LB3(MVSIZ), LB4(MVSIZ),
757 . LC1(MVSIZ), LC2(MVSIZ), LC3(MVSIZ), LC4(MVSIZ),
758 . P1(MVSIZ), P2(MVSIZ), P3(MVSIZ), P4(MVSIZ), STIF(MVSIZ),
759 . GAPV(MVSIZ),VXI(MVSIZ),VYI(MVSIZ),VZI(MVSIZ),MSI(MVSIZ),
760 . DXI(MVSIZ),DYI(MVSIZ),DZI(MVSIZ),D(3,*)
762 . x1(mvsiz),y1(mvsiz),z1(mvsiz),
763 . x2(mvsiz),y2(mvsiz),z2(mvsiz),
764 . x3(mvsiz),y3(mvsiz),z3(mvsiz),
765 . x4(mvsiz),y4(mvsiz),z4(mvsiz),
766 . xi(mvsiz),yi(mvsiz),zi(mvsiz)
770 INTEGER I, IG, IE, , NS
772 . FXI(MVSIZ), FYI(MVSIZ), FZI(MVSIZ), FNI(MVSIZ),
773 . FXT(MVSIZ),FYT(MVSIZ),FZT(MVSIZ),STIF0(MVSIZ),
774 . N1(MVSIZ), N2(MVSIZ), N3(MVSIZ), PENE(MVSIZ),
775 . H1(MVSIZ), H2(MVSIZ), H3(MVSIZ), H4(MVSIZ),
776 . VX(MVSIZ), VY(MVSIZ), VZ(MVSIZ), VN(MVSIZ),XMU(MVSIZ),
777 . DX(MVSIZ), DY(MVSIZ), DZ(MVSIZ), DN0(MVSIZ),
779 . VNX, VNY, VNZ, AA,S2,
780 . v2, fac,
alpha,beta,
781 . fx, fy, fz,ft,fn,ftn,
782 . h0, la1, la2, la3, la4,d1,d2,d3,d4,a1,a2,a3,a4,
783 . vv,ax1,ax2,ay1,ay2,az1,az2,ax,ay,az,t1,t2,t3,dxt,
784 .
area,p,vv1,vv2,dmu,h00 ,a0x,a0y,a0z,rx,ry,rz,
785 . anx,any,anz,aan,aax,aay,aaz ,rr,rs,aaa ,gap2 ,pene2,prec
796 IF(inacti==5.OR.inacti==6)
THEN
798 IF(stif(i)==zero)
THEN
809 d1 =
max(zero, gap2 - p1(i))
810 d2 =
max(zero, gap2 - p2(i))
811 d3 =
max(zero, gap2 - p3(i))
812 d4 =
max(zero, gap2 - p4(i))
813 pene2 =
max(d1,d2,d3,d4)
814 IF (pene2<=zero) stif(i) = zero
821 p1(i) =
max(zero, gapv(i) - d1)
824 p2(i) =
max(zero, gapv(i) - d2)
827 p3(i) =
max(zero, gapv(i) - d3)
830 p4(i) =
max(zero, gapv(i) - d4)
832 a1 = p1(i)/
max(em20,d1)
833 a2 = p2(i)/
max(em20,d2)
834 a3 = p3(i)/
max(em20,d3)
835 a4 = p4(i)/
max(em20,d4)
836 n1(i) = a1*nx1(i) + a2*nx2(i) + a3*nx3(i) + a4*nx4(i)
837 n2(i) = a1*ny1(i) + a2*ny2(i) + a3*ny3(i) + a4*ny4(i)
838 n3(i) = a1*nz1(i) + a2*nz2(i) + a3*nz3(i) + a4*nz4(i)
842 IF(ix3(i)/=ix4(i))
THEN
843 pene(i) =
max(p1(i),p2(i),p3(i),p4(i))
845 la1 = one - lb1(i) - lc1(i)
846 la2 = one - lb2(i) - lc2(i)
847 la3 = one - lb3(i) - lc3(i)
848 la4 = one - lb4(i) - lc4(i)
851 . (p1(i)*la1 + p2(i)*la2 + p3(i)*la3 + p4(i)*la4)
852 h1(i) = h0 + p1(i) * lb1(i) + p4(i) * lc4(i)
853 h2(i) = h0 + p2(i) * lb2(i) + p1(i) * lc1(i)
854 h3(i) = h0 + p3(i) * lb3(i) + p2(i) * lc2(i)
855 h4(i) = h0 + p4(i) * lb4(i) + p3(i) * lc3(i)
856 h00 = one/
max(em20,h1(i) + h2(i) + h3(i) + h4(i))
869 h3(i) = one - lb1(i) - lc1(i)
888 rr =
min(rr , rx*rx + ry*ry + rz*rz)
892 rr =
min(rr , rx*rx + ry*ry + rz*rz)
896 rr =
min(rr , rx*rx + ry*ry + rz*rz)
897 IF(ix3(i)/=ix4(i))
THEN
901 rr =
min(rr , rx*rx + ry*ry + rz*rz)
906 rs = sqrt(rx*rx + ry*ry + rz*rz)
908 IF(rs-rr+gapv(i)<0.)
THEN
911 ELSEIF(rs-rr+gapv(i)<pene(i))
THEN
912 pene(i) = rs-rr+gapv(i)
918 ELSEIF(icurv(1)==2)
THEN
930 aan = 1. / (anx*anx + any*any + anz*anz)
935 aaa = (aax*anx + aay*any + aaz*anz) * aan
939 rr =
min(rr , rx*rx + ry*ry + rz*rz)
943 aaa = (aax*anx + aay*any + aaz*anz) * aan
947 rr =
min(rr , rx*rx + ry*ry + rz*rz)
951 aaa = (aax*anx + aay*any + aaz*anz) * aan
955 rr =
min(rr , rx*rx + ry*ry + rz*rz)
956 IF(ix3(i)/=ix4(i))
THEN
960 aaa = (aax*anx + aay*any + aaz*anz) * aan
964 rr =
min(rr , rx*rx + ry*ry + rz*rz)
969 aaa = (aax*anx + aay*any + aaz*anz) * aan
973 rs = sqrt(rx*rx + ry*ry + rz*rz)
975 IF(rs-rr+gapv(i)<0.)
THEN
978 ELSEIF(rs-rr+gapv(i)<pene(i))
THEN
979 pene(i) = rs-rr+gapv(i)
985 ELSEIF(icurv(1) == 3)
THEN
990 s2 = one/
max(em30,sqrt(n1(i)**2 + n2(i)**2 + n3(i)**2))
997 dx(i) = dxi(i) - h1(i)*d(1,ix1(i)) - h2(i)*d(1,ix2(i))
998 . - h3(i)*d(1,ix3(i)) - h4(i)*d(1,ix4(i))
999 dy(i) = dyi(i) - h1(i)*d(2,ix1(i)) - h2(i)*d(2,ix2(i))
1000 . - h3(i)*d(2,ix3(i)) - h4(i)*d(2,ix4(i))
1001 dz(i) = dzi(i) - h1(i)*d(3,ix1(i)) - h2(i)*d(3,ix2(i))
1002 . - h3(i)*d(3,ix3(i)) - h4(i)*d(3,ix4(i))
1003 dn0(i) = n1(i)*dx(i) + n2(i)*dy(i) + n3(i)*dz(i)
1007 vx(i) = vxi(i) - h1(i)*v(1,ix1(i)) - h2(i)*v(1,ix2(i))
1008 . - h3(i)*v(1,ix3(i)) - h4(i)*v(1,ix4(i))
1009 vy(i) = vyi(i) - h1(i)*v(2,ix1(i)) - h2(i)*v(2,ix2(i))
1010 . - h3(i)*v(2,ix3(i)) - h4(i)*v(2,ix4(i))
1011 vz(i) = vzi(i) - h1(i)*v(3,ix1(i)) - h2(i)*v(3,ix2(i))
1012 . - h3(i)*v(3,ix3(i)) - h4(i)*v(3,ix4(i))
1013 vn(i) = n1(i)*vx(i) + n2(i)*vy(i) + n3(i)*vz(i)
1015 h0 = -.25*(h1(i) - h2(i) + h3(i) - h4(i))
1016 h0 =
min(h0,h2(i),h4(i))
1017 h0 =
max(h0,-h1(i),-h3(i))
1018 IF(ix3(i)==ix4(i))h0 = zero
1030 cand_p(index(i))=
min(cand_p(index(i)),
1031 . ((one-fiveem2)*cand_p(index(i))+fiveem2*pene(i)) )
1033 pene(i)=
max(zero,pene(i)-cand_p(index(i)))
1034 IF( pene(i)==zero ) stif(i) = zero
1035 gapv(i)=gapv(i)-cand_p(index(i))
1037 ELSE IF(inacti==6)
THEN
1041 cand_p(index(i))=
min(cand_p(index(i)),
1042 . ( (one-fiveem2)*cand_p(index(i))
1043 . +fiveem2*(pene(i)+fiveem2*(gapv(i)-pene(i)))) )
1045 pene(i)=
max(zero,pene(i)-cand_p(index(i)))
1046 IF( pene(i)==zero ) stif(i) = zero
1047 gapv(i)=gapv(i)-cand_p(index(i))
1057 IF(stiglo<=zero)
THEN
1058 stif(i) = half*stif(i)
1059 ELSEIF(stif(i)/=zero)
THEN
1063 ELSEIF(imp_int7==1)
THEN
1065 fac = gapv(i)/
max( em10,( gapv(i)-pene(i) ) )
1066 IF( (gapv(i)-pene(i))/gapv(i) <prec .AND.
1067 . stif(i)>0. ) stif(i) = 0.
1068 IF(stiglo<=zero)
THEN
1069 stif(i) = half*stif(i) * fac
1070 ELSEIF(stif(i)/=zero)
THEN
1071 stif(i) = stiglo * fac
1076 fac = gapv(i)/
max( em10,( gapv(i)-pene(i) ) )
1077 IF( (gapv(i)-pene(i))/gapv(i) <prec .AND.
1078 . stif(i)>0. ) stif(i) = 0.
1079 IF(stiglo<=zero)
THEN
1080 stif(i) = half*stif(i) * fac
1081 ELSEIF(stif(i)/=zero)
THEN
1082 stif(i) = stiglo * fac
1086 stif(i) = stif(i) * gapv(i) /
1087 .
max((gapv(i) - pene(i)),em10)
1094 fni(i)= -stif(i) * dn0(i)
1110 ELSEIF (mfrot==1)
THEN
1114 aa = n1(i)*vx(i) + n2(i)*vy(i) + n3(i)*vz(i)
1115 v2 = (vx(i) - n1(i)*aa)**2
1116 . + (vy(i) - n2(i)*aa)**2
1117 . + (vz(i) - n3(i)*aa)**2
1118 vv = sqrt(
max(em30,v2))
1119 ax1 = x(1,irect(3,ie)) - x(1,irect(1,ie))
1120 ay1 = x(2,irect(3,ie)) - x(2,irect(1,ie))
1121 az1 = x(3,irect(3,ie)) - x(3,irect(1,ie))
1122 ax2 = x(1,irect(4,ie)) - x(1,irect(2,ie))
1123 ay2 = x(2,irect(4,ie)) - x(2,irect(2,ie))
1124 az2 = x(3,irect(4,ie)) - x(3,irect(2,ie))
1125 ax = ay1*az2 - az1*ay2
1126 ay = az1*ax2 - ax1*az2
1127 az = ax1*ay2 - ay1*ax2
1128 area = half*sqrt(ax*ax+ay*ay+az*az)
1130 xmu(i) = fric + (frot_p(1) + frot_p(4)*p ) * p
1131 . +(frot_p(2) + frot_p(3)*p) * vv + frot_p(5)*v2
1133 ELSEIF(mfrot==2)
THEN
1137 aa = n1(i)*vx(i) + n2(i)*vy(i) + n3(i)*vz(i)
1138 v2 = (vx(i) - n1(i)*aa)**2
1139 . + (vy(i) - n2(i)*aa)**2
1140 . + (vz(i) - n3(i)*aa)**2
1141 vv = sqrt(
max(em30,v2))
1142 ax1 = x(1,irect(3,ie)) - x(1,irect(1,ie))
1143 ay1 = x(2,irect(3,ie)) - x(2,irect(1,ie))
1144 az1 = x(3,irect(3,ie)) - x(3,irect(1,ie))
1145 ax2 = x(1,irect(4,ie)) - x(1,irect(2,ie))
1146 ay2 = x(2,irect(4,ie)) - x(2,irect(2,ie))
1147 az2 = x(3,irect(4,ie)) - x(3,irect(2,ie))
1148 ax = ay1*az2 - az1*ay2
1149 ay = az1*ax2 - ax1*az2
1150 az = ax1*ay2 - ay1*ax2
1151 area = half*sqrt(ax*ax+ay*ay+az*az)
1153 xmu(i) = frot_p(1)*exp(frot_p(2)*vv)*p*p
1154 . + frot_p(3)*exp(frot_p(4)*vv)*p
1155 . + frot_p(5)*exp(frot_p(6)*vv)
1157 ELSEIF (mfrot==3)
THEN
1160 aa = n1(i)*vx(i) + n2(i)*vy(i) + n3(i)*vz(i)
1161 v2 = (vx(i) - n1(i)*aa)**2
1162 . + (vy(i) - n2(i)*aa)**2
1163 . + (vz(i) - n3(i)*aa)**2
1164 vv = sqrt(
max(em30,v2))
1165 IF(vv>=0.AND.vv<=frot_p(5))
THEN
1166 dmu = frot_p(3)-frot_p(1)
1167 vv1 = vv / frot_p(5)
1168 xmu(i) = frot_p(1)+ dmu*vv1*(two-vv1)
1169 ELSEIF(vv>frot_p(5).AND.vv<frot_p(6))
THEN
1170 dmu = frot_p(4)-frot_p(3)
1171 vv1 = (vv - frot_p(5))/(frot_p(6)-frot_p(5))
1172 xmu(i) = frot_p(3)+ dmu * (three-two*vv1)*vv1**2
1174 dmu = frot_p(2)-frot_p(4)
1175 vv2 = (vv - frot_p(6))**2
1176 xmu(i) = frot_p(2) - dmu / (one + dmu*vv2)
1184 IF (ifq>=10.AND.scalk<zero)
THEN
1194 fx = cand_fx(index(i)) +
alpha*fx
1195 fy = cand_fy(index(i)) +
alpha*fy
1196 fz = cand_fz(index(i)) +
alpha*fz
1197 ftn = fx*n1(i) + fy*n2(i) + fz*n3(i)
1201 ft = fx*fx + fy*fy + fz*fz
1203 fn = fxi(i)**2+fyi(i)**2+fzi(i)**2
1204 beta =
min(one,xmu(i)*sqrt(fn/ft))
1209 fxi(i)=fxi(i) + fxt(i)
1210 fyi(i)=fyi(i) + fyt(i)
1211 fzi(i)=fzi(i) + fzt(i)
1225 v2 = vx(i)**2 + vy(i)**2 + vz(i)**2
1227 aa = dxt/
max(em30,v2)
1231 ftn = -xmu(i)*stif(i) * dxt
1236 fxi(i)=fxi(i) + fxt(i)
1249 a(1,ix1(i))=a(1,ix1(i))+fx*h1(i
1250 a(1,ix2(i))=a(1,ix2(i))+fx*h2(i)
1251 a(1,ix3(i))=a(1,ix3(i))+fx*h3(i)
1253 a(2,ix1(i))=a(2,ix1(i))+fy*h1(i)
1254 a(2,ix2(i))=a(2,ix2(i))+fy*h2(i)
1255 a(2,ix3(i))=a(2,ix3(i))+fy*h3(i)
1256 a(2,ix4(i))=a(2,ix4(i))+fy*h4(i)
1258 a(3,ix2(i))=a(3,ix2(i))+fz*h2(i)
1259 a(3,ix3(i))=a(3,ix3(i))+fz*h3(i)
1260 a(3,ix4(i))=a(3,ix4(i))+fz*h4(i)
1267 a(1,ig)=a(1,ig)-fxi(i)
1268 a(2,ig)=a(2,ig)-fyi(i)
1269 a(3,ig)=a(3,ig)-fzi(i)
1273 ffi(1,ns)=ffi(1,ns)-fxi(i)
1274 ffi(2,ns)=ffi(2,ns)-fyi(i)
1275 ffi(3,ns)=ffi(3,ns)-fzi(i)
subroutine i7kfor3(jlt, a, v, ms, fric, nx1, nx2, nx3, nx4, ny1, ny2, ny3, ny4, nz1, nz2, nz3, nz4, lb1, lb2, lb3, lb4, lc1, lc2, lc3, lc4, p1, p2, p3, p4, nin, ix1, ix2, ix3, ix4, nsvg, gapv, inacti, cand_p, index, stiglo, stif, vxi, vyi, vzi, msi, x, irect, ce_loc, mfrot, ifq, frot_p, cand_fx, cand_fy, cand_fz, alpha0, dxi, dyi, dzi, d, scalk, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, xi, yi, zi, icurv)
subroutine i7keg3(jlt, a, v, ms, fric, nx1, nx2, nx3, nx4, ny1, ny2, ny3, ny4, nz1, nz2, nz3, nz4, lb1, lb2, lb3, lb4, lc1, lc2, lc3, lc4, p1, p2, p3, p4, nin, ix1, ix2, ix3, ix4, nsvg, gapv, inacti, cand_p, index, stiglo, stif, vxi, vyi, vzi, msi, ki11, ki12, kj11, kj12, kk11, kk12, kl11, kl12, off, scalk, lrem, icurv, x, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, xi, yi, zi)