C C User subroutine to define a user material subroutine umat(stress,statev,ddsdde,sse,spd,scd,rpl,ddsddt, 1 drplde,drpldt,stran,dstran,time,dtime,temp, 2 dtemp,predef,dpred,materl,ndi,nshr,ntens,nstatv,props, 3 nprops,coords,drot,pnewdt,celent, 4 dfgrd0,dfgrd1,noel,npt,layer,kspt,kstep,kinc) c include 'aba_param.inc' c dimension stress(ntens),statev(nstatv),ddsdde(ntens,ntens,2), 1 ddsddt(ntens),drplde(ntens),stran(ntens),dstran(ntens), 2 predef(*),dpred(*),props(nprops),coords(3),drot(3,3), 3 time(2),dfgrd0(3,3),dfgrd1(3,3) character*80 materl parameter (zero=0.d0,one=1.d0,two=2.d0,half=0.5d0,third=1.d0/3.d0) c soile = props(1) soilnu = props(2) c gInf=half*soile/(one+soilnu) akInf=third*soile/(one-two*soilnu) gr=(one-props(4))*gInf gi=props(3)*gInf akr= akInf aki= zero c do kshr=1,nshr ddsdde(ndi+kshr,ndi+kshr,1)=gr ddsdde(ndi+kshr,ndi+kshr,2)=gi end do c alambdar=akr-two*third*gr alambdai=aki-two*third*gi do k1=1,ndi do k2=1,k1 ddsdde(k1,k2,1)=alambdar ddsdde(k2,k1,1)=alambdar ddsdde(k1,k2,2)=alambdai ddsdde(k2,k1,2)=alambdai end do ddsdde(k1,k1,1)=ddsdde(k1,k1,1)+two*gr ddsdde(k1,k1,2)=ddsdde(k1,k1,2)+two*gi end do c return end