Name: GRAF    6
GRAF plots a two-dimensional axis system.                level 1
The call is:  CALL GRAF (XA, XE, XOR, XSTEP, YA, YE, YOR, YSTEP)
         or:  void graf (float xa, float xe, float xor, float x-
              step, float ya, float ye, float yor, float ystep); 
XA, XE        are the lower and upper limits of the X-axis.
XOR, XSTEP    are the first X-axis label  and  the step  between
              labels.
YA, YE        are the lower and upper limits of the Y-axis.
YOR, YSTEP    are the first  Y-axis label  and the step  between
              labels.
Notes:      - GRAF must be called in  level 1 and  automatically
              sets the level to 2.  When  plotting  more  than 1
              axis system  on a page,  ENDGRF must be  called in
              between  each new set of axes in order  to set the
              level back to 1.
            - The axis scaling is linear  by default  and can be
              changed with AXSSCL. For logarithmic scaling,  the
              corresponding parameters in GRAF must be exponents
              of base 10.
            - If the  numerical value  of the lower limit of  an
              axis is larger  than the upper limit and the label
              step is negative,  axis scaling will be in descen-
              ding order.
Name: GRAFP   6
The routine GRAFP plots a two-dimensional polar axis system.
The call is:  CALL GRAFP (XE, XOR, XSTEP, YOR, YSTEP)    level 1
         or:  void grafp (float xe, float xor, float xstep,
                          float yor, float ystep);
XE            is upper limit  of the X-axis (radius coordinate).
XOR, XSTEP    are the first  X-axis label  and the  step between
              labels.
YOR, YSTEP    are the first  Y-axis label  and the  step between
              labels specified in degrees.  The Y-axis is scaled
              from 0 to 360 degrees.
Notes:      - The direction and position of the angle labels can
              be modified with the routine POLMOD.
            - GRAFP  is a  new name  for the old routine  POLAR,
              since polar  is also a C99 function.  The old rou-
              tine POLAR is still in the DISLIN libraries.  
Name: GRAFR   6
The routine  GRAFR  plots  a  two-dimensional  axis system for a
Smith chart,  where  the non negative  impedance  or  admittance
plane  is projected to a  complex reflexion  coefficient  plane,
which is displayed in the unity radius region. The projection is
done by  the formula  r = (z - 1) / (z + 1),  where z  and r are 
complex numbers. For admittance,  1 / z is used in the formula.
The call is:  CALL GRAFR (XRAY, N, YRAY, M)              level 1
         or:  void grafr (float *xray, int n, 
                          float *yray, int m);
XRAY          is an array of non negative real values of complex
              impedance or admittance data. The values are plot-
	      ted as labels at the X-axis.
N             is the dimension of XRAY.            
YRAY          is an array  of imaginary values of  complex impe-
              dance or admittance data.  The values  are plotted
	      as labels at the Y-axis (unity circle).
M             is the dimension of YRAY.            
Notes:      - The type of the  Smith  axis system,  impedance or
              admittance,  can be defined with the  routine AXS-
	      TYP. 
            - The conversion routine  GETRCO  calculates the re-
              flection factor r for a impedance z by the formula
              r = (z - 1) / (z + 1).  The reverse transformation
              z = (1 + r) / (1 - r)  is done by GETICO.
              For admittance,  1 / z is used for the conversions
	      above.
           -  Additional  grid  lines  in  a Smith chart  can be
              plotted with the routines GRIDRE and GRIDIM.
            - A  similar axis system  for a  Smith chart can  be
              created  with the normal GRAF  routine,  where the
              scaling is defined from -1.0 to 1.0 for both axes.
              For that case,  values must be converted by GETRCO
              to reflection factors  before passing them to plot
              routines. For GRAFR, this is done automatically in
              plot routines.
Name: ENDGRF  2,6
The routine ENDGRF terminates an axis system  and sets the level
to 1. This routine must be called when plotting more than 1 axis
system on a page.
The call is:  CALL ENDGRF                             level 2, 3
         or:  void endgrf ();
Note:         ENDGRF  contains a call of the routine SENDBF that
              can be disabled with the routine BUFMOD.
Name: AXGIT   6
AXGIT  plots  vertical  and  horizontal  lines through X = 0 and
Y = 0 in an axis system.
The call is:  CALL AXGIT                              level 2, 3
         or:  void axgit (); 
Name: XAXGIT  6
XAXGIT plots a horizontal line through Y = 0 in an axis system.
The call is:  CALL XAXGIT                             level 2, 3
         or:  void xaxgit ();
