[grads] 10/20: upstream 2.1.0

Alastair McKinstry mckinstry at moszumanska.debian.org
Wed May 17 11:13:05 UTC 2017


This is an automated email from the git hooks/post-receive script.

mckinstry pushed a commit to branch debian/master
in repository grads.

commit 687514ee72e33d4ec47a01d4da2fea206bd35751
Author: Alastair McKinstry <mckinstry at debian.org>
Date:   Fri Oct 21 17:57:08 2016 +0100

    upstream 2.1.0
---
 COPYRIGHT                    |   9 +-
 INSTALL                      |   8 +-
 configure                    | 254 +++++++-------
 configure.ac                 |   2 +-
 doc/descriptorfile.html      |   8 +-
 doc/gadoc.html               | 182 +++-------
 doc/gradcomdgxprint.html     |   3 +-
 doc/gradcomdpdefwrite.html   |  71 ++++
 doc/gradcomdprintim.html     | 100 +++++-
 doc/gradcomdsdfwrite.html    |   4 +-
 doc/gradcomdsetmisswarn.html |  15 +
 doc/gradfunccoll2gr.html     |  11 +-
 doc/gradfuncmaskout.html     |  11 +-
 doc/indexalpha.html          |  11 +-
 doc/indexlist.html           | 787 ++++++++++++++++++++++++++++++++++++++++++-
 doc/templates.html           |   1 +
 src/Makefile.am              |  31 +-
 src/Makefile.in              |  75 +++--
 src/VERSION                  |   2 +-
 src/bufrscan.c               |   3 +-
 src/bufrstn.c                |   6 +-
 src/dodstn.c                 |   3 +-
 src/gabufr.c                 |   3 +-
 src/gabufr.h                 |   3 +-
 src/gabufrtbl.c              |   3 +-
 src/gacfg.c                  |   9 +-
 src/gaddes.c                 |  24 +-
 src/gaexpr.c                 |   3 +-
 src/gafunc.c                 |  36 +-
 src/gagmap.c                 |  60 +++-
 src/gagmap.h                 |   3 +-
 src/gagx.c                   |  59 ++--
 src/gaio.c                   | 103 ++++--
 src/galloc.c                 |   3 +-
 src/gamach.c                 |   3 +-
 src/gasdf.c                  |  93 +++--
 src/gauser.c                 | 102 +++++-
 src/gautil.c                 |  70 ++--
 src/grads.c                  |   5 +-
 src/grads.h                  |   7 +-
 src/grib2scan.c              |  14 +-
 src/gribmap.c                |   3 +-
 src/gribscan.c               |   3 +-
 src/gs.h                     |   3 +-
 src/gscrpt.c                 |   5 +-
 src/gstmp.c                  |   3 +-
 src/gx.h                     |   3 +-
 src/gxC.c                    |   3 +-
 src/gxC.h                    |   3 +-
 src/gxGD.c                   |   3 +-
 src/gxGD.h                   |   3 +-
 src/gxX.c                    |   5 +-
 src/gxX11.c                  |   3 +-
 src/gxchpl.c                 |   3 +-
 src/gxcntr.c                 |   5 +-
 src/gxdb.c                   | 338 +++++++++++++++++++
 src/gxdxwd.c                 |   3 +-
 src/gxmeta.c                 | 319 +-----------------
 src/gxprint.c                |   4 +-
 src/gxprintGD.c              |   3 +-
 src/gxshad.c                 |   3 +-
 src/gxshad2.c                |   3 +-
 src/gxstrm.c                 |   8 +-
 src/gxsubs.c                 |   6 +-
 src/gxwmap.c                 |   3 +-
 src/stnmap.c                 |   3 +-
 src/wx.h                     |   5 +-
 67 files changed, 2032 insertions(+), 914 deletions(-)

diff --git a/COPYRIGHT b/COPYRIGHT
index e816a72..bd7237e 100644
--- a/COPYRIGHT
+++ b/COPYRIGHT
@@ -1,11 +1,10 @@
     The Grid Analysis and Display System (GrADS) 
-
-    Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
+    Copyright (C) 1988-2016 by George Mason University 
 
     The Center for Ocean-Land-Atmosphere Studies (COLA) is the center
-    within IGES where GrADS is developed and maintained.
+    within George Mason University where GrADS is developed and maintained.
 
-    The copyright holders cann be contacted at:
+    The copyright holders can be contacted at:
 
     Center for Ocean-Land-Atmosphere Studies (COLA)
     George Mason University
@@ -33,7 +32,7 @@
 		       Version 2, June 1991
 
  Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
 
diff --git a/INSTALL b/INSTALL
index f02d9b8..362fa85 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,11 +1,11 @@
-	       GrADS - Grid Analysis and Display System
+	        GrADS - Grid Analysis and Display System
 			     Version 2.1
 
-                         http://iges.org/grads
+                      http://cola.gmu.edu/grads
 
 GrADS is distributed freely and is copyrighted under the GNU Public License. 
 Please read the COPYRIGHT file for more complete information. 
-For download information consult http://iges.org/grads/downloads.html
+For download information consult http://cola.gmu.edu/grads/downloads.php
 
 The executables contained in this tar file are typically placed in the
 directory /usr/local/bin. If you do not have write permission for your
@@ -27,7 +27,7 @@ After unpacking the first tar file, you should have the following executables:
      wgrib            See http://www.cpc.ncep.noaa.gov/products/wesley/wgrib.html
 
 A second tar file (data.tar.Z) contains the GrADS fonts and maps data sets is 
-also necessary and can be downloaded from http://iges.org/grads/downloads.html.
+also necessary and can be downloaded from http://cola.gmu.edu/grads/downloads.php
 
 The contents of data.tar are typically placed in the directory
 /usr/local/lib/grads, the default location for these files. If you do not have
diff --git a/configure b/configure
index a95f3dd..038ef32 100755
--- a/configure
+++ b/configure
@@ -1,8 +1,8 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59 for GrADS 2.1.a3.
+# Generated by GNU Autoconf 2.59 for GrADS 2.1.0.
 #
-# Report bugs to <jma at iges.org>.
+# Report bugs to <jadams21 at gmu.edu>.
 #
 # Copyright (C) 2003 Free Software Foundation, Inc.
 # This configure script is free software; the Free Software Foundation
@@ -269,9 +269,9 @@ SHELL=${CONFIG_SHELL-/bin/sh}
 # Identity of this package.
 PACKAGE_NAME='GrADS'
 PACKAGE_TARNAME='grads'
-PACKAGE_VERSION='2.1.a3'
-PACKAGE_STRING='GrADS 2.1.a3'
-PACKAGE_BUGREPORT='jma at iges.org'
+PACKAGE_VERSION='2.1.0'
+PACKAGE_STRING='GrADS 2.1.0'
+PACKAGE_BUGREPORT='jadams21 at gmu.edu'
 
 ac_default_prefix=`pwd`
 # Factoring default headers for most tests.
@@ -812,7 +812,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures GrADS 2.1.a3 to adapt to many kinds of systems.
+\`configure' configures GrADS 2.1.0 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -882,7 +882,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GrADS 2.1.a3:";;
+     short | recursive ) echo "Configuration of GrADS 2.1.0:";;
    esac
   cat <<\_ACEOF
 
@@ -949,7 +949,7 @@ Some influential environment variables:
 Use these variables to override the choices made by `configure' or to help
 it to find libraries and programs with nonstandard names/locations.
 
-Report bugs to <jma at iges.org>.
+Report bugs to <jadams21 at gmu.edu>.
 _ACEOF
 fi
 
@@ -1045,7 +1045,7 @@ fi
 test -n "$ac_init_help" && exit 0
 if $ac_init_version; then
   cat <<\_ACEOF
-GrADS configure 2.1.a3
+GrADS configure 2.1.0
 generated by GNU Autoconf 2.59
 
 Copyright (C) 2003 Free Software Foundation, Inc.
@@ -1059,7 +1059,7 @@ cat >&5 <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by GrADS $as_me 2.1.a3, which was
+It was created by GrADS $as_me 2.1.0, which was
 generated by GNU Autoconf 2.59.  Invocation command line was
 
   $ $0 $@
@@ -1711,7 +1711,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='grads'
- VERSION='2.1.a3'
+ VERSION='2.1.0'
 
 
 # Some tools Automake needs.
@@ -5375,9 +5375,9 @@ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&
 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## --------------------------- ##
-## Report this to jma at iges.org ##
-## --------------------------- ##
+## ------------------------------- ##
+## Report this to jadams21 at gmu.edu ##
+## ------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -7802,9 +7802,9 @@ echo "$as_me: WARNING: libsx.h: proceeding with the preprocessor's result" >&2;}
 echo "$as_me: WARNING: libsx.h: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## --------------------------- ##
-## Report this to jma at iges.org ##
-## --------------------------- ##
+## ------------------------------- ##
+## Report this to jadams21 at gmu.edu ##
+## ------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -7940,9 +7940,9 @@ echo "$as_me: WARNING: freq.h: proceeding with the preprocessor's result" >&2;}
 echo "$as_me: WARNING: freq.h: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## --------------------------- ##
-## Report this to jma at iges.org ##
-## --------------------------- ##
+## ------------------------------- ##
+## Report this to jadams21 at gmu.edu ##
+## ------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -8609,9 +8609,9 @@ echo "$as_me: WARNING: readline.h: proceeding with the preprocessor's result" >&
 echo "$as_me: WARNING: readline.h: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## --------------------------- ##
-## Report this to jma at iges.org ##
-## --------------------------- ##
+## ------------------------------- ##
+## Report this to jadams21 at gmu.edu ##
+## ------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -8747,9 +8747,9 @@ echo "$as_me: WARNING: history.h: proceeding with the preprocessor's result" >&2
 echo "$as_me: WARNING: history.h: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## --------------------------- ##
-## Report this to jma at iges.org ##
-## --------------------------- ##
+## ------------------------------- ##
+## Report this to jadams21 at gmu.edu ##
+## ------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -9256,9 +9256,9 @@ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&
 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## --------------------------- ##
-## Report this to jma at iges.org ##
-## --------------------------- ##
+## ------------------------------- ##
+## Report this to jadams21 at gmu.edu ##
+## ------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -9476,9 +9476,9 @@ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&
 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## --------------------------- ##
-## Report this to jma at iges.org ##
-## --------------------------- ##
+## ------------------------------- ##
+## Report this to jadams21 at gmu.edu ##
+## ------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -9677,9 +9677,9 @@ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&
 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## --------------------------- ##
-## Report this to jma at iges.org ##
-## --------------------------- ##
+## ------------------------------- ##
+## Report this to jadams21 at gmu.edu ##
+## ------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -9910,9 +9910,9 @@ echo "$as_me: WARNING: geotiffio.h: proceeding with the preprocessor's result" >
 echo "$as_me: WARNING: geotiffio.h: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## --------------------------- ##
-## Report this to jma at iges.org ##
-## --------------------------- ##
+## ------------------------------- ##
+## Report this to jadams21 at gmu.edu ##
+## ------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -10840,9 +10840,9 @@ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&
 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## --------------------------- ##
-## Report this to jma at iges.org ##
-## --------------------------- ##
+## ------------------------------- ##
+## Report this to jadams21 at gmu.edu ##
+## ------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -11118,9 +11118,9 @@ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&
 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## --------------------------- ##
-## Report this to jma at iges.org ##
-## --------------------------- ##
+## ------------------------------- ##
+## Report this to jadams21 at gmu.edu ##
+## ------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -11525,9 +11525,9 @@ echo "$as_me: WARNING: gd.h: proceeding with the preprocessor's result" >&2;}
 echo "$as_me: WARNING: gd.h: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## --------------------------- ##
-## Report this to jma at iges.org ##
-## --------------------------- ##
+## ------------------------------- ##
+## Report this to jadams21 at gmu.edu ##
+## ------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -11907,9 +11907,9 @@ echo "$as_me: WARNING: gd.h: proceeding with the preprocessor's result" >&2;}
 echo "$as_me: WARNING: gd.h: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## --------------------------- ##
-## Report this to jma at iges.org ##
-## --------------------------- ##
+## ------------------------------- ##
+## Report this to jadams21 at gmu.edu ##
+## ------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -12235,9 +12235,9 @@ echo "$as_me: WARNING: gd.h: proceeding with the preprocessor's result" >&2;}
 echo "$as_me: WARNING: gd.h: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## --------------------------- ##
-## Report this to jma at iges.org ##
-## --------------------------- ##
+## ------------------------------- ##
+## Report this to jadams21 at gmu.edu ##
+## ------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -12747,9 +12747,9 @@ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&
 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## --------------------------- ##
-## Report this to jma at iges.org ##
-## --------------------------- ##
+## ------------------------------- ##
+## Report this to jadams21 at gmu.edu ##
+## ------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -13169,9 +13169,9 @@ echo "$as_me: WARNING: cairo.h: proceeding with the preprocessor's result" >&2;}
 echo "$as_me: WARNING: cairo.h: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## --------------------------- ##
-## Report this to jma at iges.org ##
-## --------------------------- ##
+## ------------------------------- ##
+## Report this to jadams21 at gmu.edu ##
+## ------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -13307,9 +13307,9 @@ echo "$as_me: WARNING: cairo-xlib.h: proceeding with the preprocessor's result"
 echo "$as_me: WARNING: cairo-xlib.h: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## --------------------------- ##
-## Report this to jma at iges.org ##
-## --------------------------- ##
+## ------------------------------- ##
+## Report this to jadams21 at gmu.edu ##
+## ------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -13445,9 +13445,9 @@ echo "$as_me: WARNING: fontconfig.h: proceeding with the preprocessor's result"
 echo "$as_me: WARNING: fontconfig.h: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## --------------------------- ##
-## Report this to jma at iges.org ##
-## --------------------------- ##
+## ------------------------------- ##
+## Report this to jadams21 at gmu.edu ##
+## ------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -13583,9 +13583,9 @@ echo "$as_me: WARNING: ft2build.h: proceeding with the preprocessor's result" >&
 echo "$as_me: WARNING: ft2build.h: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## --------------------------- ##
-## Report this to jma at iges.org ##
-## --------------------------- ##
+## ------------------------------- ##
+## Report this to jadams21 at gmu.edu ##
+## ------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -13721,9 +13721,9 @@ echo "$as_me: WARNING: pixman.h: proceeding with the preprocessor's result" >&2;
 echo "$as_me: WARNING: pixman.h: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## --------------------------- ##
-## Report this to jma at iges.org ##
-## --------------------------- ##
+## ------------------------------- ##
+## Report this to jadams21 at gmu.edu ##
+## ------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -14261,9 +14261,9 @@ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&
 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## --------------------------- ##
-## Report this to jma at iges.org ##
-## --------------------------- ##
+## ------------------------------- ##
+## Report this to jadams21 at gmu.edu ##
+## ------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -14673,9 +14673,9 @@ echo "$as_me: WARNING: grib2.h: proceeding with the preprocessor's result" >&2;}
 echo "$as_me: WARNING: grib2.h: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## --------------------------- ##
-## Report this to jma at iges.org ##
-## --------------------------- ##
+## ------------------------------- ##
+## Report this to jadams21 at gmu.edu ##
+## ------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -14907,9 +14907,9 @@ echo "$as_me: WARNING: grib2.h: proceeding with the preprocessor's result" >&2;}
 echo "$as_me: WARNING: grib2.h: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## --------------------------- ##
-## Report this to jma at iges.org ##
-## --------------------------- ##
+## ------------------------------- ##
+## Report this to jadams21 at gmu.edu ##
+## ------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -15377,9 +15377,9 @@ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&
 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## --------------------------- ##
-## Report this to jma at iges.org ##
-## --------------------------- ##
+## ------------------------------- ##
+## Report this to jadams21 at gmu.edu ##
+## ------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -15621,9 +15621,9 @@ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&
 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## --------------------------- ##
-## Report this to jma at iges.org ##
-## --------------------------- ##
+## ------------------------------- ##
+## Report this to jadams21 at gmu.edu ##
+## ------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -16004,9 +16004,9 @@ echo "$as_me: WARNING: mfhdf.h: proceeding with the preprocessor's result" >&2;}
 echo "$as_me: WARNING: mfhdf.h: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## --------------------------- ##
-## Report this to jma at iges.org ##
-## --------------------------- ##
+## ------------------------------- ##
+## Report this to jadams21 at gmu.edu ##
+## ------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -16302,9 +16302,9 @@ echo "$as_me: WARNING: udunits.h: proceeding with the preprocessor's result" >&2
 echo "$as_me: WARNING: udunits.h: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## --------------------------- ##
-## Report this to jma at iges.org ##
-## --------------------------- ##
+## ------------------------------- ##
+## Report this to jadams21 at gmu.edu ##
+## ------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -17775,9 +17775,9 @@ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&
 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## --------------------------- ##
-## Report this to jma at iges.org ##
-## --------------------------- ##
+## ------------------------------- ##
+## Report this to jadams21 at gmu.edu ##
+## ------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -18228,9 +18228,9 @@ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&
 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## --------------------------- ##
-## Report this to jma at iges.org ##
-## --------------------------- ##
+## ------------------------------- ##
+## Report this to jadams21 at gmu.edu ##
+## ------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -18612,9 +18612,9 @@ echo "$as_me: WARNING: hdf5.h: proceeding with the preprocessor's result" >&2;}
 echo "$as_me: WARNING: hdf5.h: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## --------------------------- ##
-## Report this to jma at iges.org ##
-## --------------------------- ##
+## ------------------------------- ##
+## Report this to jadams21 at gmu.edu ##
+## ------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -19740,9 +19740,9 @@ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&
 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## --------------------------- ##
-## Report this to jma at iges.org ##
-## --------------------------- ##
+## ------------------------------- ##
+## Report this to jadams21 at gmu.edu ##
+## ------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -19981,9 +19981,9 @@ echo "$as_me: WARNING: netcdf.h: proceeding with the preprocessor's result" >&2;
 echo "$as_me: WARNING: netcdf.h: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## --------------------------- ##
-## Report this to jma at iges.org ##
-## --------------------------- ##
+## ------------------------------- ##
+## Report this to jadams21 at gmu.edu ##
+## ------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -20340,9 +20340,9 @@ echo "$as_me: WARNING: udunits.h: proceeding with the preprocessor's result" >&2
 echo "$as_me: WARNING: udunits.h: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## --------------------------- ##
-## Report this to jma at iges.org ##
-## --------------------------- ##
+## ------------------------------- ##
+## Report this to jadams21 at gmu.edu ##
+## ------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -21349,9 +21349,9 @@ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&
 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## --------------------------- ##
-## Report this to jma at iges.org ##
-## --------------------------- ##
+## ------------------------------- ##
+## Report this to jadams21 at gmu.edu ##
+## ------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -21589,9 +21589,9 @@ echo "$as_me: WARNING: netcdf.h: proceeding with the preprocessor's result" >&2;
 echo "$as_me: WARNING: netcdf.h: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## --------------------------- ##
-## Report this to jma at iges.org ##
-## --------------------------- ##
+## ------------------------------- ##
+## Report this to jadams21 at gmu.edu ##
+## ------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -21823,9 +21823,9 @@ echo "$as_me: WARNING: udunits.h: proceeding with the preprocessor's result" >&2
 echo "$as_me: WARNING: udunits.h: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## --------------------------- ##
-## Report this to jma at iges.org ##
-## --------------------------- ##
+## ------------------------------- ##
+## Report this to jadams21 at gmu.edu ##
+## ------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -22814,9 +22814,9 @@ echo "$as_me: WARNING: gadap.h: proceeding with the preprocessor's result" >&2;}
 echo "$as_me: WARNING: gadap.h: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## --------------------------- ##
-## Report this to jma at iges.org ##
-## --------------------------- ##
+## ------------------------------- ##
+## Report this to jadams21 at gmu.edu ##
+## ------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -23209,7 +23209,7 @@ echo
 # Some non-configuration-dependent GrADS macros
 
 cat >>confdefs.h <<\_ACEOF
-#define GRADS_VERSION "2.1.a3"
+#define GRADS_VERSION "2.1.0"
 _ACEOF
 
 
@@ -23312,7 +23312,7 @@ build_info="Built `date` for ${host}"
 
    echo \
 "  +=========================================================================+"
-   echo "   GrADS "2.1.a3 ":" $build_info
+   echo "   GrADS "2.1.0 ":" $build_info
    echo \
 "  +=========================================================================+"
    echo
@@ -23409,7 +23409,7 @@ fi
    echo "  +-------------------------------+"
 
 echo "configure: creating src/VERSION"
-echo 2.1.a3 > src/VERSION
+echo 2.1.0 > src/VERSION
 
 echo "configure: creating src/buildinfo.h"
 mkdir -p src
@@ -23842,7 +23842,7 @@ _ASBOX
 } >&5
 cat >&5 <<_CSEOF
 
-This file was extended by GrADS $as_me 2.1.a3, which was
+This file was extended by GrADS $as_me 2.1.0, which was
 generated by GNU Autoconf 2.59.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -23902,7 +23902,7 @@ _ACEOF
 
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
-GrADS config.status 2.1.a3
+GrADS config.status 2.1.0
 configured by $0, generated by GNU Autoconf 2.59,
   with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
 
diff --git a/configure.ac b/configure.ac
index 4492a13..577f893 100644
--- a/configure.ac
+++ b/configure.ac
@@ -7,7 +7,7 @@ dnl  See acinclude.m4 for definitions of the GA_xxx macros
 
 # The version number
 # below is the "master" version that will appear in all code, etc.
-AC_INIT(GrADS, [2.1.a3], [jma at iges.org])
+AC_INIT(GrADS, [2.1.0], [jadams21 at gmu.edu])
 
 # Require autoconf 2.52 (comes with Mac OS X 10.2) or newer
 AC_PREREQ(2.52) 
diff --git a/doc/descriptorfile.html b/doc/descriptorfile.html
index 3212ce2..e5654e1 100644
--- a/doc/descriptorfile.html
+++ b/doc/descriptorfile.html
@@ -229,7 +229,7 @@ href="cmd/query.html">query</a> command and it will appear in the directory list
         the title.</td>
   </tr>
   <tr> 
-    <td bgcolor="#CCCCCC"><a name="UNDEF"> <b>UNDEF</b> <i>value</i></a> <em><undef_attribute_name></em></td>
+    <td bgcolor="#CCCCCC"><a name="UNDEF"> <b>UNDEF</b> <i>value</i></a> <em><undef_attribute_name> <secondar_undef_attribute_name></em></td>
     <td width="74" align="right" valign="top" bgcolor="#CCCCCC"><a href="#TOP" class="item9">back 
       to top</a></td>
   </tr>
@@ -256,7 +256,11 @@ href="cmd/query.html">query</a> command and it will appear in the directory list
         in the netcdf or hdfsds data file. If the name given does not match any 
         attributes, or if no name is given, the file-wide undef value will be 
         used. <br>
-        Example: UNDEF 1e+33 _FillValue</p>    </td>
+        (<font color="#990000">GrADS version 2.1.0</font>) An optional third 
+        argument has been added for data sets of <a href="#DTYPE">DTYPE</a> netcdf 
+        or hdfsds -- it is the name of a secondary attribute that contains another undefined 
+        value.        <br>
+        Example: UNDEF 1e+33 missing_value _FillValue</p>    </td>
   </tr>
   <tr> 
     <td bgcolor="#CCCCCC"><a name="unpack"></a><strong>UNPACK</strong> <em>scale_factor_attribute_name 
diff --git a/doc/gadoc.html b/doc/gadoc.html
index 037689e..83dcd7e 100644
--- a/doc/gadoc.html
+++ b/doc/gadoc.html
@@ -1,151 +1,69 @@
-<!--Copyright (C) 1988-2005 by the Institute of Global Environment and Society (IGES). See file COPYRIGHT for more information.-->
-
+<!DOCTYPE html>
 <html>
 <head>
-<title>GrADS Online Documentation</title>
+<title>GrADS Documentation</title>
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<style type="text/css">
-<!--
--->
-</style>
-<script language="JavaScript">
-<!--
+<link rel="stylesheet" type="text/css" href="COLA.css">
+<link rel="shortcut icon" href="http://brand.gmu.edu/wp-content/uploads/favicon.png">
+</head>
 
+<body>
+<div class="container">
 
+<div class="bodyleft">
 
-function MM_preloadImages() { //v3.0
-  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
-    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
-    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
-}
-//-->
-</script>
-<link rel="stylesheet" href="GrADS.css">
-</head>
+<center>
+<h2>GrADS Documentation</h2>
+</center>
 
-<body bgcolor="#FFFFFF" link="#333399" vlink="#6666CC" topmargin="0" background="/assets/blue_margin.gif">
-<p> </p>
-<table width="80%" border="0">
-  <tr>
-    <td width="10%" valign="top"><img src="/assets/logom2.gif" border="1"></td>
-    <td width="90%"> 
-      <table width="600" border="0">
-        <tr> 
-          <td class="banner22">GrADS Documentation</td>
-        </tr>
-        <tr> 
-          <td class="fineprint"> 
-            <hr width="600" align="left">
-          </td>
-        </tr>
-        <tr> 
-          <td class="linkpage"><table width=600 border="0" align="left" cellpadding="0" cellspacing="0" class="plaintext">
-            <tr>
-              <td align="center" width="16"><img src="/assets/ball_sm_green.gif" width="6" height="6"></td>
-                <td align="center"><a href="/home.html">  IGES  </a></td>
-                <td align="center" width="16"><img src="/assets/ball_sm_green.gif" width="6" height="6"></td>
-                <td align="center"><a href="/cola.html">  COLA  </a></td>
-                <td align="center" width="16"><img src="/assets/ball_sm_green.gif" width="6" height="6"></td>
-                <td align="center"><a href="http://aoes.gmu.edu">  Climate Dynamics PhD  </a></td>
-                <td align="center" width="16"><img src="/assets/ball_sm_green.gif" width="6" height="6"></td>
-                <td align="center"><a href="/grads/grads.html">  GrADS  </a></td>
-                <td align="center" width="16"><img src="/assets/ball_sm_green.gif" width="6" height="6"></td>
-                <td align="center"><a href="http://wxmaps.org/">  Weather Maps  </a></td>
-                <td align="center" width="16"><img src="/assets/ball_sm_green.gif" width="6" height="6"></td>
-                <td align="center"><a href="http://wx.gmu.edu">  Virginia Weather  </a></td>
-                <td align="center" width="16"><img src="/assets/ball_sm_green.gif" width="6" height="6"></td>
-            </tr>
-          </table></td>
-        </tr>
-        <tr> 
-          <td class="linkpage"> <table border="0" cellspacing="0" cellpadding="0" align="center" class="plaintext">
-              <tr> 
-                <td align="center" width="16"><img src="/assets/ball_sm_green.gif" width="6" height="6"></td>
-                <td align="center"><a href="/grads/downloads.html">  Downloads  </a></td>
-                <td align="center" width="16"><img src="/assets/ball_sm_green.gif" width="6" height="6"></td>
-                <td align="center" class="plaintextbold"><a href="/grads/gadoc/index.html">  Documentation  </a></td>
-                <td align="center" width="16"><img src="/assets/ball_sm_green.gif" width="6" height="6"></td>
-                <td align="center"><a href="/grads/users.html">  Users Forum  </a></td>
-                <td align="center" width="16"><img src="/assets/ball_sm_green.gif" width="6" height="6"></td>
-                <td align="center"><a href="/grads/gds/index.html">  GDS  </a></td>
-                <td align="center" width="16"><img src="/assets/ball_sm_green.gif" width="6" height="6"></td>
-              </tr>
-            </table></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table width="716" border="0">
-  <tr> 
-    <td class="itemmajor"> </td>
-    <td class="itemmajor"> </td>
-  </tr>
-  <tr> 
-    <td><img src="/assets/dot_clear.gif" width="80" height="1"></td>
-    <td > <p align="center" class="item14"> <span class="item16">Documentation 
-        Web Pages</span></p>
-      <p class="item14"> <span class="plaintext">The html version of the GrADS 
+      <p>The online (html) version of the GrADS 
         documentation has become the standard base documentation for GrADS. Follow 
         the links below to the Users Guide, an introductory tutorial session, 
         and an alphabetical subject index. Note the documentation is covered under 
-        the same <a href="COPYRIGHT">copyright</a> as the GrADS source code. </span></p>
-      <p><a href="users.html" class="item14">The Users Guide</a><br>
-        <span class="plaintext">The Users Guide is the fundamental document that 
+        the same <a href="COPYRIGHT">copyright</a> as the GrADS source code. </p>
+
+      <h3><a href="users.html">The Users Guide</a></h3>
+        <p>The Users Guide is the fundamental document that 
         provides information about how to use GrADS. The four main chapters are 
         General Topics, Analysis Topics, Display Topics, and the GrADS Scripting 
-        Language</span>. </p>
-      <p><span class="itemmajor"><a href="tutorial.html"><span class="item14">Tutorial</span></a></span> 
-        <br>
-        <span class="plaintext">The tutorial will give you a feeling for how to use the 
+        Language. </p>
+
+      <h3><a href="tutorial.html">Tutorial</a></h3> 
+        <p>The tutorial will give you a feeling for how to use the 
         basic capabilities of GrADS. This sample session takes about 30 minutes 
-        to run through. It is highly recommended for new users.  (<a href="Tutorial_Espanol.doc">En Español.</a>)</span></p>
-      <p><a href="gadocindex.html" class="item14">Index<br>
-        </a><span class="plaintext">The Index provides a quick and easy interface 
+        to run through. It is highly recommended for new users.
+        (<a href="Tutorial_Espanol.doc">En Español.</a>)</p>
+
+      <h3><a href="gadocindex.html">Index</a></h3>
+        <p>The Index provides a quick and easy interface 
         for checking the syntax and usage of any GrADS command or function. Subject 
-        headings from the User's Guide are also listed in the Index. </span></p>
-      <p><span class="item14">Download HTML Documentation</span><br>
-        <span class="plaintext">You can download a compressed tar file containing 
+        headings from the User's Guide are also listed in the Index.</p>
+
+      <h3>Download HTML Documentation</h3>
+        <p>You can download a compressed tar file containing 
         all the html source code. These can be useful to install on your local 
         computer if you have a slow internet connection or if you travel often 
-        with a laptop.</span><br>
-        <img src="/assets/ball_sm_green.gif" width="6" height="6"> 
-        <span class="plaintext"><a href="http://iges.org/grads/gadoc/gadoc_files.tar.gz">http://iges.org/grads/gadoc/gadoc_files.tar.gz</a> 
-      (last updated 9 November 2012)</span> </p>
-      <p class="item14">Download Hard Copy Documentation<br>
-        <span class="plaintext">If you simply <i>must</i> 
+        with a laptop.<br>
+        <a href="http://cola.gmu.edu/grads/gadoc/gadoc_files.tar.gz">
+        http://cola.gmu.edu/grads/gadoc/gadoc_files.tar.gz</a>
+       (last updated 9 November 2012)</p>
+
+      <h3>Download Hard Copy Documentation</h3>
+        <p>If you simply <i>must</i> 
         have a printable version of the documentation, you will have to settle 
         for a version that is outdated and no longer supported. The following 
-        formats are available: </span><br>
-      <table width="600" border="0" cellspacing="0" cellpadding="0">
-        <tr> 
-          <td width="11"><img src="/assets/ball_sm_green.gif" width="6" height="6"></td>
-          <td><a href="ftp://cola.gmu.edu/grads/beta/doc/gadoc151.pdf" class="plaintext">PDF</a></td>
-        </tr>
-        <tr> 
-          <td><img src="/assets/ball_sm_green.gif" width="6" height="6"></td>
-          <td><a href="ftp://cola.gmu.edu/grads/beta/doc/gadoc151.ps"><span class="plaintext">Postscript 
-            </span></a><span class="plaintext"> (<a href="ftp://cola.gmu.edu/grads/beta/doc/gadoc151.ps.gz">G-Zipped 
-            </a> and <a href="ftp://cola.gmu.edu/grads/beta/doc/gadoc151.ps.a4">A4</a>)</span></td>
-        </tr>
-        <tr> 
-          <td><img src="/assets/ball_sm_green.gif" width="6" height="6"></td>
-          <td><a href="ftp://cola.gmu.edu/grads/beta/doc/gadoc151.txt" class="plaintext">ASCII</a></td>
-        </tr>
-        <tr> 
-          <td><img src="/assets/ball_sm_green.gif" width="6" height="6"></td>
-          <td><a href="http://grads.iges.org/grads/gadoc/reference_card.pdf" class="plaintext">GrADS 
-            Commands Quick Reference Card</a></td>
-        </tr>
-        <tr> 
-          <td><img src="/assets/ball_sm_green.gif" width="6" height="6"></td>
-          <td><a href="http://grads.iges.org/grads/gadoc/reference_card_scl.pdf" class="plaintext">Scripting 
-            Language Quick Reference Card</a></td>
-        </tr>
-      </table>
-      
-    </td>
-  </tr>
-</table>
-<p> </p></body>
+        formats are available: <br>
+        <a href="ftp://cola.gmu.edu/grads/beta/doc/gadoc151.pdf">PDF</a><br>
+        <a href="ftp://cola.gmu.edu/grads/beta/doc/gadoc151.ps">Postscript</a>
+        (<a href="ftp://cola.gmu.edu/grads/beta/doc/gadoc151.ps.gz">G-Zipped</a> and
+        <a href="ftp://cola.gmu.edu/grads/beta/doc/gadoc151.ps.a4">A4</a>)<br>
+        <a href="ftp://cola.gmu.edu/grads/beta/doc/gadoc151.txt">ASCII</a><br>
+        <a href="http://grads.iges.org/grads/gadoc/reference_card.pdf">
+         GrADS Commands Quick Reference Card</a><br>
+        <a href="http://grads.iges.org/grads/gadoc/reference_card_scl.pdf">
+         Scripting Language Quick Reference Card</a></p>
+
+</div>
+</div>
+</body>
 </html>
diff --git a/doc/gradcomdgxprint.html b/doc/gradcomdgxprint.html
index e09cb23..f70ba27 100644
--- a/doc/gradcomdgxprint.html
+++ b/doc/gradcomdgxprint.html
@@ -57,8 +57,7 @@ where:
 
 <ol>
 <li><code>gxprint</code> works with <span class="red">GrADS version 2.1+</span>.
-<li><code><i>bgImage</i></code> and <code><i>fgImage</i></code> must be PNG format. 
-<li>The GIF and JPG image formats are not support by the Cairo library. These options will work  only when using the GD library for rendering image output.
+<li><code><i>bgImage</i></code> and <code><i>fgImage</i></code> must be PNG format, and the file names should not contain any upper case letters. <li>The GIF and JPG image formats are not support by the Cairo library. These options will work  only when using the GD library for rendering image output.
 <li>The default width of the edge around the PS, EPS, and PDF output files is 0.15625 inches. An edge width smaller than the default may result in the plot getting cropped by the printer. 
 <li>In <span class="red">GrADS version 2.1+</span>, it is also possible to achieve color transparency (full or partial) using the <code><a href="gradcomdsetrgb.html">set rgb</a></code> command. 
 <li>Multi-page output is not yet supported with <code>gxprint</code>. 
