53 SUBROUTINE v3d4(coor,matcstet,lmcstet,R_in,d,ci, &
54 s11,s22,s33,s12,s23,s13,numnp,nstart,nend,numcstet,numat_vol)
71 REAL*8,
DIMENSION(1:3,1:numnp) :: coor
73 REAL*8,
DIMENSION(1:9,1:numat_vol) :: ci
75 REAL*8,
DIMENSION(1:3*numnp) :: r_in
77 REAL*8,
DIMENSION(1:3*numnp) ::
d
79 REAL*8,
DIMENSION(1:numcstet) :: s11, s22, s33, s12, s23, s13
81 INTEGER,
DIMENSION(1:4,1:numcstet) :: lmcstet
83 INTEGER,
DIMENSION(1:numcstet) :: matcstet
86 INTEGER :: n1,n2,n3,n4
88 REAL*8 :: u1,u2,u3,u4,v1,v2,v3,v4,w1,w2,w3,w4
90 REAL*8 :: vx6, vx6inv, vol
92 REAL*8 :: b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12
94 REAL*8 :: e11,e22,e33,e12,e23,e13
96 REAL*8 :: x1,x2,x3,x4,y1,y2,y3,y4,z1,z2,z3,z4
98 REAL*8 :: x14, x24, x34, y14, y24, y34, z14, z24, z34
100 REAL*8 :: x12, x13, y12, y13, z12, z13
102 REAL*8 :: c11, c21, c31
104 INTEGER ::
i,
j,nstart,nend
105 INTEGER :: k1n1,k1n2,k1n3,k1n4,k2n1,k2n2,k2n3,k2n4
106 INTEGER :: k3n1,k3n2,k3n3,k3n4
173 c11 = y24*z34 - z24*y34
174 c21 = -( x24*z34 - z24*x34 )
175 c31 = x24*y34 - y24*x34
177 vx6 = -( x14*c11 + y14*c21 + z14*c31 )
184 b1 = (y34*z24 - y24*z34) * vx6inv
185 b2 = (z34*x24 - z24*x34) * vx6inv
186 b3 = (x34*y24 - x24*y34) * vx6inv
187 b4 = (y13*z14 - y14*z13) * vx6inv
188 b5 = (z13*x14 - z14*x13) * vx6inv
189 b6 = (x13*y14 - x14*y13) * vx6inv
190 b7 = (y14*z12 - y12*z14) * vx6inv
191 b8 = (z14*x12 - z12*x14) * vx6inv
192 b9 = (x14*y12 - x12*y14) * vx6inv
193 b10 = (y12*z13 - y13*z12) * vx6inv
194 b11 = (z12*x13 - z13*x12) * vx6inv
195 b12 = (x12*y13 - x13*y12) * vx6inv
200 e11 = b1*u1 + b4*u2 + b7*u3 + b10*u4
201 e22 = b2*v1 + b5*v2 + b8*v3 + b11*v4
202 e33 = b3*w1 + b6*w2 + b9*w3 + b12*w4
203 e12 = b2*u1 + b1*v1 + b5*u2 + b4*v2 + b8*u3 + b7*v3 + b11*u4 + b10*v4
204 e23 = b3*v1 + b2*w1 + b6*v2 + b5*w2 + b9*v3 + b8*w3 + b12*v4 + b11*w4
205 e13 = b3*u1 + b1*w1 + b6*u2 + b4*w2 + b9*u3 + b7*w3 + b12*u4 + b10*w4
210 s11(
i) = e11*ci(1,
j) + e22*ci(2,
j) + e33*ci(4,
j)
211 s22(
i) = e11*ci(2,
j) + e22*ci(3,
j) + e33*ci(5,
j)
212 s33(
i) = e11*ci(4,
j) + e22*ci(5,
j) + e33*ci(6,
j)
224 r_in(k1n1) = r_in(k1n1) - (s11(
i)*b1 + s12(
i)*b2 + s13(
i)*b3)*vol
225 r_in(k2n1) = r_in(k2n1) - (s22(
i)*b2 + s12(
i)*b1 + s23(
i)*b3)*vol
226 r_in(k3n1) = r_in(k3n1) - (s33(
i)*b3 + s23(
i)*b2 + s13(
i)*b1)*vol
228 r_in(k1n2) = r_in(k1n2) - (s11(
i)*b4 + s12(
i)*b5 + s13(
i)*b6)*vol
229 r_in(k2n2) = r_in(k2n2) - (s22(
i)*b5 + s12(
i)*b4 + s23(
i)*b6)*vol
230 r_in(k3n2) = r_in(k3n2) - (s33(
i)*b6 + s23(
i)*b5 + s13(
i)*b4)*vol
232 r_in(k1n3) = r_in(k1n3) - (s11(
i)*b7 + s12(
i)*b8 + s13(
i)*b9 )*vol
233 r_in(k2n3) = r_in(k2n3) - (s22(
i)*b8 + s12(
i)*b7 + s23(
i)*b9 )*vol
234 r_in(k3n3) = r_in(k3n3) - (s33(
i)*b9 + s23(
i)*b8 + s13(
i)*b7 )*vol
236 r_in(k1n4) = r_in(k1n4) - (s11(
i)*b10 + s12(
i)*b11 + s13(
i)*b12 )*vol
237 r_in(k2n4) = r_in(k2n4) - (s22(
i)*b11 + s12(
i)*b10 + s23(
i)*b12 )*vol
238 r_in(k3n4) = r_in(k3n4) - (s33(
i)*b12 + s23(
i)*b11 + s13(
i)*b10 )*vol
263 c11 = y24*z34 - z24*y34
264 c21 = -( x24*z34 - z24*x34 )
265 c31 = x24*y34 - y24*x34
267 vx6 = -( x14*c11 + y14*c21 + z14*c31 )
270 print*,
'DEFORMED VOLUME TURNED NEGATIVE'
subroutine v3d4(coor, matcstet, lmcstet, R_in, d, ci, S11, S22, S33, S12, S23, S13, numnp, nstart, nend, numcstet, numat_vol)