C TRACTI    SOURCE    OF166741  25/11/04    21:16:09     12349          
      SUBROUTINE TRACTI (RESU,EPST,SIG,EPS,NCOURB,ICLE,IBI)
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)
      DIMENSION SIG(*),EPS(*)
C
C  ICLE = 1  ON CALCULE LA PENTE A LA COURBE DE TRACTION
C  ICLE = 2  ON CALCULE LA CONTRAINTE
C  IBI NON NUL  : ERREUR : ON DEPASSE LE BOUT DE LA COURBE
C
C                ON INTERPOLE LINEAIREMENT
C
      IBI=0
*
*   Mars 2018
*   On autorise mmaintenant a depasser l'extremite de la courbe de traction
*   mais on teste que la contrainte est positive
*
*    TEST POUR VOIR SI ON DEPASSE EN EPSILON
*
**      IF(EPST.GT.1.1D0*EPS(NCOURB)) THEN
**        IBI=1
**        RETURN
**      ENDIF
*
      DO 11 I=2,NCOURB
        IP=I
        IF (EPS(I).GT.EPST) GO TO 13
  11  CONTINUE
  13  CONTINUE
      IP1=IP-1
      PENTE=(SIG(IP)-SIG(IP1))/(EPS(IP)-EPS(IP1))
      IF (ICLE.EQ.1) THEN
        RESU=PENTE
      ELSE IF (ICLE.EQ.2) THEN
        RESU=SIG(IP1)+PENTE*(EPST-EPS(IP1))
        if (resu.lt.0.d0) IBI=1
      ELSE
        write(6,*) 'TRACTI : ICLE ??'
        call erreur(5)
      ENDIF

      RETURN
      END

 
