40 SUBROUTINE i25for3(JLT ,A ,V ,IBCC ,ICODT ,
42 3 VISCF ,NOINT ,STFN ,ITAB ,CN_LOC ,
43 4 STIGLO ,STIFN ,STIF ,INACTI ,INDEX ,
44 5 N1 ,N2 ,N3 ,H1 ,H2 ,
45 6 H3 ,H4 ,FCONT ,PENE ,NRTM ,
46 7 IX1 ,IX2 ,IX3 ,IX4 ,NSVG ,
47 8 IVIS2 ,NELTST ,ITYPTST ,DT2T ,
48 A KINET ,NEWFRONT ,ISECIN ,NSTRF ,SECFCUM ,
49 B X ,IRECT ,CE_LOC ,MFROT ,IFQ ,
50 C SECND_FR ,ALPHA0 ,IBAG ,ICONTACT ,IRTLM ,
51 E VISCN ,VXI ,VYI ,VZI ,MSI ,
52 F KINI ,NIN ,NISUB ,LISUB ,ADDSUBS ,
53 G ADDSUBM ,LISUBS ,LISUBM ,INFLG_SUBS ,INFLG_SUBM,
54 H FSAVSUB ,ILAGM ,ICURV ,FNCONT ,FTCONT ,
56 J XI ,YI ,ZI ,ANGLMI ,PADM ,
57 K IADM ,RCURVI ,RCONTACT ,ACONTACT ,PCONTACT ,
58 N MSKYI_SMS ,ISKYI_SMS ,NSMS ,CAND_N_N ,PENE_OLD ,
59 O STIF_OLD ,MBINFLG ,ILEV ,IGSTI ,KMIN ,
60 P INTPLY ,NM1 ,NM2 ,NM3 ,
61 P MSEGTYP ,JTASK ,ISENSINT ,
62 T FSAVPARIT ,H3D_DATA ,FRICC ,VISCFFRIC ,FRIC_COEFS,
63 U GAPV ,VISCFLUID ,SIGMAXADH,VISCADHFACT, IF_ADH ,
64 V AREAS , BASE_ADH ,IORTHFRIC,FRIC_COEFS2,FRICC2 ,
65 W VISCFFRIC2 ,NFORTH ,NFISOT ,INDEXORTH , INDEXISOT,
66 B DIR1 ,DIR2 ,APINCH ,STIFPINCH ,FNI ,
67 C FX1 ,FY1 ,FZ1 ,FX2 ,FY2 ,
68 D FZ2 ,FX3 ,FY3 ,FZ3 ,FX4 ,
69 E FY4 ,FZ4 ,FXI ,FYI ,FZI ,
70 C INTTH ,DRAD ,FHEATS ,FHEATM ,QFRIC ,
71 D EFRICT ,TAGNCONT ,KLOADPINTER,LOADPINTER,LOADP_HYD_INTER,
72 E TYPSUB ,NCFIT ,NINLOADP ,DGAPLOADINT,S_LOADPINTER,
73 F DIST ,DGAPLOADPMAX,INTEREFRIC,INTCAREA,PARAMETERS)
87#include "implicit_f.inc"
100#include "scr05_c.inc"
101#include "scr07_c.inc"
102#include "scr11_c.inc"
103#include "scr14_c.inc"
104#include "scr16_c.inc"
105#include "scr18_c.inc"
107#include "param_c.inc"
108#include "impl1_c.inc"
112 INTEGER NELTST,ITYPTST,JLT,IBCC,IBCM,IBCS,IVIS2,INACTI,IBAG,NIN,
113 . nsn,iorthfric,nforth ,nfisot,
114 . icodt(*), itab(*), kinet(*),irtlm(4,nsn),
115 . mfrot, ifq, noint,newfront,isecin, nstrf(*),
116 . irect(4,*),icontact(*),
117 . kini(*),mbinflg(*),ilev,jtask,
118 . iset, iadm,intth,iform,nrtm,
119 . cand_n_n(*),intply,msegtyp(*),tagncont(nloadp_hyd_inter,numnod)
120 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ),
121 . CN_LOC(MVSIZ),CE_LOC(MVSIZ),INDEX(MVSIZ),NSVG(MVSIZ),
122 . NISUB, LISUB(*), ADDSUBS(*), ADDSUBM(*), LISUBS(*), LISUBM(*),
123 . INFLG_SUBS(*), INFLG_SUBM(*), ILAGM, ICURV(3),
124 . ISKYI_SMS(*), NSMS(*),IGSTI,
125 . ISENSINT(*), IF_ADH(MVSIZ),
126 . INDEXORTH(MVSIZ) ,INDEXISOT(MVSIZ),TYPSUB(*),NCFIT
127 INTEGER ,
INTENT(IN) :: NINLOADP,S_LOADPINTER
128 INTEGER ,
INTENT(IN) :: KLOADPINTER(NINTER+1),LOADPINTER(S_LOADPINTER),
129 . LOADP_HYD_INTER(NLOADP_HYD)
130 INTEGER ,
INTENT(IN) :: INTEREFRIC, INTCAREA
133 . A(3,*), MS(*), V(3,*), FSAV(*),FCONT(3,*),
134 . SECND_FR(6,*),ALPHA0,
135 . VISC,VISCF,VIS,DT2T,STFN(*),STIFN(*),
136 . FSAVSUB(NTHVKI,*), FNCONT(3,*),FTCONT(3,*),
137 . MSKYI_SMS(*),KMIN, VISCFLUID, SIGMAXADH, VISCADHFACT,
138 . APINCH(3,*),STIFPINCH(*)
140 . FXI(MVSIZ), FYI(MVSIZ), FZI(MVSIZ), FNI(MVSIZ),
141 . FX1(MVSIZ), FX2(MVSIZ), FX3(MVSIZ), FX4(MVSIZ),
142 . FY1(MVSIZ), FY2(MVSIZ), FY3(MVSIZ), FY4(MVSIZ),
143 . FZ1(MVSIZ), FZ2(MVSIZ), FZ3(MVSIZ), FZ4(MVSIZ),
144 . LA(MVSIZ), LB(MVSIZ) , LC(MVSIZ) ,STIF(MVSIZ),
146 . secfcum(7,numnod,nsect),
148 . stifsav(mvsiz), viscn(*),
149 . vxi(mvsiz),vyi(mvsiz),vzi(mvsiz),msi(mvsiz),
150 . xx(mvsiz,5),yy(mvsiz,5),zz(mvsiz,5),
151 . xi(mvsiz),yi(mvsiz),zi(mvsiz),
152 . n1(mvsiz), n2(mvsiz), n3(mvsiz),
153 . h1(mvsiz), h2(mvsiz), h3(mvsiz), h4(mvsiz),
154 . nm1(mvsiz), nm2(mvsiz), nm3(mvsiz),
155 . fsavparit(nisub+1,11,*),fric_coefs(mvsiz,10), fricc(mvsiz),
156 . viscffric(mvsiz), gapv(mvsiz), areas(mvsiz), base_adh(mvsiz),
157 . fric_coefs2(mvsiz,10),fricc2(mvsiz),viscffric2(mvsiz), dir1(mvsiz,3),
158 . dir2(mvsiz,3), efrict(mvsiz) ,
159 . drad, fheats, fheatm, qfric
161 . rcurvi(*), rcontact(*), acontact(*),
162 . pcontact(*),padm, anglmi(*),rstif,
163 . pene_old(5,nsn),stif_old(2,nsn)
164 my_real ,
INTENT(IN) :: dgaploadpmax
165 my_real ,
INTENT(IN) :: dgaploadint(s_loadpinter)
166 my_real ,
INTENT(INOUT) :: dist(mvsiz)
168 TYPE (PARAMETERS_) ,
INTENT(IN):: PARAMETERS
172 INTEGER I, J1, IG, J, JG , K0,NBINTER,K1S,K,IL,IE, NN, NI,
173 . NA1,NA2,N,ITAG,NN1,NN2,NN3,NN4,
174 . IGRN,ISS1,ISS2,IMS1,IMS2,PP,PPL,ITYPSUB
176 . FXR(MVSIZ), FYR(MVSIZ), FZR(MVSIZ)
178 . FXT(MVSIZ),FYT(MVSIZ),FZT(MVSIZ),
179 . VIS2(MVSIZ), DTMI(MVSIZ), XMU(MVSIZ),STIF0(MVSIZ), FF(MVSIZ),
180 . VX(MVSIZ), VY(MVSIZ), VZ(MVSIZ), VN(MVSIZ),
181 . XP(MVSIZ), YP(MVSIZ), ZP(MVSIZ), EFRIC_L(MVSIZ),
182 . VNX, VNY, VNZ, AA, CRIT,S2,
183 . V2, FM2, DT1INV, VISCA, FAC,ALPHI,ALPHA,BETA,
184 . FX, FY, FZ, F2, MAS2, M2SK, DTMI0,DTI,FT,FN,,FTN,
185 . FACM1, ECONTT, ECONVT, H0, ECONTDT,
186 . D1,D2,D3,D4,A1,A2,A3,A4,EFRIC_LS,EFRIC_LM,
187 . FSAV1, FSAV2, FSAV3, FSAV4, FSAV5, FSAV6, FSAV7, FSAV8,
188 . FSAV9, FSAV10, FSAV11, FSAV12, FSAV13, FSAV14, FSAV15,
189 . FSAV22, FSAV23, FSAV24, FSAV29, ,
190 . E10, H0D, S2D, SUM,
191 . LA1D,LA2D,LA3D,LA4D,T1,T1D,T2,T2D,FFD,VISD,FACD,D1D,
192 . P1S(MVSIZ),P2S(MVSIZ),P3S(MVSIZ),P4S(MVSIZ),
193 . d2d,d3d,d4d,vnxd,vnyd,vnzd,v2d,fm2d,f2d,aad,fxd,fyd,fzd,
194 . a1d,a2d,a3d,a4d,vv,ax1,ax2,ay1,ay2,az1,az2,ax,ay,az,
195 .
area,p,vv1,vv2,v21,dmu, dti2,h00 ,a0x,a0y,a0z,rx,ry,rz,
196 . anx,any,anz,aan,aax,aay,aaz ,rr,rs,aaa,bbb,stfr,visr ,tm,ts,
197 . vn1(3),vn2(3),vn3(3),vn4(4),
198 . csa ,sna ,alphaf ,ftt1 ,ftt2 ,qfrict,
199 . an(nforth) ,bn(nforth) ,nep1 ,nep2 ,nep ,c11 ,c22 ,ans ,ep,signc
203 . st1(mvsiz),st2(mvsiz),st3(mvsiz),st4(mvsiz),stv(mvsiz),
204 . kt(mvsiz),c(mvsiz),cf(mvsiz),dpene(mvsiz),
205 . ks(mvsiz),k1(mvsiz),k2(mvsiz),k3(mvsiz),k4(mvsiz),
206 . cs(mvsiz),c1(mvsiz),c2(mvsiz),c3(mvsiz),c4(mvsiz),
207 . cx,cy,cfi,aux, fx6(6,mvsiz), fy6(6,mvsiz), fz6(6,mvsiz),
208 . dtmini,stif0_imp(mvsiz),penn,tiny,xmu2(mvsiz)
209 INTEGER JSUB,KSUB,JJ,KK,IN,NSUB
210 INTEGER (MVSIZ),IXSS(4),NOD1,NOD2,NS
212 . FSAVSUB1(25,NISUB),IMPX,IMPY,IMPZ,VNM(MVSIZ),SFAC,STMIN,
213 . FXS(4),FYS(4),FZS(4)
215 . STIFADH, FACTOR , GAPP, DGAPLOAD
242 efric_l(1:jlt) = zero
248 IF(pene(i) == zero.AND.intth == 0.AND.(ninloadp==0.OR.dgaploadpmax==zero))
THEN
254 ELSEIF(pene(i) == zero)
THEN
277 vx(i) = vxi(i) - h1(i)*v(1,ix1(i)) - h2(i)*v(1,ix2(i))
278 . - h3(i)*v(1,ix3(i)) - h4(i)*v(1,ix4(i))
279 vy(i) = vyi(i) - h1(i)*v(2,ix1(i)) - h2(i)*v(2,ix2(i))
280 . - h3(i)*v(2,ix3(i)) - h4(i)*v(2,ix4(i))
281 vz(i) = vzi(i) - h1(i)*v(3,ix1(i)) - h2(i)*v(3,ix2(i))
282 . - h3(i)*v(3,ix3(i)) - h4(i)*v(
283 vn(i) = n1(i)*vx(i) + n2(i)*vy(i) + n3(i)*vz(i)
293 IF(pene(i) == zero) cycle
295 dpene(i) =
max(zero,-vn(i)*dt1)
300 IF(pene(i) > pene_old(2,n) .AND.
301 . dpene(i) < pene(i)-pene_old(2,n))
THEN
302 stif(i) = (stif_old(2,n)*pene_old(2,n)+ stif(i)*dpene(i))
305 stif(i) = stif_old(2,n)
307 pene_old(1,n) = pene(i)
308 stif_old(1,n) = stif(i)
310 pene_old(1,n) =
max(pene_old(1,n),pene(i))
311 stif_old(1,n) =
max(stif_old(1,n),stif(i))
319 . dpene(i) < pene(i)-
pene_oldfi(nin)%P(2,jg))
THEN
321 . + stif(i)*dpene(i)) / pene(i)
342 IF(pene(i) == zero)cycle
344 IF(stiglo<=zero) stif(i) = half*stif(i)
345 fni(i)= -stif(i) * pene(i)
347 ELSEIF(ivis2/=-1)
THEN
349 IF(pene(i) == zero)cycle
351 stif(i) = half*stif(i)
352 ELSEIF(stif(i)/=zero)
THEN
355 fni(i)= -stif(i) * pene(i)
362 IF(pene(i) == zero) cycle
364 stif(i) = half*stif(i)
365 ELSEIF(stif(i)/=zero)
THEN
368 stifadh = sigmaxadh*areas(i)/
max(em30,base_adh(i))
369 IF(pene(i) < base_adh(i))
THEN
370 fni(i) = stifadh*if_adh(i)*(base_adh(i)-pene(i))
372 fni(i) = -stif(i)*(pene(i)-base_adh(i))
380 IF(pene(i) == zero)cycle
381 econtt = econtt+half*stif(i)*pene(i)**2
394 vis2(i) = two * stif(i) * msi(i)
397 IF(kdtint==0.AND.(idtmins/=2.AND.idtmins_int==0))
THEN
399 IF(pene(i) == zero)cycle
400 fac = stif(i) /
max(em30,stif(i))
402 ff(i) = fac * visc * vis
403 stif(i) = stif0(i) + ff(i) * dt1inv
404 stif(i) =
max(stif(i) ,fac*sqrt(viscffric(i))*vis*dt1inv)
405 ff(i) = ff(i) * vn(i)
406 fni(i) = fni(i) + ff(i)
410 IF(pene(i) == zero)cycle
411 fac = stif(i) /
max(em30,stif(i))
413 c(i)= fac * visc * vis
415 stif(i) = stif0(i) + c(i) * dt1inv
417 fni(i) = fni(i) + ff(i)
418 cf(i) = fac*sqrt(viscffric(i))*vis
419 stif(i) =
max(stif(i) ,cf(i)*dt1inv)
427 IF(pene(i) == zero)cycle
428 mas2 = ms(ix1(i))*h1(i)
432 vis2(i) = two* stif(i) * msi(i) * mas2 /
433 .
max(em30,msi(i)+mas2)
436 IF(kdtint==0.AND.(idtmins/=2.AND.idtmins_int==0))
THEN
438 IF(pene(i) == zero)cycle
439 fac = stif(i) /
max(em30,stif(i))
441 ff(i) = fac * visc * vis
442 stif(i) = stif0(i) + ff(i) * dt1inv
443 stif(i) =
max(stif(i) ,fac*sqrt(viscffric(i))*vis*dt1inv)
444 ff(i) = ff(i) * vn(i)
445 fni(i) = fni(i) + ff(i)
449 IF(pene(i) == zero)cycle
450 fac = stif(i) /
max(em30,stif(i))
452 c(i)= fac * visc * vis
454 stif(i) = stif(i) + c(i) * dt1inv
456 fni(i) = fni(i) + ff(i)
457 cf(i) = fac*sqrt(viscffric(i))*vis
458 stif(i) =
max(stif(i) ,cf(i)*dt1inv)
466 IF(pene(i) == zero)cycle
467 vis2(i) = two* stif(i) * msi(i)
468 fac = stif(i) /
max(em30,stif(i))
470 ff(i) = fac * visc * vis
471 stif(i) = stif0(i) + two * ff(i) * dt1inv
472 stif(i) =
max(stif(i) ,fac*sqrt(viscffric(i))*vis*dt1inv)
473 ff(i) = ff(i) * vn(i)
474 fni(i) = fni(i) + ff(i)
481 IF(pene(i) == zero)cycle
482 vis2(i) = two * stif(i) * msi(i)
483 fac = stif(i) /
max(em30,stif(i))
485 ff(i) = fac * visc * vis
486 stif(i) = stif0(i) + two* ff(i) * dt1inv
487 stif(i) =
max(stif(i) ,fac*sqrt(viscffric(i))*vis*dt1inv)
488 ff(i) = ff(i) * vn(i)
489 fni(i) = fni(i) + ff(i)
496 IF(pene(i) == zero)cycle
497 fac = stif(i) /
max(em30,stif(i))
498 vis2(i) = two* stif(i) * msi(i)
500 stif(i) =
max(stif0(i) ,fac*sqrt(viscffric(i))*vis*dt1inv)
509 IF(pene(i) == zero)cycle
511 mas2 = ms(ix1(i))*h1(i)
515 vis2(i) = two* stif(i) * msi(i)
516 vis = 2. * visc * dt1inv * msi(i) * mas2 /
517 .
max(em30,msi(i)+mas2)
518 stif(i) =
max(stif0(i) ,fac*sqrt(viscffric(i)*vis2(i))*dt1inv)
519 ff(i) =
min(zero,ff(i)-fni(i))
520 fni(i) = fni(i)+ff(i)
522 ELSEIF(ivis2==-1)
THEN
527 IF(pene(i) == zero)cycle
528 mas2 = ms(ix1(i))*h1(i)
532 vis2(i) = two* stif(i) * msi(i) * mas2 /
533 .
max(em30,msi(i)+mas2)
536 IF(kdtint==0.AND.(idtmins/=2.AND.idtmins_int==0))
THEN
538 IF(pene(i) == zero)cycle
539 fac = stif(i) /
max(em30,stif(i))
541 stifadh = sigmaxadh*areas(i)/
max(em30,base_adh(i))
542 ff(i) = fac * visc * vis
543 stif(i) = stif0(i) + ff(i) * dt1inv
544 stif(i) =
max(stif(i), stifadh + ff(i) * dt1inv)
545 stif(i) =
max(stif(i),fac*viscadhfact*viscfluid*two/gapv(i)*areas(i)*dt1inv)
546 ff(i) = ff(i) * vn(i)
547 fni(i) = fni(i) + ff(i)
551 IF(pene(i) == zero)cycle
552 fac = stif(i) /
max(em30,stif(i))
554 stifadh = sigmaxadh*areas(i)/
max(em30,base_adh(i))
555 c(i) = fac * visc * vis
557 stif(i) = stif(i) + c(i) * dt1inv
559 fni(i) = fni(i) + ff(i)
560 cf(i) = fac*viscadhfact*viscfluid*two/gapv(i)*areas(i)
561 stif(i) =
max(stif(i), stifadh + c(i) * dt1inv)
562 stif(i) =
max(stif(i) ,cf(i)*dt1inv)
570 IF(viscffric(i)/=zero )
THEN
576 vis2(i) = two * stif(i) * msi(i)
579 IF(kdtint==0.AND.(idtmins/=2.AND.idtmins_int==0))
THEN
580 IF(pene(i) == zero)cycle
581 fac = stif(i) /
max(em30,stif(i))
583 ff(i) = fac * visc * vis
584 stif(i) = stif0(i) + ff(i) * dt1inv
585 stif(i) =
max(stif(i) ,fac*sqrt(viscffric(i))*vis*dt1inv)
586 ff(i) = ff(i) * vn(i)
587 fni(i) = fni(i) + ff(i)
589 IF(pene(i) == zero)cycle
590 fac = stif(i) /
max(em30,stif(i))
592 c(i)= fac * visc * vis
594 stif(i) = stif0(i) + c(i) * dt1inv
596 fni(i) = fni(i) + ff(i)
597 cf(i) = fac*sqrt(viscffric(i))*vis
598 stif(i) =
max(stif(i) ,cf(i)*dt1inv)
604 IF(pene(i) == zero)cycle
605 mas2 = ms(ix1(i))*h1(i)
609 vis2(i) = two* stif(i) * msi(i) * mas2 /
610 .
max(em30,msi(i)+mas2)
612 IF(kdtint==0.AND.(idtmins/=2.AND.idtmins_int==0))
THEN
613 IF(pene(i) == zero)cycle
614 fac = stif(i) /
max(em30,stif(i))
616 ff(i) = fac * visc * vis
617 stif(i) = stif0(i) + ff(i) * dt1inv
618 stif(i) =
max(stif(i) ,fac*sqrt(viscffric(i))*vis*dt1inv)
619 ff(i) = ff(i) * vn(i)
620 fni(i) = fni(i) + ff(i)
622 IF(pene(i) == zero)cycle
623 fac = stif(i) /
max(em30,stif(i))
625 c(i)= fac * visc * vis
627 stif(i) = stif(i) + c(i) * dt1inv
629 fni(i) = fni(i) + ff(i)
630 cf(i) = fac*sqrt(viscffric(i))*vis
631 stif(i) =
max(stif(i) ,cf(i)*dt1inv)
637 IF(pene(i) == zero)cycle
638 vis2(i) = two* stif(i) * msi(i)
639 fac = stif(i) /
max(em30,stif(i))
641 ff(i) = fac * visc * vis
642 stif(i) = stif0(i) + two * ff(i) * dt1inv
643 stif(i) =
max(stif(i) ,fac*sqrt(viscffric(i))*vis*dt1inv)
644 ff(i) = ff(i) * vn(i)
645 fni(i) = fni(i) + ff(i)
650 IF(pene(i) == zero)cycle
651 vis2(i) = two * stif(i) * msi(i)
652 fac = stif(i) /
max(em30,stif(i))
654 ff(i) = fac * visc * vis
655 stif(i) = stif0(i) + two* ff(i) * dt1inv
656 stif(i) =
max(stif(i) ,fac*sqrt(viscffric(i))*vis*dt1inv)
657 ff(i) = ff(i) * vn(i)
658 fni(i) = fni(i) + ff(i)
663 IF(pene(i) == zero)cycle
664 fac = stif(i) /
max(em30,stif(i))
665 vis2(i) = two* stif(i) * msi(i)
667 stif(i) =
max(stif0(i) ,fac*sqrt(viscffric(i))*vis*dt1inv)
674 IF(pene(i) == zero)cycle
675 mas2 = ms(ix1(i))*h1(i)
679 vis2(i) = two* stif(i) * msi(i)
680 vis = 2. * visc * dt1inv * msi(i) * mas2 /
681 .
max(em30,msi(i)+mas2)
682 stif(i) =
max(stif0(i) ,fac*sqrt(viscffric(i)*vis2(i))*dt1inv)
684 ff(i) =
min(zero,ff(i)-fni(i))
685 fni(i) = fni(i)+ff(i)
700 IF(pene(i) == zero)cycle
704 econtdt = econtdt+pene_old(3,n)*vn(i)*dt1
705 pene_old(3,n) = half*ff(i)
706 econtdt = econtdt+pene_old(3,n)*vn(i)*dt1
709 econtdt = econtdt+
pene_oldfi(nin)%P(3,jg)*vn(i)*dt1
711 econtdt = econtdt+
pene_oldfi(nin)%P(3,jg)*vn(i)*dt1
726 IF(pene(i) == zero)cycle
728 ims2 = bitget(mbinflg(ie),1)
735 fsav8 =fsav8 +abs(impx)
736 fsav9 =fsav9 +abs(impy)
737 fsav10=fsav10+abs(impz)
742 fsav11=fsav11-fni(i)*dt12
747 fsav11=fsav11+fni(i)*dt12
749 IF(isensint(1)/=0)
THEN
751 fsavparit(1,1,i) = -fxi(i)
752 fsavparit(1,2,i) = -fyi(i)
753 fsavparit(1,3,i) = -fzi(i)
755 fsavparit(1,1,i) = fxi(i)
756 fsavparit(1,2,i) = fyi(i)
757 fsavparit(1,3,i) = fzi(i)
763 IF(pene(i) == zero)cycle
773 fsav8 =fsav8 +abs(impx)
774 fsav9 =fsav9 +abs(impy)
775 fsav10=fsav10+abs(impz)
776 fsav11=fsav11+fni(i)*dt12
777 IF(isensint(1)/=0)
THEN
778 fsavparit(1,1,i) = fxi(i)
779 fsavparit(1,2,i) = fyi(i)
780 fsavparit(1,3,i) = fzi(i)
785 fsav(1)=fsav(1)+fsav1
786 fsav(2)=fsav(2)+fsav2
787 fsav(3)=fsav(3)+fsav3
788 fsav(8)=fsav(8)+fsav8
789 fsav(9)=fsav(9)+fsav9
790 fsav(10)=fsav(10)+fsav10
791 fsav(11)=fsav(11)+fsav11
792#include "lockoff.inc"
795 IF((anim_v(12)+outp_v(12)+h3d_data%N_VECT_PCONT>0.AND.
796 . ((tt>=tanim .AND. tt<=tanim_stop).OR.tt>=toutp.OR.(tt>=h3d_data%TH3D.AND.tt<=h3d_data%TH3D_STOP).OR.
797 . (manim>=4.AND.manim<=15).OR.h3d_data%MH3D/=0))
798 . .OR.h3d_data%N_VECT_PCONT_MAX>0)
THEN
802 IF(pene(i) == zero)cycle
803 fncont(1,ix1(i)) =fncont(1,ix1(i)) + fxi(i)*h1(i)
804 fncont(2,ix1(i)) =fncont(2,ix1(i)) + fyi(i)*h1(i)
805 fncont(3,ix1(i)) =fncont(3,ix1(i)) + fzi(i)*h1(i)
806 fncont(1,ix2(i)) =fncont(1,ix2(i)) + fxi(i)*h2(i)
807 fncont(2,ix2(i)) =fncont(2,ix2(i)) + fyi(i)*h2(i)
808 fncont(3,ix2(i)) =fncont(3,ix2(i)) + fzi(i)*h2(i)
809 fncont(1,ix3(i)) =fncont(1,ix3(i)) + fxi(i)*h3(i)
810 fncont(2,ix3(i)) =fncont(2,ix3(i)) + fyi(i)*h3(i)
811 fncont(3,ix3(i)) =fncont(3,ix3(i)) + fzi(i)*h3(i)
812 fncont(1,ix4(i)) =fncont(1,ix4(i)) + fxi(i)*h4(i)
813 fncont(2,ix4(i)) =fncont(2,ix4(i)) + fyi(i)*h4(i)
814 fncont(3,ix4(i)) =fncont(3,ix4(i)) + fzi(i)*h4(i)
818 fncont(1,jg)=fncont(1,jg)- fxi(i)
819 fncont(2,jg)=fncont(2,jg)- fyi(i)
820 fncont(3,jg)=fncont(3,jg)- fzi(i)
821 ELSE ! cas noeud remote en spmd
828#include "lockoff.inc"
838 fsavsub1(j,jsub)=zero
842 IF(pene(i) == zero)cycle
847 IF (msegtyp(ce_loc(i)) < 0)
THEN
848 ie= - msegtyp(ce_loc(i))
852 IF(ie > nrtm) ie=ie-nrtm
856 DO WHILE(jj<addsubs(in+1))
859 itypsub = typsub(jsub)
860 IF(itypsub == 1 )
THEN
862 iss1 = bitget(inflg_subs(jj),0)
863 iss2 = bitget(inflg_subs(jj),1)
864 igrn = bitget(inflg_subs(jj),2)
866 DO WHILE((ksub<=jsub).AND.(kk<addsubm(ie+1)))
867 ims1 = bitget(inflg_subm(kk),0)
868 ims2 = bitget(inflg_subm(kk),1)
870 IF(.NOT.(((ims1 == 1 .OR. ims2 == 1) .AND. igrn == 1).OR.
871 . (ims1 == 1 .AND. iss2 == 1).OR.
872 . (ims2 == 1 .AND. iss1 == 1)))
THEN
882 fsavsub1(1,jsub)=fsavsub1(1,jsub)-impx
883 fsavsub1(2,jsub)=fsavsub1(2,jsub)-impy
884 fsavsub1(3,jsub)=fsavsub1(3,jsub)-impz
885 fsavsub1(11,jsub)=fsavsub1(11,jsub)-fni(i)*dt12
887 fsavsub1(1,jsub)=fsavsub1(1,jsub)+impx
888 fsavsub1(2,jsub)=fsavsub1(2,jsub)+impy
889 fsavsub1(3,jsub)=fsavsub1(3,jsub)+impz
890 fsavsub1(11,jsub)=fsavsub1(11,jsub)+fni(i)*dt12
893 IF(isensint(jsub+1)/=0)
THEN
895 fsavparit(jsub+1,1,i) = -fxi(i)
896 fsavparit(jsub+1,2,i) = -fyi(i)
897 fsavparit(jsub+1,3,i) = -fzi(i)
899 fsavparit(jsub+1,1,i) = fxi(i)
900 fsavparit(jsub+1,2,i) = fyi(i)
901 fsavparit(jsub+1,3,i) = fzi(i)
905 fsavsub1(8,jsub) =fsavsub1(8,jsub) +abs(impx)
906 fsavsub1(9,jsub) =fsavsub1(9,jsub) +abs(impy)
907 fsavsub1(10,jsub)=fsavsub1(10,jsub)+abs(impz)
915 ELSEIF(itypsub == 2 )
THEN
921 fsavsub1(1,jsub)=fsavsub1(1,jsub)+impx
922 fsavsub1(2,jsub)=fsavsub1(2,jsub)+impy
923 fsavsub1(3,jsub)=fsavsub1(3,jsub)+impz
925 fsavsub1(8,jsub) =fsavsub1(8,jsub) +abs(impx)
926 fsavsub1(9,jsub) =fsavsub1(9,jsub) +abs(impy)
927 fsavsub1(10,jsub)=fsavsub1(10,jsub)+abs(impz)
929 fsavsub1(11,jsub)=fsavsub1(11,jsub)+fni(i)*dt12
931 IF(isensint(jsub+1)/=0)
THEN
932 fsavparit(jsub+1,1,i) = fxi(i)
933 fsavparit(jsub+1,2,i) = fyi(i)
934 fsavparit(jsub+1,3,i) = fzi(i)
939 ELSEIF(itypsub == 3 )
THEN
941 iss2 = bitget(inflg_subs(jj),0)
942 iss1 = bitget(inflg_subs(jj),1)
944 DO WHILE((ksub<=jsub).AND.(kk<addsubm(ie+1)))
945 ims2 = bitget(inflg_subm(kk),0)
946 ims1 = bitget(inflg_subm(kk),1)
948 IF(.NOT.((ims1 == 1 .AND. iss2 == 1).OR.
949 . (ims2 == 1 .AND. iss1 == 1)))
THEN
961 fsavsub1(1,jsub)=fsavsub1(1,jsub)-impx
962 fsavsub1(2,jsub)=fsavsub1(2,jsub)-impy
963 fsavsub1(3,jsub)=fsavsub1(3,jsub)-impz
964 fsavsub1(11,jsub)=fsavsub1(11,jsub)-fni(i)*dt12
966 fsavsub1(1,jsub)=fsavsub1(1,jsub)+impx
967 fsavsub1(2,jsub)=fsavsub1(2,jsub)+impy
968 fsavsub1(3,jsub)=fsavsub1(3,jsub)+impz
969 fsavsub1(11,jsub)=fsavsub1(11,jsub)+fni(i)*dt12
972 fsavsub1(8,jsub) =fsavsub1(8,jsub) +abs(impx)
973 fsavsub1(9,jsub) =fsavsub1(9,jsub) +abs(impy)
974 fsavsub1(10,jsub)=fsavsub1(10,jsub)+abs(impz)
977 IF(isensint(jsub+1)/=0)
THEN
979 fsavparit(jsub+1,1,i) = -fxi(i)
980 fsavparit(jsub+1,2,i) = -fyi
981 fsavparit(jsub+1,3,i) = -fzi(i)
983 fsavparit(jsub+1,1,i) = fxi(i)
984 fsavparit(jsub+1,2,i) = fyi(i)
985 fsavparit(jsub+1,3,i) = fzi(i)
1000 IF (msegtyp(ce_loc(i)) < 0)
THEN
1001 ie= - msegtyp(ce_loc(i))
1005 IF(ie > nrtm) ie=ie-nrtm
1008 DO WHILE(kk<addsubm(ie+1))
1011 itypsub = typsub(ksub)
1012 IF(itypsub == 2 )
THEN
1018 fsavsub1(1,ksub)=fsavsub1(1,ksub)+impx
1019 fsavsub1(2,ksub)=fsavsub1(2,ksub)+impy
1020 fsavsub1(3,ksub)=fsavsub1(3,ksub)+impz
1022 fsavsub1(8,ksub) =fsavsub1(8,ksub) +abs(impx)
1023 fsavsub1(9,ksub) =fsavsub1(9,ksub) +abs(impy)
1024 fsavsub1(10,ksub)=fsavsub1(10,ksub)+abs(impz)
1026 fsavsub1(11,ksub)=fsavsub1(11,ksub)-fni(i)*dt12
1028 IF(isensint(ksub+1)/=0)
THEN
1029 fsavparit(ksub+1,1,i) = -fxi(i)
1030 fsavparit(ksub+1,2,i) = -fyi(i)
1031 fsavparit(ksub+1,3,i) = -fzi(i)
1042 IF(pene(i) == zero)cycle
1047 IF (msegtyp(ce_loc(i)) < 0)
THEN
1048 ie= - msegtyp(ce_loc(i))
1058 itypsub = typsub(jsub)
1059 IF(itypsub == 1 )
THEN
1065 DO WHILE((ksub<=jsub).AND.(kk<addsubm(ie+1)))
1066 ims1 = bitget(inflg_subm(kk),0)
1067 ims2 = bitget(inflg_subm(kk),1)
1069 IF(.NOT.(((ims1 == 1 .OR. ims2 == 1) .AND. igrn == 1).OR.
1070 . (ims1 == 1 .AND. iss2 == 1).OR.
1071 . (ims2 == 1 .AND. iss1 == 1)))
THEN
1081 fsavsub1(1,jsub)=fsavsub1(1,jsub)-impx
1082 fsavsub1(2,jsub)=fsavsub1(2,jsub)-impy
1083 fsavsub1(3,jsub)=fsavsub1(3,jsub)-impz
1084 fsavsub1(11,jsub)=fsavsub1(11,jsub)-fni(i)*dt12
1086 fsavsub1(1,jsub)=fsavsub1(1,jsub)+impx
1087 fsavsub1(2,jsub)=fsavsub1
1088 fsavsub1(3,jsub)=fsavsub1(3,jsub)+impz
1089 fsavsub1(11,jsub)=fsavsub1(11,jsub)+fni(i)*dt12
1092 IF(isensint(jsub+1)/=0)
THEN
1094 fsavparit(jsub+1,1,i) = -fxi(i)
1095 fsavparit(jsub+1,2,i) = -fyi(i)
1096 fsavparit(jsub+1,3,i) = -fzi(i)
1098 fsavparit(jsub+1,1,i) = fxi(i)
1099 fsavparit(jsub+1,2,i) = fyi(i)
1100 fsavparit(jsub+1,3,i) = fzi(i)
1104 fsavsub1(8,jsub) =fsavsub1(8,jsub) +abs(impx)
1105 fsavsub1(9,jsub) =fsavsub1(9,jsub) +abs(impy)
1106 fsavsub1(10,jsub)=fsavsub1(10,jsub)+abs(impz)
1114 ELSEIF(itypsub == 2 )
THEN
1120 fsavsub1(1,jsub)=fsavsub1(1,jsub)+impx
1121 fsavsub1(2,jsub)=fsavsub1(2,jsub)+impy
1122 fsavsub1(3,jsub)=fsavsub1(3,jsub)+impz
1124 fsavsub1(8,jsub) =fsavsub1(8,jsub) +abs(impx)
1125 fsavsub1(9,jsub) =fsavsub1(9,jsub) +abs(impy)
1126 fsavsub1(10,jsub)=fsavsub1(10,jsub)+abs(impz)
1128 fsavsub1(11,jsub)=fsavsub1(11,jsub)+fni(i)*dt12
1130 IF(isensint(jsub+1)/=0)
THEN
1131 fsavparit(jsub+1,1,i) = fxi(i)
1132 fsavparit(jsub+1,2,i) = fyi(i)
1133 fsavparit(jsub+1,3,i) = fzi(i)
1138 ELSEIF(itypsub == 3 )
THEN
1143 DO WHILE((ksub<=jsub).AND.(kk<addsubm(ie+1)))
1144 ims2 = bitget(inflg_subm(kk
1145 ims1 = bitget(inflg_subm(kk),1)
1147 IF(.NOT.((ims1 == 1 .AND. iss2 == 1).OR.
1148 . (ims2 == 1 .AND. iss1 == 1)))
THEN
1159 fsavsub1(1,jsub)=fsavsub1(1,jsub)-impx
1160 fsavsub1(2,jsub)=fsavsub1(2,jsub)-impy
1161 fsavsub1(3,jsub)=fsavsub1(3,jsub)-impz
1162 fsavsub1(11,jsub)=fsavsub1(11,jsub)-fni(i)*dt12
1164 fsavsub1(1,jsub)=fsavsub1(1,jsub)+impx
1165 fsavsub1(2,jsub)=fsavsub1(2,jsub)+impy
1166 fsavsub1(3,jsub)=fsavsub1(3,jsub)+impz
1167 fsavsub1(11,jsub)=fsavsub1(11,jsub)+fni(i)*dt12
1170 IF(isensint(jsub+1)/=0)
THEN
1172 fsavparit(jsub+1,1,i) = -fxi(i)
1173 fsavparit(jsub+1,2,i) = -fyi(i)
1174 fsavparit(jsub+1,3,i) = -fzi(i)
1176 fsavparit(jsub+1,1,i) = fxi(i)
1177 fsavparit(jsub+1,2,i) = fyi(i)
1178 fsavparit(jsub+1,3,i) = fzi(i)
1182 fsavsub1(8,jsub) =fsavsub1(8,jsub) +abs(impx)
1183 fsavsub1(9,jsub) =fsavsub1(9,jsub) +abs(impy)
1184 fsavsub1(10,jsub)=fsavsub1(10,jsub)+abs(impz)
1202 DO k = kloadpinter(nin)+1, kloadpinter(nin+1)
1204 ppl = loadp_hyd_inter(pp)
1205 dgapload = dgaploadint(k)
1207 gapp= gapv(i) + dgapload
1208 IF(pene(i) > zero .OR.(dist(i) <= gapp))
THEN
1209 tagncont(ppl,ix1(i)) = 1
1210 tagncont(ppl,ix2(i)) = 1
1211 tagncont(ppl,ix3(i)) = 1
1212 tagncont(ppl,ix4(i)) = 1
1216 tagncont(ppl,jg) = 1
1233 IF(iorthfric == 0)
THEN
1241 ELSEIF (mfrot==1)
THEN
1245 IF(pene(i) == 0)
THEN
1249 aa = n1(i)*vx(i) + n2(i)*vy(i) + n3(i)*vz(i)
1250 v2 = (vx(i) - n1(i)*aa)**2
1251 . + (vy(i) - n2(i)*aa)**2
1252 . + (vz(i) - n3(i)*aa)**2
1253 vv = sqrt(
max(em30,v2))
1254 ax1 = x(1,irect(3,ie)) - x(1,irect(1,ie))
1255 ay1 = x(2,irect(3,ie)) - x(2,irect(1,ie))
1256 az1 = x(3,irect(3,ie)) - x(3,irect(1,ie))
1257 ax2 = x(1,irect(4,ie)) - x(1,irect(2,ie))
1258 ay2 = x(2,irect(4,ie)) - x(2,irect(2,ie))
1259 az2 = x(3,irect(4,ie)) - x(3,irect(2,ie))
1260 ax = ay1*az2 - az1*ay2
1261 ay = az1*ax2 - ax1*az2
1262 az = ax1*ay2 - ay1*ax2
1263 area = half*sqrt(ax*ax+ay*ay+az*az)
1265 xmu(i) = fricc(i) + (fric_coefs(i,1) + fric_coefs(i,4)*p ) * p
1266 . +(fric_coefs(i,2) + fric_coefs(i,3)*p) * vv + fric_coefs(i,5)*v2
1267 xmu(i) =
max(xmu(i),em30)
1269 ELSEIF(mfrot==2)
THEN
1273 IF(pene(i) == 0)
THEN
1277 aa = n1(i)*vx(i) + n2(i)*vy(i) + n3(i)*vz(i)
1278 v2 = (vx(i) - n1(i)*aa)**2
1279 . + (vy(i) - n2(i)*aa)**2
1280 . + (vz(i) - n3(i)*aa)**2
1281 vv = sqrt(
max(em30,v2))
1282 ax1 = x(1,irect(3,ie)) - x(1,irect(1,ie))
1283 ay1 = x(2,irect(3,ie)) - x(2,irect(1,ie))
1284 az1 = x(3,irect(3,ie)) - x(3,irect(1,ie))
1285 ax2 = x(1,irect(4,ie)) - x(1,irect(2,ie))
1286 ay2 = x(2,irect(4,ie)) - x(2,irect(2,ie))
1287 az2 = x(3,irect(4,ie)) - x(3,irect(2,ie))
1288 ax = ay1*az2 - az1*ay2
1289 ay = az1*ax2 - ax1*az2
1290 az = ax1*ay2 - ay1*ax2
1291 area = half*sqrt(ax*ax+ay*ay+az*az)
1294 . + fric_coefs(i,1)*exp(fric_coefs(i,2)*vv)*p*p
1295 . + fric_coefs(i,3)*exp(fric_coefs(i,4)*vv)*p
1296 . + fric_coefs(i,5)*exp(fric_coefs(i,6)*vv)
1297 xmu(i) =
max(xmu(i),em30)
1299 ELSEIF (mfrot==3)
THEN
1302 IF(pene(i) == 0)
THEN
1306 aa = n1(i)*vx(i) + n2(i)*vy(i) + n3(i)*vz(i)
1307 v2 = (vx(i) - n1(i)*aa)**2
1308 . + (vy(i) - n2(i)*aa)**2
1309 . + (vz(i) - n3(i)*aa)**2
1310 vv = sqrt(
max(em30,v2))
1311 IF(vv>=0.AND.vv<=fric_coefs(i,5))
THEN
1312 dmu = fric_coefs(i,3)-fric_coefs(i,1)
1313 vv1 = vv / fric_coefs(i,5)
1314 xmu(i) = fric_coefs(i,1)+ dmu*vv1*(two-vv1)
1315 ELSEIF(vv>fric_coefs(i,5).AND.vv<fric_coefs(i,6))
THEN
1316 dmu = fric_coefs(i,4)-fric_coefs(i,3)
1317 vv1 = (vv - fric_coefs(i,5))/(fric_coefs(i,6)-fric_coefs(i,5))
1318 xmu(i) = fric_coefs(i,3)+ dmu * (three-two*vv1)*vv1**2
1320 dmu = fric_coefs(i,2)-fric_coefs(i,4)
1321 vv2 = (vv - fric_coefs(i,6))**2
1322 xmu(i) = fric_coefs(i,2) - dmu / (one + dmu*vv2)
1324 xmu(i) =
max(xmu(i),em30)
1326 ELSEIF(mfrot==4)
THEN
1329 aa = n1(i)*vx(i) + n2(i)*vy(i) + n3(i)*vz(i)
1330 v2 = (vx(i) - n1(i)*aa)**2
1331 . + (vy(i) - n2(i)*aa)**2
1332 . + (vz(i) - n3(i)*aa)**2
1333 vv = sqrt(
max(em30,v2))
1334 xmu(i) = fric_coefs(i,1)
1335 . + (fricc(i)-fric_coefs(i,1))*exp(-fric_coefs(i,2)*vv)
1336 xmu(i) =
max(xmu(i),em30)
1345#include "vectorize.inc"
1350#include "vectorize.inc"
1355 IF(xmu(i)<=em30)
THEN
1363 IF(xmu2(i)<=em30)
THEN
1372 ELSEIF (mfrot==1)
THEN
1374#include "vectorize.inc"
1377 IF(pene(i) == 0)
THEN
1382 aa = n1(i)*vx(i) + n2(i)*vy(i) + n3(i)*vz(i)
1383 v2 = (vx(i) - n1(i)*aa)**2
1384 . + (vy(i) - n2(i)*aa)**2
1385 . + (vz(i) - n3(i)*aa)**2
1386 vv = sqrt(
max(em30,v2))
1388 ax1 = x(1,irect(3,ie)) - x(1,irect(1,ie))
1389 ay1 = x(2,irect(3,ie)) - x(2,irect(1,ie))
1390 az1 = x(3,irect(3,ie)) - x(3,irect(1,ie))
1391 ax2 = x(1,irect(4,ie)) - x(1,irect(2,ie))
1392 ay2 = x(2,irect(4,ie)) - x(2,irect(2,ie))
1393 az2 = x(3,irect(4,ie)) - x(3,irect(2,ie))
1394 ax = ay1*az2 - az1*ay2
1395 ay = az1*ax2 - ax1*az2
1396 az = ax1*ay2 - ay1*ax2
1397 area = half*sqrt(ax*ax+ay*ay+az*az)
1399 xmu(i) = fricc(i) + (fric_coefs(i,1) + fric_coefs(i,4)*p ) * p
1400 . +(fric_coefs(i,2) + fric_coefs(i,3)*p) * vv + fric_coefs(i,5)*v2
1402 xmu(i) =
max(xmu(i),em30)
1405#include "vectorize.inc"
1409 IF(pene(i) == 0)
THEN
1417 ax1 = x(1,irect(3,ie)) - x(1,irect(1,ie))
1418 ay1 = x(2,irect(3,ie)) - x(2,irect(1,ie))
1419 az1 = x(3,irect(3,ie)) - x(3,irect(1,ie))
1420 ax2 = x(1,irect(4,ie)) - x(1,irect(2,ie))
1421 ay2 = x(2,irect(4,ie)) - x(2,irect(2,ie))
1422 az2 = x(3,irect(4,ie)) - x(3,irect(2,ie))
1423 ax = ay1*az2 - az1*ay2
1424 ay = az1*ax2 - ax1*az2
1425 az = ax1*ay2 - ay1*ax2
1426 area = half*sqrt(ax*ax+ay*ay+az*az)
1429 v2 = vx(i)*dir1(k,1) +vy(i)*dir1(k,2)+vz(i)*dir1(k,3)
1431 xmu(i) = fricc(i) + (fric_coefs(i,1) + fric_coefs(i,4)*p ) * p
1432 . +(fric_coefs(i,2) + fric_coefs(i,3)*p) * vv + fric_coefs(i,5)*vv*vv
1434 v2 = vx(i)*dir2(k,1) +vy(i)*dir2(k,2)+vz(i)*dir2(k,3)
1436 xmu2(i) = fricc2(i) + (fric_coefs2(i,1) + fric_coefs2(i,4)*p ) * p
1437 . +(fric_coefs2(i,2) + fric_coefs2(i,3)*p) * vv + fric_coefs2(i,5)*vv*vv
1439 xmu(i) =
max(xmu(i),em30)
1440 xmu2(i) =
max(xmu2(i),em30)
1443#include "vectorize.inc"
1446 IF(xmu(i)<=em30)
THEN
1454 IF(xmu2(i)<=em30)
THEN
1464 ELSEIF(mfrot==2)
THEN
1466#include "vectorize.inc"
1469 IF(pene(i) == 0)
THEN
1475 aa = n1(i)*vx(i) + n2(i)*vy(i) + n3(i)*vz(i)
1476 v2 = (vx(i) - n1(i)*aa)**2
1477 . + (vy(i) - n2(i)*aa)**2
1478 . + (vz(i) - n3(i)*aa)**2
1479 vv = sqrt(
max(em30,v2))
1480 ax1 = x(1,irect(3,ie)) - x(1,irect(1,ie))
1481 ay1 = x(2,irect(3,ie)) - x(2,irect(1,ie))
1482 az1 = x(3,irect(3,ie)) - x(3,irect(1,ie))
1483 ax2 = x(1,irect(4,ie)) - x(1,irect(2,ie))
1484 ay2 = x(2,irect(4,ie)) - x(2,irect(2,ie))
1485 az2 = x(3,irect(4,ie)) - x(3,irect(2,ie))
1486 ax = ay1*az2 - az1*ay2
1487 ay = az1*ax2 - ax1*az2
1488 az = ax1*ay2 - ay1*ax2
1489 area = half*sqrt(ax*ax+ay*ay+az*az)
1492 . + fric_coefs(i,1)*exp(fric_coefs(i,2)*vv)*p*p
1493 . + fric_coefs(i,3)*exp(fric_coefs(i,4)*vv)*p
1494 . + fric_coefs(i,5)*exp(fric_coefs(i,6)*vv)
1495 xmu(i) =
max(xmu(i),em30)
1498#include "vectorize.inc"
1502 IF(pene(i) == 0)
THEN
1509 ax1 = x(1,irect(3,ie)) - x(1,irect(1,ie))
1510 ay1 = x(2,irect(3,ie)) - x(2,irect(1,ie))
1511 az1 = x(3,irect(3,ie)) - x(3,irect(1,ie))
1512 ax2 = x(1,irect(4,ie)) - x(1,irect(2,ie))
1513 ay2 = x(2,irect(4,ie)) - x(2,irect(2,ie))
1514 az2 = x(3,irect(4,ie)) - x(3,irect(2,ie))
1515 ax = ay1*az2 - az1*ay2
1516 ay = az1*ax2 - ax1*az2
1517 az = ax1*ay2 - ay1*ax2
1518 area = half*sqrt(ax*ax+ay*ay+az*az)
1521 v2 = vx(i)*dir1(k,1) +vy(i)*dir1(k,2)+vz(i)*dir1(k,3)
1524 . + fric_coefs(i,1)*exp(fric_coefs(i,2)*vv)*p*p
1525 . + fric_coefs(i,3)*exp(fric_coefs(i,4)*vv)*p
1526 . + fric_coefs(i,5)*exp(fric_coefs(i,6)*vv)
1528 v2 = vx(i)*dir2(k,1) +vy(i)*dir2(k,2)+vz(i)*dir2(k,3)
1531 . + fric_coefs2(i,1)*exp(fric_coefs2(i,2)*vv)*p*p
1532 . + fric_coefs2(i,3)*exp(fric_coefs2(i,4)*vv)*p
1533 . + fric_coefs2(i,5)*exp(fric_coefs2(i,6)*vv)
1535 xmu(i) =
max(xmu(i),em30)
1536 xmu2(i) =
max(xmu2(i),em30)
1539#include "vectorize.inc"
1542 IF(xmu(i)<=em30)
THEN
1550 IF(xmu2(i)<=em30)
THEN
1560 ELSEIF (mfrot==3)
THEN
1562#include "vectorize.inc"
1565 IF(pene(i) == 0)
THEN
1570 aa = n1(i)*vx(i) + n2(i)*vy(i) + n3(i)*vz(i)
1571 v2 = (vx(i) - n1(i)*aa)**2
1572 . + (vy(i) - n2(i)*aa)**2
1573 . + (vz(i) - n3(i)*aa)**2
1574 vv = sqrt(
max(em30,v2))
1575 IF(vv>=0.AND.vv<=fric_coefs(i,5))
THEN
1576 dmu = fric_coefs(i,3)-fric_coefs(i,1)
1577 vv1 = vv / fric_coefs(i,5)
1578 xmu(i) = fric_coefs(i,1)+ dmu*vv1*(two-vv1)
1579 ELSEIF(vv>fric_coefs(i,5).AND.vv<fric_coefs(i,6))
THEN
1580 dmu = fric_coefs(i,4)-fric_coefs(i,3)
1581 vv1 = (vv - fric_coefs(i,5))/(fric_coefs(i,6)-fric_coefs(i,5))
1582 xmu(i) = fric_coefs(i,3)+ dmu * (three-two*vv1)*vv1**2
1584 dmu = fric_coefs(i,2)-fric_coefs(i,4)
1585 vv2 = (vv - fric_coefs(i,6))**2
1586 xmu(i) = fric_coefs(i,2) - dmu / (one + dmu*vv2)
1588 xmu(i) =
max(xmu(i),em30)
1591#include "vectorize.inc"
1594 IF(pene(i) == 0)
THEN
1601 v2 = vx(i)*dir1(k,1) +vy(i)*dir1(k,2)+vz(i)*dir1(k,3)
1603 IF(vv>=0.AND.vv<=fric_coefs(i,5))
THEN
1604 dmu = fric_coefs(i,3)-fric_coefs(i,1)
1605 vv1 = vv / fric_coefs(i,5)
1606 xmu(i) = fric_coefs(i,1)+ dmu*vv1*(two-vv1)
1607 ELSEIF(vv>fric_coefs(i,5).AND.vv<fric_coefs(i,6))
THEN
1608 dmu = fric_coefs(i,4)-fric_coefs(i,3)
1609 vv1 = (vv - fric_coefs(i,5))/(fric_coefs(i,6)-fric_coefs
1610 xmu(i) = fric_coefs(i,3)+ dmu * (three-two*vv1
1612 dmu = fric_coefs(i,2)-fric_coefs(i,4)
1613 vv2 = (vv - fric_coefs(i,6))**2
1614 xmu(i) = fric_coefs(i,2) - dmu / (one + dmu*vv2)
1617 v2 = vx(i)*dir2(k,1) +vy(i)*dir2(k,2)+vz(i)*dir2(k,3)
1619 IF(vv>=0.AND.vv<=fric_coefs2(i,5))
THEN
1620 dmu = fric_coefs2(i,3)-fric_coefs2(i,1)
1621 vv1 = vv / fric_coefs2(i,5)
1622 xmu2(i) = fric_coefs2(i,1)+ dmu*vv1*(two-vv1)
1623 ELSEIF(vv>fric_coefs2(i,5).AND.vv<fric_coefs2(i,6))
THEN
1624 dmu = fric_coefs2(i,4)-fric_coefs2(i,3)
1625 vv1 = (vv - fric_coefs2(i,5))/(fric_coefs2(i,6)-fric_coefs2(i,5))
1626 xmu2(i) = fric_coefs2(i,3)+ dmu * (three-two*vv1)*vv1**2
1628 dmu = fric_coefs2(i,2)-fric_coefs2(i,4)
1629 vv2 = (vv - fric_coefs2(i,6))**2
1630 xmu2(i) = fric_coefs2(i,2) - dmu / (one + dmu*vv2)
1633 xmu(i) =
max(xmu(i),em30)
1634 xmu2(i) =
max(xmu2(i),em30)
1638#include "vectorize.inc"
1641 IF(xmu(i)<=em30)
THEN
1649 IF(xmu2(i)<=em30)
THEN
1659 ELSEIF(mfrot==4)
THEN
1661#include "vectorize.inc"
1664 IF(pene(i) == 0)
THEN
1669 aa = n1(i)*vx(i) + n2(i)*vy(i) + n3(i)*vz(i)
1670 v2 = (vx(i) - n1(i)*aa)**2
1671 . + (vy(i) - n2(i)*aa)**2
1672 . + (vz(i) - n3(i)*aa)**2
1673 vv = sqrt(
max(em30,v2))
1674 xmu(i) = fric_coefs(i,1)
1675 . + (fricc(i)-fric_coefs(i,1))*exp(-fric_coefs(i,2)*vv)
1676 xmu(i) =
max(xmu(i),em30)
1679#include "vectorize.inc"
1682 IF(pene(i) == 0)
THEN
1689 v2 = vx(i)*dir1(i,1) +vy(i)*dir1(i,2)+vz(i)*dir1(i,3)
1692 . + (fric_coefs(i,1)-fricc(i))*exp(-fric_coefs(i,2)*vv)
1694 v2 = vx(i)*dir2(i,1) +vy(i)*dir2(i,2)+vz(i)*dir2(i,3)
1696 xmu2(i) = fric_coefs2(i,1)
1697 . + (fricc2(i)-fric_coefs2(i,1))*exp(-fric_coefs2(i,2)*vv)
1698 xmu(i) =
max(xmu(i),em30)
1699 xmu2(i) =
max(xmu2(i),em30)
1702#include "vectorize.inc"
1705 IF(xmu(i)<=em30)
THEN
1713 IF(xmu2(i)<=em30)
THEN
1735 IF(pene(i)==zero)cycle
1743 factor = viscadhfact*viscfluid*two/gapv(i)*areas(i)
1744 fxt(i) = factor*vx(i)
1745 fyt(i) = factor*vy(i)
1746 fzt(i) = factor*vz(i)
1748 fxi(i) = fxi(i) + fxt(i)
1749 fyi(i) = fyi(i) + fyt(i)
1750 fzi(i) = fzi(i) + fzt(i)
1751 econtdt = econtdt + dt1*(vx(i)*fxt(i)+vy(i)*fyt(i)+vz(i)*fzt(i))
1759 alpha =
max(one,alpha0*dt12)
1764 IF(iorthfric ==0 )
THEN
1769 IF(pene(i) == zero)cycle
1770 fx = stif0(i)*vx(i)*dt12
1772 fz = stif0(i)*vz(i)*dt12
1779 fx = secnd_fr(4,n) + alpha*fx
1780 fy = secnd_fr(5,n) + alpha*fy
1781 fz = secnd_fr(6,n) + alpha*fz
1782 ftn = fx*n1(i) + fy*n2(i) + fz*n3(i)
1786 ft = fx*fx + fy*fy + fz*fz
1788 fn = fxi(i)**2+fyi(i)**2+fzi(i)**2
1789 beta =
min(one,xmu(i)*sqrt(fn/ft))
1795 secnd_fr(1,n) = fxt(i)
1796 secnd_fr(2,n) = fyt(i)
1797 secnd_fr(3,n) = fzt(i)
1810 ftn = fx*n1(i) + fy*n2(i) + fz*n3(i)
1814 ft = fx*fx + fy*fy + fz*fz
1816 fn = fxi(i)**2+fyi(i)**2+fzi(i)**2
1817 beta =
min(one,xmu(i)*sqrt(fn/ft))
1830 fxi(i)=fxi(i) + fxt(i)
1831 fyi(i)=fyi(i) + fyt(i)
1832 fzi(i)=fzi(i) + fzt(i)
1834 IF( intth > 0 .AND.beta/=zero)
THEN
1835 efrict(i) = (fx-fxt(i))*fxt(i) + (fy-fyt(i))*fyt(i) +
1836 . (fz-fzt(i))*fzt(i)
1837 efrict(i) = efrict(i)/stif0(i)
1838 qfrict = qfrict + efrict(i)
1840 efric_l(i) = dt1*(vx(i)*fxt(i)+vy(i)*fyt(i)+vz(i)*fzt(i))
1841 econvt = econvt + efric_l(i)
1847 IF(pene(i) == zero)cycle
1848 fx = stif0(i)*vx(i)*dt12
1849 fy = stif0(i)*vy(i)*dt12
1850 fz = stif0(i)*vz(i)*dt12
1855 fx = secnd_fr(4,n) + alpha*fx
1856 fy = secnd_fr(5,n) + alpha*fy
1857 fz = secnd_fr(6,n) + alpha*fz
1858 ftn = fx*n1(i) + fy*n2(i) + fz*n3(i)
1862 ft = fx*fx + fy*fy + fz*fz
1864 fn = fxi(i)**2+fyi(i)**2+fzi(i)**2
1865 beta =
min(one,xmu(i)*sqrt(fn/ft))
1869 fxi(i)=fxi(i) + fxt(i)
1870 fyi(i)=fyi(i) + fyt(i)
1871 fzi(i)=fzi(i) + fzt(i)
1877 ftn = fx*n1(i) + fy*n2(i) + fz*n3(i)
1881 ft = fx*fx + fy*fy + fz*fz
1883 fn = fxi(i)**2+fyi(i)**2+fzi(i)**2
1884 beta =
min(one,xmu(i)*sqrt(fn/ft))
1888 fxi(i)=fxi(i) + fxt(i)
1889 fyi(i)=fyi(i) + fyt(i)
1890 fzi(i)=fzi(i) + fzt(i)
1901#include "vectorize.inc"
1904 IF(pene(i) == zero)cycle
1905 fx = stif0(i)*vx(i)*dt12
1906 fy = stif0(i)*vy(i)*dt12
1907 fz = stif0(i)*vz(i)*dt12
1914 fx = secnd_fr(4,n) + alpha*fx
1915 fy = secnd_fr(5,n) + alpha*fy
1916 fz = secnd_fr(6,n) + alpha*fz
1917 ftn = fx*n1(i) + fy*n2(i) + fz*n3(i)
1921 ft = fx*fx + fy*fy + fz*fz
1923 fn = fxi(i)**2+fyi(i)**2+fzi(i)**2
1924 beta =
min(one,xmu(i)*sqrt(fn/ft))
1929 secnd_fr(1,n) = fxt(i)
1930 secnd_fr(2,n) = fyt(i)
1931 secnd_fr(3,n) = fzt(i)
1943 ftn = fx*n1(i) + fy*n2(i) + fz*n3(i)
1947 ft = fx*fx + fy*fy + fz*fz
1949 fn = fxi(i)**2+fyi(i)**2+fzi(i)**2
1950 beta =
min(one,xmu(i)*sqrt(fn/ft))
1963 fxi(i)=fxi(i) + fxt(i)
1964 fyi(i)=fyi(i) + fyt(i)
1965 fzi(i)=fzi(i) + fzt(i)
1967 IF( intth > 0 .AND.beta/=zero)
THEN
1968 efrict(i) = (fx-fxt(i))*fxt(i) + (fy-fyt(i))*fyt(i) +
1969 . (fz-fzt(i))*fzt(i)
1970 efrict(i) = efrict(i)/stif0(i)
1971 qfrict = qfrict + efrict(i)
1973 efric_l(i) = dt1*(vx(i)*fxt(i)+vy(i)*fyt(i)+vz(i)*fzt(i))
1974 econvt = econvt + efric_l(i)
1978#include "vectorize.inc"
1981 IF(pene(i) == zero)cycle
1982 fx = stif0(i)*vx(i)*dt12
1983 fy = stif0(i)*vy(i)*dt12
1984 fz = stif0(i)*vz(i)*dt12
1991 fx = secnd_fr(4,n) + alpha*fx
1992 fy = secnd_fr(5,n) + alpha*fy
1993 fz = secnd_fr(6,n) + alpha*fz
1994 ftn = fx*n1(i) + fy*n2(i) + fz*n3(i)
1999 ftt1= fx*dir1(i,1) + fy*dir1(i,2) + fz*dir1(i,3)
2000 ftt2= fx*dir2(i,1) + fy*dir2(i,2) + fz*dir2(i,3)
2001 ft = ftt1*ftt1*an(k) + ftt2*ftt2*bn(k)
2003 fn = fxi(i)**2+fyi(i)**2+fzi(i)**2
2011 ELSEIF(beta > 1)
THEN
2021 nep =nep1*nep1+nep2*nep2
2024 ep=nep1*ftt1+nep2*ftt2
2026 ans=(ep-sqrt(ep))/
max(em20,nep)
2027 nep1 =nep1/
max(em20,nep)
2028 nep2 =nep2/
max(em20,nep)
2034 alphaf = atan(c22/c11)
2036 signc = ftt1/
max(em20,abs(ftt1))
2037 csa = signc*abs(cos(alphaf))
2038 signc = ftt2/
max(em20,abs(ftt2))
2039 sna = signc*abs(sin(alphaf))
2041 ft = sqrt(fn / (csa*csa*an(k) + sna*sna*bn(k)))
2045 fxt(i) = ftt1 * dir1(i,1) + ftt2 * dir2(i,1)
2046 fyt(i) = ftt1 * dir1(i,2) + ftt2 * dir2(i,2)
2047 fzt(i) = ftt1 * dir1(i,3) + ftt2 * dir2(i,3)
2051 secnd_fr(1,n) = fxt(i)
2052 secnd_fr(2,n) = fyt(i)
2053 secnd_fr(3,n) = fzt(i)
2065 ftn = fx*n1(i) + fy*n2(i) + fz*n3(i)
2070 ftt1= fx*dir1(i,1) + fy*dir1(i,2) + fz*dir1(i,3)
2071 ftt2= fx*dir2(i,1) + fy*dir2(i,2) + fz*dir2(i,3)
2072 ft = ftt1*ftt1*an(k) + ftt2*ftt2*bn(k)
2074 fn = fxi(i)**2+fyi(i)**2+fzi(i)**2
2082 ELSEIF(beta > 1)
THEN
2092 nep =nep1*nep1+nep2*nep2
2095 ep=nep1*ftt1+nep2*ftt2
2097 ans=(ep-sqrt(ep))/
max(em20,nep)
2098 nep1 =nep1/
max(em20,nep)
2099 nep2 =nep2/
max(em20,nep)
2105 alphaf = atan(c22/c11)
2107 signc = ftt1/
max(em20,abs(ftt1))
2108 csa = signc*abs(cos(alphaf))
2109 signc = ftt2/
max(em20,abs(ftt2))
2110 sna = signc*abs(sin(alphaf))
2112 ft = sqrt(fn / (csa*csa*an(k) + sna*sna*bn(k)))
2116 fxt(i) = ftt1 * dir1(i,1) + ftt2 * dir2(i,1)
2117 fyt(i) = ftt1 * dir1(i,2) + ftt2 * dir2(i,2)
2118 fzt(i) = ftt1 * dir1(i,3) + ftt2 * dir2(i,3)
2130 fxi(i)=fxi(i) + fxt(i)
2131 fyi(i)=fyi(i) + fyt(i)
2132 fzi(i)=fzi(i) + fzt(i)
2134 IF( intth > 0 .AND.beta/=zero)
THEN
2135 efrict(i) = (fx-fxt(i))*fxt(i) + (fy-fyt(i))*fyt(i) +
2136 . (fz-fzt(i))*fzt(i)
2137 efrict(i) = efrict(i)/stif0(i)
2138 qfrict = qfrict + efrict(i)
2140 efric_l(i) = dt1*(vx(i)*fxt(i)+vy(i)*fyt(i)+vz(i)*fzt(i))
2141 econvt = econvt + efric_l(i)
2146#include "vectorize.inc"
2149 IF(pene(i) == zero)cycle
2150 fx = stif0(i)*vx(i)*dt12
2151 fy = stif0(i)*vy(i)*dt12
2152 fz = stif0(i)*vz(i)*dt12
2157 fx = secnd_fr(4,n) + alpha*fx
2158 fy = secnd_fr(5,n) + alpha*fy
2159 fz = secnd_fr(6,n) + alpha*fz
2160 ftn = fx*n1(i) + fy*n2(i) + fz*n3(i)
2164 ft = fx*fx + fy*fy + fz*fz
2166 fn = fxi(i)**2+fyi(i)**2+fzi(i)**2
2167 beta =
min(one,xmu(i)*sqrt(fn/ft))
2171 fxi(i)=fxi(i) + fxt(i)
2172 fyi(i)=fyi(i) + fyt(i)
2173 fzi(i)=fzi(i) + fzt(i)
2179 ftn = fx*n1(i) + fy*n2(i) + fz*n3(i)
2183 ft = fx*fx + fy*fy + fz*fz
2185 fn = fxi(i)**2+fyi(i)**2+fzi(i)**2
2186 beta =
min(one,xmu(i)*sqrt(fn/ft))
2190 fxi(i)=fxi(i) + fxt(i)
2191 fyi(i)=fyi(i) + fyt(i)
2192 fzi(i)=fzi(i) + fzt(i)
2197#include "vectorize.inc"
2200 IF(pene(i) == zero)cycle
2201 fx = stif0(i)*vx(i)*dt12
2202 fy = stif0(i)*vy(i)*dt12
2203 fz = stif0(i)*vz(i)*dt12
2208 fx = secnd_fr(4,n) + alpha*fx
2209 fy = secnd_fr(5,n) + alpha*fy
2210 fz = secnd_fr(6,n) + alpha*fz
2211 ftn = fx*n1(i) + fy*n2(i) + fz*n3(i)
2215 ftt1= fx*dir1(i,1) + fy*dir1(i,2) + fz*dir1(i,3)
2216 ftt2= fx*dir2(i,1) + fy*dir2(i,2) + fz*dir2(i,3)
2217 ft = ftt1*ftt1*an(k) + ftt2*ftt2*bn(k)
2219 fn = fxi(i)**2+fyi(i)**2+fzi(i)**2
2227 ELSEIF(beta > 1)
THEN
2237 nep =nep1*nep1+nep2*nep2
2240 ep=nep1*ftt1+nep2*ftt2
2242 ans=(ep-sqrt(ep))/
max(em20,nep)
2243 nep1 =nep1/
max(em20,nep)
2244 nep2 =nep2/
max(em20,nep)
2250 alphaf = atan(c22/c11)
2252 signc = ftt1/
max(em20,abs(ftt1))
2253 csa = signc*abs(cos(alphaf))
2254 signc = ftt2/
max(em20,abs(ftt2))
2255 sna = signc*abs(sin(alphaf))
2257 ft = sqrt(fn / (csa*csa*an(k) + sna*sna*bn(k)))
2261 fxt(i) = ftt1 * dir1(i,1) + ftt2 * dir2(i,1)
2262 fyt(i) = ftt1 * dir1(i,2) + ftt2 * dir2(i,2)
2263 fzt(i) = ftt1 * dir1(i,3) + ftt2 * dir2(i,3)
2266 fxi(i)=fxi(i) + fxt(i)
2267 fyi(i)=fyi(i) + fyt(i)
2268 fzi(i)=fzi(i) + fzt(i)
2274 ftn = fx*n1(i) + fy*n2(i) + fz*n3(i)
2278 ftt1= fx*dir1(i,1) + fy*dir1(i,2) + fz*dir1(i,3)
2279 ftt2= fx*dir2(i,1) + fy*dir2(i,2) + fz*dir2(i,3)
2280 ft = ftt1*ftt1*an(k) + ftt2*ftt2*bn(k)
2282 fn = fxi(i)**2+fyi(i)**2+fzi(i)**2
2290 ELSEIF(beta > 1)
THEN
2300 nep =nep1*nep1+nep2*nep2
2303 ep=nep1*ftt1+nep2*ftt2
2305 ans=(ep-sqrt(ep))/
max(em20,nep)
2306 nep1 =nep1/
max(em20,nep)
2307 nep2 =nep2/
max(em20,nep)
2313 alphaf = atan(c22/c11)
2315 signc = ftt1/
max(em20,abs(ftt1))
2316 csa = signc*abs(cos(alphaf))
2317 signc = ftt2/
max(em20,abs(ftt2))
2318 sna = signc*abs(sin(alphaf))
2320 ft = sqrt(fn / (csa*csa*an(k) + sna*sna*bn(k)))
2324 fxt(i) = ftt1 * dir1(i,1) + ftt2 * dir2(i,1)
2325 fyt(i) = ftt1 * dir1(i,2) + ftt2 * dir2(i,2)
2326 fzt(i) = ftt1 * dir1(i,3) + ftt2 * dir2(i,3)
2329 fxi(i)=fxi(i) + fxt(i)
2330 fyi(i)=fyi(i) + fyt(i)
2331 fzi(i)=fzi(i) + fzt(i)
2344 IF((anim_v(12)+outp_v(12)+h3d_data%N_VECT_PCONT>0.AND.
2345 . ((tt>=tanim .AND. tt<=tanim_stop).OR.tt>=toutp.OR.(tt>=h3d_data%TH3D.AND.tt<=h3d_data%TH3D_STOP).OR.
2346 . (manim>=4.AND.manim<=15).OR.h3d_data%MH3D/=0))
2347 . .OR.h3d_data%N_VECT_PCONT_MAX>0)
THEN
2349#include "lockon.inc"
2351 IF(pene(i) == zero)cycle
2352 ftcont(1,ix1(i)) =ftcont(1,ix1(i)) + fxt(i)*h1(i)
2353 ftcont(2,ix1(i)) =ftcont(2,ix1(i)) + fyt(i)*h1(i)
2354 ftcont(3,ix1(i)) =ftcont(3,ix1(i)) + fzt(i)*h1(i)
2355 ftcont(1,ix2(i)) =ftcont(1,ix2(i)) + fxt(i)*h2(i)
2356 ftcont(2,ix2(i)) =ftcont(2,ix2(i)) + fyt(i)*h2(i)
2357 ftcont(3,ix2(i)) =ftcont(3,ix2(i)) + fzt(i)*h2(i)
2358 ftcont(1,ix3(i)) =ftcont(1,ix3(i)) + fxt(i)*h3(i)
2359 ftcont(2,ix3(i)) =ftcont(2,ix3(i)) + fyt(i)*h3(i)
2360 ftcont(3,ix3(i)) =ftcont(3,ix3(i)) + fzt(i)*h3(i)
2361 ftcont(1,ix4(i)) =ftcont(1,ix4(i)) + fxt(i)*h4(i)
2362 ftcont(2,ix4(i)) =ftcont(2,ix4(i)) + fyt(i)*h4(i)
2363 ftcont(3,ix4(i)) =ftcont(3,ix4(i)) + fzt(i)*h4(i)
2367 ftcont(1,jg)=ftcont(1,jg)- fxt(i)
2368 ftcont(2,jg)=ftcont(2,jg)- fyt(i)
2369 ftcont(3,jg)=ftcont(3,jg)- fzt(i)
2377#include "lockoff.inc"
2394 IF(pene(i) == zero)cycle
2404 fsav12=fsav12+abs(impx)
2405 fsav13=fsav13+abs(impy)
2406 fsav14=fsav14+abs(impz)
2407 fsav15=fsav15+sqrt(impx*impx+impy*impy+impz*impz)
2408 xp(i)=xi(i)+pene(i)*n1(i)
2409 yp(i)=yi(i)+pene(i)*n2(i)
2410 zp(i)=zi(i)+pene(i)*n3(i)
2411 fsav22=fsav22+yp(i)*impz-zp(i)*impy
2412 fsav23=fsav23+zp(i)*impx-xp(i)*impz
2413 fsav24=fsav24+xp(i)*impy-yp(i)*impx
2416 IF(intcarea > 0)
THEN
2418 IF(pene(i) == zero)cycle
2421 fsav29=fsav29+parameters%INTAREAN(jg)
2426#include "lockon.inc"
2427 fsav(4) = fsav(4) + fsav4
2428 fsav(5) = fsav(5) + fsav5
2429 fsav(6) = fsav(6) + fsav6
2430 fsav(12) = fsav(12) + fsav12
2431 fsav(13) = fsav(13) + fsav13
2432 fsav(14) = fsav(14) + fsav14
2433 fsav(15) = fsav(15) + fsav15
2434 fsav(22) = fsav(22) + fsav22
2435 fsav(23) = fsav(23) + fsav23
2436 fsav(24) = fsav(24) + fsav24
2437 fsav(25) = fsav(25) + (fheats+fheatm)*qfrict
2438 fsav(26) = fsav(26) + econtt
2439 fsav(27) = fsav(27) + econvt - (fheats+fheatm)*qfrict
2440 fsav(28) = fsav(28) + econtdt
2441 fsav(29) = fsav(29) + fsav29
2442#include "lockoff.inc"
2444 IF(isensint(1)/=0)
THEN
2446 IF(pene(i) == zero)cycle
2447 fsavparit(1,4,i) = fxt(i)
2448 fsavparit(1,5,i) = fyt(i)
2449 fsavparit(1,6,i) = fzt(i)
2458 IF(pene(i) == zero)cycle
2463 IF (msegtyp(ce_loc(i)) < 0)
THEN
2464 ie= - msegtyp(ce_loc(i))
2468 IF(ie > nrtm) ie=ie-nrtm
2473 DO WHILE(jj<addsubs(in+1))
2477 itypsub = typsub(jsub)
2478 IF(itypsub == 1 )
THEN
2481 iss1 = bitget(inflg_subs(jj),0)
2482 iss2 = bitget(inflg_subs(jj),1)
2483 igrn = bitget(inflg_subs(jj),2)
2485 DO WHILE((ksub<=jsub).AND.(kk<addsubm(ie+1)))
2486 ims1 = bitget(inflg_subm(kk),0)
2487 ims2 = bitget(inflg_subm(kk),1)
2490 IF(.NOT.(((ims1 == 1 .OR. ims2 == 1) .AND. igrn == 1).OR.
2491 . (ims1 == 1 .AND. iss2 == 1).OR.
2492 . (ims2 == 1 .AND. iss1 == 1)))
THEN
2501 fsavsub1(4,jsub)=fsavsub1(4,jsub)+impx
2502 fsavsub1(5,jsub)=fsavsub1(5,jsub)+impy
2503 fsavsub1(6,jsub)=fsavsub1(6,jsub)+impz
2508 fsavsub1(12,jsub)=fsavsub1(12,jsub)+abs(impx)
2509 fsavsub1(13,jsub)=fsavsub1(13,jsub)+abs(impy)
2510 fsavsub1(14,jsub)=fsavsub1(14,jsub)+abs(impz)
2512 IF(isensint(jsub+1)/=0)
THEN
2513 fsavparit(jsub+1,4,i) = fxt(i)
2514 fsavparit(jsub+1,5,i) = fyt(i)
2515 fsavparit(jsub+1,6,i) = fzt(i)
2518 fsavsub1(15,jsub)= fsavsub1(15,jsub)
2519 . +sqrt(impx*impx+impy*impy+impz*impz)
2520 fsavsub1(22,jsub)=fsavsub1(22,jsub)
2521 . +yp(i)*impz-zp(i)*impy
2522 fsavsub1(23,jsub)=fsavsub1(23,jsub)
2523 . +zp(i)*impx-xp(i)*impz
2524 fsavsub1(24,jsub)=fsavsub1(24,jsub)
2525 . +xp(i)*impy-yp(i)*impx
2527 IF(parameters%INTCAREA > 0) fsavsub1(25,jsub) = fsavsub1(25,jsub) + parameters%INTAREAN(nn)
2535 ELSEIF(itypsub == 2 )
THEN
2541 fsavsub1(4,jsub)=fsavsub1(4,jsub)+impx
2542 fsavsub1(5,jsub)=fsavsub1(5,jsub)+impy
2543 fsavsub1(6,jsub)=fsavsub1(6,jsub)+impz
2548 fsavsub1(12,jsub)=fsavsub1(12,jsub)+abs(impx)
2549 fsavsub1(13,jsub)=fsavsub1(13,jsub)+abs(impy)
2550 fsavsub1(14,jsub)=fsavsub1(14,jsub)+abs(impz)
2552 IF(isensint(jsub+1)/=0)
THEN
2553 fsavparit(jsub+1,4,i) = fxt(i)
2554 fsavparit(jsub+1,5,i) = fyt(i)
2555 fsavparit(jsub+1,6,i) = fzt(i)
2558 fsavsub1(15,jsub)= fsavsub1(15,jsub)
2559 . +sqrt(impx*impx+impy*impy+impz*impz)
2560 fsavsub1(22,jsub)=fsavsub1(22,jsub)
2561 . +yp(i)*impz-zp(i)*impy
2562 fsavsub1(23,jsub)=fsavsub1(23,jsub)
2563 . +zp(i)*impx-xp(i)*impz
2564 fsavsub1(24,jsub)=fsavsub1(24,jsub)
2565 . +xp(i)*impy-yp(i)*impx
2567 IF(parameters%INTCAREA > 0) fsavsub1(25,jsub) = fsavsub1(25,jsub) + parameters%INTAREAN(nn)
2571 ELSEIF(itypsub == 3 )
THEN
2575 iss2 = bitget(inflg_subs(jj),0)
2576 iss1 = bitget(inflg_subs(jj),1)
2578 DO WHILE((ksub<=jsub).AND.(kk<addsubm(ie+1)))
2579 ims2 = bitget(inflg_subm(kk),0)
2580 ims1 = bitget(inflg_subm(kk),1)
2583 IF(.NOT.((ims1 == 1 .AND. iss2 == 1).OR.
2584 . (ims2 == 1 .AND. iss1 == 1)))
THEN
2596 fsavsub1(4,jsub)=fsavsub1(4,jsub)-impx
2597 fsavsub1(5,jsub)=fsavsub1(5,jsub)-impy
2598 fsavsub1(6,jsub)=fsavsub1(6,jsub)-impz
2600 fsavsub1(4,jsub)=fsavsub1(4,jsub)+impx
2601 fsavsub1(5,jsub)=fsavsub1(5,jsub)+impy
2602 fsavsub1(6,jsub)=fsavsub1(6,jsub)+impz
2605 fsavsub1(12,jsub)=fsavsub1(12,jsub)+abs(impx)
2606 fsavsub1(13,jsub)=fsavsub1(13,jsub)+abs(impy)
2607 fsavsub1(14,jsub)=fsavsub1(14,jsub)+abs(impz)
2609 IF(isensint(jsub+1)/=0)
THEN
2611 fsavparit(jsub+1,4,i) = -fxt(i)
2612 fsavparit(jsub+1,5,i) = -fyt(i)
2613 fsavparit(jsub+1,6,i) = -fzt(i)
2615 fsavparit(jsub+1,4,i) = fxt(i)
2616 fsavparit(jsub+1,5,i) = fyt(i)
2617 fsavparit(jsub+1,6,i) = fzt(i)
2621 fsavsub1(15,jsub)= fsavsub1(15,jsub)
2622 . +sqrt(impx*impx+impy*impy+impz*impz)
2623 fsavsub1(22,jsub)=fsavsub1(22,jsub)
2624 . +yp(i)*impz-zp(i)*impy
2625 fsavsub1(23,jsub)=fsavsub1(23,jsub)
2626 . +zp(i)*impx-xp(i)*impz
2627 fsavsub1(24,jsub)=fsavsub1(24,jsub)
2628 . +xp(i)*impy-yp(i)*impx
2630 IF(parameters%INTCAREA > 0) fsavsub1(25,jsub) = fsavsub1(25,jsub) + parameters%INTAREAN(nn)
2643 IF (msegtyp(ce_loc(i)) < 0)
THEN
2644 ie= - msegtyp(ce_loc(i))
2648 IF(ie > nrtm) ie=ie-nrtm
2651 DO WHILE(kk<addsubm(ie+1))
2655 itypsub = typsub(ksub)
2656 IF(itypsub == 2 )
THEN
2661 fsavsub1(4,ksub)=fsavsub1(4,ksub)+impx
2662 fsavsub1(5,ksub)=fsavsub1(5,ksub)+impy
2663 fsavsub1(6,ksub)=fsavsub1(6,ksub)+impz
2668 fsavsub1(12,ksub)=fsavsub1(12,ksub)+abs(impx)
2669 fsavsub1(13,ksub)=fsavsub1(13,ksub)+abs(impy)
2670 fsavsub1(14,ksub)=fsavsub1(14,ksub)+abs(impz)
2672 IF(isensint(ksub+1)/=0)
THEN
2673 fsavparit(ksub+1,4,i) = -fxt(i)
2674 fsavparit(ksub+1,5,i) = -fyt(i)
2675 fsavparit(ksub+1,6,i) = -fzt(i)
2678 fsavsub1(15,ksub)= fsavsub1(15,ksub)
2679 . +sqrt(impx*impx+impy*impy+impz*impz)
2680 fsavsub1(22,ksub)=fsavsub1(22,ksub)
2681 . +yp(i)*impz-zp(i)*impy
2682 fsavsub1(23,ksub)=fsavsub1(23,ksub)
2683 . +zp(i)*impx-xp(i)*impz
2684 fsavsub1(24,ksub)=fsavsub1(24,ksub)
2685 . +xp(i)*impy-yp(i)*impx
2687 IF(parameters%INTCAREA > 0)
THEN
2689 fsavsub1(25,ksub) = fsavsub1(25,ksub) + parameters%INTAREAN(nn)
2691 fsavsub1(25,ksub) = fsavsub1(25,ksub) +
intareanfi(nin)%P(-nn)
2704 IF(pene(i) == zero)cycle
2709 IF (msegtyp(ce_loc(i)) < 0)
THEN
2710 ie= - msegtyp(ce_loc(i))
2714 IF(ie > nrtm) ie=ie-nrtm
2720 itypsub = typsub(jsub)
2721 IF(itypsub == 1 )
THEN
2726 DO WHILE((ksub<=jsub).AND.(kk<addsubm(ie+1)))
2727 ims1 = bitget(inflg_subm(kk),0)
2728 ims2 = bitget(inflg_subm(kk),1)
2730 IF(.NOT.(((ims1 == 1 .OR. ims2 == 1) .AND. igrn == 1).OR.
2731 . (ims1 == 1 .AND. iss2 == 1).OR.
2732 . (ims2 == 1 .AND. iss1 == 1)))
THEN
2741 fsavsub1(4,jsub)=fsavsub1(4,jsub)+impx
2742 fsavsub1(5,jsub)=fsavsub1(5,jsub)+impy
2743 fsavsub1(6,jsub)=fsavsub1(6,jsub)+impz
2748 fsavsub1(12,jsub)=fsavsub1(12,jsub)+abs(impx)
2749 fsavsub1(13,jsub)=fsavsub1(13,jsub)+abs(impy)
2750 fsavsub1(14,jsub)=fsavsub1(14,jsub)+abs(impz)
2752 IF(isensint(jsub+1)/=0)
THEN
2753 fsavparit(jsub+1,4,i) = fxt(i)
2754 fsavparit(jsub+1,5,i) = fyt(i)
2755 fsavparit(jsub+1,6,i) = fzt(i)
2758 fsavsub1(15,jsub)= fsavsub1(15,jsub)
2759 . +sqrt(impx*impx+impy*impy+impz*impz)
2760 fsavsub1(22,jsub)=fsavsub1(22,jsub)
2761 . +yp(i)*impz-zp(i)*impy
2762 fsavsub1(23,jsub)=fsavsub1(23,jsub)
2763 . +zp(i)*impx-xp(i)*impz
2764 fsavsub1(24,jsub)=fsavsub1(24,jsub)
2765 . +xp(i)*impy-yp(i)*impx
2767 IF(parameters%INTCAREA > 0) fsavsub1(25,jsub) = fsavsub1(25,jsub) +
intareanfi(nin)%P(nn)
2775 ELSEIF(itypsub == 2 )
THEN
2781 fsavsub1(4,jsub)=fsavsub1(4,jsub)+impx
2782 fsavsub1(5,jsub)=fsavsub1(5,jsub)+impy
2783 fsavsub1(6,jsub)=fsavsub1(6,jsub)+impz
2788 fsavsub1(12,jsub)=fsavsub1(12,jsub)+abs(impx)
2789 fsavsub1(13,jsub)=fsavsub1(13,jsub)+abs(impy)
2790 fsavsub1(14,jsub)=fsavsub1(14,jsub)+abs(impz)
2792 IF(isensint(jsub+1)/=0)
THEN
2793 fsavparit(jsub+1,4,i) = fxt(i)
2794 fsavparit(jsub+1,5,i) = fyt(i)
2795 fsavparit(jsub+1,6,i) = fzt(i)
2798 fsavsub1(15,jsub)= fsavsub1(15,jsub)
2799 . +sqrt(impx*impx+impy*impy+impz*impz)
2800 fsavsub1(22,jsub)=fsavsub1(22,jsub)
2801 . +yp(i)*impz-zp(i)*impy
2802 fsavsub1(23,jsub)=fsavsub1(23,jsub)
2803 . +zp(i)*impx-xp(i)*impz
2804 fsavsub1(24,jsub)=fsavsub1(24,jsub)
2805 . +xp(i)*impy-yp(i)*impx
2807 IF(parameters%INTCAREA > 0) fsavsub1(25,jsub) = fsavsub1(25,jsub) +
intareanfi(nin)%P(nn)
2811 ELSEIF(itypsub == 3 )
THEN
2817 DO WHILE((ksub<=jsub).AND.(kk<addsubm(ie+1)))
2818 ims2 = bitget(inflg_subm(kk),0)
2819 ims1 = bitget(inflg_subm(kk),1)
2821 IF(.NOT.((ims1 == 1 .AND. iss2 == 1).OR.
2822 . (ims2 == 1 .AND. iss1 == 1)))
THEN
2833 fsavsub1(4,jsub)=fsavsub1(4,jsub)-impx
2834 fsavsub1(5,jsub)=fsavsub1(5,jsub)-impy
2835 fsavsub1(6,jsub)=fsavsub1(6,jsub)-impz
2837 fsavsub1(4,jsub)=fsavsub1(4,jsub)+impx
2838 fsavsub1(5,jsub)=fsavsub1(5,jsub)+impy
2839 fsavsub1(6,jsub)=fsavsub1(6,jsub)+impz
2846 fsavsub1(12,jsub)=fsavsub1(12,jsub)+abs(impx)
2847 fsavsub1(13,jsub)=fsavsub1(13,jsub)+abs(impy)
2848 fsavsub1(14,jsub)=fsavsub1(14,jsub)+abs(impz)
2850 IF(isensint(jsub+1)/=0)
THEN
2852 fsavparit(jsub+1,4,i) = -fxt(i)
2853 fsavparit(jsub+1,5,i) = -fyt(i)
2854 fsavparit(jsub+1,6,i) = -fzt(i)
2856 fsavparit(jsub+1,4,i) = fxt(i)
2857 fsavparit(jsub+1,5,i) = fyt(i)
2858 fsavparit(jsub+1,6,i) = fzt(i)
2862 fsavsub1(15,jsub)= fsavsub1(15,jsub)
2863 . +sqrt(impx*impx+impy*impy+impz*impz)
2864 fsavsub1(22,jsub)=fsavsub1(22,jsub)
2865 . +yp(i)*impz-zp(i)*impy
2866 fsavsub1(23,jsub)=fsavsub1(23,jsub)
2867 . +zp(i)*impx-xp(i)*impz
2868 fsavsub1(24,jsub)=fsavsub1(24,jsub)
2869 . +xp(i)*impy-yp(i)*impx
2871 IF(parameters%INTCAREA > 0) fsavsub1(25,jsub) = fsavsub1(25,jsub) +
intareanfi(nin)%P(nn
2885#include "lockon.inc"
2889 fsavsub(j,nsub)=fsavsub(j,nsub)+fsavsub1(j,jsub)
2891 fsavsub(22,nsub)=fsavsub(22,nsub)+fsavsub1(22,jsub)
2892 fsavsub(23,nsub)=fsavsub(23,nsub)+fsavsub1(23,jsub)
2893 fsavsub(24,nsub)=fsavsub(24,nsub)+fsavsub1(24,jsub)
2894 IF(parameters%INTCAREA > 0) fsavsub(29,nsub)=fsavsub(29,nsub)+fsavsub1(25,jsub)
2896#include "lockoff.inc"
2899#include "lockon.inc"
2901 econtv = econtv + econvt ! frictional energy
2902 econt = econt + econtt
2903 econtd = econtd + econtdt
2905 qfric = qfric + (fheats+fheatm)*qfrict
2906 econtv = econtv - (fheats+fheatm)*qfrict
2909#include "lockoff.inc"
2912 IF(interefric >0)
THEN
2914#include "lockon.inc"
2916 IF(pene(i) == zero)cycle
2917 efric_lm = half*efric_l(i)
2918 efric(interefric,ix1(i)) = efric(interefric,ix1(i)) + h1(i)*(efric_lm-fheatm*efrict(i))
2919 efric(interefric,ix2(i)) = efric(interefric,ix2(i)) + h2(i)*(efric_lm-fheatm*efrict(i))
2920 efric(interefric,ix3(i)) = efric(interefric,ix3(i)) + h3(i)*(efric_lm-fheatm*efrict(i))
2921 efric(interefric,ix4(i)) = efric(interefric,ix4(i)) + h4(i)*(efric_lm-fheatm*efrict(i))
2923 efric_ls = half*efric_l(i)
2925 efric(interefric,jg) = efric(interefric,jg) + (efric_ls-fheats
2928 efricfi(nin)%P(jg)=
efricfi(nin)%P(jg)+ (efric_ls-fheats*efrict(i))
2931#include "lockoff.inc"
2935 IF(h3d_data%N_SCAL_CSE_FRIC >0)
THEN
2937#include "lockon.inc"
2939 IF(pene(i) == zero)cycle
2940 efric_lm = half*efric_l(i)
2941 efricg(ix1(i)) = efricg(ix1(i)) + h1(i)*(efric_lm-fheatm*efrict(i))
2942 efricg(ix2(i)) = efricg(ix2(i)) + h2(i)*(efric_lm-fheatm*efrict(i))
2943 efricg(ix3(i)) = efricg(ix3(i)) + h3(i)*(efric_lm-fheatm*efrict(i))
2944 efricg(ix4(i)) = efricg(ix4(i)) + h4(i)*(efric_lm-fheatm*efrict(i))
2946 efric_ls = half*efric_l(i)
2948 efricg(jg) = efricg(jg) + (efric_ls-fheats*efrict(i))
2954#include "lockoff.inc"
2960 . .AND.(ivis2==6.OR.ivis2==1))
THEN
2962 IF(pene(i) == zero)cycle
2965 IF(msi(i)==zero)
THEN
2971 cy = eight*msi(i)*kt(i)
2972 aux = sqrt(cx+cy)+two*c(i)
2973 stv(i)= kt(i)*aux*aux/
max(cy,em30)
2974 aux = two*cf(i)*cf(i)/
max(msi(i),em20)
2986 IF(ms(j1)==zero)
THEN
2991 k1(i)=kt(i)*abs(h1(i))
2992 c1(i)=c(i)*abs(h1(i))
2993 cx =four*c1(i)*c1(i)
2994 cy =eight*ms(j1)*k1(i)
2995 aux = sqrt(cx+cy)+two*c1(i)
2996 st1(i)= k1(i)*aux*aux/
max(cy,em30)
2997 cfi = cf(i)*abs(h1(i))
2998 aux = two*cfi*cfi/
max(ms(j1),em20)
3007 IF(ms(j1)==zero)
THEN
3012 k2(i)=kt(i)*abs(h2(i))
3013 c2(i)=c(i)*abs(h2(i))
3014 cx =four*c2(i)*c2(i)
3015 cy =eight*ms(j1)*k2(i)
3016 aux = sqrt(cx+cy)+two*c2(i)
3017 st2(i)= k2(i)*aux*aux/
max(cy,em30)
3018 cfi = cf(i)*abs(h2(i))
3019 aux = two*cfi*cfi/
max(ms(j1),em20)
3028 IF(ms(j1)==zero)
THEN
3033 k3(i)=kt(i)*abs(h3(i))
3034 c3(i)=c(i)*abs(h3(i))
3035 cx =four*c3(i)*c3(i)
3036 cy =eight*ms(j1)*k3(i)
3037 aux = sqrt(cx+cy)+two*c3(i)
3038 st3(i)= k3(i)*aux*aux/
max(cy,em30)
3039 cfi = cf(i)*abs(h3(i))
3040 aux = two*cfi*cfi/
max(ms(j1),em20)
3049 IF(ms(j1)==zero)
THEN
3054 k4(i)=kt(i)*abs(h4(i))
3055 c4(i)=c(i)*abs(h4(i))
3056 cx =four*c4(i)*c4(i)
3057 cy =eight*ms(j1)*k4(i)
3058 aux = sqrt(cx+cy)+two*c4(i)
3059 st4(i)= k4(i)*aux*aux/
max(cy,em30)
3060 cfi = cf(i)*abs(h4(i))
3061 aux = two*cfi*cfi/
max(ms(j1),em20)
3072 IF(viscffric(i)/=zero)
THEN
3073 IF(pene(i) == zero)cycle
3076 IF(msi(i)==zero)
THEN
3082 cy = eight*msi(i)*kt(i)
3083 aux = sqrt(cx+cy)+two*c(i)
3084 stv(i)= kt(i)*aux*aux/
max(cy,em30)
3085 aux = two*cf(i)*cf(i)/
max(msi(i),em20)
3097 IF(ms(j1)==zero)
THEN
3102 k1(i)=kt(i)*abs(h1(i))
3103 c1(i)=c(i)*abs(h1(i))
3104 cx =four*c1(i)*c1(i)
3105 cy =eight*ms(j1)*k1(i)
3106 aux = sqrt(cx+cy)+two*c1(i)
3107 st1(i)= k1(i)*aux*aux/
max(cy,em30)
3108 cfi = cf(i)*abs(h1(i))
3109 aux = two*cfi*cfi/
max(ms(j1),em20)
3118 IF(ms(j1)==zero)
THEN
3123 k2(i)=kt(i)*abs(h2(i))
3124 c2(i)=c(i)*abs(h2(i))
3125 cx =four*c2(i)*c2(i)
3126 cy =eight*ms(j1)*k2(i)
3127 aux = sqrt(cx+cy)+two*c2(i)
3128 st2(i)= k2(i)*aux*aux/
max(cy,em30)
3129 cfi = cf(i)*abs(h2(i))
3130 aux = two*cfi*cfi/
max(ms(j1),em20)
3139 IF(ms(j1)==zero)
THEN
3144 k3(i)=kt(i)*abs(h3(i))
3145 c3(i)=c(i)*abs(h3(i))
3146 cx =four*c3(i)*c3(i)
3147 cy =eight*ms(j1)*k3(i)
3148 aux = sqrt(cx+cy)+two*c3(i)
3149 st3(i)= k3(i)*aux*aux/
max(cy,em30)
3150 cfi = cf(i)*abs(h3(i))
3151 aux = two*cfi*cfi/
max(ms(j1),em20)
3160 IF(ms(j1)==zero)
THEN
3165 k4(i)=kt(i)*abs(h4(i))
3166 c4(i)=c(i)*abs(h4(i))
3167 cx =four*c4(i)*c4(i)
3168 cy =eight*ms(j1)*k4(i)
3169 aux = sqrt(cx+cy)+two*c4(i)
3170 st4(i)= k4(i)*aux*aux/
max(cy,em30)
3171 cfi = cf(i)*abs(h4(i))
3172 aux = two*cfi*cfi/
max(ms(j1),em20)
3182 IF(pene(i) == zero)cycle
3186 k1(i) =stif(i)*abs(h1(i))
3189 k2(i) =stif(i)*abs(h2(i))
3192 k3(i) =stif(i)*abs(h3(i))
3195 k4(i) =stif(i)*abs(h4(i))
3207 IF(pene(i) == zero)cycle
3231#include "mic_lockon.inc"
3234 IF(nn<0 .AND. h1(i)+h2(i)+h3(i)+h4(i)/=0)
THEN
3240#include "mic_lockoff.inc"
3243 IF(idtmins==2.OR.idtmins_int/=0)
THEN
3245 CALL i25sms2(jlt ,ix1 ,ix2 ,ix3 ,ix4 ,
3246 2 nsvg ,h1 ,h2 ,h3 ,h4 ,stif ,
3247 3 nin ,noint ,mskyi_sms, iskyi_sms,nsms ,
3248 4 kt ,c ,cf ,dtmini,dti )
3256 IF(idtmins_int/=0)
THEN
3264 IF(anim_v(4)+outp_v(4)+h3d_data%N_VECT_CONT>0)
THEN
3266#include "lockon.inc"
3268 IF(pene(i) == zero)cycle
3269 fcont(1,ix1(i)) =fcont(1,ix1(i)) + fx1(i)
3270 fcont(2,ix1(i)) =fcont(2,ix1(i)) + fy1(i)
3271 fcont(3,ix1(i)) =fcont(3,ix1(i)) + fz1(i)
3272 fcont(1,ix2(i)) =fcont(1,ix2(i)) + fx2(i)
3273 fcont(2,ix2(i)) =fcont(2,ix2(i)) + fy2(i)
3274 fcont(3,ix2(i)) =fcont(3,ix2(i)) + fz2(i)
3275 fcont(1,ix3(i)) =fcont(1,ix3(i)) + fx3(i)
3276 fcont(2,ix3(i)) =fcont(2,ix3(i)) + fy3(i)
3277 fcont(3,ix3(i)) =fcont(3,ix3(i)) + fz3(i)
3278 fcont(1,ix4(i)) =fcont(1,ix4(i)) + fx4(i)
3279 fcont(2,ix4(i)) =fcont(2,ix4(i)) + fy4(i)
3280 fcont(3,ix4(i)) =fcont(3,ix4(i)) + fz4(i)
3284 fcont(1,jg)=fcont(1,jg)- fxi(i)
3285 fcont(2,jg)=fcont(2,jg)- fyi(i)
3286 fcont(3,jg)=fcont(3,jg)- fzi(i)
3289#include "lockoff.inc"
3293 IF(isecin>0.AND.inconv==1)
THEN
3295 IF(nstrf(1)+nstrf(2)/=0)
THEN
3297 nbinter=nstrf(k0+14)
3300 IF(nstrf(k1s)==noint)
THEN
3302#include "lockon.inc"
3304 IF(pene(k) == zero)cycle
3307 IF(secfcum(4,ix1(k),i)==1.)
THEN
3308 secfcum(1,ix1(k),i)=secfcum(1,ix1(k),i)-fx1(k)
3309 secfcum(2,ix1(k),i)=secfcum(2,ix1(k),i)-fy1(k)
3310 secfcum(3,ix1(k),i)=secfcum(3,ix1(k),i)-fz1(k)
3312 IF(secfcum(4,ix2(k),i)==1.)
THEN
3313 secfcum(1,ix2(k),i)=secfcum(1,ix2(k),i)-fx2(k)
3314 secfcum(2,ix2(k),i)=secfcum(2,ix2(k),i)-fy2(k)
3315 secfcum(3,ix2(k),i)=secfcum(3,ix2(k),i)-fz2(k)
3317 IF(secfcum(4,ix3(k),i)==1.)
THEN
3318 secfcum(1,ix3(k),i)=secfcum(1,ix3(k),i)-fx3(k)
3319 secfcum(2,ix3(k),i)=secfcum(2,ix3(k),i)-fy3(k)
3320 secfcum(3,ix3(k),i)=secfcum(3,ix3(k),i)-fz3(k)
3322 IF(secfcum(4,ix4(k),i)==1.)
THEN
3323 secfcum(1,ix4(k),i)=secfcum(1,ix4(k),i)-fx4(k)
3324 secfcum(2,ix4(k),i)=secfcum(2,ix4(k),i)-fy4(k)
3325 secfcum(3,ix4(k),i)=secfcum(3,ix4(k),i)-fz4(k)
3330 IF(secfcum(4,jg,i)==1.)
THEN
3331 secfcum(1,jg,i)=secfcum(1,jg,i)+fxi(k)
3332 secfcum(2,jg,i)=secfcum(2,jg,i)+fyi(k)
3333 secfcum(3,jg,i)=secfcum(3,jg,i)+fzi(k)
3337#include "lockoff.inc"
3348 IF(ibag/=0.OR.iadm/=0)
THEN
3350 IF(pene(i) == zero)cycle
3373 IF(pene(i) == zero)cycle
3375 ibcs = ibcc - 8 * ibcm
3379 IF(ig>0.AND.ig<=numnod)
THEN
3381 CALL ibcoff(ibcs,icodt(ig))
3386 CALL ibcoff(ibcm,icodt(ig))
3388 CALL ibcoff(ibcm,icodt(ig))
3390 CALL ibcoff(ibcm,icodt(ig))
3392 CALL ibcoff(ibcm,icodt(ig))