Name: BARS    10,20
BARS plots bar graphs.
The call is:  CALL BARS (XRAY, Y1RAY, Y2RAY, N)       level 2, 3
         or:  void bars (float *xray, float *y1ray, float y2ray,
                                                         int n); 
XRAY          is an array  of user coordinates  defining the po-
              sition of the bars on the X-axis.
Y1RAY         is an array  of user  coordinates  containing  the
              start points of the bars on the Y-axis.
Y2RAY         is an array  of user  coordinates  containing  the
              end points of the bars on the Y-axis.
N             is the number of bars.
Notes:      - Shading patterns of bars can be selected with SHD-
              PAT or MYPAT. Shading numbers will be  incremented
              by 1 after every call to BARS.
            - Legends can be plotted for bar graphs.
Name: BARTYP  20
The routine BARTYP defines vertical or horizontal bars.
The call is:  CALL BARTYP (CTYP)                   level 1, 2, 3
         or:  void bartyp (char *ctyp);
CTYP          is a character string defining the bar type.
  = 'VERT'    means that vertical bars will be plotted.
  = 'HORI'    means  that  horizontal  bars will be plotted.  If
              this parameter is used,  XRAY defines the position
              of the bars  on the Y-axis while  Y1RAY  and Y2RAY
              define the position of the bars on the X-axis.
  = '3DVERT'  defines vertical 3-D bars.
  = '3DHORI'  defines horizontal 3-D bars.
                                         Default: CTYP = 'VERT'.
Name: CHNBAR  20
CHNBAR modifies colours and shading patterns for single bars.
The call is:  CALL CHNBAR (CATT)                   level 1, 2, 3
CATT          is a character string defining bar attributes.
 = 'NONE'     means that all bars will  be plotted with the cur-
              rent colour and shading pattern.
 = 'COLOR'    means that the colour is changed for each bar.
 = 'PATTERN'  means that  the  shading  pattern  is changed  for
              each bar.
 = 'BOTH'     means that the colour and shading pattern is chan-
              ged for each bar.
                                         Default: CATT = 'NONE'.
Notes:      - The sequence  of colours is:    WHITE/BLACK,  RED,
              GREEN, YELLOW, BLUE, ORANGE, CYAN, MAGENTA.
              The sequence of shading patterns is 0 - 17.
              Colour  and  pattern cycles  can  be changed  with
              CLRCYC and PATCYC.
            - If the routine BARCLR is used, the changing of co-
              lours will be ignored.  
Name: BARMOD  20
BARMOD modifies the width of bars.
The call is:  CALL BARMOD (CMOD, COPT)             level 1, 2, 3
CMOD          is a character  string  that  can have  the values 
              'FIXED' and 'VARIABLE'.  If CMOD = 'VARIABLE', the 
              width of bars plotted by  the routine BARS will be
              variable. In that case, XWTH should have a positi-
              ve value in BARWTH since the width of bars is cal-
              culated in a simular way as described in BARWTH.
COPT          is a  character string that must contain the value
              'WIDTH'.              Default: ('FIXED', 'WIDTH').
Name: BARPOS  20
The position of the bars is determined  by the parameters  XRAY,
Y1RAY and Y2RAY. The routine BARPOS can be used to select prede-
fined positions. The parameters  XRAY, Y1RAY and Y2RAY will con-
tain the calculated positions.
The call is:  CALL BARPOS (COPT)                   level 1, 2, 3
         or:  void barpos (char *copt);
COPT          is a character string that defines the position of
              the bars.
  = 'NONE'    means that the  positions are defined  only by the
              parameters in BARS.
  = 'TICKS'   means  that  the bars  will  be centred  at  major
              ticks. XRAY must be a dummy vector.
  = 'AXIS'    means that vertical bars start  at the  X-axis and
              horizontal bars  at the  Y-axis.  Y1RAY must  be a
              dummy vector.
  = 'BOTH'    activates the options 'TICKS' and 'AXIS'. XRAY and
              Y1RAY must be dummy arrays.
                                         Default: COPT = 'NONE'.
Name: BARGRP  20
The routine  BARGRP  puts bars with the same axis position  into
groups.  The number of group elements  should be the same as the
number of calls to the routine BARS.
The call is:  CALL BARGRP (NGRP, GAP)              level 1, 2, 3
         or:  void bargrp (int ngrp, float gap);
