39 1 IPARI ,INTBUF_TAB,X ,NIN ,
40 3 IDDL ,K_DIAG ,K_LT ,IADK ,JDIK ,
41 4 GAP_IMP,LREM ,INTBUF_TAB_IMP)
50#include "implicit_f.inc"
67 INTEGER IPARI(NPARI,NINTER)
71 . a(3,*), ms(*), v(3,*),x(*),k_diag(*),k_lt(*)
76 TYPE(intbuf_struct_) INTBUF_TAB
77 TYPE(IMP_INTBUF_STRUCT_) INTBUF_TAB_IMP
81 INTEGER I, J,I_STOK, JLT_NEW, JLT , NFT, IVIS2,
82 . , NOINT, NSEG, ISECIN, IBAG, IADM,
83 . IGAP, INACTI, IFQ, MFROT, IGSTI, NISUB,
85 . ilagm, lenr, lent, maxcc,intth,iform,intkg,
87 INTEGER IX1(MVSIZ), IX2(), IX3(MVSIZ), IX4(MVSIZ),
88 . NSVG(MVSIZ),KINI(MVSIZ),IXX(MVSIZ,13),ITRIV(4,MVSIZ)
91 . startt, fric, gap, stopt,
92 . visc,viscf,stiglo,gapmin,
93 . kmin, kmax, gapmax,rstif,fheat,tint,rhoh,eps
97 . nx1(mvsiz), nx2(mvsiz), nx3(mvsiz), nx4(mvsiz),
98 . ny1(mvsiz), ny2(mvsiz), ny3(mvsiz), ny4(mvsiz),
99 . nz1(mvsiz), nz2(mvsiz), nz3(mvsiz), nz4(mvsiz),
101 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
102 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
103 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
104 . xi(mvsiz), yi(mvsiz), zi(mvsiz), stif(mvsiz),
105 . vx1(mvsiz), vx2(mvsiz), vx3(mvsiz), vx4(mvsiz),
106 . vy1(mvsiz), vy2(mvsiz), vy3(mvsiz), vy4(mvsiz),
107 . vz1(mvsiz), vz2(mvsiz), vz3(mvsiz), vz4(mvsiz),
108 . vxi(mvsiz), vyi(mvsiz), vzi(mvsiz),
109 . n1(mvsiz), n2(mvsiz), n3(mvsiz), pene(mvsiz),
110 . h1(mvsiz), h2(mvsiz), h3(mvsiz), h4(mvsiz),
111 . nm1(mvsiz), nm2(mvsiz), nm3(mvsiz),
112 . gapv(mvsiz),msi(mvsiz),gaps(mvsiz),
113 . ki11(9,mvsiz),kj11(9,mvsiz),off(mvsiz),
114 . kk11(9,mvsiz),kl11(9,mvsiz),ki12(9,mvsiz),
115 . kj12(9,mvsiz),kk12(9,mvsiz),kl12(9,mvsiz),
116 . ll_sl(mvsiz),ll_ml(mvsiz)
117 INTEGER NRTMFT, NRTMLT, NMNFT, NMNLT, NRADM
119 INTEGER,
DIMENSION(:),
ALLOCATABLE :: TAG_S,TAG_M
132 IF(ipari(33,nin)==1)
RETURN
148 intth = ipari(47,nin)
149 iform = ipari(48,nin)
151 stiglo=-intbuf_tab%STFAC(1)
152 startt=intbuf_tab%VARIABLES(3)
153 stopt =intbuf_tab%VARIABLES(11)
157 fric =intbuf_tab%VARIABLES(1)
158 gap =intbuf_tab%VARIABLES(2)
159 gapmin=intbuf_tab%VARIABLES(13)
160 visc =intbuf_tab%VARIABLES(14)
161 viscf =intbuf_tab%VARIABLES(15)
163 gapmax=intbuf_tab%VARIABLES(16)
164 kmin =intbuf_tab%VARIABLES(17)
165 kmax =intbuf_tab%VARIABLES(18)
167 rstif = intbuf_tab%VARIABLES(20)
168 fheat = intbuf_tab%VARIABLES(21)
169 tint = intbuf_tab%VARIABLES(22)
170 eps = intbuf_tab%VARIABLES(39)
185 i_stok = intbuf_tab_imp%I_STOK(1)
186 IF(i_stok== 0)
RETURN
189 IF (intkg>0.AND.iikgoff/=1) intkg1=1
191 ALLOCATE(tag_s(numnod),tag_m(numnod))
204 CALL ffizero(i_stok ,nin ,nsn ,intbuf_tab_imp%CAND_N )
206 DO nft = 0 , i_stok - 1 , nvsiz
207 jlt =
min( nvsiz, i_stok - nft )
211 1 jlt ,x ,intbuf_tab%IRECTM,intbuf_tab%NSV,
212 + intbuf_tab_imp%CAND_E(nft+1) ,intbuf_tab_imp%CAND_N(nft+1),
213 2 stif ,intbuf_tab_imp%STIF(nft+1),
215 3 vxi ,vyi ,vzi ,ix1 ,
216 4 ix2 ,ix3 ,ix4 ,nsvg ,intbuf_tab%NVOISIN,
217 5 ms ,msi ,nsn ,v ,nin ,
218 6 n1 ,n2 ,n3 ,h1 ,h2 ,
219 7 h3 ,h4 ,intbuf_tab_imp%NJ(idnj),intbuf_tab_imp%HJ(idhj),
220 8 intbuf_tab_imp%INDSUBT(nft+1))
221 CALL i24keg3(jlt ,a ,v ,ms ,fric ,
222 1 ix1 ,ix2 ,ix3 ,ix4 ,nsvg ,
223 2 stif ,vxi ,vyi ,vzi ,msi ,
224 5 n1 ,n2 ,n3 ,h1 ,h2 ,
225 6 h3 ,h4 ,pene ,stiglo,x ,
226 3 ki11 ,ki12 ,kj11 ,kj12 ,kk11 ,
227 4 kk12 ,kl11 ,kl12 ,off ,sk_int,
228 5 nin ,lrem ,intbuf_tab%STIF_OLD ,
229 + intbuf_tab_imp%CAND_N(nft+1),
230 6 igsti ,intbuf_tab%PENE_OLD,nm1 ,nm2 ,
233 CALL i24kgeo3(jlt ,ix1 ,ix2 ,ix3 ,ix4 ,
234 1 nsvg ,stif ,h1 ,h2 ,h3 ,
235 2 h4 ,pene ,stiglo ,ki11 ,ki12 ,
236 3 kj11 ,kj12 ,kk11 ,kk12 ,kl11 ,
237 4 kl12 ,sk_int ,intbuf_tab%NOD_2RY_LGTH,
238 . intbuf_tab%NOD_MAS_LGTH,
239 5 tag_s ,tag_m ,nsn )
240 DEALLOCATE(tag_s,tag_m)
245 CALL ass_spmd(3 ,nsvg ,ix1 ,ix2 ,ix3 ,
246 1 ix4 ,jlt ,iddl ,k_diag ,k_lt ,
247 2 iadk ,jdik ,ki11 ,ki12 ,kj11 ,
248 3 kj12 ,kk11 ,kk12 ,kl11 ,kl12 ,
254 1 ix4 ,jlt ,iddl ,k_diag ,k_lt ,
255 2 iadk ,jdik ,ki11 ,ki12 ,kj11 ,
256 3 kj12 ,kk11 ,kk12 ,kl11 ,kl12 ,
260 intbuf_tab_imp%I_STOK(1) = 0
273 1 IX1 ,IX2 ,IX3 ,IX4 ,NSVG ,
274 2 STIF ,VXI ,VYI ,VZI ,MSI ,
275 5 N1 ,N2 ,N3 ,H1 ,H2 ,
276 6 H3 ,H4 ,PENE ,STIGLO,X ,
277 3 KI11 ,KI12 ,KJ11 ,KJ12 ,KK11 ,
278 4 KK12 ,KL11 ,KL12 ,OFF ,SCALK ,
279 5 NIN ,LREM ,STIF_OLD,CAND_N,IGSTI ,
280 6 PENE_OLD,NM1 ,NM2 ,NM3 )
289#include "implicit_f.inc"
293#include "mvsiz_p.inc"
297#include "scr05_c.inc"
298#include "com01_c.inc"
299#include "impl1_c.inc"
303 INTEGER JLT, LREM,NIN,CAND_N(*),IGSTI
304 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ),
307 . A(3,*), MS(*), V(3,*),X(3,*),
308 . STIGLO,FRIC,OFF(*),SCALK,
309 . VXI(MVSIZ),VYI(MVSIZ),VZI(MVSIZ),MSI(MVSIZ)
311 . N1(MVSIZ), N2(MVSIZ), N3(MVSIZ), PENE(MVSIZ),
312 . H1(MVSIZ), H2(MVSIZ), H3(MVSIZ), H4(MVSIZ),
313 . NM1(MVSIZ), NM2(MVSIZ), NM3(MVSIZ),
314 . stif(mvsiz),pene_old(5,*),stif_old(2,*),
315 . ki11(3,3,mvsiz),kj11(3,3,mvsiz),
316 . kk11(3,3,mvsiz),kl11(3,3,mvsiz),ki12(3,3,mvsiz),
317 . kj12(3,3,mvsiz),kk12(3,3,mvsiz),kl12(3,3,mvsiz)
321 INTEGER I, J1, J, K,IG,ISF,NN,NS,JLTF,NE,JG,N,ip
323 . VX(MVSIZ), VY(MVSIZ), VZ(MVSIZ), VN(MVSIZ),
324 . S2,FAC,FACF, H0, LA1, LA2, LA3, LA4,FACT(MVSIZ),
325 . D1,D2,D3,D4,A1,A2,A3,A4,KN(4,MVSIZ),Q(3,3,MVSIZ)
327 . PREC,Q11,Q12,Q13,Q22,Q23,Q33,H00,VTX,VTY,VTZ,VT,
328 . KT1,KT2,KT3,KT4,Q1,Q2,DPENE(MVSIZ),VNM(MVSIZ)
331 . A0X,A0Y,A0Z,RX,RY,RZ,
332 . anx,any,anz,aan,aax,aay,aaz ,rr,rs,aaa ,tm,ts
347 vx(i) = vxi(i) - h1(i)*v(1,ix1(i)) - h2(i)*v(1,ix2(i))
348 . - h3(i)*v(1,ix3(i)) - h4(i)*v(1,ix4(i))
349 vy(i) = vyi(i) - h1(i)*v(2,ix1(i)) - h2(i)*v(2,ix2(i))
350 . - h3(i)*v(2,ix3(i)) - h4(i)*v(2,ix4(i))
351 vz(i) = vzi(i) - h1(i)*v(3,ix1(i)) - h2(i)*v(3,ix2(i))
352 . - h3(i)*v(3,ix3(i)) - h4(i)*v(3,ix4(i))
353 vn(i) = n1(i)*vx(i) + n2(i)*vy(i) + n3(i)*vz(i)
366 stif(i) = stif_old(1,n)
376 vtx = vx(i) -vn(i)*n1(i)
377 vty = vy(i) -vn(i)*n2(i)
378 vtz = vz(i) -vn(i)*n3(i)
379 vt = vtx*vtx+vty*vty+vtz*vtz
388 q(2,1,i)=q(3,2,i)*q(1,3,i)-q(3,3,i)*q(1,2,i)
390 q(2,3,i)=q(3,1,i)*q(1,2,i)-q(3,2,i)*q(1,1,i)
406 ELSEIF (vn(i)<zero)
THEN
434 ki11(1,1,i)=kn(1,i)*q11
435 ki11(1,2,i)=kn(1,i)*q12
436 ki11(1,3,i)=kn(1,i)*q13
437 ki11(2,2,i)=kn(1,i)*q22
438 ki11(2,3,i)=kn(1,i)*q23
439 ki11(3,3,i)=kn(1,i)*q33
440 kj11(1,1,i)=kn(2,i)*q11
441 kj11(1,2,i)=kn(2,i)*q12
442 kj11(1,3,i)=kn(2,i)*q13
443 kj11(2,2,i)=kn(2,i)*q22
444 kj11(2,3,i)=kn(2,i)*q23
445 kj11(3,3,i)=kn(2,i)*q33
446 kk11(1,1,i)=kn(3,i)*q11
447 kk11(1,2,i)=kn(3,i)*q12
448 kk11(1,3,i)=kn(3,i)*q13
449 kk11(2,2,i)=kn(3,i)*q22
450 kk11(2,3,i)=kn(3,i)*q23
451 kk11(3,3,i)=kn(3,i)*q33
452 kl11(1,1,i)=kn(4,i)*q11
453 kl11(1,2,i)=kn(4,i)*q12
454 kl11(1,3,i)=kn(4,i)*q13
455 kl11(2,2,i)=kn(4,i)*q22
456 kl11(2,3,i)=kn(4,i)*q23
457 kl11(3,3,i)=kn(4,i)*q33
463 IF (fact(i)>zero)
THEN
464 q1 =q(1,j,i)*q(1,k,i)
465 q2 =q(2,j,i)*q(2,k,i)
468 ki11(j,k,i)=ki11(j,k,i)+kt1
470 kj11(j,k,i)=kj11(j,k,i)+kt2
472 kk11(j,k,i)=kk11(j,k,i)+kt3
474 kl11(j,k,i)=kl11(j,k,i)+kt4
483 ki12(j,k,i)=-ki11(j,k,i)
484 kj12(j,k,i)=-kj11(j,k,i)
485 kk12(j,k,i)=-kk11(j,k,i)
486 kl12(j,k,i)=-kl11(j,k,i)
493 ki12(k,j,i)=-ki11(j,k,i)
494 kj12(k,j,i)=-kj11(j,k,i)
495 kk12(k,j,i)=-kk11(j,k,i)
496 kl12(k,j,i)=-kl11(j,k,i)
559 1 NSVG ,STIF ,H1 ,H2 ,H3 ,
560 2 H4 ,PENE ,STIGLO ,KI11 ,KI12 ,
561 3 KJ11 ,KJ12 ,KK11 ,KK12 ,KL11 ,
562 4 KL12 ,SCALK ,LL_S ,LL_M ,TAG_S ,
567#include "implicit_f.inc"
571#include "mvsiz_p.inc"
576 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ),
577 . NSVG(MVSIZ),TAG_S(*),TAG_M(*),NSN
582 . H1(MVSIZ), H2(MVSIZ), H3(MVSIZ), H4(MVSIZ),
583 . STIF(MVSIZ),LL_S(*) ,LL_M(*),
584 . KI11(3,3,MVSIZ),KJ11(3,3,MVSIZ),
585 . KK11(3,3,MVSIZ),KL11(3,3,MVSIZ),KI12(3,3,MVSIZ),
586 . KJ12(3,3,MVSIZ),KK12(3,3,MVSIZ),KL12(3,3,MVSIZ)
590 INTEGER I, J1, J, K,IG,ISF,NN,NS,JLTF,NE,NM
592 . s2,fac,facf, h0, la1, la2, la3, la4,
593 . d1,d2,d3,d4,a1,a2,a3,a4,kn(4,mvsiz),lns,lns1
595 . lmax,fni(mvsiz),al(4,mvsiz)
600 stif(i) = half*stif(i)
601 ELSEIF(stif(i)/=zero)
THEN
604 fni(i)= -stif(i) * pene(i)
607 lns1=half*(ll_s(1)+ll_s(nsn))
617 al(1,i)=lns+ll_m(tag_m(nm))
619 al(2,i)=lns+ll_m(tag_m(nm))
621 al(3,i)=lns+ll_m(tag_m(nm))
623 al(4,i)=lns+ll_m(tag_m(nm))
626 al(j,i)=
max(lmax,al(j,i))
632 kn(1,i)=fac*h1(i)/al(1,i)
633 kn(2,i)=fac*h2(i)/al(2,i)
634 kn(3,i)=fac*h3(i)/al(3,i)
635 kn(4,i)=fac*h4(i)/al(4,i)
641 ki11(j,j,i) = ki11(j,j,i)+kn(1,i)
642 ki12(j,j,i) = ki12(j,j,i)-kn(1,i)
643 kj11(j,j,i) = kj11(j,j,i)+kn(2,i)
644 kj12(j,j,i) = kj12(j,j,i)-kn(2,i)
645 kk11(j,j,i) = kk11(j,j,i)+kn(3,i)
646 kk12(j,j,i) = kk12(j,j,i)-kn(3,i)
647 kl11(j,j,i) = kl11(j,j,i)+kn(4,i)
648 kl12(j,j,i) = kl12(j,j,i)-kn(4,i)
subroutine i24keg3(jlt, a, v, ms, fric, ix1, ix2, ix3, ix4, nsvg, stif, vxi, vyi, vzi, msi, n1, n2, n3, h1, h2, h3, h4, pene, stiglo, x, ki11, ki12, kj11, kj12, kk11, kk12, kl11, kl12, off, scalk, nin, lrem, stif_old, cand_n, igsti, pene_old, nm1, nm2, nm3)