C DPLAS3D   SOURCE    AM        12/02/27    23:39:38     7289
      SUBROUTINE dplas3D(x1,x2,P2,pi2,ag,fc,fb,
     .                  parahot3,idimpara3,dplas,lcp)

c     This subroutine calculates the INCREMENT OF PLASTIC STRAIN corresponding to
c      the plastic multipliers Dlambdat = x1 and Dlambdac = x2

      IMPLICIT REAL*8 (A-B,D-H,O-Z)
      implicit integer (I-K,M,N)
      implicit logical (L)
      implicit character*10 (C)

      dimension sigmai(6)
      dimension pi2(6)
      dimension dgc(6),dgt(6),dplas(6),P2(6,6)
      dimension parahot3(idimpara3)

      i0 = 0
      i1 = 1
      i2 = 2
      i3 = 3
      i4 = 4
      i5 = 5
      i6 = 6
      i7 = 7

      r2 = 2.

      Dlambdat = x1
      Dlambdac = x2

c     take the effective stress at the previous converged step
      do iloc=i1,i6
        sigmai(iloc) = parahot3(idimpara3-48+iloc)
      end do

      call dsiggc(sigmai,dgc,ag,P2,pi2,i1,i6,fc,fb,lcp)
      call dsigRank(sigmai,dgt,i3,i6,parahot3,idimpara3,rkappait,lcp)

      do iloc=i1,i6
        dplas(iloc) = Dlambdat*dgt(iloc) + Dlambdac*dgc(iloc)
      end do

      RETURN
      END






