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)
68 INTEGER NIN,IDDL(*),IADK(*) ,JDIK(*),LREM
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, NFT,
83 . IGAP, IFQ, MFROT, IGSTI, NISUB,
86 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ),
90 . startt, fric, gap, stopt,
91 . visc,viscf,stiglo,gapmin,
92 . kmin, kmax, gapmax,rstif,fheat,tint,eps
96 . xi(mvsiz), yi(mvsiz), zi(mvsiz), stif(mvsiz),
97 . vxi(mvsiz), vyi(mvsiz), vzi(mvsiz),
98 . n1(mvsiz), n2(mvsiz), n3(mvsiz), pene(mvsiz),
99 . h1(mvsiz), h2(mvsiz), h3(mvsiz), h4(mvsiz),
100 . nm1(mvsiz), nm2(mvsiz), nm3(mvsiz),
102 . ki11(9,mvsiz),kj11(9,mvsiz),off(mvsiz),
103 . kk11(9,mvsiz),kl11(9,mvsiz),ki12(9,mvsiz),
104 . kj12(9,mvsiz),kk12(9,mvsiz),kl12(9,mvsiz)
107 INTEGER,
DIMENSION(:),
ALLOCATABLE :: TAG_S,TAG_M
120 IF(ipari(33,nin)==1)
RETURN
136 intth = ipari(47,nin)
137 iform = ipari(48,nin)
139 stiglo=-intbuf_tab%STFAC(1)
140 startt=intbuf_tab%VARIABLES(3)
141 stopt =intbuf_tab%VARIABLES(11)
145 fric =intbuf_tab%VARIABLES(1)
146 gap =intbuf_tab%VARIABLES(2)
147 gapmin=intbuf_tab%VARIABLES(13)
148 visc =intbuf_tab%VARIABLES(14)
149 viscf =intbuf_tab%VARIABLES(15)
151 gapmax=intbuf_tab%VARIABLES(16)
152 kmin =intbuf_tab%VARIABLES(17)
153 kmax =intbuf_tab%VARIABLES(18)
155 rstif = intbuf_tab%VARIABLES
156 fheat = intbuf_tab%VARIABLES(21)
157 tint = intbuf_tab%VARIABLES(22)
158 eps = intbuf_tab%VARIABLES(39)
173 i_stok = intbuf_tab_imp%I_STOK(1)
174 IF(i_stok== 0)
RETURN
177 IF (intkg>0.AND.iikgoff/=1) intkg1=1
179 ALLOCATE(tag_s(numnod),tag_m(numnod))
192 CALL ffizero(i_stok ,nin ,nsn ,intbuf_tab_imp%CAND_N
194 DO nft = 0 , i_stok - 1 , nvsiz
195 jlt =
min( nvsiz, i_stok - nft )
199 1 jlt ,x ,intbuf_tab%IRECTM,intbuf_tab%NSV,
200 + intbuf_tab_imp%CAND_E(nft+1) ,intbuf_tab_imp%CAND_N(nft+1),
201 2 stif ,intbuf_tab_imp%STIF(nft+1),
203 3 vxi ,vyi ,vzi ,ix1 ,
204 4 ix2 ,ix3 ,ix4 ,nsvg ,intbuf_tab%NVOISIN,
205 5 ms ,msi ,nsn ,v ,nin ,
206 6 n1 ,n2 ,n3 ,h1 ,h2 ,
207 7 h3 ,h4 ,intbuf_tab_imp%NJ(idnj),intbuf_tab_imp%HJ(idhj),
208 8 intbuf_tab_imp%INDSUBT(nft+1))
209 CALL i24keg3(jlt ,a ,v ,ms ,fric ,
210 1 ix1 ,ix2 ,ix3 ,ix4 ,nsvg ,
211 2 stif ,vxi ,vyi ,vzi ,msi ,
212 5 n1 ,n2 ,n3 ,h1 ,h2 ,
213 6 h3 ,h4 ,pene ,stiglo,x ,
214 3 ki11 ,ki12 ,kj11 ,kj12 ,kk11 ,
215 4 kk12 ,kl11 ,kl12 ,off ,sk_int,
216 5 nin ,lrem ,intbuf_tab%STIF_OLD ,
217 + intbuf_tab_imp%CAND_N(nft+1),
218 6 igsti ,intbuf_tab%PENE_OLD,nm1 ,nm2 ,
221 CALL i24kgeo3(jlt ,ix1 ,ix2 ,ix3 ,ix4 ,
222 1 nsvg ,stif ,h1 ,h2 ,h3 ,
223 2 h4 ,pene ,stiglo ,ki11 ,ki12 ,
224 3 kj11 ,kj12 ,kk11 ,kk12 ,kl11 ,
225 4 kl12 ,sk_int ,intbuf_tab%NOD_2RY_LGTH,
226 . intbuf_tab%NOD_MAS_LGTH,
227 5 tag_s ,tag_m ,nsn )
228 DEALLOCATE(tag_s,tag_m)
233 CALL ass_spmd(3 ,nsvg ,ix1 ,ix2 ,ix3 ,
234 1 ix4 ,jlt ,iddl ,k_diag ,k_lt ,
235 2 iadk ,jdik ,ki11 ,ki12 ,kj11 ,
236 3 kj12 ,kk11 ,kk12 ,kl11 ,kl12 ,
242 1 ix4 ,jlt ,iddl ,k_diag ,k_lt ,
243 2 iadk ,jdik ,ki11 ,ki12 ,kj11 ,
244 3 kj12 ,kk11 ,kk12 ,kl11 ,kl12 ,
248 intbuf_tab_imp%I_STOK(1) = 0
261 1 IX1 ,IX2 ,IX3 ,IX4 ,NSVG ,
262 2 STIF ,VXI ,VYI ,VZI ,MSI ,
263 5 N1 ,N2 ,N3 ,H1 ,H2 ,
264 6 H3 ,H4 ,PENE ,STIGLO,X ,
265 3 KI11 ,KI12 ,KJ11 ,KJ12 ,KK11 ,
266 4 KK12 ,KL11 ,KL12 ,OFF ,SCALK ,
267 5 NIN ,LREM ,STIF_OLD,CAND_N,IGSTI ,
268 6 PENE_OLD,NM1 ,NM2 ,NM3 )
277#include "implicit_f.inc"
281#include "mvsiz_p.inc"
285#include "scr05_c.inc"
286#include "com01_c.inc"
287#include "impl1_c.inc"
291 INTEGER JLT, LREM,NIN,CAND_N(*),IGSTI
292 INTEGER IX1(), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ),
295 . A(3,*), MS(*), V(3,*),X(3,*),
296 . STIGLO,FRIC,OFF(*),SCALK,
297 . VXI(MVSIZ),VYI(MVSIZ),VZI(MVSIZ),MSI(MVSIZ)
299 . N1(MVSIZ), N2(MVSIZ), N3(MVSIZ), PENE(MVSIZ),
300 . H1(MVSIZ), H2(MVSIZ), H3(MVSIZ), H4(MVSIZ),
301 . NM1(MVSIZ), NM2(MVSIZ), NM3(MVSIZ),
302 . stif(mvsiz),pene_old(5,*),stif_old(2,*),
303 . ki11(3,3,mvsiz),kj11(3,3,mvsiz),
304 . kk11(3,3,mvsiz),kl11(3,3,mvsiz),ki12(3,3,mvsiz),
305 . kj12(3,3,mvsiz),kk12(3,3,mvsiz),kl12(3,3,mvsiz)
309 INTEGER I, J, K, ISF, NN, NS, JLTF, NE, JG, N, ip
311 . VX(MVSIZ), VY(MVSIZ), VZ(MVSIZ), VN(MVSIZ),
312 . S2,FAC,FACF,FACT(MVSIZ),
313 . (4,MVSIZ),Q(3,3,MVSIZ)
315 . PREC,Q11,Q12,Q13,Q22,Q23,Q33,VTX,VTY,VTZ,VT,
316 . KT1,KT2,KT3,KT4,Q1,Q2
331 vx(i) = vxi(i) - h1(i)*v(1,ix1(i)) - h2(i)*v(1,ix2(i))
332 . - h3(i)*v(1,ix3(i)) - h4(i)*v(1,ix4(i))
333 vy(i) = vyi(i) - h1(i)*v(2,ix1(i)) - h2(i)*v(2,ix2(i))
334 . - h3(i)*v(2,ix3(i)) - h4(i)*v(2,ix4(i))
335 vz(i) = vzi(i) - h1(i)*v(3,ix1(i)) - h2(i)*v(3,ix2(i))
336 . - h3(i)*v(3,ix3(i)) - h4(i)*v(3,ix4(i))
337 vn(i) = n1(i)*vx(i) + n2(i)*vy(i) + n3(i)*vz(i)
350 stif(i) = stif_old(1,n)
360 vtx = vx(i) -vn(i)*n1(i)
361 vty = vy(i) -vn(i)*n2(i)
362 vtz = vz(i) -vn(i)*n3(i)
363 vt = vtx*vtx+vty*vty+vtz*vtz
372 q(2,1,i)=q(3,2,i)*q(1,3,i)-q(3,3,i)*q(1,2,i)
373 q(2,2,i)=q(3,3,i)*q(1,1,i)-q(3,1,i)*q(1,3,i)
374 q(2,3,i)=q(3,1,i)*q(1,2,i)-q(3,2,i)*q(1,1,i)
390 ELSEIF (vn(i)<zero)
THEN
418 ki11(1,1,i)=kn(1,i)*q11
419 ki11(1,2,i)=kn(1,i)*q12
420 ki11(1,3,i)=kn(1,i)*q13
421 ki11(2,2,i)=kn(1,i)*q22
422 ki11(2,3,i)=kn(1,i)*q23
423 ki11(3,3,i)=kn(1,i)*q33
424 kj11(1,1,i)=kn(2,i)*q11
425 kj11(1,2,i)=kn(2,i)*q12
426 kj11(1,3,i)=kn(2,i)*q13
427 kj11(2,2,i)=kn(2,i)*q22
428 kj11(2,3,i)=kn(2,i)*q23
429 kj11(3,3,i)=kn(2,i)*q33
430 kk11(1,1,i)=kn(3,i)*q11
431 kk11(1,2,i)=kn(3,i)*q12
432 kk11(1,3,i)=kn(3,i)*q13
433 kk11(2,2,i)=kn(3,i)*q22
434 kk11(2,3,i)=kn(3,i)*q23
435 kk11(3,3,i)=kn(3,i)*q33
436 kl11(1,1,i)=kn(4,i)*q11
437 kl11(1,2,i)=kn(4,i)*q12
438 kl11(1,3,i)=kn(4,i)*q13
439 kl11(2,2,i)=kn(4,i)*q22
440 kl11(2,3,i)=kn(4,i)*q23
441 kl11(3,3,i)=kn(4,i)*q33
447 IF (fact(i)>zero)
THEN
448 q1 =q(1,j,i)*q(1,k,i)
449 q2 =q(2,j,i)*q(2,k,i)
452 ki11(j,k,i)=ki11(j,k,i)+kt1
454 kj11(j,k,i)=kj11(j,k,i)+kt2
456 kk11(j,k,i)=kk11(j,k,i)+kt3
458 kl11(j,k,i)=kl11(j,k,i)+kt4
467 ki12(j,k,i)=-ki11(j,k,i)
468 kj12(j,k,i)=-kj11(j,k,i)
469 kk12(j,k,i)=-kk11(j,k,i)
470 kl12(j,k,i)=-kl11(j,k,i)
477 ki12(k,j,i)=-ki11(j,k,i)
478 kj12(k,j,i)=-kj11(j,k,i)
479 kk12(k,j,i)=-kk11(j,k,i)
480 kl12(k,j,i)=-kl11(j,k,i)
543 1 NSVG ,STIF ,H1 ,H2 ,H3 ,
544 2 H4 ,PENE ,STIGLO ,KI11 ,KI12 ,
545 3 KJ11 ,KJ12 ,KK11 ,KK12 ,KL11 ,
546 4 KL12 ,SCALK ,LL_S ,LL_M ,TAG_S ,
551#include "implicit_f.inc"
555#include "mvsiz_p.inc"
560 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ),
561 . NSVG(MVSIZ),TAG_S(*),TAG_M(*),NSN
566 . H1(MVSIZ), H2(MVSIZ), H3(MVSIZ), (MVSIZ),
567 . STIF(MVSIZ),LL_S(*) ,LL_M(*),
568 . KI11(3,3,MVSIZ),KJ11(3,3,MVSIZ),
569 . KK11(3,3,MVSIZ),KL11(3,3,MVSIZ),KI12(3,3,MVSIZ),
570 . KJ12(3,3,MVSIZ),KK12(3,3,MVSIZ),KL12(3,3,MVSIZ)
577 . kn(4,mvsiz),lns,lns1
579 . lmax,fni(mvsiz),al(4,mvsiz)
584 stif(i) = half*stif(i)
585 ELSEIF(stif(i)/=zero)
THEN
588 fni(i)= -stif(i) * pene(i)
591 lns1=half*(ll_s(1)+ll_s(nsn))
601 al(1,i)=lns+ll_m(tag_m(nm))
603 al(2,i)=lns+ll_m(tag_m(nm))
605 al(3,i)=lns+ll_m(tag_m(nm))
607 al(4,i)=lns+ll_m(tag_m(nm))
610 al(j,i)=
max(lmax,al(j,i))
616 kn(1,i)=fac*h1(i)/al(1,i)
617 kn(2,i)=fac*h2(i)/al(2,i)
618 kn(3,i)=fac*h3(i)/al(3,i)
619 kn(4,i)=fac*h4(i)/al(4,i)
625 ki11(j,j,i) = ki11(j,j,i)+kn(1,i)
626 ki12(j,j,i) = ki12(j,j,i)-kn(1,i)
627 kj11(j,j,i) = kj11(j,j,i)+kn(2,i)
628 kj12(j,j,i) = kj12(j,j,i)-kn(2,i)
629 kk11(j,j,i) = kk11(j,j,i)+kn(3,i)
630 kk12(j,j,i) = kk12(j,j,i)-kn(3,i)
631 kl11(j,j,i) = kl11(j,j,i)+kn(4,i)
632 kl12(j,j,i) = kl12(j,j,i)-kn(4,i)
subroutine i24corkm(jlt, x, irect, nsv, cand_e, cand_n, stif, stif_imp, xi, yi, zi, vxi, vyi, vzi, ix1, ix2, ix3, ix4, nsvg, nvoisin, ms, msi, nsn, v, nin, n1, n2, n3, h1, h2, h3, h4, nj_imp, hj_imp, subtria)
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)