54      numelneigh, elconn, 
alpha, ahat,nummatvol, &
 
   83   INTEGER :: numnp, numel
 
   84   REAL*8,
dimension(1:NumMatVol) :: xmu, xlambda
 
   85   REAL*8, 
DIMENSION(1:numnp) :: ahat
 
   86   REAL*8, 
DIMENSION(1:3*numnp) :: disp, rnet
 
   87   REAL*8, 
DIMENSION(1:3,1:numnp) :: coor
 
   88   INTEGER, 
DIMENSION(1:numnp) ::numelneigh
 
   89   INTEGER, 
DIMENSION(1:numnp,1:40) :: elconn  
 
   90   INTEGER,
DIMENSION(1:4,1:numel) :: nodes
 
   91   REAL*8, 
DIMENSION(1:4,1:numel) :: 
alpha 
   92   REAL*8, 
DIMENSION(1:numnp) :: s11n, s22n, s33n, s12n, s13n,s23n
 
   96   REAL*8 :: u1,u2,u3,u4,v1,v2,v3,v4,w1,w2,w3,w4
 
   98   REAL*8 :: x1,x2,x3,x4,y1,y2,y3,y4,z1,z2,z3,z4
 
  102   REAL*8 :: x14, x24, x34, y14, y24, y34, z14, z24, z34
 
  103   REAL*8 :: x12, x13, y12, y13
 
  106   REAL*8 :: vx6, vx6inv, vol
 
  108   REAL*8 :: b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12
 
  110   REAL*8 :: dudx,dvdy,dwdz,dudy,dvdx,dvdz,dwdy,dudz,dwdx
 
  112   REAL*8 :: volnd,vainv
 
  114   INTEGER :: n1,n2,n3,n4
 
  116   INTEGER :: 
j,nstart,nend
 
  117   INTEGER :: k1n1,k1n2,k1n3,k1n4,k2n1,k2n2,k2n3,k2n4
 
  118   INTEGER :: k3n1,k3n2,k3n3,k3n4
 
  120   REAL*8 :: f11, f12, f13, f21, f22, f23, f31, f32, f33
 
  121   REAL*8 :: j1,j2,j2inv
 
  122   REAL*8 :: c11, c12, c13, c21, c22, c23, c31, c32, c33
 
  124   REAL*8 :: volnd0inv,volel0
 
  125   REAL*8, 
DIMENSION(1:1) :: s11, s22, s33, s12, s23, s13
 
  126   INTEGER :: k3i,k2i,k1i
 
  135      volnd0inv = 1.d0/ahat(
i)
 
  150      DO j = 1, numelneigh(
i)
 
  226         c11 =    y24*z34 - z24*y34
 
  227         c21 = -( x24*z34 - z24*x34 )
 
  228         c31 =    x24*y34 - y24*x34
 
  230         vx6 = -( x14*c11 + y14*c21 + z14*c31 )
 
  244         b1  = (y34*z24 - y24*z34) * vx6inv
 
  245         b2  = (z34*x24 - z24*x34) * vx6inv
 
  246         b3  = (x34*y24 - x24*y34) * vx6inv
 
  247         b4  = (y13*z14 - y14*z13) * vx6inv
 
  248         b5  = (z13*x14 - z14*x13) * vx6inv
 
  249         b6  = (x13*y14 - x14*y13) * vx6inv
 
  250         b7  = (y14*z12 - y12*z14) * vx6inv
 
  251         b8  = (z14*x12 - z12*x14) * vx6inv
 
  252         b9  = (x14*y12 - x12*y14) * vx6inv
 
  253         b10 = (y12*z13 - y13*z12) * vx6inv
 
  254         b11 = (z12*x13 - z13*x12) * vx6inv
 
  255         b12 = (x12*y13 - x13*y12) * vx6inv
 
  259         dudx = b1*u1 + b4*u2 + b7*u3 + b10*u4
 
  260         dvdy = b2*v1 + b5*v2 + b8*v3 + b11*v4
 
  261         dwdz = b3*w1 + b6*w2 + b9*w3 + b12*w4
 
  262         dudy = b2*u1 + b5*u2 + b8*u3 + b11*u4
 
  263         dvdx = b1*v1 + b4*v2 + b7*v3 + b10*v4
 
  264         dvdz = b3*v1 + b6*v2 + b9*v3 + b12*v4
 
  265         dwdy = b2*w1 + b5*w2 + b8*w3 + b11*w4
 
  266         dudz = b3*u1 + b6*u2 + b9*u3 + b12*u4
 
  267         dwdx = b1*w1 + b4*w2 + b7*w3 + b10*w4
 
  271         f11 = f11 + 
alpha(ix,ielnum)*volel0*(1.d0 + dudx)
 
  272         f12 = f12 + 
alpha(ix,ielnum)*volel0*dudy
 
  273         f13 = f13 + 
alpha(ix,ielnum)*volel0*dudz
 
  274         f21 = f21 + 
alpha(ix,ielnum)*volel0*dvdx
 
  275         f22 = f22 + 
