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).

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