Name: YAXGIT  6
YAXGIT plots a vertical line through X = 0 in an axis system.
The call is:  CALL YAXGIT                             level 2, 3
         or:  void yaxgit ();
Name: CROSS   6
CROSS plots vertical and horizontal lines with additional  ticks 
through X = 0 and Y = 0 in an axis system.
The call is:  CALL CROSS                              level 2, 3
         or:  void cross ();
Name: XCROSS  6
XCROSS  plots a  horizontal  line with additional  ticks through
Y = 0 in an axis system.
The call is:  CALL XCROSS                             level 2, 3
         or:  void xcross ();
Name: YCROSS  6
YCROSS  plots a  vertical  line  with additional  ticks  through
X = 0 in an axis system.
The call is:  CALL YCROSS                             level 2, 3
         or:  void ycross ();
Name: GRDPOL  6
The routine GRDPOL plots a polar grid.
The call is:  CALL GRDPOL (IXGRID, IYGRID)            level 2, 3
         or:  void grdpol (int ixgrd, int iygrd);
IXGRID        is the numbers of circles between labels.
YGRID         is the numbers of sector lines between 360 de-
              grees.
Name: GRID    6
GRID overlays a grid on an axis system.
The call is:  CALL GRID (IXGRD, IYGRD)                level 2, 3
         or:  void grid (int ixgrd, int iygrd);
IXGRD, IYGRD  are the numbers of grid lines between labels.
Name: GRIDRE  6
GRIDRE  plots a grid  line of  a constant real  part  in a Smith
chart. 
The call is:  CALL GRIDRE (ZRE, ZIMG1, ZIMG2, N)         level 2
         or:  void gridre (float zre, float zimg1, float zimg2,
                           int n); 
ZRE           is the  constant  real  value  of  the  grid  line 
              (>= 0.0).
ZIMG1, ZIMG2  are the start and end  imaginary parts of the gird
              line. 
N             is the resolution  of the curve,  which  means the
              number  of  generated  points  between  ZIMG1  and 
              ZIMG2.
Name: GRIDIM  6
GRIDIM plots a grid line of a constant imaginary part in a Smith
chart. 
The call is:  CALL GRIDIM (ZIMG, ZRE1, ZRE2, N)          level 2
         or:  void gridim (float zimg, float zre1, float zre2,
                           int n);     
ZIMG          is the constant imaginary value  of the grid line.

ZRE1, ZRE2    are the start and end real parts of the  gird line
              (>= 0.0). 
N             is the resolution  of the curve.
Name: BOX2D   6
The routine  BOX2D  plots a  border  around  an axis system  (or
around the rectangle defined by AXSPOS and AXSLEN).
The call is:  CALL BOX2D                           level 1, 2, 3
         or:  void box2d ();
Name: TITLE   6
TITLE plots a title over an axis system.  The title may  contain
up to four lines of text designated with TITLIN.
The call is:  CALL TITLE                              level 2, 3
         or:  void title (); 
Name: ADDLAB  6
Additional  single labels  can be plotted on an axis system with
the routine ADDLAB.
The call is:  CALL ADDLAB (CSTR, V, ITIC, CAX)        level 2, 3
         or:  void addlab (const char *cstr, float v, int itic,
                           const char *cax);
CSTR          is a character string containing a label.
V             is a  user  coordinate that defines the axis posi-
              tion of the label.
ITIC          is an integer option  that  defines if a tick mark
              is plotted.  ITIC = 0 means  that no tick is plot-
              ted,  ITIC = 1 defines a minor tick and  ITICK = 2
              defines a major tick.
CAX           is a  character string  that defines the axis. CAX
              can have the values   'X',  'Y',  'Z',  'XTOP' and 
              'YRIGHT'.
Name: XAXIS   7
XAXIS plots a linear X-axis.                       level 1, 2, 3
The call is:  CALL XAXIS (A, B, OR, STP, NL, CSTR, IT, NX, NY)
         or:  void xaxis (float a, float b, float or, float stp,
              int nl, const char *cstr, int it, int nx, int ny);   
A, B          are the lower and upper limits of the axis.
OR, STP       are the first label and the step between labels.
NL            is the length of the axis in plot coordinates.
CSTR          is a character string containing the axis name.
IT            indicates how ticks,  labels and the axis name are
              plotted.  If IT = 0,  they are plotted in a clock-
              wise direction.  If IT = 1, they are plotted in an
              counter-clockwise direction.
