	SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
     1 RPL,DDSDDT,DRPLDE,DRPLDT,
     2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,
     3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,
     4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)
C
      INCLUDE 'ABA_PARAM.INC'
C
      CHARACTER*80 CMNAME
      DIMENSION STRESS(NTENS),STATEV(NSTATV),
     1 DDSDDE(NTENS,NTENS),
     2 DDSDDT(NTENS),DRPLDE(NTENS),
     3 STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED(1),
     4 PROPS(NPROPS),COORDS(3),DROT(3,3),DFGRD0(3,3),DFGRD1(3,3)
      DIMENSION DSTRES(6),D(3,3)
	DIMENSION PROPSS(5),PS(3)
C
C  EVALUATE NEW STRESS TENSOR
C
      FEK=PROPS(1)
	FEN=PROPS(2)
	FEV=PROPS(3)
	FEW=PROPS(4)
	SIG30=STATEV(1)
	GG=STATEV(2)
	DD=STATEV(3)
	GAMA=STATEV(4)
	
	ELG=FEK*(SIG30/100)**FEN*100
	ELG=ELG*GG
	ELM=2*ELG*FEV/(1-2*FEV)
	ELGT=2*ELG/FEW*DD
	ELMT=2*ELM/FEW*DD
	ELG1=ELG/1.01
	ELM1=ELM/1.01
	ELGT1=ELGT/1.01
	ELMT1=ELMT/1.01
	EFEI=ELGT/101/ELG
	PROPSS(1)=ELM1
	PROPSS(2)=ELG1
	PROPSS(3)=ELMT1
	PROPSS(4)=ELGT1
	PROPSS(5)=EFEI

	EV = 0.
      DEV = 0.
      DO K1=1,NDI
         EV = EV + STRAN(K1)
         DEV = DEV + DSTRAN(K1)
      END DO
C

	TERM1 = .5*DTIME + PROPSS(5)
      TERM1I = 1./TERM1
      TERM2 = (.5*DTIME*PROPSS(1)+PROPSS(3))*TERM1I*DEV
      TERM3 = (DTIME*PROPSS(2)+2.*PROPSS(4))*TERM1I
C
      DO K1=1,NDI
         DSTRES(K1) = TERM2+TERM3*DSTRAN(K1)
     1     +DTIME*TERM1I*(PROPSS(1)*EV
     2     +2.*PROPSS(2)*STRAN(K1)-STRESS(K1))
         STRESS(K1) = STRESS(K1) + DSTRES(K1)
      END DO
C
      TERM2 = (.5*DTIME*PROPSS(2) + PROPSS(4))*TERM1I
      I1 = NDI
      DO K1=1,NSHR
         I1 = I1+1
         DSTRES(I1) = TERM2*DSTRAN(I1)+
     1     DTIME*TERM1I*(PROPSS(2)*STRAN(I1)-STRESS(I1))
         STRESS(I1) = STRESS(I1)+DSTRES(I1)
      END DO
C
C  CREATE NEW JACOBIAN
C
      TERM2 = (DTIME*(.5*PROPSS(1)+PROPSS(2))+PROPSS(3)+
     1  2.*PROPSS(4))*TERM1I
      TERM3 = (.5*DTIME*PROPSS(1)+PROPSS(3))*TERM1I
      DO K1=1,NTENS
         DO K2=1,NTENS
            DDSDDE(K2,K1) = 0.
         END DO
      END DO
C
      DO K1=1,NDI
         DDSDDE(K1,K1) = TERM2
      END DO
C
      DO K1=2,NDI
         N2=K1-1
         DO K2=1,N2
            DDSDDE(K2,K1) = TERM3
            DDSDDE(K1,K2) = TERM3
         END DO
      END DO
      TERM2 = (.5*DTIME*PROPSS(2)+PROPSS(4))*TERM1I
      I1 = NDI
      DO K1=1,NSHR
         I1 = I1+1
         DDSDDE(I1,I1) = TERM2
      END DO
C
C  TOTAL CHANGE IN SPECIFIC ENERGY
C
      TDE = 0.
      DO K1=1,NTENS
         TDE = TDE + (STRESS(K1)-.5*DSTRES(K1))*DSTRAN(K1)
      END DO
C
C  CHANGE IN SPECIFIC ELASTIC STRAIN ENERGY
C
      TERM1 = PROPSS(1) + 2.*PROPSS(2)
      DO  K1=1,NDI
         D(K1,K1) = TERM1
      END DO
      DO K1=2,NDI
         N2=K1-1
         DO K2=1,N2
            D(K1,K2) = PROPSS(1)
            D(K2,K1) = PROPSS(1)
         END DO
      END DO
      DEE = 0.
      DO K1=1,NDI
         TERM1 = 0.
         TERM2 = 0.
         DO K2=1,NDI
            TERM1 = TERM1 + D(K1,K2)*STRAN(K2)
            TERM2 = TERM2 + D(K1,K2)*DSTRAN(K2)
         END DO
         DEE = DEE + (TERM1+.5*TERM2)*DSTRAN(K1)
      END DO
      I1 = NDI
      DO K1=1,NSHR
         I1 = I1+1
         DEE = DEE + PROPSS(2)*(STRAN(I1)+.5*DSTRAN(I1))*DSTRAN(I1)
      END DO
      SSE = SSE + DEE
      SCD = SCD+TDE-DEE
	CALL SPRINC(STRAN,PS,2,3,3)
	GAMAX=((PS(1)-PS(2))**2+(PS(2)-PS(3))**2+(PS(3)-PS(1))**2)*2/3
	GAMAX=SQRT(GAMAX)
	IF(GAMA.LT.GAMAX)STATEV(4)=GAMAX
      RETURN
      END