PGPLOT version 5.1.0

Tested Systems

Version 5.1.0 has been tested with the following operating systems and
compilers. Drivers tested include: GI, GL, NU, PP, PS, TT, VT, WD, X2, XM,
XW (but not all combinations of drivers and systems have been tested
exhaustively).

   * SunOS 4.1.3_U1, Sun Fortran (f77) 1.3.1, GNU C (gcc) 2.7.0 (tested on
     SPARC 5).
   * Solaris 2.5 (SunOS 5.5), Sun Fortran (f77) 3.0.1, Sun C (cc) 3.0.1
     (tested on SPARC IPX).
   * Solaris 2.5 (SunOS 5.5), Sun Fortran (f77) 3.0.1, GNU C (gcc) 2.7.2
     (tested on SPARC IPX, SPARC Ultra-1).
   * OpenVMS AXP V6.1, DEC FORTRAN V6.2, DEC C V4.0, DECwindows Motif 1.1
     (tested on DEC 3000/M600).
   * OpenVMS VAX V6.1, DEC FORTRAN V6.2, DEC C V4.0, DECwindows Motif 1.2
     (tested on VAXstation 4000-90).

Changes in Version 5.1.0

New Features

  1. A major change in this version allows a program to have more than one
     PGPLOT device open at once. The devices can be of the same type, e.g.,
     two windows on an X-window workstation, or of different types, e.g., a
     Tektronix terminal emulator and a PostScript file. Up to 8 devices may
     be open at once. To support this new feature, four new routines have
     been added: PGOPEN, PGQID, PGSLCT, and PGCLOS, and many routines have
     been modified internally.

     At present, support for multiple devices of the same type is not
     complete. Each PGPLOT device driver needs to be modified to support
     multiple devices of the same type (i.e., served by the same driver), or
     to explicitly prohibit opening more than one device. Some of the older
     drivers have not yet been modified, and these drivers may give
     incorrect results if you attempt to use them to open two devices. There
     should never be any problem with unlike devices served by different
     drivers, e.g., /XTERM and /PS.

  2. A new driver (xmdriv) and support routines have been provided by Martin
     Shepherd to facilitate use of PGPLOT in a Motif application. Note that
     this is an experimental driver: feedback would be appreciated.

  3. The C function prototypes (cpgplot.h) and C binding are now compatible
     with C++ as well as C.

Bugs Fixed

A bug has been fixed in GRPOCL (support routine for PGPOLY). This could
cause overflow and incorrect plots if the world-coordinate values were
greater than about 1E18 (on most machines). A rounding-error has been fixed
in GRFA (support routine for PGPOLY); this could cause gaps between polygons
that should abut.

A bug has been fixed in GRPIXL (support routine for PGPIXL); this should
improve speed.

Two bugs have been fixed in the X-window driver (XWDRIV): it would sometimes
cause color maps to be set incorrectly; it allowed only 255 colors, not 256.

Drivers Removed

The following device drivers have been moved into directory
pgplot/drivers/old, and cannot be selected in a normal installation. I
believe that no-one is still using these drivers: ardriv.f (Args image
display), grdriv.f (Grinnell image display), ikdriv (Ikon pixel engine),
lidriv (Liacom display), pkdriv.f and pzdriv.f (Peritek image displays),
vedriv.f (Versatec V80 printer).

----------------------------------------------------------------------------

List of Changes

pgplot
     aaaread.me, copyright notice, makedoc, makehtml
          Updated date and version number.
     drivers.list
          Added XMDRIV (Motif driver). Do not select this unless you have
          the necessary Motif support and plan to write Motif applications
          that call PGPLOT. Removed obsolete drivers as noted above.
     makemake
          Added new subroutines. Added targets pgplot.hlp (VMS help file);
          pgplot-routines.tex (LaTeX); pgmdemo (example Motif application).
          Name changes: pgdisp is now pgdispd (directory); pgview is now
          pgview.app (NeXT).
     makehelp
          (New file.) Script to generate VMS help file.
     maketex
          (New file.) Script to generate LaTeX documentation.
     pgdispd
          Changed name of directory from pgdisp to pgdispd to avoid problems
          if you try to compile PGPLOT in the source directory.
     ver510.txt
          (New file.) List of changes since previous version.
pgplot/cpg
     cpgdemo.c
          Added a third page to exercise more routines.
     cpgplot.h
          Deleted file (note that this file needs to be created as part of
          the installation).
     pgbind.c
          Added C++ wrapper to the generated cpgplot.h file. Added support
          for const qualified declarations in the function prototypes.
pgplot/drivers
     gidriv.f, ppdriv.f, psdriv.f, ttdriv, wddriv.f, x2driv.c
          Modified to prevent concurrent access.
     gidriv.f, ppdriv.f, psdriv.f, wddriv.f
          On some systems the decoding of environment variables
          PGPLOT_xx_WIDTH, HEIGHT failed owing to a bad Fortran format.
          Rewritten to avoid this problem.
     nudriv.f
          Modified to allow concurrent access (up to 8 devices).
     xmdriv.c, pgxwin.c, pgxwin.h
          New files: PGPLOT driver for Motif applications (from Martin
          Shepherd).
     xwdriv.c
          Fix bug in handling query-color-representation.
     pgxwin_server.c
          Fix bug: 256 colors allowed, not 255.
pgplot/drivers/old
     New directory: several obsolete drivers (and associated drivers.list)
     have been moved from pgplot/drivers into this directory. These drivers
     should not be used; contact Tim Pearson if you still have a need for
     any of them.
