8 subroutine umat(stress,statev,ddsdde,sse,spd,scd,
9 + rpl,ddsddt,drplde,drpldt,
10 + stran,dstran,time,dtime,temp,dtemp,predef,dpred,cmname,
11 + ndi,nshr,ntens,nstatv,props,nprops,coords,drot,pnewdt,
12 + celent,dfgrd0,dfgrd1,noel,npt,layer,kspt,kstep,kinc)
14 implicit real*8(a-h,o-z)
16 dimension stress(ntens),statev(nstatv),
17 + ddsdde(ntens,ntens),ddsddt(ntens),drplde(ntens),
18 + stran(ntens),dstran(ntens),time(2),predef(1),dpred(1),
19 + props(nprops),coords(3),drot(3,3),dfgrd0(3,3),dfgrd1(3,3)
25 real*8 eye(3,3),eps(3,3),sigma(3,3)
26 real*8 young,nu,mu,kappa,lambda,treps
29 real*8 zero,one,two,half,three,third
30 parameter(zero=0.d0,one=1.d0,two=2.d0,half=0.5d0,three=3.d0,
40 mu = young/(two*(one+nu))
41 kappa = young/(three*(one-two*nu))
42 lambda = kappa - two*third*mu
44 eps = half*(dfgrd1 + transpose(dfgrd1)) - eye
45 treps = eps(1,1) + eps(2,2) + eps(3,3)
46 sigma = two*mu*eps + lambda*treps*eye
48 stress(1) = sigma(1,1)
49 stress(2) = sigma(2,2)
50 stress(3) = sigma(3,3)
51 stress(4) = sigma(1,2)
53 stress(5) = sigma(1,3)
54 stress(6) = sigma(2,3)
60 ddsdde(i,i) = lambda + two*mu
64 if(i.ne.j) ddsdde(i,j) = lambda
subroutine umat(stress, statev, ddsdde, sse, spd, scd, rpl, ddsddt, drplde, drpldt, stran, dstran, time, dtime, temp, dtemp, predef, dpred, cmname, ndi, nshr, ntens, nstatv, props, nprops, coords, drot, pnewdt, celent, dfgrd0, dfgrd1, noel, npt, layer, kspt, kstep, kinc)