C MTCMRS    SOURCE    CHAT      05/01/13    01:53:51     5004
CCC
C **********************************************************************
CCC
      SUBROUTINE MTC_MRSMAC (KMAT,NDIMK,SIG,NDIMS,VINTCON,VINTCAP,LCON,
     .                  lcap,xmat,nescri,ues,nnumer,deltax,kerre)
      IMPLICIT INTEGER(I-N)
      integer ndims,kerre,nescri,nnumer,ues,ndimk,
     .          i,ifl,ndimx,kmod,ndimv
      real*8    sig(ndims),vintcon,vintcap,Kmat(*),xmat(*),deltax,x(7),
     .          lcon,lcap,lam
      real*8    exm,qaa,pcc,eww,xk1,xk2,etb,exv,xep,paa,cco,exl,xnn,aaa,
     .          bbb,pc0,exr,cca,phi,alp,voi1,voi2,voi3,voi4,voi5,cpr,
     .          cpm,cfr
      common /MRScone/ exm,qaa,pcc,eww,xk1,xk2,etb,exv,xep,paa,cco,
     .                 exl,xnn,aaa,bbb
      common /MRScapp/ pc0,exr,cca,phi,alp,voi1,voi2,voi3,voi4,voi5,
     .                 cpr,cpm,cfr
      do i=1,7
          x(i)=0.D0
        enddo
      kerre=0
      call CaracmateMAC(xmat)
      if ((lcon.le.0.D0).and.(lcap.le.0.D0)) then
        if (nescri.eq.1) write(ues,*)' Modelo MAC: paso elastico'
        ifl=1
        call MatHok(Kmat,ndimk,ndims,ifl)
        goto 100
      endif
      if ((lcon.gt.0.D0).and.(lcap.gt.0.D0)) then
         write(*,*)' Modelo MAC: no puede corner'
         return
      endif
      do i=1,ndims
         x(i)=sig(i)
      enddo
      if ((lcon.gt.0.D0).and.(lcap.lt.0.D0)) then
        kmod=21
        lam=lcon
      else
        kmod=22
        lam=lcap
      endif
      if ((exr.lt.0.D0).and.(exv.lt.0.D0)) then
        if (nescri.eq.1) write(ues,*)' Modelo MAC: plast perfecta'
        write(*,*)' Formulacion no disponible'
        kerre=1
c         ndimv=0
c         call MTC0(Kmat,ndimk,sig,ndims,ndimv,lam,
c     .             kmod,nescri,ues,nnumer,deltax,kerre)
      else if ((exr.lt.0.D0).and.(exv.gt.0.D0)) then
        if (nescri.eq.1) write(ues,*)' Modelo MAC: cone hardening'
        write(*,*)' Formulacion no disponible'
        kerre=1
      else if ((exr.gt.0.D0).and.(exv.lt.0.D0)) then
        if (nescri.eq.1) write(ues,*)' Modelo MAC: cap hardening '
        write(*,*)' Formulacion no disponible'
        kerre=1
      else if ((exr.gt.0.D0).and.(exv.gt.0.D0)) then
        if (nescri.eq.1) write(ues,*)' Modelo MAC: cone-cap harde'
        x(ndims+1)=vintcon
        x(ndims+2)=vintcap
        ndimx=ndims+2
        call MTC21(Kmat,ndimk,x,ndimx,lam,ndims,
     .             kmod,nescri,ues,nnumer,deltax,kerre)
      endif
100   continue
      return
      end



