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"
95 INTEGER,
INTENT(IN) :: NEL,ISMSTR,IPRES
96 INTEGER,
INTENT(IN) :: ICP,ICR,ICS,ICT
97 INTEGER,
DIMENSION(MVSIZ),
INTENT(IN) :: NGL,IDEG
99 my_real,
DIMENSION(MVSIZ),
INTENT(IN) ::
100 . VX1, VX2, VX3, VX4, VX5, VX6, VX7, ,
101 . VY1, VY2, VY3, VY4, VY5, VY6, VY7, VY8,
102 . VZ1, VZ2, VZ3, VZ4, VZ5, , VZ7, VZ8,
103 . PXC1, PXC2, PXC3, PXC4,
104 . PYC1, PYC2, PYC3, PYC4,
105 . PZC1, , PZC3, PZC4,
106 . PX1, PX2, PX3, PX4,
107 . PX5, PX6, PX7, PX8,
108 . PY1, PY2, PY3, PY4,
109 . PY5, PY6, PY7, PY8,
110 . PZ1, PZ2, PZ3, PZ4,
111 . PZ5, PZ6, PZ7, PZ8,
112 . PXY1,PXY2,PXY3,PXY4,
113 . PXY5,PXY6,PXY7,PXY8,
114 . PYX1,PYX2,PYX3,PYX4,
115 . PYX5,PYX6,PYX7,PYX8,
116 . PXZ1,PXZ2,PXZ3,PXZ4,
117 . PXZ5,PXZ6,PXZ7,PXZ8,
118 . PZX1,PZX2,PZX3,PZX4,
119 . PZX5,PZX6,PZX7,PZX8,
120 . PYZ1,PYZ2,PYZ3,PYZ4,
121 . PYZ5,PYZ6,PYZ7,PYZ8,
122 . PZY1,PZY2,PZY3,PZY4,
123 . PZY5,PZY6,PZY7,PZY8,
124 . BXY1,BXY2,BXY3,BXY4,
125 . BXY5,BXY6,BXY7,BXY8,
126 . BYX1,BYX2,BYX3,BYX4,
129 . BXZ5,BXZ6,BXZ7,BXZ8,
130 . BZX1,BZX2,BZX3,BZX4,
131 . BZX5,BZX6,BZX7,BZX8,
132 . BYZ1,BYZ2,BYZ3,BYZ4,
133 . BYZ5,BYZ6,BYZ7,BYZ8,
134 . BZY1,BZY2,BZY3,BZY4,
135 . BZY5,BZY6,BZY7,BZY8,
137 my_real,
DIMENSION(MVSIZ),
INTENT(OUT) ::
140 . DZX, DZY, DZZ, D4, D5, D6,
142 my_real,
INTENT(IN) :: DTI
143 my_real,
DIMENSION(NEL),
INTENT(IN) :: offs
144 my_real,
DIMENSION(NEL),
INTENT(INOUT) :: volo,eint
145 DOUBLE PRECISION,
DIMENSION(NEL),
INTENT(INOUT) :: VOL0DP
152 . DVC(MVSIZ),DVCA(MVSIZ),DT1D2,TOL,DT1D
158 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)
159 . +px5(1:nel)*vx5(1:nel)+px6(1:nel)*vx6(1:nel)+px7(1:nel)*vx7(1:nel)+px8(1:nel)*vx8(1:nel)
160 dyy(1:nel) =py1(1:nel)*vy1(1:nel)+py2(1:nel)*vy2(1:nel)+py3(1:nel)*vy3(1:nel)+py4(1:nel)*vy4(1:nel)
161 . +py5(1:nel)*vy5(1:nel)+py6(1:nel)*vy6(1:nel)+py7(1:nel)*vy7(1:nel)+py8(1:nel)*vy8(1:nel)
162 dzz(1:nel) =pz1(1:nel)*vz1(1:nel)+pz2(1:nel)*vz2(1:nel)+pz3(1:nel)*vz3(1:nel)+pz4(1:nel)*vz4(1:nel)
163 . +pz5(1:nel)*vz5(1:nel)+pz6(1:nel)*vz6(1:nel)+pz7(1:nel)*vz7(1:nel)+pz8(1:nel)*vz8(1:nel)
164 dxy(1:nel) =pxy1(1:nel)*vx1(1:nel)+pxy2(1:nel)*vx2(1:nel)
165 + +pxy3(1:nel)*vx3(1:nel)+pxy4(1:nel)*vx4(1:nel)
166 + +pxy5(1:nel)*vx5(1:nel)+pxy6(1:nel)*vx6(1:nel)
167 + +pxy7(1:nel)*vx7(1:nel)+pxy8(1:nel)*vx8(1:nel)
168 dxz(1:nel) =pxz1(1:nel)*vx1(1:nel)+pxz2(1:nel)*vx2(1:nel)
169 + +pxz3(1:nel)*vx3(1:nel)+pxz4(1:nel)*vx4(1:nel)
170 + +pxz5(1:nel)*vx5(1:nel)+pxz6(1:nel)*vx6(1:nel)
171 + +pxz7(1:nel)*vx7(1:nel)+pxz8(1:nel)*vx8(1:nel)
172 dyx(1:nel) =pyx1(1:nel)*vy1(1:nel)+pyx2(1:nel)*vy2(1:nel)
173 + +pyx3(1:nel)*vy3(1:nel)+pyx4(1:nel)*vy4(1:nel)
174 + +pyx5(1:nel)*vy5(1:nel)+pyx6(1:nel)*vy6(1:nel)
175 + +pyx7(1:nel)*vy7(1:nel)+pyx8(1:nel)*vy8(1:nel)
176 dyz(1:nel) =pyz1(1:nel)*vy1(1:nel)+pyz2(1:nel)*vy2(1:nel)
177 + +pyz3(1:nel)*vy3(1:nel)+pyz4(1:nel)*vy4(1:nel)
178 + +pyz5(1:nel)*vy5(1:nel)+pyz6(1:nel)*vy6(1:nel)
179 + +pyz7(1:nel)*vy7(1:nel)+pyz8(1:nel)*vy8(1:nel)
180 dzx(1:nel) =pzx1(1:nel)*vz1(1:nel)+pzx2(1:nel)*vz2(1:nel)
181 + +pzx3(1:nel)*vz3(1:nel)+pzx4(1:nel)*vz4(1:nel)
182 + +pzx5(1:nel)*vz5(1:nel)+pzx6(1:nel)*vz6(1:nel)
183 + +pzx7(1:nel)*vz7(1:nel)+pzx8(1:nel)*vz8(1:nel)
184 dzy(1:nel) =pzy1(1:nel)*vz1(1:nel)+pzy2(1:nel)*vz2(1:nel)
185 + +pzy3(1:nel)*vz3(1:nel)+pzy4(1:nel)*vz4(1:nel)
186 + +pzy5(1:nel)*vz5(1:nel)+pzy6(1:nel)*vz6(1:nel)
187 + +pzy7(1:nel)*vz7(1:nel)+pzy8(1:nel)*vz8(1:nel)
191 dvca(1:nel)=pxc1(1:nel)*(vx1(1:nel)-vx7(1:nel))+pxc2(1:nel)*(vx2(1:nel)-vx8(1:nel))
192 . +pxc3(1:nel)*(vx3(1:nel)-vx5(1:nel))+pxc4(1:nel)*(vx4(1:nel)-vx6(1:nel))
193 . +pyc1(1:nel)*(vy1(1:nel)-vy7(1:nel))+pyc2(1:nel)*(vy2(1:nel)-vy8(1:nel))
194 . +pyc3(1:nel)*(vy3(1:nel)-vy5(1:nel))+pyc4(1:nel)*(vy4(1:nel)-vy6(1:nel))
195 . +pzc1(1:nel)*(vz1(1:nel)-vz7(1:nel))+pzc2(1:nel)*(vz2(1:nel)-vz8(1:nel))
196 . +pzc3(1:nel)*(vz3(1:nel)-vz5(1:nel))+pzc4(1:nel)*(vz4(1:nel)-vz6(1:nel))
197 dvca(1:nel)=dvca(1:nel)*dt1
199 dyy(1:nel) =dyy(1:nel)+bxy1(1:nel)*vx1(1:nel)+bxy2(1:nel)*vx2(1:nel)
200 + +bxy3(1:nel)*vx3(1:nel)+bxy4(1:nel)*vx4(1:nel)
201 + +bxy5(1:nel)*vx5(1:nel)+bxy6(1:nel)*vx6(1:nel)
202 + +bxy7(1:nel)*vx7(1:nel)+bxy8(1:nel)*vx8(1:nel)
203 dzz(1:nel) =dzz(1:nel)+bxz1(1:nel)*vx1(1:nel)+bxz2(1:nel)*vx2(1:nel)
204 + +bxz3(1:nel)*vx3(1:nel)+bxz4(1:nel)*vx4(1:nel)
205 + +bxz5(1:nel)*vx5(1:nel)+bxz6(1:nel)*vx6(1:nel)
206 + +bxz7(1:nel)*vx7(1:nel)+bxz8(1:nel)*vx8(1:nel)
207 dxx(1:nel) =dxx(1:nel)+byx1(1:nel)*vy1(1:nel)+byx2(1:nel)*vy2(1:nel)
208 + +byx3(1:nel)*vy3(1:nel)+byx4(1:nel)*vy4(1:nel)
209 + +byx5(1:nel)*vy5(1:nel)+byx6(1:nel)*vy6(1:nel)
210 + +byx7(1:nel)*vy7(1:nel)+byx8(1:nel)*vy8(1:nel)
211 dzz(1:nel) =dzz(1:nel)+byz1(1:nel)*vy1(1:nel)+byz2(1:nel)*vy2(1:nel)
212 + +byz3(1:nel)*vy3(1:nel)+byz4(1:nel)*vy4(1:nel)
213 + +byz5(1:nel)*vy5(1:nel)+byz6(1:nel)*vy6(1:nel)
214 + +byz7(1:nel)*vy7(1:nel)+byz8(1:nel)*vy8(1:nel)
215 dxx(1:nel) =dxx(1:nel)+bzx1(1:nel)*vz1(1:nel)+bzx2(1:nel)*vz2(1:nel)
216 + +bzx3(1:nel)*vz3(1:nel)+bzx4(1:nel)*vz4(1:nel)
217 + +bzx5(1:nel)*vz5(1:nel)+bzx6(1:nel)*vz6(1:nel)
218 + +bzx7(1:nel)*vz7(1:nel)+bzx8(1:nel)*vz8(1:nel)
219 dyy(1:nel) =dyy(1:nel)+bzy1(1:nel)*vz1(1:nel)+bzy2(1:nel)*vz2(1:nel)
220 + +bzy3(1:nel)*vz3(1:nel)+bzy4(1:nel)*vz4(1:nel)
221 + +bzy5(1:nel)*vz5(1:nel)+bzy6(1:nel)*vz6(1:nel)
222 + +bzy7(1:nel)*vz7(1:nel)+bzy8(1:nel)*vz8(1:nel)
223 dvca(1:nel) =(dxx(1:nel)+dyy(1:nel)+dzz(1:nel))*dt1
231 dxx(i)= dxx(i)-dsr(i)*dti
232 IF(ismdisp==0.AND.offs(i)/=two)dvca(i)= dvca(i)-dsr(i)
237 dyy(i)= dyy(i)-dss(i)*dti
238 IF(ismdisp==0.AND.offs(i)/=two)dvca(i)= dvca(i)-dss(i)
243 dzz(i)= dzz(i)-dst(i)*dti
244 IF(ismdisp==0.AND.offs(i)/=two)dvca(i)= dvca(i)-dst(i)
251 IF(ideg(i)>10) dv = zero
255 IF(offs(i)==two.OR.ismstr==11)
THEN
257 dsv(i) =dvca(i)-(dxx(i)+dyy(i)+dzz(i))*dt1
264 IF(offs(i)==two.OR.ismstr==11) cycle
266 IF (abs(dv)>tol.AND.off(i)/=zero)
THEN
268 ELSEIF(abs(dv)>tol)
THEN
273 volo(i) = volo(i)*dv1
274 IF (iresp==1) vol0dp(i) = vol0dp(i)*dv1
275 eint(i) = eint(i)/dv1
281 IF (iscau>0 )dt1d2=dt1
283 IF (ismdisp>0.AND.iscau==0)
THEN
284 d4(1:nel) = dxy(1:nel)+dyx(1:nel)
285 d5(1:nel) = dyz(1:nel)+dzy(1:nel)
286 d6(1:nel) = dxz(1:nel)+dzx(1:nel)
291 d4(1:nel) = dxy(1:nel)+dyx(1:nel)
292 . -dt1d*(dxx(1:nel)*dxy(1:nel)+dyx(1:nel)*dyy(1:nel)+dzx(1:nel)*dzy(1:nel))
293 d5(1:nel) = dyz(1:nel)+dzy(1:nel)
294 . -dt1d*(dyy(1:nel)*dyz(1:nel)+dzy(1:nel)*dzz(1:nel)+dxy(1:nel)*dxz
295 d6(1:nel) = dxz(1:nel)+dzx(1:nel)
296 . -dt1d*(dzz(1:nel)*dzx(1:nel)+dxz(1:nel)*dxx(1:nel)+dyz(1:nel)*dyx(1:nel))
297 dxx(1:nel) = dxx(1:nel)
298 . -dt1d2*(dxx(1:nel)*dxx(1:nel)+dyx(1:nel)*dyx(1:nel)+dzx(1:nel)*dzx(1:nel))
299 dyy(1:nel) = dyy(1:nel)
300 . -dt1d2*(dyy(1:nel)*dyy(1:nel)+dzy(1:nel)*dzy(1:nel)+dxy(1:nel)*dxy(1:nel))
301 dzz(1:nel) = dzz(1:nel)
302 . -dt1d2*(dzz(1:nel)*dzz(1:nel)+dxz(1:nel)*dxz(1:nel)+dyz(1:nel)*dyz(1:nel))
subroutine s8cdefo3(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, ipres)