pgplot/drivers/xmotif
     New directory: support routines and example program for Motif
     applications.
pgplot/examples
     Some of the example programs have been modified to use PGOPEN/PGCLOS
     instead of PGBEG/PGEND.
     pgdemo1.f
          Changed the pseudo-random number generator to avoid integer
          overflows.
     pgdemo6.f
          `+' key now cycles between cursor modes (rubber-band, cross-hair,
          etc.)
     pgdemo13.f
          (New program) Demonstration of two open devices.
     pgdemo14.f
          (New program) This program demonstrates a method of coding a user
          interface in PGPLOT. It requires the /XSERV device. For a more
          professional approach to graphical user interfaces, consider using
          the PGPLOT Motif driver.
pgplot/src
     (Many pg routines)
          Changed the C function prototypes to use the const qualifier where
          appropriate. This makes it easier to use the function prototypes
          with C++. Most arguments declared float * or char * are now const
          float * or const char * (except for returned values).
     grpckg1.inc
          Modified to allow up to 8 concurrent devices.
     grfa.f
          Rounding-error fix (thanks to Remko Scharroo; twice).
     grinit.f
          New routine: initializes common block (avoids BLOCK DATA).
     grpixl.f
          Minor bug fix (Remko Scharroo).
     grpocl.f
          Rewrite to avoid potential overflow (thanks to Tomasz Plewa).
     pgplot.inc
          Modified to allow up to 8 concurrent devices; many variables
          changed from scalars to arrays, with new names.
     pgask.f, pgband.f, pgbbuf.f, pgbeg.f, pgbox.f, pgcirc.f, pgebuf.f,
     pgend.f, pgerrb.f, pgerrx.f, pgerry.f, pggray.f, pghi2d.f, pgiden.f,
     pgimag.f, pglen.f, pgmtxt.f, pgncur.f, pgnoto.f, pgpage.f, pgpanl.f,
     pgpap.f, pgpoly.f, pgptxt.f, pgqah.f, pgqch.f, pgqcir.f, pgqcs.f,
     pgqfs.f, pgqhs.f, pgqinf.f, pgqitf.f, pgqtbg.f, pgqtxt.f, pgqvp.f,
     pgqvsz.f, pgqwin.f, pgrect.f, pgsah.f, pgsch.f, pgscir.f, pgsfs.f,
     pgshs.f, pgsitf.f, pgstbg.f, pgsubp.f, pgsvp.f, pgswin.f, pgvsiz.f,
     pgvstd.f, pgvw.f, pgwnad.f
          Modified to allow multiple concurrent devices.
     pgclos.f
          (New routine.) Closes the currently selected graphics device.
     pginit.f
          (New internal routine.) Initialize PGPLOT (this is to avoid an
          illegal initialization of data in COMMON).
     pgopen.f
          (New routine.) Open (and select) a graphics device; unlike PGBEG,
          this does not close any previously opened device.
     pgqid.f
          (New routine.) Returns the identifier of the currently selected
          graphics device, for use with PGSLCT.
     pgslct.f
          (New routine.) Selects one of the open devices for graphics
          output.
     pgqinf.f
          Changed version number to 5.1.0.
     pgshs.f
          Added checks on validity of arguments.
pgplot/sys_*
     Changes to configuration files to support compilation of the Motif
     driver and example programs.
pgplot/sys_arc
     Contents of directory updated for version 5.1.0 by Dave Crennell. See
     file AAAREADME.
pgplot/sys_linux
     The current version of gcc does not require system-specific variants of
     any files. The variants for f2c have been moved into a subdirectory
     pgplot/sys_linux/f77_src and the configuration files have been modified
     accordingly.
pgplot/sys_mac
     Contents of directory updated for version 5.0.3 by J. S. Salmento. See
     file aaaread.me.
pgplot/sys_msdos
     Contents of directory updated for version 5.1.0 by C. T. Dum. See file
     aaaread.me.
pgplot/sys_next
     Contents of directory updated for version 5.1.0 and NeXtStep 3.0 by
     Allyn Tennant. Configuration file for GNU Fortran (g77) added. See file
     aaaread.me.
pgplot/sys_sol2
     Added -R options to the ld commands in the configuration files; these
     help the demo programs to find the PGPLOT shared library at run time
     (assuming you haven't moved it after compilation.)
pgplot/sys_sun4
     Changed version number from 1.7 to 1.8 in all .conf files.
pgplot/sys_vms
     build.com, compile.com
          Added new routines to shared library transfer vector. Added
          instructions for linking with Motif library when needed.
     grlgtr.f
          This routine formerly converted all PGPLOT device specifications
          to uppercase for VMS. It now preserves case (VMS file and device
          names are not case-sensitive, but some PGPLOT device
          specifications can be).
     install.com
          Added new target (pgmdemo) to compile/install the Motif
          demonstration program.
     make_cpg.com
          Corrected to use the version of cpgplot.h in the current
          directory; set correct protection on generated files.
     make_pgdisp.com
          Changed name of directory from PGDISP to PGDISPD.
     make_pgmdemo.com
          (New file.) Used in compilation of the Motif example program.
pgplot/sys_win
     New directory: from Phil Seeger. Port of version 5.1.0 to MS
     PowerStation Fortran/Windows95 (or WindowsNT) environment. See file
     aaaread.me.

----------------------------------------------------------------------------
Tim Pearson, California Institute of Technology, tjp@astro.caltech.edu
Copyright  1996 California Institute of Technology
