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