53 SUBROUTINE v3d4n_nl(numnp, numel, coor, disp, nodes, Rnet,&
 
   54      numelneigh, elconn, 
alpha, ahat,nummatvol, &
 
   96   INTEGER :: numnp, numel
 
   97   REAL*8, 
DIMENSION(1:NumMatVol) :: xmu, xlambda
 
   98   REAL*8, 
DIMENSION(1:numnp) :: ahat
 
   99   REAL*8, 
DIMENSION(1:3*numnp) :: disp, rnet
 
  100   REAL*8, 
DIMENSION(1:3,1:numnp) :: coor
 
  101   INTEGER, 
DIMENSION(1:numnp) ::numelneigh
 
  102   INTEGER, 
DIMENSION(1:numnp,1:40) :: elconn  
 
  103   INTEGER,
DIMENSION(1:4,1:numel) :: nodes
 
  104   REAL*8, 
DIMENSION(1:4,1:numel) :: 
alpha 
  105   REAL*8, 
DIMENSION(1:numnp) :: s11n, s22n, s33n, s12n, s13n,s23n
 
  113   REAL*8 :: x1,x2,x3,x4,y1,y2,y3,y4,z1,z2,z3,z4
 
  114   REAL*8 :: x1d,x2d,x3d,x4d,y1d,y2d,y3d,y4d,z1d,z2d,z3d,z4d
 
  115   INTEGER :: k1n1,k1n2,k1n3,k1n4,k2n1,k2n2,k2n3,k2n4
 
  116   INTEGER :: k3n1,k3n2,k3n3,k3n4
 
  121   REAL*8 :: u1,u2,u3,u4,v1,v2,v3,v4,w1,w2,w3,w4
 
  123   REAL*8 :: dudx,dvdy,dwdz,dudy,dvdx,dvdz,dwdy,dudz,dwdx
 
  126   REAL*8 :: x14, x24, x34, y14, y24, y34, z14, z24, z34
 
  127   REAL*8 :: x12, x13, y12, y13
 
  131   REAL*8 :: c11, c12, c13, c21, c22, c23, c31, c32, c33
 
  132   REAL*8 :: sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8, sh9, sh10, sh11, sh12
 
  133   REAL*8 :: sh13, sh14, sh15
 
  137   REAL*8 :: b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12
 
  139   REAL*8 :: e11,e22,e33,e12,e23,e13
 
  140   REAL*8 :: b13, b14, b15
 
  141   REAL*8 :: sums11n,sums22n,sums33n,sums12n,sums23n,sums13n
 
  142   REAL*8 :: sume11n,sume22n,sume33n,sume12n,sume23n,sume13n
 
  144   REAL*8 :: e11n, e22n, e33n, e12n, e23n, e13n
 
  145   INTEGER :: k3i,k2i,k1i
 
  147   INTEGER :: n1, n2, n3, n4
 
  148   REAL*8 :: volel, volel0,vx6inv,vol
 
  149   REAL*8 :: s11e, s22e, s33e, s12e, s23e, s13e
 
  152   REAL*8 :: coeff1, coeff2
 
  154   REAL*8 :: f11, f12, f13, f21, f22, f23, f31, f32, f33
 
  155   REAL*8 :: vx6def, vx6invdef, voldef, vtotal
 
  177      DO j = 1, numelneigh(
i) 
 
  254         c11 =    y24*z34 - z24*y34
 
  255         c21 = -( x24*z34 - z24*x34 )
 
  256         c31 =    x24*y34 - y24*x34
 
  258         vx6 = -( x14*c11 + y14*c21 + z14*c31 )
 
  267         b1  = (y34*z24 - y24*z34) * vx6inv
 
  268         b2  = (z34*x24 - z24*x34) * vx6inv
 
  269         b3  = (x34*y24 - x24*y34) * vx6inv
 
  270         b4  = (y13*z14 - y14*z13) * vx6inv
 
  271         b5  = (z13*x14 - z14*x13) * vx6inv
 
  272         b6  = (x13*y14 - x14*y13) * vx6inv
 
  273         b7  = (y14*z12 - y12*z14) * vx6inv
 
  274         b8  = (z14*x12 - z12*x14) * vx6inv
 
  275         b9  = (x14*y12 - x12*y14) * vx6inv
 
  276         b10 = (y12*z13 - y13*z12) * vx6inv
 
  277         b11 = (z12*x13 - z13*x12) * vx6inv
 
  278         b12 = (x12*y13 - x13*y12) * vx6inv
 
  282         f11 = f11 + 
alpha(ix,ielnum)*volel0*(1.d0 + ( b1*u1 + b4*u2 + b7*u3 + b10*u4 )) 
 
  283         f22 = f22 + 
alpha(ix,ielnum)*volel0*(1.d0 + ( b2*v1 + b5*v2 + b8*v3 + b11*v4 )) 
 
  284         f33 = f33 + 
alpha(ix,ielnum)*volel0*(1.d0 + ( b3*w1 + b6*w2 + b9*w3 + b12*w4 )) 
 
  285         f12 = f12 + 
alpha(ix,ielnum)*volel0*(b2*u1 + b5*u2 + b8*u3 + b11*u4) 
 
  286         f21 = f21 + 
alpha(ix,ielnum)*volel0*(b1*v1 + b4*v2 + b7*v3 + b10*v4) 
 
  287         f23 = f23 + 
alpha(ix,ielnum)*volel0*(b3*v1 + b6*v2 + b9*v3 + b12*v4) 
 
  288         f32 = f32 + 
alpha(ix,ielnum)*volel0*(b2*w1 + b5*w2 + b8*w3 + b11*w4) 
 
  289         f13 = f13 + 
alpha(ix,ielnum)*volel0*(b3*u1 + b6*u2 + b9*u3 + b12*u4) 
 
  290         f31 = f31 + 
alpha(ix,ielnum)*volel0*(b1*w1 + b4*w2 + b7*w3 + b10*w4) 
 
  304      jacob = f11*(f22*f33-f23*f32)+f12*(f31*f23-f21*f33)+f13*(-f31*f22+f21*f32)
 
  308      IF( jacob.LE.0.d0) 
THEN 
  316      coeff1 = xmu(1)/jacob
 
  317      coeff2 = xlambda(1)/jacob*log(jacob)
 
  319      s11n(
i) = coeff1*(f11**2+f12**2+f13**2-1.d0) + coeff2
 
  320      s12n(
i) = coeff1*(f21*f11+f12*f22+f13*f23)
 
  321      s13n(
i) = coeff1*(f31*f11+f12*f32+f13*f33)
 
  322      s22n(
i) = coeff1*(f21**2+f22**2+f23**2-1.d0) + coeff2
 
  323      s23n(
i) = coeff1*(f21*f31+f32*f22+f23*f33)
 
  324      s33n(
i) = coeff1*(f31**2+f32**2+f33**2-1.d0) + coeff2
 
  406      c11 =    y24*z34 - z24*y34
 
  407      c21 = -( x24*z34 - z24*x34 )
 
  408      c31 =    x24*y34 - y24*x34
 
  410      vx6def = -( x14*c11 + y14*c21 + z14*c31 )
 
  412      vx6invdef = 1.d0 / vx6def 
 
  417      IF(vx6def.LE.0.d0) 
THEN 
  432         s11e = s11e + 
alpha(
k,ielnum)*s11n(nodes(
k,ielnum))
 
  433         s22e = s22e + 
alpha(
k,ielnum)*s22n(nodes(
k,ielnum))
 
  434         s33e = s33e + 
alpha(
k,ielnum)*s33n(nodes(
k,ielnum))
 
  435         s12e = s12e + 
alpha(
k,ielnum)*s12n(nodes(
k,ielnum))
 
  436         s23e = s23e + 
alpha(
k,ielnum)*s23n(nodes(
k,ielnum))
 
  437         s13e = s13e + 
alpha(
k,ielnum)*s13n(nodes(
k,ielnum))   
 
  440      sh1  = (y34*z24 - y24*z34) * vx6invdef
 
  441      sh2  = (z34*x24 - z24*x34) * vx6invdef
 
  442      sh3  = (x34*y24 - x24*y34) * vx6invdef
 
  443      sh4  = (y13*z14 - y14*z13) * vx6invdef
 
  444      sh5  = (z13*x14 - z14*x13) * vx6invdef
 
  445      sh6  = (x13*y14 - x14*y13) * vx6invdef
 
  446      sh7  = (y14*z12 - y12*z14) * vx6invdef
 
  447      sh8  = (z14*x12 - z12*x14) * vx6invdef
 
  448      sh9  = (x14*y12 - x12*y14) * vx6invdef
 
  449      sh10 = (y12*z13 - y13*z12) * vx6invdef
 
  450      sh11 = (z12*x13 - z13*x12) * vx6invdef
 
  451      sh12 = (x12*y13 - x13*y12) * vx6invdef
 
  456      rnet(k1n1) = rnet(k1n1) - voldef* &
 
  457           ( s11e*sh1 + s12e*sh2 + s13e*sh3 )
 
  458      rnet(k2n1) = rnet(k2n1) - voldef* &
 
  459           ( s12e*sh1 + s22e*sh2 + s23e*sh3 )
 
  460      rnet(k3n1) = rnet(k3n1) - voldef* &
 
  461           ( s13e*sh1 + s23e*sh2 + s33e*sh3 )
 
  463      rnet(k1n2) = rnet(k1n2) - voldef* &
 
  464           ( s11e*sh4 + s12e*sh5 + s13e*sh6 )
 
  465      rnet(k2n2) = rnet(k2n2) - voldef* &
 
  466           ( s12e*sh4 + s22e*sh5 + s23e*sh6 )
 
  467      rnet(k3n2) = rnet(k3n2) - voldef* &
 
  468           ( s13e*sh4 + s23e*sh5 + s33e*sh6 )
 
  470      rnet(k1n3) = rnet(k1n3) - voldef* &
 
  471           ( s11e*sh7 + s12e*sh8 + s13e*sh9 )
 
  472      rnet(k2n3) = rnet(k2n3) - voldef* &
 
  473           ( s12e*sh7 + s22e*sh8 + s23e*sh9 )
 
  474      rnet(k3n3) = rnet(k3n3) - voldef* &
 
  475           ( s13e*sh7 + s23e*sh8 + s33e*sh9 )
 
  477      rnet(k1n4) = rnet(k1n4) - voldef* &
 
  478           ( s11e*sh10 + s12e*sh11 + s13e*sh12 )
 
  479      rnet(k2n4) = rnet(k2n4) - voldef* &
 
  480           ( s12e*sh10 + s22e*sh11 + s23e*sh12 )
 
  481      rnet(k3n4) = rnet(k3n4) - voldef* &
 
  482           ( s13e*sh10 + s23e*sh11 + s33e*sh12 )
 
  487 100 
FORMAT(
' Negative Jacobian for element: ',i10)
 
unsigned char alpha() const 
subroutine v3d4n_nl(numnp, numel, coor, disp, nodes, Rnet, NumElNeigh, ElConn, alpha, Ahat, NumMatVol, xmu, xlambda)