diff --git a/doc/gradcomdpdefwrite.html b/doc/gradcomdpdefwrite.html
new file mode 100644
index 0000000..c2cd532
--- /dev/null
+++ b/doc/gradcomdpdefwrite.html
@@ -0,0 +1,71 @@
+<!--Copyright (C) 1988-2005 by the Institute of Global Environment and Society (IGES). See file COPYRIGHT for more information.-->
+
+<html>
+<head>
+<title>GrADS Commands: printim</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<style type="text/css">
+body {
+	background-color: #e0f0ff;
+}
+.red {
+	color: #900;
+}
+</style>
+</head>
+<body text="#000000">
+
+<h2><b>pdefwrite</b></h2>
+<p>
+
+  <p>When GrADS opens a descriptor with a <code><a href="pdef.html">PDEF</a></code> entry that  contains options such as <code>lcc</code>, <code>lccr</code>, <code>nps</code>, <code>sps</code>, et. al, it calculates the interpolation weights internally and stores them in memory for later use. These calculations can take some time for high resolution grids. There is a significant performance advantage gained from reading in the interpolation weights from an external file instead of calcul [...]
+
+<h3>Syntax
+</h3>
+<ul>
+  <code>pdefwrite  <i>filename </i></code> 
+</ul>
+<p>
+where:
+<ul>
+  <code><i>filename</i>  </code>The name of the output file. If this 
+  file exists, it will be replaced. 
+  <br>
+  <code>           </code><br>
+  <br>
+</ul>
+<h3>Usage Notes</h3>
+
+<ol>
+<li><code>pdefwrite</code> works with <span class="red">GrADS version 2.1.0+</span>.
+<li>The <code>pdefwrite</code> command will return an error message if you use it with a default file that does not use <code><a href="pdef.html">PDEF</a></code> or already has an external <code><a href="pdef.html">PDEF</a></code> file. If there are no errors, <code>pdefwrite</code>  will return a complete <code><a href="pdef.html">PDEF</a></code> entry that points to the file it just created. 
+</ol>
+
+<p>
+<h3>Example </h3>
+
+<ol>
+  <li>Suppose you have a descriptor that contains the following three entries:
+<ul><code>pdef 4736 3000 lcc 23.00 -120 1 1 40.0 40.0 -100 1016.2360 1016.150<br>
+    xdef 6650 linear -130.0 0.01<br>
+    ydef 3500 linear   20.0 0.01
+</code></ul></li>
+   <li>Open this descriptor, then invoke pdefwrite with a file name as an argument. 
+     <ul> <code>ga-> pdefwrite myfile.pdef<br>
+    </code></ul>
+  <li>GrADS will return the syntax for the new <code><a href="pdef.html">PDEF</a></code> entry:
+<ul>
+<code>pdef 4736 3000 bilin stream binary-little ^myfile.pdef
+</code>
+</ul></li>   
+    <li>Rewrite your descriptor to use this new <code><a href="pdef.html">PDEF</a></code> entry instead. Don’t change the <code><a href="descriptorfile.html#XDEF">XDEF</a></code> and <code><a href="descriptorfile.html#YDEF">YDEF</a></code> statements — those match the <code><a href="pdef.html">PDEF</a></code> file you created. </li>
+    <li>Keep the <code><a href="pdef.html">PDEF</a></code> file (<code>myflile.pdef</code>) and the descriptor file together in the same directory -- this is important because of the ^ before the <code><a href="pdef.html">PDEF</a></code> file's name in the <code><a href="pdef.html">PDEF</a></code> entry. If you want to put the descriptor and <code><a href="pdef.html">PDEF</a></code> files in separate locations, change the ^ in the entry to the <code><a href="pdef.html">PDEF</a></code> fi [...]
+<ul>
+<code>pdef 4736 3000 bilin stream binary-little /your/path/to/myfile.pdef</code>
+</ul>    
+</ol>
+  
+
+</body>
+</html>
+
diff --git a/doc/gradcomdprintim.html b/doc/gradcomdprintim.html
index 151110f..2d27394 100644
--- a/doc/gradcomdprintim.html
+++ b/doc/gradcomdprintim.html
@@ -1 +1,99 @@
-<!--Copyright (C) 1988-2005 by the Institute of Global Environment and Society (IGES). See file COPYRIGHT for more information.-->

<html>
<head>
<title>GrADS Commands: printim</title>
</head>
<body bgcolor="e0f0ff" text="#000000">

<h2><b>printim</b></h2>
<p>
The <code>printim</code> command will produce a PNG, GIF, or JPG formatted
image file based on the current contents of the metabuffer, which is
usually the stuff displayed on the screen, minus any widgets.  The
syntax is:

<p>
<ul>
  <code>printim <i>filename options</i></code> 
</ul>

<p>
where: 
<p>
<ul>
  <code><i>filename:</i>  </code>The name of the output file. If this 
  file exists, it will be replaced. 
  <br>
  <code>            </code>If the filename ends with ".png" or ".PNG" then GrADS will automatically create the image in PNG format<br>
  <code>           </code>If the filename ends with ".gif" or ".GIF" then GrADS will automatically create the image in GIF format<br>
  <code>           </code>If the filename ends with ".jpg" or ".JPG" then GrADS will automatically create the image in JPEG format<br>
  <p> <code><i>options:</i>   png </code> 
    - produce PNG output (default)<br>
    <code>           gif </code>
     - produce GIF output <br>
    <code>           jpg </code>
     - produce JPEG output <br>
    <code>           black </code>
     - use black background (default is current display setting)<br>
    <code>           white </code>
     - use white background (default is current display setting)<br>
    <code>           xNNN </code> 
    - horizontal size in NNN pixels<br>
    <code>           yNNN </code> 
    - vertical size in NNN pixels<br>
    <code>           -t NN </code> 
    - color number NN is transparent<br>
    <code>           -b <i>bgImage</i> </code> 
    - Image file <code><i>bgImage</i></code> s included in the background of the output. <br>
    <code>           -f <i>fgImage</i> </code> 
    - Image file <code><i>fgImage</i></code> is included in the foreground of the output.<br>
  </p>
</ul>
<p> One or more <code><i>options</i></code> may be given in any order. <code><i>bgImage</i></code> 
  and <code><i>fgImage</i></code> must be PNG format. 
<p>
<h3>Usage Notes</h3>

<ol>
<li><code>printim</code> works with GrADS version 1.8 (or higher). 
<li><code>printim</code> can be used while in batch mode. 
<li>The option for JPEG formatted output became 'official' with version 2.0.a5. 
</ol>

<p>
<h3>Examples </h3>

<p>
The following command produces a 1000x800 PNG image into file out.png:
<p>
<ul><code>printim out.png x1000 y800</code></ul>

<p>
This command produces a 800x600 GIF image, with a white background, 
into file gifimage.out:
<p>
<ul>
  <p><code>printim gifimage.out gif x800 y600 white</code></p>
</ul>
  
<p>This command produces a GIF image with transparent color 0 and a background 
  image mybkg.png. This means that in image.gif, the background image mybkg.png 
  will be seen wherever the color 0 (background) appeared in the current display. 
</p>
<ul>
  <p><code>printim image.gif -b mybkg.png -t 0 </code><br>
  
</ul>  

</body>
</html>

\ No newline at end of file
+<!--Copyright (C) 1988-2005 by the Institute of Global Environment and Society (IGES). See file COPYRIGHT for more information.-->
+
+<html>
+<head>
+<title>GrADS Commands: printim</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<style type="text/css">
+body {
+	background-color: #e0f0ff;
+}
+</style>
+</head>
+<body text="#000000">
+
+<h2><b>printim</b></h2>
+<p>Beginning with GrADS version 2.1, the <code>printim</code> command has been deprecated and is  an alias for <code><a href="gradcomdgxprint.html">gxprint</a></code>.  </p>
+<p>
+The <code>printim</code> command will produce a PNG, GIF, or JPG formatted
+image file based on the current contents of the metabuffer, which is
+usually the stuff displayed on the screen, minus any widgets.  The
+syntax is:
+
+<p>
+<ul>
+  <code>printim <i>filename options</i></code> 
+</ul>
+
+<p>
+where: 
+<p>
+<ul>
+  <code><i>filename:</i>  </code>The name of the output file. If this 
+  file exists, it will be replaced. 
+  <br>
+  <code>            </code>If the filename ends with ".png" or ".PNG" then GrADS will automatically create the image in PNG format<br>
+  <code>           </code>If the filename ends with ".gif" or ".GIF" then GrADS will automatically create the image in GIF format<br>
+  <code>           </code>If the filename ends with ".jpg" or ".JPG" then GrADS will automatically create the image in JPEG format<br>
+  <p> <code><i>options:</i>   png </code> 
+    - produce PNG output (default)<br>
+    <code>           gif </code>
+     - produce GIF output <br>
+    <code>           jpg </code>
+     - produce JPEG output <br>
+    <code>           black </code>
+     - use black background (default is current display setting)<br>
+    <code>           white </code>
+     - use white background (default is current display setting)<br>
+    <code>           xNNN </code> 
+    - horizontal size in NNN pixels<br>
+    <code>           yNNN </code> 
+    - vertical size in NNN pixels<br>
+    <code>           -t NN </code> 
+    - color number NN is transparent<br>
+    <code>           -b <i>bgImage</i> </code> 
+    - Image file <code><i>bgImage</i></code> s included in the background of the output. <br>
+    <code>           -f <i>fgImage</i> </code> 
+    - Image file <code><i>fgImage</i></code> is included in the foreground of the output.<br>
+  </p>
+</ul>
+<p> One or more <code><i>options</i></code> may be given in any order. <code><i>bgImage</i></code> 
+  and <code><i>fgImage</i></code> must be PNG format. 
+<p>
+<h3>Usage Notes</h3>
+
+<ol>
+<li><code>printim</code> works with GrADS version 1.8 (or higher). Beginning with version 2.1, printim is an alias for <code><a href="gradcomdgxprint.html">gxprint</a></code>. 
+<li><code>printim</code> can be used while in batch mode. 
+<li>The option for JPEG formatted output became 'official' with version 2.0.a5. 
+<li>The file names for <code><i>bgImage</i></code> and <code><i>fgImage</i></code> should not contain any upper case letters. 
+</ol>
+
+<p>
+<h3>Examples </h3>
+
+<p>
+The following command produces a 1000x800 PNG image into file out.png:
+<p>
+<ul><code>printim out.png x1000 y800</code></ul>
+
+<p>
+This command produces a 800x600 GIF image, with a white background, 
+into file gifimage.out:
+<p>
+<ul>
+  <p><code>printim gifimage.out gif x800 y600 white</code></p>
+</ul>
+  
+<p>This command produces a GIF image with transparent color 0 and a background 
+  image mybkg.png. This means that in image.gif, the background image mybkg.png 
+  will be seen wherever the color 0 (background) appeared in the current display. 
+</p>
+<ul>
+  <p><code>printim image.gif -b mybkg.png -t 0 </code><br>
+  
+</ul>  
+
+</body>
+</html>
+
diff --git a/doc/gradcomdsdfwrite.html b/doc/gradcomdsdfwrite.html
index cef18dd..921e39e 100644
--- a/doc/gradcomdsdfwrite.html
+++ b/doc/gradcomdsdfwrite.html
@@ -123,8 +123,8 @@ set sdfwrite -flt slp_2003.nc<br>sdfwrite slp
 </pre>
 <p>If you are using GrADS version <span class="style1">2.1.a2+</span>, the 'set sdfwrite' commands should look like this instead:<br>
 <code>set sdfwrite -flt -rt slp_2001.nc<br>
-set sdfwrite -flt -rt slp_2001.nc<br>
-set sdfwrite -flt -rt slp_2001.nc</code></p>
+set sdfwrite -flt -rt slp_2002.nc<br>
+set sdfwrite -flt -rt slp_2003.nc</code></p>
 <p>If you are using an earlier verison of GrADS, you must modify the time dimension with <a href="http://nco.sourceforge.net/nco.html#ncks" target="_blank"><code>ncks</code></a> -- do this outside of GrADS, or use the ! in front of the command to send it to the shell from within GrADS (the --mk_rec_dmn option modifies the time dimension): 
 </p>
 <pre><a href="http://nco.sourceforge.net/nco.html#ncks" target="_blank">ncks</a> -O -h --mk_rec_dmn time slp_2001.nc
diff --git a/doc/gradcomdsetmisswarn.html b/doc/gradcomdsetmisswarn.html
new file mode 100644
index 0000000..851a723
--- /dev/null
+++ b/doc/gradcomdsetmisswarn.html
@@ -0,0 +1,15 @@
+<!--Copyright (C) 1988-2005 by the Institute of Global Environment and Society (IGES). See file COPYRIGHT for more information.-->
+
+<H2><B>set misswarn</B></H2>
+<P>
+<code>set misswarn <i>on|off fnum</i></code>
+<p>
+This command enables a warning message when GrADS is unable to open one of the data files  in a templated data set.  The <code><i>fnum</i></code> argument specifies which of the open files the warnings shall be applied to. The warning message will contain the  name of the data file
+that was missing. <p><H3>Example</H3>
+<code>open mydata.ctl
+<br />
+set misswarn off
+<br />
+set t 1 last
+<br />
+d var </code>
diff --git a/doc/gradfunccoll2gr.html b/doc/gradfunccoll2gr.html
index 745e359..eeda4c1 100644
--- a/doc/gradfunccoll2gr.html
+++ b/doc/gradfunccoll2gr.html
@@ -3,7 +3,14 @@
 <html>
 <head>
 <title>GrADS Function: coll2gr</title>
-</head>
+<style type="text/css">
+body {
+	background-color: #e0f0ff;
+}
+.red {
+	color: #900;
+}
+</style></head>
 <body text="#000000" bgcolor="e0f0ff">
 
 <h2><b>coll2gr()</b></h2>
@@ -52,7 +59,7 @@ to within the range if appropriate.
 <li>The <code>"-u"</code> option will only work for data in pressure
 vertical coordinates. If your vertical coordinate is height,
 <code><i>num</i></code> should be the actual number of vertical levels
-in the collection of profiles.
+in the collection of profiles. Note: This restriction has been removed as of  <span class="red">version 2.1.0</span>.
 
 
 <p>
diff --git a/doc/gradfuncmaskout.html b/doc/gradfuncmaskout.html
index 4541fae..a0933e3 100644
--- a/doc/gradfuncmaskout.html
+++ b/doc/gradfuncmaskout.html
@@ -1,17 +1,24 @@
 <!--Copyright (C) 1988-2005 by the Institute of Global Environment and Society (IGES). See file COPYRIGHT for more information.-->
+<style type="text/css">
+body {
+	background-color: #e0f0ff;
+}
+</style>
+
 
 <h2><b>maskout</b></h2><p>
 
 <code>maskout(<i>expr,mask</i>)</code><p> 
 
 Wherever the <code><i>mask</i></code> values are less than zero, the
-values in <code><i>expr</i></code> are set to the missing data value. <p>
+values in <code><i>expr</i></code> are set to the missing data value. 
+<p>
 
 Works with gridded or station data. Where <code><i>mask</i></code> values
 are positive, the <code><i>expr</i></code> values are not modified. Thus
 the result of <code>maskout</code> is data with a possibly increased
 number of missing data values. The <code>maskout</code> function, in spite
-of its apparant simplicity, is extremely useful.  <p>
+of its apparent simplicity, is extremely useful.  <p>
 
 <H3>Usage Notes</H3><P>
 
diff --git a/doc/indexalpha.html b/doc/indexalpha.html
index e154ae4..77ba935 100644
--- a/doc/indexalpha.html
+++ b/doc/indexalpha.html
@@ -1,17 +1,14 @@
 <!--Copyright (C) 1988-2005 by the Institute of Global Environment and Society (IGES). See file COPYRIGHT for more information.-->
-
 <html>
 <head>
-<title>Documentation Index</title>
+<title>GrADS Documentation Index</title>
 </head>
 <body bgcolor="#e0f0ff" text="#000000">
 
 <table border=0 cellpadding=2 width=100%>
-<td align=left width=20% valign=top><font size=2><a href="../head.html" target="_top">GrADS Home</a></font></td>
-<td align=center width=60%>
-<font size=5><b><font color="7b2100">GrADS</font> Documentation Index</b></font></td>
-    <td align=right width=20% valign=top><font size=2><a href="gadoc.html" target="_top">GrADS 
-      Documentation</a></font></td>
+<td align=left   width=20% valign=top> <a href="http://cola.gmu.edu/grads/grads.php" target="_parent">GrADS Home</a> </td>
+<td align=center width=60%><font size=5><b>GrADS Documentation Index<br></b></font></td>
+<td align=right  width=20% valign=top><a href="http://cola.gmu.edu/grads/gadoc/gadoc.php" target="_parent">GrADS Documentation</a></td>
 </table>
 
 <table border=0 align=center width=100%>
diff --git a/doc/indexlist.html b/doc/indexlist.html
index b9059fc..c5ae779 100644
--- a/doc/indexlist.html
+++ b/doc/indexlist.html
@@ -1 +1,786 @@
-<!--Copyright (C) 1988-2005 by the Institute of Global Environment and Society (IGES). See file COPYRIGHT for more information.-->

<html>
<head>
<title>Documentation Index</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="GrADS.css" rel="stylesheet" type="text/css">
</head>
<body bgcolor="#e0f0ff" text="#000000">
<a name="indexa">
<table cellpadding=2 border=0 WIDTH=20>
<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
<font color="fffacd"><b>A</b></font></td></tr>
</table>
</a>

<p class="plaintext">
<code><a href="gradfuncaave.html" target="pages">aave()</a></code><br>
<code><a href="gradfuncabs.html" target="pages">abs()</a></code><br>
<code><a href="gradfuncacos.html" target="pages">acos()</a></code><br>
<a href="templates.html" target="pages">aggregate data files</a><br>
<code><a href="gradfuncamean.html" target="pages">amean()</a></code><br>
<a href="animation.html" target="pages">animation</a><br>
<code>set <a href="gradcomdsetannot.html" target="pages">annot</a></code><br>
<code>set <a href="gradcomdsetarrlab.html" target="pages">arrlab</a></code><br>
<code>set <a href="gradcomdsetarrowhead.html" target="pages">arrowhead</a></code><br>
<code>set <a href="gradcomdsetarrscl.html" target="pages">arrscl</a></code><br>
<code><a href="gradfuncasin.html" target="pages">asin()</a></code><br>
<code><a href="gradfuncasum.html" target="pages">asum()</a></code><br>
<code><a href="gradfuncasumg.html" target="pages">asumg()</a></code><br>
<code><a href="gradfuncatan2.html" target="pages">atan2()</a></code><br>
<a href="http://dao.gsfc.nasa.gov/software/grads/win32/latest/pc-dist/doc/gagui/gagui_intro.html" target="_top">athena widgets</a><br>
<code><a href="gradcomdqattr.html" target="pages">q </a>attr</code><br> 
<code><a href="gradfuncave.html" target="pages">ave()</a></code><br>
<p>
<a name="indexb">
<table cellpadding=2 border=0 WIDTH=20>
<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
<font color="fffacd"><b>B</b></font></td></tr>
</table>
</a>

<p class="plaintext">
<code>set <a href="gradcomdsetbackground.html" target="pages">background</a></code><br>
<code>set <a href="gradcomdsetbarbase.html" target="pages">barbase</a></code><br>
<code>set <a href="gradcomdsetbargap.html" target="pages">bargap</a></code><br>
<code>set <a href="gradcomdsetbaropts.html" target="pages">baropts</a></code><br>
<a href="basic.html" target="pages">basic operation</a><br>
<a href="aboutgriddeddata.html" target="pages">binary data sets</a><br>
<code>set <a href="gradcomdsetblack.html" target="pages">black</a></code><br>
  <a href="bufrformat.html" target="pages">BUFR format</a><br>
<code><a href="gradutilbufrscan.html" target="pages">bufrscan</a></code>  <br>
<a href="supplibs.html" target="pages">build  from source</a><br>
<code>draw <a href="gradcomddrawbutton.html" target="pages">button</a></code><br>
<code>redraw <a href="gradcomdredrawbutton.html" target="pages">button</a></code><br>
<code>set <a href="gradcomdsetbutton.html" target="pages">button</a></code><br>
<p>
<a name="indexc">
<table cellpadding=2 border=0 WIDTH=20>
<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
<font color="fffacd"><b>C</b></font></td></tr>
</table>
</a>

<p class="plaintext">
<code><a href="gradcomdquery.html" target="pages">q </a>cache</code><br> 
<code><a href="gradcomdquery.html" target="pages">q</a> cachesf</code><br> 
<code>set <a href="gradcomdsetcachesf.html" target="pages">cachesf</a></code><br>
<a href="gradcomddrawdropmenu.html" target="pages">cascading dropmenus</a><br>
<code>set <a href="gradcomdsetccolor.html" target="pages">ccolor</a></code><br>
<code>set <a href="gradcomdsetccols.html" target="pages">ccols</a></code><br>
<code><a href="gradfunccdiff.html" target="pages">cdiff()</a></code><br>
<code>set <a href="gradcomdsetchunksize.html" target="pages">chunksize</a></code><br> 
<code>set <a href="gradcomdsetcint.html" target="pages">cint</a></code><br> 
<code>set <a href="gradcomdsetclab.html" target="pages">clab</a></code><br>
<code><a href="gradcomdclear.html" target="pages">clear</a></code><br>
<code>set <a href="gradcomdsetclevs.html" target="pages">clevs</a></code><br>
<code>set <a href="gradcomdsetclip.html" target="pages">clip</a></code><br>
<code>set <a href="gradcomdsetclopts.html" target="pages">clopts</a></code><br>
<code><a href="gradcomdclose.html" target="pages">close</a></code><br>
<code>set <a href="gradcomdsetclskip.html" target="pages">clskip</a></code><br>
<code>set <a href="gradcomdsetcmark.html" target="pages">cmark</a></code><br>
<code>set <a href="gradcomdsetcmax.html" target="pages">cmax</a></code><br>
<code>set <a href="gradcomdsetcmin.html" target="pages">cmin</a></code><br>
<code><a href="gradcomdcollect.html" target="pages">collect</a></code><br>
<code><a href="gradfunccoll2gr.html" target="pages">coll2gr()</a></code><br>
default <a href="16colors.html" target="pages">colors</a><br>
controlling <a href="colorcontrol.html" target="pages">colors</a><br>
<a href="commandline.html" target="pages">command line editing</a><br>
<a href="commandsatt.html" target="pages">commands: attribute</a><br>
<a href="compression.html" target="pages">compression</a><br>
<code><a href="gradcomdquery.html" target="pages">q</a> config</code><br> 
<code><a href="gradfuncconst.html" target="pages">const()</a></code><br>
<code><a href="gradcomdquery.html" target="pages">q</a> contours</code><br> 
<a href="descriptorfile.html" target="pages">control file</a><br>
<a href="gradfuncscorr.html" target="pages">correlation, spatial</a><br>
<a href="gradfunctcorr.html" target="pages">correlation, temporal</a><br>
<code><a href="gradfunccos.html" target="pages">cos()</a></code><br>
<code>set <a href="gradcomdsetcoslat.html" target="pages">coslat</a></code><br>
<a href="usingstationdata.html#xsection" target="pages">cross sections</a><br>
<code>set <a href="gradcomdsetcsmooth.html" target="pages">csmooth</a></code><br>
<code>set <a href="gradcomdsetcstyle.html" target="pages">cstyle</a></code><br>
<code>set <a href="gradcomdsetcterp.html" target="pages">cterp</a></code><br>
<code><a href="gradcomdquery.html" target="pages">q</a> ctlinfo</code><br> 
<code>set <a href="gradcomdsetcthick.html" target="pages">cthick</a></code><br> 
</font>

<p>
<a name="indexd">
<table cellpadding=2 border=0 WIDTH=20>
<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
<font color="fffacd"><b>D</b></font></td></tr>
</table>
</a>

<p class="plaintext">
data descriptor files:<br>
  <a href="descriptorfile.html" target="pages">elements</a><br>
  <a href="bufrformat.html" target="pages">for BUFR data</a><br>
  <a href="aboutgriddeddata.html#descriptor" target="pages">for gridded data</a><br>
    <a href="SDFdescriptorfile.html" target="pages">for NetCDF/HDF files</a><br>
  <a href="aboutstationdata.html#descriptor" target="pages">for station data</a><br>
<a href="aboutgriddeddata.html" target="pages">data sets (gridded)</a><br>
<a href="aboutstationdata.html" target="pages">data sets (station)</a><br>
<code>set <a href="gradcomdsetdatawarn.html" target="pages">datawarn</a></code><br>
<code>q <a href="gradcomdqdbf.html" target="pages">dbf</a></code><br>
<code>set <a href="gradcomdsetdbuff.html" target="pages">dbuff</a></code><br>
<code><a href="gradcomddefine.html" target="pages">define</a></code><br>
<code><a href="gradcomdquery.html" target="pages">q</a> define</code><br>
<code><a href="gradcomdquery.html" target="pages">q</a> defval</code><br>
<code>set <a href="gradcomdsetdefval.html" target="pages">defval</a></code><br>
<a href="fontcontrol.html#overrides" target="pages">degree symbol</a><br>
<code>set <a href="gradcomdsetdfile.html" target="pages">dfile</a></code><br>
<code>q <a href="gradcomdqdialog.html" target="pages">dialog</a></code><br> 
<code>set <a href="gradcomdsetdialog.html" target="pages">dialog</a></code><br> 
<code>set <a href="gradcomdsetdignum.html" target="pages">dignum</a></code><br> 
<code>set <a href="gradcomdsetdigsize.html" target="pages">digsiz</a></code><br> 
<a href="dimenv.html" target="pages">dimension environment</a><br>
<code><a href="gradcomdquery.html" target="pages">q</a> dims</code><br>
<code><a href="gradcomddisablefwrite.html" target="pages">disable fwrite</a></code><br>
<code><a href="gradcomddisableprint.html" target="pages">disable print</a></code><br>
<code><a href="gradcomddisplay.html" target="pages">display</a></code><br>
<code>set <a href="gradcomdsetdisplay.html" target="pages">display</a></code><br> 
<a href="display.html" target="pages">displaying data</a><br>
<a href="imageoutput.html" target="pages">displaying metafiles</a><br>
<code><a href="gradcomddrawbutton.html" target="pages">draw button</a></code><br>
<code><a href="gradcomddrawdropmenu.html" target="pages">draw dropmenu</a></code><br>
<code><a href="gradcomddrawline.html" target="pages">draw line</a></code><br>
<code><a href="gradcomddrawmap.html" target="pages">draw map</a></code><br>
<code><a href="gradcomddrawmark.html" target="pages">draw mark</a></code><br>
<code><a href="gradcomddrawpolyf.html" target="pages">draw polyf</a></code><br>
<code><a href="gradcomddrawrec.html" target="pages">draw rec</a></code><br>
<code><a href="gradcomddrawrecf.html" target="pages">draw recf</a></code><br>
<code><a href="gradcomddrawshp.html" target="pages">draw shp</a></code><br>
<code><a href="gradcomddrawstring.html" target="pages">draw string</a></code><br> 
<code><a href="gradcomddrawtitle.html" target="pages">draw title</a></code><br>
<code><a href="gradcomddrawwxsym.html" target="pages">draw wxsym</a></code><br>
<code><a href="gradcomddrawxlab.html" target="pages">draw xlab</a></code><br>
<code><a href="gradcomddrawylab.html" target="pages">draw ylab</a></code><br>
<code>draw <a href="gradcomddrawdropmenu.html" target="pages">dropmenu</a></code><br>
<code>set <a href="gradcomdsetdropmenu.html" target="pages">dropmenu</a></code><br>
<p>
<a name="indexe">
<table cellpadding=2 border=0 WIDTH=20>
<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
<font color="fffacd"><b>E</b></font></td></tr>
</table>
</a>

<p class="plaintext">
<code>set <a href="gradcomdsetxyzte.html" target="pages">e</a></code><br>
<code><a href="gradfunceloop.html" target="pages">eloop</a></code><br>
<code><a href="gradcomdenableprint.html" target="pages">enable print</a></code><br>
<code>q <a href="gradcomdqens.html" target="pages">ens</a></code><br> 
<code>set <a href="gradcomdsetlatlonlevtimeens.html" target="pages">ens</a></code><br>
<a href="ensembles.html" target="pages">ensemble dimension</a><br>
<a href="gradcomdgrads.html#env" target="pages">environment variables</a><br>
<code><a href="gradcomdexec.html" target="pages">exec</a></code><br>
<code><a href="gradfuncexp.html" target="pages">exp()</a></code><br>
<a href="expressions.html" target="pages">expressions</a><br>
<a href="utilities.html" target="pages">external utilites</a><br>
<p>
<a name="indexf">
<table cellpadding=2 border=0 WIDTH=20>
<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
<font color="fffacd"><b>F</b></font></td></tr>
</table>
</a>

<p class="plaintext">
<code>set <a href="gradcomdsetfgvals.html" target="pages">fgvals</a></code><br> 
<code><a href="gradcomdquery.html" target="pages">q</a> file(s)</code><br>
<code><a href="gradcomdflush.html" target="pages">flush</a></code><br> 
<code><a href="gradfuncfndlvl.html" target="pages">fndlvl()</a></code><br>
<a href="fontcontrol.html" target="pages">font control</a><br>
<a href="font.html" target="pages">font file</a><br>
<code>set <a href="gradcomdsetfont.html" target="pages">font</a></code><br> 
<code>set <a href="gradcomdsetframe.html" target="pages">frame</a></code><br> 
<code>disable <a href="gradcomddisablefwrite.html" target="pages">fwrite</a></code><br>
<code>q <a href="gradcomdqfwrite.html" target="pages">fwrite</a></code><br> 
<code>set <a href="gradcomdsetfwrite.html" target="pages">fwrite</a></code><br>
<a href="functions.html" target="pages">functions: alpha</a><br>
<a href="functionsatt.html" target="pages">functions: attribute</a><br>
<a href="mathfunctions.html" target="pages">math functions</a><br>
<p>
<a name="indexg">
<table cellpadding=2 border=0 WIDTH=20>
<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
<font color="fffacd"><b>G</b></font></td></tr>
</table>
</a>

<p class="plaintext">
<code>set <a href="gradcomdsetgeotiff.html" target="pages">geotiff</a></code><br>
<code><a href="gradfuncgint.html" target="pages">gint()</a></code><br>
<code><a href="gradfuncgr2stn.html" target="pages">gr2stn()</a></code><br>
<code><a href="gradcomdquery.html" target="pages">q</a> gr2w</code><br>
<code><a href="gradcomdquery.html" target="pages">q</a> gr2xy</code><br>
<code>set <a href="gradcomdsetgrads.html" target="pages">grads</a></code><br> 
<code><a href="gradcomdgrads.html" target="pages">grads</a></code><br>
<code><a href="gradcomdgrads.html" target="pages">gradsc</a></code><br>
<code><a href="gradcomdgrads.html" target="pages">gradsdap</a></code><br>
<code><a href="gradcomdgrads.html" target="pages">gradsdods</a></code><br>
<code><a href="gradcomdgrads.html" target="pages">gradshdf</a></code><br>
<code><a href="gradcomdgrads.html" target="pages">gradsnc</a></code><br>
  <a href="grib.html" target="pages">GRIB format</a><br>
<code><a href="gradutilgribmap.html" target="pages">gribmap</a></code><br>
<code><a href="gradutilgribscan.html" target="pages">gribscan</a></code><br>
<code><a href="gradutilgrib2scan.html" target="pages">grib2scan</a></code><br>
<code>set <a href="gradcomdsetgrid.html" target="pages">grid</a></code><br>
<code>set <a href="gradcomdsetgridln.html" target="pages">gridln</a></code><br>
<code><a href="gsf.html" target="pages">gsfallow()</a></code><br>
<code><a href="gsf.html" target="pages">gsfpath()</a></code><br>
<code><a href="gradutilgxeps.html" target="pages">gxeps</a></code><br>
<code><a href="gradcomdquery.html" target="pages">q</a> gxinfo</code><br>
<code><a href="gradcomdquery.html" target="pages">q</a> gxout</code><br>
<code>set <a href="gradcomdsetgxout.html" target="pages">gxout</a></code><br>  
<code><a href="gradutilgxps.html" target="pages">gxps</a></code><br>
<code><a href="gradutilgxtran.html" target="pages">gxtran</a></code><br>
</font>

<p>
<a name="indexh">
<table cellpadding=2 border=0 WIDTH=20>
<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
<font color="fffacd"><b>H</b></font></td></tr>
</table>
</a>

<p class="plaintext">
<a href="imageoutput.html" target="pages">hardcopy output</a><br>
<code><a href="gradfunchcurl.html" target="pages">hcurl()</a></code><br>
  <code><a href="SDFdescriptorfile.html" target="pages">HDF-SDS format</a></code><br>
<code><a href="gradfunchdivg.html" target="pages">hdivg()</a></code><br>
<code><a href="gradcomdhelp.html" target="pages">help</a></code><br>
<code>set <a href="gradcomdsethempref.html" target="pages">hempref</a></code><br>

<p class="plaintext">
<a name="indexi">
<table cellpadding=2 border=0 WIDTH=20>
<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
<font color="fffacd"><b>I</b></font></td></tr>
</table>
</a>
<p class="plaintext">
<a href="imageoutput.html" target="pages">image output</a><br>
<code>set <a href="gradcomdsetimprun.html" target="pages">imprun</a></code><br>

<p class="plaintext">
<a name="indexj">
<table cellpadding=2 border=0 WIDTH=20>
<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
<font color="fffacd"><b>J</b></font></td></tr>
</table>
</a>
<p class="plaintext">

<p class="plaintext"> 
<a name="indexk">
<table cellpadding=2 border=0 WIDTH=20>
<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
<font color="fffacd"><b>K</b></font></td></tr>
</table>
</a>
<p class="plaintext">
<code>set <a href="gradcomdsetkml.html" target="pages">kml</a></code><br>


<p class="plaintext">
<a name="indexl">
</a></p>
<table cellpadding=2 border=0 WIDTH=20>
  <tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
  <font color="fffacd"><b>L</b></font></td></tr>
</table>
</a>

