C COTRAI SOURCE PV 11/03/07 21:16:05 6885 SUBROUTINE COTRAI(WRK0,WRK2,NUCO,IPOS,NSUP, NPOINT,KERRE) C----------------------------------------------------------------- C C RECUPERAGE DE COURBE (RELATIVEMENT GENERAL) C C NUCO : COMPOSANTE DE XMAT DONNANT L'EVOLUTION C IPOS : DEBUT DE STOCKAGE DE LA COURBE DANS TRAC C NSUP : NOMBRE DE POINT A SUPPRIMER C NPOINT : NOMBRE DE POINT STOCKE C C----------------------------------------------------------------- IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC SMEVOLL -INC SMLREEL SEGMENT WRK0 REAL*8 XMAT(NCOMAT) ENDSEGMENT SEGMENT WRK2 REAL*8 TRAC(LTRAC) ENDSEGMENT * * QUELQUES INITIALISATIONS A 0 * KERRE=0 NCOURB=0 LTRAC=TRAC(/1) CALL ZDANUL(TRAC(IPOS),LTRAC-IPOS+1) * * LOIS * MEVOLL=nint(XMAT(NUCO)) IF(MEVOLL.EQ.0) THEN KERRE=37 RETURN ENDIF SEGACT MEVOLL IF(IEVOLL(/1).NE.1) THEN KERRE=31 SEGDES MEVOLL RETURN ENDIF * * COURBE ( SELON Y ) * KEVOLL=IEVOLL(1) SEGACT KEVOLL MLREEL=IPROGX MLREE1=IPROGY SEGDES KEVOLL SEGACT MLREEL,MLREE1 NBPOIX=PROG(/1) NBPOIY=MLREE1.PROG(/1) IF(NBPOIX.NE.NBPOIY) KERRE=31 IF(2*(NBPOIX-NSUP).GT.LTRAC-IPOS+1) KERRE=31 * * ERREUR * IF(KERRE.NE.0) THEN SEGDES MLREEL,MLREE1 SEGDES MEVOLL RETURN ENDIF * IF(NSUP.GT.0)THEN PSUP=PROG(NSUP+1) ELSE PSUP=0.D0 ENDIF DO 10 I=NSUP+1,NBPOIX PEPS=PROG(I)-PSUP PSIG=MLREE1.PROG(I) NCOURB=NCOURB+1 TRAC(IPOS+2*NCOURB-2)=PEPS TRAC(IPOS+2*NCOURB-1)=PSIG 10 CONTINUE NPOINT=2*NCOURB C SEGDES MLREEL,MLREE1 SEGDES MEVOLL RETURN END