Intended for users interested in generating technical drawings or graphics for technical journals in PostScript format. The manual describes PSPLOT, a library of Fortran-callable subroutines which can be combined in a calling program to produce PostScript plot files. The purpose, syntax, and calling convention of each subroutine is presented , along with plotting examples.
PostScript is a very robust graphics and typesetting language with wide-ranging capabilities. Since the focus of the subroutines in this library is to produce technical drawings, many of the "artistic" features of PostScript have not been addressed or included here.
The name PostScript is a registered trademark of Adobe Systems Incorporated. All instances of the name PostScript in this manual are references to the PostScript language as defined by Adobe Systems Incorporated.
PSPLOT is distributed free of charge for non-commercial use.
A Fortran 95 version of the software is available for download with associated documentation. This version is not maintained, supported, or guaranteed by NSU OC and any technical inquiries should be directed to dregonjanos@gmail.com.
This section will present the conventions used by the plotting subroutines in the PSPLOT plotting library. This information can be used to create customized plotting subroutines.
A plotting session is a set of plotting instructions in a user's application program which produces hardcopy graphic display output. The output can be either a single plot or graph or a set of graphs. Every plotting session must begin with a call to subroutine PSINIT (with the exception of a call to NEWDEV) and end with a call to subroutine PLOTND.
Pen movement is occasionally mentioned throughout this manual. While PostScript does not use an actual pen for graphic production, it is useful to visualize the plot commands as directing the movements of a pen of variable thickness to a specified (x,y) coordinate, with the pen being either up or down. The plotting subroutines are simple, user-callable commands which direct the movements of an imagined pen upon a plotting sheet.
The initial coordinate origin is approximately .5 inches from the bottom and left paper edges. The orientation of the page must be specified to be either portrait (short side horizontal) or landscape (long side horizontal) and is set by the call to PSINIT (which see). The figure below shows the paper orientation and beginning plot origin for portrait and landscape modes. The current plot origin can be relocated to other positions during the plotting session to provide new reference points for subsequent plotting commands. When the next graph is started, the new origin should be placed far enough away to avoid overlapping the just-completed graph.
All plotting commands use an absolute plot coordinate system. This means that all coordinates passed to plotting subroutines are expected to be in terms of distance from the current plot origin. This is contrast to a relative plot coordinate system, in which coordinates are assumed to be in terms of distance from the current pen position.
In all plotting subroutines, plot coordinates, character heights, distances, etc. can be in arbitrary units. The default is inches. This can be changed by the variable conver in subroutine PSINIT.
Unless otherwise noted, any subroutine argument which specifies an angle is stated in degrees relative to the X axis, with positive angles measured counterclockwise from the X axis.
Most character variables are specified as Hollerith, rather than character strings. The reason for this is primarily historical, combined with the fact that the enormous amount of code already written and in use at my site precluded a comprehensive revision. This should not cause any problems, however.
The initial font of a plot session is Helvetica, with a size of 12 points. This can be changed permanently in subroutine PSINIT. Of course, the current font can always be changed with subroutine SETFNT. PSPLOT supports the standard 35 fonts found on most PostScript printers.
PSPLOT supports color, although all examples in this manual are shown in grayscale for the purposes of reproduction. Color is specified in the relevant subroutines as red, green, and blue (RGB) values.
Continuation allows you to append a character string or number to the end of a previously plotted string or number. The coordinates of the appended string are automatically calculated. Whether or not a subroutine supports continuation is stated in subroutine description in the next section.
Continuation is specified by setting the X and/or Y coordinate argument in calls to the subroutines listed above to 999, and may be applied to X and Y coordinates separately. A subroutine call with continuation must immediately follow the previous plotting call. Continuation is useful when plotting strings containing variable values, such that the resultant string length is not known beforehand.
For example,
ND=10
CALL KEKNUM (1., 2., .15, FLOAT(ND), 0., -1, 0)
CALL KEKSYM (999., 999., .15, 5H DAYS, 0. ,5, 0)
produces "10 DAYS".
This section describes the user-level subroutines in the PSPLOT plotting library. These routines are Fortran-callable from an application program. Below is a brief summary of the subroutines, followed by an alphabetical listing of each subroutine containing a more detailed description of its function, syntax, and calling arguments.
Note that the code examples here are shown in black and white and grayscale, as that is how they are produced in the hardcopy User's Manual. PSPLOT fully supports color graphics.
Syntax: CALL ARC (XC, YC, RAD, ANG1, ANG2)
Arguments:
Syntax: CALL AROHED (XPP, YPP, DIR, AROLNP, SPRANG, LOCXY)
Arguments:
Syntax: CALL ARROW (XSS, YSS, XPP, YPP, AROLNP, SPRANG, LOCXY )
Arguments:
Syntax: CALL AXIS (XPP, YPP, IBCD, NC, AXLEN, THETA, RMIN, DEL)
Arguments:
Syntax: CALL BLKSTP (STR1, NDIM, STR2, NC)
Arguments:
Syntax: CALL BORDER (XLEN, YLEN, ITIC, IBRD, MAJX, MINX, MAJY, MINY)
Arguments:
Syntax: CALL CHOPIT (XPP, YPP)
Arguments:
Note: XPP and YPP are coordinates independent of the current scaling factor. That is, XPP and YPP represent actual inches, not scaled coordinates. The current scaling factor is reinstated after the new coordinate origin is set.
Subroutine CHOPIT should not be confused with subroutine PLOTND, which is called once at the end of each plotting session and which closes the entire output PostScript file.
Syntax: CALL CIRCLE (XC, YC, RAD, FILL)
Arguments:
Syntax: CALL CLIP
Arguments: None.
Note: Most uses of this command are bracketed by calls to GSAV and GREST.
Syntax: CALL CLIPBOX (XPTS, YPTS, NPTS)
Arguments:
Syntax: CALL COLBOX (XPTS, YPTS, NPTS, RED, GREEN, BLUE)
Arguments:
Syntax: CALL CONCOLR (ARR, IMAX, IEXT, JEXT, XLEN, YLEN, CVAL, COLOR, NVAL, IOFFP, SPVAL)
Arguments:
Syntax: CALL CONFILL (ARR, IMAX, IEXT, JEXT, XLEN, YLEN, CVAL, GRYLEV, NVAL, IOFFP, SPVAL)
Arguments:
Syntax: CALL CONREC (ARR, IMAX, IEXT, JEXT, XLEN, YLEN, CVAL, NVAL)
Arguments:
Special features of CONREC:
Syntax: CALL CURVE (X1, Y1, X2, Y2, X3, Y3, X4, Y4, CONTIN)
Arguments:
Note: The curve produced by CURVE is not automatically stroked.
Syntax: CALL DRWCRV (XARR, YARR, NPTS, THK, CLOSER)
Arguments:
Syntax: CALL DRWTRI (XC, YC, SIDE, THK)
Arguments:
Syntax: CALL DSHCRV (XARR, YARR, NPTS, IDSHPN, THK)
Arguments:
Syntax: CALL DSHLIN (X1, Y1, X2, Y2, IDSHPN, THK)
Arguments:
Syntax: CALL FACTOR (FACT)
Arguments:
Syntax: CALL FAROHED (XPP, YPP, DIR, AROLNP, SPRANG, LOCXY, FILL)
Arguments:
Syntax: CALL FILLBOX (XARR, YARR, NPTS, GRY)
Arguments:
Note: The current gray level remains at value GRY after exiting FILLBOX.
Syntax: CALL FILRGN (XARR, YARR, NPTS, GRY)
Arguments:
Syntax: CALL FILRGNC (XARR, YARR, NPTS)
Arguments:
Syntax: CALL GREST
Arguments: None.
GREST is used to restore the graphics state of a PostScript page. It is called after a clipping region has been established and is no longer needed. GREST is used in conjunction with GSAV.
Syntax: CALL GRKSYM (XPP, YPP, HEIGHT, ICH, ANG, NCHAR, MJUS)
Arguments:
Syntax: CALL GSAV
Arguments: None.
GSAV is used to save the graphics state of the PostScript page prior to defining a clipping region. After the clipping region is used, GREST is called to restore the original graphics state.
Syntax: CALL HILITEC (XPP, YPP, HEIGHT, CSTR, ANG, EDG, JUSX, JUSY, FRED, FGREEN, FBLUE, BRED, BGREEN, BBLUE)
Arguments:
Syntax: CALL HILITEG (XPP, YPP, HEIGHT, CSTR, ANG, EDG, JUSX, JUSY, FGRY, BGRY)
Arguments:
Syntax: CALL INTEGRAL (XPP, YPP, HEIGHT, ANG, LOWER, NL, LUPPER, NU)
Arguments:
Syntax: CALL KEKEXP (XPP, YPP, HEIGHT, FNUM, ANG, NDEC, MJUS)
Arguments:
Syntax: CALL KEKFLT (XPP, YPP, HEIGHT, FNUM, ANG, NDEC, MJUS)
Arguments: Same as KEKNUM.
Syntax: CALL KEKNUM (XPP, YPP, HEIGHT, FNUM, ANG, NDEC, MJUS)
Arguments:
Syntax: CALL KEKSYM (XPP, YPP, HEIGHT, IBCD, ANG, NCHAR, MJUS)
Arguments:
Special feature of KEKSYM:
You can plot special characters, for example the characters in fonts Symbol and Zapf Dingbats, by setting NCHAR=-999 and IBCD equal to the octal code of the character you want to plot.
Syntax: CALL KEKSYMC (XPP, YPP, HEIGHT, CSTR, ANG, NCHAR, MJUS)
Arguments:
Special feature of KEKSYMC:
You can plot special characters, for example the characters in fonts Symbol and Zapf Dingbats, by setting NCHAR=-999 and CSTR equal to the octal code of the character you want to plot. CSTR must be in single quotes.
Syntax: CALL KEKSYMO (XPP, YPP, HEIGHT, IBCD, ANG, NCHAR, MJUS)
Arguments:
Special feature of KEKSYMO:
You can plot special characters, for example the characters in fonts Symbol and Zapf Dingbats, by setting NCHAR=-999 and IBCD equal to the octal code of the character you want to plot.
Syntax: LS = LENSTR(STRING, NDIM)
Arguments:
Syntax: CALL NEWDEV (FLNAME, NCHAR)
Arguments:
Syntax: CALL NUMBER (XPP, YPP, HEIGHT, FNUM, ANG, NDEC)
Arguments: Same as KEKNUM.
Syntax: CALL ONEHLF (XPP, YPP, HEIGHT, ANG, MJUS)
Arguments:
Syntax: CALL OVERBAR (XPP, YPP, HEIGHT, IBCD, ANG, NCHAR, MJUS)
Arguments:
Syntax: CALL OVERSBSP (XPP, YPP, HEIGHT, IBCD, ANG, NCHAR, MJUS, ISUB, NSUB, ISUP, NSUP)
Arguments:
Syntax: CALL OVERSBSPG (XPP, YPP, HEIGHT, ICH, ANG, CHAR, MJUS, ISUB, NSUB, ISUP, NSUP)
Arguments:
Syntax: CALL OVERSUB (XPP, YPP, HEIGHT, IBCD, ANG, NCHAR, MJUS, ISUB, NSUB)
Arguments:
Syntax: CALL OVERSUBG(XPP, YPP, HEIGHT, ICH, ANG, NCHAR, MJUS, ISUB, NSUB)
Arguments:
Syntax: CALL OVERSUP (XPP, YPP, HEIGHT, ICH, ANG, NCHAR, MJUS, ISUP, NSUP)
Arguments:
Syntax: CALL OVERSUPG (XPP, YPP, HEIGHT, ICH, ANG, NCHAR, MJUS, ISUP, NSUP)
Arguments:
Syntax: CALL OVRGRK (XPP, YPP, HEIGHT, ICH, ANG, NCHAR, MJUS)
Arguments:
Syntax: CALL PLOT (XPP, YPP, IPEN)
Arguments:
Syntax: CALL PLOTND
Arguments: None.
You must call PLOTND (or PLOT ( 0., 0., 999) ) as the last plotting call in the application program.
Syntax: CALL PLSMIN (XPP, YPP, HEIGHT, ANG, MJUS)
Arguments:
Syntax: CALL PRIME (XPP, YPP, HEIGHT, ANG, MJUS)
Arguments:
Syntax: CALL PSINIT (PRTRT)
Arguments:
PRTRT Logical variable indicating the paper orientation. If PRTRT=.TRUE., the paper is oriented in portrait mode, i.e. long side of page is vertical. If PRTRT=.false., the paper is oriented in landscape mode, i.e. long side of page is horizontal.
Syntax: CALL RECT (XX1, YY1, XX2, YY2, HEIGHT)
Arguments:
Syntax: CALL RECTFILC (XX1, YY1, XX2, YY2, HEIGHT, RED, GREEN BLUE)
Arguments:
Syntax: CALL RECTFILG (XX1, YY1, XX2, YY2, HEIGHT, GRYLEV)
Arguments:
Syntax: CALL ROTATE ( ANG )
Arguments:
ANGLE Angle, measured counterclockwise, to rotate the current coordinate system.
Syntax: CALL RRECT (XX1, YY1, WIDTH, HEIGHT, RAD, ANG, FILL)
Arguments:
Syntax: CALL SETCOLR (RED, GREEN, BLUE)
Arguments:
Syntax: CALL SETFNT (NFONT)
Arguments:
Syntax: CALL SETGRY (GRYLVL)
Arguments:
GRYLVL Gray level between 0. (black) and 1. (white).
Syntax: CALL SETLW (RLW)
Arguments:
Syntax: CALL SIGMA (XPP, YPP, HEIGHT, ANG, LOWER, NL, LUPPER, NU)
Arguments:
Syntax: CALL SLDCRV (XARR, YARR, NPTS, THK)
Arguments:
Syntax: CALL SLDLIN (X1, Y1, X2, Y2, THK)
Arguments:
Syntax: CALL SQRSGN (XPP, YPP, HEIGHT, RLEN)
Arguments:
Syntax: CALL SQUARE (XC, YC, SIDE)
Arguments:
Syntax: CALL STROKE
Arguments: None.
Syntax: CALL SUBBER (ISUB, NSUB, SIZE, ANG)
Arguments:
Note: SUBBER must be called immediately after the call to create the subscripted variable.
Syntax: CALL SUBBERSP (NSET, NFNT, ITITLE, NCHR, HEIGHT, ANG
Arguments:
Note: SUBBERSP must be called immediately after the call to create the subscripted variable.
Syntax: CALL SUBSUP (ISUB, NSUB, ISUP, NSUP, SIZE, ANG)
Arguments:
Note: SUBSUP must be called immediately after the call to create the subscripted and superscripted variable.
Syntax: CALL SUBSUPSP (NSUB, NFNTSB, ITITLESB, NCHRSB, NSUP, NFNTSP, ITITLESP, NCHRSP, HEIGHT, ANG)
Arguments:
Note: SUBSUPSP must be called immediately after the call to create the subscripted variable.
Syntax: CALL SUPER (ISUP, NSUP, SIZE, ANG)
Arguments:
Note: SUPER must be called immediately after the call to create the superscripted variable.
Syntax: CALL SUPERSP (NSET, NFNT, ITITLE, NCHR, HEIGHT, ANG)
Arguments:
Note: SUPERSP must be called immediately after the call to create the superscripted variable.
Syntax: CALL SYMBOL (XPP, YPP, HEIGHT, IBCD, ANG, NCHAR)
Arguments:
This section describes the user-level subroutines in the PSPLOT plotting library. These routines are Fortran-callable from an application program. Below is a brief summary of the subroutines, followed by an alphabetical listing of each subroutine containing a more detailed description of its function, syntax, and calling arguments.
Note that the code examples here are shown in black and white and grayscale, as that is how they are produced in the hardcopy User's Manual. PSPLOT fully supports color graphics.
ARC
Purpose: ARC draws an arc having a specified radius and arc center. Code ExampleSyntax: CALL ARC (XC, YC, RAD, ANG1, ANG2)
Arguments:
AROHED
Purpose: AROHED draws an arrowhead at a specified location. Code ExampleSyntax: CALL AROHED (XPP, YPP, DIR, AROLNP, SPRANG, LOCXY)
Arguments:
ARROW
Purpose: ARROW draws an arrow, with vector length, at a specified location. Code ExampleSyntax: CALL ARROW (XSS, YSS, XPP, YPP, AROLNP, SPRANG, LOCXY )
Arguments:
AXIS
Purpose: AXIS draws an axis of a graph, with user-specified axis titles. Tick marks are drawn with a spacing of one inch. Code ExampleSyntax: CALL AXIS (XPP, YPP, IBCD, NC, AXLEN, THETA, RMIN, DEL)
Arguments:
BLKSTP
Purpose: BLKSTP strips out embedded blanks in a character string. It returns the new character string and the number of characters in the new string.Syntax: CALL BLKSTP (STR1, NDIM, STR2, NC)
Arguments:
BORDER
Purpose: BORDER draws a rectangular border with tick marks. The lower left corner of the border is located at the current plot origin. Code ExampleSyntax: CALL BORDER (XLEN, YLEN, ITIC, IBRD, MAJX, MINX, MAJY, MINY)
Arguments:
CHOPIT
Purpose: CHOPIT logically closes the current graphics page and begins a new one.Syntax: CALL CHOPIT (XPP, YPP)
Arguments:
Note: XPP and YPP are coordinates independent of the current scaling factor. That is, XPP and YPP represent actual inches, not scaled coordinates. The current scaling factor is reinstated after the new coordinate origin is set.
Subroutine CHOPIT should not be confused with subroutine PLOTND, which is called once at the end of each plotting session and which closes the entire output PostScript file.
CIRCLE
Purpose: CIRCLE draws a circle. Code ExampleSyntax: CALL CIRCLE (XC, YC, RAD, FILL)
Arguments:
CLIP
Purpose: CLIP inserts the PostScript command clip into the output file.Syntax: CALL CLIP
Arguments: None.
Note: Most uses of this command are bracketed by calls to GSAV and GREST.
CLIPBOX
Purpose: CLIPBOX defines a clipping region. Code ExampleSyntax: CALL CLIPBOX (XPTS, YPTS, NPTS)
Arguments:
COLBOX
Purpose: COLBOX fills a region with a specified color.Syntax: CALL COLBOX (XPTS, YPTS, NPTS, RED, GREEN, BLUE)
Arguments:
CONCOLR
Purpose: CONCOLR draws color contour plots of a two-dimensional array of regularly spaced data.Syntax: CALL CONCOLR (ARR, IMAX, IEXT, JEXT, XLEN, YLEN, CVAL, COLOR, NVAL, IOFFP, SPVAL)
Arguments:
CONFILL
Purpose: CONFILL draws grayscale contour plots of a two-dimensional array of regularly spaced data. Code ExampleSyntax: CALL CONFILL (ARR, IMAX, IEXT, JEXT, XLEN, YLEN, CVAL, GRYLEV, NVAL, IOFFP, SPVAL)
Arguments:
CONREC
Purpose: CONREC draws contour plots of a two-dimensional array of regularly spaced data. Code ExampleSyntax: CALL CONREC (ARR, IMAX, IEXT, JEXT, XLEN, YLEN, CVAL, NVAL)
Arguments:
Special features of CONREC:
CURVE
Purpose: CURVE draws a curve between two points, given the beginning and ending curve slopes. Code ExampleSyntax: CALL CURVE (X1, Y1, X2, Y2, X3, Y3, X4, Y4, CONTIN)
Arguments:
Note: The curve produced by CURVE is not automatically stroked.
DRWCRV
Purpose: DRWCRV draws a solid curve. Code ExampleSyntax: CALL DRWCRV (XARR, YARR, NPTS, THK, CLOSER)
Arguments:
DRWTRI
Purpose: DRWTRI draws an equilateral triangle. Code ExampleSyntax: CALL DRWTRI (XC, YC, SIDE, THK)
Arguments:
DSHCRV
Purpose: DSHCRV connects points in two data arrays using a line with a specified dash pattern. Code ExampleSyntax: CALL DSHCRV (XARR, YARR, NPTS, IDSHPN, THK)
Arguments:
DSHLIN
Purpose: DSHLIN connects two points using a line with a specified dash pattern. Code ExampleSyntax: CALL DSHLIN (X1, Y1, X2, Y2, IDSHPN, THK)
Arguments:
FACTOR
Purpose: FACTOR enlarges or reduces the size of a plot by a specified ratio.Syntax: CALL FACTOR (FACT)
Arguments:
FAROHED
Purpose: FAROHED draws a "fancy" arrowhead at a specified location. Code ExampleSyntax: CALL FAROHED (XPP, YPP, DIR, AROLNP, SPRANG, LOCXY, FILL)
Arguments:
FILLBOX
Purpose: FILLBOX fills a shape with a specified gray level. Code ExampleSyntax: CALL FILLBOX (XARR, YARR, NPTS, GRY)
Arguments:
Note: The current gray level remains at value GRY after exiting FILLBOX.
FILRGN
Purpose: FILRGN is the same as FILLBOX, except it restores the current gray level after filling. Code ExampleSyntax: CALL FILRGN (XARR, YARR, NPTS, GRY)
Arguments:
FILRGNC
Purpose: FILRGNC fills a region with the current gray level or color.Syntax: CALL FILRGNC (XARR, YARR, NPTS)
Arguments:
GREST
Purpose: GREST calls the PostScript operator grestore. It is useful after establishing and using a clipping region when it is no longer needed.Syntax: CALL GREST
Arguments: None.
GREST is used to restore the graphics state of a PostScript page. It is called after a clipping region has been established and is no longer needed. GREST is used in conjunction with GSAV.
GRKSYM
Purpose: GRKSYM plots a Greek symbol. Code ExampleSyntax: CALL GRKSYM (XPP, YPP, HEIGHT, ICH, ANG, NCHAR, MJUS)
Arguments:
GSAV
Purpose: GSAV calls the PostScript operator gsave. It is useful before establishing and using a clipping region.Syntax: CALL GSAV
Arguments: None.
GSAV is used to save the graphics state of the PostScript page prior to defining a clipping region. After the clipping region is used, GREST is called to restore the original graphics state.
HILITEC
Purpose: HILITEC prints text surrounded by a rectangular box (color).Syntax: CALL HILITEC (XPP, YPP, HEIGHT, CSTR, ANG, EDG, JUSX, JUSY, FRED, FGREEN, FBLUE, BRED, BGREEN, BBLUE)
Arguments:
HILITEG
Purpose: HILITEG prints text surrounded by a rectangular box (grayscale). Code ExampleSyntax: CALL HILITEG (XPP, YPP, HEIGHT, CSTR, ANG, EDG, JUSX, JUSY, FGRY, BGRY)
Arguments:
INTEGRAL
Purpose: INTEGRAL plots an integral with upper and lower limits. Code ExampleSyntax: CALL INTEGRAL (XPP, YPP, HEIGHT, ANG, LOWER, NL, LUPPER, NU)
Arguments:
KEKEXP
Purpose: KEKEXP plots a floating point number in exponential format. Code ExampleSyntax: CALL KEKEXP (XPP, YPP, HEIGHT, FNUM, ANG, NDEC, MJUS)
Arguments:
KEKFLT
Purpose: KEKFLT is the same as KEKNUM.Syntax: CALL KEKFLT (XPP, YPP, HEIGHT, FNUM, ANG, NDEC, MJUS)
Arguments: Same as KEKNUM.
KEKNUM
Purpose: KEKNUM plots a floating point number in floating point format. Code ExampleSyntax: CALL KEKNUM (XPP, YPP, HEIGHT, FNUM, ANG, NDEC, MJUS)
Arguments:
KEKSYM
Purpose: KEKSYM plots a character string. Code ExampleSyntax: CALL KEKSYM (XPP, YPP, HEIGHT, IBCD, ANG, NCHAR, MJUS)
Arguments:
Special feature of KEKSYM:
You can plot special characters, for example the characters in fonts Symbol and Zapf Dingbats, by setting NCHAR=-999 and IBCD equal to the octal code of the character you want to plot.
KEKSYMC
Purpose: KEKSYMC plots a character string. Same as KEKSYM, but text is input as a character string rather than Hollerith.Syntax: CALL KEKSYMC (XPP, YPP, HEIGHT, CSTR, ANG, NCHAR, MJUS)
Arguments:
Special feature of KEKSYMC:
You can plot special characters, for example the characters in fonts Symbol and Zapf Dingbats, by setting NCHAR=-999 and CSTR equal to the octal code of the character you want to plot. CSTR must be in single quotes.
KEKSYMO
Purpose: KEKSYMO plots a character string; however, the characters are outlined rather than filled (solid). Code ExampleSyntax: CALL KEKSYMO (XPP, YPP, HEIGHT, IBCD, ANG, NCHAR, MJUS)
Arguments:
Special feature of KEKSYMO:
You can plot special characters, for example the characters in fonts Symbol and Zapf Dingbats, by setting NCHAR=-999 and IBCD equal to the octal code of the character you want to plot.
LENSTR
Purpose: LENSTR is a function whose returned value is the number of characters in the character string argument after trailing blanks have been removed.Syntax: LS = LENSTR(STRING, NDIM)
Arguments:
NEWDEV
Purpose: NEWDEV specifies a non-default filename which will contain the application program's output PostScript plot file.Syntax: CALL NEWDEV (FLNAME, NCHAR)
Arguments:
NUMBER
Purpose: NUMBER is the same as KEKNUM with left justification.Syntax: CALL NUMBER (XPP, YPP, HEIGHT, FNUM, ANG, NDEC)
Arguments: Same as KEKNUM.
ONEHLF
Purpose: ONEHLF plots the symbol.Syntax: CALL ONEHLF (XPP, YPP, HEIGHT, ANG, MJUS)
Arguments:
OVERBAR
Purpose: OVERBAR plots a character string with an overbar. Code ExampleSyntax: CALL OVERBAR (XPP, YPP, HEIGHT, IBCD, ANG, NCHAR, MJUS)
Arguments:
OVERSBSP
Purpose: OVERSBSP plots a subscripted and superscripted character string with an overbar. The overbar extends to cover both the subscripts and superscripts.Syntax: CALL OVERSBSP (XPP, YPP, HEIGHT, IBCD, ANG, NCHAR, MJUS, ISUB, NSUB, ISUP, NSUP)
Arguments:
OVERSBSPG
Purpose: OVERSBSPG plots a subscripted and superscripted Greek symbol with an overbar. The overbar extends to cover both the subscripts and superscripts. Code ExampleSyntax: CALL OVERSBSPG (XPP, YPP, HEIGHT, ICH, ANG, CHAR, MJUS, ISUB, NSUB, ISUP, NSUP)
Arguments:
OVERSUB
Purpose: OVERSUB plots a subscripted character string with an overbar. The overbar extends to cover the subscripts. Code ExampleSyntax: CALL OVERSUB (XPP, YPP, HEIGHT, IBCD, ANG, NCHAR, MJUS, ISUB, NSUB)
Arguments:
OVERSUBG
Purpose: OVERSUBG plots a subscripted Greek symbol with an overbar. The overbar extends to cover the subscript. Code ExampleSyntax: CALL OVERSUBG(XPP, YPP, HEIGHT, ICH, ANG, NCHAR, MJUS, ISUB, NSUB)
Arguments:
OVERSUP
Purpose: OVERSUP plots a superscripted character string with an overbar. The overbar extends to cover the subscript. Code ExampleSyntax: CALL OVERSUP (XPP, YPP, HEIGHT, ICH, ANG, NCHAR, MJUS, ISUP, NSUP)
Arguments:
OVERSUPG
Purpose: OVERSUPG plots a subscripted Greek character with an overbar. The overbar extends to cover the superscript. Code ExampleSyntax: CALL OVERSUPG (XPP, YPP, HEIGHT, ICH, ANG, NCHAR, MJUS, ISUP, NSUP)
Arguments:
OVRGRK
Purpose: OVRGRK plots a Greek symbol with an overbar. Code ExampleSyntax: CALL OVRGRK (XPP, YPP, HEIGHT, ICH, ANG, NCHAR, MJUS)
Arguments:
PLOT
Purpose: PLOT is the most fundamental user-level plotting command. It gives you direct control of pen movement (to any X, Y coordinate position) and pen status (up or down). Additionally, it allows you to re-define the current plotting origin. Code ExampleSyntax: CALL PLOT (XPP, YPP, IPEN)
Arguments:
PLOTND
Purpose: PLOTND closes the output PostScript plot file to terminate the current plot defined by the user application program.Syntax: CALL PLOTND
Arguments: None.
You must call PLOTND (or PLOT ( 0., 0., 999) ) as the last plotting call in the application program.
PLSMIN
Purpose: PLSMIN plots the symbol. Code ExampleSyntax: CALL PLSMIN (XPP, YPP, HEIGHT, ANG, MJUS)
Arguments:
PRIME
Purpose: PRIME plots the symbol '. Code ExampleSyntax: CALL PRIME (XPP, YPP, HEIGHT, ANG, MJUS)
Arguments:
PSINIT
Purpose: PSINIT is called to begin a plotting session. It must be called before any other plotting command, with the exception of NEWDEV.Syntax: CALL PSINIT (PRTRT)
Arguments:
PRTRT Logical variable indicating the paper orientation. If PRTRT=.TRUE., the paper is oriented in portrait mode, i.e. long side of page is vertical. If PRTRT=.false., the paper is oriented in landscape mode, i.e. long side of page is horizontal.
RECT
Purpose: RECT draws a rectangle (or square). Code ExampleSyntax: CALL RECT (XX1, YY1, XX2, YY2, HEIGHT)
Arguments:
RECTFILC
Purpose: RECTFILC draws a rectangle (or square) and fills it with a specified red, green, and blue color levels.Syntax: CALL RECTFILC (XX1, YY1, XX2, YY2, HEIGHT, RED, GREEN BLUE)
Arguments:
RECTFILG
Purpose: RECTFILG draws a rectangle (or square) and fills it with a specified gray level. Code ExampleSyntax: CALL RECTFILG (XX1, YY1, XX2, YY2, HEIGHT, GRYLEV)
Arguments:
ROTATE
Purpose: ROTATE rotates the current coordinate system by a specified angle. Essentially, ROTATE issues the PostScript rotate command.Syntax: CALL ROTATE ( ANG )
Arguments:
ANGLE Angle, measured counterclockwise, to rotate the current coordinate system.
RRECT
Purpose: RRECT draws a rectangle (or square).with rounded corners. It can then fill the rectangle with the current gray level or RGB values. Code ExampleSyntax: CALL RRECT (XX1, YY1, WIDTH, HEIGHT, RAD, ANG, FILL)
Arguments:
SETCOLR
Purpose: SETCOLR sets the current red, green, and blue color levels.Syntax: CALL SETCOLR (RED, GREEN, BLUE)
Arguments:
SETFNT
Purpose: SETFNT sets the current font. Code ExampleSyntax: CALL SETFNT (NFONT)
Arguments:
SETGRY
Purpose: SETGRY sets the current gray level. Code ExampleSyntax: CALL SETGRY (GRYLVL)
Arguments:
GRYLVL Gray level between 0. (black) and 1. (white).
SETLW
Purpose: SETLW sets the current line width. Code ExampleSyntax: CALL SETLW (RLW)
Arguments:
SIGMA
Purpose: SIGMA draws the symbol , with upper and lower limits. Code ExampleSyntax: CALL SIGMA (XPP, YPP, HEIGHT, ANG, LOWER, NL, LUPPER, NU)
Arguments:
SLDCRV
Purpose: SLDCRV connects points in two data arrays using a line with a specified thickness. Code ExampleSyntax: CALL SLDCRV (XARR, YARR, NPTS, THK)
Arguments:
SLDLIN
Purpose: SLDLIN connects two points using a line with a specified thickness. Code ExampleSyntax: CALL SLDLIN (X1, Y1, X2, Y2, THK)
Arguments:
SQRSGN
Purpose: SQRSGN draws a radical (square root) sign. Code ExampleSyntax: CALL SQRSGN (XPP, YPP, HEIGHT, RLEN)
Arguments:
SQUARE
Purpose: SQUARE draws a centered square. Code ExampleSyntax: CALL SQUARE (XC, YC, SIDE)
Arguments:
STROKE
Purpose: STROKE calls the PostScript operator stroke (which paints or draws the current path).Syntax: CALL STROKE
Arguments: None.
SUBBER
Purpose: SUBBER draws a subscript. Code ExampleSyntax: CALL SUBBER (ISUB, NSUB, SIZE, ANG)
Arguments:
Note: SUBBER must be called immediately after the call to create the subscripted variable.
SUBBERSP
Purpose:SUBBERSP draws a subscript of "special" characters. Code ExampleSyntax: CALL SUBBERSP (NSET, NFNT, ITITLE, NCHR, HEIGHT, ANG
Arguments:
Note: SUBBERSP must be called immediately after the call to create the subscripted variable.
SUBSUP
Purpose: SUBSUP draws a subscript and superscript. Code ExampleSyntax: CALL SUBSUP (ISUB, NSUB, ISUP, NSUP, SIZE, ANG)
Arguments:
Note: SUBSUP must be called immediately after the call to create the subscripted and superscripted variable.
SUBSUPSP
Purpose: SUBSUPSP draws subscripts and superscripts of "special" characters. Code ExampleSyntax: CALL SUBSUPSP (NSUB, NFNTSB, ITITLESB, NCHRSB, NSUP, NFNTSP, ITITLESP, NCHRSP, HEIGHT, ANG)
Arguments:
Note: SUBSUPSP must be called immediately after the call to create the subscripted variable.
SUPER
Purpose: SUPER draws a superscript. Code ExampleSyntax: CALL SUPER (ISUP, NSUP, SIZE, ANG)
Arguments:
Note: SUPER must be called immediately after the call to create the superscripted variable.
SUPERSP
Purpose: SUPERSP draws a superscript of "special" characters. Code ExampleSyntax: CALL SUPERSP (NSET, NFNT, ITITLE, NCHR, HEIGHT, ANG)
Arguments:
Note: SUPERSP must be called immediately after the call to create the superscripted variable.
SYMBOL
Purpose: SYMBOL plots a character string. It is similar to subroutine KEKSYM, except that justification and continuation are not supported. Code ExampleSyntax: CALL SYMBOL (XPP, YPP, HEIGHT, IBCD, ANG, NCHAR)
Arguments: