76
77
78
79#include "implicit_f.inc"
80
81
82
83#include "mvsiz_p.inc"
84
85
86
87#include "scr18_c.inc"
88
89
90
91 INTEGER, INTENT(IN) :: MTN
92 INTEGER, INTENT(IN) :: ISMSTR
93 INTEGER, INTENT(IN) :: NODADT_THERM
94 INTEGER ICP,G_PLA,G_EPSD,IEXPAN,NEL,IDEG(*)
95
97 . sig(nel,6),sigor(nel,6),
98 . px1(*), px2(*), px3(*), px4(*),
99 . py1(*), py2(*), py3(*), py4(*),
100 . pz1(*), pz2(*), pz3(*), pz4(*),
101 . px5(*), px6(*), px7(*), px8(*),
102 . py5(*), py6(*), py7(*), py8(*),
103 . pz5(*), pz6(*), pz7(*), pz8(*),
104 . pxy1(*),pxy2(*),pxy3(*),pxy4(*),
105 . pxy5(*),pxy6(*),pxy7(*),pxy8(*),
106 . pyx1(*),pyx2(*),pyx3(*),pyx4(*),
107 . pyx5(*),pyx6(*),pyx7(*),pyx8(*),
108 . pxz1(*),pxz2(*),pxz3(*),pxz4(*),
109 . pxz5(*),pxz6(*),pxz7(*),pxz8(*),
110 . pzx1(*),pzx2(*),pzx3(*),pzx4(*),
111 . pzx5(*),pzx6(*),pzx7(*),pzx8(*),
112 . pyz1(*),pyz2(*),pyz3(*),pyz4(*),
113 . pyz5(*),pyz6(*),pyz7(*),pyz8(*),
114 . pzy1(*),pzy2(*),pzy3(*),pzy4(*),
115 . pzy5(*),pzy6(*),pzy7(*),pzy8(*),
116 . bxy1(*),bxy2(*),bxy3(*),bxy4(*),
117 . bxy5(*),bxy6(*),bxy7(*),bxy8(*),
118 . byx1(*),byx2(*),byx3(*),byx4(*),
119 . byx5(*),byx6(*),byx7(*),byx8(*),
120 . bxz1(*),bxz2(*),bxz3(*),bxz4(*),
121 . bxz5(*),bxz6(*),bxz7(*),bxz8(*),
122 . bzx1(*),bzx2(*),bzx3(*),bzx4(*),
123 . bzx5(*),bzx6(*),bzx7(*),bzx8(*),
124 . byz1(*),byz2(*),byz3(*),byz4(*),
125 . byz5(*),byz6(*),byz7(*),byz8(*),
126 . bzy1(*),bzy2(*),bzy3(*),bzy4(*),
127 . bzy5(*),bzy6(*),bzy7(*),bzy8(*),
128 . f11(*),f21(*),f31(*),f12(*),f22(*),f32(*),
129 . f13(*),f23(*),f33(*),f14(*),f24(*),f34(*),
130 . f15(*),f25(*),f35(*),f16(*),f26(*),f36(*),
131 . f17(*),f27(*),f37(*),f18(*),f28(*),f38(*),
132 . vol(*),qvis(*),pp(*),
133 . eint(*),rho(*),q(*),defpm(*),defp(*),
134 . sigm(nel,6),eintm(*),rhom(*),qm(*),epsd(*),epsdm(*),
135 . volg(*),sti(*),stin(*),off(*),vol0(*),vol0g(*),jfac(*),
136 . eintth(*),eintthm(*),conde(mvsiz),conden(mvsiz)
137 INTEGER, INTENT(IN) :: G_WPLA_FLAG
138 my_real,
DIMENSION(MVSIZ,6),
INTENT(INOUT) :: svis
139 my_real,
DIMENSION(NEL*G_WPLA_FLAG),
INTENT(INOUT) :: g_wpla
140 my_real,
DIMENSION(NEL*G_WPLA_FLAG),
INTENT(IN) :: l_wpla
141
142
143
144 INTEGER I, J
145
147 . s1(mvsiz), s2(mvsiz), s3(mvsiz),
148 . s4(mvsiz), s5(mvsiz), s6(mvsiz),
149 . p(mvsiz),fac(mvsiz),coef,fvol,
150 . qvis_loc,vol_loc
151
152 IF (icp==1.AND.(ismstr==10.OR.ismstr==12)) THEN
153 DO i=1,nel
154 qvis_loc = qvis(i)
155 fvol=jfac(i)*vol(i)
156 s1(i)=(sig(i,1)+svis(i,1)-qvis_loc)*fvol
157 s2(i)=(sig(i,2)+svis(i,2)-qvis_loc)*fvol
158 s3(i)=(sig(i,3)+svis(i,3)-qvis_loc)*fvol
159 s4(i)=(sig(i,4)+svis(i,4))*fvol
160 s5(i)=(sig(i,5)+svis(i,5))*fvol
161 s6(i)=(sig(i,6)+svis(i,6))*fvol
162 ENDDO
163 ELSEIF (icp==1) THEN
164 coef=third
165
166 IF (mtn==42.OR.mtn==62.OR.mtn==82)coef=zep3
167 DO i=1,nel
168 vol_loc = vol(i)
169 p(i) =coef*(sig(i,1)+sig(i,2)+sig(i,3)
170 . +svis(i,1)+svis(i,2)+svis(i,3))
171 IF (ideg(i)>10) p(i) =qvis(i)
172 s1(i)=(sig(i,1)+svis(i,1)-p(i))*vol_loc
173 s2(i)=(sig(i,2)+svis(i,2)-p(i))*vol_loc
174 s3(i)=(sig(i,3)+svis(i,3)-p(i))*vol_loc
175 s4(i)=(sig(i,4)+svis(i,4))*vol_loc
176 s5(i)=(sig(i,5)+svis(i,5))*vol_loc
177 s6(i)=(sig(i,6)+svis(i,6))*vol_loc
178 ENDDO
179 ELSE
180 DO i=1,nel
181 qvis_loc = qvis(i)
182 vol_loc = vol(i)
183 s1(i)=(sig(i,1)+svis(i,1)-qvis_loc)*vol_loc
184 s2(i)=(sig(i,2)+svis(i,2)-qvis_loc)*vol_loc
185 s3(i)=(sig(i,3)+svis(i,3)-qvis_loc)*vol_loc
186 s4(i)=(sig(i,4)+svis(i,4))*vol_loc
187 s5(i)=(sig(i,5)+svis(i,5))*vol_loc
188 s6(i)=(sig(i,6)+svis(i,6))*vol_loc
189 ENDDO
190 ENDIF
191 DO i=1,nel
192 f11(i)=f11(i)-(s1(i)*px1(i)+s4(i)*pxy1(i)+s6(i)*pxz1(i))
193 f21(i)=f21(i)-(s2(i)*py1(i)+s4(i)*pyx1(i)+s5(i)*pyz1(i))
194 f31(i)=f31(i)-(s3(i)*pz1(i)+s6(i)*pzx1(i)+s5(i)*pzy1(i))
195 f12(i)=f12(i)-(s1(i)*px2(i)+s4(i)*pxy2(i)+s6(i)*pxz2(i))
196 f22(i)=f22(i)-(s2(i)*py2(i)+s4(i)*pyx2(i)+s5(i)*pyz2(i))
197 f32(i)=f32(i)-(s3(i)*pz2(i)+s6(i)*pzx2(i)+s5(i)*pzy2(i))
198 f13(i)=f13(i)-(s1(i)*px3(i)+s4(i)*pxy3(i)+s6(i)*pxz3(i))
199 f23(i)=f23(i)-(s2(i)*py3(i)+s4(i)*pyx3(i)+s5(i)*pyz3(i))
200 f33(i)=f33(i)-(s3(i)*pz3(i)+s6(i)*pzx3(i)+s5(i)*pzy3(i))
201 f14(i)=f14(i)-(s1(i)*px4(i)+s4(i)*pxy4(i)+s6(i)*pxz4(i))
202 f24(i)=f24(i)-(s2(i)*py4(i)+s4(i)*pyx4(i)+s5(i)*pyz4(i))
203 f34(i)=f34(i)-(s3(i)*pz4(i)+s6(i)*pzx4(i)+s5(i)*pzy4(i))
204 f15(i)=f15(i)-(s1(i)*px5(i)+s4(i)*pxy5(i)+s6(i)*pxz5(i))
205 f25(i)=f25(i)-(s2(i)*py5(i)+s4(i)*pyx5(i)+s5(i)*pyz5(i))
206 f35(i)=f35(i)-(s3(i)*pz5(i)+s6(i)*pzx5(i)+s5(i)*pzy5(i))
207 f16(i)=f16(i)-(s1(i)*px6(i)+s4(i)*pxy6(i)+s6(i)*pxz6(i))
208 f26(i)=f26(i)-(s2(i)*py6(i)+s4(i)*pyx6(i)+s5(i)*pyz6(i))
209 f36(i)=f36(i)-(s3(i)*pz6(i)+s6(i)*pzx6(i)+s5(i)*pzy6(i))
210 f17(i)=f17(i)-(s1(i)*px7(i)+s4(i)*pxy7(i)+s6(i)*pxz7(i))
211 f27(i)=f27(i)-(s2(i)*py7(i)+s4(i)*pyx7(i)+s5(i)*pyz7(i))
212 f37(i)=f37(i)-(s3(i)*pz7(i)+s6(i)*pzx7(i)+s5(i)*pzy7(i))
213 f18(i)=f18(i)-(s1(i)*px8(i)+s4(i)*pxy8(i)+s6(i)*pxz8(i))
214 f28(i)=f28(i)-(s2(i)*py8(i)+s4(i)*pyx8(i)+s5(i)*pyz8(i))
215 f38(i)=f38(i)-(s3(i)*pz8(i)+s6(i)*pzx8(i)+s5(i)*pzy8(i))
216 ENDDO
217
218 IF (icp/=1) THEN
219 DO i=1,nel
220 f11(i)=f11(i)-(s2(i)*bxy1(i)+s3(i)*bxz1(i))
221 f21(i)=f21(i)-(s1(i)*byx1(i)+s3(i)*byz1(i))
222 f31(i)=f31(i)-(s1(i)*bzx1(i)+s2(i)*bzy1(i))
223 f12(i)=f12(i)-(s2(i)*bxy2(i)+s3(i)*bxz2(i))
224 f22(i)=f22(i)-(s1(i)*byx2(i)+s3(i)*byz2(i))
225 f32(i)=f32(i)-(s1(i)*bzx2(i)+s2(i)*bzy2(i))
226 f13(i)=f13(i)-(s2(i)*bxy3(i)+s3(i)*bxz3(i))
227 f23(i)=f23(i)-(s1(i)*byx3(i)+s3(i)*byz3(i))
228 f33(i)=f33(i)-(s1(i)*bzx3(i)+s2(i)*bzy3(i))
229 f14(i)=f14(i)-(s2(i)*bxy4(i)+s3(i)*bxz4(i))
230 f24(i)=f24(i)-(s1(i)*byx4(i)+s3(i)*byz4(i))
231 f34(i)=f34(i)-(s1(i)*bzx4(i)+s2(i)*bzy4(i))
232 f15(i)=f15(i)-(s2(i)*bxy5(i)+s3(i)*bxz5(i))
233 f25(i)=f25(i)-(s1(i)*byx5(i)+s3(i)*byz5(i))
234 f35(i)=f35(i)-(s1(i)*bzx5(i)+s2(i
235 f16(i)=f16(i)-(s2(i)*bxy6(i)+s3(i)*bxz6(i))
236 f26(i)=f26(i)-(s1(i)*byx6(i)+s3(i)*byz6(i))
237 f36(i)=f36(i)-(s1(i)*bzx6(i)+s2(i)*bzy6(i))
238 f17(i)=f17(i)-(s2(i)*bxy7(i)+s3(i)*bxz7(i))
239 f27(i)=f27(i)-(s1(i)*byx7(i)+s3(i)*byz7(i))
240 f37(i)=f37(i)-(s1(i)*bzx7(i)+s2(i)*bzy7(i))
241 f18(i)=f18(i)-(s2(i)*bxy8(i)+s3(i)*bxz8(i))
242 f28(i)=f28(i)-(s1(i)*byx8(i)+s3(i)*byz8(i))
243 f38(i)=f38(i)-(s1(i)*bzx8(i)+s2(i)*bzy8(i))
244 ENDDO
245 ENDIF
246
247
248 DO i=1,nel
249 fac(i) = off(i)*vol(i)/volg(i)
250 sigm(i,1) = sigm(i,1) + fac(i) * sigor(i,1)
251 sigm(i,2) = sigm(i,2) + fac(i) * sigor(i,2)
252 sigm(i,3) = sigm(i,3) + fac(i) * sigor(i,3)
253 sigm(i,4) = sigm(i,4) + fac(i) * sigor(i,4)
254 sigm(i,5) = sigm(i,5) + fac(i) * sigor(i,5)
255 sigm(i,6) = sigm(i,6) + fac(i) * sigor(i,6)
256 rhom(i) = rhom(i) + fac(i) * rho(i)
257 eintm(i) = eintm(i) + eint(i)*vol0(i)/vol0g(i)
258 IF (g_wpla_flag > 0) g_wpla(i) = g_wpla(i) + l_wpla(i)
259 qm(i) = qm(i) + fac(i) * q(i)
260
261 stin(i) = stin(i) + sti(i)
262 ENDDO
263 IF(nodadt_therm == 1) THEN
264 DO i=1,nel
265 conden(i)= conden(i)+ conde(i)
266 ENDDO
267 ENDIF
268 IF (iexpan > 0) THEN
269 DO i=1,nel
270 eintthm(i)= eintthm(i)+ eintth(i)*vol0(i)/vol0g(i)
271 ENDDO
272 ENDIF
273 IF (g_pla > 0) THEN
274 DO i=1,nel
275 defpm(i) = defpm(i) + fac(i) * defp(i)
276 ENDDO
277 ENDIF
278 IF (g_epsd > 0) THEN
279 DO i=1,nel
280 epsdm(i) = epsdm(i) + fac(i) * epsd(i)
281 ENDDO
282 ENDIF
283 IF (icp == 1) THEN
284 DO i=1,nel
285 pp(i) = pp(i) + fac(i)* (p(i)-qvis(i))
286 ENDDO
287 ENDIF
288
289 RETURN