54
55
56
57#include "implicit_f.inc"
58
59
60
61#include "mvsiz_p.inc"
62
63
64
65 INTEGER, INTENT(IN) :: ISMSTR
66 INTEGER NC1(*), NC2(*), NC3(*), NC4(*), NC5(*), NC6(
67(*),IXS(NIXS,*),NEL
68 my_real,
DIMENSION(MVSIZ,6),
INTENT(INOUT) :: svis
70 . sig(nel,6),sigd(nel,6),x(3,*),dr(3,*),
71 . px1(*), px2(*), px3(*), px4(*),
72 . py1(*), py2(*), py3(*), py4(*),
73 . pz1(*), pz2(*), pz3(*), pz4(*),
74 . px5(*), px6(*), px7(*), px8(*),
75 . py5(*), py6(*), py7(*), py8(*),
76 . pz5(*), pz6(*), pz7(*), pz8(*),
77 . f11(*),f21(*),f31(*),f12(*),f22(*),f32(*),
78 . f13(*),f23(*),f33(*),f14(*),f24(*),f34(*),
79 . f15(*),f25(*),f35(*),f16(*),f26(*),f36(*),
80 . f17(*),f27(*),f37(*),f18(*),f28(*),f38(*),
81 . vol(*),qvis(*),rho(*),cxx(*),
82 . mx1(*),my1(*),mz1(*),mx2(*),my2(*),mz2(*),
83 . mx3(*),my3(*),mz3(*),mx4(*),my4(*),mz4(*),
84 . mx5(*),my5(*),mz5(*),mx6(*),my6(*),mz6(*),
85 . mx7(*),my7(*),mz7(*),mx8(*),my8(*),mz8
86
87
88
89 INTEGER I, J
91 . s1, s2, s3,
92 . s4, s5, s6,
93 . sxy, syz, szx,
94 . syx, szy, sxz,
95 . mx(mvsiz), my(mvsiz), mz(mvsiz),
96 . fint,fintd,aaa,dxr,dyr,dzr
97
98 DO i=1,nel
99 s1=(sig(i,1)+svis(i,1)-qvis(i))*vol(i)
100 s2=(sig(i,2)+svis(i,2)-qvis(i))*vol(i)
101 s3=(sig(i,3)+svis(i,3)-qvis(i))*vol(i)
102 s4 = (sig(i,4)+svis(i,4))*vol(i)
103 s5 = (sig(i,5)+svis(i,5))*vol(i)
104 s6 = (sig(i,6)+svis(i,6))*vol(i)
105 mz(i) = (sigd(i,1))*vol(i)
106 mx(i) = (sigd(i,2))*vol(i)
107 my(i) = (sigd(i,3))*vol(i)
108 sxy = s4 + mz(i)
109 syz = s5 + mx(i)
110 szx = s6 + my(i)
111 syx = s4 - mz(i)
112 szy = s5 - mx(i)
113 sxz = s6 - my(i)
114 mz(i) = -mz(i)*0.25
115 mx(i) = -mx(i)*0.25
116 my(i) = -my(i)*0.25
117
118 fint=s1*px1(i)+sxy*py1(i)+sxz*pz1(i)
119 f11(i)=f11(i)-fint
120 f17(i)=f17(i)+fint
121 fint=s2*py1(i)+syx*px1(i)+syz*pz1(i)
122 f21(i)=f21(i)-fint
123 f27(i)=f27(i)+fint
124 fint=s3*pz1(i)+szx*px1(i)+szy*py1(i)
125 f31(i)=f31(i)-fint
126 f37(i)=f37(i)+fint
127
128 fint=s1*px2(i)+sxy*py2(i)+sxz*pz2(i)
129 f12(i)=f12(i)-fint
130 f18(i)=f18(i)+fint
131 fint=s2*py2(i)+syx*px2(i)+syz*pz2(i)
132 f22(i)=f22(i)-fint
133 f28(i)=f28(i)+fint
134 fint=s3*pz2(i)+szx*px2(i)+szy*py2(i)
135 f32(i)=f32(i)-fint
136 f38(i)=f38(i)+fint
137
138 fint=s1*px3(i)+sxy*py3(i)+sxz*pz3(i)
139 f13(i)=f13(i)-fint
140 f15(i)=f15(i)+fint
141 fint=s2*py3(i)+syx*px3(i)+syz*pz3(i)
142 f23(i)=f23(i)-fint
143 f25(i)=f25(i)+fint
144 fint=s3*pz3(i)+szx*px3(i)+szy*py3(i)
145 f33(i)=f33(i)-fint
146 f35(i)=f35(i)+fint
147
148 fint=s1*px4(i)+sxy*py4(i)+sxz*pz4(i)
149 f14(i)=f14(i)-fint
150 f16(i)=f16(i)+fint
151 fint=s2*py4(i)+syx*px4(i)+syz*pz4(i)
152 f24(i)=f24(i)-fint
153 f26(i)=f26(i)+fint
154 fint=s3*pz4(i)+szx*px4(i)+szy*py4(i)
155 f34(i)=f34(i)-fint
156 f36(i)=f36(i)+fint
157 ENDDO
158
159 goto 111
160
161 IF(ismstr==1.OR.ismstr==2.OR.ismstr==3)THEN
162 DO i=1,nel
163 mx(i) = x(2,nc1(i))*f31(i) - x(3,nc1(i))*f21(i)
164 . + x(2,nc2(i))*f32(i) - x(3,nc2(i))*f22(i)
165 . + x(2,nc3(i))*f33(i) - x(3,nc3(i))*f23(i)
166 . + x(2,nc4(i))*f34(i) - x(3,nc4(i))*f24(i)
167 . + x(2,nc5(i))*f35(i) - x(3,nc5(i))*f25(i)
168 . + x(2,nc6(i))*f36(i) - x(3,nc6(i))*f26(i)
169 . + x(2,nc7(i))*f37(i) - x(3,nc7(i))*f27(i)
170 . + x(2,nc8(i))*f38(i) - x(3,nc8(i))*f28(i)
171
172 my(i) = x(3,nc1(i))*f11(i) - x(1,nc1(i))*f31(i)
173 . + x(3,nc2(i))*f12(i) - x(1,nc2(i))*f32(i)
174 . + x(3,nc3(i))*f13(i) - x(1,nc3(i))*f33(i)
175 . + x(3,nc4(i))*f14(i) - x(1,nc4(i))*f34(i)
176 . + x(3,nc5(i))*f15(i) - x(1,nc5(i))*f35(i)
177 . + x(3,nc6(i))*f16(i) - x(1,nc6(i))*f36(i)
178 . + x(3,nc7(i))*f17(i) - x(1,nc7(i))*f37(i)
179 . + x(3,nc8(i))*f18(i) - x(1,nc8(i))*f38(i)
180
181 mz(i) = x(1,nc1(i))*f21(i) - x(2,nc1(i))*f11(i)
182 . + x(1,nc2(i))*f22(i) - x(2,nc2(i))*f12(i)
183 . + x(1,nc3(i))*f23(i) - x(2,nc3(i))*f13(i)
184 . + x(1,nc4(i))*f24(i) - x(2,nc4(i))*f14(i)
185 . + x(1,nc5(i))*f25(i) - x(2,nc5(i))*f15(i)
186 . + x(1,nc6(i))*f26(i) - x(2,nc6(i))*f16(i)
187 . + x(1,nc7(i))*f27(i) - x(2,nc7(i))*f17(i)
188 . + x(1,nc8(i))*f28(i) - x(2,nc8(i))*f18(i)
189
190 mx(i) = -mx(i)*0.125
191 my(i) = -my(i)*0.125
192 mz(i) = -mz(i)*0.125
193 ENDDO
194 ENDIF
195 111 continue
196
197 DO i=1,nel
198
199 aaa = 0.0125 * rho(i) * cxx(i)**2 * vol(i)
200
201 dxr = 0.125 *
202 . (dr(1,nc1(i))+dr(1,nc2(i))+dr(1,nc3(i))+dr(1,nc4(i))
203 . +dr(1,nc5(i))+dr(1,nc6(i))+dr(1,nc7(i))+dr(1,nc8(i)))
204 dyr = 0.125 *
205 . (dr(2,nc1(i))+dr(2,nc2(i))+dr(2,nc3(i))+dr(2,nc4(i))
206 . +dr(2,nc5(i))+dr(2,nc6(i))+dr(2,nc7(i))+dr(2,nc8(i)))
207 dzr = 0.125 *
208 . (dr(3,nc1(i))+dr(3,nc2(i))+dr(3,nc3(i))+dr(3,nc4(i))
209 . +dr(3,nc5(i))+dr(3,nc6(i))+dr(3,nc7(i))+dr(3,nc8(i)))
210
211 mx1(i) = mx(i) - aaa * (dr(1,nc1(i))-dxr)
212 my1(i) = my(i) - aaa * (dr(2,nc1(i))-dyr)
213 mz1(i) = mz(i) - aaa * (dr(3,nc1(i))-dzr)
214
215 mx2(i) = mx(i) - aaa * (dr(1,nc2(i))-dxr)
216 my2(i) = my(i) - aaa * (dr(2,nc2(i))-dyr)
217 mz2(i) = mz(i) - aaa * (dr(3,nc2(i))-dzr)
218
219 mx3(i) = mx(i) - aaa * (dr(1,nc3(i))-dxr)
220 my3(i) = my(i) - aaa * (dr(2,nc3(i))-dyr)
221 mz3(i) = mz(i) - aaa * (dr(3,nc3(i))-dzr)
222
223 mx4(i) = mx(i) - aaa * (dr(1,nc4(i))-dxr)
224 my4(i) = my(i) - aaa * (dr(2,nc4(i))-dyr)
225 mz4(i) = mz(i) - aaa * (dr(3,nc4(i))-dzr)
226
227 mx5(i) = mx(i) - aaa * (dr(1,nc5(i))-dxr)
228 my5(i) = my(i) - aaa * (dr(2,nc5(i))-dyr)
229 mz5(i) = mz(i) - aaa * (dr(3,nc5(i))-dzr)
230
231 mx6(i) = mx(i) - aaa * (dr(1,nc6(i))-dxr)
232 my6(i) = my(i) - aaa * (dr(2,nc6(i))-dyr)
233 mz6(i) = mz(i) - aaa * (dr(3,nc6(i))-dzr)
234
235 mx7(i) = mx(i) - aaa * (dr(1,nc7(i))-dxr)
236 my7(i) = my(i) - aaa * (dr(2,nc7(i))-dyr)
237 mz7(i) = mz(i) - aaa * (dr(3,nc7(i))-dzr)
238
239 mx8(i) = mx(i) - aaa * (dr(1,nc8(i))-dxr)
240 my8(i) = my(i) - aaa * (dr(2,nc8(i))-dyr)
241 mz8(i) = mz(i) - aaa * (dr(3,nc8(i))-dzr)
242 ENDDO
243
244 RETURN