63 nend,totalmass,numelneigh,elconn,
alpha,vhat)
75 REAL*8,
DIMENSION(1:numat_vol) :: rho
77 REAL*8,
DIMENSION(1:numnp) :: xm
79 INTEGER,
DIMENSION(1:numcstet) :: matcstet
81 INTEGER,
DIMENSION(1:4,1:numcstet) :: lmcstet
83 REAL*8,
DIMENSION(1:3,1:numnp) :: coor
84 integer,
DIMENSION(1:numnp) ::numelneigh
85 INTEGER,
DIMENSION(1:numnp,1:40) :: elconn
89 INTEGER :: n1,n2,n3,n4,n5,n6
90 INTEGER :: n7,n8,n9,n10
91 INTEGER ::
i,
j,nstart,nend
93 REAL*8 :: x1,x2,x3,x4,y1,y2,y3,y4,z1,z2,z3,z4
95 REAL*8 :: x14, x24, x34, y14, y24, y34, z14, z24, z34
97 REAL*8 :: c11, c21, c31
100 REAL*8 :: totalmass,volel, aux
101 real*8,
dimension(1:4,1:numcstet) ::
alpha
104 REAL*8,
DIMENSION(1:numnp) :: vhat
109 DO j = 1, numelneigh(
i)
113 n1 = lmcstet(1,ielnum)
114 n2 = lmcstet(2,ielnum)
115 n3 = lmcstet(3,ielnum)
116 n4 = lmcstet(4,ielnum)
141 c11 = y24*z34 - z24*y34
142 c21 = -( x24*z34 - z24*x34 )
143 c31 = x24*y34 - y24*x34
145 vx6 = -( x14*c11 + y14*c21 + z14*c31 )
149 IF( volel.LT.0.d0)
THEN
151 print*,
'NEG, Volume... STOPPING'
153 print*,
' NODES=',n1,n2,n3,n4
154 print*,
' x-Coordinates:',x1,x2,x3,x4
155 print*,
' y-Coordinates:',y1,y2,y3,y4
156 print*,
' z-Coordinates:',z1,z2,z3,z4
161 aux =
alpha(1,ielnum)*volel
164 xm(n1) = xm(n1) + aux*rho(
m)
165 totalmass = totalmass + aux*rho(
m)
167 aux =
alpha(2,ielnum)*volel
170 xm(n2) = xm(n2) + aux*rho(
m)
171 totalmass = totalmass + aux*rho(
m)
173 aux =
alpha(3,ielnum)*volel
176 xm(n3) = xm(n3) + aux*rho(
m)
177 totalmass = totalmass + aux*rho(
m)
179 aux =
alpha(4,ielnum)*volel
182 xm(n4) = xm(n4) + aux*rho(
m)
183 totalmass = totalmass + aux*rho(
m)
int volume(const block *b)
subroutine v3d4n_mass(coor, lmcstet, matcstet, rho, xm, numnp, numcstet, numat_vol, nstart, nend, TotalMass, NumElNeigh, ElConn, Alpha, Vhat)
unsigned char alpha() const