<p class="plaintext">
<code>set <a href="gradcomdsetlatlonlevtimeens.html" target="pages">lat</a></code><br>
<code>set <a href="gradcomdsetlatlonlevtimeens.html" target="pages">lev</a></code><br>
<code>set <a href="gradcomdsetlfcols.html" target="pages">lfcols</a></code><br> 
script <a href="library.html" target="pages">library</a><br>
<code>draw <a href="gradcomddrawline.html" target="pages">line</a></code><br>
<code>set <a href="gradcomdsetline.html" target="pages">line</a></code><br>
<code><a href="gradfunclog.html" target="pages">log()</a></code><br>
<code><a href="gradfunclog10.html" target="pages">log10()</a></code><br>
<code>set <a href="gradcomdsetlog1d.html" target="pages">log1d</a></code><br>
<code>set <a href="gradcomdsetlatlonlevtimeens.html" target="pages">lon</a></code><br>
<code>set <a href="gradcomdsetloopdim.html" target="pages">loopdim</a></code><br>
<code>set <a href="gradcomdsetlooping.html" target="pages">looping</a></code><br> 
<code><a href="gradfunclterp.html" target="pages">lterp()</a></code><br> 
</font>

<p>
<a name="indexm">
<table cellpadding=2 border=0 WIDTH=20>
<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
<font color="fffacd"><b>M</b></font></td></tr>
</table>
</a>

<p class="plaintext">
<code><a href="gradfuncmag.html" target="pages">mag()</a></code><br>
<a href="map.html" target="pages">map projections</a><br>
<code>draw <a href="gradcomddrawmap.html" target="pages">map</a></code><br>
<code>set <a href="gradcomdsetmap.html" target="pages">map</a></code><br>
<code>draw <a href="gradcomddrawmark.html" target="pages">mark</a></code><br>
<code><a href="gradfuncmaskout.html" target="pages">maskout()</a></code><br> 
<a href="mathfunctions.html" target="pages">math functions</a><br>
<code><a href="gradfuncmax.html" target="pages">max()</a></code><br>
<code><a href="gradfuncmaxloc.html" target="pages">maxloc()</a></code><br>
<code>set <a href="gradcomdsetmdlopts.html" target="pages">mdlopts</a></code><br>
<code><a href="gradfuncmean.html" target="pages">mean()</a></code><br>
<a href="imageoutput.html" target="pages">metafiles</a><br>
<code><a href="gradfuncmin.html" target="pages">min()</a></code><br>
<code><a href="gradfuncminloc.html" target="pages">minloc()</a></code><br>
<code>set <a href="gradcomdsetmissconn.html" target="pages">missconn</a></code><br>
<code><a href="gradcomdmodify.html" target="pages">modify</a></code><br>
<code>set <a href="gradcomdsetmpdraw.html" target="pages">mpdraw</a></code><br>
<code>set <a href="gradcomdsetmpdset.html" target="pages">mpdset</a></code><br>
<code>set <a href="gradcomdsetmproj.html" target="pages">mproj</a></code><br>
<code>set <a href="gradcomdsetmpt.html" target="pages">mpt</a></code><br>
<code>set <a href="gradcomdsetmpvals.html" target="pages">mpvals</a></code><br>
<a href="pagecontrol.html#multipanel" target="pages">multi-panel plots</a><br>
</font>

<p>
<a name="indexn">
<table cellpadding=2 border=0 WIDTH=20>
<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
<font color="fffacd"><b>N</b></font></td></tr>
</table>
</a>

<p class="plaintext">
<code><a href="SDFdescriptorfile.html" target="pages">NetCDF format</a></code><br>
</font>

<p>
<a name="indexo">
<table cellpadding=2 border=0 WIDTH=20>
<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
<font color="fffacd"><b>O</b></font></td></tr>
</table>
</a>

<p class="plaintext">
<code><a href="gradfuncoabin.html" target="pages">oabin()</a></code><br>
<code><a href="gradfuncoacres.html" target="pages">oacres()</a></code><br>
<code><a href="offt.html" target="pages">offt</a></code><br>
<code><a href="gradcomdopen.html" target="pages">open</a></code><br>
<code><a href="gradcomdoutxwd.html" target="pages">outxwd</a></code><br>
</font>

<p>
<a name="indexp">
<table cellpadding=2 border=0 WIDTH=20>
<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
<font color="fffacd"><b>P</b></font></td></tr>
</table>
</a>

<p class="plaintext">
<a href="pagecontrol.html" target="pages">page control</a><br>
<code>set <a href="gradcomdsetparea.html" target="pages">parea</a></code><br>
  <a href="http://dao.gsfc.nasa.gov/software/grads/win32/latest/" target="_top">PC 
  GrADS</a><br>
<code><a href="pdef.html" target="pages">PDEF</a></code><br>
<a href="pagecontrol.html#plotarea" target="pages">plot area</a><br>
<code>set <a href="gradcomdsetpoli.html" target="pages">poli</a></code><br>
<code>draw <a href="gradcomddrawpolyf.html" target="pages">polyf</a></code><br>
<code>q <a href="gradcomdqpos.html" target="pages">pos</a></code><br> 
<code><a href="gradfuncpow.html" target="pages">pow()</a></code><br>
<code><a href="gradcomdprint.html" target="pages">print</a></code><br>
<code>disable <a href="gradcomddisableprint.html" target="pages">print</a></code><br>
<code>enable <a href="gradcomdenableprint.html" target="pages">print</a></code><br>  
<code><a href="gradcomdprintim.html" target="pages">printim</a></code><br>
<code>set <a href="gradcomdsetprnopts.html" target="pages">prnopts</a></code><br>
</font>

<p>
<a name="indexq">
<table cellpadding=2 border=0 WIDTH=20>
<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
<font color="fffacd"><b>Q</b></font></td></tr>
</table>
</a>

<p class="plaintext">
<code><a href="gradcomdquery.html" target="pages">q (query)</a></code><br>
<code><a href="gradcomdqattr.html" target="pages">q attr</a></code><br> 
<code><a href="gradcomdqdbf.html" target="pages">q dbf</a></code><br>
<code><a href="gradcomdqdialog.html" target="pages">q dialog</a></code><br>
<code><a href="gradcomdqens.html" target="pages">q ens</a></code><br> 
<code><a href="gradcomdqfwrite.html" target="pages">q fwrite</a></code><br> 
<code><a href="gradcomdqpos.html" target="pages">q pos</a></code><br> 
<code><a href="gradcomdqsdfwrite.html" target="pages">q sdfwrite</a></code><br>
<code><a href="gradcomdqshades.html" target="pages">q shades</a></code><br>
<code><a href="gradcomdqshp.html" target="pages">q shp</a></code><br>
<code><a href="gradcomdqshpopts.html" target="pages">q shpopts</a></code><br>
<a href="reference_card.pdf" target="_top">quick: commands</a><br>
<a href="reference_card_scl.pdf"target="_top">quick: scripts</a><br>
<code><a href="gradcomdquit.html" target="pages">quit</a></code><br>  
</font>

<p>
<a name="indexr">
<table cellpadding=2 border=0 WIDTH=20>
<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
<font color="fffacd"><b>R</b></font></td></tr>
</table>
</a>

<p class="plaintext">
<code>set <a href="gradcomdsetrband.html" target="pages">rband</a></code><br>
<code>set <a href="gradcomdsetrbcols.html" target="pages">rbcols</a></code><br>
<code>set <a href="gradcomdsetrbrange.html" target="pages">rbrange</a></code><br>
<a href="pagecontrol.html#real" target="pages">real page</a><br>
<code>draw <a href="gradcomddrawrec.html" target="pages">rec</a></code><br>
<code>draw <a href="gradcomddrawrecf.html" target="pages">recf</a></code><br>
<code><a href="gradcomdredrawbutton.html" target="pages">redraw button</a></code><br>
<code><a href="gradcomdreset.html" target="pages">reset</a></code><br>   
<code><a href="gradcomdreinit.html" target="pages">reinit</a></code><br>   
<a href="reinitialization.html" target="pages">reinitialization</a><br>
<code>set <a href="gradcomdsetrgb.html" target="pages">rgb</a></code><br>
<code><a href="gradcomdrun.html" target="pages">run</a></code><br> 
</font>

<p>
<a name="indexs">
<table cellpadding=2 border=0 WIDTH=20>
<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
<font color="fffacd"><b>S</b></font></td></tr>
</table>
</a>

<p class="plaintext">
<code><a href="gradfuncs2g1d.html" target="pages">s2g1d()</a></code><br>
<code><a href="gradfuncscorr.html" target="pages">scorr()</a></code><br>
<code><a href="gradcomdscreen.html" target="pages">screen</a></code><br>
<a href="gsf.html" target="pages">script functions</a><br>
<a href="library.html" target="pages">script library</a><br>
<a href="script.html" target="pages">scripting language</a><br>
<code><a href="gradcomdsdfopen.html" target="pages">sdfopen</a></code><br>
<code><a href="gradcomdsdfwrite.html" target="pages">sdfwrite</a></code><br>
<code>q <a href="gradcomdqsdfwrite.html" target="pages">sdfwrite</a></code><br>
<code>set <a href="gradcomdsetsdfattr.html" target="pages">sdfattr</a></code><br>
<code>set <a href="gradcomdsetsdfwrite.html" target="pages"> sdfwrite</a></code><br>
<code><a href="gradcomdsetannot.html" target="pages">set annot</a></code><br>
<code><a href="gradcomdsetarrlab.html" target="pages">set arrlab</a></code><br>
<code><a href="gradcomdsetarrowhead.html" target="pages">set arrowhead</a></code><br>
<code><a href="gradcomdsetarrscl.html" target="pages">set arrscl</a></code><br>
<code><a href="gradcomdsetbackground.html" target="pages">set background</a></code><br>
<code><a href="gradcomdsetbarbase.html" target="pages">set barbase</a></code><br>
<code><a href="gradcomdsetbargap.html" target="pages">set bargap</a></code><br>
<code><a href="gradcomdsetbaropts.html" target="pages">set baropts</a></code><br>
<code><a href="gradcomdsetblack.html" target="pages">set black</a></code><br>
<code><a href="gradcomdsetbutton.html" target="pages">set button</a></code><br>
<code><a href="gradcomdsetcachesf.html" target="pages">set cachesf</a></code><br>
<code><a href="gradcomdsetccolor.html" target="pages">set ccolor</a></code><br>
<code><a href="gradcomdsetccols.html" target="pages">set ccols</a></code><br>
<code><a href="gradcomdsetcint.html" target="pages">set cint</a></code><br>
<code><a href="gradcomdsetchunksize.html" target="pages">set chunksize</a></code><br>  
<code><a href="gradcomdsetclab.html" target="pages">set clab</a></code><br>
<code><a href="gradcomdsetclevs.html" target="pages">set clevs</a></code><br>
<code><a href="gradcomdsetclip.html" target="pages">set clip</a></code><br>
<code><a href="gradcomdsetclopts.html" target="pages">set clopts</a></code><br>
<code><a href="gradcomdsetclskip.html" target="pages">set clskip</a></code><br>
<code><a href="gradcomdsetcmark.html" target="pages">set cmark</a></code><br>
<code><a href="gradcomdsetcmax.html" target="pages">set cmax</a></code><br>
<code><a href="gradcomdsetcmin.html" target="pages">set cmin</a></code><br>
<code><a href="gradcomdsetcmin.html" target="pages">set cmin</a></code><br>
<code><a href="gradcomdsetcoslat.html" target="pages">set coslat</a></code><br>
<code><a href="gradcomdsetcstyle.html" target="pages">set cstyle</a></code><br>
<code><a href="gradcomdsetcterp.html" target="pages">set cterp</a></code><br>
<code><a href="gradcomdsetcthick.html" target="pages">set cthick</a></code><br>
<code><a href="gradcomdsetdatawarn.html" target="pages">set datawarn</a></code><br>
<code><a href="gradcomdsetdbuff.html" target="pages">set dbuff</a></code><br>
<code><a href="gradcomdsetdefval.html" target="pages">set defval</a></code><br>
<code><a href="gradcomdsetdfile.html" target="pages">set dfile</a></code><br>
<code><a href="gradcomdsetdialog.html" target="pages">set dialog</a></code><br> 
<code><a href="gradcomdsetdignum.html" target="pages">set dignum</a></code><br> 
<code><a href="gradcomdsetdigsize.html" target="pages">set digsiz</a></code><br> 
<code><a href="gradcomdsetdisplay.html" target="pages">set display</a></code><br> 
<code><a href="gradcomdsetdropmenu.html" target="pages">set dropmenu</a></code><br>
<code><a href="gradcomdsetlatlonlevtimeens.html" target="pages">set ens</a></code><br>
<code><a href="gradcomdsetfgvals.html" target="pages">set fgvals</a></code><br> 
<code><a href="gradcomdsetfont.html" target="pages">set font</a></code><br> 
<code><a href="gradcomdsetframe.html" target="pages">set frame</a></code><br> 
<code><a href="gradcomdsetfwrite.html" target="pages">set fwrite</a></code><br>
<code><a href="gradcomdsetgrads.html" target="pages">set grads</a></code><br> 
<code><a href="gradcomdsetgeotiff.html" target="pages">set geotiff</a></code><br> 
<code><a href="gradcomdsetgrid.html" target="pages">set grid</a></code><br>
<code><a href="gradcomdsetgridln.html" target="pages">set gridln</a></code><br>
<code><a href="gradcomdsetgxout.html" target="pages">set gxout</a></code><br>  
<code><a href="gradcomdsethempref.html" target="pages">set hempref</a></code><br>
<code><a href="gradcomdsetimprun.html" target="pages">set imprun</a></code><br>
<code><a href="gradcomdsetkml.html" target="pages">set kml</a></code><br>
<code><a href="gradcomdsetlatlonlevtimeens.html" target="pages">set lat</a></code><br>
<code><a href="gradcomdsetlatlonlevtimeens.html" target="pages">set lev</a></code><br>
<code><a href="gradcomdsetlfcols.html" target="pages">set lfcols</a></code><br> 
<code><a href="gradcomdsetline.html" target="pages">set line</a></code><br>
<code><a href="gradcomdsetlog1d.html" target="pages">set log1d</a></code><br>
<code><a href="gradcomdsetlatlonlevtimeens.html" target="pages">set lon</a></code><br>
<code><a href="gradcomdsetloopdim.html" target="pages">set loopdim</a></code><br>
<code><a href="gradcomdsetlooping.html" target="pages">set looping</a></code><br> 
<code><a href="gradcomdsetmap.html" target="pages">set map</a></code><br>
<code><a href="gradcomdsetmdlopts.html" target="pages">set mdlopts</a></code><br>
<code><a href="gradcomdsetmissconn.html" target="pages">set missconn</a></code><br>
<code><a href="gradcomdsetmpdraw.html" target="pages">set mpdraw</a></code><br>
<code><a href="gradcomdsetmpdset.html" target="pages">set mpdset</a></code><br>
<code><a href="gradcomdsetmproj.html" target="pages">set mproj</a></code><br>
<code><a href="gradcomdsetmpt.html" target="pages">set mpt</a></code><br>
<code><a href="gradcomdsetmpvals.html" target="pages">set mpvals</a></code><br>
<code><a href="gradcomdsetparea.html" target="pages">set parea</a></code><br>
<code><a href="gradcomdsetpoli.html" target="pages">set poli</a></code><br>
<code><a href="gradcomdsetprnopts.html" target="pages">set prnopts</a></code><br>
<code><a href="gradcomdsetrband.html" target="pages">set rband</a></code><br>
<code><a href="gradcomdsetrbcols.html" target="pages">set rbcols</a></code><br>
<code><a href="gradcomdsetrbrange.html" target="pages">set rbrange</a></code><br>
<code><a href="gradcomdsetrgb.html" target="pages">set rgb</a></code><br>
<code><a href="gradcomdsetsdfattr.html" target="pages">set sdfattr</a></code><br>
<code><a href="gradcomdsetsdfwrite.html" target="pages">set sdfwrite</a></code><br>
<code><a href="gradcomdsetshp.html" target="pages">set shp</a></code><br>
<code><a href="gradcomdsetshpattr.html" target="pages">set shpattr</a></code><br>
<code><a href="gradcomdsetshpopts.html" target="pages">set shpopts</a></code><br>
<code><a href="gradcomdsetstat.html" target="pages">set stat</a></code><br>
<code><a href="gradcomdsetstid.html" target="pages">set stid</a></code><br>
<code><a href="gradcomdsetstnprint.html" target="pages">set stnprint</a></code><br>
<code><a href="gradcomdsetstring.html" target="pages">set string</a></code><br>
<code><a href="gradcomdsetstrmden.html" target="pages">set strmden</a></code><br>
<code><a href="gradcomdsetstrsiz.html" target="pages">set strsiz</a></code><br>
<code><a href="gradcomdsetxyzte.html" target="pages">set t</a></code><br>
<code><a href="gradcomdsetlatlonlevtimeens.html" target="pages">set time</a></code><br>
<code><a href="gradcomdsettimelab.html" target="pages">set timelab</a></code><br>
<code><a href="gradcomdsettlsupp.html" target="pages">set tlsupp</a></code><br>
<code><a href="gradcomdsetundef.html" target="pages">set undef</a></code><br>
<code><a href="gradcomdsetvpage.html" target="pages">set vpage</a></code><br>
<code><a href="gradcomdsetvrange.html" target="pages">set vrange</a></code><br>
<code><a href="gradcomdsetvrange2.html" target="pages">set vrange2</a></code><br>
<code><a href="gradcomdsetwarn.html" target="pages">set warn</a></code><br>
<code><a href="gradcomdsetwxcols.html" target="pages">set wxcols</a></code><br>
<code><a href="gradcomdsetwxopt.html" target="pages">set wxopt</a></code><br>
<code><a href="gradcomdsetxyzte.html" target="pages">set x</a></code><br>
<code><a href="gradcomdsetxaxis.html" target="pages">set xaxis</a></code><br>
<code><a href="gradcomdsetxflip.html" target="pages">set xflip</a></code><br>
<code><a href="gradcomdsetxlab.html" target="pages">set xlab</a></code><br>
<code><a href="gradcomdsetxlabs.html" target="pages">set xlabs</a></code><br>
<code><a href="gradcomdsetxlevs.html" target="pages">set xlevs</a></code><br>
<code><a href="gradcomdsetxlint.html" target="pages">set xlint</a></code><br>
<code><a href="gradcomdsetxlopts.html" target="pages">set xlopts</a></code><br>
<code><a href="gradcomdsetxlpos.html" target="pages">set xlpos</a></code><br>
<code><a href="gradcomdsetxsize.html" target="pages">set xsize</a></code><br>
<code><a href="gradcomdsetxyrev.html" target="pages">set xyrev</a></code><br>
<code><a href="gradcomdsetxyzte.html" target="pages">set y</a></code><br>
<code><a href="gradcomdsetyaxis.html" target="pages">set yaxis</a></code><br>
<code><a href="gradcomdsetyflip.html" target="pages">set yflip</a></code><br>
<code><a href="gradcomdsetylab.html" target="pages">set ylab</a></code><br>
<code><a href="gradcomdsetylabs.html" target="pages">set ylabs</a></code><br>
<code><a href="gradcomdsetylevs.html" target="pages">set ylevs</a></code><br>
<code><a href="gradcomdsetylint.html" target="pages">set ylint</a></code><br>
<code><a href="gradcomdsetylopts.html" target="pages">set ylopts</a></code><br>
<code><a href="gradcomdsetylpos.html" target="pages">set ylpos</a></code><br>
<code><a href="gradcomdsetxyzte.html" target="pages">set z</a></code><br>
<code><a href="gradcomdsetzlog.html" target="pages">set zlog</a></code><br>
<code>query <a href="gradcomdqshades.html" target="pages">shades</a></code><br>
<a href="shapefiles.html" target="pages">shapefiles</a><br>
<code><a href="gradcomdshell.html" target="pages">!shell</a></code><br>
<code>draw <a href="gradcomddrawshp.html" target="pages">shp</a></code><br>
<code>q <a href="gradcomdqshp.html" target="pages">shp</a></code><br>
<code>set <a href="gradcomdsetshp.html" target="pages">shp</a></code><br>
<code>q <a href="gradcomdqshpopts.html" target="pages">shpopts</a></code><br>
<code>set <a href="gradcomdsetshpopts.html" target="pages">shpopts</a></code><br>
<code><a href="gradfuncsin.html" target="pages">sin()</a></code><br>
<code><a href="gradfuncskip.html" target="pages">skip()</a></code><br>
<code><a href="gradfuncsmth9.html" target="pages">smth9()</a></code><br>
<code><a href="gradfuncsqrt.html" target="pages">sqrt()</a></code><br>
<code><a href="gradfuncsregr.html" target="pages">sregr()</a></code><br>
<a href="start.html" target="pages">starting GrADS</a><br>
<code>set <a href="gradcomdsetstat.html" target="pages">stat</a></code><br>
about <a href="aboutstationdata.html" target="pages">station data</a><br>
using <a href="usingstationdata.html" target="pages">station data</a><br>
<code>set <a href="gradcomdsetstid.html" target="pages">stid</a></code><br>
<code><a href="gradfuncstnave.html" target="pages">stnave()</a></code><br>
<code><a href="gradfuncstnmin.html" target="pages">stnmin()</a></code><br>
<code><a href="gradutilstnmap.html" target="pages">stnmap</a></code><br>
<code><a href="gradfuncstnmax.html" target="pages">stnmax()</a></code><br>
<code>set <a href="gradcomdsetstnprint.html" target="pages">stnprint</a></code><br>
<a href="fontcontrol.html" target="pages">string formatting</a><br>
<code>draw <a href="gradcomddrawstring.html" target="pages">string</a></code><br> 
<code><a href="gradcomdquery.html" target="pages">q</a> string</code><br>
<code>set <a href="gradcomdsetstring.html" target="pages">string</a></code><br>
<code>set <a href="gradcomdsetstrmden.html" target="pages">strmden</a></code><br>
<code>set <a href="gradcomdsetstrsiz.html" target="pages">strsiz</a></code><br>
<code><a href="gradfuncsum.html" target="pages">sum()</a></code><br>
<code><a href="gradfuncsumg.html" target="pages">sumg()</a></code><br>
<a href="supplibs.html" target="pages">supplibs</a><br>
<code><a href="gradcomdswap.html" target="pages">swap</a></code><br>
</font>
<p>
<a name="indext">
<table cellpadding=2 border=0 WIDTH=20>
<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
<font color="fffacd"><b>T</b></font></td></tr>
</table>
</a>

<p class="plaintext">
<code>set <a href="gradcomdsetxyzte.html" target="pages">t</a></code><br>
<code><a href="gradfunctan.html" target="pages">tan()</a></code><br>     
<code><a href="gradfunctcorr.html" target="pages">tcorr()</a></code><br>
<a href="templates.html" target="pages">templates</a><br>
<code><a href="gradcomdquery.html" target="pages">q</a> time</code><br>
<code>set <a href="gradcomdsetlatlonlevtimeens.html" target="pages">time</a></code><br>
<code>set <a href="gradcomdsettimelab.html" target="pages">timelab</a></code><br>
<code>draw <a href="gradcomddrawtitle.html" target="pages">title</a></code><br>
<code><a href="gradfunctloop.html" target="pages">tloop()</a></code><br>
<code>set <a href="gradcomdsettlsupp.html" target="pages">tlsupp</a></code><br>
<code><a href="gradfunctmave.html" target="pages">tmave()</a></code><br>
<code><a href="gradfunctregr.html" target="pages">tregr()</a></code><br>
<a href="tutorial.html" target="pages">Tutorial</a><br>
<code><a href="gradfunctvrh2q.html" target="pages">tvrh2q()</a></code><br>
<code><a href="gradfunctvrh2t.html" target="pages">tvrh2t()</a></code><br>
</font>

<p>
<a name="indexu">
<table cellpadding=2 border=0 WIDTH=20>
<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
<font color="fffacd"><b>U</b></font></td></tr>
</table>
</a>

<p class="plaintext">
<code><a href="gradcomdquery.html" target="pages">q</a> undef</code><br>
<code>set <a href="gradcomdsetundef.html" target="pages">undef</a></code><br>
<code><a href="gradcomdundefine.html" target="pages">undefine</a></code><br>
<a href="udf.html" target="pages">user defined functions</a><br>
<a href="users.html" target="pages">user's guide</a><br>
external <a href="utilities.html" target="pages">utilites</a><br>
</font>

<p>
<a name="indexv">
<table cellpadding=2 border=0 WIDTH=20>
<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
<font color="fffacd"><b>V</b></font></td></tr>
</table>
</a>

<p class="plaintext">
<a href="variable.html" target="pages">variables</a><br>
<code><a href="gradfuncvint.html" target="pages">vint()</a></code><br>    
<a href="pagecontrol.html#real" target="pages">virtual page</a><br>
<code>set <a href="gradcomdsetvpage.html" target="pages">vpage</a></code><br>
<code>set <a href="gradcomdsetvrange.html" target="pages">vrange</a></code><br>
<code>set <a href="gradcomdsetvrange2.html" target="pages">vrange2</a></code><br>
</font>

<p>
<a name="indexw">
<table cellpadding=2 border=0 WIDTH=20>
<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
<font color="fffacd"><b>W</b></font></td></tr>
</table>
</a>

<p class="plaintext">
<code><a href="gradcomdquery.html" target="pages">q</a> w2gr</code><br>
<code><a href="gradcomdquery.html" target="pages">q</a> w2xy</code><br>
<code>set <a href="gradcomdsetwarn.html" target="pages">warn</a></code><br>
<code><a href="gradcomdwi.html" target="pages">wi</a></code><br>
<a href="script.html#widgets" target="pages">widgets</a><br>
<code>set <a href="gradcomdsetwxcols.html" target="pages">wxcols</a></code><br>
<code>set <a href="gradcomdsetwxopt.html" target="pages">wxopt</a></code><br>
<code>draw <a href="gradcomddrawwxsym.html" target="pages">wxsym</a></code><br>
</font>

<p>
<a name="indexx">
<table cellpadding=2 border=0 WIDTH=20>
<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
<font color="fffacd"><b>X</b></font></td></tr>
</table>
</a>

<p class="plaintext">
<code>set <a href="gradcomdsetxyzte.html" target="pages">x</a></code><br>
<code>set <a href="gradcomdsetxaxis.html" target="pages">xaxis</a></code><br>
<code><a href="gradcomdxdfopen.html" target="pages">xdfopen</a></code><br>
<code>set <a href="gradcomdsetxflip.html" target="pages">xflip</a></code><br>
<code>draw <a href="gradcomddrawxlab.html" target="pages">xlab</a></code><br>
<code>set <a href="gradcomdsetxlab.html" target="pages">xlab</a></code><br>
<code>set <a href="gradcomdsetxlabs.html" target="pages">xlabs</a></code><br>
<code>set <a href="gradcomdsetxlevs.html" target="pages">xlevs</a></code><br>
<code>set <a href="gradcomdsetxlint.html" target="pages">xlint</a></code><br>
<code>set <a href="gradcomdsetxlopts.html" target="pages">xlopts</a></code><br>
<code>set <a href="gradcomdsetxlpos.html" target="pages">xlpos</a></code><br>
<code>set <a href="gradcomdsetxsize.html" target="pages">xsize</a></code><br>
<code>set <a href="gradcomdsetxyrev.html" target="pages">xyrev</a></code><br>
<code><a href="gradcomdquery.html" target="pages">q</a> xy2gr</code><br>
<code><a href="gradcomdquery.html" target="pages">q</a> xy2w</code><br>
</font>

<p>
<a name="indexy">
<table cellpadding=2 border=0 WIDTH=20>
<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
<font color="fffacd"><b>Y</b></font></td></tr>
</table>
</a>

<p class="plaintext">
<code>set <a href="gradcomdsetxyzte.html" target="pages">y</a></code><br>
<code>set <a href="gradcomdsetyaxis.html" target="pages">yaxis</a></code><br>
<code>set <a href="gradcomdsetyflip.html" target="pages">yflip</a></code><br>
<code>draw <a href="gradcomddrawylab.html" target="pages">ylab</a></code><br>
<code>set <a href="gradcomdsetylab.html" target="pages">ylab</a></code><br>
<code>set <a href="gradcomdsetylabs.html" target="pages">ylabs</a></code><br>
<code>set <a href="gradcomdsetylevs.html" target="pages">ylevs</a></code><br>
<code>set <a href="gradcomdsetylint.html" target="pages">ylint</a></code><br>
<code>set <a href="gradcomdsetylopts.html" target="pages">ylopts</a></code><br>
<code>set <a href="gradcomdsetylpos.html" target="pages">ylpos</a></code><br>
</font>

<p>
<a name="indexz">
<table cellpadding=2 border=0 WIDTH=20>
<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
<font color="fffacd"><b>Z</b></font></td></tr>
</table>
</a>

<p class="plaintext">
<code>set <a href="gradcomdsetxyzte.html" target="pages">z</a></code><br>
<code>set <a href="gradcomdsetzlog.html" target="pages">zlog</a></code><br>
</font>

