50
51
52
53#include "implicit_f.inc"
54
55
56
57#include "mvsiz_p.inc"
58
59
60
61 INTEGER G_PLA,G_EPSD,NEL
62
64 . sig(nel,6),
65 . px1(*), px2(*), px3(*), px4(*),
66 . py1(*), py2(*), py3(*), py4(*),
67 . pz1(*), pz2(*), pz3(*), pz4(*),
68 . px1h(*), px2h(*), px3h(*),
69 . py1h(*), py2h(*), py3h(*),
70 . pz1h(*), pz2h(*), pz3h(*),
71 . ji33(*),b1x(mvsiz,2),b1y(mvsiz,2),b2x(mvsiz,2),b2y(mvsiz,2),
72 . b1xh(mvsiz,2),b1yh(mvsiz,2),b2xh(mvsiz,2),b2yh(mvsiz,2),
73 . b1122(*),b1221(*),b2212(*),b1121(*),
74 . b1122h(*),b1221h(*),b2212h(*),b1121h(*),
75 . f11(*),f21(*),f31(*),f12(*),f22(*),f32(*),
76 . f13(*),f23(*),f33(*),f14(*),f24(*),f34(*
77 . f15(*),f25(*),f35(*),f16(*),f26(*),f36(*),
78 . vol(*),qvis(*),
79 . eint(*),rho(*),q(*),eplasm(*),epla(*),
80 . sigm(nel,6),eintm(*),rhom(*),qm(*),epsd(*),epsdm(*),
81 . zi,wi,volg(*),off(*),nu(*),vol0(*),vol0g(*)
82 my_real,
DIMENSION(MVSIZ,6),
INTENT(INOUT) :: svis
83 INTEGER, INTENT(IN) :: G_WPLA_FLAG
84 my_real,
DIMENSION(NEL*G_WPLA_FLAG),
INTENT(INOUT) :: g_wpla
85 my_real,
DIMENSION(NEL*G_WPLA_FLAG),
INTENT(IN) :: l_wpla
86
87
88
89 INTEGER I, J
90
92 . s1(mvsiz), s2(mvsiz), s3(mvsiz),
93 . s4(mvsiz), s5(mvsiz), s6(mvsiz),
94 . rx1(mvsiz), ry1(mvsiz), sx1(mvsiz), sy1(mvsiz),
95 . fint,fintx,finty,fintz,fac(mvsiz),fxc,fyc
97 . nu1,finsz
98
99 DO i=1,nel
100 s1(i)=(sig(i,1)+svis(i,1)-qvis(i))*vol(i)
101 s2(i)=(sig(i,2)+svis(i,2)-qvis(i))*vol(i)
102 s3(i)=(sig(i,3)+svis(i,3)-qvis(i))*vol(i)
103 s4(i)=(sig(i,4)+svis(i,4))*vol(i)
104 s5(i)=(sig(i,5)+svis(i,5))*vol(i)
105 s6(i)=(sig(i,6)+svis(i,6))*vol(i)
106 ENDDO
107
108
109 DO i=1,nel
110 fint=s1(i)*px1(i)+s4(i)*py1(i)
111 fxc = ji33(i)*s6(i)
112 fyc = ji33(i)*s5(i)
113 fintx=s1(i)*px4(i)+s4(i)*py4(i) + three*fxc
114 finsx=s6(i)*(b1x(i,1)-b1x(i,2))-s5(i)*(b2x(i,1)-b2x(i,2))-fxc
115 f11(i)=f11(i)-fint+fintx+finsx
116 f14(i)=f14(i)-fint-fintx-finsx
117 fint=s2(i)*py1(i)+s4(i)*px1(i)
118 finty=s2(i)*py4(i)+s4(i)*px4(i) + three*fyc
119 finsy=s6(i)*(b1y(i,1)-b1y(i,2))-s5(i)*(b2y(i,1)-b2y(i,2))-fyc
120 f21(i)=f21(i)-fint+finty+finsy
121 f24(i)=f24(i)-fint-finty-finsy
122 fint=s3(i)*pz1(i)+half*(s6(i)*px1(i)+s5(i)*py1(i))
123 fintz=s3(i)*pz4(i)
124 f31(i)=f31(i)-fint+fintz
125 f34(i)=f34(i)-fint-fintz
126
127 fint=s1(i)*px2(i)+s4(i)*py2(i)
128 finsx=s6(i)*(b1221(i)+b1x(i,2))-s5(i)*(b1121(i)+b2x(i,2))
129 f12(i)=f12(i)-fint+fintx+finsx
130 f15(i)=f15(i)-fint-fintx-finsx
131 fint=s2(i)*py2(i)+s4(i)*px2(i)
132 finsy=s6(i)*(b2212(i)+b1y(i,2))-s5(i)*(b1122(i)+b2y(i,2))
133 f22(i)=f22(i)-fint+finty+finsy
134 f25(i)=f25(i)-fint-finty-finsy
135 fint=s3(i)*pz2(i)+(s6(i)*px2(i)+s5(i)*py2(i))*half
136 f32(i)=f32(i)-fint+fintz
137 f35(i)=f35(i)-fint-fintz
138
139 fint=s1(i)*px3(i)+s4(i)*py3(i)
140 finsx=-s6(i)*(b1122(i)+b1x(i,1))+s5(i)*(b1121(i)+b2x(i,1))
141 f13(i)=f13(i)-fint+fintx+finsx
142 f16(i)=f16(i)-fint-fintx-finsx
143 fint=s2(i)*py3(i)+s4(i)*px3(i)
144 finsy=-s6(i)*(b2212(i)+b1y(i,1))+s5(i)*(b1221(i)+b2y(i,1))
145 f23(i)=f23(i)-fint+finty+finsy
146 f26(i)=f26(i)-fint-finty-finsy
147 fint=s3(i)*pz3(i)+(s6(i)*px3(i)+s5(i)*py3(i))*half
148 f33(i)=f33(i)-fint+fintz
149 f36(i)=f36(i)-fint-fintz
150 ENDDO
151
152
153 DO i=1,nel
154 s1(i) = zi*s1(i)
155 s2(i) = zi*s2(i)
156 s3(i) = zi*s3(i)
157 s4(i) = zi*s4(i)
158 s5(i) = zi*s5(i)
159 s6(i) = zi*s6(i)
160 ENDDO
161 DO i=1,nel
162 nu1 = nu(i)/(one - nu(i))
163 fxc =s1(i)-(s2(i)+s3(i))*nu(i)
164 fyc =s2(i)-(s1(i)+s3(i))*nu(i)
165 finsx = s1(i)*nu1
166 finsy = s2(i)*nu1
167 finsz = s3(i)*nu1
168 fint=fxc*px1h(i)+s4(i)*py1h(i)
169 fintx=(s1(i)-finsz)*px1(i)+s4(i)*py1(i)
170 fintx=fintx+s6(i)*(b1xh(i,1)-b1xh(i,2))
171 . -s5(i)*(b2xh(i,1)-b2xh(i,2))
172 f11(i)=f11(i)-fint+fintx
173 f14(i)=f14(i)-fint-fintx
174 fint=(s2(i)-finsz)*py1h(i)+s4(i)*px1h(i)
175 finty=fyc*py1(i)+s4(i)*px1(i)
176 finty=finty+s6(i)*(b1yh(i,1)-b1yh(i,2))
177 . -s5(i)*(b2yh(i,1)-b2yh(i,2))
178 f21(i)=f21(i)-fint+finty
179 f24(i)=f24(i)-fint-finty
180 fint=(s3(i)-finsy)*pz1h(i)+
181 . (s6(i)*px1h(i)+s5(i)*py1h(i))*half
182 fintz=(s3(i)-finsx)*pz1(i)
183 f31(i)=f31(i)-fint+fintz
184 f34(i)=f34(i)-fint-fintz
185
186 fint=fxc*px2h(i)+s4(i)*py2h(i)
187 fintx=(s1(i)-finsz)*px2(i)+s4(i)*py2(i)
188 fintx=fintx+
189 . s6(i)*(b1221h(i)+b1xh(i,2))-s5(i)*(b1121h(i)+b2xh(i,2))
190 f12(i)=f12(i)-fint+fintx
191 f15(i)=f15(i)-fint-fintx
192 fint=(s2(i)-finsz)*py2h(i)+s4(i)*px2h(i)
193 finty=fyc*py2(i)+s4(i)*px2(i)
194 finty=finty+
195 . s6(i)*(b2212h(i)+b1yh(i,2))-s5(i)*(b1122h(i)+b2yh(i,2))
196 f22(i)=f22(i)-fint+finty
197 f25(i)=f25(i)-fint-finty
198 fint=(s3(i)-finsy)*pz2h(i)+
199 . (s6(i)*px2h(i)+s5(i)*py2h(i))*half
200 fintz=(s3(i)-finsx)*pz2(i)
201 f32(i)=f32(i)-fint+fintz
202 f35(i)=f35(i)-fint-fintz
203
204 fint=fxc*px3h(i)+s4(i)*py3h(i)
205 fintx=(s1(i)-finsz)*px3(i)+s4(i)*py3(i)
206 fintx=fintx
207 . -s6(i)*(b1122h(i)+b1xh(i,1))+s5(i)*(b1121h(i)+b2xh(i,1))
208 f13(i)=f13(i)-fint+fintx
209 f16(i)=f16(i)-fint-fintx
210 fint=(s2(i)-finsz)*py3h(i)+s4(i)*px3h(i)
211 finty=fyc*py3(i)+s4(i)*px3(i)
212 finty=finty
213 . -s6(i)*(b2212h(i)+b1yh(i,1))+s5(i)*(b1221h(i)+b2yh(i,1))
214 f23(i)=f23(i)-fint+finty
215 f26(i)=f26(i)-fint-finty
216 fint=(s3(i)-finsy)*pz3h(i)+
217 . (s6(i)*px3h(i)+s5(i)*py3h(i))*half
218 fintz=(s3(i)-finsx)*pz3(i)
219 f33(i)=f33(i)-fint+fintz
220 f36(i)=f36(i)-fint-fintz
221 ENDDO
222
223
224 DO i=1,nel
225 fac(i) = off(i)*vol(i)/volg(i)
226 sigm(i,1) = sigm(i,1) + fac(i) * sig(i,1)
227 sigm(i,2) = sigm(i,2) + fac(i) * sig(i,2)
228 sigm(i,3) = sigm(i,3) + fac(i) * sig(i,3)
229 sigm(i,4) = sigm(i,4) + fac(i) * sig(i,4)
230 sigm(i,5) = sigm(i,5) + fac(i) * sig(i,5)
231 sigm(i,6) = sigm(i,6) + fac(i) * sig(i,6)
232 rhom(i) = rhom(i) + fac(i) * rho(i)
233 eintm(i) = eintm(i) + eint(i)*vol0(i)/vol0g(i)
234 IF (g_wpla_flag > 0) g_wpla(i) = g_wpla(i) + l_wpla(i)
235 qm(i) = qm(i) + fac(i) * q(i)
236 ENDDO
237 IF (g_pla > 0) THEN
238 DO i=1,nel
239 eplasm(i) = eplasm(i) + fac(i) * epla(i)
240 ENDDO
241 ENDIF
242 IF (g_epsd > 0) THEN
243 DO i=1,nel
244 epsdm(i) = epsdm(i) + fac(i) * epsd(i)
245 ENDDO
246 ENDIF
247
248 RETURN