SUBROUTINE TVGMCR C C C This subroutine is to allow the use of indirect command C files and switches with TVG C C C form C TVG @filename C or C TVG filename[/TE:TTn/-FI/MG:N.] C C where C /-FI surpresses the filename identifier C at bottom right of figure C C /TE:n means plot on terminal n C /MG:n.nn is magnifaction factor for HCMAG C COMMON /TEXTS/ DA, DO, DS, A(96), O(96), X(96), Y(96), 1 S(96), ICHRS(96), DC, C(96), QQ ,TEXT(130,96) LOGICAL*1 DC, C, TEXT, QQ COMMON /PLTR/ ILun, IDev, IsTerm, IMode, IXMax, IYMax, 1 Cnvrsn, CMag, CnvMag, IX0, IY0, KSetNo, IFancy, IBfDv3, 1 CSize, DeltaH, DeltaV, Upsiln, CosUp, SinUp, WidAdj LOGICAL*1 FIGU, IER, MULT, NEG, INDR BYTE LINE(80),IN COMMON /FIG/ FIGU, INDR,AMAG COMMON /FILE/ NFILE COMMON /INPUT/ NCHRS, NAT, NTO, IN(130) DATA MULT/.FALSE./ C CALL DEFILE(-1,,,,,,'TVG') DO 1 I=1,130 1 IN(I)=' ' C C - GET COMMAND LINE C CALL GETMCR(LINE, IQ) IF ((IQ.EQ.3).OR.(IQ.GT.80))GOTO 900 J=4 10 CALL ITWAS(LINE(J),' @',2,ITIS) IF (ITIS.EQ.3)GOTO 100 J=J+1 IF (ITIS.EQ.1)GOTO 10 C C - INDIRECT COMMAND FILE C CALL DEFILE(-1,,,,,,'CMD') CALL SRST(LINE,J,IQ,'/',IER) IF (IER)GOTO 800 CALL ASSIGN(4,LINE(J),IQ+1-J) CALL DEFILE(-1,,,,,,'TVG') 15 READ(4,20,END=999)IQ,LINE 20 FORMAT(Q,80A1) DO 16 J=1,96 16 ICHRS(J)=0 NFILE=0 J=1 MULT=.TRUE. GOTO 100 C C - INTERPRET STRING C 100 FIG=.TRUE. AMAG=0 INAM=.TRUE. INDR=.TRUE. ITER=0 K=J CALL SRST(LINE,K,IQ,'/',IER) IF (.NOT.IER)K=IQ+1 IF (J.EQ.(IQ+1))INAM=.FALSE. IN(1)='U' IN(2)=' ' NAT=2 KK=3 DO 110 L=J,K-1 IN(KK)=LINE(L) 110 KK=KK+1 NCHRS=K-J+2 IF (.NOT.IER)GOTO 200 J=K+1 120 CALL ITWAS(LINE(J),'TF-M',4,ITIS) IF (ITIS.EQ.5)GOTO 800 GOTO (130,140,150,155)ITIS C C - WHAT TO CHANGE TERMINAL NUMBER C 130 CALL SRST(LINE,J,IQ,':',IER) IF (.NOT.IER)GOTO 800 K=J+1 CALL SRST(LINE,J,IQ,'/ ',IER) J=J-1 IF (((IQ-K).GT.2).AND.(.NOT.IER))GOTO 800 IF (.NOT.IER)J=IQ DO 135 I=K,J IF (LINE(I).EQ.' ')GOTO 135 ITER=ITER*8+LINE(I)-"60 135 CONTINUE GOTO 160 C C - WHATS FILE NAME C 140 IF (NEG)FIGU=.FALSE. GOTO 160 C C - WANT'S TO NEGATE A SWITCH C 150 NEG=.TRUE. J=J+1 GOTO 120 C C C - WANT TO MAG PLOT C 155 CALL SRST(LINE,J,IQ,':',IER) IF (.NOT.IER)GOTO 800 J=J+1 CALL NUMBER(LINE,IQ,J,3,AMAG) IF (J.GT.IQ)J=IQ C C C - CHECK FOR NEXT SWITCH C 160 CALL SRST(LINE,J,IQ,'/',IER) J=J+1 IF (IER)GOTO 120 C C - DO YOUR THING C 200 IF (ITER.EQ.0) CALL PSEUDO(1) IF (ITER.NE.0) CALL PSEUDO(1,ITER) IF (ILUN.EQ.0)GOTO 230 CALL HCUSE CALL HCMAG CALL HOME IF (INAM)GOTO 210 IF (ITER.NE.0)STOP RETURN 210 CALL TVGSAV( .FALSE. ) CALL TVGPLT( .TRUE. ) CALL HDCOPY CALL CALPLT(0.,0.,999) IF ((IDEV.EQ.3).AND.MULT)PAUSE 'CONTINUE AFTER CHANGING PAPER' 230 IF (MULT)GOTO 15 GOTO 999 C C C 800 TYPE 810,(LINE(I),I=1,IQ) 810 FORMAT(' ***** SYNTAX ERROR IN COMMAND LINE *****'/ 11X,80A1) GO TO 999 C C 900 CALL PSEUDO(1) INDR=.FALSE. RETURN C C 999 STOP END