alpha(ix,ielnum)*volel0*(1.d0 + dvdy)
 
  276         f23 = f23 + 
alpha(ix,ielnum)*volel0*dvdz
 
  277         f31 = f31 + 
alpha(ix,ielnum)*volel0*dwdx
 
  278         f32 = f32 + 
alpha(ix,ielnum)*volel0*dwdy
 
  279         f33 = f33 + 
alpha(ix,ielnum)*volel0*(1.d0 + dwdz)
 
  298      j1 = f11*(f22*f33-f23*f32)+f12*(f31*f23-f21*f33)+f13*(-f31*f22+f21*f32)
 
  300         WRITE(*,*)
'area has become zero for element',
i 
  312      c11 = (f11*f11+f21*f21+f31*f31)*j2inv
 
  313      c12 = (f11*f12+f21*f22+f31*f32)*j2inv
 
  314      c13 = (f11*f13+f21*f23+f31*f33)*j2inv
 
  316      c22 = (f12*f12+f22*f22+f32*f32)*j2inv
 
  317      c23 = (f12*f13+f22*f23+f32*f33)*j2inv
 
  320      c33 = (f13*f13+f23*f23+f33*f33)*j2inv       
 
  326      s11n(
i) = xmu(1)*(1.d0-(c22*c33-c23*c32)) + xlambda(1)*log(j1)*(c22*c33-c23*c32)
 
  327      s22n(
i) = xmu(1)*(1.d0-(c11*c33-c31*c13)) + xlambda(1)*log(j1)*(c11*c33-c31*c13)
 
  328      s33n(
i) = xmu(1)*(1.d0-(c11*c22-c12*c21)) + xlambda(1)*log(j1)*(c11*c22-c12*c21)
 
  329      s12n(
i) = (-c12*c33+c13*c32)*(xmu(1) - xlambda(1)*log(j1))
 
  330      s23n(
i) = (-c11*c23+c13*c21)*(xmu(1) - xlambda(1)*log(j1))
 
  331      s13n(
i) = (c12*c23-c13*c22)*(xmu(1) - xlambda(1)*log(j1))
 
  345      DO j = 1, numelneigh(
i)
 
  410         c11 =    y24*z34 - z24*y34
 
  411         c21 = -( x24*z34 - z24*x34 )
 
  412         c31 =    x24*y34 - y24*x34
 
  414         vx6 = -( x14*c11 + y14*c21 + z14*c31 )
 
  424         b1  = (y34*z24 - y24*z34) * vx6inv
 
  425         b2  = (z34*x24 - z24*x34) * vx6inv
 
  426         b3  = (x34*y24 - x24*y34) * vx6inv
 
  427         b4  = (y13*z14 - y14*z13) * vx6inv
 
  428         b5  = (z13*x14 - z14*x13) * vx6inv
 
  429         b6  = (x13*y14 - x14*y13) * vx6inv
 
  430         b7  = (y14*z12 - y12*z14) * vx6inv
 
  431         b8  = (z14*x12 - z12*x14) * vx6inv
 
  432         b9  = (x14*y12 - x12*y14) * vx6inv
 
  433         b10 = (y12*z13 - y13*z12) * vx6inv
 
  434         b11 = (z12*x13 - z13*x12) * vx6inv
 
  435         b12 = (x12*y13 - x13*y12) * vx6inv
 
  439         dudx = b1*u1 + b4*u2 + b7*u3 + b10*u4
 
  440         dvdy = b2*v1 + b5*v2 + b8*v3 + b11*v4
 
  441         dwdz = b3*w1 + b6*w2 + b9*w3 + b12*w4
 
  442         dudy = b2*u1 + b5*u2 + b8*u3 + b11*u4
 
  443         dvdx = b1*v1 + b4*v2 + b7*v3 + b10*v4
 
  444         dvdz = b3*v1 + b6*v2 + b9*v3 + b12*v4
 
  445         dwdy = b2*w1 + b5*w2 + b8*w3 + b11*w4
 
  446         dudz = b3*u1 + b6*u2 + b9*u3 + b12*u4
 
  447         dwdx = b1*w1 + b4*w2 + b7*w3 + b10*w4
 
  476            s11(1) = s11(1) + 
alpha(
k,ielnum)*s11n(nodes(
k,ielnum))
 
  477            s22(1) = s22(1) + 
alpha(
k,ielnum)*s22n(nodes(
k,ielnum))
 
  478            s33(1) = s33(1) + 
alpha(
k,ielnum)*s33n(nodes(
k,ielnum))
 
  479            s12(1) = s12(1) + 
alpha(
k,ielnum)*s12n(nodes(
k,ielnum))
 
  480            s23(1) = s23(1) + 
alpha(
k,ielnum)*s23n(nodes(
k,ielnum))
 
  481            s13(1) = s13(1) + 
alpha(
k,ielnum)*s13n(nodes(
k,ielnum)) 
 
  557         rnet(k1n1) = rnet(k1n1) - volel0* &
 
  558              ( s11(1)*b1*f11 + s22(1)*b2*f12 + s33(1)*b3*f13 &
 
  559              + s12(1)*( b2*f11 + b1*f12 ) &
 
  560              + s23(1)*( b3*f12 + b2*f13 ) &
 
  561              + s13(1)*( b3*f11 + b1*f13 ) )
 
  562         rnet(k2n1) = rnet(k2n1) - volel0* &
 
  563              ( s11(1)*b1*f21 + s22(1)*b2*f22 + s33(1)*b3*f23 &
 
  564              + s12(1)*( b1*f22 + b2*f21 ) &
 
  565              + s23(1)*( b3*f22 + b2*f23 ) &
 
  566              + s13(1)*( b3*f21 + b1*f23 ) )
 
  567         rnet(k3n1) = rnet(k3n1) - volel0* &
 
  568              ( s11(1)*b1*f31 + s22(1)*b2*f32 + s33(1)*b3*f33 &
 
  569              + s12(1)*( b2*f31 + b1*f32 ) &
 
  570              + s23(1)*( b3*f32 + b2*f33 ) &
 
  571              + s13(1)*( b3*f31 + b1*f33 ) )
 
  573         rnet(k1n2) = rnet(k1n2) - volel0* &
 
  574              ( s11(1)*b4*f11 + s22(1)*b5*f12 + s33(1)*b6*f13 &
 
  575              + s12(1)*( b5*f11 + b4*f12 ) &
 
  576              + s23(1)*( b6*f12 + b5*f13 ) &
 
  577              + s13(1)*( b6*f11 + b4*f13 ) )
 
  578         rnet(k2n2) = rnet(k2n2) - volel0* &
 
  579              ( s11(1)*b4*f21 + s22(1)*b5*f22 + s33(1)*b6*f23 &
 
  580              + s12(1)*( b4*f22 + b5*f21 ) &
 
  581              + s23(1)*( b6*f22 + b5*f23 ) &
 
  582              + s13(1)*( b6*f21 + b4*f23 ) )
 
  583         rnet(k3n2) = rnet(k3n2) - volel0* &
 
  584              ( s11(1)*b4*f31 + s22(1)*b5*f32 + s33(1)*b6*f33 &
 
  585              + s12(1)*( b5*f31 + b4*f32 ) &
 
  586              + s23(1)*( b6*f32 + b5*f33 ) &
 
  587              + s13(1)*( b6*f31 + b4*f33 ) )
 
  589         rnet(k1n3) = rnet(k1n3) - volel0* &
 
  590              ( s11(1)*b7*f11 + s22(1)*b8*f12 + s33(1)*b9*f13 &
 
  591              + s12(1)*( b8*f11 + b7*f12 ) &
 
  592              + s23(1)*( b9*f12 + b8*f13 ) &
 
  593              + s13(1)*( b9*f11 + b7*f13 ) )
 
  594         rnet(k2n3) = rnet(k2n3) - volel0* &
 
  595              ( s11(1)*b7*f21 + s22(1)*b8*f22 + s33(1)*b9*f23 &
 
  596              + s12(1)*( b7*f22 + b8*f21 ) &
 
  597              + s23(1)*( b9*f22 + b8*f23 ) &
 
  598              + s13(1)*( b9*f21 + b7*f23 ) )
 
  599         rnet(k3n3) = rnet(k3n3) - volel0* &
 
  600              ( s11(1)*b7*f31 + s22(1)*b8*f32 + s33(1)*b9*f33 &
 
  601              + s12(1)*( b8*f31 + b7*f32 ) &
 
  602              + s23(1)*( b9*f32 + b8*f33 ) &
 
  603              + s13(1)*( b9*f31 + b7*f33 ) )
 
  605         rnet(k1n4) = rnet(k1n4) - volel0* &
 
  606              ( s11(1)*b10*f11 + s22(1)*b11*f12+s33(1)*b12*f13 &
 
  607              + s12(1)*( b11*f11 + b10*f12 ) &
 
  608              + s23(1)*( b12*f12 + b11*f13 ) &
 
  609              + s13(1)*( b12*f11 + b10*f13 ) )
 
  610         rnet(k2n4) = rnet(k2n4) - volel0* &
 
  611              ( s11(1)*b10*f21 + s22(1)*b11*f22 + s33(1)*b12*f23 &
 
  612              + s12(1)*( b10*f22 + b11*f21 ) &
 
  613              + s23(1)*( b12*f22 + b11*f23 ) &
 
  614              + s13(1)*( b12*f21 + b10*f23 ) )
 
  615         rnet(k3n4) = rnet(k3n4) - volel0* &
 
  616              ( s11(1)*b10*f31 + s22(1)*b11*f32 + s33(1)*b12*f33 &
 
  617              + s12(1)*( b11*f31 + b10*f32 ) &
 
  618              + s23(1)*( b12*f32 + b11*f33 ) &
 
  619              + s13(1)*( b12*f31 + b10*f33 ) )
 
unsigned char alpha() const 
subroutine v3d4n_neohookeancompress(numnp, numel, coor, disp, nodes, Rnet, NumElNeigh, ElConn, alpha, Ahat, NumMatVol, xmu, xlambda)