29 1 PXC1, PXC2, PXC3, PXC4,
30 2 PYC1, PYC2, PYC3, PYC4,
31 3 PZC1, PZC2, PZC3, PZC4,
38 A PXY1, PXY2, PXY3, PXY4,
39 B PXY5, PXY6, PXY7, PXY8,
40 C PYX1, PYX2, PYX3, PYX4,
41 D PYX5, PYX6, PYX7, PYX8,
42 E PXZ1, PXZ2, PXZ3, PXZ4,
43 F PXZ5, PXZ6, PXZ7, PXZ8,
44 G PZX1, PZX2, PZX3, PZX4,
45 H PZX5, PZX6, PZX7, PZX8,
46 I PYZ1, PYZ2, PYZ3, PYZ4,
47 J PYZ5, PYZ6, PYZ7, PYZ8,
48 K PZY1, PZY2, PZY3, PZY4,
49 L PZY5, PZY6, PZY7, PZY8,
50 M BXY1, BXY2, BXY3, BXY4,
51 N BXY5, BXY6, BXY7, BXY8,
52 O BYX1, BYX2, BYX3, BYX4,
53 P BYX5, BYX6, BYX7, BYX8,
54 Q BXZ1, BXZ2, BXZ3, BXZ4,
55 R BXZ5, BXZ6, BXZ7, BXZ8,
56 S BZX1, BZX2, BZX3, BZX4,
57 T BZX5, BZX6, BZX7, BZX8,
58 U BYZ1, BYZ2, BYZ3, BYZ4,
59 V BYZ5, BYZ6, BYZ7, BYZ8,
60 W BZY1, BZY2, BZY3, BZY4,
61 X BZY5, BZY6, BZY7, BZY8,
71 8 WXX, WYY, WZZ, VOLO,
72 9 OFF, EINT, OFFS, DSV,
75 C NGL, IDEG, VOL0DP, NEL,
81#include "implicit_f.inc"
96 INTEGER,
INTENT(IN) :: NEL
97 INTEGER,
INTENT(IN) :: ISMSTR
98 INTEGER,
INTENT(IN) :: JCVT
99 INTEGER ICP,,ICS,ICT,NGL(*),IDEG(*)
102 . VX1(*), VX2(*), VX3(*), VX4(*), VX5(*), VX6(*), VX7(*), VX8(*),
103 . VY1(*), VY2(*), VY3(*), VY4(*), VY5(*), VY6(*), VY7(*), VY8(*),
104 . VZ1(*), VZ2(*), VZ3(*), VZ4(*), VZ5(*), VZ6(*), VZ7(*), VZ8(*),
105 . PXC1(*), PXC2(*), PXC3(*), PXC4(*),
106 . PYC1(*), PYC2(*), PYC3(*), PYC4(*),
107 . PZC1(*), (*), PZC3(*), PZC4(*),
108 . PX1(*), PX2(*), PX3(*), PX4(*),
109 . PX5(*), PX6(*), PX7(*), PX8(*),
110 . PY1(*), PY2(*), PY3(*), PY4(*),
111 . PY5(*), PY6(*), PY7(*), PY8(*),
112 . PZ1(*), PZ2(*), PZ3(*), PZ4(*),
113 . PZ5(*), PZ6(*), PZ7(*), PZ8(*),
114 . PXY1(*),PXY2(*),PXY3(*),PXY4(*),
115 . PXY5(*),PXY6(*),PXY7(*),PXY8(*),
116 . PYX1(*),PYX2(*),PYX3(*),PYX4(*),
117 . PYX5(*),PYX6(*),PYX7(*),PYX8(*),
118 . PXZ1(*),PXZ2(*),PXZ3(*),PXZ4(*),
119 . PXZ5(*),PXZ6(*),PXZ7(*),PXZ8(*),
120 . PZX1(*),PZX2(*),PZX3(*),PZX4(*),
121 . PZX5(*),PZX6(*),PZX7(*),PZX8(*),
122 . PYZ1(*),PYZ2(*),PYZ3(*),PYZ4(*),
123 . PYZ5(*),PYZ6(*),PYZ7(*),PYZ8(*),
124 . PZY1(*),PZY2(*),PZY3(*),PZY4(*),
125 . PZY5(*),PZY6(*),PZY7(*),PZY8(*),
126 . BXY1(*),BXY2(*),BXY3(*),BXY4(*),
127 . BXY5(*),BXY6(*),BXY7(*),BXY8(*),
128 . BYX1(*),BYX2(*),BYX3(*),(*),
129 . BYX5(*),BYX6(*),BYX7(*),BYX8(*),
130 . BXZ1(*),BXZ2(*),BXZ3(*),BXZ4(*),
131 . BXZ5(*),BXZ6(*),BXZ7(*),BXZ8(*),
132 . BZX1(*),BZX2(*),BZX3(*),BZX4(*),
133 . BZX5(*),BZX6(*),BZX7(*),BZX8(*),
134 . BYZ1(*),BYZ2(*),BYZ3(*),BYZ4(*),
135 . BYZ5(*),BYZ6(*),BYZ7(*),BYZ8(*),
136 . BZY1(*),BZY2(*),BZY3(*),BZY4(*),
137 . BZY5(*),BZY6(*),BZY7(*),BZY8(*),
138 . DXX(*), DXY(*), DXZ(*),
139 . DYX(*), DYY(*), DYZ(*),
140 . DZX(*), DZY(*), DZZ(*), D4(*), D5(*), D6(*),
141 . WXX(*), WYY(*), WZZ(*), OFFS(*),DSV(*),
142 . VOLO(*),OFF(*),EINT(*),DSR(*),DSS(*),DST(*),DTI
151 . dvc(mvsiz),dvca(mvsiz),dt1d2,tol,dt1d
157 dxx(1:nel) =px1(1:nel)*vx1(1:nel)+px2(1:nel)*vx2(1:nel)+px3(1:nel)*vx3(1:nel)+px4(1:nel)*vx4(1:nel)
158 . +px5(1:nel)*vx5(1:nel)+px6(1:nel)*vx6(1:nel)+px7
159 dyy(1:nel) =py1(1:nel)*vy1(1:nel)+py2(1:nel)*vy2(1:nel)+py3(1:nel)*vy3(1:nel
160 . +py5(1:nel)*vy5(1:nel)+py6(1:nel)*vy6(1:nel)+py7(1:nel)*vy7(1:nel)+py8(1:nel)*vy8(1:nel)
161 dzz(1:nel) =pz1(1:nel)*vz1(1:nel)+pz2(1:nel)*vz2(1:nel)+pz3(1:nel)*vz3(1:nel)+pz4
162 . +pz5(1:nel)*vz5(1:nel)+pz6(1:nel)*vz6(1:nel)+pz7(1:nel)*vz7(1:nel)+pz8(1:nel)*vz8(1:nel)
163 dxy(1:nel) =pxy1(1:nel)*vx1(1:nel)+pxy2(1:nel)*vx2(1:nel)
164 + +pxy3(1:nel)*vx3(1:nel)+pxy4(1:nel)*vx4(1:nel)
165 + +pxy5(1:nel)*vx5(1:nel)+pxy6(1:nel)*vx6(1:nel)
166 + +pxy7(1:nel)*vx7(1:nel)+pxy8(1:nel)*vx8(1:nel)
167 dxz(1:nel) =pxz1(1:nel)*vx1(1:nel)+pxz2(1:nel)*vx2(1:nel)
168 + +pxz3(1:nel)*vx3(1:nel)+pxz4(1:nel)*vx4(1:nel)
169 + +pxz5(1:nel)*vx5(1:nel)+pxz6(1:nel)*vx6(1:nel)
170 + +pxz7(1:nel)*vx7(1:nel)+pxz8(1:nel)*vx8(1:nel)
171 dyx(1:nel) =pyx1(1:nel)*vy1(1:nel)+pyx2(1:nel)*vy2(1:nel)
172 + +pyx3(1:nel)*vy3(1:nel)+pyx4(1:nel)*vy4(1:nel)
173 + +pyx5(1:nel)*vy5(1:nel)+pyx6(1:nel)*vy6(1:nel)
174 + +pyx7(1:nel)*vy7(1:nel)+pyx8(1:nel)*vy8(1:nel)
175 dyz(1:nel) =pyz1(1:nel)*vy1(1:nel)+pyz2(1:nel)*vy2(1:nel)
176 + +pyz3(1:nel)*vy3(1:nel)+pyz4(1:nel)*vy4(1:nel)
177 + +pyz5(1:nel)*vy5(1:nel)+pyz6(1:nel)*vy6(1:nel)
178 + +pyz7(1:nel)*vy7(1:nel)+pyz8(1:nel)*vy8(1:nel)
179 dzx(1:nel) =pzx1(1:nel)*vz1(1:nel)+pzx2(1:nel)*vz2(1:nel)
180 + +pzx3(1:nel)*vz3(1:nel)+pzx4(1:nel)*vz4(1:nel)
181 + +pzx5(1:nel)*vz5(1:nel)+pzx6(1:nel)*vz6(1:nel)
182 + +pzx7(1:nel)*vz7(1:nel)+pzx8(1:nel)*vz8(1:nel)
183 dzy(1:nel) =pzy1(1:nel)*vz1(1:nel)+pzy2(1:nel)*vz2(1:nel)
184 + +pzy3(1:nel)*vz3(1:nel)+pzy4(1:nel)*vz4(1:nel)
185 + +pzy5(1:nel)*vz5(1:nel)+pzy6(1:nel)*vz6(1:nel)
186 + +pzy7(1:nel)*vz7(1:nel)+pzy8(1:nel)*vz8(1:nel)
187 dvc(1:nel) =(dxx(1:nel)+dyy(1:nel)+dzz(1:nel))*dt1
190 dvca(1:nel)=pxc1(1:nel)*(vx1(1:nel)-vx7(1:nel))+pxc2(1:nel)*(vx2(1:nel)-vx8(1:nel))
191 . +pxc3(1:nel)*(vx3(1:nel)-vx5(1:nel))+pxc4(1:nel)*(vx4(1:nel)-vx6(1:nel))
192 . +pyc1(1:nel)*(vy1(1:nel)-vy7(1:nel))+pyc2(1:nel)*(vy2(1:nel)-vy8(1:nel))
193 . +pyc3(1:nel)*(vy3(1:nel)-vy5(1:nel))+pyc4(1:nel)*(vy4(1:nel)-vy6(1:nel))
194 . +pzc1(1:nel)*(vz1(1:nel)-vz7(1:nel))+pzc2(1:nel)*(vz2(1:nel)-vz8(1:nel))
195 . +pzc3(1:nel)*(vz3(1:nel)-vz5(1:nel))+pzc4(1:nel)*(vz4(1:nel)-vz6(1:nel))
196 dvca(1:nel)=dvca(1:nel)*dt1
198 dyy(1:nel) =dyy(1:nel)+bxy1(1:nel)*vx1(1:nel)+bxy2(1:nel)*vx2(1:nel)
199 + +bxy3(1:nel)*vx3(1:nel)+bxy4(1:nel)*vx4(1:nel)
200 + +bxy5(1:nel)*vx5(1:nel)+bxy6(1:nel)*vx6(1:nel)
201 + +bxy7(1:nel)*vx7(1:nel)+bxy8(1:nel)*vx8(1:nel)
202 dzz(1:nel) =dzz(1:nel)+bxz1(1:nel)*vx1(1:nel)+bxz2(1:nel)*vx2(1:nel)
203 + +bxz3(1:nel)*vx3(1:nel)+bxz4(1:nel)*vx4(1:nel)
204 + +bxz5(1:nel)*vx5(1:nel)+bxz6(1:nel)*vx6(1:nel)
205 + +bxz7(1:nel)*vx7(1:nel)+bxz8(1:nel)*vx8(1:nel)
206 dxx(1:nel) =dxx(1:nel)+byx1(1:nel)*vy1(1:nel)+byx2(1:nel)*vy2(1:nel)
207 + +byx3(1:nel)*vy3(1:nel)+byx4(1:nel)*vy4(1:nel)
208 + +byx5(1:nel)*vy5(1:nel)+byx6(1:nel)*vy6(1:nel)
209 + +byx7(1:nel)*vy7(1:nel)+byx8(1:nel)*vy8(1:nel)
210 dzz(1:nel) =dzz(1:nel)+byz1(1:nel)*vy1(1:nel)+byz2(1:nel)*vy2(1:nel)
211 + +byz3(1:nel)*vy3(1:nel)+byz4(1:nel)*vy4(1:nel)
212 + +byz5(1:nel)*vy5(1:nel)+byz6(1:nel)*vy6(1:nel)
213 + +byz7(1:nel)*vy7(1:nel)+byz8(1:nel)*vy8(1:nel)
214 dxx(1:nel) =dxx(1:nel)+bzx1(1:nel)*vz1(1:nel)+bzx2(1:nel)*vz2(1:nel)
215 + +bzx3(1:nel)*vz3(1:nel)+bzx4(1:nel)*vz4(1:nel)
216 + +bzx5(1:nel)*vz5(1:nel)+bzx6(1:nel)*vz6(1:nel)
217 + +bzx7(1:nel)*vz7(1:nel)+bzx8(1:nel)*vz8(1:nel)
218 dyy(1:nel) =dyy(1:nel)+bzy1(1:nel)*vz1(1:nel)+bzy2(1:nel)*vz2(1:nel)
219 + +bzy3(1:nel)*vz3(1:nel)+bzy4(1:nel)*vz4(1:nel)
220 + +bzy5(1:nel)*vz5(1:nel)+bzy6(1:nel)*vz6(1:nel)
221 + +bzy7(1:nel)*vz7(1:nel)+bzy8(1:nel)*vz8(1:nel)
222 dvca(1:nel) =(dxx(1:nel)+dyy(1:nel)+dzz(1:nel))*dt1
228 dxx(i)= dxx(i)-dsr(i)*dti
229 IF(ismdisp==0.AND.offs(i)/=two)dvca(i)= dvca(i)-dsr(i)
235 dyy(i)= dyy(i)-dss(i)*dti
236 IF(ismdisp==0.AND.offs(i)/=two)dvca(i)= dvca(i)-dss(i)
242 dzz(i)= dzz(i)-dst(i)*dti
243 IF(ismdisp==0.AND.offs(i)/=two)dvca(i)= dvca(i)-dst(i)
250 IF(ideg(i)>10) dv = zero
253 IF (ismdisp>0.AND.(icr+ics+ict)==0.AND.icp/=1)
THEN
257 ELSEIF (ismstr==10.AND.icp==1)
THEN
261 ELSEIF (ismstr==12.AND.icp==1)
THEN
263 IF(offs(i)<=one) dsv(i) = zero
265 ELSEIF ((icr+ics+ict)>0 )
THEN
267 IF(offs(i)==two.OR.ismstr==11)
THEN
269 dsv(i) =dvca(i)-(dxx(i)+dyy(i)+dzz(i))*dt1
277 IF(offs(i)==two.OR.ismstr==11) cycle
279 IF (abs(dv)>tol.AND.off(i)/=zero)
THEN
290 ELSEIF(abs(dv)>tol)
THEN
295 volo(i) = volo(i)*dv1
296 IF (iresp==1) vol0dp(i) = vol0dp(i)*dv1
297 eint(i) = eint(i)/dv1
302 IF (iscau>0 )dt1d2=dt1
305 IF (ismdisp>0.AND.iscau==0)
THEN
306 d4(1:nel) = dxy(1:nel)+dyx(1:nel)
307 d5(1:nel) = dyz(1:nel)+dzy(1:nel)
308 d6(1:nel) = dxz(1:nel)+dzx(1:nel)
313 d4(1:nel) = dxy(1:nel)+dyx(1:nel)
314 . -dt1d*(dxx(1:nel)*dxy(1:nel)+dyx(1:nel)*dyy(1:nel)+dzx(1:nel)*dzy(1:nel))
315 d5(1:nel) = dyz(1:nel)+dzy(1:nel)
316 . -dt1d*(dyy(1:nel)*dyz(1:nel)+dzy(1:nel)*dzz(1:nel)+dxy(1:nel)*dxz(1:nel))
317 d6(1:nel) = dxz(1:nel)+dzx(1:nel)
318 . -dt1d*(dzz(1:nel)*dzx(1:nel)+dxz(1:nel)*dxx(1:nel)+dyz(1:nel)*dyx(1:nel))
319 dxx(1:nel) = dxx(1:nel)
320 . -dt1d2*(dxx(1:nel)*dxx(1:nel)+dyx(1:nel)*dyx(1:nel)+dzx(1:nel)*dzx(1:nel))
321 dyy(1:nel) = dyy(1:nel)
322 . -dt1d2*(dyy(1:nel)*dyy(1:nel)+dzy(1:nel)*dzy(1:nel)+dxy(1:nel)*dxy(1:nel))
323 dzz(1:nel) = dzz(1:nel)
324 . -dt1d2*(dzz(1:nel)*dzz(1:nel)+dxz(1:nel)*dxz(1:nel)+dyz(1:nel)*dyz(1:nel))
330 d4(1:nel)=dxy(1:nel)+dyx(1:nel)
331 d5(1:nel)=dyz(1:nel)+dzy(1:nel)
332 d6(1:nel)=dxz(1:nel)+dzx(1:nel)
333 wzz(1:nel)=dt1d2*(dyx(1:nel)-dxy(1:nel))
334 wyy(1:nel)=dt1d2*(dxz(1:nel)-dzx(1:nel))
335 wxx(1:nel)=dt1d2*(dzy(1:nel)-dyz(1:nel))
338 2000
FORMAT(/
' ZERO OR NEGATIVE SUB-VOLUME : DELETE 3D-ELEMENT NB',
subroutine s8zdefo3(pxc1, pxc2, pxc3, pxc4, pyc1, pyc2, pyc3, pyc4, pzc1, pzc2, pzc3, pzc4, px1, px2, px3, px4, px5, px6, px7, px8, py1, py2, py3, py4, py5, py6, py7, py8, pz1, pz2, pz3, pz4, pz5, pz6, pz7, pz8, pxy1, pxy2, pxy3, pxy4, pxy5, pxy6, pxy7, pxy8, pyx1, pyx2, pyx3, pyx4, pyx5, pyx6, pyx7, pyx8, pxz1, pxz2, pxz3, pxz4, pxz5, pxz6, pxz7, pxz8, pzx1, pzx2, pzx3, pzx4, pzx5, pzx6, pzx7, pzx8, pyz1, pyz2, pyz3, pyz4, pyz5, pyz6, pyz7, pyz8, pzy1, pzy2, pzy3, pzy4, pzy5, pzy6, pzy7, pzy8, bxy1, bxy2, bxy3, bxy4, bxy5, bxy6, bxy7, bxy8, byx1, byx2, byx3, byx4, byx5, byx6, byx7, byx8, bxz1, bxz2, bxz3, bxz4, bxz5, bxz6, bxz7, bxz8, bzx1, bzx2, bzx3, bzx4, bzx5, bzx6, bzx7, bzx8, byz1, byz2, byz3, byz4, byz5, byz6, byz7, byz8, bzy1, bzy2, bzy3, bzy4, bzy5, bzy6, bzy7, bzy8, vx1, vx2, vx3, vx4, vx5, vx6, vx7, vx8, vy1, vy2, vy3, vy4, vy5, vy6, vy7, vy8, vz1, vz2, vz3, vz4, vz5, vz6, vz7, vz8, dxx, dxy, dxz, dyx, dyy, dyz, dzx, dzy, dzz, d4, d5, d6, wxx, wyy, wzz, volo, off, eint, offs, dsv, icp, icr, ics, ict, dti, dsr, dss, dst, ngl, ideg, vol0dp, nel, ismstr, jcvt)