53
54
55
56
57
58
59
60
61
62
63
66
67
68
69#include "implicit_f.inc"
70
71
72
73#include "mvsiz_p.inc"
74
75
76
77#include "com01_c.inc"
78#include "inter22.inc"
79
80
81
82 INTEGER, INTENT(IN) :: NFT
83 INTEGER, INTENT(IN) :: JALE
84 INTEGER, INTENT(IN) :: JEUL
85 INTEGER IXS(NIXS,*),NEL
87 . sig(nel,6),
88 . px1(*), px2(*), px3(*), px4(*),
89 . py1(*), py2(*), py3(*), py4(*),
90 . pz1(*), pz2(*), pz3(*), pz4(*),
91 . px5(*), px6(*), px7(*), px8(*),
92 . py5(*), py6(*), py7(*), py8(*),
93 . pz5(*), pz6(*), pz7(*), pz8(*),
94 . f11(*),f21(*),f31(*),f12(*),f22(*),f32(*),
95 . f13(*),f23(*),f33(*),f14(*),f24(*),f34(*),
96 . f15(*),f25(*),f35(*),f16(*),f26(*),f36(*),
97 . f17(*),f27(*),f37(*),f18(*),f28(*),f38(*),
98 . vol(*),qvis(*)
100 . n1x(*), n2x(*), n3x(*), n4x(*), n5x(*), n6x(*),
101 . n1y(*), n2y(*), n3y(*), n4y(*), n5y(*), n6y(*),
102 . n1z(*), n2z(*), n3z(*), n4z(*), n5z(*), n6z(*),
103 . dfe(mvsiz,3),pbak(mvsiz),
104 . tx,ty,tz
105 my_real,
DIMENSION(MVSIZ,6),
INTENT(INOUT) :: svis
106
107
108
109 INTEGER I, J
110 my_real s1(mvsiz), s2(mvsiz), s3(mvsiz),s4(mvsiz), s5(mvsiz), s6(mvsiz),fint,fintd,qvis_loc,vol_loc,p(mvsiz)
111
112
113
114
115
116 IF(
ale%GLOBAL%ISFINT==3 .AND. jale+jeul/=0)
THEN
117
118
119
120 DO i=1,nel
121 qvis_loc = qvis(i)
122 s1(i)=sig(i,1)+svis(i,1)-qvis_loc
123 s2(i)=sig(i,2)+svis(i,2)-qvis_loc
124 s3(i)=sig(i,3)+svis(i,3)-qvis_loc
125 s4(i)=sig(i,4)+svis(i,4)
126 s5(i)=sig(i,5)+svis(i,5)
127 s6(i)=sig(i,6)+svis(i,6)
128 ENDDO
129
130
131
132 DO i=1,nel
133 p(i)=third*(s1(i)+s2(i)+s3(i))
134 pbak(i)=one_over_8*p(i)
135 ENDDO
136
137
138
139
140 DO i=1,nel
141
142 tx=n1x(i)+n4x(i)+n6x(i)
143 ty=n1y(i)+n4y(i)+n6y(i)
144 tz=n1z(i)+n4z(i)+n6z(i)
145 f11(i)=f11(i)-one_over_8*(s1(i)*tx + s4(i)*ty + s6(i)*tz)
146
147 f21(i)=f21(i)-one_over_8*(s4(i)*tx + s2(i)*ty + s5(i)*tz)
148 f31(i)=f31(i)-one_over_8*(s6(i)*tx + s5(i)*ty + s3(i)*tz)
149
150 tx=n1x(i)+n4x(i)+n5x(i)
151 ty=n1y(i)+n4y(i)+n5y(i)
152 tz=n1z(i)+n4z(i)+n5z(i)
153 f12(i)=f12(i)-one_over_8*(s1(i)*tx + s4(i)*ty + s6(i)*tz)
154 f22(i)=f22(i)-one_over_8*(s4(i)*tx + s2(i)*ty + s5(i)*tz)
155 f32(i)=f32(i)-one_over_8*(s6(i)*tx + s5(i)*ty + s3(i)*tz)
156
157 tx=n1x(i)+n2x(i)+n5x(i)
158 ty=n1y(i)+n2y(i)+n5y(i)
159 tz=n1z(i)+n2z(i)+n5z(i)
160 f13(i)=f13(i)-one_over_8*(s1(i)*tx + s4(i)*ty + s6(i)*tz)
161 f23(i)=f23(i)-one_over_8*(s4(i)*tx + s2(i)*ty + s5(i)*tz)
162 f33(i)=f33(i)-one_over_8*(s6(i)*tx + s5(i)*ty + s3(i)*tz)
163
164 tx=n1x(i)+n2x(i)+n6x(i)
165 ty=n1y(i)+n2y(i)+n6y(i)
166 tz=n1z(i)+n2z(i)+n6z(i)
167 f14(i)=f14(i)-one_over_8*(s1(i)*tx + s4(i)*ty + s6(i)*tz)
168 f24(i)=f24(i)-one_over_8*(s4(i)*tx + s2(i)*ty + s5(i)*tz)
169 f34(i)=f34(i)-one_over_8*(s6(i)*tx + s5(i)*ty + s3(i)*tz)
170
171 tx=n3x(i)+n4x(i)+n6x(i)
172 ty=n3y(i)+n4y(i)+n6y(i)
173 tz=n3z(i)+n4z(i)+n6z(i)
174 f15(i)=f15(i)-one_over_8*(s1(i)*tx + s4(i)*ty + s6(i)*tz)
175 f25(i)=f25(i)-one_over_8*(s4(i)*tx + s2(i)*ty + s5(i)*tz)
176 f35(i)=f35(i)-one_over_8*(s6(i)*tx + s5(i)*ty + s3(i)*tz)
177
178 tx=n3x(i)+n4x(i)+n5x(i)
179 ty=n3y(i)+n4y(i)+n5y(i)
180 tz=n3z(i)+n4z(i)+n5z(i)
181 f16(i)=f16(i)-one_over_8*(s1(i)*tx + s4(i)*ty + s6(i)*tz)
182 f26(i)=f26(i)-one_over_8*(s4(i)*tx + s2(i)*ty + s5(i)*tz)
183 f36(i)=f36(i)-one_over_8*(s6(i)*tx + s5(i)*ty + s3(i)*tz)
184
185 tx=n2x(i)+n3x(i)+n5x(i)
186 ty=n2y(i)+n3y(i)+n5y(i)
187 tz=n2z(i)+n3z(i)+n5z(i)
188 f17(i)=f17(i)-one_over_8*(s1(i)*tx + s4(i)*ty + s6(i)*tz)
189 f27(i)=f27(i)-one_over_8*(s4(i)*tx + s2(i)*ty + s5(i)*tz)
190 f37(i)=f37(i)-one_over_8*(s6(i)*tx + s5(i)*ty + s3(i)*tz)
191
192 tx=n2x(i)+n3x(i)+n6x(i)
193 ty=n2y(i)+n3y(i)+n6y(i)
194 tz=n2z(i)+n3z(i)+n6z(i)
195 f18(i)=f18(i)-one_over_8*(s1(i)*tx + s4(i)*ty + s6(i)*tz)
196 f28(i)=f28(i)-one_over_8*(s4(i)*tx + s2(i)*ty + s5(i)*tz)
197 f38(i)=f38(i)-one_over_8*(s6(i)*tx + s5(i)*ty + s3(i)*tz)
198 ENDDO
199 RETURN
200 ENDIF
201
202
203
204
205
206 IF((
ale%GLOBAL%ICAA==1.OR.
ale%GLOBAL%ISFINT==2) .AND. jale+jeul/=0)
THEN
207 DO i=1,nel
208 qvis_loc = qvis(i)
209 vol_loc = vol(i)
210 s1(i)=sig(i,1)+svis(i,1)-qvis_loc
211 s2(i)=sig(i,2)+svis(i,2)-qvis_loc
212 s3(i)=sig(i,3)+svis(i,3)-qvis_loc
213 p(i)=(s1(i)+s2(i)+s3(i))/three
214 s1(i)=(s1(i)-p(i))*vol_loc
215 s2(i)=(s2(i)-p(i))*vol_loc
216 s3(i)=(s3(i)-p(i))*vol_loc
217 s4(i)=(sig(i,4)+svis(i,4))*vol_loc
218 s5(i)=(sig(i,5)+svis(i,5))*vol_loc
219 s6(i)=(sig(i,6)+svis(i,6))*vol_loc
220 p(i)=p(i)*0.125
221 ENDDO
222 DO i=1,nel
223 pbak(i) = p(i)
224 ENDDO
225
226
227
228 DO i=1,nel
229 f11(i)=f11(i)-p(i)*(n1x(i) +n4x(i) +n6x(i))
230 f21(i)=f21(i)-p(i)*(n1y(i) +n4y(i) +n6y(i))
231 f31(i)=f31(i)-p(i)*(n1z(i) +n4z(i) +n6z(i))
232 f12(i)=f12(i)-p(i)*(n1x(i) +n4x(i)+n5x(i) )
233 f22(i)=f22(i)-p(i)*(n1y(i) +n4y(i)+n5y(i) )
234 f32(i)=f32(i)-p(i)*(n1z(i) +n4z(i)+n5z(i) )
235 f13(i)=f13(i)-p(i)*(n1x(i)+n2x(i) +n5x(i) )
236 f23(i)=f23(i)-p(i)*(n1y(i)+n2y(i) +n5y(i) )
237 f33(i)=f33(i)-p(i)*(n1z(i)+n2z(i) +n5z(i) )
238 f14(i)=f14(i)-p(i)*(n1x(i)+n2x(i) +n6x(i))
239 f24(i)=f24(i)-p(i)*(n1y(i)+n2y(i) +n6y(i))
240 f34(i)=f34(i)-p(i)*(n1z(i)+n2z(i) +n6z(i))
241 f15(i)=f15(i)-p(i)*( +n3x(i)+n4x(i) +n6x(i))
242 f25(i)=f25(i)-p(i)*( +n3y(i)+n4y(i) +n6y(i))
243 f35(i)=f35(i)-p(i)*( +n3z(i)+n4z(i) +n6z(i))
244 f16(i)=f16(i)-p(i)*( +n3x(i)+n4x(i)+n5x(i) )
245 f26(i)=f26(i)-p(i)*( +n3y(i)+n4y(i)+n5y(i) )
246 f36(i)=f36(i)-p(i)*( +n3z(i)+n4z(i)+n5z(i) )
247 f17(i)=f17(i)-p(i)*( +n2x(i)+n3x(i) +n5x(i) )
248 f27(i)=f27(i)-p(i)*( +n2y(i)+n3y(i) +n5y(i) )
249 f37(i)=f37(i)-p(i)*( +n2z(i)+n3z(i) +n5z(i) )
250 f18(i)=f18(i)-p(i)*( +n2x(i)+n3x(i) +n6x(i))
251 f28(i)=f28(i)-p(i)*( +n2y(i)+n3y(i) +n6y(i))
252 f38(i)=f38(i)-p(i)*( +n2z(i)+n3z(i) +n6z(i))
253 ENDDO
254 ELSE
255 DO i=1,nel
256 qvis_loc = qvis(i)
257 vol_loc = vol(i)
258 s1(i)=(sig(i,1)+svis(i,1)-qvis_loc)*vol_loc
259 s2(i)=(sig(i,2)+svis(i,2)-qvis_loc)*vol_loc
260 s3(i)=(sig(i,3)+svis(i,3)-qvis_loc)*vol_loc
261 s4(i)=(sig(i,4)+svis(i,4))*vol_loc
262 s5(i)=(sig(i,5)+svis(i,5))*vol_loc
263 s6(i)=(sig(i,6)+svis(i,6))*vol_loc
264 ENDDO
266 DO i=1,nel
267 pbak(i) =0.125 * (s1(i)+s2(i)+s3(i))/three/vol(i)
268 ENDDO
269 ENDIF
270 ENDIF
271 IF(int22==0)THEN
272
273
274
275
276
277 IF(jeul==0 .OR. (jeul==1.AND.integ8==0))THEN
278 DO i=1,nel
279
280
281 fint=s1(i)*px1(i)+s4(i)*py1(i)+s6(i)*pz1(i)
282 f11(i)=f11(i)-fint
283 f17(i)=f17(i)+fint
284 fint=s2(i)*py1(i)+s4(i)*px1(i)+s5(i)*pz1(i)
285 f21(i)=f21(i)-fint
286 f27(i)=f27(i)+fint
287 fint=s3(i)*pz1(i)+s6(i)*px1(i)+s5(i)*py1(i)
288 f31(i)=f31(i)-fint
289 f37(i)=f37(i)+fint
290
291 fint=s1(i)*px2(i)+s4(i)*py2(i)+s6(i)*pz2(i)
292 f12(i)=f12(i)-fint
293 f18(i)=f18(i)+fint
294 fint=s2(i)*py2(i)+s4(i)*px2(i)+s5(i)*pz2(i)
295 f22(i)=f22(i)-fint
296 f28(i)=f28(i)+fint
297 fint=s3(i)*pz2(i)+s6(i)*px2(i)+s5(i)*py2(i)
298 f32(i)=f32(i)-fint
299 f38(i)=f38(i)+fint
300
301 fint=s1(i)*px3(i)+s4(i)*py3(i)+s6(i)*pz3(i)
302 f13(i)=f13(i)-fint
303 f15(i)=f15(i)+fint
304 fint=s2(i)*py3(i)+s4(i)*px3(i)+s5(i)*pz3(i)
305 f23(i)=f23(i)-fint
306 f25(i)=f25(i)+fint
307 fint=s3(i)*pz3(i)+s6(i)*px3(i)+s5(i)*py3(i)
308 f33(i)=f33(i)-fint
309 f35(i)=f35(i)+fint
310
311 fint=s1(i)*px4(i)+s4(i)*py4(i)+s6(i)*pz4(i)
312 f14(i)=f14(i)-fint
313 f16(i)=f16(i)+fint
314 fint=s2(i)*py4(i)+s4(i)*px4(i)+s5(i)*pz4(i)
315 f24(i)=f24(i)-fint
316 f26(i)=f26(i)+fint
317 fint=s3(i)*pz4(i)+s6(i)*px4(i)+s5(i)*py4(i)
318 f34(i)=f34(i)-fint
319 f36(i)=f36(i)+fint
320 ENDDO
321 ELSE
322
323
324
325
326
327
328 DO i=1,nel
329 f11(i)=f11(i)-(s1(i)*px1(i)+s4(i)*py1(i)+s6(i)*pz1(i))
330 f21(i)=f21(i)-(s2(i)*py1(i)+s4(i)*px1(i)+s5(i)*pz1(i))
331 f31(i)=f31(i)-(s3(i)*pz1(i)+s6(i)*px1(i)+s5(i)*py1(i))
332 f12(i)=f12(i)-(s1(i)*px2(i)+s4(i)*py2(i)+s6(i)*pz2(i))
333 f22(i)=f22(i)-(s2(i)*py2(i)+s4(i)*px2(i)+s5(i)*pz2(i))
334 f32(i)=f32(i)-(s3(i)*pz2(i)+s6(i)*px2(i)+s5(i)*py2(i))
335 f13(i)=f13(i)-(s1(i)*px3(i)+s4(i)*py3(i)+s6(i)*pz3(i))
336 f23(i)=f23(i)-(s2(i)*py3(i)+s4(i)*px3(i)+s5(i)*pz3(i))
337 f33(i)=f33(i)-(s3(i)*pz3(i)+s6(i)*px3(i)+s5(i)*py3(i))
338 f14(i)=f14(i)-(s1(i)*px4(i)+s4(i)*py4(i)+s6(i)*pz4(i))
339 f24(i)=f24(i)-(s2(i)*py4(i)+s4(i)*px4(i)+s5(i)*pz4(i))
340 f34(i)=f34(i)-(s3(i)*pz4(i)+s6(i)*px4(i)+s5(i)*py4(i))
341 f15(i)=f15(i)-(s1(i)*px5(i)+s4(i)*py5(i)+s6(i)*pz5(i))
342 f25(i)=f25(i)-(s2(i)*py5(i)+s4(i)*px5(i)+s5(i)*pz5(i))
343 f35(i)=f35(i)-(s3(i)*pz5(i)+s6(i)*px5(i)+s5(i)*py5(i))
344 f16(i)=f16(i)-(s1(i)*px6(i)+s4(i)*py6(i)+s6(i)*pz6(i))
345 f26(i)=f26(i)-(s2(i)*py6(i)+s4(i)*px6(i)+s5(i)*pz6(i))
346 f36(i)=f36(i)-(s3(i)*pz6(i)+s6(i)*px6(i)+s5(i)*py6(i))
347 f17(i)=f17(i)-(s1(i)*px7(i)+s4(i)*py7(i)+s6(i)*pz7(i))
348 f27(i)=f27(i)-(s2(i)*py7(i)+s4(i)*px7(i)+s5(i)*pz7(i))
349 f37(i)=f37(i)-(s3(i)*pz7(i)+s6(i)*px7(i)+s5(i)*py7(i))
350 f18(i)=f18(i)-(s1(i)*px8(i)+s4(i)*py8(i)+s6(i)*pz8(i))
351 f28(i)=f28(i)-(s2(i)*py8(i)+s4(i)*px8(i)+s5(i)*pz8(i))
352 f38(i)=f38(i)-(s3(i)*pz8(i)+s6(i)*px8(i)+s5(i)*py8(i))
353 ENDDO
354 ENDIF
355 ENDIF
356
357 RETURN
type(alefvm_param_), target alefvm_param