These routines essentially format the command line to pass it later to the GR_EXEC subroutine, and are thus the less efficient routines of the GREG library. They are provided essentially for user convenience because the formatting needed to use GR_EXEC might be tedious. Note all GREG commands have the high level equivalent, but all can be used with GR_EXEC.
Each subroutine corresponds to a command, and each entry corresponds to an option of that command. The subroutine and entry names are built from the 4 first characters of the corresponding command and option names. The entries must be called before the subroutine, since it is this one which effectively transmit the command to GR_EXEC.
The conventional type of arguments are
NAME Character
ARG,ARG1,... Real*8
IARG,IARG1,... Integer*4
NARG Integer*4
When NARG is present, all arguments need not be passed : trailing arguments may be omitted. NARG is used to give the actual number of arguments passed after NARG itself and it must be set precisely. All arguments before NARG, usually the character string NAME, and the argument NARG must always be present (even if NAME=' '). Note that if ARG1 is missing, ARG2 cannot be present. Note also that the double quotes should not be passed for character strings. For instance, the interactive command LABEL ``A little toy'' should be replaced by CALL GR_LABE('A little toy').
Example : CALL GR_DRAW ('MARKER', 2, 0.3D0, 0.8D0)
Note that the ARG1 and ARG2 arguments are here expressed as constants, and the D exponent is required as they must be Real*8 values.
The high level routines are not yet fully guaranteed as up to date. In the following description, each high level subroutine is preceeded by the assumed syntax for the equivalent command. If this syntax differs from the current internal help description, using the discrepant parts of the high level routine will cause a fatal error, but common parts of the syntax can be used safely.
For the GTVL language, the following routines are available
CLEAR [Argument]
SUBROUTINE GR_CLEA(NAME)
DEVICE [Type [Descriptor]] [/OUTPUT Logical_Name]
SUBROUTINE GR_DEVI(NAME)
All arguments of command DEVICE being character strings, it is
easy to concatenate them into NAME.
For the GREG1 language, the routines are
AXIS Name [A1 A2] [/LOCATION X Y] [/TICK Orientation [BIG SMALL]]
[/LABEL Position] [/[NO]LOG] [/ABSOLUTE]
SUBROUTINE GR_AXIS(NAME,NARG,ARG1,ARG2) ! 28-Sep-1986
ENTRY GR_AXIS_LOCA(NARG,ARG1,ARG2)
ENTRY GR_AXIS_TICK(NAME,NARG,ARG1,ARG2)
ENTRY GR_AXIS_LABE(NAME)
ENTRY GR_AXIS_LOG
ENTRY GR_AXIS_NOLO
ENTRY GR_AXIS_ABSO
BOX [Arguments]
SUBROUTINE GR_BOX(NAME) ! 28-Sep-1986
ENTRY GR_BOX_ABSO
COLUMN [X Nx] [Y Ny] [E Ne] [/FILE File] [/LINES Lmin [Lmax]]
[/TABLE TableName]
SUBROUTINE GR_COLU(NAME) ! 28-Sep-1986
As this routine is normally of no use in the library version,
it requires you to code explicitly the remaining part of the
command line. Hence, it should be equivalent to use
either GR_EXEC('GREG1\COLUMN '//NAME)
or GR_EXEC1('COLUMN '//NAME)
CONNECT [/BLANKING Bval Eval] ! 28-Sep-1986
SUBROUTINE GR_CONN
ENTRY GR_CONN_BLAN(NARG,ARG1,ARG2)
DRAW [Action [X Y]] [/USER] [/BOX N] [/CHARACTER N] [/CLIP]
SUBROUTINE GR_DRAW(NAME,NARG,ARG1,ARG2)
ENTRY GR_DRAW_CHAR(NARG,IARG)
ENTRY GR_DRAW_USER
ENTRY GR_DRAW_BOX(NARG,IARG)
ENTRY GR_DRAW_CLIP
Note that no support is given for DRAW TEXT and DRAW FILL_AREA,
unless you specify in NAME all the arguments and set NARG to 0.
DRAW TEXT can easily be replaced by GR_DRAW('RELOCATE'...)
followed by a call to GR_LABE.
ERRORBAR NAME
SUBROUTINE GR_ERRO(NAME) ! 28-Sep-1986
HISTOGRAM [/BASE [Ybase]] [/BLANKING Bval Eval]
SUBROUTINE GR_HIST ! 28-Sep-1986
ENTRY GR_HIST_BASE(ARG)
ENTRY GR_HIST_BLAN(NARG,ARG1,ARG2)
LABEL "String" [/X] [/Y] [CENTERING N] [/APPEND]
SUBROUTINE GR_LABE(NAME) ! 28-Sep-1986
ENTRY GR_LABE_X
ENTRY GR_LABE_Y
ENTRY GR_LABE_CENT(IARG)
ENTRY GR_LABE_APPE
LIMITS [Xmin Xmax Ymin Ymax] [/XLOG] [/YLOG] [/RGDATA] [/REVERSE [X] [Y]]
[/BLANKING Bval Eval]
SUBROUTINE GR_LIMI(NARG,ARG1,ARG2,ARG3,ARG4) ! 28-Sep-1986
ENTRY GR_LIMI_XLOG
ENTRY GR_LIMI_YLOG
ENTRY GR_LIMI_RGDA
ENTRY GR_LIMI_REVE(NAME)
ENTRY GR_LIMI_BLAN(NARG,ARG1,ARG2)
Arguments of GR_LIMI can be omitted with the standard VAX
convention to indicate that automatic limit must be computed
for this one. For example
CALL GR_LIMI_XLOG
CALL GR_LIMI(4,0.d0, ,-10.d0,10.d0)
is equivalent to
CALL GR_EXEC1('LIMITS 0 * -10 10/XLOG')
Presently, there is no support for the fifth argument (Angular
unit or Absolute coordinates) and for the =, < and > possibilities
of command LIMITS in this High Level routine. To use these
possibilities, you should use directly GR_EXEC1('LIMITS ...').
PENCIL [N] [/COLOUR C] [/DASHED D] [/WEIGHT W] [/DEFAULT]
SUBROUTINE GR_PEN(NARG,IARG) ! 28-Sep-1986
ENTRY GR_PEN_DASH(IARG)
ENTRY GR_PEN_WEIG(IARG)
ENTRY GR_PEN_COLO(IARG)
ENTRY GR_PEN_DEFA
POINTS [Size] [/BLANKING Bval Eval]
SUBROUTINE GR_POIN(NARG,ARG1)
SUBROUTINE GR_POIN_BLAN(NARG,ARG1,ARG2)
RULE [X] [Y] [/MAJOR [/MINOR]
SUBROUTINE GR_RULE(NAME) ! 28-Sep-1986
ENTRY GR_RULE_MAJO
ENTRY GR_RULE_MINO
SET Something [Value1 [Value2]...]]]
SUBROUTINE GR_SET(NAME,NARG,ARG1,ARG2,ARG3,ARG4) ! 28-Sep-1986
SHOW
SUBROUTINE GR_SHOW(NAME) ! 28-Sep-1986
TICKSPACE SmallX BigX SmallY BigY ! 28-Sep-1986
SUBROUTINE GR_TICK(NARG,ARG1,ARG2,ARG3,ARG4)
The following commands correspond to the GREG2
Language.
EXTREMA [/BLANKING Bval Eval] [/PLOT]
SUBROUTINE GR_EXTR ! 28-Sep-1986
ENTRY GR_EXTR_BLAN(NARG,ARG1,ARG2)
ENTRY GR_EXTR_PLOT
LEVELS List
SUBROUTINE GR_LEVE(NAME)
Coding the list in the required format may be funny.
Use GR4_LEVELS or GR8_LEVELS instead, they are more convenient.
RGDATA File_Name [/SUBSET IX1 IY1 IX2 IY2]
SUBROUTINE GR_RGDA(NAME) ! 28-Sep-1986
ENTRY GR_RGDA_SUBS(NARG,IARG1,IARG2,IARG3,IARG4)
RGMAP [/ABSOLUTE Value] [/PERCENT Value] [/KEEP] [/BLANKING Bval Eval]
[/GREY Colour Ntry] [/PENS Pos Neg]
SUBROUTINE GR_RGMA ! 28-Sep-1986
ENTRY GR_RGMA_ABSO(ARG)
ENTRY GR_RGMA_PERC(ARG)
ENTRY GR_RGMA_BLAN(NARG,ARG1,ARG2)
ENTRY GR_RGMA_KEEP
ENTRY GR_RGMA_PENS(NARG,IARG1,IARG2)
No support is yet given for option /GREY because it is still
rather experimental.
Remember that if anything available in interactive seems to be missing in the previous list, you can always use GR_EXEC to access it.