C RISPL3    SOURCE    CHAT      05/01/13    03:00:58     5004
C RISPL3.eso     SOURCE     bald     MAR 28/03/95     00:00:00
        SUBROUTINE RISPL3(RI0,SIG0,DCON,DU1,DU2,NSTRS,SGMT,DU1p,DU2p)
C
C-------------------------------------------------------------
C
C   ENTREES
C
C      RI0(NSTRS,NSTRS)   = MATRICE DE RIGIDITE ELASTIQUE DU JOINT
C      SIG0(NSTRS)        = CONTRAINTES INITIALES (AU PAS PRECEDENT)
C      DCON(NSTRS)        = VECTEUR DES INCREMENTS DE CONTRAINTE
C      DU1                = INCREMENT DE LA U1
C      DU2                = INCREMENT DE LA U2
C      NSRTS              = NOMBRE DE COMPOSANTES DE CONTRAINTES
C      SGMT               = CONTRAINTE LIMITE NORMALE
C
C   SORTIES
C
C      DU1p               = INCREMENT PLASTIQUE DE LA DU1
C      DU2p               = INCREMENT PLASTIQUE DE LA DU2
C
C-------------------------------------------------------------
C
c
      IMPLICIT INTEGER(I-N)
       IMPLICIT REAL*8(A-H,O-Z)
       DIMENSION RI0(NSTRS,NSTRS), DCON(NSTRS), SIG0(NSTRS)
c
       TOL1=ABS(1.D-3*SGMT)
c
       DETERM=0.D0
       DETERM=DETERM+RI0(1,1)*RI0(2,2)*RI0(3,3)
       DETERM=DETERM+RI0(1,2)*RI0(2,3)*RI0(3,1)
       DETERM=DETERM+RI0(1,3)*RI0(2,1)*RI0(3,2)
       DETERM=DETERM-RI0(1,3)*RI0(2,2)*RI0(3,1)
       DETERM=DETERM-RI0(1,2)*RI0(2,1)*RI0(3,3)
       DETERM=DETERM-RI0(1,1)*RI0(3,2)*RI0(2,3)
c
       IF(ABS(SIG0(3)).LT.TOL1)THEN
c
c    le detérminant est nul
c
       DU1e=0.D0
       DU2e=0.D0
c
       ELSE
c
       DETER1=0.D0
       DETER1=DETER1+DCON(1)*RI0(2,2)*RI0(3,3)
       DETER1=DETER1+RI0(1,2)*RI0(2,3)*DCON(3)
       DETER1=DETER1+RI0(1,3)*DCON(2)*RI0(3,2)
       DETER1=DETER1-RI0(1,3)*RI0(2,2)*DCON(3)
       DETER1=DETER1-RI0(1,2)*DCON(2)*RI0(3,3)
       DETER1=DETER1-DCON(1)*RI0(3,2)*RI0(2,3)
c
       DETER2=0.D0
       DETER2=DETER2+RI0(1,1)*DCON(2)*RI0(3,3)
       DETER2=DETER2+DCON(1)*RI0(2,3)*RI0(3,1)
       DETER2=DETER2+RI0(1,3)*RI0(2,1)*DCON(3)
       DETER2=DETER2-RI0(1,3)*DCON(2)*RI0(3,1)
       DETER2=DETER2-DCON(1)*RI0(2,1)*RI0(3,3)
       DETER2=DETER2-RI0(1,1)*DCON(3)*RI0(2,3)
c
       DU1e=DETER1/DETERM
       DU2e=DETER2/DETERM
c
       END IF
c
       DU1p=DU1-DU1e
       DU2p=DU2-DU2e
c
       RETURN
c
       END



