C MTC_J2    SOURCE    CHAT      05/01/13    01:53:41     5004
CCC
C **********************************************************************
CCC
      SUBROUTINE MTC_J2 (KMAT,NDIMK,SIG,NDIMS,VINT,LAM,XMAT,
     .                   nescri,ues,kerre)
      IMPLICIT INTEGER(I-N)
      integer ndims,kerre,nescri,ues,ndimk,ifl,ndimx,ndimv
      real*8    sig(ndims),vint,Kmat(*),xmat(*),x(7),void,lam
      real*8            sigy0,kiso,siginf,velo
      common /j2j2data/ sigy0,kiso,siginf,velo
      kerre=0
      do i=1,7
        x(i)=0.D0
      enddo
      call carac_mate_j2(xmat)
      if (lam.le.0.D0) then
         if (nescri.eq.1) write(ues,*)' Paso elastico'
         ifl=1
         call MatHok(Kmat,ndimk,ndims,ifl)
         return
      endif
      if (nescri.eq.1) write(ues,*)' Paso plastico'
      if ((kiso.eq.0.D0).and.(velo.eq.0.D0)) then
         if (nescri.eq.1) write(ues,*)' Plasticidad sin endurecimiento'
         ndimv=0
         call MTC0J2(Kmat,ndimk,sig,ndims,ndimv,lam,
     .               nescri,ues,kerre)
         return
      else
         if (nescri.eq.1) write(ues,*)' Plasticidad con endurecimiento'
         ndimv=1
         ndimx=ndims+1
         do i=1,ndims
              x(i)=sig(i)
         enddo
         x(ndimx)=vint
         void=0.D0
         call MTC1J2(Kmat,ndimk,x,ndimx,ndimv,lam,ndims,
     .               nescri,ues,kerre)
      endif
      return
      end


