30 2 JFT ,JLT ,THK ,HOUR,OFF ,PX1 ,PX2 ,PY1 ,PY2 ,
31 3 IXC ,DT1C,SSP ,RHO ,STI ,VX1 ,VX2 ,VX3 ,VX4 ,VY1 ,
32 4 VY2 ,VY3 ,VY4 ,VZ1 ,VZ2 ,VZ3 ,VZ4 ,AREA,THK0,VHX ,
33 5 VHY ,SHF ,Z2 ,EANI,STIR,VISCMX,G ,A11 ,
34 6 H1 ,H2 ,H3 ,YM ,NU ,THK02 ,ALPE ,H11 ,
35 7 H12 ,H13 ,H21 ,H22 ,H23 ,H31 ,H32 ,H33 ,
36 8 B11 ,B12 ,B13 ,B14 ,B21 ,B22 ,B23 ,B24 ,
37 9 RX1 ,RX2 ,RX3 ,RX4 ,RY1 ,RY2 ,RY3 ,RY4 ,
39 B IHBE ,NFT ,ISMSTR,KFTS ,
40 C SRH1 ,SRH2 ,SRH3 ,IGTYP ,
45#include "implicit_f.inc"
57#include "remesh_c.inc"
67 INTEGER IXC(NIXC,*),IPARTC(*), JFT, JLT,
68 . IHBE ,NFT ,ISMSTR,KFTS,IGTYP,
72 . THK(*), HOUR(NEL,5), OFF(*),PARTSAV(NPSAV,*),
73 . PX1(*), PX2(*), PY1(*), PY2(*),DT1C(*),EANI(*),
74 . (MVSIZ), RHO(MVSIZ),STI(MVSIZ),STIR(MVSIZ),
75 . VX1(MVSIZ), VX2(MVSIZ), VX3(MVSIZ), VX4(MVSIZ),
76 . VY1(MVSIZ), VY2(MVSIZ), VY3(MVSIZ), VY4(MVSIZ),
77 . VZ1(MVSIZ), VZ2(MVSIZ), VZ3(MVSIZ), VZ4(MVSIZ),
78 . AREA(MVSIZ),THK0(MVSIZ),VHX(MVSIZ), VHY(MVSIZ),
79 . shf(mvsiz),z2(mvsiz),viscmx(mvsiz),g(mvsiz),
80 . h1(mvsiz), h2(mvsiz), h3(mvsiz), a11(mvsiz),
81 . b11(mvsiz), b12(mvsiz), b13(mvsiz), b14(mvsiz),
82 . b21(mvsiz), b22(mvsiz), b23(mvsiz), b24(mvsiz),
83 . h11(mvsiz), h12(mvsiz), h13(mvsiz), h14(mvsiz),
84 . h21(mvsiz), h22(mvsiz), h23(mvsiz), h24(mvsiz),
85 . h31(mvsiz), h32(mvsiz), h33(mvsiz), h34(mvsiz),
86 . rx1(mvsiz), rx2(mvsiz), rx3(mvsiz), rx4(mvsiz),
87 . ry1(mvsiz), ry2(mvsiz), ry3(mvsiz), ry4(mvsiz),
88 . thk02(mvsiz),ym(mvsiz), nu(mvsiz), alpe(mvsiz),
89 . srh1(*) ,srh2(*) ,srh3(*),a11r(*)
93 INTEGER I,MX,J, II, IC, JST(MVSIZ+1)
96 . H1L(MVSIZ), H2L(MVSIZ), H3L(MVSIZ), H1Q(MVSIZ), H2Q(MVSIZ),
97 . H3Q(MVSIZ), HG1(MVSIZ), HG2(MVSIZ),
98 . HH1(MVSIZ), HH2(MVSIZ), HH3(MVSIZ),
99 . A1(MVSIZ), A2(MVSIZ), A3(MVSIZ), A4(MVSIZ),
106 . shfpr3, fac, ehourt,
107 . r0,r1,t2a,tsa,td,vv,mm,hour1p,hour2p,hour3p,
108 . px1vp,py1vp,px2vp,py2vp,hour1a,hour2a,hour3a,tsaphi,
109 . tdphi,shfpr3d,hvish1d,hvish2d,r0d,r1d,hh3d,
110 . sr2d2,srshfpr3, inv9, inv12,scale(mvsiz),iz
113 sr2d2 = sqrt(two)* half
119 IF(ismstr/=1.AND.ismstr/=11.AND.ihbe>=1)
THEN
125 gama1(i)= off(i)*( one - px1v-py1v)
126 gama3(i)= off(i)*( one + px1v+py1v)
127 gama2(i)= off(i)*(-one - px2v-py2v)
128 gama4(i)= off(i)*(-one + px2v+py2v)
140 shfpr3 = shf(i)/(three*(one + nu(i)))
147 a2(i) = r0*sr2d2*srh1(i)
148 srshfpr3 = sqrt(shfpr3)
149 a3(i) = r1*hvish2*srshfpr3
150 a4(i) = r0*sr2d2*srh2(i)*srshfpr3
152 a5(i) = hh3(i)*r1*zep072169
153 hh3(i) = sr2d2*srh3(i)
154 a6(i) = hh3(i)*r0*zep072169
155 r0 = fourth*ym(i)*helas
157 a8(i) = h2(i)*r0*shfpr3
161 t2a = thk02(i)*area(i)
164 h1l(i) = a2(i)*ssp(i)*tsa
165 h2q(i) = a3(i)*thk02(i)
166 h2l(i) = a4(i)*ssp(i)*thk02(i)
168 h3l(i) = a6(i)*ssp(i)*t2a
171 b1(i) = px1(i)*px1(i)+py1(i)*py1(i)
172 b2(i) = px2(i)*px2(i)+py2(i)*py2(i)
173 hh2(i) = a8(i)*thk02(i)*td/(b1(i)+b2(i))
179 IF(ixc(4,i)==ixc(5,i))
THEN
196 IF(nodadt/=0.OR.idt1sh==1.OR.idtmins==2)
THEN
198 scale(i) =
max(gama1(i)*gama1(i),gama2(i)*gama2(i),
199 . gama3(i)*gama3(i),gama4(i)*gama4(i)) *
200 . dt1c(i)*
max(hh1(i)+h1l(i),hh2(i)+h2l(i),h3l(i))
201 . /
max(dt1c(i)*dt1c(i),em20)
202 sti(i) = sti(i) + scale(i)
207 . ((igtyp == 11 .OR. igtyp == 17 .OR. igtyp == 51)
208 . .AND. igmat > 0 ))
THEN
211 IF (off(i)==zero)
THEN
215 vv = viscmx(i) * viscmx(i) * alpe(i)
216 fac =
max(b1(i),b2(i))/(area(i) * vv)
217 sti(i) = sti(i) + fac * thk0(i) * a11(i)
218 stir(i) = fac * a11r(i)*one_over_12*thk0(i)**3 +
219 . fac * a11(i)*thk0(i)*area(i)*inv9 +
220 . fac*scale(i)*(one_over_12*thk0(i)**2 + area(i)*inv9)
225 IF (off(i)==zero)
THEN
229 vv = viscmx(i) * viscmx(i) * alpe(i)
230 fac =
max(b1(i),b2(i))/(area(i) * vv)
231 sti(i) = sti(i) + fac * thk0(i) * a11(i)
232 stir(i) = fac * a11r(i)*one_over_12*thk0(i)**3 +
233 . fac*scale(i)*one_over_12*thk0(i)**2
240 IF (off(i)==zero)
THEN
245 sti(i) = sti(i) +
max(b1(i),b2(i))
246 . * thk0(i) * a11(i) / (area(i) * vv)
247 stir(i) = sti(i) * (thk02(i)*inv12 + area(i)*inv9)
253 IF (off(i)==zero)
THEN
257 vv = viscmx(i) * viscmx(i) * alpe(i)
258 sti(i) = sti(i) +
max(b1(i),b2(i))
259 . * thk0(i) * a11(i) / (area(i) * vv)
260 stir(i) = sti(i) * thk02(i)*inv12
269 IF(ismstr==1.OR.ismstr==11.OR.ihbe<1)
THEN
271 hg1(i)=(vx1(i)-vx2(i)+vx3(i)-vx4(i))*off(i)
272 hg2(i)=(vy1(i)-vy2(i)+vy3(i)-vy4(i))*off(i)
276 hg1(i)=vx1(i)*gama1(i)+vx2(i)*gama2(i)
277 . +vx3(i)*gama3(i)+vx4(i)*gama4(i)
278 hg2(i)=vy1(i)*gama1(i)+vy2(i)*gama2(i)
279 . +vy3(i)*gama3(i)+vy4(i)*gama4(i)
283 hour(i,1)=hour(i,1)+hg1(i)*hh1(i)
284 hour(i,2)=hour(i,2)+hg2(i)*hh1(i)
285 hour1a =hour(i,1)+hg1(i)*(h1l(i)+h1q(i)*abs(hg1(i)))
286 h11(i)=hour1a*gama1(i)
287 h12(i)=hour1a*gama2(i)
288 h13(i)=hour1a*gama3(i)
290 hour2a =hour(i,2)+hg2(i)*(h1l(i)+h1q(i)*abs(hg2(i)))
291 h21(i)=hour2a*gama1(i)
292 h22(i)=hour2a*gama2(i)
293 h23(i)=hour2a*gama3(i)
295 ehou(i) = hour1a*hg1(i) + hour2a*hg2(i)
301 IF(ismstr==1.OR.ismstr==11.OR.ihbe<1)
THEN
303 hg1(i)=(vz1(i)-vz2(i)+vz3(i)-vz4(i))*off(i)
307 hg1(i)=vz1(i)*gama1(i)+vz2(i)*gama2(i)
308 . +vz3(i)*gama3(i)+vz4(i)*gama4(i)
312 hour(i,3)=hour(i,3)+hg1(i)*hh2(i)
313 hour3a =hour(i,3)+hg1(i)*(h2l(i)+h2q(i)*abs(hg1(i)))
314 h31(i)=hour3a*gama1(i)
315 h32(i)=hour3a*gama2(i)
316 h33(i)=hour3a*gama3(i)
318 ehou(i) = ehou(i) + hour3a*hg1(i)
325 hg1(i)=rx1(i)-rx2(i)+rx3(i)-rx4(i)
326 hg2(i)=ry1(i)-ry2(i)+ry3(i)-ry4(i)
330 hour(i,4)=hg1(i)*(h3l(i)+h3q(i)*abs(hg1(i)))
331 hour(i,5)=hg2(i)*(h3l(i)+h3q(i)*abs(hg2(i)))
333 . hour(i,4)*hg1(i) + hour(i,5)*hg2(i)
334 ehou(i) = dt1c(i) * ehou(i) * off(i)
336 b11(i)= hour(i,4)*off(i)
337 b12(i)=-hour(i,4)*off(i)
338 b13(i)= hour(i,4)*off(i)
339 b14(i)=-hour(i,4)*off(i)
340 b21(i)= hour(i,5)*off(i)
341 b22(i)=-hour(i,5)*off(i)
342 b23(i)= hour(i,5)*off(i)
343 b24(i)=-hour(i,5)*off(i)
347 ehourt = ehourt + ehou(i)
353 IF (ipartc(j)/=ipartc(j-1))
THEN
363 partsav(8,mx)=partsav(8,mx) + ehou(i)
366 ELSEIF(ic==2.AND.kfts>0)
THEN
369 partsav(8,mx)=partsav(8,mx) + ehou(i)
373 partsav(8,mx)=partsav(8,mx) + ehou(i)
380 IF (jst(ii+1)-jst(ii)>15)
THEN
381 DO j=jst(ii),jst(ii+1)-1
382 partsav(8,mx)=partsav(8,mx)+ehou(j)
385 DO j=jst(ii),jst(ii+1)-1
386 partsav(8,mx)=partsav(8,mx)+ehou(j)
393 ehour = ehour + ehourt
396 eani(nft+numels+i) = eani(nft+numels+i) + ehou(i)
subroutine chvis3(jft, jlt, thk, hour, off, px1, px2, py1, py2, ixc, dt1c, ssp, rho, sti, vx1, vx2, vx3, vx4, vy1, vy2, vy3, vy4, vz1, vz2, vz3, vz4, area, thk0, vhx, vhy, shf, z2, eani, stir, viscmx, g, a11, h1, h2, h3, ym, nu, thk02, alpe, h11, h12, h13, h21, h22, h23, h31, h32, h33, b11, b12, b13, b14, b21, b22, b23, b24, rx1, rx2, rx3, rx4, ry1, ry2, ry3, ry4, ipartc, partsav, ihbe, nft, ismstr, kfts, srh1, srh2, srh3, igtyp, igmat, a11r, nel)