33 SUBROUTINE i2_dtn(X,INTBUF_TAB,IPARI,STIFN,MS,IN,N,ILEV)
41#include "implicit_f.inc"
51 INTEGER IPARI(NPARI,*),NSN,N,ILEV
52 my_real x(3,*),stifn(*),ms(*),in(*)
53 TYPE(intbuf_struct_) INTBUF_TAB(*)
60 IF (((ilev==1).OR.(ilev==3)).AND.(iroddl==1))
THEN
61 CALL i2_dtn_1(x,intbuf_tab(n)%IRECTM,intbuf_tab(n)%NSV,intbuf_tab(n)%IRTLM,
62 . ipari(1,n),stifn, stifn(numnod+1),ms,in,ilev)
63 ELSEIF (ilev==25)
THEN
64 CALL i2_dtn_25(x,intbuf_tab(n)%IRECTM,intbuf_tab(n)%CSTS,intbuf_tab(n)%NSV,intbuf_tab(n)%IRTLM,
65 . ipari(1,n),stifn,intbuf_tab(n)%SPENALTY,intbuf_tab(n)%VARIABLES(14))
67 CALL i2_dtn_0(intbuf_tab(n)%IRECTM,intbuf_tab(n)%CSTS,intbuf_tab(n)%CSTS_BIS,intbuf_tab(n)%NSV,
172 2 IPARI, STIFN, STIFR, MS, IN,ILEV)
179#include "implicit_f.inc"
180#include "com01_c.inc"
184 INTEGER IRECT(4,*), NSV(*),IRTL(*), IPARI(*),ILEV
185 my_real X(3,*),STIFN(*),STIFR(*), MS(*),IN(*)
189 INTEGER II,I,J,JJ,L,J1,J2,J3,J4,NIR,NRTM,NSN,NMN
191 . X1,X2,X3,X4,Y1,Y2,Y3,Y4,Z1,Z2,Z3,Z4,XS,YS,ZS,X0,Y0,Z0,
192 . xx,yy,zz,xxx,yyy,zzz,xy,yz,zx,xy2,yz2,zx2,
193 . x12,x22,x32,x42,y12,y22,y32,y42,z12,z22,z32,z42,
194 . a1,a2,a3,b1,b2,b3,c1,c2,c3,mr,mrx,mry,mrz,inx,iny,inz,stf,fact,
223 x0=fourth*(x1+x2+x3+x4)
224 y0=fourth*(y1+y2+y3+y4)
225 z0=fourth*(z1+z2+z3+z4)
254 xx=x12 + x22 + x32 + x42
255 yy=y12 + y22 + y32 + y42
256 zz=z12 + z22 + z32 + z42
257 xy=x1*y1 + x2*y2 + x3*y3 + x4*y4
258 yz=y1*z1 + y2*z2 + y3*z3 + y4*z4
259 zx=z1*x1 + z2*x2 + z3*x3 + z4*x4
266 det= xxx*yyy*zzz - xxx*yz2 - yyy*zx2 - zzz*xy2 - two*xy*yz*zx
267 det=one/
max(det,em20)
275 IF (iroddl == 1)
THEN
276 inx= in(i) + ms(i)*(xs*xs+ys*ys+zs*zs)
278 inx= ms(i)*(xs*xs+ys*ys+zs*zs)
284 mr=det*inx*
max(mrx,mry,mrz)
288 IF (in(j1)>zero.AND.in(j2)>zero.AND.in(j3)>zero.AND.in(j4)>zero)
THEN
298 xmsi=
max(fourth*xmsi,mr)
306 stf = fourth*stifn(i) + det*
max(mrx,mry,mrz)*(stifr(i)+stifn(i)*(xs*xs+ys*ys+zs*zs))
308 stifn(j1)=stifn(j1) + stf
309 stifn(j2)=stifn(j2) + stf
310 stifn(j3)=stifn(j3) + stf
311 stifn(j4)=stifn(j4) + stf
314 in(j1)=in(j1)+inx*fourth*(one-fact)
315 in(j2)=in(j2)+inx*fourth*(one-fact)
316 in(j3)=in(j3)+inx*fourth*(one-fact)
317 in(j4)=in(j4)+inx*fourth*(one-fact)
341 2 IPARI,STIFN,STFN,VISC)
345#include "implicit_f.inc"
349 INTEGER IRECT(4,*),NSV(*),IRTL(*),IPARI(*)
350 my_real X(3,*),STIFN(*),STFN(*),CRST(2,*),VISC
354 INTEGER NIR,I,J,II,JJ,L,W,NN,KK,LLT,
355 . IX1, IX2, IX3, IX4,NSVG,NSN
357 . S,T,SP,SM,TP,TM,E1X,E1Y,E1Z,E2X,E2Y,E2Z,E3X,E3Y,E3Z,
358 . xsm,ysm,zsm,xm,ym,zm,x1,x2,x3,x4,y1,y2,y3,y4,z1,z2,z3,z4,x0,y0,z0,xs,ys,zs,stifm,
361 . h(4),rx(4),ry(4),rz(4),rm(3),rs(3),stif, vis
363 . len2,fac_triang,irot,skew(9),tt,bid,bid3(3),bid4(4,3)
395 tp = fourth*(one + t)
396 tm = fourth*(one - t)
428 CALL i2rep(x1 ,x2 ,x3 ,x4 ,
433 . e3x ,e3y ,e3z ,nir )
438 xm = x1*h(1) + x2*h(2) + x3*h(3) + x4*h(4)
439 ym = y1*h(1) + y2*h(2) + y3*h(3) + y4*h(4)
440 zm = z1*h(1) + z2*h(2) + z3*h(3) + z4*h(4)
441 x0 = (x1 + x2 + x3 + x4)/nir
442 y0 = (y1 + y2 + y3 + y4)/nir
443 z0 = (z1 + z2 + z3 + z4)/nir
458 x0 = (x1 + x2 + x3)/nir
459 y0 = (y1 + y2 + y3)/nir
460 z0 = (z1 + z2 + z3)/nir
462 xm = x1*h(1) + x2*h(2) + x3*h(3)
463 ym = y1*h(1) + y2*h(2) + y3*h(3)
464 zm = z1*h(1) + z2*h(2) + z3*h(3)
492 rs(1) = xs*e1x + ys*e1y + zs*e1z
493 rs(2) = xs*e2x + ys*e2y + zs*e2z
494 rs(3) = xs*e3x + ys*e3y + zs*e3z
495 rm(1) = xm*e1x + ym*e1y + zm*e1z
496 rm(2) = xm*e2x + ym*e2y + zm*e2z
497 rm(3) = xm*e3x + ym*e3y + zm*e3z
499 rx(1) = e1x*x1 + e1y*y1 + e1z*z1
500 ry(1) = e2x*x1 + e2y*y1 + e2z*z1
501 rz(1) = e3x*x1 + e3y*y1 + e3z*z1
502 rx(2) = e1x*x2 + e1y*y2 + e1z*z2
503 ry(2) = e2x*x2 + e2y*y2 + e2z*z2
504 rz(2) = e3x*x2 + e3y*y2 + e3z*z2
505 rx(3) = e1x*x3 + e1y*y3 + e1z*z3
506 ry(3) = e2x*x3 + e2y*y3 + e2z*z3
507 rz(3) = e3x*x3 + e3y*y3 + e3z*z3
508 rx(4) = e1x*x4 + e1y*y4 + e1z*z4
509 ry(4) = e2x*x4 + e2y*y4 + e2z*z4
510 rz(4) = e3x*x4 + e3y*y4 + e3z*z4
520 . rs ,rm ,bid ,bid ,bid ,
521 . rx ,ry ,rz ,bid3 ,bid3 ,
525 stf = stfn(ii)*(visc + sqrt(visc**2 + (one+stbrk)))**2
534 CALL i2loceq( nir ,rs ,rx ,ry ,rz ,
535 . bid4(1:4,1) ,bid4(1:4,2) ,bid4(1:4,3) ,h(1) ,stifm)
539 stifn(ix1) = stifn(ix1)+abs(stf*h(1))+stifm*stf
540 stifn(ix2) = stifn(ix2)+abs(stf*h(2))+stifm*stf
541 stifn(ix3) = stifn(ix3)+abs(stf*h(3))+stifm*stf
542 stifn(ix4) = stifn(ix4)+abs(stf*h(4))+stifm*stf*fac_triang
subroutine i2rep(x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, nir)