NX, NY        are the  plot coordinates of the axis start point.
              The X-axis will be plotted from left to right.
Name: YAXIS   7
YAXIS plots a linear Y-axis.                       level 1, 2, 3
The call is:  CALL YAXIS (A, B, OR, STP, NL, CSTR, IT, NX, NY)
         or:  void yaxis (float a, float b, float or, float stp,
              int nl, const char *cstr, int it, int nx, int ny);   
A, B          are the upper and lower limits of the axis.
OR, STP       are the label and the step between labels.
NL            is the length of the axis in plot coordinates.
CSTR          is a character string containing the axis name.
IT            indicates how ticks,  labels and the axis name are
              plotted.  If IT = 0,  they are plotted in a clock-
              wise direction.  If IT = 1, they are plotted in an
              counter-clockwise direction.
NX, NY        are the  plot coordinates of the axis start point.
              The Y-axis will be plotted from bottom to top.
Name: XAXLG   7
XAXLG plots a logarithmic X-axis.                  level 1, 2, 3
The call is:  CALL XAXLG (A, B, OR, STP, NL, CSTR, IT, NX, NY)
         or:  void xaxlg (float a, float b, float or, float stp,
              int nl, const char *cstr, int it, int nx, int ny);   
A, B          are the upper and lower limits of the axis.
OR, STP       are the label and the step between labels.
NL            is the length of the axis in plot coordinates.
CSTR          is a character string containing the axis name.
IT            indicates how ticks,  labels and the axis name are
              plotted.  If IT = 0,  they are plotted in a clock-
              wise direction.  If IT = 1, they are plotted in an
              counter-clockwise direction.
NX, NY        are the  plot coordinates of the axis start point.
              The X-axis will be plotted from left to right.
Name: YAXLG   7
YAXLG plots a logarithmic Y-axis.                  level 1, 2, 3
The call is:  CALL YAXLG (A, B, OR, STP, NL, CSTR, IT, NX, NY)
         or:  void yaxlg (float a, float b, float or, float stp,
              int nl, const char *cstr, int it, int nx, int ny);   
A, B          are the upper and lower limits of the axis.
OR, STP       are the label and the step between labels.
NL            is the length of the axis in plot coordinates.
CSTR          is a character string containing the axis name.
IT            indicates how ticks,  labels and the axis name are
              plotted.  If IT = 0,  they are plotted in a clock-
              wise direction.  If IT = 1, they are plotted in an
              counter-clockwise direction.
NX, NY        are the  plot coordinates of the axis start point.
              The Y-axis will be plotted from bottom to top.
Name: YPOLAR  7
YPOLAR plots a polar Y-axis.                          level 2, 3
The call is:  CALL YPOLAR (A, B, OR, STP, CSTR, NDIST)
         or:  void ypolar (float a, float b, float or, float stp,
              const char *cstr, int ndist);   
A, B          are the upper and lower limits of the axis.
OR, STP       are the label and the step between labels.
CSTR          is a character string containing the axis name.
NDIST         is the distance  to the polar  or Smith circle in
              plot coordinates.
Name: GAXPAR  6
The routine GAXPAR calculates parameters for GRAF from a minimum
and maximum of data values.
The call is:  CALL GAXPAR (V1,V2,COPT,CAX,A,B,OR,STEP,NDIG)
                                                   level 1, 2, 3
         or:  gaxpar (float v1, float v2, const char *copt,
                      const char *cax, float *a, float *b, 
                      float *or, float *step, int *ndig);   
V1, V2        are the lower  and upper  limits  of the axis.  If
              V1 > V2, the calculated parameters will be in  de-
              scending order.
COPT          is  a character  string  that can have  the values
              'NOEXTEND' and 'EXTEND'.  For COPT = 'EXTEND', the
              calculated axis limits are extended to a full axis
              step.  Otherwise,  V1  and  V2  are  used  as axis 
              limits.
CAX           is a character string  that defines the axis.  CAX
              can have the values 'X', 'Y', and 'Z'.
A, B          are the calculated limits of the axis.
OR, STP       are  the  first  axis label  and the step  between
              labels.
NDIG          is the calculated number of digits after the deci-
              mal point that should be set with the routine LAB-
              DIG for the labels.
Notes:      - The same algorithm as in  SETSCL for setting auto-
              matic axis scaling is applied to GAXPAR.  
            - The current axis settings such as linear or  loga-
              rithmic  scaling  are used by  GAXPAR.  For  loga-
              rithmic scaling, the parameters V1 and V2  must be
              exponents of base 10.
