C EVMANU SOURCE PASCAL 09/02/16 21:15:10 6282 SUBROUTINE EVMANU(ICOUL) C======================================================================= C OPTION MANU DE L'OPERATEUR EVOL C C POUR RENTRER A LA MAIN UN OBJET DE TYPE EVOLUTION C (IL N Y AURA QU UNE SEULE EVOLUTION) C SYNTAXE : C C EV1= EVOL (COUL) MANU / ('CHAINE CARAC') / PRGX C ---- ---- C / ('CHAINE CARAC') / PRGY ; C C C COUL : COULEUR DE LA COURBE (FACULTATIVE) C MOTXI : OBJET DE TYPE MOT C PRGX : LISTE DE REELS (ABSCISSES) C MOTYI : OBJET DE TYPE MOT C PRGY : LISTE DE REELS (ORDONNEES) C C CREATION : 01/10/86 C PROGRAMMEUR : GUILBAUD C====================================================================== IMPLICIT INTEGER(I-N) -INC CCOPTIO -INC SMEVOLL -INC SMLREEL -INC SMLMOTS -INC SMLENTI C CHARACTER*72 TI CHARACTER*12 MOTITR CHARACTER*8 ITBLAN CHARACTER*4 MTYP,LMOT(1) DIMENSION MOT(2) C LMOT(1)='TYPE' C SEGINI KEVOLL NOMEVX=' ' NOMEVY=' ' TYPX='LISTREEL' TYPY='LISTREEL' C C LECTURE OPTIONNELLE DU TYPE DE LA COURBE (NUMEVY) : IPLAC=0 IMOT=0 CALL LIRMOT(LMOT,1,IPLAC,0) IF (IPLAC.EQ.1) THEN CALL LIRCHA(MTYP,1,IMOT) IF (IMOT.EQ.0) RETURN ELSE MTYP='REEL' ENDIF C DO 20 J=1,2 C *** TITRE SOUS FORME DE MOT MOTITR=' ' CALL LIRCHA(MOTITR,0,IRETOU) IF(IRETOU.EQ.0) GOTO 12 IF(J.EQ.1) NOMEVX=MOTITR IF(J.EQ.2) NOMEVY=MOTITR C *** LECTURE DE LA LISTREEL 12 CONTINUE CALL LIROBJ('LISTREEL',MOT(J),0,IRET) IF(IRET.EQ.1) GOTO 20 IF( J.EQ.1) TYPX='LISTMOTS' IF( J.EQ.2) TYPY='LISTMOTS' CALL LIROBJ('LISTMOTS',MOT(J),0,IRET) IF(IRET.EQ.1) GOTO 20 IF( J.EQ.1) TYPX='LISTENTI' IF( J.EQ.2) TYPY='LISTENTI' CALL LIROBJ('LISTENTI',MOT(J),0,IRET) IF(IRET.EQ.0) THEN MOTERR(1:8) = 'LISTREEL' MOTERR(9:16) = 'LISTMOTS' MOTERR(17:24) = 'LISTENTI' CALL ERREUR(471) GO TO 1000 ENDIF 20 CONTINUE C MLREEL=MOT(1) IF(TYPX.EQ.'LISTREEL') THEN SEGACT MLREEL LX = PROG(/1) SEGDES MLREEL ELSEIF(TYPX.EQ.'LISTMOTS') THEN MLMOTS=MOT(1) SEGACT MLMOTS LX= MOTS(/2) SEGDES MLMOTS ELSEIF(TYPX.EQ.'LISTENTI') THEN MLENTI=MOT(1) SEGACT MLENTI LY=LECT(/1) SEGDES MLENTI ENDIF IF(TYPY.EQ.'LISTREEL') THEN MLREEL=MOT(2) SEGACT MLREEL LY = PROG(/1) SEGDES MLREEL ELSEIF(TYPY.EQ.'LISTMOTS') THEN MLMOTS=MOT(2) SEGACT MLMOTS LY= MOTS(/2) SEGDES MLMOTS ELSEIF(TYPY.EQ.'LISTENTI') THEN MLENTI=MOT(2) SEGACT MLENTI LX=LECT(/1) SEGDES MLENTI ENDIF IF(LX.NE.LY) THEN CALL ERREUR(263) C LES 2 PROGRESSIONS DOIVENT ETRE DE MEME LONGUEUR GOTO 1000 ENDIF C N=1 SEGINI MEVOLL IPVO=MEVOLL TI(1:72)=TITREE IEVTEX=TI ITYEVO='REEL' KEVTEX=TI IEVOLL(1)=KEVOLL IPROGX=MOT(1) IPROGY=MOT(2) NUMEVX=ICOUL NUMEVY=MTYP SEGDES KEVOLL,MEVOLL CALL ECROBJ('EVOLUTIO',IPVO) RETURN 1000 CONTINUE SEGSUP KEVOLL RETURN END