evmanu
C EVMANU SOURCE SP204843 24/09/27 21:15:08 12017 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 ('TYPE' MTYP) ('LEGE' MTIT1) C ('CHAINE CARAC') PRGX ('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, GUILBAUD C MODIFS : 2015-05-07 BP, ajout du titre de la LEGEnde C C====================================================================== IMPLICIT INTEGER(I-N) -INC PPARAM -INC CCOPTIO -INC SMEVOLL -INC SMLREEL -INC SMLMOTS -INC SMLENTI C PARAMETER (NBOPT=4,NBSTY=7,NBMAR=13,NBTAI=5) C CHARACTER*72 TI,MTIT1 CHARACTER*12 MOTITR CHARACTER*8 ITBLAN,TYPi CHARACTER*4 MTYP,LMOT(1) CHARACTER*4 MOOPT1(NBOPT),MOSTYL(NBSTY),MOMARQ(NBMAR), & MOTAIL(NBTAI) DIMENSION MOT(2) C DATA LMOT/'TYPE'/ DATA MOOPT1/'LEGE','STYL','MARQ','TAIL'/ DATA MOSTYL/'LIGN','TIRR','TIRC','TIRL','TIRM','POIN','NOLI'/ DATA MOMARQ/'CROI','PLUS','MOIN','BARR','ETOI','CARR', & 'LOSA','ROND','TRID','TRIU','TRIL','TRIR', & 'NOMA'/ DATA MOTAIL/'XS','S','M','L','XL'/ C C CREATION DE LA SOUS-EVOLUTION SEGINI KEVOLL NOMEVX=' ' NOMEVY=' ' TYPX='LISTREEL' TYPY='LISTREEL' C C LECTURE OPTIONNELLE DU TYPE DE LA COURBE C (NUMEVY = MTYP = {REEL, MODU, PHAS, PREE, PIMA ...} ) : IPLAC=0 IMOT=0 IF (IPLAC.EQ.1) THEN IF (IMOT.EQ.0) RETURN ENDIF C LECTURE OPTIONNELLE DU TITRE DE LA SOUS EVOLUTION DE LA COURBE (LEGE) C OU DES SPECIFICATIONS DE TRACE DES COURBES : MTIT1=' ' ITIT1=0 LSTYL1 = 1 MMARQ1 = 0 KTAIL1 = 3 1 CONTINUE IOPT1=0 IF (IOPT1.EQ.1) THEN IF(IERR.NE.0) RETURN ITIT1=1 GOTO 1 ELSEIF (IOPT1.EQ.2) THEN IF (IRETOU.EQ.1) THEN ISTYL1 = MAX(ISTYL1,0) ISTYL1 = MOD(ISTYL1,NBSTY) IF (ISTYL1.EQ.0) ISTYL1 = NBSTY LSTYL1 = ISTYL1 ELSE IF(IERR.NE.0) RETURN ENDIF GOTO 1 ELSEIF (IOPT1.EQ.3) THEN IF (IRETOU.EQ.1) THEN IMARQ1 = MAX(IMARQ1,0) IMARQ1 = MOD(IMARQ1,NBMAR) IF (IMARQ1.EQ.0) IMARQ1 = NBMAR MMARQ1 = IMARQ1 ELSE IF(IERR.NE.0) RETURN ENDIF GOTO 1 ELSEIF (IOPT1.EQ.4) THEN IF (IRETOU.EQ.1) THEN ITAIL1 = MAX(ITAIL1,1) ITAIL1 = MOD(ITAIL1-1,NBTAI)+1 KTAIL1 = ITAIL1 ELSE IF(IERR.NE.0) RETURN ENDIF IF (KTAIL1.EQ.0) KTAIL1 = 3 GOTO 1 ENDIF C write(6,*) 'evmanu:MTIT1,LSTYL1,MMARQ1,KTAIL1', C & MTIT1,LSTYL1,MMARQ1,KTAIL1 C C LECTURE DES TITRES ET LISTREELS DE L'ABSCISSE + ORDONNEE DO 20 J=1,2 C *** TITRE ABSCISSES / ORDONNEES SOUS FORME DE MOT MOTITR=' ' IF(IRETOU.EQ.0) GOTO 12 IF(J.EQ.1) NOMEVX=MOTITR IF(J.EQ.2) NOMEVY=MOTITR C *** LECTURE DE LA LISTREEL (ou autre...) 12 CONTINUE IF (IRETOU .EQ. 0 .OR. (.NOT. ( Typi .EQ. 'LISTREEL' & .OR. Typi .EQ. 'LISTMOTS' & .OR. Typi .EQ. 'LISTENTI'))) THEN MOTERR(1 :8 ) = 'LISTREEL' MOTERR(9 :16) = 'LISTMOTS' MOTERR(17:24) = 'LISTENTI' GOTO 1000 ENDIF IF( J.EQ.1) TYPX=Typi IF( J.EQ.2) TYPY=Typi 20 CONTINUE C IF (TYPX.EQ.'LISTREEL') THEN MLREEL=MOT(1) SEGACT MLREEL ELSEIF(TYPX.EQ.'LISTMOTS') THEN MLMOTS=MOT(1) SEGACT MLMOTS ELSEIF(TYPX.EQ.'LISTENTI') THEN MLENTI=MOT(1) SEGACT MLENTI LX=LECT(/1) ENDIF IF (TYPY.EQ.'LISTREEL') THEN MLREEL=MOT(2) SEGACT MLREEL IF (IPLAC .EQ. 0) MTYP ='REEL' ELSEIF(TYPY.EQ.'LISTMOTS') THEN MLMOTS=MOT(2) SEGACT MLMOTS IF (IPLAC .EQ. 0) MTYP ='MOTS' ELSEIF(TYPY.EQ.'LISTENTI') THEN MLENTI=MOT(2) SEGACT MLENTI LY=LECT(/1) IF (IPLAC .EQ. 0) MTYP ='ENTI' ENDIF IF(LX.NE.LY) THEN C LES 2 PROGRESSIONS DOIVENT ETRE DE MEME LONGUEUR GOTO 1000 ENDIF C CREATION DE L'EVOLUTION AVEC 1 SEULE SOUS EVOLUTION N=1 SEGINI MEVOLL IPVO=MEVOLL TI(1:72)=TITREE IEVTEX=TI ITYEVO='REEL' c KEVTEX=TI IF(ITIT1.EQ.0) MTIT1=NOMEVY KEVTEX=MTIT1 LSTYL = LSTYL1 MMARQ = MMARQ1 KTAIL = KTAIL1 IEVOLL(1)=KEVOLL IPROGX=MOT(1) IPROGY=MOT(2) NUMEVX=ICOUL NUMEVY=MTYP RETURN 1000 CONTINUE SEGSUP KEVOLL RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales