43 SUBROUTINE i20for3(JLT ,A ,VA ,IBCC ,ICODT ,
44 2 FSAV ,GAP ,FRIC ,MS ,VISC ,
45 3 VISCF ,NOINT ,STFA ,ITAB ,CN_LOC ,
46 4 STIGLO ,STIFN ,STIF ,FSKYI ,ISKY ,
47 6 NX1 ,NX2 ,NX3 ,NX4 ,NY1 ,
48 7 NY2 ,NY3 ,NY4 ,NZ1 ,NZ2 ,
49 8 NZ3 ,NZ4 ,LB1 ,LB2 ,LB3 ,
50 9 LB4 ,LC1 ,LC2 ,LC3 ,LC4 ,
51 A P1 ,P2 ,P3 ,P4 ,FCONT ,
52 B IX1L ,IX2L ,IX3L ,IX4L ,NSVG ,
53 C IVIS2 ,NELTST ,ITYPTST,DT2T ,
54 D GAPV ,INACTI ,INDEX ,NISKYFI,
55 E KINET ,NEWFRONT,ISECIN,NSTRF ,SECFCUM,
56 F X ,XA ,CE_LOC ,MFROT ,IFQ ,
57 G FROT_P ,CAND_FX,CAND_FY,CAND_FZ,ALPHA0,
58 H IFPEN ,GAPR ,DXANC ,NLN ,NLG ,
59 I IBAG ,ICONTACT,NSV ,PENIS ,PENIM ,
60 J VISCN ,VXI ,VYI ,VZI ,MSI ,
61 K KINI ,NIN ,NISUB ,LISUB ,ADDSUBS,
62 L ADDSUBM,LISUBS ,LISUBM ,FSAVSUB,CAND_N ,
63 M ILAGM ,ICURV ,NOD_NORMAL ,FNCONT ,FTCONT ,
64 N X1 ,X2 ,X3 ,X4 ,Y1 ,
65 O Y2 ,Y3 ,Y4 ,Z1 ,Z2 ,
66 P Z3 ,Z4 ,XI ,YI ,ZI ,
67 Q IADM ,RCURVI ,RCONTACT,ACONTACT,PCONTACT,
68 R ANGLMI ,PADM ,INTTH ,PHI , FTHE ,
69 S FTHESKYI,DAANC6,TEMP ,TEMPI ,RSTIF ,
70 T IFORM ,GAP_S ,IGAP ,ALPHAK ,MSKYI_SMS,
71 U ISKYI_SMS,NSMS ,CMAJ ,JTASK,ISENSINT,
72 V FSAVPARIT ,NFT ,H3D_DATA)
82#include "implicit_f.inc"
100#include "scr18_c.inc"
101#include "units_c.inc"
102#include "parit_c.inc"
103#include "param_c.inc"
104#include "impl1_c.inc"
106#include "kincod_c.inc"
110 INTEGER NELTST,ITYPTST,JLT,IBCC,IBCM,IBCS,IVIS2,INACTI,IBAG,NIN,
111 . NTY ,NLN,NLG(NLN),NSV(*),
112 . ICODT(*), ITAB(*), ISKY(*), KINET(*),
113 . MFROT, IFQ, NOINT,NEWFRONT,ISECIN, NSTRF(*),
114 . IFPEN(*) ,ICONTACT(*), CAND_N(*),
116 . ISET, NISKYFI,IADM,INTTH,IFORM, IGAP,JTASK
117 INTEGER IX1L(MVSIZ), IX2L(MVSIZ), IX3L(MVSIZ), IX4L(MVSIZ),
118 . CN_LOC(MVSIZ),CE_LOC(MVSIZ),INDEX(MVSIZ),NSVG(MVSIZ),
119 . NISUB, LISUB(*), ADDSUBS(*), ADDSUBM(*), LISUBS(*),
120 . LISUBM(*),ILAGM,ICURV(3),
121 . ISKYI_SMS(*), NSMS(*), ISENSINT(*),
123 . STIGLO,FROT_P(*), X(3,*), XA(3,*),DXANC(3,*),
124 . A(3,*), MS(*), VA(3,*), FSAV(*),FCONT(3,*),
125 . CAND_FX(*),CAND_FY(*),CAND_FZ(*),ALPHA0,
126 . GAP, FRIC,VISC,VISCF,VIS,DT2T,STFA(*),STIFN(*),
127 . FSKYI(LSKYI,NFSKYI),FSAVSUB(NTHVKI,*), FNCONT(3,*),FTCONT(3,*),
130 . NX1(MVSIZ), NX2(MVSIZ), NX3(MVSIZ), NX4(MVSIZ),
131 . NY1(MVSIZ), NY2(MVSIZ), NY3(MVSIZ), NY4(MVSIZ),
132 . NZ1(MVSIZ), NZ2(MVSIZ), NZ3(MVSIZ), NZ4(MVSIZ),
133 . LB1(MVSIZ), LB2(MVSIZ), LB3(MVSIZ), LB4(MVSIZ),
134 . LC1(MVSIZ), LC2(MVSIZ), LC3(), LC4(MVSIZ),
135 . P1(MVSIZ), P2(MVSIZ), P3(MVSIZ), P4(MVSIZ), STIF(MVSIZ),
136 . GAPV(MVSIZ),GAPR(MVSIZ),SECFCUM(7,NUMNOD,NSECT),
137 . TMP(MVSIZ),STIFSAV(MVSIZ), VISCN(*),
138 . VXI(MVSIZ),VYI(MVSIZ),VZI(MVSIZ),MSI(MVSIZ),
139 . x1(mvsiz),y1(mvsiz),z1(mvsiz),
140 . x2(mvsiz),y2(mvsiz),z2(mvsiz),
141 . x3(mvsiz),y3(mvsiz),z3(mvsiz),
142 . x4(mvsiz),y4(mvsiz),z4(mvsiz),
143 . xi(mvsiz),yi(mvsiz),zi(mvsiz),penis(2,*),penim(2,*),
144 . phi(mvsiz), fthe(*),ftheskyi(lskyi),temp(*), tempi(mvsiz),
145 . rstif,fsavparit(nisub+1,11,*)
147 . nod_normal(3,*), rcurvi(*), rcontact(*), acontact(*),
148 . pcontact(*),padm, anglmi(*),gap_s(*),alphak(3,*),cmaj(mvsiz)
155 INTEGER I,J1,IG,J,JG,IM,IS,K0,NBINTER,K1S,K,IL,IE,NN,NI,NA1,NA2,
156 . JSUB,KSUB,JJ,,IN,NSUB,ISIGN,IPROJ,IBID
157 INTEGER IX1G(MVSIZ), IX2G(MVSIZ), IX3G(MVSIZ), IX4G(MVSIZ)
159 . fxr(mvsiz), fyr(mvsiz), fzr(mvsiz),
160 . fxi(mvsiz), fyi(mvsiz), fzi(mvsiz), fni(mvsiz),
161 . fxt(mvsiz),fyt(mvsiz),fzt(mvsiz),
162 . fx1(mvsiz), fx2(mvsiz), fx3(mvsiz), fx4(mvsiz),
163 . fy1(mvsiz), fy2(mvsiz), fy3(mvsiz), fy4(mvsiz),
164 . fz1(mvsiz), fz2(mvsiz), fz3(mvsiz), fz4(mvsiz),
165 . n1(mvsiz), n2(mvsiz), n3(mvsiz), pene(mvsiz),
166 . vis2(mvsiz), dtmi(mvsiz), xmu(mvsiz),stif0(mvsiz),
167 . h1(mvsiz), h2(mvsiz), h3(mvsiz), h4(mvsiz),
168 . vx(mvsiz), vy(mvsiz), vz(mvsiz), vn(mvsiz),
169 . st1(mvsiz),st2(mvsiz),st3(mvsiz),st4(mvsiz),stv(mvsiz),
170 . kt(mvsiz),c(mvsiz),cf(mvsiz),
171 . ks(mvsiz),k1(mvsiz),k2(mvsiz),k3(mvsiz
172 . cs(mvsiz),c1(mvsiz),c2(mvsiz),c3(mvsiz),c4(mvsiz),
173 . p1s(mvsiz),p2s(mvsiz),p3s(mvsiz),p4s(mvsiz),
174 . phi1(mvsiz),phi2(mvsiz),phi3(mvsiz),phi4(mvsiz),
175 . fsavsub1(15,nisub),masm(mvsiz)
177 . vnx, vny, vnz, aa, crit,s2,dist,rdist,
178 . v2, fm2, dt1inv, visca, fac,ff,alphi,
alpha,beta,
179 . fx, fy, fz, f2, mas2, m2sk, dtmi0,dti,ft,fn,fmax,ftn,
180 . facm1, econtt, econvt, h0, la1, la2, la3, la4,
181 . d1,d2,d3,d4,a1,a2,a3,a4,e10, h0d, s2d, sum,
182 . fsav1, fsav2, fsav3, fsav4, fsav5, fsav6, fsav7, fsav8,
183 . fsav9, fsav10, fsav11, fsav12, fsav13, fsav14, fsav15, ffo,
184 . la1d,la2d,la3d,la4d,t1,t1d,t2,t2d,ffd,visd,facd,d1d,
185 . d2d,d3d,d4d,vnxd,vnyd,vnzd,v2d,fm2d,f2d,aad,fxd,fyd,fzd,
186 . a1d,a2d,a3d,a4d,vv,ax1,ax2,ay1,ay2,az1,az2,ax,ay,az,
187 .
area,p,vv1,vv2,v21,dmu, dti2,h00 ,a0x,a0y,a0z,rx,ry,rz,
188 . anx,any,anz,aan,aax,aay,aaz ,rr,rs,aaa,stfr,visr,
189 . prec,ps,xsa,pis,pplus,cx,cy,cfi,aux,tm,ts,impx,impy,impz,bb,
190 . nn1,nn2,nn3,nn4,xn1,yn1,zn1,xn2,yn2,zn2,xn3,yn3,zn3,xn4,yn4,
193 DOUBLE PRECISION (6,MVSIZ), FY6(6,MVSIZ), FZ6(6,MVSIZ)
210 ix1g(i) = nlg(ix1l(i))
211 ix2g(i) = nlg(ix2l(i))
212 ix3g(i) = nlg(ix3l(i))
213 ix4g(i) = nlg(ix4l(i))
221 IF(icurv(1) == 3)
THEN
227 p1(i) =
max(zero, bb - d1)
230 p2(i) =
max(zero, bb - d2)
233 p3(i) =
max(zero, bb - d3)
236 p4(i) =
max(zero, bb - d4)
238 a1 = p1(i)/
max(em20,d1)
239 a2 = p2(i)/
max(em20,d2)
240 a3 = p3(i)/
max(em20,d3)
241 a4 = p4(i)/
max(em20,d4)
242 n1(i) = a1*nx1(i) + a2*nx2(i) + a3*nx3(i) + a4*nx4(i)
243 n2(i) = a1*ny1(i) + a2*ny2(i) + a3*ny3(i) + a4*ny4(i)
244 n3(i) = a1*nz1(i) + a2*nz2(i) + a3*nz3(i) + a4*nz4(i)
250 p1(i) =
max(zero, gapv(i) - d1)
253 p2(i) =
max(zero, gapv(i) - d2)
256 p3(i) =
max(zero, gapv(i) - d3)
259 p4(i) =
max(zero, gapv(i) - d4)
261 a1 = p1(i)/
max(em20,d1)
262 a2 = p2(i)/
max(em20,d2)
263 a3 = p3(i)/
max(em20,d3)
264 a4 = p4(i)/
max(em20,d4)
265 n1(i) = a1*nx1(i) + a2*nx2(i) + a3*nx3(i) + a4*nx4(i)
266 n2(i) = a1*ny1(i) + a2*ny2(i) + a3*ny3(i) + a4*ny4(i)
267 n3(i) = a1*nz1(i) + a2*nz2(i) + a3*nz3(i) + a4*nz4(i)
272 IF(ix3g(i)/=ix4g(i))
THEN
273 pene(i) =
max(p1(i),p2(i),p3(i),p4(i))
275 la1 = one - lb1(i) - lc1(i)
276 la2 = one - lb2(i) - lc2(i)
277 la3 = one - lb3(i) - lc3(i)
278 la4 = one - lb4(i) - lc4(i)
281 . (p1(i)*la1 + p2(i)*la2 + p3(i)*la3 + p4(i)*la4)
282 h1(i) = h0 + p1(i) * lb1(i) + p4(i) * lc4(i)
283 h2(i) = h0 + p2(i) * lb2(i) + p1(i) * lc1(i)
284 h3(i) = h0 + p3(i) * lb3(i) + p2(i) * lc2(i)
285 h4(i) = h0 + p4(i) * lb4(i) + p3(i) * lc3(i)
287 h00 = one/
max(em20,h1(i) + h2(i) + h3(i) + h4(i))
300 h3(i) = one - lb1(i) - lc1(i)
319 rr =
min(rr , rx*rx + ry*ry + rz*rz)
323 rr =
min(rr , rx*rx + ry*ry + rz*rz)
327 rr =
min(rr , rx*rx + ry*ry + rz*rz)
328 IF(ix3g(i)/=ix4g(i))
THEN
332 rr =
min(rr , rx*rx + ry*ry + rz*rz)
337 rs = sqrt(rx*rx + ry*ry + rz*rz)
339 IF(rs-rr+gapv(i)<0.)
THEN
342 ELSEIF(rs-rr+gapv(i)<pene(i))
THEN
343 pene(i) = rs-rr+gapv(i)
349 ELSEIF(icurv(1)==2)
THEN
361 aan = 1. / (anx*anx + any*any + anz*anz)
366 aaa = (aax*anx + aay*any + aaz*anz) * aan
370 rr =
min(rr , rx*rx + ry*ry + rz*rz)
375 aaa = (aax*anx + aay*any + aaz*anz) * aan
379 rr =
min(rr , rx*rx + ry*ry + rz*rz)
384 aaa = (aax*anx + aay*any + aaz*anz) * aan
388 rr =
min(rr , rx*rx + ry*ry + rz*rz)
389 IF(ix3g(i)/=ix4g(i))
THEN
394 aaa = (aax*anx + aay*any + aaz*anz) * aan
398 rr =
min(rr , rx*rx + ry*ry + rz*rz)
404 aaa = (aax*anx + aay*any + aaz*anz) * aan
408 rs = sqrt(rx*rx + ry*ry + rz*rz)
410 IF(rs-rr+gapv(i)<0.)
THEN
413 ELSEIF(rs-rr+gapv(i)<pene(i))
THEN
414 pene(i) = rs-rr+gapv(i)
418 ELSEIF(rs-rr-gapv(i)>0.)
THEN
421 ELSEIF(rs-rr-gapv(i) < pene(i))
THEN
432 nn1 = (yn1*zn2-yn2*zn1) * rx +
433 . (zn1*xn2-zn2*xn1) * ry +
434 . (xn1*yn2-xn2*yn1) * rz
435 nn2 = (yn2*zn3-yn3*zn2) * rx +
436 . (zn2*xn3-zn3*xn2) * ry +
437 . (xn2*yn3-xn3*yn2) * rz
438 nn3 = (yn3*zn4-yn4*zn3) * rx +
439 . (zn3*xn4-zn4*xn3) * ry +
440 . (xn3*yn4-xn4*yn3) * rz
441 IF(ix3l(i)/=ix4l(i))
THEN
445 nn4 = (yn4*zn1-yn1*zn4) * rx +
446 . (zn4*xn1-zn1*xn4) * ry +
447 . (xn4*yn1-xn1*yn4) * rz
454 IF( nn1>=zero .AND. nn2>=zero
455 . .AND. nn3>=zero .AND. nn4>=zero)
THEN
457 ELSEIF( nn1<=zero .AND. nn2<=zero
458 . .AND. nn3<=zero .AND. nn4<=zero)
THEN
465 pene(i) = -rs+rr+gapv(i)
473 ELSEIF(icurv(1) == 3)
THEN
474 CALL i7curv(jlt ,pene ,n1 ,n2 ,
475 1 n3 ,gapv ,xa ,nod_normal,
476 2 ix1l ,ix2l ,ix3l ,ix4l ,
478 4 x1 ,x2 ,x3 ,x4 ,y1 ,
479 5 y2 ,y3 ,y4 ,z1 ,z2 ,
480 6 z3 ,z4 ,xi ,yi ,zi )
491 s2 = one/
max(em30,sqrt(n1(i)**2 + n2(i)**2 + n3(i)**2))
498 vx(i) = vxi(i) - h1(i)*va(1,ix1l(i)) - h2(i)*va(1,ix2l(i))
499 . - h3(i)*va(1,ix3l(i)) - h4(i)*va(1,ix4l(i))
500 vy(i) = vyi(i) - h1(i)*va(2,ix1l(i)) - h2(i)*va(2,ix2l(i))
501 . - h3(i)*va(2,ix3l(i)) - h4(i)*va(2,ix4l(i))
502 vz(i) = vzi(i) - h1(i)*va(3,ix1l(i)) - h2(i)*va(3,ix2l(i))
503 . - h3(i)*va(3,ix3l(i)) - h4(i)*va(3,ix4l(i))
504 vn(i) = n1(i)*vx(i) + n2(i)*vy(i) + n3(i)*vz(i)
509 h0 = -.25*(h1(i) - h2(i) + h3(i) - h4(i))
510 h0 =
min(h0,h2(i),h4(i))
511 h0 =
max(h0,-h1(i),-h3(i))
512 IF(ix3g(i)==ix4g(i))h0 = zero
521 IF(inacti==5.or.inacti==6)
THEN
540 pplus = pene(i) + zep05*(gapv(i)-pene(i))
542 IF (pplus < gap_s(is))
THEN
543 penis(2,is) =
max(penis(2,is),pplus)
545 penis(2,is) =
max(penis(2,is),gap_s(is))
546 penim(2,im) =
max(penim(2,im),pplus-gap_s(is))
549 IF (pplus <
gapfi(nin)%P(-nn))
THEN
554 penim(2,im) =
max(penim(2,im),pplus-
gapfi(nin)%P(-nn))
561 pplus = pene(i) + zep05*(gapv(i)-pene(i))
562 penim(2,im) =
max(penim(2,im),pplus)
578#include "lockoff.inc"
586 pis =
penfi(nin)%P(1,-nn)
588 pene(i) = pene(i) - pis - penim(1,im)
589 pene(i) =
max(pene(i),zero)
590 IF (pene(i) == zero )stif(i)=zero
591 gapv(i) = gapv(i) - pis - penim(1,im)
600 rdist = half*dist /
max(em30,-vn(i))
607 IF(dti<=dtmin1(10))
THEN
611 dti2 = half*dist /
max(em30,-vn(i))
612 IF(dti2<=dtmin1(10))
THEN
614 WRITE(iout,
'(A,E12.4,A,I10)')
615 .
' **WARNING MINIMUM TIME STEP ',dti2,
616 .
' IN INTERFACE ',noint
621 ni =
itafi(nin)%P(-nn)
623#include "lockoff.inc"
624 IF(idtmin(10)==1)
THEN
626 WRITE(iout,
'(A,I10)')
' SECONDARY NODE : ',ni
627 WRITE(iout,
'(A,4I10)')
' MAIN NODES : ',
628 . itab(ix1g(i)),itab(ix2g(i)),itab(ix3g(i)),itab(ix4g(i))
629#include "lockoff.inc"
631 ELSEIF(idtmin(10)==2)
THEN
633 WRITE(iout,
'(A,I10,A,I10)')
' REMOVE SECONDARY NODE ',
634 . ni,
' FROM INTERFACE ',noint
636 stfa(nsv(cn_loc(i))) = -abs(stfa(nsv(cn_loc(i))))
640#include "lockoff.inc"
644 ELSEIF(idtmin(10)==5)
THEN
646 WRITE(iout,
'(A,I10)')
' SECONDARY NODE : ',ni
647 WRITE(iout,
'(A,4I10)')
' MAIN NODES : ',
648 . itab(ix1g(i)),itab(ix2g(i)),itab(ix3g(i)),itab(ix4g(i))
649#include "lockoff.inc"
651 ELSEIF(idtmin(10)==6.AND.ilagm==2)
THEN
653 IF(kinet(ig)+kinet(ix1g(i))+kinet(ix2g(i))
654 . +kinet(ix3g(i))+kinet(ix4g(i))==0)
THEN
655 cand_n(index(i)) = -iabs(cand_n(index(i)))
659 WRITE(iout,
'(A,I10)')
' SECONDARY NODE : ',itab(nsvg(i))
660 WRITE(iout,
'(A,4I10)')
' MAIN NODES : ',
661 . itab(ix1g(i)),itab(ix2g(i)),itab(ix3g(i)),itab(ix4g(i))
662#include "lockoff.inc"
679 stif(i) = half*stif(i)
680 ELSEIF(stif(i)/=zero)
THEN
683 fni(i)= -stif(i) * pene(i)
687 fac = gapv(i)/
max( em10,( gapv(i)-pene(i) ) )
689 IF( (gapv(i)-pene(i))/gapv(i) <prec .AND.
697 stfa(nsv(cn_loc(i))) = -abs(stfa(nsv(cn_loc(i))))
699 ni =
itafi(nin)%P(-nn)
702 WRITE(istdo,
'(A,I10)')
' WARNING INTERFACE ',noint
703 WRITE(istdo,
'(A,I10,A)')
' NODE ',ni,
704 .
' DE-ACTIVATED FROM INTERFACE'
705 WRITE(iout ,
'(A,I10)')
' WARNING INTERFACE ',noint
706 WRITE(iout ,
'(A,I10,A)')
' NODE ',ni,
707 .
' DE-ACTIVATED FROM INTERFACE'
708#include "lockoff.inc"
711 econtt = econtt + half*stif(i)*gapv(i)**2 *( facm1 -
713 stif(i) = half*stif(i) * fac
714 ELSEIF(stif(i)/=zero)
THEN
715 econtt = econtt + stiglo*gapv
717 stif(i) = stiglo * fac
719 fni(i)= -stif(i) * pene(i)
724 fac = gapv(i)/
max( em10,( gapv(i)-pene(i) ) )
726 IF( (gapv(i)-pene(i))/gapv(i) <prec .AND.
734 stfa(nsv(cn_loc(i))) = -abs(stfa(nsv(cn_loc(i))))
736 ni =
itafi(nin)%P(-nn)
739 WRITE(istdo,
'(A,I10)')
' WARNING INTERFACE ',noint
740 WRITE(istdo,
'(A,I10,A)')
' NODE ',ni,
741 .
' DE-ACTIVATED FROM INTERFACE'
742 WRITE(iout ,
'(A,I10)')
' WARNING INTERFACE ',noint
743 WRITE(iout ,
'(A,I10,A)')
' NODE ',ni,
744 .
' DE-ACTIVATED FROM INTERFACE'
745#include "lockoff.inc"
748 econtt = econtt + half*stif(i)*gapv(i)**2 *( facm1 - one -
750 stif(i) = half*stif(i) * fac
751 ELSEIF(stif(i)/=zero)
THEN
752 econtt = econtt + stiglo*gapv(i)**2 *(facm1
755 fni(i)= -stif(i) * pene(i)
761 IF(visc/=zero.OR.viscf/=zero)
THEN
767 vis2(i) = two * stif(i) * msi(i)
768 IF(vn(i)<zero) vis2(i) = vis2(i) /
769 . (
max(em10,(gapv(i)-pene(i))/gapv(i)) )
773 IF(kdtint==0.AND.idtmins/=2)
THEN
775 fac = stif(i) /
max(em30,stif(i))
779 . visca**2 * two* msi(i) *
max(zero,-vn(i)) /
780 .
max((gapv(i) - pene(i)),em10) )
781 stif(i) = stif(i) * gapv(i) /
max((gapv(i) - pene(i)),em10)
782 stif(i) = stif(i) + ff * dt1inv
783 stif(i) =
max(stif(i) ,fac*sqrt(viscf)*vis*dt1inv)
790 fac = stif(i) /
max(em30,stif(i))
794 . visca**2 * two * msi(i) *
max(zero,-vn(i)) /
795 .
max((gapv(i) - pene(i)),em10) )
796 stif(i) = stif(i) * gapv(i) /
max((gapv(i) - pene(i)),em10)
798 stif(i) = stif(i) + c(i) * dt1inv
801 cf(i) = fac*sqrt(viscf)*vis
802 stif(i) =
max(stif(i) ,cf(i)*dt1inv)
810 masm(i) = ms(ix1g(i))*h1(i)
811 . + ms(ix2g(i))*h2(i)
812 . + ms(ix3g(i))*h3(i)
813 . + ms(ix4g(i))*h4(i)
814 masm(i) = msi(i) * masm(i) /
max(em30,msi(i)+masm(i))
815 vis2(i) = two * stif(i) * masm(i)
816 IF(vn(i)<zero) vis2(i) = vis2(i) /
817 . (
max(em10,(gapv(i)-pene(i))/gapv(i)) )
821 IF(kdtint==0.AND.idtmins/=2)
THEN
823 fac = stif(i) /
max(em30,stif(i))
827 . visca**2 * two* masm(i) *
max(zero,-vn(i)) /
828 .
max((gapv(i) - pene(i)),em10) )
829 stif(i) = stif(i) * gapv(i) /
max((gapv(i) - pene(i)),em10)
830 stif(i) = stif(i) + ff * dt1inv
831 stif(i) =
max(stif(i) ,fac*sqrt(viscf)*vis*dt1inv)
838 fac = stif(i) /
max(em30,stif(i))
842 . visca**2 * two * masm(i) *
max(zero,-vn(i)) /
843 .
max((gapv(i) - pene(i)),em10) )
844 stif(i) = stif(i) * gapv(i) /
max((gapv(i) - pene(i)),em10)
846 stif(i) = stif(i) + c(i) * dt1inv
849 cf(i) = fac*sqrt(viscf)*vis
850 stif(i) =
max(stif(i) ,cf(i)*dt1inv)
858 vis2(i) = two* stif(i) * msi(i)
860 . (
max(em10,(gapv(i)-pene(i))/gapv(i)) )
864 fac = stif(i) /
max(em30,stif(i))
868 . visca**2 * two * msi(i) * abs(vn(i)) /
869 .
max((gapv(i) - pene(i)),em10) )
870 stif(i) = stif(i) * gapv(i) /
max((gapv(i) - pene(i)),em10)
871 stif(i) = stif(i) + two * ff * dt1inv
872 stif(i) =
max(stif(i) ,fac*sqrt(viscf)*vis*dt1inv)
881 vis2(i) = two * stif(i) * msi(i)
885 fac = stif(i) /
max(em30,stif(i))
887 ff = fac * ( visc * vis ) /
888 .
max((gapv(i) - pene(i)),em10)
889 stif(i) = stif(i) * gapv(i) /
890 .
max((gapv(i) - pene(i)),em10)
892 stif(i) =
max(stif(i) ,fac*sqrt(viscf)*vis*dt1inv)
901 vis2(i) = two* stif(i) * msi(i)
903 stif(i) = stif(i) * gapv(i) /
904 .
max((gapv(i) - pene(i)),em10)
905 stif(i) =
max(stif(i) ,fac*sqrt(viscf)*vis*dt1inv)
914 mas2 = ms(ix1g(i))*h1(i)
915 . + ms(ix2g(i))*h2(i)
916 . + ms(ix3g(i))*h3(i)
917 . + ms(ix4g(i))*h4(i)
918 vis2(i) = two* stif(i) * msi(i)
919 vis = 2. * visc * dt1inv * msi(i) * mas2 /
920 .
max(em30,msi(i)+mas2)
921 stif(i) = stif(i) * gapv(i) /
922 .
max((gapv(i) - pene(i)),em10)
923 stif(i) =
max(stif(i) ,fac*sqrt(viscf*vis2(i))*dt1inv)
925 econvt = econvt +
min(zero,ff-fni(i)) * vn(i) * dt1
926 fni(i) =
min(fni(i),ff)
933 stif(i) = stif(i) * gapv(i) /
934 .
max((gapv(i) - pene(i)),em10)
943 aaa = one-pene(i)/gapv(i)
945 IF(pene(i)>zero.OR.alphak(2,il)<zero)isign=-1
946 alphak(2,il)=isign*
min(abs(alphak(2,il)),aaa)
948 IF(pene(i)>zero.OR.alphak(2,il)<zero)isign=-1
949 alphak(2,il)=isign*
min(abs(alphak(2,il)),aaa)
951 IF(pene(i)>zero.OR.alphak(2,il)<zero)isign=-1
952 alphak(2,il)=isign*
min(abs(alphak(2,il)),aaa)
954 IF(pene(i)>zero.OR.alphak
955 alphak(2,il)=isign*
min(abs(alphak(2,il)),aaa)
958 IF(pene(i)>zero.OR.alphak(2,il)<zero)isign=-1
959 alphak(2,il)=isign*
min(abs(alphak(2,il)),aaa)
963 IF(pene(i)>zero.OR.
alphakfi(nin)%P(il)<zero)isign=-1
967#include "lockoff.inc"
989 fsav8 =fsav8 +abs(impx)
990 fsav9 =fsav9 +abs(impy)
991 fsav10=fsav10+abs(impz)
992 fsav11=fsav11+fni(i)*dt12
995 fsav(1)=fsav(1)+fsav1
996 fsav(2)=fsav(2)+fsav2
997 fsav(3)=fsav(3)+fsav3
999 fsav(8)=fsav(8)+fsav8
1000 fsav(9)=fsav(9)+fsav9
1001 fsav(10)=fsav(10)+fsav10
1002 fsav(11)=fsav(11)+fsav11
1003#include "lockoff.inc"
1005 IF(isensint(1)/=0)
THEN
1007 fsavparit(1,1,i+nft) = fxi(i)
1008 fsavparit(1,2,i+nft) = fyi(i)
1009 fsavparit(1,3,i+nft) = fzi(i)
1013 IF((anim_v(12)+outp_v(12)+h3d_data%N_VECT_PCONT >0.AND.
1014 . ((tt>=tanim .AND. tt<=tanim_stop).OR.tt>=toutp.OR.(tt>=h3d_data%TH3D.AND.tt<=h3d_data%TH3D_STOP) .OR.
1015 . (manim>=4.AND.manim<=15).OR.h3d_data%MH3D/=0))
1016 . .OR.h3d_data%N_VECT_PCONT_MAX>0)
THEN
1017#include "lockon.inc"
1019 fncont(1,ix1g(i)) =fncont(1,ix1g(i)) + fxi(i)*h1(i)
1020 fncont(2,ix1g(i)) =fncont(2,ix1g(i)) + fyi(i)*h1(i)
1021 fncont(3,ix1g(i)) =fncont(3,ix1g(i)) + fzi(i)*h1(i)
1022 fncont(1,ix2g(i)) =fncont(1,ix2g(i)) + fxi(i)*h2(i)
1023 fncont(2,ix2g(i)) =fncont(2,ix2g(i)) + fyi(i)*h2(i)
1024 fncont(3,ix2g(i)) =fncont(3,ix2g(i)) + fzi(i)*h2(i)
1025 fncont(1,ix3g(i)) =fncont(1,ix3g(i)) + fxi(i)*h3(i)
1026 fncont(2,ix3g(i)) =fncont(2,ix3g(i)) + fyi(i)*h3(i)
1027 fncont(3,ix3g(i)) =fncont(3,ix3g(i)) + fzi(i)*h3(i)
1028 fncont(1,ix4g(i)) =fncont(1,ix4g(i)) + fxi(i)*h4(i)
1029 fncont(2,ix4g(i)) =fncont(2,ix4g(i)) + fyi(i)*h4(i)
1030 fncont(3,ix4g(i)) =fncont(3,ix4g(i)) + fzi(i)*h4(i)
1034 fncont(1,jg)=fncont(1,jg)- fxi(i)
1035 fncont(2,jg)=fncont(2,jg)- fyi(i)
1036 fncont(3,jg)=fncont(3,jg)- fzi(i)
1044#include "lockoff.inc"
1052 fsavsub1(j,jsub)=zero
1062 DO WHILE(jj<addsubs(in+1))
1064 DO WHILE(kk<addsubm(ie+1))
1071 fsavsub1(1,jsub)=fsavsub1(1,jsub)+impx
1072 fsavsub1(2,jsub)=fsavsub1(2,jsub)+impy
1073 fsavsub1(3,jsub)=fsavsub1(3,jsub)+impz
1075 fsavsub1(8,jsub) =fsavsub1(8,jsub) +abs(impx)
1076 fsavsub1(9,jsub) =fsavsub1(9,jsub) +abs(impy)
1077 fsavsub1(10,jsub)=fsavsub1(10,jsub)+abs(impz)
1079 fsavsub1(11,jsub)=fsavsub1(11,jsub)+fni(i)*dt12
1082 ELSE IF(ksub<jsub)
THEN
1105 DO WHILE(kk<addsubm(ie+1))
1112 fsavsub1(1,jsub)=fsavsub1(1,jsub)+impx
1113 fsavsub1(2,jsub)=fsavsub1(2,jsub)+impy
1114 fsavsub1(3,jsub)=fsavsub1
1116 fsavsub1(8,jsub) =fsavsub1(8,jsub) +abs(impx)
1117 fsavsub1(9,jsub) =fsavsub1(9,jsub) +abs(impy)
1118 fsavsub1(10,jsub)=fsavsub1(10,jsub)+abs(impz)
1120 fsavsub1(11,jsub)=fsavsub1(11,jsub)+fni(i)*dt12
1123 ELSE IF(ksub<jsub)
THEN
1147 ELSEIF (mfrot==1)
THEN
1150 aa = n1(i)*vx(i) + n2(i)*vy(i) + n3(i)*vz(i)
1151 v2 = (vx(i) - n1(i)*aa)**2
1152 . + (vy(i) - n2(i)*aa)**2
1153 . + (vz(i) - n3(i)*aa)**2
1154 vv = sqrt(
max(em30,v2))
1161 ax = ay1*az2 - az1*ay2
1162 ay = az1*ax2 - ax1*az2
1164 area = half*sqrt(ax*ax+ay*ay+az*az)
1166 xmu(i) = fric + (frot_p(1) + frot_p(4)*p ) * p
1167 . +(frot_p(2) + frot_p(3)*p) * vv + frot_p(5)*v2
1169 ELSEIF(mfrot==2)
THEN
1173 v2 = (vx(i) - n1(i)*aa)**2
1174 . + (vy(i) - n2(i)*aa)**2
1175 . + (vz(i) - n3(i)*aa)**2
1176 vv = sqrt(
max(em30,v2))
1183 ax = ay1*az2 - az1*ay2
1184 ay = az1*ax2 - ax1*az2
1185 az = ax1*ay2 - ay1*ax2
1186 area = half*sqrt(ax*ax+ay*ay+az*az)
1189 . + frot_p(1)*exp(frot_p(2)*vv)*p*p
1190 . + frot_p(3)*exp(frot_p(4)*vv)*p
1191 . + frot_p(5)*exp(frot_p(6)*vv)
1193 ELSEIF (mfrot==3)
THEN
1196 aa = n1(i)*vx(i) + n2(i)*vy(i) + n3(i)*vz(i)
1197 v2 = (vx(i) - n1(i)*aa)**2
1198 . + (vy(i) - n2(i)*aa)**2
1199 . + (vz(i) - n3(i)*aa)**2
1201 IF(vv>=0.AND.vv<=frot_p(5))
THEN
1202 dmu = frot_p(3)-frot_p(1)
1203 vv1 = vv / frot_p(5)
1204 xmu(i) = frot_p(1)+ dmu*vv1*(two-vv1)
1205 ELSEIF(vv>frot_p(5).AND.vv<frot_p(6))
THEN
1206 dmu = frot_p(4)-frot_p(3)
1207 vv1 = (vv - frot_p(5))/(frot_p(6)-frot_p(5))
1208 xmu(i) = frot_p(3)+ dmu * (three-two*vv1)*vv1
1210 dmu = frot_p(2)-frot_p(4)
1211 vv2 = (vv - frot_p(6))**2
1212 xmu(i) = frot_p(2) - dmu / (one + dmu*vv2)
1215 ELSEIF(mfrot==4)
THEN
1218 aa = n1(i)*vx(i) + n2(i)*vy(i) + n3(i)*vz(i)
1219 v2 = (vx(i) - n1(i)*aa)**2
1220 . + (vy(i) - n2(i)*aa)**2
1221 . + (vz(i) - n3(i)*aa)**2
1222 vv = sqrt(
max(em30,v2))
1224 . + (fric-frot_p(1))*exp(-frot_p(2)*vv)
1225 xmu(i) =
max(xmu(i),em30)
1250 fx = stif0(i)*vx(i)*dt12
1251 fy = stif0(i)*vy(i)*dt12
1252 fz = stif0(i)*vz(i)*dt12
1254 fx = cand_fx(index(i)) +
alpha*fx
1255 fy = cand_fy(index(i)) +
alpha*fy
1256 fz = cand_fz(index(i)) +
alpha*fz
1258 ftn = fx*n1(i) + fy*n2(i) + fz*n3(i)
1262 ft = fx*fx + fy*fy + fz*fz
1265 fn = fxi(i)**2+fyi(i)**2+fzi(i)**2
1267 beta =
min(one,xmu(i)*sqrt(fn/ft))
1273 cand_fx(index(i)) = fxt(i)
1274 cand_fy(index(i)) = fyt(i)
1275 cand_fz(index(i)) = fzt(i)
1279 fxi(i)=fxi(i) + fxt(i)
1280 fyi(i)=fyi(i) + fyt(i)
1281 fzi(i)=fzi(i) + fzt(i)
1283 . + dt1*(vx(i)*fxt(i)+vy(i)*fyt(i)+vz(i)*fzt(i))
1303 v2 = vx(i)**2 + vy(i)**2 + vz(i)**2
1304 vis2(i) = viscf * vis2(i)
1305 fm2 = (xmu(i)*fni(i))**2
1307 a2 =
min(f2,fm2) /
max(em30,f2)
1308 aa = sqrt(a2 * vis2(i))
1313 fxt(i) =
alpha*fx + alphi*cand_fx(index(i))
1314 fyt(i) =
alpha*fy + alphi*cand_fy(index(i))
1315 fzt(i) =
alpha*fz + alphi*cand_fz(index(i))
1316 cand_fx(index(i)) = fxt(i)
1317 cand_fy(index(i)) = fyt(i)
1318 cand_fz(index(i)) = fzt(i)
1321 fxi(i) = fxi(i) + fxt(i)
1322 fyi(i) = fyi(i) + fyt(i)
1323 fzi(i) = fzi(i) + fzt(i)
1325 . + dt1*(vx(i)*fxt(i)+vy(i)*fyt(i)+vz(i)*fzt(i))
1338 v2 = vx(i)**2 + vy(i)**2 + vz(i)**2
1339 vis2(i) = viscf * vis2(i)
1340 fm2 = (xmu(i)*fni(i))**2
1342 a2 =
min(f2,fm2) /
max(em30,f2)
1343 aa = sqrt(a2 * vis2(i))
1348 fxi(i)=fxi(i) + fxt(i)
1349 fyi(i)=fyi(i) + fyt(i)
1350 fzi(i)=fzi(i) + fzt(i)
1351 econvt = econvt + aa * v2 * dt1
1355 IF((anim_v(12)+outp_v(12)+h3d_data%N_VECT_PCONT>0.AND.
1356 . ((tt>=tanim .AND. tt<=tanim_stop).OR.tt>=toutp.OR.(tt>=h3d_data%TH3D.AND.tt<=h3d_data%TH3D_STOP).OR.
1357 . (manim>=4.AND.manim<=15).OR.h3d_data%MH3D/=0))
1358 . .OR.h3d_data%N_VECT_PCONT_MAX>0)
THEN
1359#include "lockon.inc"
1361 ftcont(1,ix1g(i)) =ftcont(1,ix1g(i)) + fxt(i)*h1(i)
1362 ftcont(2,ix1g(i)) =ftcont(2,ix1g(i)) + fyt(i)*h1(i)
1363 ftcont(3,ix1g(i)) =ftcont(3,ix1g(i)) + fzt(i)*h1(i)
1364 ftcont(1,ix2g(i)) =ftcont(1,ix2g(i)) + fxt(i)*h2(i)
1365 ftcont(2,ix2g(i)) =ftcont(2,ix2g(i)) + fyt(i)*h2(i)
1366 ftcont(3,ix2g(i)) =ftcont(3,ix2g(i)) + fzt(i)*h2(i)
1367 ftcont(1,ix3g(i)) =ftcont(1,ix3g(i)) + fxt(i)*h3(i)
1368 ftcont(2,ix3g(i)) =ftcont(2,ix3g(i)) + fyt(i)*h3(i)
1369 ftcont(3,ix3g(i)) =ftcont(3,ix3g(i)) + fzt(i)*h3(i)
1370 ftcont(1,ix4g(i)) =ftcont(1,ix4g(i)) + fxt(i)*h4(i)
1371 ftcont(2,ix4g(i)) =ftcont(2,ix4g(i)) + fyt(i)*h4(i)
1372 ftcont(3,ix4g(i)) =ftcont(3,ix4g(i)) + fzt(i)*h4(i)
1376 ftcont(1,jg)=ftcont(1,jg)- fxt(i)
1377 ftcont(2,jg)=ftcont(2,jg)- fyt(i)
1378 ftcont(3,jg)=ftcont(3,jg)- fzt(i)
1386#include "lockoff.inc"
1400 fsav12=fsav12+abs(impx)
1401 fsav13=fsav13+abs(impy)
1402 fsav14=fsav14+abs(impz)
1403 fsav15=fsav15+sqrt(impx*impx+impy*impy+impz*impz)
1405#include "lockon.inc"
1406 fsav(4) = fsav(4) + fsav4
1407 fsav(5) = fsav(5) + fsav5
1408 fsav(6) = fsav(6) + fsav6
1410 fsav(12) = fsav(12) + fsav12
1411 fsav(13) = fsav(13) + fsav13
1412 fsav(14) = fsav(14) + fsav14
1413 fsav(15) = fsav(15) + fsav15
1414#include "lockoff.inc"
1416 IF(isensint(1)/=0)
THEN
1418 fsavparit(1,4,i+nft) = fxt(i)
1419 fsavparit(1,5,i+nft) = fyt(i)
1420 fsavparit(1,6,i+nft) = fzt(i)
1435 DO WHILE(jj<addsubs(in+1))
1437 DO WHILE(kk<addsubm(ie+1))
1444 fsavsub1(4,jsub)=fsavsub1(4,jsub)+impx
1445 fsavsub1(5,jsub)=fsavsub1(5,jsub)+impy
1446 fsavsub1(6,jsub)=fsavsub1(6,jsub)+impz
1451 fsavsub1(12,jsub)=fsavsub1(12,jsub)+abs(impx)
1452 fsavsub1(13,jsub)=fsavsub1(13,jsub)+abs(impy)
1453 fsavsub1(14,jsub)=fsavsub1(14,jsub)+abs(impz)
1455 fsavsub1(15,jsub)= fsavsub1(15,jsub)
1456 . +sqrt(impx*impx+impy*impy+impz*impz)
1459 ELSE IF(ksub<jsub)
THEN
1483 DO WHILE(kk<addsubm(ie+1))
1490 fsavsub1(4,jsub)=fsavsub1(4,jsub)+impx
1491 fsavsub1(5,jsub)=fsavsub1(5,jsub)+impy
1492 fsavsub1(6,jsub)=fsavsub1(6,jsub)+impz
1497 fsavsub1(12,jsub)=fsavsub1(12,jsub)+abs(impx)
1498 fsavsub1(13,jsub)=fsavsub1(13,jsub)+abs(impy)
1499 fsavsub1(14,jsub)=fsavsub1(14,jsub)+abs(impz)
1501 fsavsub1(15,jsub)= fsavsub1(15,jsub)
1502 . +sqrt(impx*impx+impy*impy+impz*impz)
1505 ELSE IF(ksub<jsub)
THEN
1519#include "lockon.inc"
1523 fsavsub(j,nsub)=fsavsub(j,nsub)+fsavsub1(j,jsub)
1526#include "lockoff.inc"
1529#include "lockon.inc"
1530 econtv = econtv + econvt
1531 econt = econt + econtt
1532#include "lockoff.inc"
1535 IF( (visc/=zero.OR.viscf/=zero)
1536 . .AND.(ivis2==0.OR.ivis2==1))
THEN
1539 IF(msi(i)==zero)
THEN
1545 cy = eight*msi(i)*kt(i)
1546 aux = sqrt(cx+cy)+two*c(i)
1547 stv(i)= kt(i)*aux*aux/
max(cy,em30)
1548 aux = two*cf(i)*cf(i)/
max(msi(i),em20)
1560 IF(ms(j1)==zero)
THEN
1565 k1(i)=kt(i)*abs(h1(i))
1566 c1(i)=c(i)*abs(h1(i))
1567 cx =four*c1(i)*c1(i)
1568 cy =eight*ms(j1)*k1(i)
1569 aux = sqrt(cx+cy)+two*c1(i)
1570 st1(i)= k1(i)*aux*aux/
max(cy,em30)
1571 cfi = cf(i)*abs(h1(i))
1572 aux = two*cfi*cfi/
max(ms(j1),em20)
1581 IF(ms(j1)==zero)
THEN
1586 k2(i)=kt(i)*abs(h2(i))
1587 c2(i)=c(i)*abs(h2(i))
1588 cx =four*c2(i)*c2(i)
1589 cy =eight*ms(j1)*k2(i)
1590 aux = sqrt(cx+cy)+two*c2(i)
1591 st2(i)= k2(i)*aux*aux/
max(cy,em30)
1592 cfi = cf(i)*abs(h2(i))
1593 aux = two*cfi*cfi/
max(ms(j1),em20)
1602 IF(ms(j1)==zero)
THEN
1607 k3(i)=kt(i)*abs(h3(i))
1608 c3(i)=c(i)*abs(h3(i))
1609 cx =four*c3(i)*c3(i)
1610 cy =eight*ms(j1)*k3(i)
1611 aux = sqrt(cx+cy)+two*c3(i)
1612 st3(i)= k3(i)*aux*aux/
max(cy,em30)
1613 cfi = cf(i)*abs(h3(i))
1614 aux = two*cfi*cfi/
max(ms(j1),em20)
1623 IF(ms(j1)==zero)
THEN
1628 k4(i)=kt(i)*abs(h4(i))
1629 c4(i)=c(i)*abs(h4(i))
1630 cx =four*c4(i)*c4(i)
1631 cy =eight*ms(j1)*k4(i)
1632 aux = sqrt(cx+cy)+two*c4(i)
1633 st4(i)= k4(i)*aux*aux/
max(cy,em30)
1634 cfi = cf(i)*abs(h4(i))
1635 aux = two*cfi*cfi/
max(ms(j1),em20)
1649 k1(i) =stif(i)*abs(h1(i))
1652 k2(i) =stif(i)*abs(h2(i))
1655 k3(i) =stif(i)*abs(h3(i))
1658 k4(i) =stif(i)*abs(h4(i))
1665 IF(idtmin(10)==1.OR.idtmin(10)==2.OR.
1666 . idtmin(10)==5.OR.idtmin
THEN
1673 IF(mas2>zero.AND.stif(i)>zero.AND.
1674 . irb(kini(i))==0.AND.irb2(kini(i))==0)
THEN
1675 dtmi(i) =
min(dtmi(i),dtfac1(10)*sqrt(mas2/stif(i)))
1677 mas2 = two* ms(ix1g(i))
1678 IF(mas2>zero.AND.h1(i)*stif
1679 . irb(kinet(ix1g(i)))==0.AND.irb2(kinet(ix1g(i)))==0)
THEN
1680 dtmi(i) =
min(dtmi(i),dtfac1(10)*sqrt(mas2/(h1(i)*stif(i))))
1682 mas2 = two * ms(ix2g(i))
1683 IF(mas2>zero.AND.h2(i)*stif(i)>zero.AND.
1684 . irb(kinet(ix2g(i)))==0.AND.irb2(kinet(ix2g(i)))==0)
THEN
1685 dtmi(i) =
min(dtmi(i
1687 mas2 = two* ms(ix3g(i))
1688 IF(mas2>zero.AND.h3(i)*stif(i)>zero.AND.
1689 . irb(kinet(ix3g(i)))==0.AND.irb2(kinet(ix3g(i)))==0)
THEN
1690 dtmi(i) =
min(dtmi(i),dtfac1(10)*sqrt(mas2/(h3(i)*stif(i
1692 mas2 = two * ms(ix4g(i))
1693 IF(mas2>zero.AND.h4(i)*stif(i)>zero.AND.
1694 . irb(kinet(ix4g(i)))==0.AND.irb2(kinet(ix4g(i)))==0)
THEN
1695 dtmi(i) =
min(dtmi(i),dtfac1(10)*sqrt(mas2/(h4(i)*stif(i))))
1697 dtmi0 =
min(dtmi0,dtmi(i))
1705 IF(mas2>zero.AND.stv(i)>zero.AND.
1706 . irb(kini(i))==0.AND.irb2(kini(i))==0)
THEN
1707 dtmi(i) =
min(dtmi(i),dtfac1(10)*sqrt(mas2/stv(i)))
1709 mas2 = two * ms(ix1g(i))
1710 IF(mas2>zero.AND.st1(i)>zero.AND.
1711 . irb(kinet(ix1g(i)))==0.AND.irb2(kinet(ix1g(i)))==0)
THEN
1712 dtmi(i) =
min(dtmi(i),dtfac1(10)*sqrt(mas2/(st1(i))))
1714 mas2 = two * ms(ix2g(i))
1715 IF(mas2>zero.AND.st2(i)>zero.AND.
1716 . irb(kinet(ix2g(i)))==0.AND.irb2(kinet(ix2g(i)))==0)
THEN
1717 dtmi(i) =
min(dtmi(i),dtfac1(10)*sqrt(mas2/(st2(i))))
1719 mas2 = two * ms(ix3g(i))
1720 IF(mas2>zero.AND.st3(i)>zero.AND.
1721 . irb(kinet(ix3g(i)))==0.AND.irb2(kinet(ix3g(i)))==0)
THEN
1722 dtmi(i) =
min(dtmi(i),dtfac1(10)*sqrt(mas2/(st3(i))))
1724 mas2 = two * ms(ix4g(i))
1725 IF(mas2>zero.AND.st4(i)>zero.AND.
1726 . irb(kinet(ix4g(i)))==0.AND.irb2(kinet(ix4g(i)))==0)
THEN
1727 dtmi(i) =
min(dtmi(i),dtfac1(10)*sqrt(mas2/(st4(i))))
1729 dtmi0 =
min(dtmi0,dtmi(i))
1732 IF(dtmi0<=dtmin1(10))
THEN
1734 IF(dtmi(i)<=dtmin1(10))
THEN
1739 ni =
itafi(nin)%P(-jg)
1741 IF(idtmin(10)==1)
THEN
1742#include "lockon.inc"
1743 WRITE(iout,
'(A,E12.4,A,I10)')
1744 .
' **WARNING MINIMUM TIME STEP ',dtmi(i),
1745 .
' IN INTERFACE ',noint
1746 WRITE(iout,
'(A,I10)')
' SECONDARY NODE : ',ni
1747 WRITE(iout,
'(A,4I10)')
' MAIN NODES : ',
1748 . itab(ix1g(i)),itab(ix2g(i)),itab(ix3g(i)),itab(ix4g(i))
1749#include "lockoff.inc"
1751 ELSEIF(idtmin(10)==2)
THEN
1752#include "lockon.inc"
1753 WRITE(iout,
'(A,E12.4,A,I10)')
1754 .
' **WARNING MINIMUM TIME STEP ',dtmi(i),
1755 .
' IN INTERFACE ',noint
1756 WRITE(iout,
'(A,I10,A,I10)')
' DELETE SECONDARY NODE ',
1757 . ni,
' FROM INTERFACE ',noint
1758 WRITE(iout,
'(A,4I10)')
' MAIN NODES : ',
1759 . itab(ix1g(i)),itab(ix2g(i)),itab(ix3g(i)),itab(ix4g(i))
1761 stfa(nsv(cn_loc(i))) = -abs(stfa(nsv(cn_loc(i))))
1765#include "lockoff.inc"
1767 ELSEIF(idtmin(10)==5)
THEN
1768#include "lockon.inc"
1769 WRITE(iout,
'(A,E12.4,A,I10)')
1770 .
' **WARNING MINIMUM TIME STEP ',dtmi(i),
1771 .
' IN INTERFACE ',noint
1772 WRITE(iout,
'(A,I10)')
' SECONDARY NODE : ',ni
1773 WRITE(iout,
'(A,4I10)')
' MAIN NODES : ',
1774 . itab(ix1g(i)),itab(ix2g(i)),itab(ix3g(i)),itab(ix4g(i))
1775#include "lockoff.inc"
1777 ELSEIF(idtmin(10)==6.AND.ilagm==2)
THEN
1778 IF(kinet(jg)+kinet(ix1g(i))+kinet(ix2g(i))
1779 . +kinet(ix3g(i))+kinet(ix4g(i))==0 )
THEN
1780 cand_n(index(i)) = -iabs(cand_n(index(i)))
1818#include "lockon.inc"
1825 daanc6(1,k,il) = daanc6(1,k,il) - fx6(k,i)
1826 daanc6(2,k,il) = daanc6(2,k,il) - fy6(k,i)
1827 daanc6(3,k,il) = daanc6(3,k,il) - fz6(k,i)
1850 daanc6(1,k,il) = daanc6(1,k,il) + fx6(k,i)
1851 daanc6(2,k,il) = daanc6(2,k,il) + fy6(k,i)
1852 daanc6(3,k,il) = daanc6(3,k,il) + fz6(k,i)
1862 daanc6(1,k,il) = daanc6(1,k,il) + fx6(k,i)
1863 daanc6(2,k,il) = daanc6(2,k,il) + fy6(k,i)
1864 daanc6(3,k,il) = daanc6(3,k,il) + fz6(k,i)
1874 daanc6(1,k,il) = daanc6(1,k,il) + fx6(k,i)
1875 daanc6(2,k,il) = daanc6(2,k,il) + fy6(k,i)
1876 daanc6(3,k,il) = daanc6(3,k,il) + fz6(k,i)
1886 daanc6(1,k,il) = daanc6(1,k,il) + fx6(k,i)
1887 daanc6(2,k,il) = daanc6(2,k,il) + fy6(k,i)
1888 daanc6(3,k,il) = daanc6(3,k,il) + fz6(k,i)
1891#include "lockoff.inc"
1898 IF(gapv(i) > gapr(i))
THEN
1902 xsa = n1(i)*(dxanc(1,il)-h1(i)*dxanc(1,ix1l(i))
1903 . -h2(i)*dxanc(1,ix2l(i))
1904 . -h3(i)*dxanc(1,ix3l(i))
1905 . -h4(i)*dxanc(1,ix4l(i)))
1906 . + n2(i)*(dxanc(2,il)-h1(i)*dxanc(2,ix1l(i))
1907 . -h2(i)*dxanc(2,ix2l(i))
1908 . -h3(i)*dxanc(2,ix3l(i))
1909 . -h4(i)*dxanc(2,ix4l(i)))
1910 . + n3(i)*(dxanc(3,il)-h1(i)*dxanc(3,ix1l(i))
1911 . -h2(i)*dxanc(3,ix2l(i))
1912 . -h3(i)*dxanc(3,ix3l(i))
1913 . -h4(i)*dxanc(3,ix4l(i)))
1921 xsa = n1(i)*(
dxancfi(nin)%P(1,il)-h1(i)*dxanc(1,ix1l(i))
1922 . -h2(i)*dxanc(1,ix2l(i))
1923 . -h3(i)*dxanc(1,ix3l(i))
1924 . -h4(i)*dxanc(1,ix4l(i)))
1925 . + n2(i)*(
dxancfi(nin)%P(2,il)-h1(i)*dxanc(2,ix1l(i))
1926 . -h2(i)*dxanc(2,ix2l(i))
1927 . -h3(i)*dxanc(2,ix3l(i))
1928 . -h4(i)*dxanc(2,ix4l(i)))
1929 . + n3(i)*(
dxancfi(nin)%P(3,il)-h1(i)*dxanc(3,ix1l(i))
1930 . -h2(i)*dxanc(3,ix2l(i))
1931 . -h3(i)*dxanc(3,ix3l(i))
1932 . -h4(i)*dxanc(3,ix4l(i)))
1934 ps = pene(i) - xsa - gapv(i) + gapr(i)
1953 cand_fx(index(i)) = zero
1954 cand_fy(index(i)) = zero
1955 cand_fz(index(i)) = zero
1965 IF(intth == 0 .OR. iform == 0)
THEN
1973 ELSEIF(iform > 0)
THEN
1975 tm = h1(i)*temp(ix1g(i)) + h2(i)*temp(ix2g(i))
1976 . + h3(i)*temp(ix3g(i)) + h4(i)*temp(ix4g(i))
1980 ax1 = xa(1,ix3l(i)) - xa(1,ix1l(i))
1981 ay1 = xa(2,ix3l(i)) - xa(2,ix1l(i))
1982 az1 = xa(3,ix3l(i)) - xa(3,ix1l(i))
1983 ax2 = xa(1,ix4l(i)) - xa(1,ix2l(i))
1984 ay2 = xa(2,ix4l(i)) - xa(2,ix2l(i))
1985 az2 = xa(3,ix4l(i)) - xa(3,ix2l(i))
1987 ax = ay1*az2 - az1*ay2
1988 ay = az1*ax2 - ax1*az2
1989 az = ax1*ay2 - ay1*ax2
1991 area = one_over_8*sqrt(ax*ax+ay*ay+az*az)
1992 phi(i) =
area* (tm - ts)*dt1 / rstif
1993 phi1(i) = -phi(i) *h1(i)
1994 phi2(i) = -phi(i) *h2(i)
1995 phi3(i) = -phi(i) *h3(i)
1996 phi4(i) = -phi(i) *h4(i)
2002#include "mic_lockon.inc"
2011#include "mic_lockoff.inc"
2014 IF(idtmins==2.OR.idtmins_int/=0)
THEN
2016 CALL i7sms2(jlt ,ix1g ,ix2g ,ix3g ,ix4g ,
2017 2 nsvg ,h1 ,h2 ,h3 ,h4 ,stif ,
2018 3 nin ,noint ,mskyi_sms, iskyi_sms,nsms ,
2019 4 kt ,c ,cf ,dtmini,dti )
2027 IF(idtmins_int/=0)
THEN
2035 CALL i7ass3(jlt ,ix1g ,ix2g ,ix3g ,ix4g ,
2036 2 nsvg ,h1 ,h2 ,h3 ,h4 ,stif ,
2037 3 fx1 ,fy1 ,fz1 ,fx2 ,fy2 ,fz2 ,
2038 4 fx3 ,fy3 ,fz3 ,fx4 ,fy4 ,fz4 ,
2039 5 fxi ,fyi ,fzi ,a ,stifn)
2041 CALL i7ass35(jlt ,ix1g ,ix2g ,ix3g ,ix4g ,
2042 2 nsvg ,h1 ,h2 ,h3 ,h4 ,stif ,
2043 3 fx1 ,fy1 ,fz1 ,fx2 ,fy2 ,fz2 ,
2044 4 fx3 ,fy3 ,fz3 ,fx4 ,fy4 ,fz4 ,
2045 5 fxi ,fyi ,fzi ,a ,stifn,viscn,
2046 6 ks ,k1 ,k2 ,k3 ,k4 ,cs ,
2049 ELSEIF(iparit==0)
THEN
2051 CALL i7ass0(jlt ,ix1g ,ix2g ,ix3g ,ix4g ,
2052 2 nsvg ,h1 ,h2 ,h3 ,h4 ,stif ,
2053 3 fx1 ,fy1 ,fz1 ,fx2 ,fy2 ,fz2 ,
2054 4 fx3 ,fy3 ,fz3 ,fx4 ,fy4 ,fz4 ,
2055 5 fxi ,fyi ,fzi ,a ,stifn ,nin ,
2056 6 intth ,phi ,fthe ,phi1 , phi2 ,phi3 ,
2057 7 phi4 ,bid ,bid ,jtask,ibid ,ibid )
2061 CALL i7ass05(jlt ,ix1g ,ix2g ,ix3g ,ix4g ,
2062 2 nsvg ,h1 ,h2 ,h3 ,h4 ,
2063 3 fx1 ,fy1 ,fz1 ,fx2 ,fy2 ,fz2 ,
2064 4 fx3 ,fy3 ,fz3 ,fx4 ,fy4 ,fz4 ,
2065 5 fxi ,fyi ,fzi ,a ,stifn ,viscn ,
2066 6 ks ,k1 ,k2 ,k3 ,k4 ,cs ,
2067 7 c1 ,c2 ,c3 ,c4 ,nin ,intth ,
2068 8 phi ,fthe ,phi1 , phi2 ,phi3 , phi4,jtask,
2069 9 bid ,bid ,ibid ,ibid )
2074 CALL i7ass2(jlt ,ix1g ,ix2g ,ix3g ,ix4g ,
2075 2 nsvg ,h1 ,h2 ,h3 ,h4 ,stif ,
2076 3 fx1 ,fy1 ,fz1 ,fx2 ,fy2 ,fz2 ,
2077 4 fx3 ,fy3 ,fz3 ,fx4 ,fy4 ,fz4 ,
2078 5 fxi ,fyi ,fzi ,fskyi,isky ,niskyfi,
2079 6 nin ,noint ,intth,phi ,ftheskyi,phi1,
2080 7 phi2 ,phi3 , phi4,bid ,bid ,
2083 CALL i7ass25(jlt ,ix1g ,ix2g ,ix3g ,ix4g ,
2084 2 nsvg ,h1 ,h2 ,h3 ,h4 ,
2085 3 fx1 ,fy1 ,fz1 ,fx2 ,fy2 ,fz2 ,
2086 4 fx3 ,fy3 ,fz3 ,fx4 ,fy4 ,fz4 ,
2087 5 fxi ,fyi ,fzi ,fskyi,niskyfi,nin ,
2088 6 ks ,k1 ,k2 ,k3 ,k4 ,cs ,
2089 7 c1 ,c2 ,c3 ,c4 ,isky ,noint ,
2090 8 intth ,phi ,ftheskyi,phi1,phi2 ,phi3,
2091 9 phi4 ,bid ,bid ,ibid ,ibid )
2095 IF(anim_v(4)+outp_v(4)+h3d_data%N_VECT_CONT>0)
THEN
2096#include "lockon.inc"
2099 fcont(1,ix1g(i)) =fcont(1,ix1g(i)) + fx1(i)
2100 fcont(2,ix1g(i)) =fcont(2,ix1g(i)) + fy1(i)
2101 fcont(3,ix1g(i)) =fcont(3,ix1g(i)) + fz1(i)
2102 fcont(1,ix2g(i)) =fcont(1,ix2g(i)) + fx2(i)
2103 fcont(2,ix2g(i)) =fcont(2,ix2g(i)) + fy2(i)
2104 fcont(3,ix2g(i)) =fcont(3,ix2g(i)) + fz2(i)
2105 fcont(1,ix3g(i)) =fcont(1,ix3g(i)) + fx3(i)
2106 fcont(2,ix3g(i)) =fcont(2,ix3g(i)) + fy3(i)
2107 fcont(3,ix3g(i)) =fcont(3,ix3g(i)) + fz3(i)
2108 fcont(1,ix4g(i)) =fcont(1,ix4g(i)) + fx4(i)
2109 fcont(2,ix4g(i)) =fcont(2,ix4g(i)) + fy4(i)
2110 fcont(3,ix4g(i)) =fcont(3,ix4g(i)) + fz4(i)
2114 fcont(1,jg)=fcont(1,jg)- fxi(i)
2115 fcont(2,jg)=fcont(2,jg)- fyi(i)
2116 fcont(3,jg)=fcont(3,jg)- fzi(i)
2120#include "lockoff.inc"
2125 IF(nstrf(1)+nstrf(2)/=0)
THEN
2127 nbinter=nstrf(k0+14)
2130 IF(nstrf(k1s)==noint)
THEN
2132#include "lockon.inc"
2136 IF(secfcum(4,ix1g(k),i)==1.)
THEN
2137 secfcum(1,ix1g(k),i)=secfcum(1,ix1g(k),i)-fx1(k)
2138 secfcum(2,ix1g(k),i)=secfcum(2,ix1g(k),i)-fy1(k)
2139 secfcum(3,ix1g(k),i)=secfcum(3,ix1g(k),i)-fz1(k)
2141 IF(secfcum(4,ix2g(k),i)==1.)
THEN
2142 secfcum(1,ix2g(k),i)=secfcum(1,ix2g(k),i)-fx2(k)
2143 secfcum(2,ix2g(k),i)=secfcum(2,ix2g(k),i)-fy2(k)
2144 secfcum(3,ix2g(k),i)=secfcum(3,ix2g(k),i)-fz2(k)
2146 IF(secfcum(4,ix3g(k),i)==1.)
THEN
2147 secfcum(1,ix3g(k),i)=secfcum(1,ix3g(k),i)-fx3(k)
2148 secfcum(2,ix3g(k),i)=secfcum(2,ix3g(k),i)-fy3(k)
2149 secfcum(3,ix3g(k),i)=secfcum(3,ix3g(k),i)-fz3(k)
2151 IF(secfcum(4,ix4g(k),i)==1.)
THEN
2152 secfcum(1,ix4g(k),i)=secfcum(1,ix4g(k),i)-fx4(k)
2153 secfcum(2,ix4g(k),i)=secfcum(2,ix4g(k),i)-fy4(k)
2154 secfcum(3,ix4g(k),i)=secfcum(3,ix4g(k),i)-fz4(k)
2160 IF(secfcum(4,jg,i)==1.)
THEN
2161 secfcum(1,jg,i)=secfcum(1,jg,i)+fxi(k)
2162 secfcum(2,jg,i)=secfcum(2,jg,i)+fyi(k)
2163 secfcum(3,jg,i)=secfcum(3,jg,i)+fzi(k)
2168#include "lockoff.inc"
2180 IF(ibag/=0.OR.iadm/=0)
THEN
2185 IF(fxi(i)/=zero.OR.fyi(i)/=zero.OR.fzi(i)/=zero)
THEN
2204#include "lockon.inc"
2207 rcontact(jg)=
min(rcontact(jg),rcurvi(i))
2209 rcontact(ix1g(i))=
min(rcontact(ix1g(i)),rcurvi(i))
2210 rcontact(ix2g(i))=
min(rcontact(ix2g(i)),rcurvi(i))
2211 rcontact(ix3g(i))=
min(rcontact(ix3g(i)),rcurvi(i))
2212 rcontact(ix4g(i))=
min(rcontact(ix4g(i)),rcurvi(i))
2213#include "lockoff.inc"
2219#include "lockon.inc"
2223 acontact(jg)=
min(acontact(jg),anglmi(i))
2225#include "lockoff.inc"
2233 IF(pene(i)==zero)
GOTO 400
2235 ibcs = ibcc - 8 * ibcm
2240 CALL ibcoff(ibcs,icodt(ig))
2245 CALL ibcoff(ibcm,icodt(ig))
2247 CALL ibcoff(ibcm,icodt(ig))
2249 CALL ibcoff(ibcm,icodt(ig))
2251 CALL ibcoff(ibcm,icodt(ig))
2396 1 JLT ,A ,V ,IBC ,ICODT ,
2397 2 FSAV ,GAP ,FRIC ,MS ,VISC ,
2398 3 VISCF ,NOINT ,ITAB ,CS_LOC ,CM_LOC ,
2399 4 STIGLO ,STIFN ,STIF ,FSKYI ,ISKY ,
2400 5 FCONT ,STFS ,STFM ,DT2T ,HS1 ,
2401 6 HS2 ,HM1 ,HM2 ,N1 ,N2 ,
2402 7 M1 ,M2 ,IVIS2 ,NELTST ,ITYPTST,
2403 8 NX ,NY ,NZ ,GAPV ,PENISE ,
2404 9 PENIME ,INACTI,NISKYFIE,NEWFRONT,ISECIN ,
2405 A NSTRF ,SECFCUM,VISCN ,NLINSA ,MS1 ,
2406 B MS2 ,MM1 ,MM2 ,VXS1 ,VYS1 ,
2407 C VZS1 ,VXS2 ,VYS2 ,VZS2 ,VXM1 ,
2408 D VYM1 ,VZM1 ,VXM2 ,VYM2 ,VZM2 ,
2409 E NIN ,N1L ,N2L ,M1L ,M2L ,
2410 F DAANC6 ,ALPHAK ,MSKYI_SMS,ISKYI_SMS,NSMS,
2411 G JTASK ,ISENSINT, FSAVPARIT ,NISUB ,NFT,
2421#include "implicit_f.inc"
2422#include "comlock.inc"
2426#include "mvsiz_p.inc"
2430#include "com01_c.inc"
2431#include "com04_c.inc"
2432#include "com06_c.inc"
2433#include "com08_c.inc"
2434#include "scr05_c.inc"
2435#include "scr07_c.inc"
2436#include "scr11_c.inc"
2437#include "scr14_c.inc"
2438#include "scr16_c.inc"
2439#include "scr18_c.inc"
2440#include "units_c.inc"
2441#include "parit_c.inc"
2442#include "impl1_c.inc"
2447 INTEGER NELTST,ITYPTST,JLT,IBC,IVIS2,INACTI,NLINSA,NISKYFIE,NIN
2448 INTEGER ICODT(*), ITAB(*), (*),
2449 . NOINT,NEWFRONT,ISECIN, NSTRF(*), ISKYI_SMS(*)
2450 INTEGER N1(MVSIZ), N2(MVSIZ), M1(MVSIZ), M2(MVSIZ),
2451 . N1L(MVSIZ),N2L(MVSIZ),M1L(MVSIZ),M2L(MVSIZ),
2452 . CS_LOC(MVSIZ), CM_LOC(MVSIZ), NSMS(MVSIZ),JTASK,
2453 . ISENSINT(*),NISUB,NFT
2456 . A(3,*), MS(*), V(3,*), FSAV(*),FCONT(3,*),
2457 . STFS(*),STFM(*),STIFN(*),(LSKYI,NFSKYI),GAPV(*),
2458 . PENISE(2,*), PENIME(2,*),ALPHAK(3,*), MSKYI_SMS(*),
2459 . GAP, FRIC,VISC,VISCF,VIS,DT2T
2461 . HS1(MVSIZ), HS2(MVSIZ), HM1(MVSIZ), HM2(MVSIZ),
2462 . NX(MVSIZ), NY(MVSIZ)(MVSIZ), STIF(MVSIZ),
2463 . SECFCUM(7,NUMNOD,NSECT), VISCN(*),
2464 . MS1(MVSIZ),MS2(MVSIZ),MM1(MVSIZ),MM2(MVSIZ),
2465 . vxs1(mvsiz),vys1(mvsiz),vzs1(mvsiz),vxs2(mvsiz),vys2(mvsiz),
2466 . vzs2(mvsiz),vxm1(mvsiz),vym1(mvsiz),vzm1(mvsiz),vxm2(mvsiz),
2467 . vym2(mvsiz),vzm2(mvsiz),fsavparit(nisub+1,11,*)
2468 DOUBLE PRECISION DAANC6(3,6,*)
2469 TYPE(H3D_DATABASE) :: H3D_DATA
2473 INTEGER I, J1, J , K0,NBINTER,K1S,K, NI, IL, IG
2474 INTEGER NISKYL,NISKYL1,ISIGN
2476 . VX(MVSIZ), VY(MVSIZ), VZ(MVSIZ), VN(MVSIZ),
2477 . FXI(MVSIZ), FYI(MVSIZ), FZI(MVSIZ), FNI(MVSIZ),
2478 . FX1(MVSIZ), FX2(MVSIZ), FX3(MVSIZ), FX4(MVSIZ),
2479 . FY1(MVSIZ), FY2(MVSIZ), FY3(MVSIZ), FY4(MVSIZ),
2480 . FZ1(MVSIZ), FZ2(MVSIZ), FZ3(MVSIZ), FZ4(MVSIZ),
2481 . PENE(MVSIZ),MASMIN(MVSIZ),
2482 . VIS2(MVSIZ), DTMI(MVSIZ),
2483 . VNX, VNY, VNZ, AA, VMAX,S2,DIST,RDIST,
2484 . V2, FM2, DT1INV, VISCA, FAC, FF,
2485 . FX, FY, FZ, F2, MAS2, DTMI0,DTI,
2486 . FACM1, ECONTT, ECONVT, A2,MASM,
2487 . FSAV1, FSAV2, FSAV3, FSAV4, FSAV5, FSAV6,
2491 . ST1(MVSIZ),ST2(MVSIZ),ST3(MVSIZ),ST4(MVSIZ),
2492 . KT(MVSIZ),C(MVSIZ),CF(MVSIZ),
2493 . K1(MVSIZ),K2(MVSIZ),K3(MVSIZ),K4(MVSIZ),
2494 . C1(MVSIZ),C2(MVSIZ),C3(MVSIZ),C4(MVSIZ),
2497 . fx6(6,mvsiz), fy6(6,mvsiz), fz6(6,mvsiz)
2499 IF (iresp == 1)
THEN
2513 s2 = sqrt(nx(i)**2 + ny(i)**2 + nz(i)**2)
2514 pene(i) = gapv(i) - s2
2515 s2 = one/
max(em30,s2)
2521 IF(inacti==5.or.inacti==6)
THEN
2522#include "lockon.inc"
2524 pplus=half*(pene(i)+fiveem2*(gapv(i)-pene(i)))
2525 IF(cs_loc(i)<=nlinsa)
THEN
2526 penise(2,cs_loc(i)) =
max(penise(2,cs_loc(i)),pplus)
2528 ni = cs_loc(i)-nlinsa
2531 penime(2,cm_loc(i)) =
max(penime(2,cm_loc(i)),pplus)
2533#include "lockoff.inc"
2535 IF(cs_loc(i)<=nlinsa)
THEN
2536 pene(i) = pene(i) - penise(1,cs_loc(i)) - penime(1,cm_loc(i))
2537 pene(i) =
max(pene(i),zero)
2538 IF(pene(i)==zero)stif(i)=zero
2539 gapv(i) = gapv(i) - penise(1,cs_loc(i)) - penime(1,cm_loc(i))
2541 ni = cs_loc(i)-nlinsa
2542 pene(i) = pene(i) -
penfie(nin)%P(1,ni) - penime(1,cm_loc(i))
2543 pene(i) =
max(pene(i),zero)
2544 IF(pene(i)==zero)stif(i)=zero
2545 gapv(i) = gapv(i) -
penfie(nin)%P(1,ni) - penime(1,cm_loc(i))
2552 gapv(i) = zep9*gapv(i)
2553 vx(i) = hs1(i)*vxs1(i) + hs2(i)*vxs2(i)
2554 . - hm1(i)*vxm1(i) - hm2(i)*vxm2(i)
2555 vy(i) = hs1(i)*vys1(i) + hs2(i)*vys2(i)
2556 . - hm1(i)*vym1(i) - hm2(i)*vym2(i)
2557 vz(i) = hs1(i)*vzs1(i) + hs2(i)*vzs2(i)
2558 . - hm1(i)*vzm1(i) - hm2(i)*vzm2(i)
2559 vn(i) = nx(i)*vx(i) + ny(i)*vy(i) + nz(i)*vz(i)
2563 fac = gapv(i)/
max( em10,( gapv(i)-pene(i) ) )
2565 IF(( (gapv(i)-pene(i))/gapv(i) )<prec .AND.
2566 . stif(i)>zero )
THEN
2570#include "lockon.inc"
2571 IF(cs_loc(i)<=nlinsa)
THEN
2572 stfs(cs_loc(i)) = -abs(stfs(cs_loc(i)))
2573 WRITE(istdo,*)
'WARNING INTERFACE NB',noint
2574 WRITE(istdo,*)
'LINE CONNECTING NODES ',itab(n1(i)),
2575 . itab(n2(i)),
'DE-ACTIVATED FROM INTERFACE'
2576 WRITE(istdo,*)
'IMPACTED ON ',itab(m1(i)),itab(m2(i))
2577 WRITE(iout,*)
'WARNING INTERFACE NB',noint
2578 WRITE(iout,*)
'GAP=',gapv(i),
'PENE=',pene(i)
2579 WRITE(iout,*)
'LINE CONNECTING NODES ',itab(n1(i)),
2580 . itab(n2(i)),
'DE-ACTIVATED FROM INTERFACE'
2581 WRITE(iout,*)
'IMPACTED ON ',itab(m1(i)),itab(m2(i))
2583 ni = cs_loc(i)-nlinsa
2585 WRITE(istdo,*)
'WARNING INTERFACE NB',noint
2586 WRITE(istdo,*)
'LINE CONNECTING NODES ',
itafie(nin)%P(n1(i)),
2587 .
itafie(nin)%P(n2(i)),
'DE-ACTIVATED FROM INTERFACE'
2588 WRITE(iout,*)
'WARNING INTERFACE NB',noint
2589 WRITE(iout,*)
'GAP=',gapv(i),
'PENE=',pene(i)
2590 WRITE(iout,*)
'LINE CONNECTING NODES ',
itafie(nin)%P(n1(i)),
2591 .
itafie(nin)%P(n2(i)),
'DE-ACTIVATED FROM INTERFACE'
2593#include "lockoff.inc"
2597 econtt = econtt + half*stif(i)*gapv(i)**2 *( facm1 - one -
2599 stif(i) = half*stif(i) * fac
2600 fni(i)= -stif(i) * pene(i)
2606 dist=gapv(i)-pene(i)
2607 rdist = half*dist /
max(em30,-vn(i))
2608 dti =
min(rdist,dti)
2611 IF(dti<=dtmin1(10))
THEN
2613 dist=gapv(i)-pene(i)
2614 dti2 = half*dist /
max(em30,-vn(i))
2615 IF(dti2<=dtmin1(10))
THEN
2616#include "lockon.inc"
2617 IF(cs_loc(i)<=nlinsa)
THEN
2619 .
' **WARNING MINIMUM TIME STEP ',dti2,
2620 .
'IN INTERFACE NB',noint
2621 WRITE(iout,*)
'SECONDARY NODES NB',itab(n1(i)),
2623 WRITE(iout,*)
'MAIN NODES NB',itab(m1(i)),
2627 .
' **WARNING MINIMUM TIME STEP ',dti2,
2628 .
'IN INTERFACE NB',noint
2629 WRITE(iout,*)
'SECONDARY NODES NB',
itafie(nin)%P(n1(i)),
2631 WRITE(iout,*)
'MAIN NODES NB',itab(m1(i)),
2634#include "lockoff.inc"
2635 IF(idtmin(10)==1)
THEN
2637 ELSEIF(idtmin(10)==2)
THEN
2638#include "lockon.inc"
2639 WRITE(iout,*)
'REMOVE SECONDARY LINE FROM INTERFACE'
2640 IF(cs_loc(i)<=nlinsa)
THEN
2641 stfs(cs_loc(i)) = -abs(stfs(cs_loc(i)))
2643 ni = cs_loc(i)-nlinsa
2646#include "lockoff.inc"
2650 ELSEIF(idtmin(10)==5)
THEN
2665 IF(visc/=zero.OR.viscf/=zero)
THEN
2667 mas2 = ms1(i)*hs1(i)
2669 masm = mm1(i)*hm1(i)
2671 masmin(i) =
min(mas2,masm)
2672 vis2(i) = two * stif(i) *
min(mas2,masm)
2677 IF(ivis2==0.OR.ivis2==1)
THEN
2683 . vis2(i) = vis2(i)/(
max(em10,(gapv(i)-pene(i))/gapv(i)))
2687 IF(kdtint==0.AND.idtmins/=2)
THEN
2689 fac = stif(i) /
max(em30,stif(i))
2693 . visca**2 * two * masmin(i) *
max(zero,-vn(i)) /
2694 .
max((gapv(i) - pene(i)),em10) )
2695 stif(i) = stif(i) * gapv(i)/
max((gapv(i)-pene(i)),em10)
2696 stif(i) = stif(i) + ff * dt1inv
2697 stif(i) =
max(stif(i) ,fac*sqrt(viscf)*vis*dt1inv)
2698 ff =
min(ff * vn(i),-fni(i))
2700 fni(i) = fni(i) + ff
2706 fac = stif(i) /
max(em30,stif(i))
2710 . visca**2 * two * masmin(i) *
max(zero,-vn(i)) /
2711 .
max((gapv(i) - pene(i)),em10) )
2712 stif(i) = stif(i) * gapv(i) /
max((gapv(i) - pene(i)),em10)
2714 stif(i) = stif(i) + c(i) * dt1inv
2715 ff =
min(c(i) * vn(i),-fni(i))
2717 fni(i) = fni(i) + ff
2718 cf(i) = fac*sqrt(viscf)*vis
2719 stif(i) =
max(stif(i) ,cf(i)*dt1inv)
2724 ELSEIF(ivis2==2)
THEN
2729 vis2(i) = vis2(i)/(
max(em10,(gapv(i)-pene(i))/gapv(i)))
2734 fac = stif(i) /
max(em30,stif(i))
2738 . visca**2 * two * masmin(i) * abs(vn(i)) /
2739 .
max((gapv(i) - pene(i)),em10) )
2740 stif(i) = stif(i) * gapv(i) /
max((gapv(i)-pene(i)),em10)
2741 stif(i) = stif(i) + two * ff * dt1inv
2742 stif(i) =
max(stif(i) ,fac*sqrt(viscf)*vis*dt1inv)
2743 ff =
min(ff * vn(i),-fni(i))
2744 fni(i) = fni(i) + ff
2746 ELSEIF(ivis2==3)
THEN
2751 fac = stif(i) /
max(em30,stif(i))
2753 ff = fac * ( visc * vis ) /
2754 .
max((gapv(i) - pene(i)),em10)
2755 stif(i) = stif(i) * gapv(i) /
max((gapv(i)-pene(i)),em10)
2756 stif(i) = stif(i) + two * ff * dt1inv
2757 stif(i) =
max(stif(i) ,fac*sqrt(viscf)*vis*dt1inv)
2758 ff =
min(ff * vn(i),-fni(i))
2759 fni(i) = fni(i) + ff
2761 ELSEIF(ivis2==4)
THEN
2767 stif(i) = stif(i) * gapv(i) /
max((gapv(i)-pene(i)),em10)
2768 stif(i) =
max(stif(i) ,fac*sqrt(viscf)*vis*dt1inv)
2770 ELSEIF(ivis2==5)
THEN
2777 mas2 = ms1(i)*hs1(i)
2779 masm = mm1(i)*hm1(i)
2781 vis = 2. * visc * dt1inv * masm * mas2 /
2782 .
max(em30,masm+mas2)
2783 stif(i) = stif(i) * gapv(i) /
max((gapv(i) -pene(i)),em10)
2784 stif(i) =
max(stif(i) ,fac*sqrt(viscf*vis2(i))*dt1inv)
2786 econvt = econvt +
min(zero,ff-fni(i)) * vn(i) * dt1
2787 fni(i) =
min(fni(i),ff)
2793 stif(i) = stif(i) * gapv(i) /
max((gapv(i) - pene(i)),em10)
2799#include "lockon.inc"
2802 IF(pene(i)>zero)isign=-1
2803 aaa = one-pene(i)/gapv(i)
2805 IF(pene(i)>zero.OR.alphak(2,il)<zero)isign=-1
2806 alphak(2,il)=isign*
min(abs(alphak(2,il)),aaa)
2808 IF(pene(i)>zero.OR.alphak(2,il)<zero)isign=-1
2809 alphak(2,il)=isign*
min(abs(alphak(2,il)),aaa)
2810 IF(cs_loc(i) <= nlinsa)
THEN
2812 IF(pene(i)>zero.OR.alphak(2,il)<zero)isign=-1
2813 alphak(2,il)=isign*
min(abs(alphak(2,il)),aaa)
2815 IF(pene(i)>zero.OR.alphak(2,il)<zero)isign=-1
2816 alphak(2,il)=isign*
min(abs(alphak(2,il)),aaa)
2820 IF(pene(i)>zero.OR.alphak(2,il)<zero)isign=-1
2823 IF(pene(i)>zero.OR.alphak(2,il)<zero)isign=-1
2827#include "lockoff.inc"
2838 fsav1=fsav1+fxi(i)*dt12
2839 fsav2=fsav2+fyi(i)*dt12
2840 fsav3=fsav3+fzi(i)*dt12
2843#include "lockon.inc"
2844 fsav(1)=fsav(1)+fsav1
2845 fsav(2)=fsav(2)+fsav2
2846 fsav(3)=fsav(3)+fsav3
2847#include "lockoff.inc"
2849 IF(isensint(1)/=0)
THEN
2851 fsavparit(1,1,i+nft) = fxi(i)
2852 fsavparit(1,2,i+nft) = fyi(i)
2853 fsavparit(1,3,i+nft) = fzi(i)
2859 IF(fric*viscf/=0.)
THEN
2870 v2 = vx(i)**2 + vy(i)**2 + vz(i)**2
2871 vis2(i) = viscf * vis2(i)
2872 fm2 = (fric*fni(i))**2
2874 a2 =
min(f2,fm2) /
max(em30,f2)
2875 aa = sqrt(a2 * vis2(i))
2879 fsav4 = fsav4 + fx*dt12
2880 fsav5 = fsav5 + fy*dt12
2881 fsav6 = fsav6 + fz*dt12
2885 econvt = econvt + aa * v2 * dt1
2888#include "lockon.inc"
2889 fsav(4) = fsav(4) + fsav4
2890 fsav(5) = fsav(5) + fsav5
2891 fsav(6) = fsav(6) + fsav6
2892#include "lockoff.inc"
2894 IF(isensint(1)/=0)
THEN
2896 fm2 = (fric*fni(i))**2
2898 a2 =
min(f2,fm2) /
max(em30,f2)
2899 aa = sqrt(a2 * vis2(i))
2900 fsavparit(1,4,i+nft) = aa * vx(i)
2901 fsavparit(1,5,i+nft) = aa * vy(i)
2902 fsavparit(1,6,i+nft) = aa * vz(i)
2908#include "lockon.inc"
2909 econtv = econtv + econvt
2910 econt = econt + econtt
2911#include "lockoff.inc"
2915 fx1(i)=-fxi(i)*hs1(i)
2916 fy1(i)=-fyi(i)*hs1(i)
2917 fz1(i)=-fzi(i)*hs1(i)
2919 fx2(i)=-fxi(i)*hs2(i)
2920 fy2(i)=-fyi(i)*hs2(i)
2921 fz2(i)=-fzi(i)*hs2(i)
2923 fx3(i)=fxi(i)*hm1(i)
2924 fy3(i)=fyi(i)*hm1(i)
2925 fz3(i)=fzi(i)*hm1(i)
2927 fx4(i)=fxi(i)*hm2(i)
2928 fy4(i)=fyi(i)*hm2(i)
2929 fz4(i)=fzi(i)*hm2(i)
2935#include "mic_lockon.inc"
2937 IF(cs_loc(i)>nlinsa)
THEN
2938 ni = cs_loc(i)-nlinsa
2944#include "mic_lockoff.inc"
2948 stif(i) = two*stif(i)
2952 IF(kdtint==1.OR.idtmins==2)
THEN
2954 . .AND.(ivis2==0.OR.ivis2==1))
THEN
2958 IF(ms1(i)==zero)
THEN
2962 k1(i)=kt(i)*abs(hs1(i))
2963 c1(i)=c(i)*abs(hs1(i))
2964 cx =four*c1(i)*c1(i)
2965 cy =eight*ms1(i)*k1(i)
2966 aux = sqrt(cx+cy)+two*c1(i)
2967 st1(i)= k1(i)*aux*aux/
max(cy,em30)
2968 cfi = cf(i)*abs(hs1(i))
2969 aux = two*cfi*cfi/
max(ms1(i),em20)
2976 IF(ms2(i)==zero)
THEN
2980 k2(i)=kt(i)*abs(hs2(i))
2981 c2(i)=c(i)*abs(hs2(i))
2982 cx =four*c2(i)*c2(i)
2983 cy =eight*ms2(i)*k2(i)
2984 aux = sqrt(cx+cy)+two*c2(i)
2985 st2(i)= k2(i)*aux*aux/
max(cy,em30)
2986 cfi = cf(i)*abs(hs2(i))
2987 aux = two*cfi*cfi/
max(ms2(i),em20)
2994 IF(mm1(i)==zero)
THEN
2998 k3(i)=kt(i)*abs(hm1(i))
2999 c3(i)=c(i)*abs(hm1(i))
3000 cx =four*c3(i)*c3(i)
3001 cy =eight*mm1(i)*k3(i)
3002 aux = sqrt(cx+cy)+two*c3(i)
3003 st3(i)= k3(i)*aux*aux/
max(cy,em30)
3005 aux = two*cfi*cfi/
max(mm1(i),em20)
3012 IF(mm2(i)==zero)
THEN
3016 k4(i)=kt(i)*abs(hm2(i))
3017 c4(i)=c(i)*abs(hm2(i))
3018 cx =four*c4(i)*c4(i)
3019 cy =eight*mm2(i)*k4(i)
3020 aux = sqrt(cx+cy)+two*c4(i)
3021 st4(i)= k4(i)*aux*aux/
max(cy,em30)
3022 cfi = cf(i)*abs(hm2(i))
3023 aux = two*cfi*cfi/
max(mm2(i),em20)
3032 k1(i) =stif(i)*abs(hs1(i))
3034 k2(i) =stif(i)*abs(hs2(i))
3036 k3(i) =stif(i)*abs(hm1(i))
3038 k4(i) =stif(i)*abs(hm2(i))
3049#include "lockon.inc"
3051 IF(cs_loc(i)<=nlinsa)
THEN
3056 daanc6(1,k,il) = daanc6(1,k,il) + fx6(k,i)
3057 daanc6(2,k,il) = daanc6(2,k,il) + fy6(k,i)
3058 daanc6(3,k,il) = daanc6(3,k,il) + fz6(k,i)
3074#include "lockoff.inc"
3078#include "lockon.inc"
3080 IF(cs_loc(i)<=nlinsa)
THEN
3085 daanc6(1,k,il) = daanc6(1,k,il) + fx6(k,i)
3086 daanc6(2,k,il) = daanc6(2,k,il) + fy6(k,i)
3087 daanc6(3,k,il) = daanc6(3,k,il) + fz6(k,i)
3103#include "lockoff.inc"
3110#include "lockon.inc"
3114 daanc6(1,k,il) = daanc6(1,k,il) + fx6(k,i)
3115 daanc6(2,k,il) = daanc6(2,k,il) + fy6(k,i)
3116 daanc6(3,k,il) = daanc6(3,k,il) + fz6(k,i)
3119#include "lockoff.inc"
3123#include "lockon.inc"
3127 daanc6(1,k,il) = daanc6(1,k,il) + fx6(k,i)
3128 daanc6(2,k,il) = daanc6(2,k,il) + fy6(k,i)
3129 daanc6(3,k,il) = daanc6(3,k,il) + fz6(k,i)
3132#include "lockoff.inc"
3143 CALL i20ass0(jlt ,cs_loc,n1 ,n2 ,m1 ,
3144 2 m2 ,hs1 ,hs2 ,hm1 ,hm2 ,
3145 3 fx1 ,fy1 ,fz1 ,fx2 ,fy2 ,
3146 4 fz2 ,fx3 ,fy3 ,fz3 ,fx4 ,
3147 5 fy4 ,fz4 ,a ,stifn,stif ,
3148 6 nlinsa,nin ,jtask)
3150 CALL i20ass05(jlt ,cs_loc,n1 ,n2 ,m1 ,
3151 2 m2 ,hs1 ,hs2 ,hm1 ,hm2 ,
3152 3 fx1 ,fy1 ,fz1 ,fx2 ,fy2 ,
3153 4 fz2 ,fx3 ,fy3 ,fz3 ,fx4 ,
3154 5 fy4 ,fz4 ,a ,stifn,nlinsa,
3155 6 k1 ,k2 ,k3 ,k4 ,c1 ,
3156 7 c2 ,c3 ,c4 ,viscn,nin ,jtask )
3160 CALL i20ass2(jlt ,cs_loc ,n1 ,n2 ,m1 ,
3161 2 m2 ,hs1 ,hs2 ,hm1 ,hm2 ,
3162 3 fx1 ,fy1 ,fz1 ,fx2 ,fy2 ,
3163 4 fz2 ,fx3 ,fy3 ,fz3 ,fx4 ,
3164 5 fy4 ,fz4 ,fskyi ,isky ,niskyfie,
3165 6 stif ,nlinsa ,nin ,noint )
3167 CALL i20ass25(jlt ,cs_loc ,n1 ,n2 ,m1 ,
3168 2 m2 ,hs1 ,hs2 ,hm1 ,hm2 ,
3169 3 fx1 ,fy1 ,fz1 ,fx2 ,fy2 ,
3170 4 fz2 ,fx3 ,fy3 ,fz3 ,fx4 ,
3171 5 fy4 ,fz4 ,isky ,niskyfie,nlinsa ,
3172 6 k1 ,k2 ,k3 ,k4 ,c1 ,
3173 7 c2 ,c3 ,c4 ,nin , noint)
3179 2 m2 ,hs1 ,hs2 ,hm1 ,hm2 ,
3180 3 stif ,nin ,noint ,mskyi_sms ,iskyi_sms,
3181 4 nsms ,k1 ,k2 ,k3 ,k4 ,
3182 5 c1 ,c2 ,c3 ,c4 ,nlinsa )
3184 IF(idtmin(10)==1.OR.idtmin(10)==2)
THEN
3188 mas2 = two * masmin(i)
3189 IF(mas2>zero.AND.stif(i)>zero)
THEN
3190 dtmi(i) =
min(dtmi(i),dtfac1(10)*sqrt(mas2/stif(i)))
3192 dtmi0 =
min(dtmi0,dtmi(i))
3194 IF(dtmi0<=dtmin1(10))
THEN
3196 IF(dtmi(i)<=dtmin1(10))
THEN
3197 IF(idtmin(10)==1)
THEN
3198#include "lockon.inc"
3199 IF(cs_loc(i)<=nlinsa)
THEN
3201 .
' **WARNING MINIMUM TIME STEP ',dtmi(i),
3202 .
' IN INTERFACE NB',noint
3203 WRITE(iout,*)
'SECONDARY NODES NB',itab(n1(i)),
3205 WRITE(iout,*)
'MAIN NODES NB',itab(m1(i)),
3209 .
' **WARNING MINIMUM TIME STEP ',dtmi(i),
3210 .
' IN INTERFACE NB',noint
3211 WRITE(iout,*)
'SECONDARY NODES NB',
itafie(nin)%P(n1(i)),
3213 WRITE(iout,*)
'MAIN NODES NB',itab(m1(i)),
3216#include "lockoff.inc"
3218 ELSEIF(idtmin(10)==2)
THEN
3219#include "lockon.inc"
3220 IF(cs_loc(i)<=nlinsa)
THEN
3222 .
' **WARNING MINIMUM TIME STEP ',dtmi(i),
3223 .
' IN INTERFACE NB',noint
3224 WRITE(iout,*)
'SECONDARY NODES NB',itab(n1(i)),
3226 WRITE(iout,*)
'MAIN NODES NB',itab(m1(i)),
3228 WRITE(iout,*)
'DELETE SECONDARY LINE FROM INTERFACE'
3229 stfs(cs_loc(i)) = -abs(stfs(cs_loc(i)))
3231 ni = cs_loc(i)-nlinsa
3233 .
' **WARNING MINIMUM TIME STEP ',dtmi(i),
3234 .
' IN INTERFACE NB',noint
3235 WRITE(iout,*)
'SECONDARY NODES NB',
itafie(nin)%P(n1(i)),
3237 WRITE(iout,*)
'MAIN NODES NB',itab(m1(i)),
3239 WRITE(iout,*)
'DELETE SECONDARY LINE FROM INTERFACE'
3242#include "lockoff.inc"
3244 ELSEIF(idtmin(10)==5)
THEN
3245#include "lockon.inc"
3246 IF(cs_loc(i)<=nlinsa)
THEN
3248 .
' **WARNING MINIMUM TIME STEP ',dtmi(i),
3249 .
' IN INTERFACE NB',noint
3250 WRITE(iout,*)
'SECONDARY NODES NB',itab(n1(i)),
3252 WRITE(iout,*)
'MAIN NODES NB',itab(m1(i)),
3256 .
' **WARNING MINIMUM TIME STEP ',dtmi(i),
3257 .
' IN INTERFACE NB',noint
3258 WRITE(iout,*)
'SECONDARY NODES NB',
itafie(nin)%P(n1(i)),
3260 WRITE(iout,*)
'MAIN NODES NB',itab(m1(i)),
3263#include "lockoff.inc"
3271 IF(anim_v(4)+outp_v(4)+h3d_data%N_VECT_CONT>0)
THEN
3272#include "lockon.inc"
3275 IF(cs_loc(i)<=nlinsa)
THEN
3276 fcont(1,n1(i)) =fcont(1,n1(i)) + fx1(i)
3277 fcont(2,n1(i)) =fcont(2,n1(i)) + fy1(i)
3278 fcont(3,n1(i)) =fcont(3,n1(i)) + fz1(i)
3279 fcont(1,n2(i)) =fcont(1,n2(i)) + fx2(i)
3280 fcont(2,n2(i)) =fcont(2,n2(i)) + fy2(i)
3281 fcont(3,n2(i)) =fcont(3,n2(i)) + fz2(i)
3283 fcont(1,m1(i)) =fcont(1,m1(i)) + fx3(i)
3284 fcont(2,m1(i)) =fcont(2,m1(i)) + fy3(i)
3285 fcont(3,m1(i)) =fcont(3,m1(i)) + fz3(i)
3286 fcont(1,m2(i)) =fcont(1,m2(i)) + fx4(i)
3287 fcont(2,m2(i)) =fcont(2,m2(i)) + fy4(i)
3288 fcont(3,m2(i)) =fcont(3,m2(i)) + fz4(i)
3291#include "lockoff.inc"
3296 IF(nstrf(1)+nstrf(2)/=0)
THEN
3298 nbinter=nstrf(k0+14)
3301 IF(nstrf(k1s)==noint)
THEN
3303#include "lockon.inc"
3305 IF(cs_loc(i)<=nlinsa)
THEN
3306 IF(secfcum(4,n1(k),i)==1.)
THEN
3307 secfcum(1,n1(k),i)=secfcum(1,n1(k),i)-fx1(k)
3308 secfcum(2,n1(k),i)=secfcum(2,n1(k),i)-fy1(k)
3309 secfcum(3,n1(k),i)=secfcum(3,n1(k),i)-fz1(k)
3311 IF(secfcum(4,n2(k),i)==1.)
THEN
3312 secfcum(1,n2(k),i)=secfcum(1,n2(k),i)-fx2(k)
3313 secfcum(2,n2(k),i)=secfcum(2,n2(k),i)-fy2(k)
3314 secfcum(3,n2(k),i)=secfcum(3,n2(k),i)-fz2(k)
3317 IF(secfcum(4,m1(k),i)==1.)
THEN
3318 secfcum(1,m1(k),i)=secfcum(1,m1(k),i)-fx3(k)
3319 secfcum(2,m1(k),i)=secfcum(2,m1(k),i)-fy3(k)
3320 secfcum(3,m1(k),i)=secfcum(3,m1(k),i)-fz3(k)
3322 IF(secfcum(4,m2(k),i)==1.)
THEN
3323 secfcum(1,m2(k),i)=secfcum(1,m2(k),i)-fx4(k)
3324 secfcum(2,m2(k),i)=secfcum(2,m2(k),i)-fy4(k)
3325 secfcum(3,m2(k),i)=secfcum(3,m2(k),i)-fz4(k)
3328#include "lockoff.inc"