NGRP          is the number of bars defining one group.
GAP           defines the spacing between group bars.  If GAP is
              positive, the value GAP * W is used where W is the
              width of a single bar. If GAP is negative, the po-
              sitive value of GAP is used where GAP must be spe-
              cified in plot coordinates.
Name: BARCLR  20
The routine  BARCLR  defines the colours of bars. Different col-
ours can be defined for the sides of 3-D bars.
The call is:  CALL BARCLR (IC1, IC2, IC3)          level 1, 2, 3
         or:  void barclr (int ic1, int ic2, int ic3);
IC1, IC2, IC3 are colour  numbers  between -1  and 255  for  the 
              front, side and  top planes of 3-D bars. The value
              -1 means  that  the corresponding plane is plotted
              with the current colour.
                                          Default: (-1, -1, -1).
Name: BARBOR  20
The routine  BARBOR defines the colour of borders plotted around
the bars.  By default, a border in the current colour is plotted
around 2-D bars,  and borders in the foreground colour are plot-
ted around 3-D bars.
The call is:  CALL BARBOR (IC)                     level 1, 2, 3
         or:  void barbor (int ic);
IC            is a colour number between -1 and 255.
                                                Default: IC = -1
Name: BAROPT  20
The routine BAROPT modifies the appearance of 3-D bars.
The call is:  CALL BAROPT (XF, ANG)                level 1, 2, 3
         or:  void baropt (float xf, float ang);
XF            is a  floatingpoint number  that defines the depth
              of bars.  IF XF = -1.,  the bar width is  used for
              the  bar depth.  IF XF > 0.,  XF is interpreted as
              the bar depth specified in plot coordinates.
ANG           defines an angle measured  in degrees between  the
              front and side planes of 3-D bars.
                                            Default: (-1., 45.).
Name: PIEGRF  21
PIEGRF plots pie charts.
The call is:  CALL PIEGRF (CBUF, N, XRAY, NSEG)          level 1
         or:  void piegrf (char *cbuf, int n, float *xray,
                                                      int nseg);
CBUF          is a  character string  containing  text lines for
              segment labels. More than one line can be  defined
              for labels. CBUF must be created with LEGLIN after
              calling LEGINI. If N is 0 in the  parameter  list,
              CBUF can be a dummy variable.
N             is the number of  text lines used  for one segment
              label.
XRAY          is an array of user coordinates.
NSEG          is the dimension of XRAY.
Notes:      - The centre  and the size of pies  is defined  by a
              region  that can be changed with the routines AXS-
              POS and AXSLEN.
            - PIEGRF sets the level to 2. Titles and legends can
              be plotted after PIEGRF is called.
            - Segment  labels can contain  several lines of text
              and the data values specified in PIEGRF.  Data va-
              lues can also be converted to percent values.
            - Segment labels are contained  within  a box  where
              the  thickness  of the border  can be changed with
              FRAME.
Name: PIETYP  21
The routine PIETYP defines 2-D or 3-D pie charts.
The call is:  CALL PIETYP (CTYP)                   level 1, 2, 3
         or:  void pietyp (char *ctyp);
CTYP          is a character string defining the pie type.
  = '2D'      defines a 2-D pie chart.
  = '3D'      defines a 3-D pie chart.
                                           Default: CTYP = '2D'.
Name: CHNPIE  21
CHNPIE defines colours and shading patterns for pie graphs.
The call is:  CALL CHNPIE (CATT)                   level 1, 2, 3
         or:  void chnpie (char *catt);
CATT          is a character string defining segment attributes.
  = 'NONE'    means that all pie  segments will be  plotted with
              the current colour and shading pattern.
  = 'COLOR'   means that every segment will have a different co-
              lour.
  = 'PATTERN' means  that  every  segment will have  a different
              shading pattern.
  = 'BOTH'    means  that every  segment will have both a diffe-
              rent colour and shading pattern.
                                      Default: CATT = 'PATTERN'.
Note:         The sequence  of colours is:    WHITE/BLACK,  RED,
              GREEN, YELLOW, BLUE, ORANGE, CYAN, MAGENTA.
              The sequence of shading patterns is 0 - 17.
              Colour  and  pattern cycles  can  be changed  with
              CLRCYC and PATCYC.
