C COTRAC SOURCE PV 11/03/07 21:16:01 6885 SUBROUTINE COTRAC(WRK0,WRK2,NCOURB,KERRE) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC SMEVOLL -INC SMLREEL SEGMENT/WRK0/(XMAT(NCOMAT)*D) SEGMENT/WRK2/(TRAC(LTRAC)*D) DATA NCOMAX/130/ KERRE=0 MEVOLL=nint(XMAT(5)) IF(MEVOLL.EQ.0) THEN KERRE=37 RETURN ENDIF SEGACT MEVOLL KEVOLL=IEVOLL(1) SEGACT KEVOLL MLREEL=IPROGX MLREE1=IPROGY SEGDES KEVOLL SEGACT MLREEL,MLREE1 NBPOIX=PROG(/1) NBPOIY=MLREE1.PROG(/1) IF(NBPOIX.GT.NCOMAX+1) KERRE=31 IF(NBPOIX.LT.3) KERRE=32 IF(KERRE.EQ.0) GO TO 693 692 CONTINUE C C ERREUR C SEGDES MLREEL,MLREE1 SEGDES MEVOLL GO TO 777 693 CONTINUE C C TESTS SUR LES POINTS DE LA COURBE ( A COMPLETER ) C YUNG=XMAT(1) IF(YUNG.EQ.0.D0) THEN KERRE=34 GO TO 692 ENDIF PSIG=MLREE1.PROG(1) PEPS=PROG(1) IF(PSIG.NE.0.D0.OR.PEPS.NE.0.D0) THEN KERRE=35 GO TO 692 ENDIF C C VERIF DE LA LIMITE ELASTIQUE NON NULLE C PSIG =MLREE1.PROG(2) IF(PSIG.EQ.0.D0) THEN KERRE=30 GO TO 692 ENDIF PEPS=PROG(2) IF(PEPS.EQ.0.D0) THEN KERRE=35 GO TO 692 ENDIF PENTE=PSIG/PEPS RA=ABS(PENTE-YUNG)/YUNG IF(RA.GT.1.D-2) THEN KERRE=36 GO TO 692 ENDIF C C VERIF DE LA PENTE C DO 100 I=3,NBPOIX I1=I-1 DEPS=PROG(I)-PROG(I1) IF(DEPS.EQ.0.D0) THEN KERRE=33 GO TO 692 ENDIF PENTE=(MLREE1.PROG(I)-MLREE1.PROG(I1))/DEPS IF(PENTE.GE.YUNG) THEN KERRE=33 GO TO 692 ENDIF 100 CONTINUE NCOURB=1 TRAC(1)=MLREE1.PROG(2) TRAC(2)=0.D0 DO 695 I=3,NBPOIX PEPS=PROG(I) PSIG=MLREE1.PROG(I) NCOURB=NCOURB+1 TRAC(2*NCOURB-1)=PSIG TRAC(2*NCOURB)=PEPS-PSIG/YUNG 695 CONTINUE C SEGDES MLREEL,MLREE1 SEGDES MEVOLL RETURN C 777 CONTINUE RETURN END