49
50
51
52#include "implicit_f.inc"
53
54
55
56#include "mvsiz_p.inc"
57
58
59
60
61
62
63 INTEGER, INTENT(IN) :: NEL
64
66 . vx1(*), vx2(*), vx3(*), vx4(*), vx5(*), vx6(*), vx7(*), vx8(*),
67 . vy1(*), vy2(*), vy3(*), vy4(*), vy5(*), vy6(*), vy7(*), vy8(*),
68 . vz1(*), vz2(*), vz3(*), vz4(*), vz5(*), vz6(*), vz7(*), vz8(*),
69 . px1(*), px2(*), px3(*), px4(*),
70 . py1(*), py2(*), py3(*), py4(*),
71 . pz1(*), pz2(*), pz3(*), pz4(*),
72 . dxx(*), dxy(*), dxz(*),
73 . dyx(*), dyy(*), dyz(*),
74 . dzx(*), dzy(*), dzz(*), d4(*), d5(*), d6(*),
75 . wxx(*), wyy(*), wzz(*),
76 . dhxx(*), dhxy(*),
77 . dhyx(*), dhyy(*),
78 . dhzx(*), dhzy(*), dhzz(*),dh4(*), dh5(*), dh6(*),
79 . px1h1(*), px1h2(*) , px2h1(*), px2h2(*),
80 . px3h1(*), px3h2(*) , px4h1(*), px4h2(*),
81 . hgx1(*), hgy2(*) , hgz1(*), hgz2(*),
82 . rx0(*), ry0(*), sx0(*), sy0(*),nu(*),ddhv(*)
83
84
85
86 INTEGER I, J
87
89 . vx17(mvsiz), vy17(mvsiz), vz17(mvsiz),
90 . vx28(mvsiz), vy28(mvsiz), vz28(mvsiz),
91 . vx35(mvsiz), vy35(mvsiz), vz35(mvsiz),
92 . vx46(mvsiz), vy46(mvsiz), vz46(mvsiz), dt1d2,dt1d1
94 . pxx2,pyy2,pzz2,pxx2p,pyy2p,pzz2p,
95 . hgy1(mvsiz), hgx2(mvsiz),
96 . h1vx,h1vy,h1vz,h2vx,h2vy,h2vz,nu1,
97 . x1vx,x2vx,y1vy,y2vy,y2vy_nu,x1vx_nu
98
99 DO i=1,nel
100 vx17(i)=vx1(i)-vx7(i)
101 vx28(i)=vx2(i)-vx8(i)
102 vx35(i)=vx3(i)-vx5(i)
103 vx46(i)=vx4(i)-vx6(i)
104 vy17(i)=vy1(i)-vy7(i)
105 vy28(i)=vy2(i)-vy8(i)
106 vy35(i)=vy3(i)-vy5(i)
107 vy46(i)=vy4(i)-vy6(i)
108 vz17(i)=vz1(i)-vz7(i)
109 vz28(i)=vz2(i)-vz8(i)
110 vz35(i)=vz3(i)-vz5(i)
111 vz46(i)=vz4(i)-vz6(i)
112 ENDDO
113
114 DO i=1,nel
115 dxx(i)=px1(i)*vx17(i)+px2(i)*vx28(i)+
116 . px3(i)*vx35(i)+px4(i)*vx46(i)
117 dyy(i)=py1(i)*vy17(i)+py2(i)*vy28(i)+
118 . py3(i)*vy35(i)+py4(i)*vy46(i)
119 dzz(i)=pz1(i)*vz17(i)+pz2(i)*vz28(i)+
120 . pz3(i)*vz35(i)+pz4(i)*vz46(i)
121 dxy(i)=py1(i)*vx17(i)+py2(i)*vx28(i)+
122 . py3(i)*vx35(i)+py4(i)*vx46(i)
123 dxz(i)=pz1(i)*vx17(i)+pz2(i)*vx28(i)+
124 . pz3(i)*vx35(i)+pz4(i)*vx46(i)
125 dyx(i)=px1(i)*vy17(i)+px2(i)*vy28(i)+
126 . px3(i)*vy35(i)+px4(i)*vy46(i)
127 dyz(i)=pz1(i)*vy17(i)+pz2(i)*vy28(i)+
128 . pz3(i)*vy35(i)+pz4(i)*vy46(i)
129 dzx(i)=px1(i)*vz17(i)+px2(i)*vz28(i)+
130 . px3(i)*vz35(i)+px4(i)*vz46(i)
131 dzy(i)=py1(i)*vz17(i)+py2(i)*vz28(i)+
132 . py3(i)*vz35(i)+py4(i)*vz46(i)
133 ENDDO
134
135 DO i=1,nel
136 wxx(i)=zero
137 wyy(i)=zero
138 wzz(i)=zero
139 ENDDO
140
141
142 DO i=1,nel
143 h1vx=vx1(i)+vx2(i)-vx3(i)-vx4(i)
144 . -vx5(i)-vx6(i)+vx7(i)+vx8(i)
145 h1vy=vy1(i)+vy2(i)-vy3(i)-vy4(i)
146 . -vy5(i)-vy6(i)+vy7(i)+vy8(i)
147 h1vz=vz1(i)+vz2(i)-vz3(i)-vz4(i)
148 . -vz5(i)-vz6(i)+vz7(i)+vz8(i)
149 hgx1(i)=one_over_8*h1vx-
150 . (px1h1(i)*vx17(i)+px2h1(i)*vx28(i)+
151 . px3h1(i)*vx35(i)+px4h1(i)*vx46(i))
152 hgy1(i)=one_over_8*h1vy-
153 . (px1h1(i)*vy17(i)+px2h1(i)*vy28(i)+
154 . px3h1(i)*vy35(i)+px4h1(i)*vy46(i))
155 hgz1(i)=one_over_8*h1vz-
156 . (px1h1(i)*vz17(i)+px2h1(i)*vz28(i)+
157 . px3h1(i)*vz35(i)+px4h1(i)*vz46(i))
158 ENDDO
159
160 DO i=1,nel
161 h2vx=vx1(i)-vx2(i)-vx3(i)+vx4(i)
162 . -vx5(i)+vx6(i)+vx7(i)-vx8(i)
163 h2vy=vy1(i)-vy2(i)-vy3(i)+vy4(i)
164 . -vy5(i)+vy6(i)+vy7(i)-vy8(i)
165 h2vz=vz1(i)-vz2(i)-vz3(i)+vz4(i)
166 . -vz5(i)+vz6(i)+vz7(i)-vz8(i)
167 hgx2(i)=one_over_8*h2vx-
168 . (px1h2(i)*vx17(i)+px2h2(i)*vx28(i)+
169 . px3h2(i)*vx35(i)+px4h2(i)*vx46(i))
170 hgy2(i)=one_over_8*h2vy-
171 . (px1h2(i)*vy17(i)+px2h2(i)*vy28(i)+
172 . px3h2(i)*vy35(i)+px4h2(i)*vy46(i))
173 hgz2(i)=one_over_8*h2vz-
174 . (px1h2(i)*vz17(i)+px2h2(i)*vz28(i)+
175 . px3h2(i)*vz35(i)+px4h2(i)*vz46(i))
176 ENDDO
177 DO i=1,nel
178 nu1 = nu(i)/(one - nu(i))
179 x1vx =-ry0(i)*hgx1(i)
180 x2vx =sy0(i)*hgx2(i)
181 y1vy =rx0(i)*hgy1(i)
182 y2vy =-sx0(i)*hgy2(i)
183 y2vy_nu=-nu(i)*y2vy
184 x1vx_nu=-nu(i)*x1vx
185 dhxx(i)= x1vx+x2vx+y2vy_nu
186 dhyy(i)= y1vy+y2vy+x1vx_nu
187 ddhv(i)= x1vx_nu+y2vy_nu
188 dhzz(i)= ddhv(i)-nu1*(x2vx+y1vy)
189 dhxy(i)= rx0(i)*hgx1(i)-sx0(i)*hgx2(i)
190 dhyx(i)= -ry0(i)*hgy1(i)+sy0(i)*hgy2(i)
191 dhzx(i)= -ry0(i)*hgz1(i)
192 dhzy(i)= -sx0(i)*hgz2(i)
193 ENDDO
194
195
196 RETURN