SUBROUTINE TVGPLT( FINAL ) C C This subroutine plots the text as directed. If FINAL = .TRUE., C the plot is in its final form; if .FALSE., identifiers are added C to each of the texts. C COMMON /INPUT/ NCHRS, NAT, NTO, IN(130) COMMON /FIG/ FIGU, INDR, AMAG 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) COMMON /FILED/ NFILE, FILE(40) COMMON /ETC/ NVERT COMMON /PLTR/ ILun,IDev,IsTerm,IMode,IXMax,IYmax, 1 Cnvrsn,CMag,CnvMag,IX0,IY0,KSetNo,IFancy,IBfDv3, 1 CSize,DeltaH,DeltaV,Upsiln,CosUP,SinUP LOGICAL*1 IN, DC, C, TEXT, QQ, FILE, INDR LOGICAL FINAL DIMENSION LTEXT(65,96) LOGICAL*1 TEXTL(4), IGENK(2), JUSTS(4), FIGU EQUIVALENCE ( IGEN, IGENK ),(LTEXT(1,1),TEXT(1,1)) DATA TEXTL/'$','3','_','N'/ DATA JUSTS/'L', 'C', 'C', 'R'/ C C - FINAL PLOT? NAT = NAT + 1 IF( FINAL ) GO TO 100 C C - DRAW FRAME. CALL ERASE CALL HCMAG XL = IXMAX/( 2.*CNVMAG ) IXL = XL CALL AXES( XL-IXL, 0., 0., 0., 1., 1., 2*IXL, 4, 0, 1 'X', -1, -.1 ) YL = IYMAX/( 2.*CNVMAG ) IYL = YL CALL AXES( 0., YL-IYL, 90., 0., 1., 1., 2*IYL, 4, 0, 1 'Y', 1, -.1 ) XMAX = (IXMAX-2)/CNVMAG YMAX = IYMAX/CNVMAG IF( NVERT .GE. 2 ) 1 CALL AXES(XMAX,0.,90.,0.,1.,YMAX,1,NVERT,0,' ',-1,-.05) GO TO 300 C C - PLOT TO A DIFFERENT TERMINAL? 100 CALL NUMBER( IN, NCHRS, NAT, 1, ITERM ) IF( ITERM .EQ. 0 ) GO TO 200 CALL PSEUDO(2,ITERM) CALL HCMAG IF (AMAG.NE.0.)CALL HCMAG(AMAG) CALL HCUSE C C - CONSTRUCT TEXTS. 200 CALL ERASE CALL HCMAG IF (AMAG.NE.0.)CALL HCMAG(AMAG) 300 DO 1000 N=1,96 IF( ICHRS(N) .LE. 0 ) GO TO 1000 IF (A(N).GT.-1.)GOTO 390 X1=X(N) Y1=Y(N) IVEC = O( N ) IVEC = MAX0( 1, MIN0( IVEC, 15 ) ) CALL SVCTR( IVEC ) CALL CALPLT(X1,Y1,3) IVEC = ICHRS( N ) DO 310 J=1,IVEC XX=(LTEXT(2*J-1,N)/2500.)+X1 YY=(LTEXT(2*J,N)/2500.)+Y1 CALL CALPLT(XX,YY,2) 310 CONTINUE CALL SVCTR(1) GOTO 400 390 CALL SIZEUP( S(N), O(N) ) NEWSET = C(N) CALL HCUSE( NEWSET ) IJUST = 4.*A(N) + .5 IJUST = MIN0( 4, MAX0( IJUST, 1 ) ) CALL HCGEN( X(N), Y(N), TEXT(1,N), ICHRS(N), 1 JUSTS( IJUST ) ) 400 IF( FINAL ) GO TO 1000 C C - PUT IN IDENTIFIERS. CALL HCUSE( 3 ) CALL SIZEUP( .075, O(N)-90. ) TEXTL(4) = "40 + N IGENK(2) = "3 CALL HCGEN( X(N), Y(N), TEXTL, 4 ) C 1000 CONTINUE C C - WRITE FILE NAME. IF( NFILE .LE. 0 ) GO TO 1100 IF (.NOT.FIGU)GOTO 1100 CALL SIZEUP(.06,90.) CALL HCUSE(3) CALL HCSIZE(FILE,NFILE,W,U,D) XP = IXMAX/CNVMAG + D YP = 0. CALL HCGEN(XP,YP,0,0) 1100 CALL HOME IF (INDR)RETURN IF( .NOT. FINAL ) RETURN IFancy = 1 CALL PSEUDO(1) IFancy = 0 CALL HCUSE CALL HCMAG CALL HOME RETURN END