</body>
</html>
\ No newline at end of file
+<!--Copyright (C) 1988-2005 by the Institute of Global Environment and Society (IGES). See file COPYRIGHT for more information.-->
+
+<html>
+<head>
+<title>Documentation Index</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<link href="GrADS.css" rel="stylesheet" type="text/css">
+</head>
+<body bgcolor="#e0f0ff" text="#000000">
+<a name="indexa">
+<table cellpadding=2 border=0 WIDTH=20>
+<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
+<font color="fffacd"><b>A</b></font></td></tr>
+</table>
+</a>
+
+<p class="plaintext">
+<code><a href="gradfuncaave.html" target="pages">aave()</a></code><br>
+<code><a href="gradfuncabs.html" target="pages">abs()</a></code><br>
+<code><a href="gradfuncacos.html" target="pages">acos()</a></code><br>
+<a href="templates.html" target="pages">aggregate data files</a><br>
+<code><a href="gradfuncamax.html" target="pages">amax()</a></code><br>
+<code><a href="gradfuncamaxlocx.html" target="pages">amaxlocx()</a></code><br>
+<code><a href="gradfuncamaxlocy.html" target="pages">amaxlocy()</a></code><br>
+<code><a href="gradfuncamean.html" target="pages">amean()</a></code><br>
+<code><a href="gradfuncamin.html" target="pages">amin()</a></code><br>
+<code><a href="gradfuncaminlocx.html" target="pages">aminlocx()</a></code><br>
+<code><a href="gradfuncaminlocy.html" target="pages">aminlocy()</a></code><br>
+<a href="animation.html" target="pages">animation</a><br>
+<code>set <a href="gradcomdsetannot.html" target="pages">annot</a></code><br>
+<code>set <a href="gradcomdsetantialias.html" target="pages">antialias</a></code><br>
+<code>set <a href="gradcomdsetarrlab.html" target="pages">arrlab</a></code><br>
+<code>set <a href="gradcomdsetarrowhead.html" target="pages">arrowhead</a></code><br>
+<code>set <a href="gradcomdsetarrscl.html" target="pages">arrscl</a></code><br>
+<a href="ascii.html" target="pages">ASCII data</a><br>
+<code><a href="gradfuncasin.html" target="pages">asin()</a></code><br>
+<code><a href="gradfuncasum.html" target="pages">asum()</a></code><br>
+<code><a href="gradfuncasumg.html" target="pages">asumg()</a></code><br>
+<code><a href="gradfuncatan2.html" target="pages">atan2()</a></code><br>
+<a href="http://dao.gsfc.nasa.gov/software/grads/win32/latest/pc-dist/doc/gagui/gagui_intro.html" target="_top">athena widgets</a><br>
+<code><a href="gradfuncatot.html" target="pages">atot()</a></code><br>
+<code><a href="gradcomdqattr.html" target="pages">q </a>attr</code><br> 
+<code><a href="gradfuncave.html" target="pages">ave()</a></code><br>
+<p>
+<a name="indexb">
+<table cellpadding=2 border=0 WIDTH=20>
+<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
+<font color="fffacd"><b>B</b></font></td></tr>
+</table>
+</a>
+
+<p class="plaintext">
+<code>set <a href="gradcomdsetbackground.html" target="pages">background</a></code><br>
+<code>set <a href="gradcomdsetbarbase.html" target="pages">barbase</a></code><br>
+<code>set <a href="gradcomdsetbargap.html" target="pages">bargap</a></code><br>
+<code>set <a href="gradcomdsetbaropts.html" target="pages">baropts</a></code><br>
+<code><a href="basemap.html" target="pages">basemap.gs</a></code><br>
+<a href="basic.html" target="pages">basic operation</a><br>
+<a href="aboutgriddeddata.html" target="pages">binary data sets</a><br>
+<code>set <a href="gradcomdsetblack.html" target="pages">black</a></code><br>
+  <a href="bufrformat.html" target="pages">BUFR format</a><br>
+<code><a href="gradutilbufrscan.html" target="pages">bufrscan</a></code>  <br>
+<a href="supplibs.html" target="pages">build  from source</a><br>
+<code>draw <a href="gradcomddrawbutton.html" target="pages">button</a></code><br>
+<code>redraw <a href="gradcomdredrawbutton.html" target="pages">button</a></code><br>
+<code>set <a href="gradcomdsetbutton.html" target="pages">button</a></code><br>
+<p>
+<a name="indexc">
+<table cellpadding=2 border=0 WIDTH=20>
+<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
+<font color="fffacd"><b>C</b></font></td></tr>
+</table>
+</a>
+
+<p class="plaintext">
+<code><a href="gradcomdquery.html" target="pages">q </a>cache</code><br> 
+<code><a href="gradcomdquery.html" target="pages">q</a> cachesf</code><br> 
+<code>set <a href="gradcomdsetcachesf.html" target="pages">cachesf</a></code><br>
+<a href="gradcomddrawdropmenu.html" target="pages">cascading dropmenus</a><br>
+<code>set <a href="gradcomdsetccolor.html" target="pages">ccolor</a></code><br>
+<code>set <a href="gradcomdsetccols.html" target="pages">ccols</a></code><br>
+<code><a href="gradfunccdiff.html" target="pages">cdiff()</a></code><br>
+<code><a href="templates.html#chsub" target="pages">chsub</a></code><br>
+<code>set <a href="gradcomdsetchunksize.html" target="pages">chunksize</a></code><br> 
+<code>set <a href="gradcomdsetcint.html" target="pages">cint</a></code><br> 
+<code>set <a href="gradcomdsetclab.html" target="pages">clab</a></code><br>
+<code><a href="gradcomdclear.html" target="pages">clear</a></code><br>
+<code>set <a href="gradcomdsetclevs.html" target="pages">clevs</a></code><br>
+<code>set <a href="gradcomdsetclip.html" target="pages">clip</a></code><br>
+<code>set <a href="gradcomdsetclopts.html" target="pages">clopts</a></code><br>
+<code><a href="gradcomdclose.html" target="pages">close</a></code><br>
+<code>set <a href="gradcomdsetclskip.html" target="pages">clskip</a></code><br>
+<code>set <a href="gradcomdsetcmark.html" target="pages">cmark</a></code><br>
+<code>set <a href="gradcomdsetcmax.html" target="pages">cmax</a></code><br>
+<code>set <a href="gradcomdsetcmin.html" target="pages">cmin</a></code><br>
+<code><a href="gradcomdcollect.html" target="pages">collect</a></code><br>
+<code><a href="gradfunccoll2gr.html" target="pages">coll2gr()</a></code><br>
+default <a href="16colors.html" target="pages">colors</a><br>
+controlling <a href="colorcontrol.html" target="pages">colors</a><br>
+<a href="commandline.html" target="pages">command line editing</a><br>
+<a href="commandsatt.html" target="pages">commands: attribute</a><br>
+<a href="compression.html" target="pages">compression</a><br>
+<code><a href="gradcomdquery.html" target="pages">q</a> config</code><br> 
+<code><a href="gradfuncconst.html" target="pages">const()</a></code><br>
+<code><a href="gradcomdquery.html" target="pages">q</a> contours</code><br> 
+<a href="descriptorfile.html" target="pages">control file</a><br>
+<a href="gradfuncscorr.html" target="pages">correlation, spatial</a><br>
+<a href="gradfunctcorr.html" target="pages">correlation, temporal</a><br>
+<code><a href="gradfunccos.html" target="pages">cos()</a></code><br>
+<code>set <a href="gradcomdsetcoslat.html" target="pages">coslat</a></code><br>
+<a href="usingstationdata.html#xsection" target="pages">cross sections</a><br>
+<code>set <a href="gradcomdsetcsmooth.html" target="pages">csmooth</a></code><br>
+<code>set <a href="gradcomdsetcstyle.html" target="pages">cstyle</a></code><br>
+<code>set <a href="gradcomdsetcterp.html" target="pages">cterp</a></code><br>
+<code><a href="gradcomdquery.html" target="pages">q</a> ctlinfo</code><br> 
+<code>set <a href="gradcomdsetcthick.html" target="pages">cthick</a></code><br> 
+</font>
+
+<p>
+<a name="indexd">
+<table cellpadding=2 border=0 WIDTH=20>
+<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
+<font color="fffacd"><b>D</b></font></td></tr>
+</table>
+</a>
+
+<p class="plaintext">
+data descriptor files:<br>
+  <a href="descriptorfile.html" target="pages">elements</a><br>
+  <a href="bufrformat.html" target="pages">for BUFR data</a><br>
+  <a href="aboutgriddeddata.html#descriptor" target="pages">for gridded data</a><br>
+    <a href="SDFdescriptorfile.html" target="pages">for NetCDF/HDF files</a><br>
+  <a href="aboutstationdata.html#descriptor" target="pages">for station data</a><br>
+<a href="aboutgriddeddata.html" target="pages">data sets (gridded)</a><br>
+<a href="aboutstationdata.html" target="pages">data sets (station)</a><br>
+<code>set <a href="gradcomdsetdatawarn.html" target="pages">datawarn</a></code><br>
+<code>q <a href="gradcomdqdbf.html" target="pages">dbf</a></code><br>
+<code>set <a href="gradcomdsetdbuff.html" target="pages">dbuff</a></code><br>
+<code><a href="gradcomddefine.html" target="pages">define</a></code><br>
+<code><a href="gradcomdquery.html" target="pages">q</a> define</code><br>
+<code><a href="gradcomdquery.html" target="pages">q</a> defval</code><br>
+<code>set <a href="gradcomdsetdefval.html" target="pages">defval</a></code><br>
+<a href="fontcontrol.html#overrides" target="pages">degree symbol</a><br>
+<code>set <a href="gradcomdsetdfile.html" target="pages">dfile</a></code><br>
+<code>q <a href="gradcomdqdialog.html" target="pages">dialog</a></code><br> 
+<code>set <a href="gradcomdsetdialog.html" target="pages">dialog</a></code><br> 
+<code>set <a href="gradcomdsetdignum.html" target="pages">dignum</a></code><br> 
+<code>set <a href="gradcomdsetdigsize.html" target="pages">digsiz</a></code><br> 
+<a href="dimenv.html" target="pages">dimension environment</a><br>
+<code><a href="gradcomdquery.html" target="pages">q</a> dims</code><br>
+<code><a href="gradcomddisablefwrite.html" target="pages">disable fwrite</a></code><br>
+<code><a href="gradcomddisableprint.html" target="pages">disable print</a></code><br>
+<code><a href="gradcomddisplay.html" target="pages">display</a></code><br>
+<code>set <a href="gradcomdsetdisplay.html" target="pages">display</a></code><br> 
+<a href="display.html" target="pages">displaying data</a><br>
+<a href="imageoutput.html" target="pages">displaying metafiles</a><br>
+<code><a href="gradcomddrawbutton.html" target="pages">draw button</a></code><br>
+<code><a href="gradcomddrawdropmenu.html" target="pages">draw dropmenu</a></code><br>
+<code><a href="gradcomddrawline.html" target="pages">draw line</a></code><br>
+<code><a href="gradcomddrawmap.html" target="pages">draw map</a></code><br>
+<code><a href="gradcomddrawmark.html" target="pages">draw mark</a></code><br>
+<code><a href="gradcomddrawpolyf.html" target="pages">draw polyf</a></code><br>
+<code><a href="gradcomddrawrec.html" target="pages">draw rec</a></code><br>
+<code><a href="gradcomddrawrecf.html" target="pages">draw recf</a></code><br>
+<code><a href="gradcomddrawshp.html" target="pages">draw shp</a></code><br>
+<code><a href="gradcomddrawstring.html" target="pages">draw string</a></code><br> 
+<code><a href="gradcomddrawtitle.html" target="pages">draw title</a></code><br>
+<code><a href="gradcomddrawwxsym.html" target="pages">draw wxsym</a></code><br>
+<code><a href="gradcomddrawxlab.html" target="pages">draw xlab</a></code><br>
+<code><a href="gradcomddrawylab.html" target="pages">draw ylab</a></code><br>
+<a href="drawingtips.html" target="pages">drawing tips</a><br>
+<code>draw <a href="gradcomddrawdropmenu.html" target="pages">dropmenu</a></code><br>
+<code>set <a href="gradcomdsetdropmenu.html" target="pages">dropmenu</a></code><br>
+<p>
+<a name="indexe">
+<table cellpadding=2 border=0 WIDTH=20>
+<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
+<font color="fffacd"><b>E</b></font></td></tr>
+</table>
+</a>
+
+<p class="plaintext">
+<code>set <a href="gradcomdsetxyzte.html" target="pages">e</a></code><br>
+<code><a href="gradfunceloop.html" target="pages">eloop</a></code><br>
+<code><a href="gradcomdenableprint.html" target="pages">enable print</a></code><br>
+<code>q <a href="gradcomdqens.html" target="pages">ens</a></code><br> 
+<code>set <a href="gradcomdsetlatlonlevtimeens.html" target="pages">ens</a></code><br>
+<a href="ensembles.html" target="pages">ensemble dimension</a><br>
+<a href="gradcomdgrads.html#env" target="pages">environment variables</a><br>
+<code><a href="gradcomdexec.html" target="pages">exec</a></code><br>
+<code><a href="gradfuncexp.html" target="pages">exp()</a></code><br>
+<a href="expressions.html" target="pages">expressions</a><br>
+<a href="utilities.html" target="pages">external utilites</a><br>
+<p>
+<a name="indexf">
+<table cellpadding=2 border=0 WIDTH=20>
+<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
+<font color="fffacd"><b>F</b></font></td></tr>
+</table>
+</a>
+
+<p class="plaintext">
+<code>set <a href="gradcomdsetfgvals.html" target="pages">fgvals</a></code><br> 
+<code><a href="gradcomdquery.html" target="pages">q</a> file(s)</code><br>
+<code><a href="gradcomdflush.html" target="pages">flush</a></code><br> 
+<code><a href="gradfuncfndlvl.html" target="pages">fndlvl()</a></code><br>
+<a href="fontcontrol.html" target="pages">font control</a><br>
+<a href="font.html" target="pages">font file</a><br>
+<code>set <a href="gradcomdsetfont.html" target="pages">font</a></code><br> 
+<code>set <a href="gradcomdsetframe.html" target="pages">frame</a></code><br> 
+<code>disable <a href="gradcomddisablefwrite.html" target="pages">fwrite</a></code><br>
+<code>q <a href="gradcomdqfwrite.html" target="pages">fwrite</a></code><br> 
+<code>set <a href="gradcomdsetfwrite.html" target="pages">fwrite</a></code><br>
+<a href="functions.html" target="pages">functions: alpha</a><br>
+<a href="functionsatt.html" target="pages">functions: attribute</a><br>
+<a href="mathfunctions.html" target="pages">math functions</a><br>
+<p>
+<a name="indexg">
+<table cellpadding=2 border=0 WIDTH=20>
+<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
+<font color="fffacd"><b>G</b></font></td></tr>
+</table>
+</a>
+
+<p class="plaintext">
+<code>set <a href="gradcomdsetgeotiff.html" target="pages">geotiff</a></code><br>
+<code><a href="gradfuncgint.html" target="pages">gint()</a></code><br>
+<code><a href="gradfuncgr2stn.html" target="pages">gr2stn()</a></code><br>
+<code><a href="gradcomdquery.html" target="pages">q</a> gr2w</code><br>
+<code><a href="gradcomdquery.html" target="pages">q</a> gr2xy</code><br>
+<code>set <a href="gradcomdsetgrads.html" target="pages">grads</a></code><br> 
+<code><a href="gradcomdgrads.html" target="pages">grads</a></code><br>
+<code><a href="gradcomdgrads.html" target="pages">gradsc</a></code><br>
+<code><a href="gradcomdgrads.html" target="pages">gradsdap</a></code><br>
+<code><a href="gradcomdgrads.html" target="pages">gradsdods</a></code><br>
+<code><a href="gradcomdgrads.html" target="pages">gradshdf</a></code><br>
+<code><a href="gradcomdgrads.html" target="pages">gradsnc</a></code><br>
+  <a href="grib.html" target="pages">GRIB format</a><br>
+<code><a href="gradutilgribmap.html" target="pages">gribmap</a></code><br>
+<code><a href="gradutilgribscan.html" target="pages">gribscan</a></code><br>
+<code><a href="gradutilgrib2scan.html" target="pages">grib2scan</a></code><br>
+<code>set <a href="gradcomdsetgrid.html" target="pages">grid</a></code><br>
+<code>set <a href="gradcomdsetgridln.html" target="pages">gridln</a></code><br>
+<code><a href="gsf.html" target="pages">gsfallow()</a></code><br>
+<code><a href="gsf.html" target="pages">gsfpath()</a></code><br>
+<code><a href="gradutilgxeps.html" target="pages">gxeps</a></code><br>
+<code><a href="gradcomdquery.html" target="pages">q</a> gxinfo</code><br>
+<code><a href="gradcomdquery.html" target="pages">q</a> gxout</code><br>
+<code>set <a href="gradcomdsetgxout.html" target="pages">gxout</a></code><br>  
+<code><a href="gradcomdgxprint.html" target="pages">gxprint</a></code><br>
+<code><a href="gradutilgxps.html" target="pages">gxps</a></code><br>
+<code><a href="gradutilgxtran.html" target="pages">gxtran</a></code><br>
+</font>
+
+<p>
+<a name="indexh">
+<table cellpadding=2 border=0 WIDTH=20>
+<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
+<font color="fffacd"><b>H</b></font></td></tr>
+</table>
+</a>
+
+<p class="plaintext">
+<a href="imageoutput.html" target="pages">hardcopy output</a><br>
+<code><a href="gradfunchcurl.html" target="pages">hcurl()</a></code><br>
+  <code><a href="SDFdescriptorfile.html" target="pages">HDF-SDS format</a></code><br>
+<code><a href="gradfunchdivg.html" target="pages">hdivg()</a></code><br>
+<code><a href="gradcomdhelp.html" target="pages">help</a></code><br>
+<code>set <a href="gradcomdsethempref.html" target="pages">hempref</a></code><br>
+<code>set <a href="gradcomdsethershey.html" target="pages">hershey</a></code><br>
+
+<p class="plaintext">
+<a name="indexi">
+<table cellpadding=2 border=0 WIDTH=20>
+<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
+<font color="fffacd"><b>I</b></font></td></tr>
+</table>
+</a>
+<p class="plaintext">
+<a href="imageoutput.html" target="pages">image output</a><br>
+<code>set <a href="gradcomdsetimprun.html" target="pages">imprun</a></code><br>
+
+<p class="plaintext">
+<a name="indexj">
+<table cellpadding=2 border=0 WIDTH=20>
+<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
+<font color="fffacd"><b>J</b></font></td></tr>
+</table>
+</a>
+<p class="plaintext">
+
+<p class="plaintext"> 
+<a name="indexk">
+<table cellpadding=2 border=0 WIDTH=20>
+<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
+<font color="fffacd"><b>K</b></font></td></tr>
+</table>
+</a>
+<p class="plaintext">
+<code>set <a href="gradcomdsetkml.html" target="pages">kml</a></code><br>
+
+
+<p class="plaintext">
+<a name="indexl">
+</a></p>
+<table cellpadding=2 border=0 WIDTH=20>
+  <tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
+  <font color="fffacd"><b>L</b></font></td></tr>
+</table>
+</a>
+
+<p class="plaintext">
+<code>set <a href="gradcomdsetlatlonlevtimeens.html" target="pages">lat</a></code><br>
+<code>set <a href="gradcomdsetlatlonlevtimeens.html" target="pages">lev</a></code><br>
+<code>set <a href="gradcomdsetlfcols.html" target="pages">lfcols</a></code><br> 
+script <a href="library.html" target="pages">library</a><br>
+<code>draw <a href="gradcomddrawline.html" target="pages">line</a></code><br>
+<code>set <a href="gradcomdsetline.html" target="pages">line</a></code><br>
+<code><a href="gradfunclog.html" target="pages">log()</a></code><br>
+<code><a href="gradfunclog10.html" target="pages">log10()</a></code><br>
+<code>set <a href="gradcomdsetlog1d.html" target="pages">log1d</a></code><br>
+<code>set <a href="gradcomdsetlatlonlevtimeens.html" target="pages">lon</a></code><br>
+<code>set <a href="gradcomdsetloopdim.html" target="pages">loopdim</a></code><br>
+<code>set <a href="gradcomdsetlooping.html" target="pages">looping</a></code><br> 
+<code><a href="gradfunclterp.html" target="pages">lterp()</a></code><br> 
+<code>set <a href="gradcomdsetlwid.html" target="pages">lwid</a></code><br> 
+</font>
+
+<p>
+<a name="indexm">
+<table cellpadding=2 border=0 WIDTH=20>
+<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
+<font color="fffacd"><b>M</b></font></td></tr>
+</table>
+</a>
+
+<p class="plaintext">
+<code><a href="gradfuncmag.html" target="pages">mag()</a></code><br>
+<a href="map.html" target="pages">map projections</a><br>
+<code>draw <a href="gradcomddrawmap.html" target="pages">map</a></code><br>
+<code>set <a href="gradcomdsetmap.html" target="pages">map</a></code><br>
+<code>draw <a href="gradcomddrawmark.html" target="pages">mark</a></code><br>
+<code><a href="gradfuncmaskout.html" target="pages">maskout()</a></code><br> 
+<a href="mathfunctions.html" target="pages">math functions</a><br>
+<code><a href="gradfuncmax.html" target="pages">max()</a></code><br>
+<code><a href="gradfuncmaxloc.html" target="pages">maxloc()</a></code><br>
+<code>set <a href="gradcomdsetmdlopts.html" target="pages">mdlopts</a></code><br>
+<code><a href="gradfuncmean.html" target="pages">mean()</a></code><br>
+<a href="imageoutput.html" target="pages">metafiles</a><br>
+<code><a href="gradfuncmin.html" target="pages">min()</a></code><br>
+<code><a href="gradfuncminloc.html" target="pages">minloc()</a></code><br>
+<code>set <a href="gradcomdsetmissconn.html" target="pages">missconn</a></code><br>
+<code>set <a href="gradcomdsetmisswarn.html" target="pages">misswarn</a></code><br>
+<code><a href="gradcomdmodify.html" target="pages">modify</a></code><br>
+<code>set <a href="gradcomdsetmpdraw.html" target="pages">mpdraw</a></code><br>
+<code>set <a href="gradcomdsetmpdset.html" target="pages">mpdset</a></code><br>
+<code>set <a href="gradcomdsetmproj.html" target="pages">mproj</a></code><br>
+<code>set <a href="gradcomdsetmpt.html" target="pages">mpt</a></code><br>
+<code>set <a href="gradcomdsetmpvals.html" target="pages">mpvals</a></code><br>
+<a href="pagecontrol.html#multipanel" target="pages">multi-panel plots</a><br>
+</font>
+
+<p>
+<a name="indexn">
+<table cellpadding=2 border=0 WIDTH=20>
+<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
+<font color="fffacd"><b>N</b></font></td></tr>
+</table>
+</a>
+
+<p class="plaintext">
+<code><a href="SDFdescriptorfile.html" target="pages">NetCDF format</a></code><br>
+</font>
+
+<p>
+<a name="indexo">
+<table cellpadding=2 border=0 WIDTH=20>
+<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
+<font color="fffacd"><b>O</b></font></td></tr>
+</table>
+</a>
+
+<p class="plaintext">
+<code><a href="gradfuncoabin.html" target="pages">oabin()</a></code><br>
+<code><a href="gradfuncoacres.html" target="pages">oacres()</a></code><br>
+<code><a href="offt.html" target="pages">offt</a></code><br>
+<code><a href="gradcomdopen.html" target="pages">open</a></code><br>
+<code><a href="gradcomdoutxwd.html" target="pages">outxwd</a></code><br>
+</font>
+
+<p>
+<a name="indexp">
+<table cellpadding=2 border=0 WIDTH=20>
+<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
+<font color="fffacd"><b>P</b></font></td></tr>
+</table>
+</a>
+
+<p class="plaintext">
+<a href="pagecontrol.html" target="pages">page control</a><br>
+<code>set <a href="gradcomdsetparea.html" target="pages">parea</a></code><br>
+<a href="gradcomdsettile.html" target="pages">pattern filling</a><br>
+<code><a href="pdef.html" target="pages">PDEF</a></code><br>
+<code><a href="gradcomdpdefwrite.html" target="pages">pdefwrite</a></code><br>
+<a href="pagecontrol.html#plotarea" target="pages">plot area</a><br>
+<code>set <a href="gradcomdsetpoli.html" target="pages">poli</a></code><br>
+<code>draw <a href="gradcomddrawpolyf.html" target="pages">polyf</a></code><br>
+<code>q <a href="gradcomdqpos.html" target="pages">pos</a></code><br> 
+<code><a href="gradfuncpow.html" target="pages">pow()</a></code><br>
+<code><a href="gradcomdprint.html" target="pages">print</a></code><br>
+<code>disable <a href="gradcomddisableprint.html" target="pages">print</a></code><br>
+<code>enable <a href="gradcomdenableprint.html" target="pages">print</a></code><br>  
+<code><a href="gradcomdprintim.html" target="pages">printim</a></code><br>
+<code>set <a href="gradcomdsetprnopts.html" target="pages">prnopts</a></code><br>
+</font>
+
+<p>
+<a name="indexq">
+<table cellpadding=2 border=0 WIDTH=20>
+<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
+<font color="fffacd"><b>Q</b></font></td></tr>
+</table>
+</a>
+
+<p class="plaintext">
+<code><a href="gradcomdquery.html" target="pages">q (query)</a></code><br>
+<code><a href="gradcomdqattr.html" target="pages">q attr</a></code><br> 
+<code><a href="gradcomdqdbf.html" target="pages">q dbf</a></code><br>
+<code><a href="gradcomdqdialog.html" target="pages">q dialog</a></code><br>
+<code><a href="gradcomdqens.html" target="pages">q ens</a></code><br> 
+<code><a href="gradcomdqfwrite.html" target="pages">q fwrite</a></code><br> 
+<code><a href="gradcomdqpos.html" target="pages">q pos</a></code><br> 
+<code><a href="gradcomdqsdfwrite.html" target="pages">q sdfwrite</a></code><br>
+<code><a href="gradcomdqshades.html" target="pages">q shades</a></code><br>
+<code><a href="gradcomdqshp.html" target="pages">q shp</a></code><br>
+<code><a href="gradcomdqshpopts.html" target="pages">q shpopts</a></code><br>
+<a href="reference_card.pdf" target="_top">quick: commands</a><br>
+<a href="reference_card_scl.pdf"target="_top">quick: scripts</a><br>
+<code><a href="gradcomdquit.html" target="pages">quit</a></code><br>  
+</font>
+
+<p>
+<a name="indexr">
+<table cellpadding=2 border=0 WIDTH=20>
+<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
+<font color="fffacd"><b>R</b></font></td></tr>
+</table>
+</a>
+
+<p class="plaintext">
+<code>set <a href="gradcomdsetrband.html" target="pages">rband</a></code><br>
+<code>set <a href="gradcomdsetrbcols.html" target="pages">rbcols</a></code><br>
+<code>set <a href="gradcomdsetrbrange.html" target="pages">rbrange</a></code><br>
+<a href="pagecontrol.html#real" target="pages">real page</a><br>
+<code>draw <a href="gradcomddrawrec.html" target="pages">rec</a></code><br>
+<code>draw <a href="gradcomddrawrecf.html" target="pages">recf</a></code><br>
+<code><a href="gradcomdredrawbutton.html" target="pages">redraw button</a></code><br>
+<code><a href="gradcomdreset.html" target="pages">reset</a></code><br>   
+<code><a href="gradcomdreinit.html" target="pages">reinit</a></code><br>   
+<a href="reinitialization.html" target="pages">reinitialization</a><br>
+<code>set <a href="gradcomdsetrgb.html" target="pages">rgb</a></code><br>
+<code><a href="gradcomdrun.html" target="pages">run</a></code><br> 
+</font>
+
+<p>
+<a name="indexs">
+<table cellpadding=2 border=0 WIDTH=20>
+<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
+<font color="fffacd"><b>S</b></font></td></tr>
+</table>
+</a>
+
+<p class="plaintext">
+<code><a href="gradfuncs2g1d.html" target="pages">s2g1d()</a></code><br>
+<a href="scatterplot.html" target="pages">scatter plots</a><br>
+<code><a href="gradfuncscorr.html" target="pages">scorr()</a></code><br>
+<code><a href="gradcomdscreen.html" target="pages">screen</a></code><br>
+<a href="gsf.html" target="pages">script functions</a><br>
+<a href="library.html" target="pages">script library</a><br>
+<a href="script.html" target="pages">scripting language</a><br>
+<code><a href="gradcomdsdfopen.html" target="pages">sdfopen</a></code><br>
+<code><a href="gradcomdsdfwrite.html" target="pages">sdfwrite</a></code><br>
+<code>q <a href="gradcomdqsdfwrite.html" target="pages">sdfwrite</a></code><br>
+<code>set <a href="gradcomdsetsdfattr.html" target="pages">sdfattr</a></code><br>
+<code>set <a href="gradcomdsetsdfwrite.html" target="pages"> sdfwrite</a></code><br>
+<code><a href="gradcomdsetannot.html" target="pages">set annot</a></code><br>
+<code><a href="gradcomdsetantialias.html" target="pages">set antialias</a></code><br>
+<code><a href="gradcomdsetarrlab.html" target="pages">set arrlab</a></code><br>
+<code><a href="gradcomdsetarrowhead.html" target="pages">set arrowhead</a></code><br>
+<code><a href="gradcomdsetarrscl.html" target="pages">set arrscl</a></code><br>
+<code><a href="gradcomdsetbackground.html" target="pages">set background</a></code><br>
+<code><a href="gradcomdsetbarbase.html" target="pages">set barbase</a></code><br>
+<code><a href="gradcomdsetbargap.html" target="pages">set bargap</a></code><br>
+<code><a href="gradcomdsetbaropts.html" target="pages">set baropts</a></code><br>
+<code><a href="gradcomdsetblack.html" target="pages">set black</a></code><br>
+<code><a href="gradcomdsetbutton.html" target="pages">set button</a></code><br>
+<code><a href="gradcomdsetcachesf.html" target="pages">set cachesf</a></code><br>
+<code><a href="gradcomdsetccolor.html" target="pages">set ccolor</a></code><br>
+<code><a href="gradcomdsetccols.html" target="pages">set ccols</a></code><br>
+<code><a href="gradcomdsetcint.html" target="pages">set cint</a></code><br>
+<code><a href="gradcomdsetchunksize.html" target="pages">set chunksize</a></code><br>  
+<code><a href="gradcomdsetclab.html" target="pages">set clab</a></code><br>
+<code><a href="gradcomdsetclevs.html" target="pages">set clevs</a></code><br>
+<code><a href="gradcomdsetclip.html" target="pages">set clip</a></code><br>
+<code><a href="gradcomdsetclopts.html" target="pages">set clopts</a></code><br>
+<code><a href="gradcomdsetclskip.html" target="pages">set clskip</a></code><br>
+<code><a href="gradcomdsetcmark.html" target="pages">set cmark</a></code><br>
+<code><a href="gradcomdsetcmax.html" target="pages">set cmax</a></code><br>
+<code><a href="gradcomdsetcmin.html" target="pages">set cmin</a></code><br>
+<code><a href="gradcomdsetcmin.html" target="pages">set cmin</a></code><br>
+<code><a href="gradcomdsetcoslat.html" target="pages">set coslat</a></code><br>
+<code><a href="gradcomdsetcstyle.html" target="pages">set cstyle</a></code><br>
+<code><a href="gradcomdsetcterp.html" target="pages">set cterp</a></code><br>
+<code><a href="gradcomdsetcthick.html" target="pages">set cthick</a></code><br>
+<code><a href="gradcomdsetdatawarn.html" target="pages">set datawarn</a></code><br>
+<code><a href="gradcomdsetdbuff.html" target="pages">set dbuff</a></code><br>
+<code><a href="gradcomdsetdefval.html" target="pages">set defval</a></code><br>
+<code><a href="gradcomdsetdfile.html" target="pages">set dfile</a></code><br>
+<code><a href="gradcomdsetdialog.html" target="pages">set dialog</a></code><br> 
+<code><a href="gradcomdsetdignum.html" target="pages">set dignum</a></code><br> 
+<code><a href="gradcomdsetdigsize.html" target="pages">set digsiz</a></code><br> 
+<code><a href="gradcomdsetdisplay.html" target="pages">set display</a></code><br> 
+<code><a href="gradcomdsetdropmenu.html" target="pages">set dropmenu</a></code><br>
+<code><a href="gradcomdsetlatlonlevtimeens.html" target="pages">set ens</a></code><br>
+<code><a href="gradcomdsetfgvals.html" target="pages">set fgvals</a></code><br> 
+<code><a href="gradcomdsetfont.html" target="pages">set font</a></code><br> 
+<code><a href="gradcomdsetframe.html" target="pages">set frame</a></code><br> 
+<code><a href="gradcomdsetfwrite.html" target="pages">set fwrite</a></code><br>
+<code><a href="gradcomdsetgrads.html" target="pages">set grads</a></code><br> 
+<code><a href="gradcomdsetgeotiff.html" target="pages">set geotiff</a></code><br> 
+<code><a href="gradcomdsetgrid.html" target="pages">set grid</a></code><br>
+<code><a href="gradcomdsetgridln.html" target="pages">set gridln</a></code><br>
+<code><a href="gradcomdsetgxout.html" target="pages">set gxout</a></code><br>  
+<code><a href="gradcomdsethempref.html" target="pages">set hempref</a></code><br>
+<code><a href="gradcomdsethershey.html" target="pages">set hershey</a></code><br>
+<code><a href="gradcomdsetimprun.html" target="pages">set imprun</a></code><br>
+<code><a href="gradcomdsetkml.html" target="pages">set kml</a></code><br>
+<code><a href="gradcomdsetlatlonlevtimeens.html" target="pages">set lat</a></code><br>
+<code><a href="gradcomdsetlatlonlevtimeens.html" target="pages">set lev</a></code><br>
+<code><a href="gradcomdsetlfcols.html" target="pages">set lfcols</a></code><br> 
+<code><a href="gradcomdsetline.html" target="pages">set line</a></code><br>
+<code><a href="gradcomdsetlog1d.html" target="pages">set log1d</a></code><br>
+<code><a href="gradcomdsetlatlonlevtimeens.html" target="pages">set lon</a></code><br>
+<code><a href="gradcomdsetloopdim.html" target="pages">set loopdim</a></code><br>
+<code><a href="gradcomdsetlooping.html" target="pages">set looping</a></code><br> 
+<code><a href="gradcomdsetlwid.html" target="pages">set lwid</a></code><br> 
+<code><a href="gradcomdsetmap.html" target="pages">set map</a></code><br>
+<code><a href="gradcomdsetmdlopts.html" target="pages">set mdlopts</a></code><br>
+<code><a href="gradcomdsetmissconn.html" target="pages">set missconn</a></code><br>
+<code><a href="gradcomdsetmisswarn.html" target="pages">set misswarn</a></code><br>
+<code><a href="gradcomdsetmpdraw.html" target="pages">set mpdraw</a></code><br>
+<code><a href="gradcomdsetmpdset.html" target="pages">set mpdset</a></code><br>
+<code><a href="gradcomdsetmproj.html" target="pages">set mproj</a></code><br>
+<code><a href="gradcomdsetmpt.html" target="pages">set mpt</a></code><br>
+<code><a href="gradcomdsetmpvals.html" target="pages">set mpvals</a></code><br>
+<code><a href="gradcomdsetparea.html" target="pages">set parea</a></code><br>
+<code><a href="gradcomdsetpoli.html" target="pages">set poli</a></code><br>
+<code><a href="gradcomdsetprnopts.html" target="pages">set prnopts</a></code><br>
+<code><a href="gradcomdsetrband.html" target="pages">set rband</a></code><br>
+<code><a href="gradcomdsetrbcols.html" target="pages">set rbcols</a></code><br>
+<code><a href="gradcomdsetrbrange.html" target="pages">set rbrange</a></code><br>
+<code><a href="gradcomdsetrgb.html" target="pages">set rgb</a></code><br>
+<code><a href="gradcomdsetsdfattr.html" target="pages">set sdfattr</a></code><br>
+<code><a href="gradcomdsetsdfwrite.html" target="pages">set sdfwrite</a></code><br>
+<code><a href="gradcomdsetshp.html" target="pages">set shp</a></code><br>
+<code><a href="gradcomdsetshpattr.html" target="pages">set shpattr</a></code><br>
+<code><a href="gradcomdsetshpopts.html" target="pages">set shpopts</a></code><br>
+<code><a href="gradcomdsetstat.html" target="pages">set stat</a></code><br>
+<code><a href="gradcomdsetstid.html" target="pages">set stid</a></code><br>
+<code><a href="gradcomdsetstnprint.html" target="pages">set stnprint</a></code><br>
+<code><a href="gradcomdsetstring.html" target="pages">set string</a></code><br>
+<code><a href="gradcomdsetstrmden.html" target="pages">set strmden</a></code><br>
+<code><a href="gradcomdsetstrmden.html" target="pages">set strmopts</a></code><br>
+<code><a href="gradcomdsetstrsiz.html" target="pages">set strsiz</a></code><br>
+<code><a href="gradcomdsetxyzte.html" target="pages">set t</a></code><br>
+<code><a href="gradcomdsettile.html" target="pages">set tile</a></code><br>
+<code><a href="gradcomdsetlatlonlevtimeens.html" target="pages">set time</a></code><br>
+<code><a href="gradcomdsettimelab.html" target="pages">set timelab</a></code><br>
+<code><a href="gradcomdsettlsupp.html" target="pages">set tlsupp</a></code><br>
+<code><a href="gradcomdsetundef.html" target="pages">set undef</a></code><br>
+<code><a href="gradcomdsetvpage.html" target="pages">set vpage</a></code><br>
+<code><a href="gradcomdsetvrange.html" target="pages">set vrange</a></code><br>
+<code><a href="gradcomdsetvrange2.html" target="pages">set vrange2</a></code><br>
+<code><a href="gradcomdsetwarn.html" target="pages">set warn</a></code><br>
+<code><a href="gradcomdsetwxcols.html" target="pages">set wxcols</a></code><br>
+<code><a href="gradcomdsetwxopt.html" target="pages">set wxopt</a></code><br>
+<code><a href="gradcomdsetxyzte.html" target="pages">set x</a></code><br>
+<code><a href="gradcomdsetxaxis.html" target="pages">set xaxis</a></code><br>
+<code><a href="gradcomdsetxflip.html" target="pages">set xflip</a></code><br>
+<code><a href="gradcomdsetxlab.html" target="pages">set xlab</a></code><br>
+<code><a href="gradcomdsetxlabs.html" target="pages">set xlabs</a></code><br>
+<code><a href="gradcomdsetxlevs.html" target="pages">set xlevs</a></code><br>
+<code><a href="gradcomdsetxlint.html" target="pages">set xlint</a></code><br>
+<code><a href="gradcomdsetxlopts.html" target="pages">set xlopts</a></code><br>
+<code><a href="gradcomdsetxlpos.html" target="pages">set xlpos</a></code><br>
+<code><a href="gradcomdsetxsize.html" target="pages">set xsize</a></code><br>
+<code><a href="gradcomdsetxyrev.html" target="pages">set xyrev</a></code><br>
+<code><a href="gradcomdsetxyzte.html" target="pages">set y</a></code><br>
+<code><a href="gradcomdsetyaxis.html" target="pages">set yaxis</a></code><br>
+<code><a href="gradcomdsetyflip.html" target="pages">set yflip</a></code><br>
+<code><a href="gradcomdsetylab.html" target="pages">set ylab</a></code><br>
+<code><a href="gradcomdsetylabs.html" target="pages">set ylabs</a></code><br>
+<code><a href="gradcomdsetylevs.html" target="pages">set ylevs</a></code><br>
+<code><a href="gradcomdsetylint.html" target="pages">set ylint</a></code><br>
+<code><a href="gradcomdsetylopts.html" target="pages">set ylopts</a></code><br>
+<code><a href="gradcomdsetylpos.html" target="pages">set ylpos</a></code><br>
+<code><a href="gradcomdsetxyzte.html" target="pages">set z</a></code><br>
+<code><a href="gradcomdsetzlog.html" target="pages">set zlog</a></code><br>
+<code>query <a href="gradcomdqshades.html" target="pages">shades</a></code><br>
+<a href="shapefiles.html" target="pages">shapefiles</a><br>
+<code><a href="gradcomdshell.html" target="pages">!shell</a></code><br>
+<code>draw <a href="gradcomddrawshp.html" target="pages">shp</a></code><br>
+<code>q <a href="gradcomdqshp.html" target="pages">shp</a></code><br>
+<code>set <a href="gradcomdsetshp.html" target="pages">shp</a></code><br>
+<code>q <a href="gradcomdqshpopts.html" target="pages">shpopts</a></code><br>
+<code>set <a href="gradcomdsetshpopts.html" target="pages">shpopts</a></code><br>
+<code><a href="gradfuncsin.html" target="pages">sin()</a></code><br>
+<code><a href="gradfuncskip.html" target="pages">skip()</a></code><br>
+<code><a href="gradfuncsmth9.html" target="pages">smth9()</a></code><br>
+<code><a href="gradfuncsqrt.html" target="pages">sqrt()</a></code><br>
+<code><a href="gradfuncsregr.html" target="pages">sregr()</a></code><br>
+<a href="start.html" target="pages">starting GrADS</a><br>
+<code>set <a href="gradcomdsetstat.html" target="pages">stat</a></code><br>
+about <a href="aboutstationdata.html" target="pages">station data</a><br>
+using <a href="usingstationdata.html" target="pages">station data</a><br>
+<code>set <a href="gradcomdsetstid.html" target="pages">stid</a></code><br>
+<code><a href="gradfuncstnave.html" target="pages">stnave()</a></code><br>
+<code><a href="gradfuncstnmin.html" target="pages">stnmin()</a></code><br>
+<code><a href="gradutilstnmap.html" target="pages">stnmap</a></code><br>
+<code><a href="gradfuncstnmax.html" target="pages">stnmax()</a></code><br>
+<code>set <a href="gradcomdsetstnprint.html" target="pages">stnprint</a></code><br>
+<a href="fontcontrol.html" target="pages">string formatting</a><br>
+<code>draw <a href="gradcomddrawstring.html" target="pages">string</a></code><br> 
+<code><a href="gradcomdquery.html" target="pages">q</a> string</code><br>
+<code>set <a href="gradcomdsetstring.html" target="pages">string</a></code><br>
+<code>set <a href="gradcomdsetstrmden.html" target="pages">strmden</a></code><br>
+<code>set <a href="gradcomdsetstrsiz.html" target="pages">strsiz</a></code><br>
+<code><a href="gradfuncsum.html" target="pages">sum()</a></code><br>
+<code><a href="gradfuncsumg.html" target="pages">sumg()</a></code><br>
+<a href="supplibs.html" target="pages">supplibs</a><br>
+<code><a href="gradcomdswap.html" target="pages">swap</a></code><br>
+</font>
+<p>
+<a name="indext">
+<table cellpadding=2 border=0 WIDTH=20>
+<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
+<font color="fffacd"><b>T</b></font></td></tr>
+</table>
+</a>
+
+<p class="plaintext">
+<code>set <a href="gradcomdsetxyzte.html" target="pages">t</a></code><br>
+<code><a href="gradfunctan.html" target="pages">tan()</a></code><br>     
+<code><a href="gradfunctcorr.html" target="pages">tcorr()</a></code><br>
+<a href="templates.html" target="pages">templates</a><br>
+<a href="ascii.html" target="pages">text data </a><br>
+<code>set <a href="gradcomdsettile.html" target="pages">tile</a></code><br>
+<code><a href="gradcomdquery.html" target="pages">q</a> time</code><br>
+<code>set <a href="gradcomdsetlatlonlevtimeens.html" target="pages">time</a></code><br>
+<code>set <a href="gradcomdsettimelab.html" target="pages">timelab</a></code><br>
+<code>draw <a href="gradcomddrawtitle.html" target="pages">title</a></code><br>
+<code><a href="gradfunctloop.html" target="pages">tloop()</a></code><br>
+<code>set <a href="gradcomdsettlsupp.html" target="pages">tlsupp</a></code><br>
+<code><a href="gradfunctmave.html" target="pages">tmave()</a></code><br>
+<a href="colorcontrol.html#transparent" target="pages">transparent colors</a><br>
+<code><a href="gradfunctregr.html" target="pages">tregr()</a></code><br>
+<a href="tutorial.html" target="pages">Tutorial</a><br>
+<code><a href="gradfunctvrh2q.html" target="pages">tvrh2q()</a></code><br>
+<code><a href="gradfunctvrh2t.html" target="pages">tvrh2t()</a></code><br>
+</font>
+
+<p>
+<a name="indexu">
+<table cellpadding=2 border=0 WIDTH=20>
+<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
+<font color="fffacd"><b>U</b></font></td></tr>
+</table>
+</a>
+
+<p class="plaintext">
+<code><a href="gradcomdquery.html" target="pages">q</a> undef</code><br>
+<code>set <a href="gradcomdsetundef.html" target="pages">undef</a></code><br>
+<code><a href="gradcomdundefine.html" target="pages">undefine</a></code><br>
+<a href="udf.html" target="pages">user defined functions</a><br>
+<a href="users.html" target="pages">user's guide</a><br>
+external <a href="utilities.html" target="pages">utilites</a><br>
+</font>
+
+<p>
+<a name="indexv">
+<table cellpadding=2 border=0 WIDTH=20>
+<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
+<font color="fffacd"><b>V</b></font></td></tr>
+</table>
+</a>
+
+<p class="plaintext">
+<a href="variable.html" target="pages">variables</a><br>
+<code><a href="gradfuncvint.html" target="pages">vint()</a></code><br>    
+<a href="pagecontrol.html#real" target="pages">virtual page</a><br>
+<code>set <a href="gradcomdsetvpage.html" target="pages">vpage</a></code><br>
+<code>set <a href="gradcomdsetvrange.html" target="pages">vrange</a></code><br>
+<code>set <a href="gradcomdsetvrange2.html" target="pages">vrange2</a></code><br>
+</font>
+
+<p>
+<a name="indexw">
+<table cellpadding=2 border=0 WIDTH=20>
+<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
+<font color="fffacd"><b>W</b></font></td></tr>
+</table>
+</a>
+
+<p class="plaintext">
+<code><a href="gradcomdquery.html" target="pages">q</a> w2gr</code><br>
+<code><a href="gradcomdquery.html" target="pages">q</a> w2xy</code><br>
+<code>set <a href="gradcomdsetwarn.html" target="pages">warn</a></code><br>
+<code><a href="gradcomdwi.html" target="pages">wi</a></code><br>
+<a href="script.html#widgets" target="pages">widgets</a><br>
+<code>set <a href="gradcomdsetwxcols.html" target="pages">wxcols</a></code><br>
+<code>set <a href="gradcomdsetwxopt.html" target="pages">wxopt</a></code><br>
+<code>draw <a href="gradcomddrawwxsym.html" target="pages">wxsym</a></code><br>
+</font>
+
+<p>
+<a name="indexx">
+<table cellpadding=2 border=0 WIDTH=20>
+<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
+<font color="fffacd"><b>X</b></font></td></tr>
+</table>
+</a>
+
+<p class="plaintext">
+<code>set <a href="gradcomdsetxyzte.html" target="pages">x</a></code><br>
+<code>set <a href="gradcomdsetxaxis.html" target="pages">xaxis</a></code><br>
+<code><a href="gradcomdxdfopen.html" target="pages">xdfopen</a></code><br>
+<code>set <a href="gradcomdsetxflip.html" target="pages">xflip</a></code><br>
+<code>draw <a href="gradcomddrawxlab.html" target="pages">xlab</a></code><br>
+<code>set <a href="gradcomdsetxlab.html" target="pages">xlab</a></code><br>
+<code>set <a href="gradcomdsetxlabs.html" target="pages">xlabs</a></code><br>
+<code>set <a href="gradcomdsetxlevs.html" target="pages">xlevs</a></code><br>
+<code>set <a href="gradcomdsetxlint.html" target="pages">xlint</a></code><br>
+<code>set <a href="gradcomdsetxlopts.html" target="pages">xlopts</a></code><br>
+<code>set <a href="gradcomdsetxlpos.html" target="pages">xlpos</a></code><br>
+<code>set <a href="gradcomdsetxsize.html" target="pages">xsize</a></code><br>
+<code>set <a href="gradcomdsetxyrev.html" target="pages">xyrev</a></code><br>
+<code><a href="gradcomdquery.html" target="pages">q</a> xy2gr</code><br>
+<code><a href="gradcomdquery.html" target="pages">q</a> xy2w</code><br>
+</font>
+
+<p>
+<a name="indexy">
+<table cellpadding=2 border=0 WIDTH=20>
+<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
+<font color="fffacd"><b>Y</b></font></td></tr>
+</table>
+</a>
+
+<p class="plaintext">
+<code>set <a href="gradcomdsetxyzte.html" target="pages">y</a></code><br>
+<code>set <a href="gradcomdsetyaxis.html" target="pages">yaxis</a></code><br>
+<code>set <a href="gradcomdsetyflip.html" target="pages">yflip</a></code><br>
+<code>draw <a href="gradcomddrawylab.html" target="pages">ylab</a></code><br>
+<code>set <a href="gradcomdsetylab.html" target="pages">ylab</a></code><br>
+<code>set <a href="gradcomdsetylabs.html" target="pages">ylabs</a></code><br>
+<code>set <a href="gradcomdsetylevs.html" target="pages">ylevs</a></code><br>
+<code>set <a href="gradcomdsetylint.html" target="pages">ylint</a></code><br>
+<code>set <a href="gradcomdsetylopts.html" target="pages">ylopts</a></code><br>
+<code>set <a href="gradcomdsetylpos.html" target="pages">ylpos</a></code><br>
+</font>
+
+<p>
+<a name="indexz">
+<table cellpadding=2 border=0 WIDTH=20>
+<tr><td bgcolor="7b2100" align=center valign=center WIDTH=20>
+<font color="fffacd"><b>Z</b></font></td></tr>
+</table>
+</a>
+
+<p class="plaintext">
+<code>set <a href="gradcomdsetxyzte.html" target="pages">z</a></code><br>
+<code>set <a href="gradcomdsetzlog.html" target="pages">zlog</a></code><br>
+</font>
+
+</body>
+</html>
diff --git a/doc/templates.html b/doc/templates.html
index b36e322..7d59fa6 100644
--- a/doc/templates.html
+++ b/doc/templates.html
@@ -25,6 +25,7 @@ Beginning with version 2.0, data files may also be aggregated in the ensemble di
   file. If you specify any additional OPTIONS keywords in the data 
   descriptor file, make sure the options apply equally to each file included in 
   the template. 
+<p>You can use the <code><a href='gradcomdsetmisswarn.html'>set misswarn</a></code> command to alert you if any of the data files in the templated set is missing. 
 <h3>Templating over TIME</h3>
 <p>
 Valid components of the substitution template for the TIME axis are as follows:
diff --git a/src/Makefile.am b/src/Makefile.am
index d156894..eca3f39 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -9,13 +9,14 @@
 #
 
 # Targets that will built by "make all"
-#			 xgrads 
+
 bin_PROGRAMS	       = grads \
+			 xgrads \
 		         gribmap stnmap wgrib gribscan bufrscan \
 			 $(extra_utils)
 
 # Targets that will not always be built
-EXTRA_PROGRAMS	       = grib2scan
+EXTRA_PROGRAMS	       = grib2scan 
 
 # Convenience target
 utils: bufrscan gribscan gribmap stnmap wgrib $(extra_utils)
@@ -81,15 +82,15 @@ grads_SOURCES          = grads.c gxsubs.c gxmeta.c gxchpl.c gxcntr.c gxstrm.c \
 			 gxwmap.c gxshad.c gxshad2.c gaexpr.c gafunc.c gautil.c gagx.c \
 			 gscrpt.c gamach.c bufrstn.c gabufr.c gabufrtbl.c \
 			 gxdxwd.c galloc.c $(src_gui) $(src_gadap) \
-                         gaddes.c gaio.c gacfg.c gauser.c gasdf.c gatxt.c gxX.c gxC.c \
-                         gxprint.c 
+                         gaddes.c gaio.c gacfg.c gauser.c gasdf.c gatxt.c gxX.c  gxdb.c \
+                         gxC.c gxprint.c
 
-#xgrads_SOURCES         = grads.c gxsubs.c gxmeta.c gxchpl.c gxcntr.c gxstrm.c \
-#			 gxwmap.c gxshad.c gxshad2.c gaexpr.c gafunc.c gautil.c gagx.c \
-#			 gscrpt.c gamach.c bufrstn.c gabufr.c gabufrtbl.c \
-#			 gxdxwd.c galloc.c $(src_gui) $(src_gadap) \
-#                        gaddes.c gaio.c gacfg.c gauser.c gasdf.c gatxt.c gxX11.c \
-#			 gxprintGD.c gxGD.c 
+xgrads_SOURCES         = grads.c gxsubs.c gxmeta.c gxchpl.c gxcntr.c gxstrm.c \
+			 gxwmap.c gxshad.c gxshad2.c gaexpr.c gafunc.c gautil.c gagx.c \
+			 gscrpt.c gamach.c bufrstn.c gabufr.c gabufrtbl.c \
+			 gxdxwd.c galloc.c $(src_gui) $(src_gadap) \
+                         gaddes.c gaio.c gacfg.c gauser.c gasdf.c gatxt.c gxX11.c gxdb.c \
+			 gxprintGD.c gxGD.c
 
 # Sources that will not always be compiled
 # Since gradsc is the only GrADS binary that is not conditionally compiled,
@@ -102,9 +103,9 @@ grads_LDADD	       = $(common_ldadd) $(readline_libs) $(printim_libs) \
 			 $(grib2_libs) $(hdf_libs) $(hdf5_libs) $(nc_libs) \
 			 $(gui_libs) $(geotiff_libs) $(shp_libs) $(dap_libs) $(cairo_libs)
 
-#xgrads_LDADD	       = $(common_ldadd) $(readline_libs) $(printim_libs) \
-#			 $(grib2_libs) $(hdf_libs) $(hdf5_libs) $(nc_libs) \
-#			 $(gui_libs) $(geotiff_libs) $(shp_libs) $(dap_libs)
+xgrads_LDADD	       = $(common_ldadd) $(readline_libs) $(printim_libs) \
+			 $(grib2_libs) $(hdf_libs) $(hdf5_libs) $(nc_libs) \
+			 $(gui_libs) $(geotiff_libs) $(shp_libs) $(dap_libs)
 
 # Custom compilation for object files specific to this GrADS binary
 COMPILE_C = $(COMPILE) 
@@ -118,10 +119,10 @@ COMPILE_C = $(COMPILE)
 # If gadap is enabled, use C++ linker instead of C linker
 if USEGADAP
 grads_LINK          = $(CXX) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-#xgrads_LINK          = $(CXX) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+xgrads_LINK          = $(CXX) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 else
 grads_LINK          = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-#xgrads_LINK          = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+xgrads_LINK          = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 endif
 
 # Object files that should not be reused by the other GrADS binaries,
diff --git a/src/Makefile.in b/src/Makefile.in
index 1060d6c..4d8a914 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -21,6 +21,8 @@
 # Targets
 #
 
+# Targets that will built by "make all"
+
 
 srcdir = @srcdir@
 top_srcdir = @top_srcdir@
@@ -44,13 +46,13 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
-bin_PROGRAMS = grads$(EXEEXT) gribmap$(EXEEXT) stnmap$(EXEEXT) \
-	wgrib$(EXEEXT) gribscan$(EXEEXT) bufrscan$(EXEEXT) \
-	$(am__EXEEXT_1)
+bin_PROGRAMS = grads$(EXEEXT) xgrads$(EXEEXT) gribmap$(EXEEXT) \
+	stnmap$(EXEEXT) wgrib$(EXEEXT) gribscan$(EXEEXT) \
+	bufrscan$(EXEEXT) $(am__EXEEXT_1)
 EXTRA_PROGRAMS = grib2scan$(EXEEXT)
 subdir = src
 DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in $(srcdir)/config.h.in
+	$(srcdir)/Makefile.in $(srcdir)/config.h.in ChangeLog
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/Xaw.m4 \
 	$(top_srcdir)/m4/ga_lib_readline.m4 $(top_srcdir)/m4/gd.m4 \
@@ -78,8 +80,8 @@ am__grads_SOURCES_DIST = grads.c gxsubs.c gxmeta.c gxchpl.c gxcntr.c \
 	gxstrm.c gxwmap.c gxshad.c gxshad2.c gaexpr.c gafunc.c \
 	gautil.c gagx.c gscrpt.c gamach.c bufrstn.c gabufr.c \
 	gabufrtbl.c gxdxwd.c galloc.c gagui.c gsgui.c dodstn.c \
-	gaddes.c gaio.c gacfg.c gauser.c gasdf.c gatxt.c gxX.c gxC.c \
-	gxprint.c
+	gaddes.c gaio.c gacfg.c gauser.c gasdf.c gatxt.c gxX.c gxdb.c \
+	gxC.c gxprint.c
 @USEGUI_TRUE at am__objects_1 = gagui.$(OBJEXT) gsgui.$(OBJEXT)
 @USEGADAP_TRUE at am__objects_2 = dodstn.$(OBJEXT)
 am_grads_OBJECTS = grads.$(OBJEXT) gxsubs.$(OBJEXT) gxmeta.$(OBJEXT) \
@@ -91,7 +93,8 @@ am_grads_OBJECTS = grads.$(OBJEXT) gxsubs.$(OBJEXT) gxmeta.$(OBJEXT) \
 	gxdxwd.$(OBJEXT) galloc.$(OBJEXT) $(am__objects_1) \
 	$(am__objects_2) gaddes.$(OBJEXT) gaio.$(OBJEXT) \
 	gacfg.$(OBJEXT) gauser.$(OBJEXT) gasdf.$(OBJEXT) \
-	gatxt.$(OBJEXT) gxX.$(OBJEXT) gxC.$(OBJEXT) gxprint.$(OBJEXT)
+	gatxt.$(OBJEXT) gxX.$(OBJEXT) gxdb.$(OBJEXT) gxC.$(OBJEXT) \
+	gxprint.$(OBJEXT)
 grads_OBJECTS = $(am_grads_OBJECTS)
 am__DEPENDENCIES_1 =
 am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
@@ -126,6 +129,30 @@ am_wgrib_OBJECTS = wgrib.$(OBJEXT)
 wgrib_OBJECTS = $(am_wgrib_OBJECTS)
 wgrib_LDADD = $(LDADD)
 wgrib_DEPENDENCIES =
+am__xgrads_SOURCES_DIST = grads.c gxsubs.c gxmeta.c gxchpl.c gxcntr.c \
+	gxstrm.c gxwmap.c gxshad.c gxshad2.c gaexpr.c gafunc.c \
+	gautil.c gagx.c gscrpt.c gamach.c bufrstn.c gabufr.c \
+	gabufrtbl.c gxdxwd.c galloc.c gagui.c gsgui.c dodstn.c \
+	gaddes.c gaio.c gacfg.c gauser.c gasdf.c gatxt.c gxX11.c \
+	gxdb.c gxprintGD.c gxGD.c
+am_xgrads_OBJECTS = grads.$(OBJEXT) gxsubs.$(OBJEXT) gxmeta.$(OBJEXT) \
+	gxchpl.$(OBJEXT) gxcntr.$(OBJEXT) gxstrm.$(OBJEXT) \
+	gxwmap.$(OBJEXT) gxshad.$(OBJEXT) gxshad2.$(OBJEXT) \
+	gaexpr.$(OBJEXT) gafunc.$(OBJEXT) gautil.$(OBJEXT) \
+	gagx.$(OBJEXT) gscrpt.$(OBJEXT) gamach.$(OBJEXT) \
+	bufrstn.$(OBJEXT) gabufr.$(OBJEXT) gabufrtbl.$(OBJEXT) \
+	gxdxwd.$(OBJEXT) galloc.$(OBJEXT) $(am__objects_1) \
+	$(am__objects_2) gaddes.$(OBJEXT) gaio.$(OBJEXT) \
+	gacfg.$(OBJEXT) gauser.$(OBJEXT) gasdf.$(OBJEXT) \
+	gatxt.$(OBJEXT) gxX11.$(OBJEXT) gxdb.$(OBJEXT) \
+	gxprintGD.$(OBJEXT) gxGD.$(OBJEXT)
+xgrads_OBJECTS = $(am_xgrads_OBJECTS)
+xgrads_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
 DEFAULT_INCLUDES = -I. -I$(srcdir) -I.
 depcomp =
 am__depfiles_maybe =
@@ -135,10 +162,11 @@ CCLD = $(CC)
 LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 SOURCES = $(bufrscan_SOURCES) $(grads_SOURCES) $(EXTRA_grads_SOURCES) \
 	$(grib2scan_SOURCES) $(gribmap_SOURCES) $(gribscan_SOURCES) \
-	$(stnmap_SOURCES) $(wgrib_SOURCES)
+	$(stnmap_SOURCES) $(wgrib_SOURCES) $(xgrads_SOURCES)
 DIST_SOURCES = $(bufrscan_SOURCES) $(am__grads_SOURCES_DIST) \
 	$(EXTRA_grads_SOURCES) $(grib2scan_SOURCES) $(gribmap_SOURCES) \
-	$(gribscan_SOURCES) $(stnmap_SOURCES) $(wgrib_SOURCES)
+	$(gribscan_SOURCES) $(stnmap_SOURCES) $(wgrib_SOURCES) \
+	$(am__xgrads_SOURCES_DIST)
 HEADERS = $(noinst_HEADERS)
 ETAGS = etags
 CTAGS = ctags
@@ -349,16 +377,16 @@ grads_SOURCES = grads.c gxsubs.c gxmeta.c gxchpl.c gxcntr.c gxstrm.c \
 			 gxwmap.c gxshad.c gxshad2.c gaexpr.c gafunc.c gautil.c gagx.c \
 			 gscrpt.c gamach.c bufrstn.c gabufr.c gabufrtbl.c \
 			 gxdxwd.c galloc.c $(src_gui) $(src_gadap) \
-                         gaddes.c gaio.c gacfg.c gauser.c gasdf.c gatxt.c gxX.c gxC.c \
-                         gxprint.c 
+                         gaddes.c gaio.c gacfg.c gauser.c gasdf.c gatxt.c gxX.c  gxdb.c \
+                         gxC.c gxprint.c
 
+xgrads_SOURCES = grads.c gxsubs.c gxmeta.c gxchpl.c gxcntr.c gxstrm.c \
+			 gxwmap.c gxshad.c gxshad2.c gaexpr.c gafunc.c gautil.c gagx.c \
+			 gscrpt.c gamach.c bufrstn.c gabufr.c gabufrtbl.c \
+			 gxdxwd.c galloc.c $(src_gui) $(src_gadap) \
+                         gaddes.c gaio.c gacfg.c gauser.c gasdf.c gatxt.c gxX11.c gxdb.c \
+			 gxprintGD.c gxGD.c
 
-#xgrads_SOURCES         = grads.c gxsubs.c gxmeta.c gxchpl.c gxcntr.c gxstrm.c \
-#			 gxwmap.c gxshad.c gxshad2.c gaexpr.c gafunc.c gautil.c gagx.c \
-#			 gscrpt.c gamach.c bufrstn.c gabufr.c gabufrtbl.c \
-#			 gxdxwd.c galloc.c $(src_gui) $(src_gadap) \
-#                        gaddes.c gaio.c gacfg.c gauser.c gasdf.c gatxt.c gxX11.c \
-#			 gxprintGD.c gxGD.c 
 
 # Sources that will not always be compiled
 # Since gradsc is the only GrADS binary that is not conditionally compiled,
@@ -370,14 +398,13 @@ grads_LDADD = $(common_ldadd) $(readline_libs) $(printim_libs) \
 			 $(grib2_libs) $(hdf_libs) $(hdf5_libs) $(nc_libs) \
 			 $(gui_libs) $(geotiff_libs) $(shp_libs) $(dap_libs) $(cairo_libs)
 
+xgrads_LDADD = $(common_ldadd) $(readline_libs) $(printim_libs) \
+			 $(grib2_libs) $(hdf_libs) $(hdf5_libs) $(nc_libs) \
+			 $(gui_libs) $(geotiff_libs) $(shp_libs) $(dap_libs)
 
-#xgrads_LDADD	       = $(common_ldadd) $(readline_libs) $(printim_libs) \
-#			 $(grib2_libs) $(hdf_libs) $(hdf5_libs) $(nc_libs) \
-#			 $(gui_libs) $(geotiff_libs) $(shp_libs) $(dap_libs)
 
 # Custom compilation for object files specific to this GrADS binary
 COMPILE_C = $(COMPILE) 
-#xgrads_LINK          = $(CXX) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 @USEGADAP_FALSE at grads_LINK = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 
 ##############################################################
@@ -387,7 +414,8 @@ COMPILE_C = $(COMPILE)
 
 # If gadap is enabled, use C++ linker instead of C linker
 @USEGADAP_TRUE at grads_LINK = $(CXX) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-#xgrads_LINK          = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+ at USEGADAP_FALSE@xgrads_LINK = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+ at USEGADAP_TRUE@xgrads_LINK = $(CXX) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 
 # Object files that should not be reused by the other GrADS binaries,
 # plus libraries needed by this GrADS binary
@@ -529,6 +557,9 @@ stnmap$(EXEEXT): $(stnmap_OBJECTS) $(stnmap_DEPENDENCIES)
 wgrib$(EXEEXT): $(wgrib_OBJECTS) $(wgrib_DEPENDENCIES) 
 	@rm -f wgrib$(EXEEXT)
 	$(LINK) $(wgrib_LDFLAGS) $(wgrib_OBJECTS) $(wgrib_LDADD) $(LIBS)
+xgrads$(EXEEXT): $(xgrads_OBJECTS) $(xgrads_DEPENDENCIES) 
+	@rm -f xgrads$(EXEEXT)
+	$(xgrads_LINK) $(xgrads_LDFLAGS) $(xgrads_OBJECTS) $(xgrads_LDADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
diff --git a/src/VERSION b/src/VERSION
index 3a8944c..7ec1d6d 100644
--- a/src/VERSION
+++ b/src/VERSION
@@ -1 +1 @@
-2.1.a3
+2.1.0
diff --git a/src/bufrscan.c b/src/bufrscan.c
index 6337a94..4354eea 100644
--- a/src/bufrscan.c
+++ b/src/bufrscan.c
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 /*  written by Joe Wielgosz */
 
diff --git a/src/bufrstn.c b/src/bufrstn.c
index 5181df7..dd83154 100644
--- a/src/bufrstn.c
+++ b/src/bufrstn.c
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 /* Authored by Jennifer Adams */
 
@@ -257,6 +256,7 @@ gaint getbufr (struct gastn *stn) {
 		    rpt->lon = hlon;
 		    rpt->lev = stn->pfi->undef;
 		    rpt->tim = htim;   
+                    rpt->umask = 1;
 		    rpt->val = bval->val;
 		    for (k=0; k<8; k++) *(rpt->stid+k) = *(rfhdr.stid+k);
 		    stn->rnum++;
@@ -279,6 +279,7 @@ gaint getbufr (struct gastn *stn) {
 		    rpt->lon = hlon;
 		    rpt->lev = stn->pfi->undef;
 		    rpt->tim = htim;   
+                    rpt->umask = 1;
 		    rpt->val = bval->val;
 		    for (k=0; k<8; k++) *(rpt->stid+k) = *(rfhdr.stid+k);
 		    stn->rnum++;
@@ -314,6 +315,7 @@ gaint getbufr (struct gastn *stn) {
 		      rpt->lon = hlon;
 		      rpt->lev = hlev;
 		      rpt->tim = htim;
+                      rpt->umask = 1;
 		      rpt->val = bval->val;
 		      for (k=0; k<8; k++) *(rpt->stid+k) = *(rfhdr.stid+k);
 		      stn->rnum++;
diff --git a/src/dodstn.c b/src/dodstn.c
index 5b4c84e..c282fba 100644
--- a/src/dodstn.c
+++ b/src/dodstn.c
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 /* Authored by Joe Wielgosz 
  * 
diff --git a/src/gabufr.c b/src/gabufr.c
index f9549c8..f921efa 100644
--- a/src/gabufr.c
+++ b/src/gabufr.c
@@ -1,5 +1,4 @@
-/* Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-   See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 /* Authored by Joe Wielgosz */
 
diff --git a/src/gabufr.h b/src/gabufr.h
index c581e8a..d8cd21a 100644
--- a/src/gabufr.h
+++ b/src/gabufr.h
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 #ifndef GABUFR_H
 #define GABUFR_H
diff --git a/src/gabufrtbl.c b/src/gabufrtbl.c
index 5b36d00..e5ba8ff 100644
--- a/src/gabufrtbl.c
+++ b/src/gabufrtbl.c
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 /* Authored by Joe Wielgosz */
 
diff --git a/src/gacfg.c b/src/gacfg.c
index e84bb57..d4d05c1 100644
--- a/src/gacfg.c
+++ b/src/gacfg.c
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 /* file: gacfg.c
  *
@@ -129,7 +128,7 @@ snprintf(cmd,255,"Config: v%s",GRADS_VERSION);
  }
  
  gaprnt (verbose, "Grid Analysis and Display System (GrADS) Version " GRADS_VERSION "\n");
- gaprnt (verbose, "Copyright (C) 1988-2015 by the Institute for Global Environment and Society (IGES) \n");
+ gaprnt (verbose, "Copyright (C) 1988-2016 by George Mason University. \n");
  gaprnt (verbose, "This program is distributed WITHOUT ANY WARRANTY \n");
  gaprnt (verbose, "See file COPYRIGHT for more information. \n\n");
  
@@ -194,7 +193,7 @@ snprintf(cmd,255,"Config: v%s",GRADS_VERSION);
 
 #if USEGADAP==1
    gaprnt(verbose,"  o OPeNDAP station data interface ENABLED\n");
-   gaprnt(verbose,"      http://iges.org/grads/gadoc/supplibs.html \n");
+   gaprnt(verbose,"      http://cola.gmu.edu/grads/gadoc/supplibs.html \n");
    snprintf(cmd,255,   "      %s  \n", libgadap_version());
    gaprnt(verbose,cmd);
 #else
@@ -269,7 +268,7 @@ snprintf(cmd,255,"Config: v%s",GRADS_VERSION);
 #endif
  
  
- gaprnt(verbose,"\nFor additional information please consult http://iges.org/grads\n\n");
+ gaprnt(verbose,"\nFor additional information please consult http://cola.gmu.edu/grads\n\n");
  
 }
 
diff --git a/src/gaddes.c b/src/gaddes.c
index 09662c9..db6aed7 100644
--- a/src/gaddes.c
+++ b/src/gaddes.c
@@ -1,5 +1,4 @@
-/* Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-   See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 /* Authored by B. Doty */
 
@@ -750,7 +749,20 @@ gaint gaddes (char *name, struct gafile *pfi, gaint mflag) {
 	*(pfi->undefattr+len) = '\0';
 	/* Set the undef attribute flag */
 	pfi->undefattrflg = 1;
+
+        /* Get the secondry undef attribute name, if it's there */
+        if ( (ch=nxtwrd(ch))!=NULL ) {
+  	  len = 0;
+	  while (*(ch+len)!=' ' && *(ch+len)!='\n' && *(ch+len)!='\t') len++;
+	  sz = len+3;
+	  if ((pfi->undefattr2 = (char *)galloc(sz,"undefattr4")) == NULL) goto err8;
+	  for (i=0; i<len; i++) *(pfi->undefattr2+i) = *(ch+i);
+ 	  *(pfi->undefattr2+len) = '\0';
+	  /* uptick the undef attribute flag */
+	  pfi->undefattrflg = 2;
+	}
       }
+      /* these ulow/uhi values are used for binary/station data I/O */
       pfi->ulow = fabs(pfi->undef/EPSILON);
       pfi->uhi  = pfi->undef + pfi->ulow;
       pfi->ulow = pfi->undef - pfi->ulow;
@@ -975,8 +987,7 @@ gaint gaddes (char *name, struct gafile *pfi, gaint mflag) {
         tdef.mo = -1000;
         tdef.dy = -1000;
         if ( (pos = adtprs(ch,&tdef,&dt1))==NULL) goto err3b_tdef;
-        if (*pos!=' ' || dt1.yr == -1000 || dt1.mo == -1000.0 ||
-            dt1.dy == -1000) goto err3c_tdef;
+        if (*pos!=' ' || dt1.yr == -1000 || dt1.mo == -1000.0 || dt1.dy == -1000) goto err3c_tdef;
         if ( (ch = nxtwrd(ch))==NULL) goto err4a_tdef;
         if ( (pos = rdtprs(ch,&dt2))==NULL) goto err4b_tdef;
         v1 = (dt2.yr * 12) + dt2.mo;
@@ -2829,7 +2840,7 @@ size_t sz;
   pfi->fseq = -999;      /* No sequence number assigned */
   pfi->dhandle = -999;   /* Assume not a gadods stn data set */
   pfi->packflg = 0;      /* Assume data are not packed */
-  pfi->undefattrflg = 0; /* Assume no undef attribute name given */
+  pfi->undefattrflg = 0; /* Assume no undef attribute names given */
   pfi->pa2mb = 0;        /* Assume pressure values are given in mb */
   pfi->undef = -9.99e8; 
   pfi->ppisiz = 0;
@@ -2840,6 +2851,7 @@ size_t sz;
   pfi->scattr = NULL;   
   pfi->ofattr = NULL;   
   pfi->undefattr = NULL;   
+  pfi->undefattr2 = NULL;   
   pfi->tempname = NULL;
   pfi->mnam = NULL;
   pfi->infile = NULL;
@@ -2953,6 +2965,7 @@ gaint i;
   if (pfi->scattr) gree(pfi->scattr,"f80");
   if (pfi->ofattr) gree(pfi->ofattr,"f81");
   if (pfi->undefattr) gree(pfi->undefattr,"f82");
+  if (pfi->undefattr2) gree(pfi->undefattr2,"f82b");
   if (pfi->bufrinfo) gree(pfi->bufrinfo,"f83");
 #ifndef STNDALN
   if (pfi->bufrdset) gabufr_close(pfi->bufrdset);
@@ -3469,7 +3482,6 @@ c
   y = -rrih*cos(deg)*H;
   *grdi = iref + (x-xih)/delx;
   *grdj = jref + (y-yih)/dely;
-  /* mf 20040630 -- use ftp://grads.iges.org/grads/src/grib212.f to calc rotation factor */
   windrot=gcon*(stdlon-grdlon)*d2r;
   *wrot=windrot;
 }
diff --git a/src/gaexpr.c b/src/gaexpr.c
index 2caed7e..eac2336 100644
--- a/src/gaexpr.c
+++ b/src/gaexpr.c
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 /* Authored by B. Doty */
 
diff --git a/src/gafunc.c b/src/gafunc.c
index cd574a6..df4fe62 100644
--- a/src/gafunc.c
+++ b/src/gafunc.c
@@ -1,5 +1,4 @@
-/* Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-   See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 /*  Originally authored by B. Doty.  
     Some functions provided by others. */
@@ -4582,7 +4581,7 @@ gaint rc,cnt,flag,i;
         }
         ch++; cnt++;
       }
-      if (flag==0) rpt->umask = 0;
+      if (flag==0) rpt->umask = 0; 
       rpt=rpt->rpt;
     }
   }