Name: PIECLR  21
The routine  PIECLR  defines colours for single pies.  Different
colours can be defined for the top  and front sides of 3-D pies.
PIECLR has no effect  if the  routine  CHNPIE is called with the
parameters 'COLOR' or 'BOTH'.
The call is:  CALL PIECLR (NC1RAY, NC2RAY, N)      level 1, 2, 3
         or:  void pieclr (int *nc1ray, int *nc2ray, int n);
NC1RAY,       are integer  arrays containing colour  numbers be-
  NC2RAY      tween  -1 and 255  for the top  and front sides of 
              pies.  The value  -1 means that the current colour
              is used.
N             is the dimension of NC1RAY and NC2RAY.
Name: PIEBOR  21
The routine  PIEBOR defines the colour of borders plotted around
the pies.  By default, a border in the current colour is plotted
around 2-D pies,  and borders in the foreground colour are plot-
ted around 3-D pies.
The call is:  CALL PIEBOR (IC)                     level 1, 2, 3
         or:  call piebor (int ic);
IC            is a colour number between -1 and 255.
                                                Default: IC = -1
Name: PIEOPT  21
The routine PIEOPT modifies the appearance of 3-D pies.
The call is:  CALL PIEOPT (XF, ANG)                level 1, 2, 3
         or:  void pieopt (float xf, float ang);
XF            is a scaling number  that defines the thickness of
              pies. The thickness is set to XF * radius.
ANG           defines an view angle measured in degrees.
                                            Default: (0.2, 45.).
Name: PIELAB  21
The routine PIELAB defines character strings that can be plotted
on the left or right side of data values within segment labels.
The call is:  CALL PIELAB (CLAB, CPOS)             level 1, 2, 3
         or:  void pielab (char *clab, char *cpos);
CLAB          is a character string displayed in segment labels.
CPOS          is a character string that defines the position of
              CLAB.
  = 'LEFT'    means that  CLAB will be plotted  on the left side
              of data values.
  = 'RIGHT'   means that CLAB will be plotted on the  right side
              of data values.
Note:         If percent and data values are plotted in  segment
              labels, PIELAB is only used for data values.
Name: PIEEXP  21
Pie segments  will be  offset by  8%  of the radius if PIEEXP is
called.
The call is:  CALL PIEEXP
         or:  void pieexp ();
Note:         Single segments  will be offset  if the correspon-
              ding values in PIEGRF are negative.
Name: PIEVEC  21
PIEVEC modifies  the arrows plotted between segments  and labels
that lie outside of segments.
The call is:    CALL PIEVEC (IVEC, COPT)           level 1, 2, 3
         or:    void pievec (int ivec, char *copt);
IVEC            defines the arrow head (see VECTOR).
COPT            is a  character string  that defines  the vector
                plotted between segments and labels.
  = 'NONE'      suppresses vectors.
  = 'STRAIGHT'  means that straight vectors will be plotted.
  = 'BROKEN'    means that broken vectors will be plotted.
                                      Default: (2301, 'BROKEN').
Name: USRPIE  21
USRPIE is a user-defined  subroutine  that can modify pie charts
such as suppressing certain labels.  USRPIE is called by  PIEGRF
for each segment.
The call is:  CALL USRPIE (ISEG, XDAT, XP, NRAD, NOFF, ANG, NVX,
                                                NVY, IDRW, IANN)
         or:  void usrpie (int iseg, float xdat, float xp, 
                      int *nrad, int *noff, float *ang,
                      int *nvx, int *nvy, int *idrw, int *iann); 
ISEG          is the segment index (starting with 1).
XDAT          is the data value  of the segment  as specified in
              PIEGRF.
XP            is the percent value of XDAT.
NRAD          is the segment radius in plot coordinates.
NOFF          is the segment  offset  in  plot coordinates  (de-
              fault: 0).
ANG           is the  offset  angle  measured  in  degrees  in a
              counter-clockwise direction. The default  value is
              the angle which bisects the segment.
NVX, NVY      shifts the segment label in the X- and Y-direction
              by NVX and NVY plot coordinates.
IDRW          defines  the plotting  of segments.  If  IDRW = 0,
              plotting will be suppressed (default: 1).
IANN          defines  the plotting of labels.  If IANN = 0, la-
              bels will be suppressed (default: 1).
Note:         The first  3 parameters of  USRPIE  are only given
              for information and cannot be changed by the user.
