51
52
53
54
55#include "implicit_f.inc"
56
57
58
59#include "mvsiz_p.inc"
60
61
62
63
64
65
66 INTEGER, INTENT(IN) :: NEL
67
69 . vx1(*), vx2(*), vx3(*), vx4(*), vx5(*), vx6(*),
70 . vy1(*), vy2(*), vy3(*), vy4(*), vy5(*), vy6(*),
71 . vz1(*), vz2(*), vz3(*), vz4(*), vz5(*), vz6(*),
72 . px1(*), px2(*), px3(*), px4(*),
73 . py1(*), py2(*), py3(*), py4(*),
74 . pz1(*), pz2(*), pz3(*), pz4(*),
75 . dxx(*), dxy(*), dxz(*),
76 . dyx(*), dyy(*), dyz(*),
77 . dzx(*), dzy(*), dzz(*), d4(*), d5(*), d6(*),
78 . wxx(*), wyy(*), wzz(*),
79
80 . px1h(*), px2h(*), px3h(*),
81 . py1h(*), py2h(*), py3h(*),
82 . pz1h(*), pz2h(*), pz3h(*),
83 . ji33(*),b1x(mvsiz,2),b1y(mvsiz,2),b2x(mvsiz,2),b2y(mvsiz,2),
84 . b1xh(mvsiz,2),b1yh(mvsiz,2),b2xh(mvsiz,2),b2yh(mvsiz,2),
85 . b1122(*),b1221(*),b2212(*),b1121(*),
86 . b1122h(*),b1221h(*),b2212h(*),b1121h(*),
87 . dhxx(*), dhxy(*), dhxz(*),
88 . dhyx(*), dhyy(*), dhyz(*),
89 . dhzx(*), dhzy(*), dhzz(*),dh4(*), dh5(*), dh6(*),
90 . ddhv(*),nu(*)
91
92
93
94 INTEGER I,
95
97 . vx14(mvsiz), vy14(mvsiz), vz14(mvsiz),
98 . vx25(mvsiz), vy25(mvsiz), vz25(mvsiz),
99 . vx36(mvsiz), vy36(mvsiz), vz36(mvsiz),
100 . vx14n(mvsiz), vy14n(mvsiz), vz14n(mvsiz),
101 . vx25n(mvsiz), vy25n(mvsiz), vz25n(mvsiz),
102 . vx36n(mvsiz), vy36n(mvsiz), vz36n(mvsiz),
103 . vx3614n(mvsiz),vy3614n(mvsiz),vx2514n(mvsiz),vy2514n(mvsiz),
104 . vxhi(mvsiz), vyhi(mvsiz), vzhi(mvsiz), dt1d2, dt1d1
106 . nu1,pxsvx,pysvy,pzsvz,pxavx,pyavy,pzavz,termad
107
108 DO i=1,nel
109 vx14(i)=vx1(i)+vx4(i)
110 vx25(i)=vx2(i)+vx5(i)
111 vx36(i)=vx3(i)+vx6(i)
112 vxhi(i)=vx4(i)+vx5(i)+vx6(i)-vx1(i)-vx2(i)-vx3(i)
113 vy14(i)=vy1(i)+vy4(i)
114 vy25(i)=vy2(i)+vy5(i)
115 vy36(i)=vy3(i)+vy6(i)
116 vyhi(i)=vy4(i)+vy5(i)+vy6(i)-vy1(i)-vy2(i)-vy3(i)
117 vz14(i)=vz1(i)+vz4(i)
118 vz25(i)=vz2(i)+vz5(i)
119 vz36(i)=vz3(i)+vz6(i)
120 vzhi(i)=vz4(i)+vz5(i)+vz6(i)-vz1(i)-vz2(i)-vz3(i)
121 ENDDO
122 DO i=1,nel
123 vx14n(i)=-vx1(i)+vx4(i)
124 vx25n(i)=-vx2(i)+vx5(i)
125 vx36n(i)=-vx3(i)+vx6(i)
126 vy14n(i)=-vy1(i)+vy4(i)
127 vy25n(i)=-vy2(i)+vy5(i)
128 vy36n(i)=-vy3(i)+vy6(i)
129 vz14n(i)=-vz1(i)+vz4(i)
130 vz25n(i)=-vz2(i)+vz5(i)
131 vz36n(i)=-vz3(i)+vz6(i)
132
133 vx3614n(i)=vx36n(i)-vx14n(i)
134 vy3614n(i)=vy36n(i)-vy14n(i)
135 vx2514n(i)=vx25n(i)-vx14n(i)
136 vy2514n(i)=vy25n(i)-vy14n(i)
137 ENDDO
138
139
140 DO i=1,nel
141 dxx(i)=px1(i)*vx14(i)+px2(i)*vx25(i)+
142 . px3(i)*vx36(i)+px4(i)*vxhi(i)
143 dyy(i)=py1(i)*vy14(i)+py2(i)*vy25(i)+
144 . py3(i)*vy36(i)+py4(i)*vyhi(i)
145 dzz(i)=pz1(i)*vz14(i)+pz2(i)*vz25(i)+
146 . pz3(i)*vz36(i)+pz4(i)*vzhi(i)
147 dxy(i)=py1(i)*vx14(i)+py2(i)*vx25(i)+
148 . py3(i)*vx36(i)+py4(i)*vxhi(i)
149 dyx(i)=px1(i)*vy14(i)+px2(i)*vy25(i)+
150 . px3(i)*vy36(i)+px4(i)*vyhi(i)
151
152 dxz(i)=ji33(i)*two*vxhi(i)
153 . -b1122(i)*vx36n(i)+b1221(i)*vx25n(i)
154 . +b2212(i)*(vy25n(i)-vy36n(i))
155 dxz(i)= dxz(i)+ji33(i)*(vxhi(i)-vx14n(i))
156 . -b1x(i,1)*vx3614n(i)+b1x(i,2)*vx2514n(i)
157 . -b1y(i,1)*vy3614n(i)+b1y(i,2)*vy2514n(i)
158 dyz(i)=ji33(i)*two*vyhi(i)
159 . -b1122(i)*vy25n(i)+b1221(i)*vy36n(i)
160 . +b1121(i)*(vx36n(i)-vx25n(i))
161 dyz(i)= dyz(i)+ ji33(i)*(vyhi(i)-vy14n(i))
162 . +b2x(i,1)*vx3614n(i)-b2x(i,2)*vx2514n(i)
163 . +b2y(i,1)*vy3614n(i)-b2y(i,2)*vy2514n(i)
164
165 dzx(i)=half*(px1(i)*vz14(i)+px2(i)*vz25(i)+
166 . px3(i)*vz36(i))
167 dzy(i)=half*(py1(i)*vz14(i)+py2(i)*vz25(i)+
168 . py3(i)*vz36(i))
169 ENDDO
170
171 DO i=1,nel
172 wxx(i)=zero
173 wyy(i)=zero
174 wzz(i)=zero
175 ENDDO
176
177 DO i=1,nel
178 nu1 = nu(i)/(one - nu(i))
179 pxavx = px1(i)*vx14n(i)+px2(i)*vx25n(i)+px3(i)*vx36n(i)
180 pyavy = py1(i)*vy14n(i)+py2(i)*vy25n(i)+py3(i)*vy36n(i)
181 pzavz = pz1(i)*vz14n(i)+pz2(i)*vz25n(i)+pz3(i)*vz36n(i)
182 pxsvx = px1h(i)*vx14(i)+px2h(i)*vx25(i)+px3h(i)*vx36(i)
183 pysvy = py1h(i)*vy14(i)+py2h(i)*vy25(i)+py3h(i)*vy36(i)
184 pzsvz = pz1h(i)*vz14(i)+pz2h(i)*vz25(i)+pz3h(i)*vz36(i)
185 termad=-nu(i)*pyavy-nu1*pzavz
186 ddhv(i)= termad
187 dhxx(i)= pxsvx+pxavx+termad
188 termad=-nu(i)*pxsvx-nu1*pzsvz
189 ddhv(i)= ddhv(i)+termad
190 dhyy(i)= pysvy+pyavy+termad
191 termad=-nu(i)*(pxsvx+pyavy)-nu1*(pxavx+pysvy)
192 ddhv(i)= ddhv(i)+termad
193 dhzz(i)= pzsvz+pzavz+termad
194 dhxy(i)=py1(i)*vx14n(i)+py2(i)*vx25n(i)+
195 . py3(i)*vx36n(i)+
196 . py1h(i)*vx14(i)+py2h(i)*vx25(i)+
197 . py3h(i)*vx36(i)
198 dhyx(i)=px1(i)*vy14n(i)+px2(i)*vy25n(i)+
199 . px3(i)*vy36n(i)+
200 . px1h(i)*vy14(i)+px2h(i)*vy25(i)+
201 . px3h(i)*vy36(i)
202
203 dhxz(i)=-b1122h(i)*vx36n(i)+b1221h(i)*vx25n(i)
204 . +b2212h(i)*(vy25n(i)-vy36n(i))
205 dhxz(i)= dhxz(i)
206 . -b1xh(i,1)*vx3614n(i)+b1xh(i,2)*vx2514n(i)
207 . -b1yh(i,1)*vy3614n(i)+b1yh(i,2)*vy2514n(i)
208 dhyz(i)=-b1122h(i)*vy25n(i)+b1221h(i)*vy36n(i)
209 . +b1121h(i)*(vx36n(i)-vx25n(i))
210 dhyz(i)= dhyz(i)
211 . +b2xh(i,1)*vx3614n(i)-b2xh(i,2)*vx2514n(i)
212 . +b2yh(i,1)*vy3614n(i)-b2yh(i,2)*vy2514n(i)
213 dhzx(i)=half*(px1h(i)*vz14(i)+px2h(i)*vz25(i)+
214 . px3h(i)*vz36(i))
215 dhzy(i)=half*(py1h(i)*vz14(i)+py2h(i)*vz25(i)+
216 . py3h(i)*vz36(i))
217 ENDDO
218
219 RETURN