@@ -5032,7 +5031,7 @@ gaint ffclgr (struct gafunc *pfc, struct gastat *pst) {
   gadouble *levs, lev, vlo, vhi, uu=0, *gr=NULL;
   gadouble *iv=NULL,*jv=NULL,diff,lld,lhd,llo,lhi,xdiff;
   gaint i,j,cnt,lcnt=0,scnt,flag,clnm,dim,lflg,ucnt;
-  gaint noundef;
+  gaint noundef,rev=0;
   char *gru=NULL;
   size_t sz;
 
@@ -5117,7 +5116,8 @@ gaint ffclgr (struct gafunc *pfc, struct gastat *pst) {
   } 
   else if (lflg==2) {
     /* union of all levels  */
-    diff = fabs(pst->dmin[2]-pst->dmax[2])/1e4;
+    if (pst->dmin[2] < pst->dmax[2]) rev=1;
+    diff = fabs(pst->dmin[2] - pst->dmax[2])/1e4;
     lcnt = 0;
     clct = clct0;
     while (clct) {
@@ -5127,15 +5127,18 @@ gaint ffclgr (struct gafunc *pfc, struct gastat *pst) {
         lev = rpt->lev;
         i = 0;
         flag = 1;
-	/* mf 20021016 -- don't use level if undef */
+	/* don't use this level if the data value is undefined */
 	if (noundef && (rpt->umask == 0) ) flag = 0;
-        if (lev>pst->dmin[2] || lev<pst->dmax[2]) flag = 0;
+	/* don't use this level if out of range */
+        if ((lev > pst->dmin[2] || lev < pst->dmax[2]) && rev==0) flag = 0;
+        if ((lev < pst->dmin[2] || lev > pst->dmax[2]) && rev==1) flag = 0;
         while (i<lcnt && flag) {
           if (fabs(*(levs+i)-lev)<diff) {
             flag = 0;
             break;
           }
-          if (*(levs+i)<lev) break;
+          if (*(levs+i) < lev && rev==0) break;
+          if (*(levs+i) > lev && rev==1) break;
           i = i + 1;
         }
         if (flag) {
@@ -5220,7 +5223,6 @@ gaint ffclgr (struct gafunc *pfc, struct gastat *pst) {
 	*(gru+j*scnt+i) = rpt->umask;
       }
       else {
-	/* JMA bad test for undef here? */
         if (dequal(vhi,stn->undef,1.0e-8)==0 || dequal(vlo,stn->undef,1.0e-8)==0) {
           *(gru+j*scnt+i) = 0;
         } else {
@@ -6301,17 +6303,18 @@ char *ch, *uval;
     uval = pgr->umask;
     for (i=0; i<cnt; i++) {
       if (flg==0) {
-        if (*uval!=0) {
-	  *val = cnst;
-	}
+	/* change valid data to a constant, missing data unchanged */
+        if (*uval!=0) *val = cnst;
       } 
       else if (flg==1) {
+	/* change missing data to a constant, update mask value */
         if (*uval==0) {
 	  *val = cnst;
 	  *uval = 1;       
 	}
       } 
       else if (flg==2) {
+	/* change valid and missing data to a constaont, update mask values */
         *val = cnst;
 	*uval = 1;
       }
@@ -6324,11 +6327,18 @@ char *ch, *uval;
     rpt = stn->rpt;
     while (rpt!=NULL) {
       if (flg==0) {
+	/* change valid data to a constant, missing data unchanged */
         if (rpt->umask!=0) rpt->val = cnst;
       } else if (flg==1) {
-        if (rpt->umask==0) rpt->val = cnst;
+	/* change missing data to a constant, update mask value */
+        if (rpt->umask==0) {
+	  rpt->val = cnst;
+	  rpt->umask = 1;
+	}
       } else if (flg==2) {
+	/* change valid and missing data to a constaont, update mask values */
         rpt->val = cnst;
+        rpt->umask = 1;
       }
       rpt=rpt->rpt;
     }
diff --git a/src/gagmap.c b/src/gagmap.c
index 6e69e52..586469b 100644
--- a/src/gagmap.c
+++ b/src/gagmap.c
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 /*  Values output into the GRIB1 map file:
      Header:
@@ -1304,8 +1303,8 @@ gaint gribhdr (struct grhdr *ghdr) {
  if (ghdr->fcstt>-900) {
    if (ghdr->tri==7)
      timsub(&(ghdr->btim),&atim);
-   else
-     timadd(&(ghdr->btim),&atim);
+   else {
+   timadd(&(ghdr->btim),&atim);}
    ghdr->dtim.yr = atim.yr;
    ghdr->dtim.mo = atim.mo;
    ghdr->dtim.dy = atim.dy;
@@ -1529,7 +1528,7 @@ gaint gribrec (struct grhdr *ghdr, struct gafile *pfi, struct gaindx *pindx,
  /* Check if valid time matches range of times for this file  */
  if (it<tmin || it>tmax) {
    if (verb) {
-     printf("----- Time out of file limits: ");  
+     printf("-%d-- Time out of file limits: ",it);  
      gribpr(ghdr);
    }
    return(39);
@@ -1646,7 +1645,7 @@ void gribpr(struct grhdr *ghdr) {
 gaint wtgmap(void) {
 gaint i,nb,bcnt,idum;
 gafloat fdum;
-unsigned char *map;
+unsigned char *map=NULL;
 unsigned char ibmfloat[4];
  
  /* calculate the size of the version==1 index file */
@@ -1665,7 +1664,7 @@ unsigned char ibmfloat[4];
  /* allocate space for the map */
  map = (unsigned char *)malloc(nb);
  if (map == NULL) {
-   fprintf(stderr,"gribmap: ERROR! memory allocation error creating the map\n");
+   fprintf(stderr,"gribmap: ERROR! failed to allocate %d bytes for the map \n",nb);
    return(60);
  }
 
@@ -1904,8 +1903,30 @@ gaint wtg2map(struct gafile *pfi, struct gag2indx *g2indx) {
   }
   fclose(mfile);
 
+  /* JMA's extra debugging step: look for variables in descriptor file that were not matched.
+     Only the first three time steps for the first ensemble member are checked.  */
+/*   gaint joff,ioff,toff,eoff,e,t,tmax; */
+/*   for (e=0; e<1; e++) { */
+/*     eoff=e*pfi->dnum[3]*pfi->trecs; */
+/*     (pfi->dnum[3]>1) ? (tmax=2) : (tmax=1) ; */
+/*     for (t=0; t<tmax; t++) { */
+/*       toff=t*pfi->trecs; */
+/*       for (i=0; i<pfi->trecs; i++) { */
+/* 	ioff=toff+i; */
+/* 	if (g2indx->bigflg) { */
+/* 	  joff = eoff+ioff; */
+/* 	  if (g2indx->g2bigpnt[joff] <-900)  */
+/* 	    printf("JMA variable record %d is unmatched for e=%d, t=%d\n",i+1,e+1,t+1); */
+/* 	} else { */
+/* 	  joff = 2*(eoff+ioff); */
+/* 	  if (g2indx->g2intpnt[joff] < -900) */
+/* 	    printf("JMA variable record %d is unmatched for e=%d, t=%d\n",i+1,e+1,t+1); */
+/* 	} */
+/*       } */
+/*     } */
+/*   } */
+
   return(0);
-  
 }
 
 /* Checks grid properties for a grib2 field. 
@@ -1970,9 +1991,10 @@ gaint g2time_check (gribfield *gfld, g2int *listsec1, struct gafile *pfi,
     tvalid.mn = tref.mn;
   }
   else {
-    /* For fields at a point in time (PDT<8 or PDT=15 or PDT=48) */
-    if (gfld->ipdtnum < 8 || gfld->ipdtnum==15 || gfld->ipdtnum==48) {
-      trui_idx=7; 
+    /* For fields at a point in time (PDT<8 or PDT=15 or PDT=48 or PDT=60) */
+    if (gfld->ipdtnum < 8 || gfld->ipdtnum==15 || gfld->ipdtnum==48 || gfld->ipdtnum==60) {
+      /* trui==Time Range Unit Indicator, trui_idx is the 0-based index for the entries in the PDT 4.n list  */
+      trui_idx=7;            
       if (gfld->ipdtnum==48) trui_idx=18;
       if      (gfld->ipdtmpl[trui_idx]== 0) tfld.mn = gfld->ipdtmpl[trui_idx+1];     
       else if (gfld->ipdtmpl[trui_idx]== 1) tfld.hr = gfld->ipdtmpl[trui_idx+1];
@@ -1995,13 +2017,14 @@ gaint g2time_check (gribfield *gfld, g2int *listsec1, struct gafile *pfi,
     }
     /* For fields that are statistically processed over a time interval 
        e.g. averages, accumulations, extremes, et al. */
-    else if (gfld->ipdtnum>=8 && gfld->ipdtnum<=12) {
+    else if ((gfld->ipdtnum>=8 && gfld->ipdtnum<=12) ||  gfld->ipdtnum==61) {
       trui_idx=7; 
       if      (gfld->ipdtnum==8)  endyr_idx=15;
       else if (gfld->ipdtnum==9)  endyr_idx=22;
       else if (gfld->ipdtnum==10) endyr_idx=16;
       else if (gfld->ipdtnum==11) endyr_idx=18;
       else if (gfld->ipdtnum==12) endyr_idx=17;
+      else if (gfld->ipdtnum==61) endyr_idx=24;
 
       if (tauave==0) {
 	/* valid time is the end of the overall time interval */
@@ -2252,8 +2275,8 @@ gaint g2ens_match (gribfield *gfld, struct gafile *pfi) {
   for (e=1; e<=pfi->dnum[4]; e++) {
     if (ens->grbcode[0]>-900) {
       if (ens->grbcode[1]>-900) {
-	/* PDT 1 or 11 */
-	if ((gfld->ipdtnum==1 || gfld->ipdtnum==11) &&
+	/* PDT 1, 11, 60 or 61 */
+	if ((gfld->ipdtnum==1 || gfld->ipdtnum==11 || gfld->ipdtnum==60 || gfld->ipdtnum==61) &&
 	    ((ens->grbcode[0] == gfld->ipdtmpl[15]) && 
 	     (ens->grbcode[1] == gfld->ipdtmpl[16]))) {
 	  return(e);
@@ -2282,8 +2305,8 @@ gaint g2ens_match (gribfield *gfld, struct gafile *pfi) {
 gaint g2ens_check (struct gaens *ens, gribfield *gfld) {
   if (ens->grbcode[0]>-900) {
     if (ens->grbcode[1]>-900) {
-      /* PDT 1 or 11 */
-      if ((gfld->ipdtnum==1 || gfld->ipdtnum==11) &&
+      /* PDT 1, 11, 60 or 61 */
+      if ((gfld->ipdtnum==1 || gfld->ipdtnum==11 || gfld->ipdtnum==60 || gfld->ipdtnum==61) &&
 	  ((ens->grbcode[0] == gfld->ipdtmpl[15]) && 
 	   (ens->grbcode[1] == gfld->ipdtmpl[16]))) return(0);
       else return(1);
@@ -2312,6 +2335,7 @@ gaint g2sp (gribfield *gfld) {
   if (gfld->ipdtnum == 11) sp = gfld->ipdtmpl[26];
   if (gfld->ipdtnum == 12) sp = gfld->ipdtmpl[25];
   if (gfld->ipdtnum == 15) sp = gfld->ipdtmpl[15];
+  if (gfld->ipdtnum == 61) sp = gfld->ipdtmpl[32];
   if (sp==255) sp = -999;
   return(sp);
 }
@@ -2327,7 +2351,7 @@ gaint g2sp2(gribfield *gfld) {
 
 /* prints out relevant info from a grib2 record */
 void g2prnt (gribfield *gfld, gaint r, g2int f, gaint sp, gaint sp2) {
-  gaint atyp,styp,wtyp,lev_idx;
+  gaint atyp,styp,wtyp,lev_idx,i;
   gadouble ll,ul,s1,s2,w1,w2;
 
   lev_idx=9;
@@ -2403,7 +2427,7 @@ void g2prnt (gribfield *gfld, gaint r, g2int f, gaint sp, gaint sp2) {
       printf("var=%ld,%ld,%ld,%d,%d ",gfld->discipline,gfld->ipdtmpl[0], gfld->ipdtmpl[1],sp,sp2);
   }
   /* print ensemble info */
-  if (gfld->ipdtnum==1 || gfld->ipdtnum==11) 
+  if (gfld->ipdtnum==1 || gfld->ipdtnum==11 || gfld->ipdtnum==60 || gfld->ipdtnum==61) 
     printf("ens=%d,%d ",(gaint)gfld->ipdtmpl[15],(gaint)gfld->ipdtmpl[16]);
   if (gfld->ipdtnum==2 || gfld->ipdtnum==12) 
     printf("ens=%d ",(gaint)gfld->ipdtmpl[15]);
diff --git a/src/gagmap.h b/src/gagmap.h
index 56381b8..c345861 100644
--- a/src/gagmap.h
+++ b/src/gagmap.h
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 #ifndef DRIVER_GAGMAP
 #define WHERE extern
diff --git a/src/gagx.c b/src/gagx.c
index 6896e16..3b8e95f 100644
--- a/src/gagx.c
+++ b/src/gagx.c
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 /* Authored by B. Doty */
 
@@ -881,7 +880,7 @@ gaint i;
   gxclip (0.0, pcm->xsiz, 0.0, pcm->ysiz);
   gxcolr (pcm->anncol);
   gxwide (4);
-  if (pcm->pass==0 && pcm->grdsflg) gxchpl("GrADS: IGES/COLA",16,0.05,0.05,0.1,0.09,0.0);
+  if (pcm->pass==0 && pcm->grdsflg) gxchpl("GrADS/COLA",10,0.05,0.05,0.1,0.09,0.0);
   if (pcm->pass==0 && pcm->timelabflg) gatmlb(pcm);
   gxstyl(1);
   gaaxpl(pcm,0,1);
@@ -936,7 +935,6 @@ char lab[20];
 	  rpt->lat>=pcm->dmin[1] && rpt->lat<=pcm->dmax[1]) {
         gxconv (rlon,rpt->lat,&x,&y,2);
         i = gashdc (pcm,rpt->val);
-
 	/* if constant grid, use user ccolor */
 	if (icnst) {
 	  gxcolr(pcm->ccolor);
@@ -973,7 +971,7 @@ char lab[20];
   gxclip (0.0, pcm->xsiz, 0.0, pcm->ysiz);
   gxcolr(pcm->anncol);
   gxwide(4);
-  if (pcm->pass==0 && pcm->grdsflg) gxchpl("GrADS: IGES/COLA",16,0.05,0.05,0.1,0.09,0.0);
+  if (pcm->pass==0 && pcm->grdsflg) gxchpl("GrADS/COLA",10,0.05,0.05,0.1,0.09,0.0);
   if (pcm->pass==0 && pcm->timelabflg) gatmlb(pcm);
   gxstyl(1);
   gaaxpl(pcm,0,1);
@@ -1163,7 +1161,7 @@ char lab[20];
   gxclip (0.0, pcm->xsiz, 0.0, pcm->ysiz);
   gxcolr(pcm->anncol);
   gxwide(4);
-  if (pcm->pass==0 && pcm->grdsflg) gxchpl("GrADS: IGES/COLA",16,0.05,0.05,0.1,0.09,0.0);
+  if (pcm->pass==0 && pcm->grdsflg) gxchpl("GrADS/COLA",10,0.05,0.05,0.1,0.09,0.0);
   if (pcm->pass==0 && pcm->timelabflg) gatmlb(pcm);
   gxstyl(1);
   gaaxpl(pcm,0,1);
@@ -1341,7 +1339,7 @@ gaint i,num,rc;
   gxclip (0.0, pcm->xsiz, 0.0, pcm->ysiz);
   gxcolr(pcm->anncol);
   gxwide(4);
-  if (pcm->pass==0 && pcm->grdsflg) gxchpl("GrADS: IGES/COLA",16,0.05,0.05,0.1,0.09,0.0);
+  if (pcm->pass==0 && pcm->grdsflg) gxchpl("GrADS/COLA",10,0.05,0.05,0.1,0.09,0.0);
   if (pcm->pass==0 && pcm->timelabflg) gatmlb(pcm);
   gxstyl(1);
   gaaxpl(pcm,0,1);
@@ -1785,7 +1783,7 @@ gaint ipen,im,i,hemflg,bcol;
         i = (gaint)(rpt->val+0.5);
         wxsym (i, x, pcm->ysiz1, pcm->digsiz*1.5, -1, pcm->wxcols);
       } 
-      /* Don't show me M when there's no weather */
+      /* Don't show "M" when there's no weather */
 /*       else { */
 /*         gxchpl ("M",1,x,pcm->ysiz1,pcm->digsiz,pcm->digsiz,0.0); */
 /*       } */
@@ -1868,7 +1866,7 @@ gaint ipen,im,i,hemflg,bcol;
   }
   gxwide (4);
   gxcolr (pcm->anncol);
-  if (pcm->pass==0 && pcm->grdsflg) gxchpl("GrADS: IGES/COLA",16,0.05,0.05,0.1,0.09,0.0);
+  if (pcm->pass==0 && pcm->grdsflg) gxchpl("GrADS/COLA",10,0.05,0.05,0.1,0.09,0.0);
   if (pcm->pass==0 && pcm->timelabflg) gatmlb(pcm);
   gagsav (13,pcm,NULL);
 }
@@ -1962,7 +1960,7 @@ char stid[10];
     gaaxpl(pcm,5,2);
   gxcolr(pcm->anncol);
   gxwide (4);
-  if (pcm->pass==0 && pcm->grdsflg) gxchpl("GrADS: IGES/COLA",16,0.05,0.05,0.1,0.09,0.0);
+  if (pcm->pass==0 && pcm->grdsflg) gxchpl("GrADS/COLA",10,0.05,0.05,0.1,0.09,0.0);
   if (pcm->pass==0 && pcm->timelabflg) gatmlb(pcm);
   gagsav (13,pcm,NULL);
 }
@@ -2626,7 +2624,7 @@ size_t sz;
     gaaxpl(pcm,pgr1->idim,5);      /* hard coded 4's changed to 5's */
   gxwide (4);
   gxcolr (pcm->anncol);
-  if (pcm->pass==0 && pcm->grdsflg) gxchpl("GrADS: IGES/COLA",16,0.05,0.05,0.1,0.09,0.0);
+  if (pcm->pass==0 && pcm->grdsflg) gxchpl("GrADS/COLA",10,0.05,0.05,0.1,0.09,0.0);
   if (pcm->pass==0 && pcm->timelabflg) gatmlb(pcm);
   gagsav (17,pcm,pgr1);
 }
@@ -2982,7 +2980,7 @@ char *gru,*gr2u=NULL,*gr3u=NULL;
     gaaxpl(pcm,pgr->idim,5);   /* hard coded 4 changed to 5 */
   gxwide (4);
   gxcolr (pcm->anncol);
-  if (pcm->pass==0 && pcm->grdsflg) gxchpl("GrADS: IGES/COLA",16,0.05,0.05,0.1,0.09,0.0);
+  if (pcm->pass==0 && pcm->grdsflg) gxchpl("GrADS/COLA",10,0.05,0.05,0.1,0.09,0.0);
   if (pcm->pass==0 && pcm->timelabflg) gatmlb(pcm);
   if (barflg) gagsav (8,pcm,pgr);
   else  gagsav (6,pcm,pgr);
@@ -3071,7 +3069,7 @@ char *umask, *vmask, *cmask=NULL;
   gxclip (0.0, pcm->xsiz, 0.0, pcm->ysiz);
   gxwide (4);
   gxcolr (pcm->anncol);
-  if (pcm->pass==0 && pcm->grdsflg) gxchpl("GrADS: IGES/COLA",16,0.05,0.05,0.1,0.09,0.0);
+  if (pcm->pass==0 && pcm->grdsflg) gxchpl("GrADS/COLA",10,0.05,0.05,0.1,0.09,0.0);
   if (pcm->pass==0 && pcm->timelabflg) gatmlb(pcm);
   gaaxpl(pcm,pgru->idim,pgru->jdim);
   gagsav (9,pcm,pgru);
@@ -3244,7 +3242,7 @@ char *umask,*vmask,*cmask=NULL;
   }
   gxwide (4);
   gxcolr (pcm->anncol);
-  if (pcm->pass==0 && pcm->grdsflg) gxchpl("GrADS: IGES/COLA",16,0.05,0.05,0.1,0.09,0.0);
+  if (pcm->pass==0 && pcm->grdsflg) gxchpl("GrADS/COLA",10,0.05,0.05,0.1,0.09,0.0);
   if (pcm->pass==0 && pcm->timelabflg) gatmlb(pcm);
   gaaxpl(pcm,pgru->idim,pgru->jdim);
   if (brbflg) gagsav (15,pcm,pgru);
@@ -3441,7 +3439,7 @@ char *r1mask, *r2mask, *cmask=NULL;
     gxconv (cmax1, 0.0, &x, &y, 1);
     gxplot (x,y,2);
   }
-  if (pcm->pass==0 && pcm->grdsflg) gxchpl("GrADS: IGES/COLA",16,0.05,0.05,0.1,0.09,0.0);
+  if (pcm->pass==0 && pcm->grdsflg) gxchpl("GrADS/COLA",10,0.05,0.05,0.1,0.09,0.0);
   if (pcm->pass==0 && pcm->timelabflg) gatmlb(pcm);
   gagsav (7,pcm,pgr1);
   pcm->gpass[3]++;
@@ -3561,7 +3559,7 @@ char *rmask,*mmask=NULL,lab[20];
   gxclip (0.0, pcm->xsiz, 0.0, pcm->ysiz);
   gxcolr(pcm->anncol);
   gxwide(4);
-  if (pcm->pass==0 && pcm->grdsflg) gxchpl("GrADS: IGES/COLA",16,0.05,0.05,0.1,0.09,0.0);
+  if (pcm->pass==0 && pcm->grdsflg) gxchpl("GrADS/COLA",10,0.05,0.05,0.1,0.09,0.0);
   if (pcm->pass==0 && pcm->timelabflg) gatmlb(pcm);
   gaaxpl(pcm,pgr->idim,pgr->jdim);
   gagsav (4,pcm,pgr);
@@ -4103,7 +4101,7 @@ void gakml (struct gacmn *pcm) {
   FILE *kmlfp=NULL;
   struct gagrid *pgr;
   struct gxdbquery dbq;
-  gaint r,g,b,err=0,i,rc;
+  gaint r,g,b,a,err=0,i,rc;
   
   /* Determine if output is a grid or a station result */
   if (pcm->type[0] != 1) {
@@ -4184,7 +4182,8 @@ void gakml (struct gacmn *pcm) {
       r = dbq.red;
       g = dbq.green;
       b = dbq.blue;
-      snprintf(pout,255,"        <color>ff%02x%02x%02x</color>\n",b,g,r);
+      a = dbq.alpha;
+      snprintf(pout,255,"        <color>%02x%02x%02x%02x</color>\n",a,b,g,r);
       if ((fwrite(pout,sizeof(char),strlen(pout),kmlfp))!=strlen(pout)) {err=1; goto cleanup;}
       snprintf(pout,255,"        <width>%d</width>\n",pcm->cthick);
       if ((fwrite(pout,sizeof(char),strlen(pout),kmlfp))!=strlen(pout)) {err=1; goto cleanup;}
@@ -4215,7 +4214,8 @@ void gakml (struct gacmn *pcm) {
       r = dbq.red;
       g = dbq.green;
       b = dbq.blue;
-      snprintf(pout,255,"        <color>ff%02x%02x%02x</color>\n",b,g,r);
+      a = dbq.alpha;
+      snprintf(pout,255,"        <color>%02x%02x%02x%02x</color>\n",a,b,g,r);
       if ((fwrite(pout,sizeof(char),strlen(pout),kmlfp))!=strlen(pout)) {err=1; goto cleanup;}
       snprintf(pout,255,"        <width>0</width>\n");
       if ((fwrite(pout,sizeof(char),strlen(pout),kmlfp))!=strlen(pout)) {err=1; goto cleanup;}
@@ -4223,7 +4223,7 @@ void gakml (struct gacmn *pcm) {
       if ((fwrite(pout,sizeof(char),strlen(pout),kmlfp))!=strlen(pout)) {err=1; goto cleanup;}
       snprintf(pout,255,"      <PolyStyle>\n");
       if ((fwrite(pout,sizeof(char),strlen(pout),kmlfp))!=strlen(pout)) {err=1; goto cleanup;}
-      snprintf(pout,255,"        <color>ff%02x%02x%02x</color>\n",b,g,r);
+      snprintf(pout,255,"        <color>%02x%02x%02x%02x</color>\n",a,b,g,r);
       if ((fwrite(pout,sizeof(char),strlen(pout),kmlfp))!=strlen(pout)) {err=1; goto cleanup;}
       snprintf(pout,255,"        <fill>1</fill>\n");
       if ((fwrite(pout,sizeof(char),strlen(pout),kmlfp))!=strlen(pout)) {err=1; goto cleanup;}
@@ -5113,7 +5113,7 @@ size_t sz;
   gxclip (0.0, pcm->xsiz, 0.0, pcm->ysiz);
   gxcolr(pcm->anncol);
   gxwide(4);
-  if (pcm->pass==0 && pcm->grdsflg) gxchpl("GrADS: IGES/COLA",16,0.05,0.05,0.1,0.09,0.0);
+  if (pcm->pass==0 && pcm->grdsflg) gxchpl("GrADS/COLA",10,0.05,0.05,0.1,0.09,0.0);
   if (pcm->pass==0 && pcm->timelabflg) gatmlb(pcm);
   gaaxpl(pcm,pgr->idim,pgr->jdim);
   gafram (pcm);
@@ -5527,7 +5527,7 @@ size_t sz;
   gxcolr (pcm->anncol);
   gxwide (4); 
   if (shpflg==0) {
-    if (pcm->pass==0 && pcm->grdsflg) gxchpl("GrADS: IGES/COLA",16,0.05,0.05,0.1,0.09,0.0);
+    if (pcm->pass==0 && pcm->grdsflg) gxchpl("GrADS/COLA",10,0.05,0.05,0.1,0.09,0.0);
     if (pcm->pass==0 && pcm->timelabflg) gatmlb(pcm);
     gaaxpl(pcm,pgr->idim,pgr->jdim);
     gafram (pcm);
@@ -5615,7 +5615,7 @@ char lab[30],olab[30],*chlb=NULL;
 
   /* Select axis min and max */
   vincr=0.0;
-  if (dim==5) {         /* hard coded 5 */
+  if (dim==5) {         /* hard coded 5 means 1D plot  */
     vmin = pcm->rmin; 
     vmax = pcm->rmax;
   } 
@@ -5699,7 +5699,7 @@ char lab[30],olab[30],*chlb=NULL;
       vend = vend+(vincr*0.5);
     } else {
       gacsel (vmin,vmax,&vincr,&vstrt,&vend);
-      if (vincr==0.0) {  /* no precision check */
+      if (dequal(vincr, 0.0, 1e-08)==0) {
         gaprnt (0,"gaaxis internal logic check 25\n");
         return;
       }
@@ -5830,7 +5830,7 @@ char lab[30],olab[30],*chlb=NULL;
     /*  Do Date/Time labeling  */
 
     strcpy (olab,"mmmmmmmmmmmmmmmm");
-    while (timdif(&tstrt,&(pcm->tmax))>-1L) {
+    while (timdif(&tstrt,&(pcm->tmax),0)>-1L) {
       len = gat2ch(&tstrt,tinc,lab,30);
       v = t2gr(tvals,&tstrt);
       if (axis) {
@@ -6446,7 +6446,7 @@ struct dt twrk,temp;
 
   /* Get time difference in minutes */
 
-  tdif = timdif (&(pcm->tmin),&(pcm->tmax));
+  tdif = timdif (&(pcm->tmin),&(pcm->tmax),0);
 
   /* Set time increment based on different time differences.
      The test is entirely arbitrary. */
@@ -7280,14 +7280,11 @@ void gaselc (struct gacmn *pcm, gadouble rmin, gadouble rmax) {
 
 gaint gashdc (struct gacmn *pcm, gadouble val) {
 gaint i;
-
   if (pcm->shdcnt==0) return(1);
   if (pcm->shdcnt==1) return(pcm->shdcls[0]);
-  if (val<pcm->shdlvs[1]) return(pcm->shdcls[0]);
+  if (val<=pcm->shdlvs[1]) return(pcm->shdcls[0]);
   for (i=1; i<pcm->shdcnt-1; i++) {
-    if (val>pcm->shdlvs[i] && val<=pcm->shdlvs[i+1]) {
-      return(pcm->shdcls[i]);
-    }
+    if (val>pcm->shdlvs[i] && val<=pcm->shdlvs[i+1]) return(pcm->shdcls[i]);
   }
   return(pcm->shdcls[pcm->shdcnt-1]);
 }
diff --git a/src/gaio.c b/src/gaio.c
index e6307c2..91e9812 100644
--- a/src/gaio.c
+++ b/src/gaio.c
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 /* Authored by B. Doty and Jennifer Adams */
 
@@ -2403,21 +2402,34 @@ gaint gancsetup (void) {
     /* No errors, so we can set the varid in the gavar structure */
     pvr->ncvid = vid;
     
-    /* If undef attribute name is given, get the undef value */
+    /* Do we have undef attribute names? */ 
     if (pfi->undefattrflg) {
+      /* get the primary undef value */
       if (nc_get_att_double(pfi->ncid, pvr->ncvid, pfi->undefattr, &val) != NC_NOERR) {
-	snprintf(pout,255,"Warning: Could not retrieve \"%s\" -- using %g instead\n",
-		pfi->undefattr,pfi->undef);
+	snprintf(pout,255,"Warning: value for primary undef attribute \"%s\" not found\n",pfi->undefattr);
 	gaprnt(1,pout);
-	pvr->undef = pfi->undef;
+        pvr->undef = pfi->undef;
       }
       else {
 	pvr->undef = val;
       }
+      /* get the secondary undef value */
+      if (pfi->undefattrflg==2) {
+        if (nc_get_att_double(pfi->ncid, pvr->ncvid, pfi->undefattr2, &val) != NC_NOERR) {
+	  snprintf(pout,255,"Warning: value for secondary undef attribute \"%s\" not found\n",pfi->undefattr2);
+  	  gaprnt(1,pout);
+          pvr->undef2 = pfi->undef;
+        }
+        else {
+    	  pvr->undef2 = val;
+        }
+      }
+      else pvr->undef2 = pfi->undef;
     }
     else {
-      /* If no undef attribute name is given, copy the file-wide undef */
-      pvr->undef = pfi->undef;
+      /* If no undef attribute names are given, copy the file-wide undef */
+      pvr->undef  = pfi->undef;
+      pvr->undef2 = pfi->undef;
     }
 
     /* If data are packed, get the scale factor and offset attribute values */
@@ -2473,7 +2485,7 @@ gaint gancsetup (void) {
 		gaprnt(1,"*** There are two ways to control the cache size: \n");
 		gaprnt(1,"*** add a CACHESIZE entry to the descriptor file \n");
 		gaprnt(1,"*** or change the cache size scale factor with 'set cachesf' \n");
-		gaprnt(1,"*** Please read http://iges.org/grads/gadoc/compression.html \n");
+		gaprnt(1,"*** Please read http://cola.gmu.edu/grads/gadoc/compression.html \n");
 	      }
 	    }
 	  }
@@ -2502,7 +2514,7 @@ gaint xpad,ypad,zpad,tpad,epad,padmin,padmax;
 gaint jbeg,jend,groff,tmpoff,itmp,jtmp,jlimit;
 gaint dimswap,nrows,ncols;
 size_t sz,start[16],count[16];
-gadouble ulow,uhi;
+gadouble ulow,uhi,ulow2,uhi2;
 gadouble unitsvals[5]={-100,-101,-102,-103,-104};
 gadouble *grtmp=NULL,*grtmp2=NULL;
 char *grutmp=NULL;
@@ -2830,21 +2842,27 @@ gaint oldncopts ;         /* to save and restore setting for automatic error han
 
   /* Set missing data mask values and then unpack grid data if necessary */
   /* use the gavar undef to set the fuzzy test limits */
+
   /* If gavar undef equals zero, change it to 1/EPSILON */
-  if (dequal(pvr->undef, 0.0, 1e-08)==0) {   
-    ulow = 1e-5; 
-  } 
-  else {
-    ulow = fabs(pvr->undef/EPSILON);   
-  }
+  if (dequal(pvr->undef, 0.0, 1e-08)==0) ulow = 1e-5;
+  else ulow = fabs(pvr->undef/EPSILON);   
   uhi  = pvr->undef + ulow;
   ulow = pvr->undef - ulow;
+  /* set fuzzy limits for secondary undef */
+  if (dequal(pvr->undef2, 0.0, 1e-08)==0) ulow2 = 1e-5;
+  else ulow2 = fabs(pvr->undef2/EPSILON);   
+  uhi2  = pvr->undef2 + ulow2;
+  ulow2 = pvr->undef2 - ulow2;
+
   /* now set the gagrid undef equal to the gafile undef */
   pgr->undef = pfi->undef;           
 
   /* Test for NaN, Inf, and the fuzzy test for undef values. Then unpack */
   for (i=0;i<grsize;i++) {
-    if ((*(grtmp+i)>=ulow && *(grtmp+i)<=uhi) || (isnan(*(grtmp+i))) || (isinf(*(grtmp+i)))) {
+    if ((*(grtmp+i)>=ulow  && *(grtmp+i)<=uhi) || 
+        (*(grtmp+i)>=ulow2 && *(grtmp+i)<=uhi2) ||
+        (isnan(*(grtmp+i))) ||
+        (isinf(*(grtmp+i)))) {
       *(grutmp+i) = 0;
     }
     else {
@@ -2928,7 +2946,7 @@ gaint gancrow (gaint x, gaint y, gaint z, gaint t, gaint e, gaint len, gadouble
 #if USENETCDF == 1
   gaint rc,i,yy,zz;
   size_t  start[16],count[16];
-  gadouble   ulow,uhi;
+  gadouble ulow,uhi,ulow2,uhi2;
   gaint oldncopts ;         /* to save and restore setting for automatic error handling */
   
   /* Turn off automatic error handling. */
@@ -2984,22 +3002,28 @@ gaint gancrow (gaint x, gaint y, gaint z, gaint t, gaint e, gaint len, gadouble
   }
 
   /* Set missing data values to gafile undef and then unpack if necessary */
-  /* use the gavar undef to set the fuzzy test limits */
+  /* use the gavar undefs to set the fuzzy test limits */
+
   /* If gavar undef equals zero, change it to 1/EPSILON */
-  if (dequal(pvr->undef, 0.0, 1e-08)==0) {   
-    ulow = 1e-5;
-  } 
-  else {
-    ulow = fabs(pvr->undef/EPSILON);   
-  }
+  if (dequal(pvr->undef, 0.0, 1e-08)==0) ulow = 1e-5;
+  else ulow = fabs(pvr->undef/EPSILON);   
   uhi  = pvr->undef + ulow;
   ulow = pvr->undef - ulow;
+  /* set fuzzy limits for secondary undef */
+  if (dequal(pvr->undef2, 0.0, 1e-08)==0) ulow2 = 1e-5;
+  else ulow2 = fabs(pvr->undef2/EPSILON);   
+  uhi2  = pvr->undef2 + ulow2;
+  ulow2 = pvr->undef2 - ulow2;
+
   /* set the gagrid undef equal to the gafile undef */
   pgr->undef = pfi->undef;           
   
   /* Do the NaN, Inf, and fuzzy test for undef values before unpacking */
   for (i=0;i<len;i++) {
-    if ((*(gr+i) >= ulow && *(gr+i) <= uhi) || (isnan(*(gr+i))) || (isinf(*(gr+i)))) {
+    if ((*(gr+i)>=ulow  && *(gr+i)<=uhi) || 
+        (*(gr+i)>=ulow2 && *(gr+i)<=uhi2) ||
+        (isnan(*(gr+i))) ||
+        (isinf(*(gr+i)))) {
       *(gru+i) = 0;
     }
     else {
@@ -3063,9 +3087,10 @@ size_t sz;
     }
     pvr->sdvid = v_id; 
 
-    /* If undef attribute name is used, get the undef value */
+    /* Do we have undef attribute names? */
     if (pfi->undefattrflg) {
-      /* Select the variable (get sds_id) */
+
+      /* First, select the variable (get sds_id) */
       v_id = pvr->sdvid;
       sds_id = SDselect(sd_id,v_id);
       if (sds_id==FAIL) {
@@ -3078,23 +3103,33 @@ size_t sz;
 	gaprnt(0,pout);
 	return (1);
       }
-      /* Retrieve the HDF undef attribute value */
+      /* Retrieve the primary HDF undef attribute value */
       if (hdfattr(sds_id, pfi->undefattr, &val) != 0) {
-	snprintf(pout,255,"Warning: Could not retrieve undef attribute \"%s\" -- using %g instead\n",
-		pfi->undefattr,pfi->undef);
+	snprintf(pout,255,"Warning: value for primary undef attribute \"%s\" not found\n",pfi->undefattr);
 	gaprnt(1,pout);
 	pvr->undef = pfi->undef;
       }
       else {
 	pvr->undef = val;
       }
+      /* Retrieve the secondary HDF undef attribute value */
+      if (pfi->undefattrflg==2) {
+        if (hdfattr(sds_id, pfi->undefattr2, &val) != 0) {
+	  snprintf(pout,255,"Warning: value for secondary undef attribute \"%s\" not found\n",pfi->undefattr2);
+  	  gaprnt(1,pout);
+	  pvr->undef2 = pfi->undef;
+        }
+        else {
+	  pvr->undef2 = val;
+        }
+      }
     }
     /* If undef attribute name is not given, copy the file-wide undef */
     else {
-      pvr->undef = pfi->undef;
+      pvr->undef  = pfi->undef;
+      pvr->undef2 = pfi->undef;
     }
  
-
     /* If data are packed, get the scale factor and offset attribute values */
     if (pfi->packflg) {
       /* initialize values */
@@ -3472,7 +3507,7 @@ gaint h5setup(void) {
                 gaprnt(1,"*** There are two ways to control the cache size: \n");
                 gaprnt(1,"*** add a CACHESIZE entry to the descriptor file \n");
                 gaprnt(1,"*** or use the 'set cachesf' command \n");
-                gaprnt(1,"*** Please read http://iges.org/grads/gadoc/compression.html \n");
+                gaprnt(1,"*** Please read http://cola.gmu.edu/grads/gadoc/compression.html \n");
               }
             }
           }
diff --git a/src/galloc.c b/src/galloc.c
index 7242d1a..a5c47aa 100644
--- a/src/galloc.c
+++ b/src/galloc.c
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
diff --git a/src/gamach.c b/src/gamach.c
index 9974ac6..f9abda0 100644
--- a/src/gamach.c
+++ b/src/gamach.c
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 /* 
  * Include ./configure's header file
diff --git a/src/gasdf.c b/src/gasdf.c
index d92219a..49af15f 100644
--- a/src/gasdf.c
+++ b/src/gasdf.c
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 /*  
    Reads the metadata from a Self-Describing File 
@@ -268,7 +267,7 @@ gadouble time1,time2,lat1,lat2,lev1,lev2,incrfactor,sf;
 gafloat dsec;
 size_t len_time_units,trunc_point,sz ;
 gaint len,noname,notinit,nolength;
-gaint i,j,c,rc,flag,numdvars,e,t;
+gaint i,j,c,rc,flag,fwflg,numdvars,e,t;
 gaint iyr,imo,idy,ihr,imn,isec,ispress,isDatavar ;
 gaint xdimid,ydimid,zdimid,tdimid,edimid ;
 gaint istart,icount,havesf,haveao;
@@ -315,39 +314,62 @@ utUnit timeunit ;
 
   /* Handle undef attribute */
   if (parms.needundef) {
+    fwflg = 0;
+    pfi->undefattrflg = 0;
+
+    /* Check for user-defined undef attribute */
     attr = NULL;
     attr = find_att("ALL", pfi->attr, "missing_value") ;
-    if (!attr) {
-      attr = find_att("ALL", pfi->attr, "_FillValue") ;
-    }
-    if (!attr) {
-      pfi->undef =  -9.99e33;  /* must use default */
-      pfi->undefattrflg = 0;
-    } else {
-      /* set the undef attribute name and trip the flag */
+    if (attr) {
+      /* set the primary undef attribute flag and store the attribute name */
       pfi->undefattrflg = 1;
       len = strlen(attr->name);
-      sz = len+1;
-      if ((pfi->undefattr = (char *)galloc(sz,"undefattr1")) == NULL) goto err1;
+      if ((pfi->undefattr = (char *)galloc(len+1,"undefattr1")) == NULL) goto err1;
       strncpy(pfi->undefattr, attr->name, len);
       *(pfi->undefattr+len) = '\0';
-      /* If undef type is NC_FLOAT or NC_DOUBLE, use it for file-wide, otherwise use default */
-      if (attr->len == 1) {
-	if (attr->nctype == 5) {
-	  pfi->undef = *(gafloat*)(attr->value);
-	  }
-	else if (attr->nctype == 6) {
-	  pfi->undef = *(gadouble*)(attr->value);
-	}
-	else {
-	  pfi->undef = -9.99e33;
-	}
+
+      /* If there is a single value of type NC_SHORT, NC_INT, NC_FLOAT or NC_DOUBLE, use it for file-wide */
+      if (attr->len==1) {
+	if (attr->nctype == 3) { pfi->undef = *(short*)(attr->value);    fwflg=1; }
+	if (attr->nctype == 4) { pfi->undef = *(gaint*)(attr->value);    fwflg=1; }
+	if (attr->nctype == 5) { pfi->undef = *(gafloat*)(attr->value);  fwflg=1; }
+	if (attr->nctype == 6) { pfi->undef = *(gadouble*)(attr->value); fwflg=1; }
       }
+    }
+
+    /* Check for secondary (default) undef attribute */
+    attr = NULL;
+    attr = find_att("ALL", pfi->attr, "_FillValue") ;
+    if (attr) {
+      if (pfi->undefattrflg==1) {
+        /* uptick the undef attribute flag and store the second attribute name */
+        pfi->undefattrflg = 2;
+        len = strlen(attr->name);
+        if ((pfi->undefattr2 = (char *)galloc(len+1,"undefattr2")) == NULL) goto err1;
+        strncpy(pfi->undefattr2, attr->name, len);
+        *(pfi->undefattr2+len) = '\0';
+      } 
       else {
-	pfi->undef = -9.99e33;
+        /* set the primary undef attribute flag and store the attribute name */
+        pfi->undefattrflg = 1;
+        len = strlen(attr->name);
+        if ((pfi->undefattr = (char *)galloc(len+1,"undefattr1")) == NULL) goto err1;
+        strncpy(pfi->undefattr, attr->name, len);
+        *(pfi->undefattr+len) = '\0';
+      }
+      if (!fwflg) { 
+        /* If we haven't got one already, use this value for file-wide undef */
+        if (attr->len==1) {
+ 	  if (attr->nctype == 3) { pfi->undef = *(short*)(attr->value);    fwflg=1; }
+          if (attr->nctype == 4) { pfi->undef = *(gaint*)(attr->value);    fwflg=1; }
+	  if (attr->nctype == 5) { pfi->undef = *(gafloat*)(attr->value);  fwflg=1; }
+	  if (attr->nctype == 6) { pfi->undef = *(gadouble*)(attr->value); fwflg=1; }
+        }
       }
     }
-  } 
+    /* Set a default file-wide undef if we don't have one already */
+    if (!fwflg) pfi->undef = 9.96921e+36;  /* use default for NC_FLOAT */
+  }
 
   /* Look for scale factor or slope attribute */
   if (parms.needunpack) {
@@ -398,7 +420,7 @@ utUnit timeunit ;
       if ((rc==Failure) || (Xcoord == NULL)) {
 	gaprnt(0, "gadsdf: SDF file has no discernable X coordinate.\n") ;
 	gaprnt(0,"  To open this file with GrADS, use a descriptor file with an XDEF entry.\n");
-	gaprnt(0,"  Documentation is at http://iges.org/grads/gadoc/SDFdescriptorfile.html\n"); 
+	gaprnt(0,"  Documentation is at http://cola.gmu.edu/grads/gadoc/SDFdescriptorfile.html\n"); 
 	return Failure ;
       }
     }
@@ -451,7 +473,7 @@ utUnit timeunit ;
       if ((rc==Failure) || (Ycoord == NULL)) {
 	gaprnt(0, "gadsdf: SDF file has no discernable Y coordinate.\n") ;
 	gaprnt(0,"  To open this file with GrADS, use a descriptor file with a YDEF entry.\n");
-	gaprnt(0,"  Documentation is at http://iges.org/grads/gadoc/SDFdescriptorfile.html\n"); 
+	gaprnt(0,"  Documentation is at http://cola.gmu.edu/grads/gadoc/SDFdescriptorfile.html\n"); 
 	return Failure ;
       }
     }
@@ -665,7 +687,7 @@ utUnit timeunit ;
 	  gaprnt(0,"SDF Error: 365 day calendars are no longer supported by sdfopen.\n"); 
 	  gaprnt(0,"  To open this file with GrADS, use a descriptor file with \n");
 	  gaprnt(0,"  a complete TDEF entry and OPTIONS 365_day_calendar. \n");
-	  gaprnt(0,"  Documentation is at http://iges.org/grads/gadoc/SDFdescriptorfile.html\n"); 
+	  gaprnt(0,"  Documentation is at http://cola.gmu.edu/grads/gadoc/SDFdescriptorfile.html\n"); 
 	  return Failure;
 	}
       }
@@ -3402,11 +3424,22 @@ size_t sz;
 	len = 0;
 	while (*(ch+len)!=' ' && *(ch+len)!='\n' && *(ch+len)!='\t') len++;
 	sz = len+1;
-	if ((pfi->undefattr = (char *)galloc(sz,"undefattr2")) == NULL) goto err8;
+	if ((pfi->undefattr = (char *)galloc(sz,"undefattr5")) == NULL) goto err8;
 	for (i=0; i<len; i++) *(pfi->undefattr+i) = *(ch+i);
 	*(pfi->undefattr+len) = '\0';
 	/* Set the undef attribute flag */
 	pfi->undefattrflg = 1;
+        /* Get the secondary undef attribute name, if it's there */
+        if ((ch=nxtwrd(ch))!=NULL) {
+	  len = 0;
+	  while (*(ch+len)!=' ' && *(ch+len)!='\n' && *(ch+len)!='\t') len++;
+	  sz = len+1;
+	  if ((pfi->undefattr2 = (char *)galloc(sz,"undefattr6")) == NULL) goto err8;
+	  for (i=0; i<len; i++) *(pfi->undefattr2+i) = *(ch+i);
+	  *(pfi->undefattr2+len) = '\0';
+	  /* uptick the undef attribute flag */
+	  pfi->undefattrflg = 2;
+        }
       }
       pfi->ulow = fabs(pfi->undef/EPSILON);
       pfi->uhi  = pfi->undef + pfi->ulow;
diff --git a/src/gauser.c b/src/gauser.c
index 42c5555..dea4498 100644
--- a/src/gauser.c
+++ b/src/gauser.c
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 /* Authored by B. Doty */
 
@@ -68,12 +67,14 @@ gaint gacmd (char *com, struct gacmn *pcm, gaint exflg) {
 struct gafile *pfi,*pfi2;
 struct gadefn *pdf,*pdf2;
 struct gaclct *clct,*clct2;
-gaint rc,reinit,fnum,i,len,retcod,flag,xin,yin,bwin,fmtflg,tcolor,pos;
-gadouble border;
-char cc[260], bgImage[256], fgImage[256];
+gaint rc,reinit,fnum,i,j,len,retcod,flag,xin,yin,bwin,fmtflg,tcolor,pos,size,*ioff,rem;
+gadouble border,*dx,*dy;
+gafloat *rvals=NULL,*ivals=NULL,*jvals=NULL,*ival,*jval;
+char cc[260], bgImage[256], fgImage[256], pdefname[256];
 char *cmd,*rslt,*ccc,*ch,ext[10];
 size_t sz;
 char *formats[7] = {"EPS","PS","PDF","SVG","PNG","GIF","JPG"};
+FILE *pdefid=NULL;
 
   ccc = NULL;
   gaiomg();   /* enable interpolation message */
@@ -833,6 +834,77 @@ char *formats[7] = {"EPS","PS","PDF","SVG","PNG","GIF","JPG"};
     retcod = ncwrite(cmd, pcm);
     goto retrn;
   }
+  else if (cmpwrd("pdefwrite",cmd)) {
+    if (pcm->pfid==NULL) {
+      gaprnt (0,"PDEFWRITE error: no file open yet\n"); retcod=1; goto retrn;}
+    if (pcm->pfid->ppflag==0) {
+      gaprnt (0,"PDEFWRITE error: default file does not use PDEF\n"); retcod=1; goto retrn;} 
+    if (pcm->pfid->ppflag==7 || pcm->pfid->ppflag==8) {
+      gaprnt (0,"PDEFWRITE error: default file already has an external PDEF file\n"); retcod=1; goto retrn;} 
+
+    /* Get the name of the output file and open it */
+    if ((cmd=nxtwrd(cmd)) != NULL) {
+      if (strlen(cmd) < 256) {
+        getwrd(pdefname,cmd, 255);
+      } else {
+        gaprnt (0,"PDEFWRITE error: name of output file is missing \n"); retcod=1; goto retrn;}
+    }
+    if ((pdefid = fopen (pdefname, "w"))==NULL) { 
+      gaprnt(0,"PDEFWRITE error: failed to open output file \n"); retcod=1; goto retrn;}
+
+    /* allocate memory for grids to be written out to file */
+    size = pcm->pfid->dnum[0] * pcm->pfid->dnum[1];
+    if ((ivals = (gafloat*)galloc(size*sizeof(gafloat),"ppivals"))==NULL) {retcod=1; goto retrn;}
+    if ((jvals = (gafloat*)galloc(size*sizeof(gafloat),"ppjvals"))==NULL) {retcod=1; goto retrn;}
+    if ((rvals = (gafloat*)galloc(size*sizeof(gafloat),"pprvals"))==NULL) {retcod=1; goto retrn;}
+    ival = ivals;  /* save these initial pointers for the fwrite commands */
+    jval = jvals;
+
+    /* Fill grids of file offsets and weights (dx,dy) calculated for pdef grid interpolation */
+    ioff = pcm->pfid->ppi[0]; 
+    dx = pcm->pfid->ppf[0];
+    dy = pcm->pfid->ppf[1];
+    for (j=0; j<pcm->pfid->dnum[1]; j++) {
+      for (i=0; i<pcm->pfid->dnum[0]; i++) {
+        if (*ioff == -1) {
+          *ivals = -999;
+	  *jvals = -999;
+        } else {
+          rem = *ioff % (pcm->pfid->ppisiz);  /* 0-based x index */
+          *ivals = rem + 1 + (gafloat)*dx ;   /* make x index 1-based and add the interp wgt */
+ 	  *jvals = ((*ioff-rem)/pcm->pfid->ppisiz) + 1 + (gafloat)*dy; /* 1-based y index plus interp wgt */
+	}
+        ioff++; dx++; dy++; ivals++; jvals++;
+      }
+    }
+    rc = fwrite(ival, sizeof(gafloat), size, pdefid); if (rc!=size) {retcod=1; goto retrn;}
+    rc = fwrite(jval, sizeof(gafloat), size, pdefid); if (rc!=size) {retcod=1; goto retrn;}
+    /* Fill the grid of rotation values, then write it out */
+    if (pcm->pfid->ppwrot)
+      for (i=0; i<size; i++) *(rvals+i) = (gafloat)(*(pcm->pfid->ppw+i));
+    else
+      for (i=0; i<size; i++) *(rvals+i) = -999;
+    rc = fwrite(rvals, sizeof(gafloat), size, pdefid); if (rc!=size) {retcod=1; goto retrn;}
+
+    fclose(pdefid);
+    snprintf(pout,255,"pdef %d %d bilin stream binary-",pcm->pfid->ppisiz,pcm->pfid->ppjsiz);
+    gaprnt(2,pout);
+#if BYTEORDER==1
+    snprintf(pout,255,"big");
+#else
+    snprintf(pout,255,"little");
+#endif
+    gaprnt(2,pout);
+    snprintf(pout,255," ^%s\n",pdefname);
+    gaprnt(2,pout);
+
+    if (ival!=NULL) gree(ival,"f194a");
+    if (jval!=NULL) gree(jval,"f194a");
+    if (rvals!=NULL) gree(rvals,"f194a");
+
+    retcod = 0;
+    goto retrn;
+  }
   else {
     if (pcm->impcmd) {
       savpcm = pcm;
@@ -2781,7 +2853,7 @@ gadouble minvals[4], maxvals[4];
     gaprnt (2,"  q gr2xy    Converts grid to XY screen coordinates\n");
     gaprnt (2,"  q pp2xy    Converts virtual page XY to real page XY coordinates\n");
     gaprnt (2,"Details about argument syntax for some of these options are in the \n");
-    gaprnt (2,"online documentation: http://www.iges.org/grads/gadoc/gradcomdquery.html\n");
+    gaprnt (2,"online documentation: http://cola.gmu.edu/grads/gadoc/gradcomdquery.html\n");
   }
   else if (cmpwrd(arg,"mem")) {
     glook();
@@ -4367,7 +4439,7 @@ gadouble minvals[4], maxvals[4];
 
 gaint gahelp (char *cmd, struct gacmn *pcm) {
 
-  printf ("\nFor Complete Information See:  http://grads.iges.org/grads\n\n");
+  printf ("\nFor Complete Information See:  http://cola.gmu.edu/grads\n\n");
   printf ("Basic Commands:\n");
   printf (" OPEN <descr>      opens a data file \n");
   printf (" Query             shows current status \n");
@@ -7338,7 +7410,7 @@ gaint rc;
       snprintf(pout,255,"WARNING: The use of PDEF FILE in %s \n",pfi->dnam);
       gaprnt (1,pout);
       gaprnt (1," may be incorrect. Please make sure you are using it properly.\n");
-      gaprnt (1," Updated documentation is at http://iges.org/grads/gadoc/pdef.html\n");
+      gaprnt (1," Updated documentation is at http://cola.gmu.edu/grads/gadoc/pdef.html\n");
     }
   }
   
@@ -7792,7 +7864,7 @@ gaint sdfwdim (struct gafile *pfi, struct gacmn *pcm, gaint dim, gaint varid) {
 struct dt tinit,time;
 gadouble *axis, *axis0;
 gadouble (*conv) (gadouble *, gadouble);
-gaint i, rc;
+gaint i, rc, flag;
 size_t sz;
 size_t start, count;
 
@@ -7807,10 +7879,12 @@ size_t start, count;
  axis0 = axis; 
  if (dim == 3) {
    /* For T coordinate */
+   flag=0;
+   if (*(pfi->grvals[3]+5)>0) flag=1;   /* change time unit to months instead of minutes */
    gr2t (pfi->grvals[dim],1.0+pfi->dimoff[dim],&tinit);
    for (i=1; i<=pfi->dnum[dim]; i++) {
      gr2t (pfi->grvals[dim],(gadouble)(i+pfi->dimoff[dim]),&time);
-     *(axis+i-1) = timdif(&tinit,&time);   
+     *(axis+i-1) = timdif(&tinit,&time,flag);   
    }
  }
  else {
@@ -8021,7 +8095,7 @@ char *filename={"grads.sdfwrite.nc"};
   if (pfi->dnum[3]>1 || padT) {                    
     /* define the dimension */
     recflg=0;
-    if (pcm->sdfrecdim==1 | pcm->sdfrecdim==3) recflg=1;
+    if ((pcm->sdfrecdim==1) || (pcm->sdfrecdim==3)) recflg=1;
     if (sdfdefdim (pcm->ncwid, "time", pfi->dnum[3], &tdimid, &tvarid, recflg, pcm->sdfwtype)) goto err;
     /* assign default and user-defined attributes */
     if (sdfwatt(pcm, tvarid, "time", "long_name", "Time")) goto err;
@@ -8029,7 +8103,11 @@ char *filename={"grads.sdfwrite.nc"};
     /* write out the time axis units and calendar attributes after the 
        user-defined attributes. This guarantees that they will be correct */
     gr2t (pfi->grvals[3],1.0+pfi->dimoff[3],&tinit);
-    snprintf(tunit,255,"minutes since %04d-%02d-%02d %02d:%02d",
+    if ((*(pfi->grvals[3]+6) != 0))
+      snprintf(tunit,255,"minutes since %04d-%02d-%02d %02d:%02d",
+	    tinit.yr,tinit.mo,tinit.dy,tinit.hr,tinit.mn);
+    else
+      snprintf(tunit,255,"months since %04d-%02d-%02d %02d:%02d",
 	    tinit.yr,tinit.mo,tinit.dy,tinit.hr,tinit.mn);
     if (sdfwatt(pcm, tvarid, "time", "units", tunit)) goto err;
     /* if necessary, assign 365_day_calendar attribute */
diff --git a/src/gautil.c b/src/gautil.c
index 6492a81..48d023d 100644
--- a/src/gautil.c
+++ b/src/gautil.c
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 /* Originally authored by B. Doty */
 
@@ -203,7 +202,7 @@ gaint s1,s2;
 
 gadouble t2gr (gadouble *vals, struct dt *dtim) {
 struct dt stim;
-gaint eyear,mins;
+gaint eyear,mins,mons;
 gadouble val,*moincr,*mnincr,rdiff;
 
   /* Get constants associated with this conversion                   */
@@ -221,20 +220,22 @@ gadouble val,*moincr,*mnincr,rdiff;
      then we do our calculations in minutes.  If the increment is
      months or years, we do our calculations in months.              */
 
+
   if (*mnincr>0.1) {
-    mins = timdif(&stim,dtim);
+    mins = timdif(&stim,dtim,0);
     rdiff = (gadouble)mins;
     val = rdiff/(*mnincr);
     val += 1.0;
     return (val);
   } else {
+    mons = timdif(&stim,dtim,1);
     eyear = stim.yr;
     if (stim.yr > dtim->yr) eyear = dtim->yr;
     rdiff = (((dtim->yr - eyear)*12) + dtim->mo) -
             (((stim.yr - eyear)*12) + stim.mo);
     stim.yr = dtim->yr;
     stim.mo = dtim->mo;
-    mins = timdif(&stim,dtim);
+    mins = timdif(&stim,dtim,0);
     if (mins>0) {
       if (dtim->mo==2 && qleap(dtim->yr) ) {
         rdiff = rdiff + (((gadouble)mins)/41760.0);
@@ -317,11 +318,12 @@ gadouble v;
 }
 
 /* Calculate the difference between two times and return the
-   difference in minutes.   The calculation is time2 - time1, so
+   difference in minutes (if flag==0) or months (if flag==1). 
+   The calculation is time2 - time1, so
    if time2 is earlier than time1, the result is negative.           */
 
-gaint timdif (struct dt *dtim1, struct dt *dtim2) {
-gaint min1,min2,yr;
+gaint timdif (struct dt *dtim1, struct dt *dtim2, gaint flag) {
+gaint min1,min2,mon1,mon2,yr;
 struct dt *temp;
 gaint swap,mo1,mo2;
 
@@ -333,30 +335,42 @@ gaint swap,mo1,mo2;
     swap = 1;
   }
 
+  /* add up minutes/months for each year between time2 and time1 */
   min1 = 0;
   min2 = 0;
-
+  mon2 = 0;
   yr = dtim1->yr;
   while (yr < dtim2->yr) {
     if (qleap(yr)) min2 += 527040L;
     else min2 += 525600L;
+    mon2 += 12;
     yr++;
   }
 
-  mo1 = dtim1->mo;
-  mo2 = dtim2->mo;
-  if (qleap(dtim1->yr)) {
-    min1 = min1+mnacul[mo1]+(dtim1->dy*1440L)+(dtim1->hr*60L)+dtim1->mn;
-  } else {
-    min1 = min1+mnacum[mo1]+(dtim1->dy*1440L)+(dtim1->hr*60L)+dtim1->mn;
-  }
-  if (qleap(dtim2->yr)) {
-    min2 = min2+mnacul[mo2]+(dtim2->dy*1440L)+(dtim2->hr*60L)+dtim2->mn;
-  } else {
-    min2 = min2+mnacum[mo2]+(dtim2->dy*1440L)+(dtim2->hr*60L)+dtim2->mn;
+  if (flag) {
+    /* return months */  
+    mon1 = dtim1->mo;
+    mon2 += dtim2->mo;
+    if (swap) return (mon1-mon2);
+    else return (mon2-mon1);
+  } 
+  else {
+    /* return minutes */
+    mo1 = dtim1->mo;
+    mo2 = dtim2->mo;
+    if (qleap(dtim1->yr)) {
+      min1 = min1+mnacul[mo1]+(dtim1->dy*1440L)+(dtim1->hr*60L)+dtim1->mn;
+    } else {
+      min1 = min1+mnacum[mo1]+(dtim1->dy*1440L)+(dtim1->hr*60L)+dtim1->mn;
+    }
+    if (qleap(dtim2->yr)) {
+      min2 = min2+mnacul[mo2]+(dtim2->dy*1440L)+(dtim2->hr*60L)+dtim2->mn;
+    } else {
+      min2 = min2+mnacum[mo2]+(dtim2->dy*1440L)+(dtim2->hr*60L)+dtim2->mn;
+    }
+    if (swap) return (min1-min2);
+    else return (min2-min1);
   }
-  if (swap) return (min1-min2);
-  else return (min2-min1);
 }
 
 /* Test for leap year.  Rules are:
@@ -1851,7 +1865,7 @@ size_t sz;
       stim.dy = (gaint)(*(vals+2)+0.1);
       stim.hr = (gaint)(*(vals+3)+0.1);
       stim.mn = (gaint)(*(vals+4)+0.1);
-      tdif = timdif(dtimi,dtim);
+      tdif = timdif(dtimi,dtim,0);
       /* tdif = (tdif+30)/60; */
       tdif = tdif/60;   /* forecast hour not rounded up anymore */
       if (tdif<99) snprintf(out,sz,"%02i",tdif);
@@ -1865,7 +1879,7 @@ size_t sz;
       stim.dy = (gaint)(*(vals+2)+0.1);
       stim.hr = (gaint)(*(vals+3)+0.1);
       stim.mn = (gaint)(*(vals+4)+0.1);
-      tdif = timdif(dtimi,dtim); 
+      tdif = timdif(dtimi,dtim,0); 
       /* tdif = (tdif+30)/60; */
       tdif = tdif/60;   /* forecast hour not rounded up anymore */
       if (tdif<999) snprintf(out,sz,"%03i",tdif);
@@ -1881,7 +1895,7 @@ size_t sz;
       stim.dy = (gaint)(*(vals+2)+0.1);
       stim.hr = (gaint)(*(vals+3)+0.1);
       stim.mn = (gaint)(*(vals+4)+0.1);
-      tdif = timdif(dtimi,dtim); 
+      tdif = timdif(dtimi,dtim,0); 
       if (tdif<99) snprintf(out,sz,"%02i",tdif);
       else snprintf(out,sz,"%i",tdif);
       while (*out) out++;
@@ -1895,7 +1909,7 @@ size_t sz;
       stim.dy = (gaint)(*(vals+2)+0.1);
       stim.hr = (gaint)(*(vals+3)+0.1);
       stim.mn = (gaint)(*(vals+4)+0.1);
-      tdif = timdif(dtimi,dtim); 
+      tdif = timdif(dtimi,dtim,0); 
       hrs = tdif/60;
       mns = tdif - (hrs*60);
       if (hrs<99) snprintf(out,sz,"%02i%02i",hrs,mns);
@@ -1911,7 +1925,7 @@ size_t sz;
       stim.dy = (gaint)(*(vals+2)+0.1);
       stim.hr = (gaint)(*(vals+3)+0.1);
       stim.mn = (gaint)(*(vals+4)+0.1);
-      tdif = timdif(dtimi,dtim); 
+      tdif = timdif(dtimi,dtim,0); 
       dys = tdif/1440;
       hrs = (tdif - (dys*1440))/60;
       mns = tdif - (dys*1440) - (hrs*60);
@@ -2059,7 +2073,7 @@ gaint i,j;
   anch.dy = 1;
   anch.hr = 0;
   anch.mn = 0;
-  i = timdif(&anch,dtime);
+  i = timdif(&anch,dtime,0);
   i = i/1440;
   j = i/7;
   i = i - j*7;
diff --git a/src/grads.c b/src/grads.c
index 3fa773d..d1130a4 100644
--- a/src/grads.c
+++ b/src/grads.c
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 /* Main program for GrADS (Grid Analysis and Display System).
    This program loops on commands from the user, and calls the
@@ -193,7 +192,7 @@ if (metabuff==1) printf ("Note: -m option was specified, but no metafile buffer
 if (ipcflg) printf("\n<IPC>" );  /* delimit splash screen */
 
 printf ("\nGrid Analysis and Display System (GrADS) Version %s\n",gatxtl(GRADS_VERSION,0));
-printf ("Copyright (C) 1988-2015 by the Institute for Global Environment and Society (IGES)\n");
+printf ("Copyright (C) 1988-2016 by George Mason University\n");
 printf ("GrADS comes with ABSOLUTELY NO WARRANTY\n");
 printf ("See file COPYRIGHT for more information\n\n");
 
diff --git a/src/grads.h b/src/grads.h
index 5236e33..850d187 100644
--- a/src/grads.h
+++ b/src/grads.h
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -462,6 +461,7 @@ struct gastat {
   char *scattr;                /* scale factor attribute name for unpacking data */
   char *ofattr;                /* offset attribute name for unpacking data */
   char *undefattr;             /* undef attribute name */
+  char *undefattr2;            /* secondary undef attribute name */
   long xyhdr;                  /* Number of bytes to ignore at head of xy grids*/
   gaint calendar;              /* Support for 365-day calendars */
   gaint pa2mb;                 /* convert pressure values in descriptor file from Pa -> mb */
@@ -692,6 +692,7 @@ struct gavar {
   gadouble scale;              /* scale factor for unpacking data      */
   gadouble add;                /* offset value for unpacking data      */
   gadouble undef;              /* undefined value                      */
+  gadouble undef2;             /* secondary undefined value            */
   gaint vecpair;               /* Variable has a vector pair           */
   gaint isu;                   /* Variable is the u-component of a vector pair */
   gaint isdvar;                /* Variable is a valid data variable (for SDF files) */
@@ -1167,7 +1168,7 @@ void timadd (struct dt *, struct dt *);
 void timsub (struct dt *, struct dt *);
 gadouble t2gr (gadouble *, struct dt *);
 void gr2t (gadouble *, gadouble, struct dt *);
-gaint timdif (struct dt *, struct dt *);
+gaint timdif (struct dt *, struct dt *, gaint);
 gaint qleap (gaint);
 char *adtprs (char *, struct dt *, struct dt *);
 char *rdtprs (char *, struct dt *);
diff --git a/src/grib2scan.c b/src/grib2scan.c
index 5f560d7..2f6f329 100644
--- a/src/grib2scan.c
+++ b/src/grib2scan.c
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information. */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information*/
 
 /*  Written by Brian Doty and Jennifer M. Adams  */
 
@@ -448,8 +447,8 @@ gaint sect4 (unsigned char *s4, struct gag2 *pg2) {
   sp2 = -1;
   printf("  PDT=%d",pg2->pdt);
   /* instantaneous fields */
-  if (pg2->pdt<=7 || pg2->pdt==15 || pg2->pdt==48) {
-    if (pg2->pdt<=7|| pg2->pdt==48) {
+  if (pg2->pdt<=7 || pg2->pdt==15 || pg2->pdt==48 || pg2->pdt==60) {
+    if (pg2->pdt<=7 || pg2->pdt==48 || pg2->pdt==60) {
       printf ("  %d ",pg2->ftime);
       CodeTable4p4(pg2->trui);
       printf ("Forecast");
@@ -469,7 +468,7 @@ gaint sect4 (unsigned char *s4, struct gag2 *pg2) {
     printf("  Valid Time = %4i-%02i-%02i %02i:%02i  ",fcst.yr,fcst.mo,fcst.dy,fcst.hr,fcst.mn);
   }
   /* fields spanning a time interval */
-  else if (pg2->pdt>=8 && pg2->pdt<=12) {
+  else if ((pg2->pdt>=8 && pg2->pdt<=12) || pg2->pdt==61) {
     /* get the beg/end times and statistical process  */
     /* pos1 is location of octets describing end of overall time period */
     /* pos2 is the location of octet for statistical process code (sp) */
@@ -478,6 +477,7 @@ gaint sect4 (unsigned char *s4, struct gag2 *pg2) {
     else if (pg2->pdt == 10) {pos1=35; pos2=47;}
     else if (pg2->pdt == 11) {pos1=37; pos2=49;}
     else if (pg2->pdt == 12) {pos1=36; pos2=48;}
+    else if (pg2->pdt == 61) {pos1=44; pos2=56;}
     
     /* get the ending time of the overall averaging period */
     endt.yr = gagby(s4,pos1+0,2);
@@ -568,8 +568,8 @@ gaint sect4 (unsigned char *s4, struct gag2 *pg2) {
   }
 
   /* Ensemble Metadata */
-  if (pg2->pdt==1 || pg2->pdt==2 || pg2->pdt==11 || pg2->pdt==12) {
-    if (pg2->pdt==1 || pg2->pdt==11) {   /* individual ensemble members */
+  if (pg2->pdt==1 || pg2->pdt==2 || pg2->pdt==11 || pg2->pdt==12 || pg2->pdt==60 || pg2->pdt==61) {
+    if (pg2->pdt==1 || pg2->pdt==11 || pg2->pdt==60 || pg2->pdt==61) {   /* individual ensemble members */
       pg2->enstype    = gagby(s4,34,1); 
       pg2->enspertnum = gagby(s4,35,1);
       enstotal        = gagby(s4,36,1);
diff --git a/src/gribmap.c b/src/gribmap.c
index e4b503d..ce6e0ad 100644
--- a/src/gribmap.c
+++ b/src/gribmap.c
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
diff --git a/src/gribscan.c b/src/gribscan.c
index 9d86a50..732ebd6 100644
--- a/src/gribscan.c
+++ b/src/gribscan.c
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
diff --git a/src/gs.h b/src/gs.h
index e448cc1..6bc2758 100644
--- a/src/gs.h
+++ b/src/gs.h
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 #define RSIZ 3600  /* increased from 600 in version 1.9 */
 
diff --git a/src/gscrpt.c b/src/gscrpt.c
index 328c391..597a364 100644
--- a/src/gscrpt.c
+++ b/src/gscrpt.c
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 /* Authored by B. Doty */
 
@@ -3062,7 +3061,7 @@ gaint ret, i, j;
     goto retrn;
   }
   j = 0;
-  while (j<i) *(pcmn->ppath+j) = *(pvar->strng+j);
+  while (j<i) { *(pcmn->ppath+j) = *(pvar->strng+j); j++; }
   *(pcmn->ppath+i) = '\0';
 
   /* Allocate storage for the result */
diff --git a/src/gstmp.c b/src/gstmp.c
index d6b67f3..c0e727a 100644
--- a/src/gstmp.c
+++ b/src/gstmp.c
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 /*  Code originally by M.Fiorino   */
 
diff --git a/src/gx.h b/src/gx.h
index 929fe3f..88c55ea 100644
--- a/src/gx.h
+++ b/src/gx.h
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 #include <stdlib.h>
 
diff --git a/src/gxC.c b/src/gxC.c
index dcea093..6fb9537 100644
--- a/src/gxC.c
+++ b/src/gxC.c
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 /* This file contains the primary Cairo-GrADS interface. 
    The interactive interface (X windows) is managed by routines in gxX.c and the routines here.  
diff --git a/src/gxC.h b/src/gxC.h
index 60550d4..60aac9d 100644
--- a/src/gxC.h
+++ b/src/gxC.h
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 /*  This file contains the function prototypes for Cairo/grads interface. */
 
diff --git a/src/gxGD.c b/src/gxGD.c
index aed5d44..9b250ca 100644
--- a/src/gxGD.c
+++ b/src/gxGD.c
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 /* Routines to rasterize the graphics using the GD library. */
 
diff --git a/src/gxGD.h b/src/gxGD.h
index c239f23..7e74e33 100644
--- a/src/gxGD.h
+++ b/src/gxGD.h
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 /* Function prototypes for GD interface. 
    The interactive interface (X windows) is managed by the routines in gxX11.c
diff --git a/src/gxX.c b/src/gxX.c
index d5fc129..54f6662 100644
--- a/src/gxX.c
+++ b/src/gxX.c
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 /* Simplified X interface for Cairo -- no widgets, buttons, X-based pattern fill, etc. */
 
@@ -560,7 +559,7 @@ void gxdgcoord (gadouble x, gadouble y, gaint *i, gaint *j) {
 }
 
 void gxdimg(gaint *im, gaint imin, gaint jmin, gaint isiz, gaint jsiz) {
-  /* JMA gxout imap is a no-op in this build */
+  /* gxout imap is a no-op in the cairo build */
 }
 
 /* Get the x bearing (width) used to plot a character */
diff --git a/src/gxX11.c b/src/gxX11.c
index b0a369a..c237cb6 100644
--- a/src/gxX11.c
+++ b/src/gxX11.c
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 /* Include ./configure's header file */
 #ifdef HAVE_CONFIG_H
diff --git a/src/gxchpl.c b/src/gxchpl.c
index 51385d9..4e1a7b6 100644
--- a/src/gxchpl.c
+++ b/src/gxchpl.c
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 /* Authored by B. Doty */
 
diff --git a/src/gxcntr.c b/src/gxcntr.c
index 04a89a2..496aaae 100644
--- a/src/gxcntr.c
+++ b/src/gxcntr.c
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 /* qqq resolve gxdraw vs gxsdrw issue for cterp off */
 /* qqq clip labels and masking outside of parea */
@@ -142,8 +141,6 @@ if (lwksiz<iw*jw*2) {                  /* If storage inadaquate then */
   if (fwksiz<500) fwksiz=500;          /* Insure big enough for small grids */
   sz = fwksiz*sizeof(gadouble);
   fwk = (gadouble *)galloc(sz,"fwk");    /* Allocate fwk   */
-  /* JMA bug reported by Michael Bala in email dated 10/28/2014 -- was checking lwk instead of fwk 
-     unable to verify if this fixed the problem */
   if (fwk==NULL) {
     printf ("Error in GXCLEV: Unable to allocate storage \n");
     gree (lwk,"c3");
diff --git a/src/gxdb.c b/src/gxdb.c
new file mode 100644
index 0000000..266b2bb
--- /dev/null
+++ b/src/gxdb.c
@@ -0,0 +1,338 @@
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
+
+/* Keep track of persistent settings for "device backend" attributes, such as 
+   settings for custom colors, line widths, fonts, patterns, etc.  This interface
+   provides routines to set the values and to query the values. 
+   If support is ever added for writing the meta buffer out to a file, 
+   the information here should be written to the beginning of the file.  */
+
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+
+/* If autoconfed, only include malloc.h when it's present */
+#ifdef HAVE_MALLOC_H
+#include <malloc.h>
+#endif
+
+#else /* undef HAVE_CONFIG_H */
+
+#include <malloc.h>
+
+#endif /* HAVE_CONFIG_H */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "gatypes.h"
+#include "gx.h"
+
+
+static gaint pdcred[16] = {  0,255,250,  0, 30,  0,240,230,240,160,160,  0,230,  0,130,170};
+static gaint pdcgre[16] = {  0,255, 60,220, 60,200,  0,220,130,  0,230,160,175,210,  0,170};
+static gaint pdcblu[16] = {  0,255, 60,  0,255,200,130, 50, 40,200, 50,255, 45,140,220,170};
+
+static gaint greys[16]  = {  0,255,215,140, 80,110,230,170,200, 50,155, 95,185,125, 65,177};
+
+static gadouble pdcwid[12] = {0.6, 0.8, 1.0, 1.25, 1.5, 1.75, 2.0, 2.2, 2.4, 2.6, 2.8, 3.0};
+
+/* basic colors.  legacy backends will only support the first 256 */
+static gaint reds[COLORMAX], greens[COLORMAX], blues[COLORMAX], alphas[COLORMAX];
+static gaint tilenum[COLORMAX];
+
+/* tile patterns.  these can include solid colors with transparency.  */
+static gaint ptypes[COLORMAX], pxsz[COLORMAX], pysz[COLORMAX];
+static gaint pfthick[COLORMAX],pfcols[COLORMAX],pbcols[COLORMAX];
+static char *pnames[COLORMAX];
+
+/* custom line widths.  */
+
+static gadouble widths[256];
+
+/* custom font info */
+
+static char *fontname[100];
+static char *fn_serif = "serif";
+static char *fn_sans = "sans-serif";
+static char *fn_mono = "monospace";
+static gaint fnstatus[100];
+static gaint fnbold[100];
+static gaint fnitalic[100];
+static gaint hershflag;      /* For fn 1 to 6, use Hershey fonts or not */
+static gaint dbdevbck;       /* Device background color */
+static gaint dboutbck;       /* Ouput (image or hardcopy) background color */
+static gaint dbtransclr;     /* transparent color number (for hardcopy) */
+
+
+
+/* Initialize all the device backend persitent info on startup.
+   The "basic colors" (0 to 15) are pre-defined
+   Line widths (0 to 11) are also pre-defined. */
+
+void gxdbinit () {
+gaint i;
+
+  /* Initialize colors (default and user-defined) */
+  for (i=0; i<COLORMAX; i++) {
+    reds[i]   = 150; 
+    greens[i] = 150;
+    blues[i]  = 150;
+    alphas[i] = 255;
+    tilenum[i] = -999;
+    ptypes[i] = -999;
+    pnames[i] = NULL;
+    pxsz[i] = 10; 
+    pysz[i] = 10;
+    pfthick[i] = 3; 
+    pfcols[i] = -999; 
+    pbcols[i] = -999;
+  }
+  for (i=0; i<16; i++) {
+    reds[i]   = pdcred[i];
+    greens[i] = pdcgre[i];
+    blues[i]  = pdcblu[i];
+    alphas[i] = 255;
+  }
+
+  /* initialize line widths (default and user-defined) */
+  for (i=0; i<256; i++) widths[i] = 1.0; 
+  for (i=0; i<12; i++) widths[i] = pdcwid[i]; 
+
+  /* Initialize font settings */
+  for (i=0; i<100; i++) {
+    fontname[i] = NULL;
+    fnstatus[i] = 0;
+    fnbold[i] = 0;
+    fnitalic[i] = 0;
+  }
+
+  /* these will be for emulations of hershey fonts 0-5, but not 3 */
+  fontname[0] = fn_sans;   fnbold[0] = 0;  fnitalic[0] = 0; 
+  fontname[1] = fn_serif;  fnbold[1] = 0;  fnitalic[1] = 0;
+  fontname[2] = fn_mono;   fnbold[2] = 0;  fnitalic[2] = 1;
+  fontname[4] = fn_sans;   fnbold[4] = 1;  fnitalic[4] = 0;
+  fontname[5] = fn_serif;  fnbold[5] = 1;  fnitalic[5] = 0;
+
+  /* other flags for this and that */
+  hershflag  = 0;     /* zero, use hershey fonts.  1, use emulation. */  
+  dbdevbck   = 0;     /* initial device background color is black */
+  dboutbck   = -1;    /* initial output background color is 'undefined' */
+  dbtransclr = -1;    /* initial transparent color is 'undefined' */
+   
+}
+
+/* Set a font name for a font from 10 to 99.  
+   Use of a font number that has no defined font family name will be handled
+   by the device backend, usually by using a default sans-serif font. */
+
+void gxdbsetfn (gaint fn, char *str) {
+gaint len,i;
+char *newname;
+
+  if (fontname[fn]) {
+    /* this font number has been previously assigned. Reset and free memory */
+    free (fontname[fn]);
+    fontname[fn] = NULL;
+    fnstatus[fn] = 0;
+    fnbold[fn] = 0;
+    fnitalic[fn] = 0;
+  }
+  if (str) {
+    len = 0;
+    while (*(str+len)) len++;
+    newname = (char *)malloc(len+1);
+    if (newname==NULL) return;
+    for (i=0; i<len; i++) *(newname+i) = *(str+i);
+    *(newname+len) = '\0';
+    fontname[fn] = newname;
+    fnstatus[fn] = 0; 
+  }
+  /* No 'else' statement here ... we can allow a font name to be NULL */
+}
+
+/* Set the status of a font for a font from 10 to 99.
+   The status is 1 if the font file has been opened.  */
+
+void gxdbsetfnstatus (gaint fn, gaint status) {
+  if (fn>9 && fn<100) fnstatus[fn] = status;
+}
+
+
+/* Query font settings */
+
+void gxdbqfont (gaint fn, struct gxdbquery *pdbq) {
+  if (fn<0 || fn>99) {
+    pdbq->fname   = fontname[0];
+    pdbq->fstatus = fnstatus[0];
+    pdbq->fbold   = fnbold[0];
+    pdbq->fitalic = fnitalic[0];
+  } else {
+    pdbq->fname   = fontname[fn];
+    pdbq->fstatus = fnstatus[fn];
+    pdbq->fbold   = fnbold[fn];
+    pdbq->fitalic = fnitalic[fn];
+  }
+}
+
+/* Query a color */
+
+void gxdbqcol (gaint colr, struct gxdbquery *pdbq) {
+  if (colr<0 || colr>=COLORMAX) {
+    pdbq->red = 150;
+    pdbq->green = 150;
+    pdbq->blue = 150;
+    pdbq->alpha = 255;
+    pdbq->tile = -999;
+  } else {
+    pdbq->red = reds[colr];
+    pdbq->green = greens[colr];
+    pdbq->blue = blues[colr];
+    pdbq->alpha = alphas[colr];
+    pdbq->tile = tilenum[colr];
+  }
+}
+
+/* Define a new color */
+
+gaint gxdbacol (gaint clr, gaint red, gaint green, gaint blue, gaint alpha) {
+  if (clr<0 || clr>=COLORMAX ) return(1); 
+  if (red == -9) {
+    /* this is a pattern */
+    reds[clr] = red; 
+    greens[clr] = green; 
+    blues[clr] = blue;  
+    alphas[clr] = 255;
+    tilenum[clr] = green;
+  } else {
+    /* this is a color */
+    reds[clr] = red;
+    greens[clr] = green;
+    blues[clr] = blue;
+    alphas[clr] = alpha;
+    tilenum[clr] = -999;
+  }
+  return 0;
+}
+
+/* Query line width */
+
+void gxdbqwid (gaint lwid, struct gxdbquery *pdbq) {    
+  if (lwid<0 || lwid>255) pdbq->wid = 1.0; 
+  else pdbq->wid = widths[lwid];
+}
+
+/* Set line width */
+
+void gxdbsetwid (gaint lwid, gadouble val) {    
+  if (lwid>=1 && lwid<=256) {
+    if (val>0) widths[lwid-1] = val;
+  }
+}
+
+/* Set pattern settings */
+
+void gxdbsetpatt (gaint *itt, char *str) {    
+gaint pnum,len,i;
+char *newname;
+
+  pnum = *itt;
+  if (pnum<0 || pnum>=COLORMAX) return;
+  /* trigger a pattern reset in the hardware layer */
+  gxsetpatt(pnum);                        
+
+  if (pnames[pnum]) {
+    /* reset tile filename and free memory */
+    free (pnames[pnum]);
+    pnames[pnum] = NULL;
+  }
+
+  /* reset all elements */
+  ptypes[pnum]  = -999;
+  pxsz[pnum]    = -999; 
+  pysz[pnum]    = -999;
+  pfthick[pnum] = -999; 
+  pfcols[pnum]  = -999; 
+  pbcols[pnum]  = -999;
+
+  /* now populate data base entries with new values */
+  if (str) {
+    len = 0;
+    while (*(str+len)) len++;
+    newname = (char *)malloc(len+1);
+    if (newname==NULL) return;
+    for (i=0; i<len; i++) *(newname+i) = *(str+i);
+    *(newname+len) = '\0';
+    pnames[pnum] = newname;
+  }
+  if (*(itt+1) < -900) return;  ptypes[pnum]  = *(itt+1);
+  if (*(itt+2) < -900) return;  pxsz[pnum]    = *(itt+2);
+  if (*(itt+3) < -900) return;  pysz[pnum]    = *(itt+3);
+  if (*(itt+4) < -900) return;  pfthick[pnum] = *(itt+4);
+  if (*(itt+5) < -900) return;  pfcols[pnum]  = *(itt+5);
+  if (*(itt+6) < -900) return;  pbcols[pnum]  = *(itt+6);
+}
+
+/* Query pattern settings */
+
+void gxdbqpatt (gaint pnum, struct gxdbquery *pdbq) {    
+  if (pnum<0 || pnum>=COLORMAX) return;
+  pdbq->ptype = ptypes[pnum];
+  pdbq->pxs = pxsz[pnum];
+  if (pdbq->pxs < -900) pdbq->pxs = 9;
+  pdbq->pys = pysz[pnum];
+  if (pdbq->pys < -900) pdbq->pys = 9;
+  pdbq->pthick = pfthick[pnum];
+  if (pdbq->pthick < -900) pdbq->pthick = 3;
+  pdbq->pfcol = pfcols[pnum];
+  pdbq->pbcol = pbcols[pnum];
+  pdbq->fname = pnames[pnum];
+};
+
+/* Query hershey flag */
+
+gaint gxdbqhersh (void) {    
+  return (hershflag);
+}
+
+/* Set hershey flag */
+
+void gxdbsethersh (gaint flag) {    
+  if (flag==0 || flag==1) 
+    hershflag = flag;
+}
+
+/* Query transparent color (for image output) */
+
+gaint gxdbqtransclr (void) {   
+  return (dbtransclr);
+}
+
+/* Set transparent color (for image output) */
+
+void gxdbsettransclr (gaint clr) {   
+  dbtransclr = clr; 
+}
+
+/* Set device background color. */
+
+void gxdbck (gaint clr) {    
+  dbdevbck = clr;
+}
+
+/* Set output background color */
+
+void gxdboutbck (gaint clr) {    
+  dboutbck = clr;
+}
+
+/* Query background color */
+
+gaint gxdbkq  (void) {    
+  /* If the output background color is not set, return device background color */
+  if (dboutbck != -1) 
+    return (dboutbck);
+  else 
+    return (dbdevbck);
+}
+
+
diff --git a/src/gxdxwd.c b/src/gxdxwd.c
index f1132cd..ef1cbfe 100644
--- a/src/gxdxwd.c
+++ b/src/gxdxwd.c
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 /* 
  * Include ./configure's header file
diff --git a/src/gxmeta.c b/src/gxmeta.c
index 5cc463b..4e7674b 100644
--- a/src/gxmeta.c
+++ b/src/gxmeta.c
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 /* Routines related to hardcopy (metafile) output. */
 
@@ -734,319 +733,3 @@ void gxmbuferr() {
   mbufrel(0);
 }
 
-/* The following should go into its own source file */
-
-/* Keep track of persistent settings for "device backend" attributes, such as 
-   settings for custom colors, line widths, fonts, patterns, etc.  This interface
-   provides routines to set the values and to query the values. 
-   If support is ever added for writing the meta buffer out to a file, 
-   the information here should be written to the beginning of the file.  */
-
-static gaint pdcred[16] = {  0,255,250,  0, 30,  0,240,230,240,160,160,  0,230,  0,130,170};
-static gaint pdcgre[16] = {  0,255, 60,220, 60,200,  0,220,130,  0,230,160,175,210,  0,170};
-static gaint pdcblu[16] = {  0,255, 60,  0,255,200,130, 50, 40,200, 50,255, 45,140,220,170};
-
-static gaint greys[16]  = {  0,255,215,140, 80,110,230,170,200, 50,155, 95,185,125, 65,177};
-
-static gadouble pdcwid[12] = {0.6, 0.8, 1.0, 1.25, 1.5, 1.75, 2.0, 2.2, 2.4, 2.6, 2.8, 3.0};
-
-/* basic colors.  legacy backends will only support the first 256 */
-static gaint reds[COLORMAX], greens[COLORMAX], blues[COLORMAX], alphas[COLORMAX];
-static gaint tilenum[COLORMAX];
-
-/* tile patterns.  these can include solid colors with transparency.  */
-static gaint ptypes[COLORMAX], pxsz[COLORMAX], pysz[COLORMAX];
-static gaint pfthick[COLORMAX],pfcols[COLORMAX],pbcols[COLORMAX];
-static char *pnames[COLORMAX];
-
-/* custom line widths.  */
-
-static gadouble widths[256];
-
-/* custom font info */
-
-static char *fontname[100];
-static char *fn_serif = "serif";
-static char *fn_sans = "sans-serif";
-static char *fn_mono = "monospace";
-static gaint fnstatus[100];
-static gaint fnbold[100];
-static gaint fnitalic[100];
-static gaint hershflag;      /* For fn 1 to 6, use Hershey fonts or not */
-static gaint dbdevbck;       /* Device background color */
-static gaint dboutbck;       /* Ouput (image or hardcopy) background color */
-static gaint dbtransclr;     /* transparent color number (for hardcopy) */
-
-
-
-/* Initialize all the device backend persitent info on startup.
-   The "basic colors" (0 to 15) are pre-defined
-   Line widths (0 to 11) are also pre-defined. */
-
-void gxdbinit () {
-gaint i;
-
-  /* Initialize colors (default and user-defined) */
-  for (i=0; i<COLORMAX; i++) {
-    reds[i]   = 150; 
-    greens[i] = 150;
-    blues[i]  = 150;
-    alphas[i] = 255;
-    tilenum[i] = -999;
-    ptypes[i] = -999;
-    pnames[i] = NULL;
-    pxsz[i] = 10; 
-    pysz[i] = 10;
-    pfthick[i] = 3; 
-    pfcols[i] = -999; 
-    pbcols[i] = -999;
-  }
-  for (i=0; i<16; i++) {
-    reds[i]   = pdcred[i];
-    greens[i] = pdcgre[i];
-    blues[i]  = pdcblu[i];
-    alphas[i] = 255;
-  }
-
-  /* initialize line widths (default and user-defined) */
-  for (i=0; i<256; i++) widths[i] = 1.0; 
-  for (i=0; i<12; i++) widths[i] = pdcwid[i]; 
-
-  /* Initialize font settings */
-  for (i=0; i<100; i++) {
-    fontname[i] = NULL;
-    fnstatus[i] = 0;
-    fnbold[i] = 0;
-    fnitalic[i] = 0;
-  }
-
-  /* these will be for emulations of hershey fonts 0-5, but not 3 */
-  fontname[0] = fn_sans;   fnbold[0] = 0;  fnitalic[0] = 0; /* JMA set fnstatus for these? */
-  fontname[1] = fn_serif;  fnbold[1] = 0;  fnitalic[1] = 0;
-  fontname[2] = fn_mono;   fnbold[2] = 0;  fnitalic[2] = 1;
-  fontname[4] = fn_sans;   fnbold[4] = 1;  fnitalic[4] = 0;
-  fontname[5] = fn_serif;  fnbold[5] = 1;  fnitalic[5] = 0;
-
-  /* other flags for this and that */
-  hershflag  = 0;     /* zero, use hershey fonts.  1, use emulation. */  
-  dbdevbck   = 0;     /* initial device background color is black */
-  dboutbck   = -1;    /* initial output background color is 'undefined' */
-  dbtransclr = -1;    /* initial transparent color is 'undefined' */
-   
-}
-
-/* Set a font name for a font from 10 to 99.  
-   Use of a font number that has no defined font family name will be handled
-   by the device backend, usually by using a default sans-serif font. */
-
-void gxdbsetfn (gaint fn, char *str) {
-gaint len,i;
-char *newname;
-
-  if (fontname[fn]) {
-    /* this font number has been previously assigned. Reset and free memory */
-    free (fontname[fn]);
-    fontname[fn] = NULL;
-    fnstatus[fn] = 0;
-    fnbold[fn] = 0;
-    fnitalic[fn] = 0;
-  }
-  if (str) {
-    len = 0;
-    while (*(str+len)) len++;
-    newname = (char *)malloc(len+1);
-    if (newname==NULL) return;
-    for (i=0; i<len; i++) *(newname+i) = *(str+i);
-    *(newname+len) = '\0';
-    fontname[fn] = newname;
-    fnstatus[fn] = 0; 
-  }
-  /* No 'else' statement here ... we can allow a font name to be NULL */
-}
-
-/* Set the status of a font for a font from 10 to 99.
-   The status is 1 if the font file has been opened.  */
-
-void gxdbsetfnstatus (gaint fn, gaint status) {
-  if (fn>9 && fn<100) fnstatus[fn] = status;
-}
-
-
-/* Query font settings */
-
-void gxdbqfont (gaint fn, struct gxdbquery *pdbq) {
-  if (fn<0 || fn>99) {
-    pdbq->fname   = fontname[0];
-    pdbq->fstatus = fnstatus[0];
-    pdbq->fbold   = fnbold[0];
-    pdbq->fitalic = fnitalic[0];
-  } else {
-    pdbq->fname   = fontname[fn];
-    pdbq->fstatus = fnstatus[fn];
-    pdbq->fbold   = fnbold[fn];
-    pdbq->fitalic = fnitalic[fn];
-  }
-}
-
-/* Query a color */
-
-void gxdbqcol (gaint colr, struct gxdbquery *pdbq) {
-  if (colr<0 || colr>=COLORMAX) {
-    pdbq->red = 150;
-    pdbq->green = 150;
-    pdbq->blue = 150;
-    pdbq->alpha = 255;
-    pdbq->tile = -999;
-  } else {
-    pdbq->red = reds[colr];
-    pdbq->green = greens[colr];
-    pdbq->blue = blues[colr];
-    pdbq->alpha = alphas[colr];
-    pdbq->tile = tilenum[colr];
-  }
-}
-
-/* Define a new color */
-
-gaint gxdbacol (gaint clr, gaint red, gaint green, gaint blue, gaint alpha) {
-  if (clr<0 || clr>=COLORMAX ) return(1); 
-  if (red == -9) {
-    /* this is a pattern */
-    reds[clr] = red; 
-    greens[clr] = green; 
-    blues[clr] = blue;  
-    alphas[clr] = 255;
-    tilenum[clr] = green;
-  } else {
-    /* this is a color */
-    reds[clr] = red;
-    greens[clr] = green;
-    blues[clr] = blue;
-    alphas[clr] = alpha;
-    tilenum[clr] = -999;
-  }
-  return 0;
-}
-
-/* Query line width */
-
-void gxdbqwid (gaint lwid, struct gxdbquery *pdbq) {    
-  if (lwid<0 || lwid>255) pdbq->wid = 1.0; 
-  else pdbq->wid = widths[lwid];
-}
-
-/* Set line width */
-
-void gxdbsetwid (gaint lwid, gadouble val) {    
-  if (lwid>=1 && lwid<=256) {
-    if (val>0) widths[lwid-1] = val;
-  }
-}
-
-/* Set pattern settings */
-
-void gxdbsetpatt (gaint *itt, char *str) {    
-gaint pnum,len,i;
-char *newname;
-
-  pnum = *itt;
-  if (pnum<0 || pnum>=COLORMAX) return;
-  /* trigger a pattern reset in the hardware layer */
-  gxsetpatt(pnum);                        
-
-  if (pnames[pnum]) {
-    /* reset tile filename and free memory */
-    free (pnames[pnum]);
-    pnames[pnum] = NULL;
-  }
-
-  /* reset all elements */
-  ptypes[pnum]  = -999;
-  pxsz[pnum]    = -999; 
-  pysz[pnum]    = -999;
-  pfthick[pnum] = -999; 
-  pfcols[pnum]  = -999; 
-  pbcols[pnum]  = -999;
-
-  /* now populate data base entries with new values */
-  if (str) {
-    len = 0;
-    while (*(str+len)) len++;
-    newname = (char *)malloc(len+1);
-    if (newname==NULL) return;
-    for (i=0; i<len; i++) *(newname+i) = *(str+i);
-    *(newname+len) = '\0';
-    pnames[pnum] = newname;
-  }
-  if (*(itt+1) < -900) return;  ptypes[pnum]  = *(itt+1);
-  if (*(itt+2) < -900) return;  pxsz[pnum]    = *(itt+2);
-  if (*(itt+3) < -900) return;  pysz[pnum]    = *(itt+3);
-  if (*(itt+4) < -900) return;  pfthick[pnum] = *(itt+4);
-  if (*(itt+5) < -900) return;  pfcols[pnum]  = *(itt+5);
-  if (*(itt+6) < -900) return;  pbcols[pnum]  = *(itt+6);
-}
-
-/* Query pattern settings */
-
-void gxdbqpatt (gaint pnum, struct gxdbquery *pdbq) {    
-  if (pnum<0 || pnum>=COLORMAX) return;
-  pdbq->ptype = ptypes[pnum];
-  pdbq->pxs = pxsz[pnum];
-  if (pdbq->pxs < -900) pdbq->pxs = 9;
-  pdbq->pys = pysz[pnum];
-  if (pdbq->pys < -900) pdbq->pys = 9;
-  pdbq->pthick = pfthick[pnum];
-  if (pdbq->pthick < -900) pdbq->pthick = 3;
-  pdbq->pfcol = pfcols[pnum];
-  pdbq->pbcol = pbcols[pnum];
-  pdbq->fname = pnames[pnum];
-};
-
-/* Query hershey flag */
-
-gaint gxdbqhersh (void) {    
-  return (hershflag);
-}
-
-/* Set hershey flag */
-
-void gxdbsethersh (gaint flag) {    
-  if (flag==0 || flag==1) 
-    hershflag = flag;
-}
-
-/* Query transparent color (for image output) */
-
-gaint gxdbqtransclr (void) {   
-  return (dbtransclr);
-}
-
-/* Set transparent color (for image output) */
-
-void gxdbsettransclr (gaint clr) {   
-  dbtransclr = clr; 
-}
-
-/* Set device background color. */
-
-void gxdbck (gaint clr) {    
-  dbdevbck = clr;
-}
-
-/* Set output background color */
-
-void gxdboutbck (gaint clr) {    
-  dboutbck = clr;
-}
-
-/* Query background color */
-
-gaint gxdbkq  (void) {    
-  /* If the output background color is not set, return device background color */
-  if (dboutbck != -1) 
-    return (dboutbck);
-  else 
-    return (dbdevbck);
-}
-
-
diff --git a/src/gxprint.c b/src/gxprint.c
index 831cf3a..bdd18c5 100644
--- a/src/gxprint.c
+++ b/src/gxprint.c
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 /* Routines to print the graphics with calls to the Cairo library, needs gxC.c */
 
@@ -50,7 +49,6 @@ gaint gxprint (char *fnout, gaint xin, gaint yin, gaint bwin, gaint fmtflg,
 	       char *bgImage, char *fgImage, gaint tcolor, gadouble border) {
 
   /* Make sure we don't try to print an unsupported format */
-  /* JMA figure out how to add gif and jpg */ 
   if (fmtflg!=1 && fmtflg!=2 && fmtflg!=3 && fmtflg!=4 && fmtflg!=5) return (9);
 
   if (tcolor != -1) gxdbsettransclr (tcolor);   /* tell graphics database about transparent color override */
diff --git a/src/gxprintGD.c b/src/gxprintGD.c
index 363a0a0..4b4d29b 100644
--- a/src/gxprintGD.c
+++ b/src/gxprintGD.c
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 /* Routines to print the graphics with calls to the GD library, needs gxGD.c */
 
diff --git a/src/gxshad.c b/src/gxshad.c
index 57a838d..80498e1 100644
--- a/src/gxshad.c
+++ b/src/gxshad.c
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 /* Authored by B. Doty */
 /* 
diff --git a/src/gxshad2.c b/src/gxshad2.c
index 1c7ec12..3398aaa 100644
--- a/src/gxshad2.c
+++ b/src/gxshad2.c
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 /* Authored by B. Doty  2010,2011 */
 
diff --git a/src/gxstrm.c b/src/gxstrm.c
index d56f41c..1ff233d 100644
--- a/src/gxstrm.c
+++ b/src/gxstrm.c
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 /* Authored by B. Doty */
 
@@ -326,10 +325,9 @@ gaint i;
 
   if (shdcnt==0) return(1);
   if (shdcnt==1) return(shdcls[0]);
-  if (val<shdlvs[1]) return(shdcls[0]);
+  if (val<=shdlvs[1]) return(shdcls[0]);
   for (i=1; i<shdcnt-1; i++) {
-    if (val>=shdlvs[i] && val<shdlvs[i+1])
-                 return(shdcls[i]); 
+    if (val>shdlvs[i] && val<=shdlvs[i+1]) return(shdcls[i]); 
   }
   return(shdcls[shdcnt-1]);
 }
diff --git a/src/gxsubs.c b/src/gxsubs.c
index 8c0d671..83382fe 100644
--- a/src/gxsubs.c
+++ b/src/gxsubs.c
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 /* Authored by B. Doty */
 
@@ -241,9 +240,6 @@ gaint gxacol (gaint clr, gaint red, gaint green, gaint blue, gaint alpha ) {
 void gxwide (gaint wid) {                 /* Set width     */
 gaint hwid;
   hwid = wid;
-  /* Reduce line width setting if we're working in a small virtual page */
-  /* Commented out by JMA -- we should leave line width settings completely up to the user */
-  /*   if (lwflg) hwid = (wid+1)/2;  */
   hout2i(-4,hwid,wid);
   if (intflg) gxdwid (hwid);
   lwide = hwid;
diff --git a/src/gxwmap.c b/src/gxwmap.c
index 9021d00..41e59b0 100644
--- a/src/gxwmap.c
+++ b/src/gxwmap.c
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 /* Authored by B. Doty */
 
diff --git a/src/stnmap.c b/src/stnmap.c
index 7359105..1e5d241 100644
--- a/src/stnmap.c
+++ b/src/stnmap.c
@@ -1,5 +1,4 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
 /* This program creates a station map file given the name of a control
    file for a station data set.  It reads the control file, then
diff --git a/src/wx.h b/src/wx.h
index f4c3720..3d903ab 100644
--- a/src/wx.h
+++ b/src/wx.h
@@ -1,7 +1,6 @@
-/*  Copyright (C) 1988-2015 by the Institute of Global Environment and Society (IGES).  
-    See file COPYRIGHT for more information.   */
+/* Copyright (C) 1988-2016 by George Mason University. See file COPYRIGHT for more information. */
 
-/*  Constants for generating wx symbols */
+/* Constants for generating wx symbols */
 
 gaint stype[83] =
     { 11, 8, 8, 2, 8, 1, 8,16, 8, 6, 9, 9, 2, 9, 1,

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/grads.git



More information about the debian-science-commits mailing list