Instructions for the Plot package for OpenVMS This file explains how to compile,link, and use the programs in the MIIPS Plot package on an OpenVMS machine. The package consists of a high level programs to create XY plots from one or two text files, a library of plot subroutines for creating custom applications, and several demonstration programs for XY, histogram, contour, mesh, Hammer-Aitoff, and animation plotting. Some features of the programs are: 1) XY, histogram, mesh, and contour plotting 2) Full interactivity with the plots: adding annotation, changing colors, replotting subsections, arithmetic operatons on data, resetting axis parameters, reading cursor values, drawing vectors, etc. 3) Linear and antilog axes labeling 4) Any number of points, any number of simultaneous plots for XY plotting 5) Additional labeling for top and right of XY graph 6) Any size array for contour or mesh plotting 7) Text and annotation can include subscripts and superscripts, and Greek letters 8) Output can be directed to more than one plot device at a time and to a file 9) Output can be directed from the standard file to any supported plot device or format, with offsetting, scaling, and rotation 10) Supported devices and formats are: graphics terminals, xterm, xgterm, VersaTerm Pro, Enhanced SAOimage, postscipt, and encapsulated postscript. Support for Grinnell, Houston Plotter, Lasergrafix, Printronix, Ramtek, Tektronix 4662 Plotter, and Trapix is also available. 11) The quality is suitable for publication in scientific and engineering journals and has been so used for almost 25 years. To use the compiled versions on a VAX, download plot_vax_executables.zip from http://www.astro.gsu.edu/~gudehus/plot.html, and then extract the execute images and other files. If you have access to the MIIPS package and are on an OpenVMS system you can extract the execute images and other files from MIIPS$DISK:[MIIPS.PLOT]PLOT_VAX_EXECUTABLES.ZIP. After obtaining the zipped file, first, uncompress the backup file with: UNZIP PLOT_VAX_EXECUTABLES.ZIP Then place the files into a desired location with a command such as: BACKUP PLOT_VAX_EXECUTABLES.BCK/SAVE/SELECT=[MIIPS.PLOT_EXE...]*.* [.MY_PLOT...] Note that all of the above two lines should be typed before pressing the carriage return. You should then carry out some assignments and logical definitions which are described further below. If you wish or need to recompile, you can download plot_vms_source.zip from the download link at http://www.astro.gsu.edu/~gudehus/plot.html, and then extract the source code and other files. If you have access to the MIIPS package and are on an OpenVMS system you can alternately extract the source code and other files from MIIPS$DISK:[MIIPS.PLOT]PLOT_VMS_SOURCE.ZIP or create a new zipped backup file of the source code and other files with the command file [MIIPS.PLOT]PLOT_VMS_SOURCE.COM. It is not recommended to copy the individual files from the MIIPS package. Once you have PLOT_VMS_SOURCE.ZIP available on your OpenVMS system, uncompress the file with the command: UNZIP PLOT_VMS_SOURCE.ZIP Place the files into a desired location with a command such as: BACKUP PLOT_VMS_SOURCE.BCK/SAVE/SELECT=[MIIPS.PLOT.MIIPS_PLOT...]*.* [.MY_PLOT...] Note that all of the above two lines should be typed before pressing the carriage return. Set default to the directory [.MY_PLOT], say, and enter @MAKE_PLOT This will compile the files, put them into a library and link. A brief description of the source code files follows. In the directory [.MY_PLOT], say, one should have the files: Original Location Name on MIIPS$DISK Description ALOGCODE.FOR [MIIPS.PLOT] Lower level plot routine ALOGDECCODE.FOR [MIIPS.PLOT] Lower level plot routine ALOGDECODE.FOR [MIIPS.PLOT] Lower level plot routine ALOGAXIS.FOR [MIIPS.PLOT] Lower level plot routine ALPHA.FOR [MIIPS.FOR] Character processing routine APPLE.FOR [MIIPS.PLOT] Lower level routine for postscript APPLEPLOT.FOR [MIIPS.PLOT] Mid level routine for postscript ARROWHEAD.FOR [MIIPS.PLOT] Lower level plot routine AXIS.FOR [MIIPS.PLOT] Lower level plot routine BELL.FOR [MIIPS.FOR] Routine to ring the bell CALC.FOR [MIIPS.PLOT] Lower level plot routine CCSUB.FOR [MIIPS.PLOT] Lower level plot routines for Houston plotter CCWRBUF.MAR [MIIPS.PLOT] Lower level plot routine COLOR_24_TRIPLET.FOR [MIIPS.PLOT] Lower level plot routine COLOR_INPUT.FOR [MIIPS.PLOT] Lower level plot routine COLOR.FOR [MIIPS.PLOT] Program to interconvert colors of various bit numbers COLORMODE.FOR [MIIPS.PLOT] Lower level plot routine COLORMODE_BACKGROUND.FOR [MIIPS.PLOT] Lower level plot routine CONTOURDEM.FOR [MIIPS.PLOT] Demo program for contour plotting CONTOURPLOT.FOR [MIIPS.PLOT] High level subroutine for contour plotting CONTRP.FOR [MIIPS.DISPLAY] Lower level Trapix routine CONUNT.VMS [MIIPS.DISPLAY] Lower level Trapix routine CPLOTC.FOR [MIIPS.PLOT] Lower level plot routine CROSSHAIR.FOR [MIIPS.PLOT] Lower level plot routine CUBE.FOR [MIIPS.PLOT] Demo program for rotating cube CUBEPLOT.FOR [MIIPS.PLOT] Helper routine for CUBE DATALEVEL.FOR [MIIPS.PLOT] Lower level plot routine DCD.FOR [MIIPS.FOR] Routine to help USRINP DAXPY.FOR [MIIPS.FOR] Routine for vector math DCD.FOR [MIIPS.FOR] Routine to help USRINP DCOPY.FOR [MIIPS.FOR] Routine for vector math DDOT.FOR [MIIPS.FOR] Routine for vector math DECODE_DECIMAL.FOR [MIIPS.FOR] Lower level routine DECODE_INTERVALS.FOR [MIIPS.PLOT] Lower level plot routine DEFPRM.MAR [MIIPS.DISPLAY] Lower level Trapix routine DELAY.FOR [MIIPS.FOR] Routine to produce a delay DMNMXME.FOR [MIIPS.FOR] Lower level routine DO.FOR [MIIPS.FOR] Routine to help USRINP DISPLAY-PLOTTING_AVAILABILITY.DAT [MIIPS.PLOT] List of available plot devices DO.FOR [MIIPS.FOR] Routine to help USRINP DSPDI.FOR [MIIPS.FOR] Routine for matrix math DSPFA.FOR [MIIPS.FOR] Routine for matrix math DSWAP.FOR [MIIPS.FOR] Routine for vector math DYNAMIC.FOR [MIIPS.FOR] Routine to obtain dynamic memory ECLIPSE.PLT [MIIPS.SAMPLES] Sample standard format plot file ENIMAG.FOR [MIIPS.DISPLAY] Lower level Trapix routine ENLUTR.FOR [MIIPS.DISPLAY] Lower level Trapix routine ENSCSR.FOR [MIIPS.DISPLAY] Lower level Trapix routine ERROR.FOR [MIIPS.FOR] Lower level routine ERRORBAR.FOR [MIIPS.PLOT] Lower level plot routine FILLMODE.FOR [MIIPS.PLOT] Lower level plot routine FINDPLOT.FOR [MIIPS.PLOT] Lower level plot routine FSTCLR.FOR [MIIPS.DISPLAY] Lower level Trapix routine GET_DP_AVAILABILITY.FOR [MIIPS.PLOT] Lower level plot routine GETTRP.MAR [MIIPS.DISPLAY] Lower level Trapix routine GMESSAGE.FOR [MIIPS.DISPLAY] Lower level Grinnell routine GO_TO_END.FOR [MIIPS.FOR] Lower level routine GRAB.FOR [MIIPS.DISPLAY] Lower level Trapix routine GRIN.FOR [MIIPS.PLOT] Lower level Grinnell plot routine GRINCURSF.FOR [MIIPS.PLOT] Lower level Grinnell plot routine GRINCURST.FOR [MIIPS.PLOT] Lower level Grinnell plot routine GRINPLOT.FOR [MIIPS.PLOT] Mid level Grinnell plot routine GTEXT.FOR [MIIPS.DISPLAY] Lower level Grinnell routine HAMMER_AITOFF.FOR [MIIPS.FOR] Transforms angles to Hammer-Aitoff X and Y HAMMER_AITOFF_GRID.FOR [MIIPS.FOR] Plots a H-A grid HAMMER_AITOFF_DEM.FOR [MIIPS.PLOT] Demo program for Hammer-Aitoff plotting HEADER.MAR [MIIPS.DISPLAY] Lower level Trapix routine HIBERNATE.FOR [MIIPS.FOR] Lower level routine HISTOGRAM.FOR [MIIPS.PLOT] Lower level plot routine HOUSTPLOT.FOR [MIIPS.PLOT] Mid level Houston plot routine IDAMAX.FOR [MIIPS.FOR] Routine for vector math IMAGEN.FOR [MIIPS.PLOT] Lower level Imagen plot routine IMAGENPLOT.FOR [MIIPS.PLOT] Mid level Imagen plot routine IMTOOLCHECKSUM.FOR [MIIPS.DISPLAY] Lower level routine ISSUBSUP.FOR [MIIPS.PLOT] Lower level plot routine ITPX.FOR [MIIPS.DISPLAY] Lower level Trapix routine KEYBOARD.FOR [MIIPS.PLOT] Lower level plot routine LASER.FOR [MIIPS.PLOT] Lower level QMS Lasergrafix plot routine LASERPLOT.FOR [MIIPS.PLOT] Mid level QMS Lasergrafix plot routine LDPCST.FOR [MIIPS.DISPLAY] Lower level Trapix routine LIMIT.FOR [MIIPS.PLOT] Lower level plot routine LINE.FOR [MIIPS.PLOT] Lower level plot routine LINE_SYMBL.FOR [MIIPS.PLOT] Lower level plot routine LINFIT1D.FOR [MIIPS.FOR] Routine for 1-dimensional linear least squares fitting LINFIT1D1.FOR [MIIPS.FOR] Helper routine for LINFIT1D LINFIT1D2.FOR [MIIPS.FOR] Helper routine for LINFIT1D LOADCT.FOR [MIIPS.DISPLAY] Lower level Trapix routine MAKE_PLOT.COM [MIIPS.PLOT] Command file to compile and link all the plot routines MAPSCRAT.FOR [MIIPS.FOR] Routine for dynamic memory MAPTRP.VMS [MIIPS.DISPLAY] Lower level Trapix routine MATRIXINV.FOR [MIIPS.FOR] Routine for inverting a matrix MATRIXINV1.FOR [MIIPS.FOR] Helper routine for MATRIXINV MESHDEM.FOR [MIIPS.PLOT] Demo program for mesh plots MESHGEN.FOR [MIIPS.PLOT] Lower level plot routine MESHPLOT.FOR [MIIPS.PLOT] High level subroutine for mesh plots MESHPLOT1.FOR [MIIPS.PLOT] Helper routine for meshplot MESSAGE.FOR [MIIPS.FOR] Routine to display messages NEL.FOR [MIIPS.FOR] Routine to help USRINP NELD.FOR [MIIPS.FOR] Routine to help USRINP NHINT.FOR [MIIPS.FOR] Lower level routine NUMARGS.MAR [MIIPS.FOR] Routine to obtain the number of arguments in a call NUMBER.FOR [MIIPS.PLOT] Lower level plot routine OPENCF.FOR [MIIPS.FOR] User routine to open a character file PARSE.MAR [MIIPS.PLOT] Helper routine for the Plot command PENMODE.FOR [MIIPS.PLOT] Lower level plot routine PLOT.FOR [MIIPS.PLOT] High level plot routine PLOTCOM.FOR [MIIPS.PLOT] Program to plot from plot file PLOTDEVICES.FOR [MIIPS.PLOT] High level plot routine PLOTDEVICES2.FOR [MIIPS.PLOT] Helper routine for PLOTDEVICES PLOTDEVQUES.FOR [MIIPS.PLOT] Lower level plot routine PLOTERRS.FOR [MIIPS.INCLUDE] Plot package error messages PLTDEV.FOR [MIIPS.PLOT] Lower level plot routine PLTREAD.FOR [MIIPS.PLOT] Lower level plot routine PLTWRITE.FOR [MIIPS.PLOT] Lower level plot routine POL.FOR [MIIPS.FOR] Routine to evaluate a polynomial POL1.FOR [MIIPS.FOR] Helper routine for POL POLINTERP1D.FOR [MIIPS.FOR] Routine for 1-Dimensional polynomial interpolation POLINTERP1D1.FOR [MIIPS.FOR] Helper routine for POLINTERP1D PRINTPLOT.FOR [MIIPS.PLOT] Mid level Printronix plot routine PROJ.FOR [MIIPS.PLOT] Lower level plot routine PRTMSG.FOR [MIIPS.FOR] Lower level routine PTPARM.FOR [MIIPS.DISPLAY] Lower level Trapix routine RAMPLOT.FOR [MIIPS.PLOT] Mid level plot routine RAMTEK.OLB [MIIPS.LIB] Object library for Ramtek RASTER.MAR [MIIPS.PLOT] Lower level plot routine RCIHRD.FOR [MIIPS.DISPLAY] Lower level Trapix routine RDPREG.MAR [MIIPS.DISPLAY] Lower level Trapix routine RDREG.FOR [MIIPS.DISPLAY] Lower level Trapix routine RDTRP.MAR [MIIPS.DISPLAY] Lower level Trapix routine READRG.FOR [MIIPS.DISPLAY] Lower level Trapix routine REALINDEX.FOR [MIIPS.FOR] Lower level routine RELEASE_MEMORY_C.C [MIIPS.FOR] Routine to release dynamic memory RESETTEK.FOR [MIIPS.PLOT] Lower level plot routine SAO.FOR [MIIPS.PLOT] Lower level plot routine SAOCAPTION.FOR [MIIPS.DISPLAY] Lower level routine for SAOimage SAOERAS.FOR [MIIPS.DISPLAY] Lower level routine for SAOimage SAOFIRST.FOR [MIIPS.DISPLAY] Lower level routine for SAOimage SAOPLOT.FOR [MIIPS.PLOT] Mid level plot routine for Enhanced SAOimage SAOSTART.FOR [MIIPS.DISPLAY] Lower level routine for SAOimage SAO_CURN.FOR [MIIPS.DISPLAY] Lower level routine for SAOimage SAO_DISPLAY_VECT.FOR [MIIPS.DISPLAY] Lower level routine for SAOimage SAO_DRAW.FOR [MIIPS.DISPLAY] Lower level routine for SAOimage SAO_ERASE_CURSOR.FOR [MIIPS.DISPLAY] User routine to erase cursors SAO_LOAD_VLT.FOR [MIIPS.DISPLAY] Lower level routine for SAOimage SAO_VECT.FOR [MIIPS.DISPLAY] Lower level routine for SAOimage SAVE.FOR [MIIPS.FOR] Routine to help USRINP SCALE_AXIS.FOR [MIIPS.PLOT] Lower level plot routine SCALPOL.FOR [MIIPS.FOR] Helper routine for LINFIT1D2 SCAN.FOR [MIIPS.PLOT] Lower level plot routine SCANSL.FOR [MIIPS.PLOT] Lower level plot routine SCAN_SIMPLE.FOR [MIIPS.PLOT] Lower level plot routine SETDMP.MAR [MIIPS.DISPLAY] Lower level Trapix routine SETSTR.MAR [MIIPS.DISPLAY] Lower level Trapix routine SI_SUBS.C [MIIPS.DISPLAY] Lower level routine for SAOimage SI_SUBS.H [MIIPS.DISPLAY] Lower level routine for SAOimage STRKEY.FOR [MIIPS.FOR] Routine to help USRINP STRLUDEF.FOR [MIIPS.FOR] Lowel level routine SYMBOL.FOR [MIIPS.PLOT] Lower level plot routine SYMBOLS.FOR [MIIPS.PLOT] Demo program to plot symbols SYMGEN.MAR [MIIPS.PLOT] Routine to generate symbols SYMGENGR.MAR [MIIPS.PLOT] Routine to generate Greek letters SYMINV.FOR [MIIPS.FOR] Routine to solve linear equations SYS_KEYIN.C [MIIPS.PLOT] Lower level plot routine T.TXT [MIIPS.PLOT] Explanation for simple demo programs T1.FOR [MIIPS.PLOT] Program to demonstrate vectors T2.FOR [MIIPS.PLOT] Program to demonstrate key press T3.FOR [MIIPS.PLOT] Program to demonstrate fill T4.FOR [MIIPS.PLOT] Program to demonstrate vector styles T5.FOR [MIIPS.PLOT] Program to demonstrate axis drawing T6.FOR [MIIPS.PLOT] Program to demonstrate axis drawing with user input T7.FOR [MIIPS.PLOT] Program to demonstrate pausing T8.FOR [MIIPS.PLOT] Program to demonstrate antilog axis drawing T9.FOR [MIIPS.PLOT] Program to demonstrate the symbol subroutine T10.FOR [MIIPS.PLOT] Program to demonstrate changing the data level T11.FOR [MIIPS.PLOT] Program to demonstrate pen widths T12.FOR [MIIPS.PLOT] Program to demonstrate the line subroutine T13.FOR [MIIPS.PLOT] Program to demonstrate the line_symbl subroutine T14.FOR [MIIPS.PLOT] Program to demonstrate interactive commands T15.FOR [MIIPS.PLOT] Program to demonstrate circles T16.FOR [MIIPS.PLOT] Program to demonstrate point plot mode T4662PLOT.FOR [MIIPS.PLOT] Mid level plot routine for Tektronix 4662 plotter TEK.FOR [MIIPS.PLOT] Lower level plot routine TEK4662.FOR [MIIPS.PLOT] Lower level plot routine TEKCON.FOR [MIIPS.PLOT] Lower level plot routine TEKPAU.FOR [MIIPS.PLOT] Lower level plot routine TEKPLOT.FOR [MIIPS.PLOT] Mid level plot routine for Tektronix type graphics terminals TEXTCNCH.FOR [MIIPS.PLOT] Lower level plot routine TRACE.FOR [MIIPS.PLOT] Lower level plot routine TRANSFORM.FOR [MIIPS.PLOT] Lower level plot routine TRANSPARENT_MODE.FOR [MIIPS.PLOT] Program to go from Tek to terminal TRANSPARENT_MODE_X.FOR [MIIPS.PLOT] Program to go from Tek to terminal for xterm TRANSPARENT_MODE_XN.FOR [MIIPS.PLOT] Program to go from Tek to terminal for xterm without erasing plot TRANSPARENT_TO_TEK.FOR [MIIPS.PLOT] Lower level plot routine TRAPIX.FOR [MIIPS.DISPLAY] Lower level Trapix routine TRAPIXPLOT.FOR [MIIPS.PLOT] Mid level plot routine for Trapix TRAPIX_.FOR [MIIPS.PLOT] Lower level plot routine TRAPIX_ALL.OPT [MIIPS.PLOT] Trapix link file TRERASE.FOR [MIIPS.DISPLAY] Lower level Trapix routine TRFIRST.FOR [MIIPS.DISPLAY] Lower level Trapix routine TRINC.MAR [MIIPS.DISPLAY] Lower level Trapix routine TRPDRV.UV2 [MIIPS.DISPLAY] Trapix driver TRPDRV.730 [MIIPS.DISPLAY] Trapix driver TRPDRV.750 [MIIPS.DISPLAY] Trapix driver TRPDRV.780 [MIIPS.DISPLAY] Trapix driver TRJVLT.FOR [MIIPS.DISPLAY] Lower level Trapix routine TRSTART.FOR [MIIPS.DISPLAY] Lower level Trapix routine TRWAIT.FOR [MIIPS.DISPLAY] Lower level Trapix routine TR_VECTOR.FOR [MIIPS.DISPLAY] Lower level Trapix routine TTEXT.FOR [MIIPS.DISPLAY] Lower level Trapix routine TVREAD.FOR [MIIPS.DISPLAY] Lower level Grinnell routine TVSEND.FOR [MIIPS.DISPLAY] Lower level Grinnell routine TVSTART.FOR [MIIPS.DISPLAY] Lower level Grinnell routine TVSTOP.FOR [MIIPS.DISPLAY] Lower level Grinnell routine TVZPCR.FOR [MIIPS.DISPLAY] Lower level Grinnell routine USRINP.FOR [MIIPS.FOR] User input routine VECTMODE.FOR [MIIPS.PLOT] Lower level plot routine WAITFR.FOR [MIIPS.DISPLAY] Lower level Trapix routine WHERE.FOR [MIIPS.PLOT] Lower level plot routine WRITRG.FOR [MIIPS.DISPLAY] Lower level Trapix routine WRPREG.MAR [MIIPS.DISPLAY] Lower level Trapix routine WRTRP.MAR [MIIPS.DISPLAY] Lower level Trapix routine WTDPI.VMS [MIIPS.DISPLAY] Lower level Trapix routine WTJYVT.VMS [MIIPS.DISPLAY] Lower level Trapix routine WTREG.FOR [MIIPS.DISPLAY] Lower level Trapix routine WTRPIO.MAR [MIIPS.DISPLAY] Lower level Trapix routine WTVPP.VMS [MIIPS.DISPLAY] Lower level Trapix routine XYPLOHDEM.FOR [MIIPS.PLOT] Demo program for histogram plots XYPLOT.FOR [MIIPS.PLOT] High level subroutine for XY plots XYPLOTDEM.FOR [MIIPS.PLOT] Demo program for XY plots XYPLOTDEM2.FOR [MIIPS.PLOT] Demo program for XY plots XYPLOT_F.FOR [MIIPS.PLOT] Lower level plot routine XYPLOT_PROGRAM.FOR [MIIPS.PLOT] Program to plot from ASCII file XYPLOT2_PROGRAM.FOR [MIIPS.PLOT] Program to plot from two ASCII files XYPLOT_SETUP.DAT [MIIPS.PLOT] Setup file for plotting from an ASCII file XYPLOT_SETUP.FOR [MIIPS.PLOT] Lower level plot routine In the directory [.MY_PLOT.INCLUDE] one should have the files: Original Location Name on MIIPS$DISK Description GRINPAR.FOR [MIIPS.INCLUDE] Grinnell parameters include file PLOTERRS.DAT [MIIPS.INCLUDE] Plotting errors PLOTPAR.FOR [MIIPS.INCLUDE] Plotting parameters include file SADERRS.DAT [MIIPS.INCLUDE] SAD errors SADPAR.FOR [MIIPS.INCLUDE] SAD parameters include file SAO_DEFAULT_VLT.FOR [MIIPS.INCLUDE] Default lookup table for Enhanced SAOimage SAOFACTS.FOR [MIIPS.INCLUDE] Declarations for Enhanced SAOimage The make command will create the object library PLOT_ALL.OLB. This can be used to link with user written programs if desired. For whatever method you use to install the executable files, create the logical assignments: ASSIGN MY_DISK:[MY_DIR.MY_PLOT.INCLUDE] LBY: ASSIGN MY_DISK:[MY_DIR.MY_PLOT] MIIPS$PLOT: ASSIGN MY_DISK:[MY_DIR.MY_PLOT] XY$PLOT: where LBY references the location of some parameter files, MIIPS$PLOT references the location of DISPLAY-PLOTTING_AVAILABILITY.DAT, and XY$PLOT references the location of XYPLOT_SETUP.DAT. Then enter ASSIGN PLOT.PLT FOR079 ASSIGN VECT.RPL FOR053 Next, establish some symbols with A:==RUN MY_DISK:[MY_DIR.MY_PLOT]TRANSPARENT_MODE.EXE AX:==RUN MY_DISK:[MY_DIR.MY_PLOT]TRANSPARENT_MODE_X.EXE AXN:==RUN MY_DISK:[MY_DIR.MY_PLOT]TRANSPARENT_MODE_XN.EXE PLOT:==$MY_DISK:[MY_DIR.MY_PLOT]PLOTCOM.EXE XYPLOT:==$MY_DISK:[MY_DIR.MY_PLOT]XYPLOT_PROGRAM.EXE XYPLOT2:==$MY_DISK:[MY_DIR.MY_PLOT]XYPLOT2_PROGRAM.EXE "A" will change from the Tektronix window to the text window in a graphics terminal. "AX" will change from the Tektronix window to the text window in xterm, and erase the screen. "AXN" will change from the Tektronix window to the text window in xterm, without erasing the screen. "PLOT" will operate the plot command on the standard plot files (see below) "XYPLOT" will produce an XY plot of columnar data in an ASCII file. "XYPLOT2" will produce an XY plot of columnar data in one ASCII file against data in another ASCII file. These definitions can be placed in a login file if desired. Finally, edit DISPLAY-PLOTTING_AVAILABILITY.DAT to match the display and plotting devices availabile on your system. Running the Demonstration Programs First try running the demonstrations programs XYPLOTDEM.EXE, XYPLOTDEM2.EXE, XYPLOHDEM.EXE, CONTOURPLOTDEM.EXE, MESHDEM.EXE, HAMMER_AITOFF_DEM, and CUBE.EXE. One is initially prompted for the plot device. Depending on the state of the DISPLAY-PLOTTING_AVAILABILITY.DAT, one might be presented with: Enter the plot devices: S = SAOimage -S = SAOimage, no erasure of screen G = Graphics terminal (VT100/Retrographics and Visual 550) G4 = Graphics terminal emulator (Versaterm) X = Xterm (default) XG = Xgterm F = File Enter one or more letters corresponding to the plot devices you wish the plot to appear on, e.g. X F. If you are connected to an OpenVMS system via telnet or ssh from a Macintosh, then it is possible to use Versaterm. If you are connected to an OpenVMS system via telnet or ssh from a Unix system, then it is possible to use Xgterm. Versaterm and Xgterm do not run on OpenVMS. Note that SAOimage refers to "Enhanced SAOimage", available from http://www.astro.gsu.edu/~gudehus/enhanced_saoimage.html. After the plot appears, several interactive plot commands are available (except when running CUBE.EXE). Help can be obtained by typing (not entering) H or h. All or some of the following will then appear: A = Turns on the crosshairs and by pressing the at chosen X limits, the mean Y value will be calculated for each plot. a = Allows the user to enter annotation at the location of the crosshairs with the color most recently selected. ^I toggles to the Greek alphabet and special symbols and back to English ^H gives a backspace ^J toggles to subscript, superscript, and back to normal ^A = Prompts user for the height of the annotation. B = Defines a box with the crosshairs placed at the lower left and upper right. Will replot with this scaling. b = Allows the user to be prompted for the background color on SAOimage. C = Turns on the crosshairs and by pressing the , prints the values at that location and puts the values in a common block; typing - deletes the last pair of values from the common block; and typing Q turns off the crosshairs. c = Allows the user to be prompted for the color. F = Allows the user to alter the scaling factor on the current plot device(s). f = Allows the user to change the fill style for each plot. H = Gives help. h = Gives help. I = Allows the user to be prompted for several of the plotting parameters before a replot is done. This command is typically used when preparing a plot for publication. The following operations are available: 1) Inverting the X axis and/or Y axis 2) Labeling the X and Y axes in the following ways: Linear automatic, Linear manual, Antilog automatic, Antilog manual (antilog refers to the fact that the labeling is the antilog of the plotted values which are logs) a) In the Linear manual mode one can specify for the X and Y axes, the lowest labeled physical value, the physical value/interval, and the number of intervals (coded as nn.llrr where nn is the integer part, .ll represents the left (or bottom) fractional part, and .rr represents the right (or top) fractional part of an interval). b) In the Antilog manual mode one can specify for the X and Y axes, the lowest displayed tick mark (coded as log.antilog where log is the integer part of the plotted value (which is a log), and antilog represents the first displayed tick mark of that decade (which is an antilog)). The antilog of the physical value at the first tick mark may or may not be printed byu the program. One can also specify the number of displayed decades (coded as n.antilog where n is the integer part of the number of decades, and antilog represents the rightmost displayed tick mark of an additional decade. For example, if one enters -1.5 for the lowest value and 3.2 for the number of decades, then the first tick mark will be at X=0.5 (log = -0.301 = -1 + 0.699) and the last tick mark will be at X=200 (log = 2.301). Note that fractional parts of .0 and .1 behave the same way. Note: If the original plot was linear, then the log of the data should be taken first (with the L command) for the antilog labeling to make sense. 3) Specifying symbol heights 4) Specifying labels for the X and Y axes 5) Specifying a title 6) Specifying one or more print devices L = Allows the user to take log(X) and log(Y). l = Allows the user to take ln(X) and ln(Y). M = Allows the user to modify the X and Y values by adding increments and adjusting by scaling factors. m = Allows the user to modify the X and Y values by adding increments and adjusting by scaling factors for a selected plot. O = Redoes the original plot with any new axes, colors, and symbols. o = Redoes the original plot without any new axes or symbols. P = Allows the user to take powers. p = Allows the user to specify the color of each plot. Q = Returns. q = Returns. R = Turns on the crosshairs and by pressing the at chosen X limits, replotting with automatic scaling will be done. S = Allows the user to specify the style of vector. s = Allows the user to specify the symbol for a set of points. V = Draws a vector of the color and vector style most recently selected. v = Allows the user to be prompted for the starting and ending physical values of a vector. X = Allows plotting an additional X axis in different linear units. x = Allows plotting an additional X axis in different antilog units. Y = Allows plotting an additional Y axis in different linear units. y = Allows plotting an additional Y axis in different antilog units. A subset of these commands are used in CONTOURDEM.EXE, HAMMER_AITOFF_DEM.EXE, and MESHDEM.EXE. On SAOimage, Versaterm, xterm, and xgterm, user prompts appear on the text terminal window, whereas on all other devices the prompts will appear on the Graphics (Tek) window. Note that a plot can be sent to more than one device at a time. Xgterm, a color xterm, behaves mostly like xterm. One difference between the two is that xterm allows one to use the left mouse button to interact with the plot whereas xgterm requires a press. SAOimage also requires a press for plot interaction. The version of SAOimage available from most sources will not work with plotting; the version that is required is "Enhanced SAOimage, v. 1.22", available at the MIIPS website. Xgterm needs to have its colors defined in the user's .Xdefaults file. The following entries will ensure that the correct colors are displayed: Xgterm*gterm*color0: black Xgterm*gterm*color1: ivory1 Xgterm*gterm*color2: red Xgterm*gterm*color3: green Xgterm*gterm*color4: blue Xgterm*gterm*color5: cyan Xgterm*gterm*color6: yellow Xgterm*gterm*color7: magenta Xgterm*gterm*color8: gold1 Xgterm*gterm*color9: DarkSlateGray3 Xgterm*gterm*height: 601 Xgterm*gterm*width: 801 If a plot file is being created it is possible to add annotation that will be written to the file. For example, if one selects DEVICES=X F the plot will appear on an xterm and be written to a file. Pressing "a" while the plot is displayed on an xterm will then bring up a cursor. Position the cursor on the plot and then click the left mouse button (or press the for xgterm and SAOimage). You are then prompted to enter some annotation. You can enter either English text, Greek letters, special symbols, or some combination of them. Typing ^I at this time, toggles to the Greek alphabet and special symbols, and back to English. In the Greek mode, the numbers 0 to 9 produce the symbols 0 to 9. One could for example use special symbol 1 (a circle) to denote the position of the primary in a plot of a relative orbit. Note however, that the cursor center currently corresponds to the lower left corner of the initial character. The Plot Command After a plot file has been created, the plot can at any time be directed to any of the available plot devices by using the PLOTCOM.EXE program. To plot a plot file, first be sure that you have set up the PLOT command in a login file as: PLOT:==$MY_DISK:[MY_DIR.MY_PLOT]PLOTCOM.EXE Now enter: PLOT/DEVICE=P/XOFF=X/YOFF=Y/SCALE=S/ROTATE=R/NUMBER=N PLOT_FILE where 1) Each keyword, and in the case of DEVICE, its value, can be shortened to an unambiguous abbreviation 2) If no device is specified, the default is xterm 3) If no plot_file is specified, the default is PLOT.PLT 4) The keywords have the following meaning: DEVICE is the plot device, with values, P, equal to TEKTRONIX = Graphics terminal (VT100/Retrographics and Visual 550) GRAPHON = Graphon graphics terminal CODONICS = Codonocs graphics terminal MICROTERM = Microterm graphics terminal VERSATERM = Versaterm graphics terminal emulator for Macintosh XTERM = Xterm graphics terminal emulator for OpenVMS and Unix XGTERM = Xgterm grpahics terminal emulator for Unix SAOIMAGE = Enhanced SAOimage _SAOIMAGE = Enhanced SAOimage with not erasure of the previous image POSTSCRIPT = Postscript output file (default name is PLOT.PS) EPS = Encapsulated postscript output file (default name is PLOT.EPS) (each device can be shortened to an unambiguous abbreviation, e.g. pos or POS for POSTSCRIPT)) XOFF is the horizontal offset, X, of the plot in inches YOFF is the vertical offset, Y, of the plot in inches SCALE is the magnification, S, of the plot in terms of a factor. ROTATE is the counterclockwise rotation, R, of the plot in degrees NUMBER is the number, N, of the complete plot within the plot file Because the plot file is not closed until the calling program quits, all plots are written to the same file, and the "number" keyword must be used to select the plot. 6) The keywords and their values can be upper- or lowercase 7) When both rotation and offsets are given, the operation can be thought of as either 1) rotation about the lower left corner of the plot followed by translation in the rotated coordinate system, or 2) translation followed by rotation about the old location of the corner. Thus a plot on xterm can be viewed rotated 90 counterclockwise with a command such as: plot yof=-6 rot=90 sca=0.75 myplot.plt 8) Postscript files created by the plot command are by default matched to a printed sheet viewed in landscape orientation. Thus when such a file is viewed with ghostview or another postscript viewer, they will appear to be rotated by 90 degrees counterclockwise. To create a postscript file without the prerotation, use a command such as: plot dev=pos xof=-8.0 rot=-90 myplot.plt 9) Encapsulated postscript files are by default not prerotated and will appear in the correct orientation in ghostview. In addition, encapsulated postscript files are by default created with a bounding box size just slightly larger than the default XY plot size (X axis = 6 inches, Y axis = 5 inches). If your plot size is larger or smaller than the default size just use an editor such as vi to change the dimensions in the *.eps file. The BoundingBox line is 5th from the top. The encapsulated postscript files will not ordinarily produce output on a printer because because they do not contain the 'showpage' command. If you wish to see a printed version of your eps file, just add 'showpage' after the last 'stroke' command on the third line from the end. 10) The keyword, number, selects the number of the plot within the plot file. If the number keyword is not given, by default the first plot is displayed on devices such as graphic terminals, xterm, xgterm, and SAOimage. If a postscript file is created and no number keyword is given, all plots are written to the file. For an eps file, only the first file is written. If the value given for the number keywords is -1, then all plots are displayed overlapped on all devices, postscript files, and eps files. Plotting from an ASCII File An ASCII file of data can be plotted with the XYPLOT_PROGRAM.EXE program. Simply enter XYPLOT_PROGRAM and the program will prompt for the number of header lines, the columns for the abscissas, and the columns for the ordinates. The number of columns given for the abscissa and ordinate must match. The maximum allowed number of characters in the ASCII file is 132. The plot styles, vector styles, colors, and labeling of the plots are given defaults by a setup file with the default name XYPLOT_SETUP.DAT. An example of the format of this file is: LINE VECTOR STYLE 0 1 2 3 4 5 PEN WIDTH 20 LINE TYPE -1 0 SYMBOL 0 1 2 3 4 5 6 7 8 9 10 INVERT X NO INVERT Y NO COLOR 16776960 Yellow 16711935 Magenta 65280 Green 16711680 Red 255 Blue 16766720 Gold1 65535 Cyan 7982541 DarkSlateGray4 16777200 Ivory1 10824234 Brown 16716947 Deep pink 5597999 Dark olive greem 15631086 Violet 16766720 Gold 8388564 Aquamarine 16770229 Moccasin X LABEL X Axis Y LABEL Y Axis TITLE Anonymous 1) Each keyword is followed by the values for a plot within the complete plot. If there are more plots than values, then rollover will occur. If there are fewer plots than values, then the extra ones will not be used. 2) The keywords may be in any order 2) Comments are allowed to the right of a value. 3) The LINE TYPE (as explained in LINE.FOR) controls the plot lines and the type of plot, where a) The magnitude of the value controls the frequency of plotted symbols, e.g. zero gives no symbols, and 4 gives a symbol every 4th data point b) Positive values give a straight line connecting every data point c) Negative values give no connecting straight lines d) If the value is 997 error bars are drawn e) If the value is 998 a histogram is drawn with the bars stacked vertically if multiple plots are made f) If the valud is 999 a histogram is drawn with the bars placed next to each other is multiple plots are made 4) The SYMBOL controls the type of symbol where a) values from 0 to 13 in the first byte give the built-in symbols b) a character may be plotted if the ASCII code is placed in the second byte c) if a histogram is to be drawn, the value in the first byte give the filling style d) if error bars are to be drawn, the value in the first byte give the style of the bar, i.e., 0 give a short tick, 1 gives nothing, 2 gives an arrowhead. If 100 is added to the first byte, the X or Y locations contain the central location and the deviation to the low and high directions, respectively, for the adjacent array locations. e) the value in the third byte give the symbol height in hundredths of an inch. If the value is not present a default of 0.14 inch is used. The program XYPLOT2_PROGRAM allows one to plot with two ASCII files, one for the abscissa and a different one for the ordinate. The MIIPS plot package also allows programmers to create their own specialized plot applications. Besides the above demonstrations programs there are several simple examples, described in T.TXT, which demonstrate one or more aspects of the package. Try running the test programs T1.EXE, etc to get familiar with the subroutines. Some of these programs will ask for the device number. The numbers can be found in pltdev.for, and have the following associations: NDEV DEVICE 1 Graphics Terminal (VT100/Retrographics, Visual 550) 101 Graphics Terminal (GraphOn) 201 Graphics Terminal (Codonics) 301 Graphics Terminal (Micro-term) 401 Graphics Terminal emulator (Versaterm) 10001 Xterm 20001 Xgterm 2 File 4 1 and 2 (temporarily retained for compatibility) 999811 Encapsulated postscript file (no printing) 999911 Postscript file (no printing) 13 SAOimage -13 SAOimage without erasure Any questions should be directed to Donald Gudehus at gudehus@astro.gsu.edu.