SUBROUTINE LEGEND(IJUST,SCRIPT,SIZE) COMMON /PLTCOM/IP1P2(2,2),DMNMX(2,2),PMNMX(2,2),IPAPER(2,2) COMMON /PLTCOM/LEGWIN(2,2) COMMON /PLTCOM/NTICK(2) COMMON /PLTCOM/NPEN,NLINE,ISYM,NCNVER,NSTRT,IPLTOK,LEGPOS COMMON /ADRS/IPLTTR BYTE SCRIPT(1),ETX ,M1(36),M2(16),M3(13),M4(29),BUF(132) C... ETX CHARACTER DATA ETX/3/ C... IJUST: C... >0 SCRIPT PRINTED AT LEFT MARGIN+IJUST-1 C... =0 SCRIPT IS CENTERED C... <0 SCRIPT ENDS AT -IJUST-1 SACES FROM RIGHT MARGIN C... NOTE -- THE WINDOW FOR LEGEND PRINTING HAS BEEN DELIBERATELY C... SET AT ONE CHARACTER TO THE RIGHT OF THE PLOTTING AREA TO C... PREVENT CONFUSION WITH THE PLOT. HENCE, FOR IJUST>0 C... THE TEXT IS PRINTED IJUST SPACES TO THE RIGHT OF THE PLOT C... SIZE IS THE RATIO OF THE CHARACTER SIZE TO THE DEFAULT SIZE. C C... SET PLOTTER WINDOW C TYPE*,'ENTERING LEGEND' C TYPE*,'LEGWIN(1,1)=',LEGWIN(1,1) C TYPE*,'LEGPOS=',LEGPOS ENCODE(37,40,M1) LEGWIN 40 FORMAT('SM;PU;IW',3(I6','),I6,';*') CALL XMT(M1) C... SET CHARACTER SIZE SW=.75*SIZE SH=1.5*SIZE ENCODE(15,45,M1) SW,SH 45 FORMAT('SR',F5.2,',',F5.2,';*') CALL XMT(M1) C... FIND LENGTH OF SCRIPT 60 NCHAR=128 CALL STRPAD(SCRIPT,128) C WRITE (5,85) (SCRIPT(I),I=1,128) 85 FORMAT(1X,128A1) IF (IJUST) 300,200,100 C... LEFT JUSTIFIED 100 LJUST=IJUST-1 ENCODE(17,110,M2) LEGWIN(1,1),LEGPOS 110 FORMAT('PA',I6,',',I6,';*') GOTO 400 C... CENTERED 200 ICNTR=(LEGWIN(1,1)+LEGWIN(1,2))/2 LJUST=-NCHAR/2 ENCODE(17,110,M2) ICNTR,LEGPOS GOTO 400 C... RIGHT JUSTIFIED 300 LJUST=IJUST+1-NCHAR ENCODE(17,110,M2) LEGWIN(1,2),LEGPOS 400 CALL XMT(M2) ENCODE(14,405,M3) LJUST 405 FORMAT('CP',I6,',0;LB*') ENCODE(131,410,BUF)(SCRIPT(I),I=1,128),ETX 410 FORMAT(128A1,A1,';*') C WRITE (5,415)(BUF(I),I=1,131) 415 FORMAT (1X,131A1) CALL XMT(M3) CALL XMT(BUF) C... UPDATE LEGPOS CALL REC('CP0,-1;OC;*',M4,L) C L=L-1 DECODE(L,420,M4) IX,LEGPOS,IPEN 420 FORMAT(3I9) C... RESTORE PLOTTER SETTINGS C TYPE*,'ENTERING PARAM' CALL PARAM C TYPE*,'RETURNED FROM PARAM' RETURN END