C CCOTR4    SOURCE    OF166741  25/09/30    21:15:03     12371          

      SUBROUTINE CCOTR4(WRK52,WRK2,NCOURB,WRK53)

      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)

-INC PPARAM
-INC CCOPTIO

-INC SMEVOLL
-INC SMLREEL
-INC DECHE
-INC CCREEL

      SEGMENT/WRK2/(TRAC(LTRAC)*D)

      DATA NCOMAX/130/

      KERRE=0
C
C   TEST SUR LE MODULE DE YOUNG
C
      YUNG = XMAT(1)
      IF (YUNG .LE. 0.D0) THEN
        REAERR(1)=YUNG
        CALL ERREUR(1090)
        KERRE=34
        RETURN
      ENDIF
C
C  TESTS SUR LES POINTS DE LA COURBE   ( A COMPLETER )
C
      MEVOLL = NINT(XMAT(5))
      SEGACT,MEVOLL
      KEVOLL = mevoll.IEVOLL(1)
      SEGACT,KEVOLL
      MLREEL = kevoll.IPROGX
      MLREE1 = kevoll.IPROGY
c//      SEGDES,KEVOLL
c//      SEGDES,MEVOLL

      SEGACT,MLREEL,MLREE1
      NBPOIX = mlreel.PROG(/1)
      NBPOIY = mlree1.PROG(/1)
      IF (NBPOIX.NE.NBPOIY) THEN
        KERRE=31
      ELSE IF (NBPOIX.GT.NCOMAX+1) THEN
        KERRE=31
      ELSE IF (NBPOIX.LT.3) THEN
        KERRE=32
      ENDIF
      IF (KERRE.NE.0) RETURN
C
C  Premier point doit etre a deformation et contrainte nulles
C
      PEPS = mlreel.PROG(1)
      PSIG = mlree1.PROG(1)
      IF (PSIG.NE.0.D0 .OR. PEPS.NE.0.D0) THEN
        REAERR(1)=PEPS
        REAERR(2)=PSIG
        CALL ERREUR(1092)
        KERRE=35
        RETURN
      ENDIF
C
C  Second point doit etre a deformation plastique nulle
C  et a contrainte = LIMITE ELASTIQUE NON NULLE
C  La pente doit etre egale au module de Young
C
      PEPS = mlreel.PROG(2)
      PSIG = MLREE1.PROG(2)
      IF (PEPS.LE.0.D0) THEN
        REAERR(1)=PEPS
        CALL ERREUR(1089)
        KERRE=35
        RETURN
      ENDIF
      IF (PSIG.LE.0.D0) THEN
        REAERR(1)=PSIG
        CALL ERREUR(1091)
        KERRE=30
        RETURN
      ENDIF
      PENTE=PSIG/PEPS
      RA=ABS(PENTE-YUNG)/YUNG
      IF (RA.GT.1.D-3) THEN
        REAERR(1)=PENTE
        REAERR(2)=YUNG
        CALL ERREUR(1088)
        KERRE=36
        RETURN
      ENDIF
C
C  Construction de la courbe Sigma fonction de Eps_plastique 
C*C  (TEST INHIBE) VERIFICATION QUE LA PENTE est inferieure au module de Young
C
      NCOURB = 1
      TRAC(1) = PSIG
      TRAC(2) = 0.D0
      DO I=3,NBPOIX
        PEPS=mlreel.PROG(I)
        PSIG=mlree1.PROG(I)
        I1=I-1
        DEPS=PEPS-mlreel.PROG(I1)
        IF(DEPS.LE.0.D0) THEN
          CALL ERREUR(1087)
          KERRE=33
          RETURN
        ENDIF
C*        PENTE=(PSIG-MLREE1.PROG(I1))/DEPS
C*        IF (PENTE.GT.1.01*YUNG) THEN
C*          REAERR(1)=PENTE
C*          REAERR(2)=YUNG
C*          CALL ERREUR(1088)
C*          KERRE=33
C*          RETURN
C*        ENDIF
        NCOURB=NCOURB+1
        TRAC(2*NCOURB-1)= PSIG
        TRAC(2*NCOURB)  = PEPS-PSIG/YUNG
      ENDDO

c      RETURN
      END
 
 
