From f5c24bc9a46b989892e946bb6f440a88bb2f06af Mon Sep 17 00:00:00 2001
From: Albert Cheng <acheng@hdfgroup.org>
Date: Thu, 3 Mar 2005 13:10:16 -0500
Subject: [svn-r10130] Purpose: Retired GASS driver.

Platforms tested:
H5committested.
---
 MANIFEST                 |   5 -
 release_docs/RELEASE.txt |   1 +
 src/H5F.c                |   1 -
 src/H5FD.c               |   4 -
 src/H5FDgass.c           | 867 -----------------------------------------------
 src/H5FDgass.h           |  69 ----
 src/H5public.h           |   5 -
 src/Makefile.am          |   4 +-
 src/Makefile.in          |  14 +-
 src/hdf5.h               |   1 -
 src/hdf5.lnt             |   1 -
 test/Makefile.am         |   2 +-
 test/Makefile.in         |  87 ++---
 test/gass_append.c       | 169 ---------
 test/gass_read.c         | 212 ------------
 test/gass_write.c        | 179 ----------
 tools/h5dump/h5dump.c    |   4 -
 17 files changed, 38 insertions(+), 1587 deletions(-)
 delete mode 100644 src/H5FDgass.c
 delete mode 100644 src/H5FDgass.h
 delete mode 100644 test/gass_append.c
 delete mode 100644 test/gass_read.c
 delete mode 100644 test/gass_write.c

diff --git a/MANIFEST b/MANIFEST
index b4cba28..df9353c 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -820,8 +820,6 @@
 ./src/H5FDfamily.h
 ./src/H5FDfphdf5.c
 ./src/H5FDfphdf5.h
-./src/H5FDgass.c
-./src/H5FDgass.h
 ./src/H5FDlog.c
 ./src/H5FDlog.h
 ./src/H5FDmpi.c
@@ -997,9 +995,6 @@
 ./test/fillval.c
 ./test/flush1.c
 ./test/flush2.c
-./test/gass_append.c
-./test/gass_read.c
-./test/gass_write.c
 ./test/getname.c
 ./test/gheap.c
 ./test/h5test.c
diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt
index 9c16fe1..b2d587e 100644
--- a/release_docs/RELEASE.txt
+++ b/release_docs/RELEASE.txt
@@ -203,6 +203,7 @@ Bug Fixes since HDF5-1.6.0 release
 
     Library
     -------
+	- Retired GASS vfd (--with-gass).  AKC - 2005/3/3
         - Fixed a racing condition in MPIPOSIX virtual file drive close
 	  function.  Now all processes must completed the close before any
 	  of them is returned.  This prevents some "faster" processes start
diff --git a/src/H5F.c b/src/H5F.c
index 2fa6208..d683084 100644
--- a/src/H5F.c
+++ b/src/H5F.c
@@ -37,7 +37,6 @@
 /* Predefined file drivers */
 #include "H5FDcore.h"		/*temporary in-memory files		*/
 #include "H5FDfamily.h"		/*family of files			*/
-#include "H5FDgass.h"           /*GASS I/O                              */
 #include "H5FDlog.h"            /* sec2 driver with logging, for debugging */
 #include "H5FDmpi.h"            /* MPI-based file drivers		*/
 #include "H5FDmulti.h"		/*multiple files partitioned by mem usage */
diff --git a/src/H5FD.c b/src/H5FD.c
index 5ac2060..bc6714d 100644
--- a/src/H5FD.c
+++ b/src/H5FD.c
@@ -37,7 +37,6 @@
 #include "H5FDprivate.h"	/* File drivers				*/
 #include "H5FDcore.h"		/* Files stored entirely in memory	*/
 #include "H5FDfamily.h"		/* File families 			*/
-#include "H5FDgass.h"		/* Remote files using GASS I/O		*/
 #include "H5FDlog.h"        	/* sec2 driver with I/O logging (for debugging) */
 #include "H5FDmpi.h"            /* MPI-based file drivers		*/
 #include "H5FDmulti.h"		/* Usage-partitioned file family	*/
@@ -166,9 +165,6 @@ H5FD_term_interface(void)
                 H5FD_log_term();
                 H5FD_stdio_term();
                 H5FD_family_term();
-#ifdef H5_HAVE_GASS
-                H5FD_gass_term();
-#endif
 #ifdef H5_HAVE_SRB
                 H5FD_srb_term();
 #endif
diff --git a/src/H5FDgass.c b/src/H5FDgass.c
deleted file mode 100644
index e0e2a42..0000000
--- a/src/H5FDgass.c
+++ /dev/null
@@ -1,867 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Copyright by the Board of Trustees of the University of Illinois.         *
- * All rights reserved.                                                      *
- *                                                                           *
- * This file is part of HDF5.  The full HDF5 copyright notice, including     *
- * terms governing use, modification, and redistribution, is contained in    *
- * the files COPYING and Copyright.html.  COPYING can be found at the root   *
- * of the source code distribution tree; Copyright.html can be found at the  *
- * root level of an installed copy of the electronic HDF5 document set and   *
- * is linked from the top-level documents page.  It can also be found at     *
- * http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html.  If you do not have     *
- * access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/*
- * Programmer:  Saurabh Bagchi (bagchi@uiuc.edu)
- *              Thursday, August 12 -Tuesday, August 17, 1999
- *
- * Purpose:	This is the GASS I/O driver.
- *
- */
-
-/* Interface initialization */
-#define H5_INTERFACE_INIT_FUNC	H5FD_gass_init_interface
-
-
-#include "H5private.h"		/* Generic Functions			*/
-#include "H5Eprivate.h"		/* Error handling		  	*/
-#include "H5Fprivate.h"         /* Files access                         */
-#include "H5FDprivate.h"	/* File drivers				*/
-#include "H5FDgass.h"           /* GASS file driver			*/
-#include "H5Iprivate.h"		/* IDs			  		*/
-#include "H5MMprivate.h"	/* Memory management			*/
-#include "H5Pprivate.h"		/* Property lists			*/
-
-#ifdef H5_HAVE_GASS
-
-/* The driver identification number, initialized at runtime */
-static hid_t H5FD_GASS_g = 0;
-
-/* File operations */
-#define OP_UNKNOWN	0
-#define OP_READ		1
-#define OP_WRITE	2
-
-/*
- * The description of a file belonging to this driver. The `eoa' and `eof'
- * determine the amount of hdf5 address space in use and the high-water mark
- * of the file (the current size of the underlying Unix file). The `pos'
- * value is used to eliminate file position updates when they would be a
- * no-op. Unfortunately we've found systems that use separate file position
- * indicators for reading and writing so the lseek can only be eliminated if
- * the current operation is the same as the previous operation.  When opening
- * a file the `eof' will be set to the current file size, `eoa' will be set
- * to zero, `pos' will be set to H5F_ADDR_UNDEF (as it is when an error
- * occurs), and `op' will be set to H5F_OP_UNKNOWN.
- */
-typedef struct H5FD_gass_t {
-    H5FD_t	pub;			/*public stuff, must be first	*/
-    int		fd;			/*the unix file			*/
-    GASS_Info   info;                   /*file information */
-    haddr_t	eoa;			/*end of allocated region	*/
-    haddr_t	eof;			/*end of file; current file size*/
-    haddr_t	pos;			/*current file I/O position	*/
-    int		op;			/*last operation		*/
-    
-  
-} H5FD_gass_t;
-
-/*
- * This driver supports systems that have the lseek64() function by defining
- * some macros here so we don't have to have conditional compilations later
- * throughout the code.
- *
- * file_offset_t:	The datatype for file offsets, the second argument of
- *			the lseek() or lseek64() call.
- *
- * file_seek:		The function which adjusts the current file position,
- *			either lseek() or lseek64().
- */
-/* adding for windows NT file system support. */
-
-#ifdef H5_HAVE_LSEEK64
-#   define file_offset_t	off64_t
-#   define file_seek		lseek64
-#elif defined (WIN32)
-#   ifdef __MWERKS__
-#       define file_offset_t off_t
-#       define file_seek lseek
-#   else /*MSVC*/
-#       define file_offset_t __int64
-#       define file_seek _lseeki64
-#   endif
-#else
-#   define file_offset_t	off_t
-#   define file_seek		lseek
-#endif
-
-
-
-/*
- * These macros check for overflow of various quantities.  These macros
- * assume that file_offset_t is signed and haddr_t and size_t are unsigned.
- * 
- * ADDR_OVERFLOW:	Checks whether a file address of type `haddr_t'
- *			is too large to be represented by the second argument
- *			of the file seek function.
- *
- * SIZE_OVERFLOW:	Checks whether a buffer size of type `hsize_t' is too
- *			large to be represented by the `size_t' type.
- *
- * REGION_OVERFLOW:	Checks whether an address and size pair describe data
- *			which can be addressed entirely by the second
- *			argument of the file seek function.
- */
-#define MAXADDR (((haddr_t)1<<(8*sizeof(file_offset_t)-1))-1)
-#define ADDR_OVERFLOW(A)	(HADDR_UNDEF==(A) ||			      \
-				 ((A) & ~(haddr_t)MAXADDR))
-#define SIZE_OVERFLOW(Z)	((Z) & ~(hsize_t)MAXADDR)
-#define REGION_OVERFLOW(A,Z)	(ADDR_OVERFLOW(A) || SIZE_OVERFLOW(Z) ||      \
-				 sizeof(file_offset_t)<sizeof(size_t) ||      \
-                                 HADDR_UNDEF==(A)+(Z) ||		      \
-				 (file_offset_t)((A)+(Z))<(file_offset_t)(A))
-
-/* Prototypes */
-static H5FD_t *H5FD_gass_open(const char *name, unsigned flags, hid_t fapl_id,
-			      haddr_t maxaddr);
-static herr_t H5FD_gass_close(H5FD_t *_file);
-static herr_t H5FD_gass_query(const H5FD_t *_f1, unsigned long *flags);
-static haddr_t H5FD_gass_get_eoa(H5FD_t *_file);
-static herr_t H5FD_gass_set_eoa(H5FD_t *_file, haddr_t addr);
-static haddr_t H5FD_gass_get_eof(H5FD_t *_file);
-static herr_t  H5FD_gass_get_handle(H5FD_t *_file, hid_t fapl, void** file_handle);
-static herr_t H5FD_gass_read(H5FD_t *_file, H5FD_mem_t type, hid_t fapl_id, haddr_t addr,
-			     size_t size, void *buf);
-static herr_t H5FD_gass_write(H5FD_t *_file, H5FD_mem_t type, hid_t fapl_id, haddr_t addr,
-			      size_t size, const void *buf);
-
-/* GASS I/O-specific file access properties */
-typedef struct H5FD_gass_fapl_t {
-  GASS_Info            info;      /* access property parameters */
-} H5FD_gass_fapl_t;
-
-/* The GASS IO driver information */
-static const H5FD_class_t H5FD_gass_g = {
-    "gass",					/*name			*/
-    MAXADDR,					/*maxaddr		*/
-    H5F_CLOSE_WEAK,				/* fc_degree		*/
-    NULL,					/*sb_size		*/
-    NULL,					/*sb_encode		*/
-    NULL,					/*sb_decode		*/
-    sizeof(H5FD_gass_fapl_t), 			/*fapl_size		*/
-    NULL,					/*fapl_get		*/
-    NULL,					/*fapl_copy		*/
-    NULL, 					/*fapl_free		*/
-    0,						/*dxpl_size		*/
-    NULL,					/*dxpl_copy		*/
-    NULL,					/*dxpl_free		*/
-    H5FD_gass_open,				/*open			*/
-    H5FD_gass_close,				/*close			*/
-    NULL,				        /*cmp			*/
-    H5FD_gass_query,				/*query			*/
-    NULL,					/*alloc			*/
-    NULL,					/*free			*/
-    H5FD_gass_get_eoa,				/*get_eoa		*/
-    H5FD_gass_set_eoa, 				/*set_eoa		*/
-    H5FD_gass_get_eof,				/*get_eof		*/
-    H5FD_gass_get_handle,                       /*get_handle            */
-    H5FD_gass_read,				/*read			*/
-    H5FD_gass_write,				/*write			*/
-    NULL,				        /*flush			*/
-    NULL,                                       /*lock                  */
-    NULL,                                       /*unlock                */
-    H5FD_FLMAP_SINGLE 				/*fl_map		*/
-};
-
-
-/*--------------------------------------------------------------------------
-NAME
-   H5FD_gass_init_interface -- Initialize interface-specific information
-USAGE
-    herr_t H5FD_gass_init_interface()
-   
-RETURNS
-    Non-negative on success/Negative on failure
-DESCRIPTION
-    Initializes any interface-specific data or routines.  (Just calls
-    H5FD_gass_init currently).
-
---------------------------------------------------------------------------*/
-static herr_t
-H5FD_gass_init_interface(void)
-{
-    FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5FD_gass_init_interface)
-
-    FUNC_LEAVE_NOAPI(H5FD_gass_init())
-} /* H5FD_gass_init_interface() */
-
-
-/*-------------------------------------------------------------------------
- * Function:	H5FD_gass_init
- *
- * Purpose:	Initialize this driver by registering the driver with the
- *		library.
- *
- * Return:	Success:	The driver ID for the gass driver.
- *
- *		Failure:	Negative.
- *
- * Programmer:	Saurabh Bagchi
- *              Friday, August 13, 1999
- *
- * Modifications:
- *
- *-------------------------------------------------------------------------
- */
-hid_t
-H5FD_gass_init(void)
-{
-    hid_t ret_value=H5FD_GASS_g;        /* Return value */
-
-    FUNC_ENTER_NOAPI(H5FD_gass_init, FAIL)
-
-    if (!H5FD_GASS_g)
-        H5FD_GASS_g = H5FD_register(&H5FD_gass_g,sizeof(H5FD_class_t));
-
-    globus_module_activate (GLOBUS_COMMON_MODULE);
-    globus_module_activate (GLOBUS_GASS_FILE_MODULE);
-
-    /* Set return value */
-    ret_value=H5FD_GASS_g;
-
-done:
-    FUNC_LEAVE_NOAPI(ret_value)
-}
-
-
-/*---------------------------------------------------------------------------
- * Function:	H5FD_gass_term
- *
- * Purpose:	Shut down the VFD
- *
- * Return:	<none>
- *
- * Programmer:  Quincey Koziol
- *              Friday, Jan 30, 2004
- *
- * Modification:
- *
- *---------------------------------------------------------------------------
- */
-void
-H5FD_gass_term(void)
-{
-    FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5FD_gass_term)
-
-    /* Reset VFL ID */
-    H5FD_GASS_g=0;
-
-    FUNC_LEAVE_NOAPI_VOID
-} /* end H5FD_gass_term() */
-
-
-/*-------------------------------------------------------------------------
- * Function:	H5Pset_fapl_gass
- *
- * Purpose:	Store the user supplied GASS INFO in
- *		the file access property list FAPL_ID which can then be used
- *		to create and/or open the file. 
- *
- *		GASS info object to be used for file open using GASS.
- *              Any modification to info after
- *		this function call returns may have undetermined effect
- *		to the access property list.  Users should call this
- *		function again to setup the property list.
- *
- *
- * Return:	Success:	Non-negative
- *
- * 		Failure:	Negative
- *
- * Programmer:	Saurabh Bagchi
- *		Friday, August 13, 1999
- *
- * Modifications:
- *
- *		Raymond Lu, 2001-10-25
- *		Changed the file access list to the new generic property list.
- *
- *-------------------------------------------------------------------------
- */
-herr_t
-H5Pset_fapl_gass(hid_t fapl_id, GASS_Info info)
-{
-    H5FD_gass_fapl_t	fa;
-    H5P_genplist_t *plist;      /* Property list pointer */
-    herr_t ret_value;
-    
-    FUNC_ENTER_API(H5Pset_fapl_gass, FAIL)
-    /*NO TRACE*/
-    
-    /* Check arguments */
-    if(NULL == (plist = H5P_object_verify(fapl_id,H5P_FILE_ACCESS)))
-        HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a property list")
-
-#ifdef LATER
-#warning "We need to verify that INFO contain sensible information."
-#endif
-
-    /* Initialize driver specific properties */
-    fa.info = info;
-
-    ret_value= H5P_set_driver(plist, H5FD_GASS, &fa);
-
-done:
-    FUNC_LEAVE_API(ret_value)
-}
-
-
-/*-------------------------------------------------------------------------
- * Function:	H5Pget_fapl_gass
- *
- * Purpose:	If the file access property list is set to the H5FD_GASS
- *		driver then this function returns the GASS info object
- *		through the INFO pointer.
- *
- * Return:	Success:	Non-negative with the info object returned 
- *                              through the INFO arguments if non-null. 
- *				The information is copied and it is therefore
- *				valid only until the file access property
- *				list is modified or closed.
- *
- * 		Failure:	Negative
- *
- * Programmer:	Saurabh Bagchi
- *		Friday, August 13, 1999
- *
- * Modifications:
- *
- *              Raymond Lu, 2001-10-25
- *              Changed the file access list to the new generic property list.
- *
- *-------------------------------------------------------------------------
- */
-herr_t
-H5Pget_fapl_gass(hid_t fapl_id, GASS_Info *info/*out*/)
-{
-    H5FD_gass_fapl_t	*fa;
-    H5P_genplist_t *plist;      /* Property list pointer */
-    herr_t      ret_value=SUCCEED;       /* Return value */
-    
-    FUNC_ENTER_API(H5Pget_fapl_gass, FAIL)
-    H5TRACE2("e","ix",fapl_id,info);
-
-    if(NULL == (plist = H5P_object_verify(fapl_id,H5P_FILE_ACCESS)))
-        HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a file access property list")
-    if (H5FD_GASS!=H5P_get_driver(plist))
-        HGOTO_ERROR(H5E_PLIST, H5E_BADVALUE, FAIL, "incorrect VFL driver")
-    if (NULL==(fa=H5P_get_driver_info(plist)))
-        HGOTO_ERROR(H5E_PLIST, H5E_BADVALUE, FAIL, "bad VFL driver info")
-
-    if (info)
-        *info = fa->info;
-
-done:
-    FUNC_LEAVE_API(ret_value)
-}
-
-
-/*-------------------------------------------------------------------------
- * Function:	H5FD_gass_open
- *
- * Purpose:	Opens a file with name NAME.  The FLAGS are a bit field with
- *		purpose similar to the second argument of open(2) and which
- *		are defined in H5Fpublic.h. The file access property list
- *		FAPL_ID contains the driver properties and MAXADDR
- *		is the largest address which this file will be expected to
- *		access.
- *
- * Return:	Success:	A pointer to a new file data structure. The
- *				public fields will be initialized by the
- *				caller, which is always H5FD_open().
- *
- *		Failure:	NULL
- *
- * Programmer:	Saurabh Bagchi
- *              Friday, August 13, 1999
- *
- * Modifications:
- *
- *-------------------------------------------------------------------------
- */
-static H5FD_t *
-H5FD_gass_open(const char *name, unsigned flags, hid_t fapl_id,
-	       haddr_t maxaddr)
-{
-    int		fd;
-    H5FD_gass_t	*file=NULL;
-    const H5FD_gass_fapl_t	*fa=NULL;
-    H5FD_gass_fapl_t		_fa;
-    char *filename = (char *) H5MM_malloc(80 * sizeof(char));
-    H5P_genplist_t *plist;      /* Property list pointer */
-    h5_stat_t sb;
-    H5FD_t	*ret_value;
-    
-    FUNC_ENTER_NOAPI(H5FD_gass_open, NULL)
-
-    /* fprintf(stdout, "Entering H5FD_gass_open name=%s flags=0x%x\n", name, flags); */
-
-    /* Check arguments */
-    if (!name || !*name)
-        HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, NULL, "invalid file name")
-    if (0==maxaddr || HADDR_UNDEF==maxaddr)
-        HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, NULL, "bogus maxaddr")
-    if (ADDR_OVERFLOW(maxaddr))
-        HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, NULL, "bogus maxaddr")
-
-    strcpy (filename, name);
-    
-    /* Obtain a pointer to gass-specific file access properties */
-    if(NULL == (plist = H5P_object_verify(fapl_id,H5P_FILE_ACCESS)))
-        HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, NULL, "not a file access property list")
-    if (H5P_FILE_ACCESS_DEFAULT==fapl_id || H5FD_GASS!=H5P_get_driver(plist)) {
-        GASS_INFO_NULL (_fa.info);
-        /* _fa.info = GASS_INFO_NULL; */
-        /* _fa.info = {0,0}; */ /*default*/
-        fa = &_fa;
-    } else {
-        fa = H5P_get_driver_info(plist);
-        assert(fa);
-    }
-    
-    /* When I come down here, the possible flag values and the correct
-       responses are given here :-
-
-       1. H5F_ACC_CREAT | H5F_ACC_RDWR | H5F_ACC_EXCL : The file is 
-          a new one. Go ahead and open it in O_RDWR. 
-
-       2. H5F_ACC_CREAT | H5F_ACC_RDWR | H5F_ACC_TRUNC : Use
-          O_RDWR | O_TRUNC with gass_open.
-
-       3. H5F_ACC_RDWR | H5F_ACC_TRUNC : File already exists. Truncate it.
-	  
-       4. H5F_ACC_RDWR : Use O_RDWR with gass_open
-
-       5. H5F_ACC_RDWR is not set : Use O_RDONLY with gass_open
-
-       One reason why we cannot simply pass on the flags to gass_open
-       is that gass_open does not support many of them (e.g., O_CREAT)
-    */
-
-    
-    if ((flags & H5F_ACC_CREAT) && (flags & H5F_ACC_RDWR) && (flags & H5F_ACC_EXCL)) {
-        if ((fd = globus_gass_open (filename, O_RDWR|O_TRUNC)) < 0)
-            HGOTO_ERROR(H5E_IO, H5E_CANTOPENFILE, NULL, "open failed")
-    }
-    else if ((flags & H5F_ACC_CREAT) && (flags & H5F_ACC_RDWR) && (flags & H5F_ACC_TRUNC)) {
-        if ((fd = globus_gass_open (filename, O_RDWR|O_TRUNC)) < 0)
-            HGOTO_ERROR(H5E_IO, H5E_CANTOPENFILE, NULL, "open failed")
-      
-    }
-    else if ((flags & H5F_ACC_RDWR) && (flags & H5F_ACC_TRUNC)) {
-        if ((fd = globus_gass_open (filename, O_RDWR|O_TRUNC)) < 0)
-            HGOTO_ERROR(H5E_IO, H5E_CANTOPENFILE, NULL, "open failed")
-    
-    }
-    else if (flags & H5F_ACC_RDWR) {
-        if ((fd = globus_gass_open (filename, O_RDWR)) < 0)
-            HGOTO_ERROR(H5E_IO, H5E_CANTOPENFILE, NULL, "open failed")
-      
-    }
-    else { /* This is case where H5F_ACC_RDWR is not set */
-        if ((fd = globus_gass_open (filename, O_RDONLY)) < 0)
-            HGOTO_ERROR(H5E_IO, H5E_CANTOPENFILE, NULL, "open failed")
-      
-    }
-   
-    if (HDfstat(fd, &sb)<0) {
-        close(fd);
-        HGOTO_ERROR(H5E_IO, H5E_BADFILE, NULL, "fstat failed")
-    }
-
-    /* Create the new file struct */
-    if (NULL==(file=H5MM_calloc(sizeof(H5FD_gass_t))))
-        HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "can't allocate file struct")
-    file->fd = fd;
-    file->eof = sb.st_size;
-    file->pos = HADDR_UNDEF;
-    file->op = OP_UNKNOWN;
-    file->info = fa->info;
-
-    /* Set return value */
-    ret_value=(H5FD_t*)file;
-    
-done:
-    FUNC_LEAVE_NOAPI(ret_value)
-}
-
-
-/*-------------------------------------------------------------------------
- * Function:	H5FD_gass_close
- *
- * Purpose:	Closes a GASS file.
- *
- * Return:	Success:	0
- *
- *		Failure:	-1, file not closed.
- *
- * Programmer:	Saurabh Bagchi
- *              Monday, August 16, 1999
- *
- * Modifications:
- *
- *-------------------------------------------------------------------------
- */
-static herr_t
-H5FD_gass_close (H5FD_t *_file)
-{
-    H5FD_gass_t *file = (H5FD_gass_t *)_file;
-    herr_t      ret_value=SUCCEED;       /* Return value */
-
-    FUNC_ENTER_NOAPI(H5FD_gass_close, FAIL)
-
-    if (file == NULL)
-        HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid file handle")
-    
-    if (globus_gass_close (file->fd) < 0)
-        HGOTO_ERROR(H5E_IO, H5E_CANTCLOSEFILE, FAIL, "can't close GASS file")
-
-    H5MM_xfree(file);
-
-done:
-    FUNC_LEAVE_NOAPI(ret_value)
-}
-
-
-/*-------------------------------------------------------------------------
- * Function:	H5FD_gass_query
- *
- * Purpose:	Set the flags that this VFL driver is capable of supporting.
- *              (listed in H5FDpublic.h)
- *
- * Return:	Success:	non-negative
- *
- *		Failure:	negative
- *
- * Programmer:	Quincey Koziol
- *              Tuesday, September 26, 2000
- *
- * Modifications:
- *
- *-------------------------------------------------------------------------
- */
-static herr_t
-H5FD_gass_query(const UNUSED H5FD_t *_f, unsigned long *flags /* out */)
-{
-    herr_t ret_value=SUCCEED;
-
-    FUNC_ENTER_NOAPI(H5FD_gass_query, FAIL)
-
-    /* Set the VFL feature flags that this driver supports */
-    if(flags) {
-        *flags = 0;
-        *flags|=H5FD_FEAT_DATA_SIEVE;       /* OK to perform data sieving for faster raw data reads & writes */
-        *flags|=H5FD_FEAT_AGGREGATE_SMALLDATA; /* OK to aggregate "small" raw data allocations */
-    }
-
-done:
-    FUNC_LEAVE_NOAPI(ret_value)
-}
-
-
-/*-------------------------------------------------------------------------
- * Function:	H5FD_gass_get_eoa
- *
- * Purpose:	Gets the end-of-address marker for the file. The EOA marker
- *              is the first address past the last byte allocated in the
- *              format address space.
- *
- * Return:	Success:	The end-of-address marker.
- *
- *		Failure:	HADDR_UNDEF
- *
- * Programmer:  Saurabh Bagchi
- *              Monday, August 16, 1999
- *
- * Modifications:
- *
- *-------------------------------------------------------------------------
- */
-static haddr_t
-H5FD_gass_get_eoa(H5FD_t *_file)
-{
-    H5FD_gass_t *file = (H5FD_gass_t *)_file;
-    haddr_t ret_value;          /* Return value */
-
-    FUNC_ENTER_NOAPI(H5FD_gass_get_eoa, HADDR_UNDEF)
-
-    /* Set return value */
-    ret_value=file->eoa;
-
-done:
-    FUNC_LEAVE_NOAPI(ret_value)
-}
-
-
-/*-------------------------------------------------------------------------
- * Function:    H5FD_gass_set_eoa
- *
- * Purpose:     Set the end-of-address marker for the file. This function is
- *              called shortly after an existing HDF5 file is opened in order
- *              to tell the driver where the end of the HDF5 data is located.
- *
- * Return:      Success:        0
- *
- * Programmer:  Saurabh Bagchi
- *              Monday, August 16, 1999
- *
- * Modifications:
- *
- *-------------------------------------------------------------------------
- */
-static herr_t
-H5FD_gass_set_eoa(H5FD_t *_file, haddr_t addr)
-{
-    H5FD_gass_t *file = (H5FD_gass_t *)_file;
-    herr_t ret_value=SUCCEED;   /* Return value */
-
-    FUNC_ENTER_NOAPI(H5FD_gass_set_eoa, FAIL)
-
-    file->eoa = addr;
-
-done:
-    FUNC_LEAVE_NOAPI(ret_value)
-}
-
-
-/*-------------------------------------------------------------------------
- * Function:    H5FD_gass_get_eof
- *
- * Purpose:     Returns the end-of-file marker, which is the greater of
- *              either the Unix end-of-file or the HDF5 end-of-address
- *              markers.
- *
- * Return:      Success:        End of file address, the first address past
- *                              the end of the "file", either the Unix file
- *                              or the HDF5 file.
- *
- *              Failure:        HADDR_UNDEF
- *
- * Programmer:  Saurabh Bagchi
- *              Monday, August 16, 1999
- *
- * Modifications:
- *
- *-------------------------------------------------------------------------
- */
-static haddr_t
-H5FD_gass_get_eof(H5FD_t *_file)
-{
-    H5FD_gass_t *file = (H5FD_gass_t*)_file;
-    haddr_t ret_value;          /* Return value */
-
-    FUNC_ENTER_NOAPI(H5FD_gass_get_eof, HADDR_UNDEF)
-
-    /* Set return value */
-    ret_value=MAX(file->eof, file->eoa);
-
-done:
-    FUNC_LEAVE_NOAPI(ret_value)
-}
-
-
-/*-------------------------------------------------------------------------
- * Function:       H5FD_gass_get_handle
- * 
- * Purpose:        Returns the file handle of GASS file driver.
- * 
- * Returns:        Non-negative if succeed or negative if fails.
- * 
- * Programmer:     Raymond Lu
- *                 Sept. 16, 2002
- *                 
- * Modifications:  
- * 
- *-------------------------------------------------------------------------
- */
-static herr_t
-H5FD_gass_get_handle(H5FD_t *_file, hid_t UNUSED fapl, void** file_handle)
-{   
-    H5FD_gass_t         *file = (H5FD_gass_t *)_file;
-    herr_t              ret_value = SUCCEED;
-                                                   
-    FUNC_ENTER_NOAPI(H5FD_gass_get_handle, FAIL)
-
-    if(!file_handle)
-        HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "file handle not valid")
-
-    *file_handle = &(file->fd);
-
-done:   
-    FUNC_LEAVE_NOAPI(ret_value)
-}   
-            
-
-/*-------------------------------------------------------------------------
- * Function:    H5FD_gass_read
- *
- * Purpose:     Reads SIZE bytes of data from FILE beginning at address ADDR
- *              into buffer BUF.
- *
- * Return:      Success:        Zero. Result is stored in caller-supplied
- *                              buffer BUF.
- *
- *              Failure:        -1, Contents of buffer BUF are undefined.
- *
- * Programmer:  Saurabh Bagchi
- *              Monday, August 16, 1999
- *
- * Modifications:
- *
- *-------------------------------------------------------------------------
- */
-static herr_t
-H5FD_gass_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t dxpl_id/*unused*/, haddr_t addr,
-               size_t size, void *buf/*out*/)
-{
-    H5FD_gass_t         *file = (H5FD_gass_t*)_file;
-    ssize_t             nbytes;
-    herr_t      ret_value=SUCCEED;       /* Return value */
-
-    FUNC_ENTER_NOAPI(H5FD_gass_read, FAIL)
-
-    assert(file && file->pub.cls);
-    assert(buf);
-
-    /* Check for overflow conditions */
-    if (HADDR_UNDEF==addr)
-        HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL, "addr undefined")
-    if (REGION_OVERFLOW(addr, size))
-        HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr too large")
-    if (addr+size>file->eoa)
-        HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr too large")
-
-    /* Seek to the correct location */
-    if ((addr!=file->pos || OP_READ!=file->op) &&
-            file_seek(file->fd, (file_offset_t)addr, SEEK_SET)<0) {
-        file->pos = HADDR_UNDEF;
-        file->op = OP_UNKNOWN;
-        HGOTO_ERROR(H5E_IO, H5E_SEEKERROR, FAIL, "gass file seek failed")
-    }
-
-    /*
-     * Read data, being careful of interrupted system calls, partial results,
-     * and the end of the file.
-     */
-    while (size>0) {
-        do 
-            nbytes = read(file->fd, buf, size);
-        while (-1==nbytes && EINTR==errno);
-
-        if (-1==nbytes) {
-            /* error */
-            file->pos = HADDR_UNDEF;
-            file->op = OP_UNKNOWN;
-            HGOTO_ERROR(H5E_IO, H5E_READERROR, FAIL, "gass file read failed")
-        }
-        if (0==nbytes) {
-            /* end of file but not end of format address space */
-            memset(buf, 0, size);
-            size = 0;
-        }
-        assert(nbytes>=0);
-        assert(nbytes<=size);
-        size -= (hsize_t)nbytes;
-        addr += (haddr_t)nbytes;
-        buf = (char*)buf + nbytes;
-    }
-
-    /* Update current position */
-    file->pos = addr;
-    file->op = OP_READ;
-
-done:
-    FUNC_LEAVE_NOAPI(ret_value)
-}
-
-
-/*-------------------------------------------------------------------------
- * Function:    H5FD_gass_write
- *
- * Purpose:     Writes SIZE bytes of data to FILE beginning at address ADDR
- *              from buffer BUF.
- *
- * Return:      Success:        Zero
- *
- *              Failure:        -1
- *
- * Programmer:  Saurabh Bagchi
- *              Tuesday, August 17, 1999
- *
- * Modifications:
- *
- *-------------------------------------------------------------------------
- */
-static herr_t
-H5FD_gass_write(H5FD_t *_file, H5FD_mem_t type, hid_t dxpl_id/*unused*/, haddr_t addr,
-                size_t size, const void *buf)
-{
-    H5FD_gass_t         *file = (H5FD_gass_t*)_file;
-    ssize_t             nbytes;
-    herr_t      ret_value=SUCCEED;       /* Return value */
-
-    FUNC_ENTER_NOAPI(H5FD_gass_write, FAIL)
-
-    assert(file && file->pub.cls);
-    assert(buf);
-
-    /* Check for overflow conditions */
-    if (HADDR_UNDEF==addr)
-        HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL, "addr undefined")
-    if (REGION_OVERFLOW(addr, size))
-        HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr too large")
-    if (addr+size>file->eoa)
-        HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr too large")
-
-    /* Seek to the correct location */
-    if ((addr!=file->pos || OP_WRITE!=file->op) &&
-            file_seek(file->fd, (file_offset_t)addr, SEEK_SET)<0) {
-        file->pos = HADDR_UNDEF;
-        file->op = OP_UNKNOWN;
-        HGOTO_ERROR(H5E_IO, H5E_SEEKERROR, FAIL, "gass file seek failed")
-    }
-
-    /*
-     * Write the data, being careful of interrupted system calls and partial
-     * results
-     */
-    while (size>0) {
-        do
-            nbytes = write(file->fd, buf, size);
-        while (-1==nbytes && EINTR==errno);
-
-        if (-1==nbytes) {
-            /* error */
-            file->pos = HADDR_UNDEF;
-            file->op = OP_UNKNOWN;
-            HGOTO_ERROR(H5E_IO, H5E_WRITEERROR, FAIL, "gass file write failed")
-        }
-        assert(nbytes>0);
-        assert(nbytes<=size);
-        size -= (hsize_t)nbytes;
-        addr += (haddr_t)nbytes;
-        buf = (const char*)buf + nbytes;
-    }
-
-    /* Update current position and eof */
-    file->pos = addr;
-    file->op = OP_WRITE;
-    if (file->pos>file->eof)
-        file->eof = file->pos;
-
-done:
-    FUNC_LEAVE_NOAPI(ret_value)
-}
-
-#endif  /* H5_HAVE_GASS */
diff --git a/src/H5FDgass.h b/src/H5FDgass.h
deleted file mode 100644
index 1d599a0..0000000
--- a/src/H5FDgass.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Copyright by the Board of Trustees of the University of Illinois.         *
- * All rights reserved.                                                      *
- *                                                                           *
- * This file is part of HDF5.  The full HDF5 copyright notice, including     *
- * terms governing use, modification, and redistribution, is contained in    *
- * the files COPYING and Copyright.html.  COPYING can be found at the root   *
- * of the source code distribution tree; Copyright.html can be found at the  *
- * root level of an installed copy of the electronic HDF5 document set and   *
- * is linked from the top-level documents page.  It can also be found at     *
- * http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html.  If you do not have     *
- * access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/*
- * Programmer:  Saurabh Bagchi <bagchi@uiuc.edu>
- *              Tuesday, August 17, 1999
- *
- * Purpose:	The public header file for the gass driver.
- */
-#ifndef H5FDgass_H
-#define H5FDgass_H
-
-#include "H5FDpublic.h"
-#include "H5Ipublic.h"
-
-#include <string.h>
-
-#ifdef H5_HAVE_GASS 
-#define H5FD_GASS        (H5FD_gass_init())
-#else
-#define H5FD_GASS        (-1)
-#endif   
-
-#ifdef H5_HAVE_GASS
-/* Define the GASS info object. (Will be added to later as more GASS
-   functionality is sought to be exposed. */
-typedef struct GASS_Info {
-  unsigned long block_size;
-  unsigned long max_length;
-} GASS_Info;
-
-#define GASS_INFO_NULL(v) memset((void *)&v, 0, sizeof(GASS_Info));
-/*
-  GASS_Info zzGassInfo = {0L,0L};
-  #define GASS_INFO_NULL zzGassInfo
-*/
-#endif
-
-/* Function prototypes */
-#ifdef H5_HAVE_GASS
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-hid_t H5FD_gass_init(void);
-void H5FD_gass_term(void);
-herr_t H5Pset_fapl_gass(hid_t fapl_id, GASS_Info info);
-herr_t H5Pget_fapl_gass(hid_t fapl_id, GASS_Info *info/*out*/);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-#endif /* H5FDgass_H */
-
diff --git a/src/H5public.h b/src/H5public.h
index a5969d4..02a7f17 100644
--- a/src/H5public.h
+++ b/src/H5public.h
@@ -56,11 +56,6 @@
 #endif
 #endif
 
-#ifdef H5_HAVE_GASS             /*for Globus GASS I/O                        */
-#include "globus_common.h"
-#include "globus_gass_file.h"
-#endif
-
 #ifdef H5_HAVE_SRB              /*for SRB I/O                                */
 #include <srbClient.h>
 #endif
diff --git a/src/Makefile.am b/src/Makefile.am
index b0efbbd..08e7364 100755
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -43,7 +43,7 @@ libhdf5_la_SOURCES= H5.c H5A.c H5AC.c H5B.c H5B2.c H5B2cache.c H5B2dbg.c      \
         H5Dcompact.c \
         H5Defl.c H5Dio.c H5Distore.c H5Dmpio.c H5Dselect.c H5Dtest.c H5E.c H5F.c \
         H5Fdbg.c H5FD.c H5FDcore.c  \
-        H5FDfamily.c H5FDfphdf5.c H5FDgass.c H5FDlog.c H5FDmpi.c H5FDmpio.c   \
+        H5FDfamily.c H5FDfphdf5.c H5FDlog.c H5FDmpi.c H5FDmpio.c   \
         H5FDmpiposix.c H5FDmulti.c H5FDsec2.c H5FDsrb.c H5FDstdio.c           \
         H5FDstream.c H5FL.c H5FO.c H5FP.c H5FPclient.c H5FPserver.c H5FS.c    \
         H5G.c H5Gent.c H5Gnode.c H5Gstab.c  \
@@ -65,7 +65,7 @@ libhdf5_la_SOURCES= H5.c H5A.c H5AC.c H5B.c H5B2.c H5B2cache.c H5B2dbg.c      \
 include_HEADERS =H5public.h H5Apublic.h H5ACpublic.h H5Bpublic.h H5B2public.h \
         H5Cpublic.h H5Dpublic.h  \
         H5Epubgen.h H5Epublic.h H5Fpublic.h H5FDpublic.h H5FDcore.h H5FDfamily.h          \
-        H5FDfphdf5.h H5FDgass.h H5FDlog.h H5FDmpi.h H5FDmpio.h H5FDmpiposix.h              \
+        H5FDfphdf5.h H5FDlog.h H5FDmpi.h H5FDmpio.h H5FDmpiposix.h              \
         H5FDmulti.h H5FDsec2.h H5FDsrb.h H5FDstdio.h H5FDstream.h H5FPpublic.h             \
         H5Gpublic.h H5HGpublic.h H5HLpublic.h H5Ipublic.h                     \
         H5MMpublic.h H5Opublic.h H5Ppublic.h H5Rpublic.h H5Spublic.h          \
diff --git a/src/Makefile.in b/src/Makefile.in
index dc0442b..ee04b92 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -213,7 +213,7 @@ libhdf5_la_SOURCES = H5.c H5A.c H5AC.c H5B.c H5B2.c H5B2cache.c H5B2dbg.c      \
         H5Dcompact.c \
         H5Defl.c H5Dio.c H5Distore.c H5Dmpio.c H5Dselect.c H5Dtest.c H5E.c H5F.c \
         H5Fdbg.c H5FD.c H5FDcore.c  \
-        H5FDfamily.c H5FDfphdf5.c H5FDgass.c H5FDlog.c H5FDmpi.c H5FDmpio.c   \
+        H5FDfamily.c H5FDfphdf5.c H5FDlog.c H5FDmpi.c H5FDmpio.c   \
         H5FDmpiposix.c H5FDmulti.c H5FDsec2.c H5FDsrb.c H5FDstdio.c           \
         H5FDstream.c H5FL.c H5FO.c H5FP.c H5FPclient.c H5FPserver.c H5FS.c    \
         H5G.c H5Gent.c H5Gnode.c H5Gstab.c  \
@@ -235,7 +235,7 @@ libhdf5_la_SOURCES = H5.c H5A.c H5AC.c H5B.c H5B2.c H5B2cache.c H5B2dbg.c      \
 include_HEADERS = H5public.h H5Apublic.h H5ACpublic.h H5Bpublic.h H5B2public.h \
         H5Cpublic.h H5Dpublic.h  \
         H5Epubgen.h H5Epublic.h H5Fpublic.h H5FDpublic.h H5FDcore.h H5FDfamily.h          \
-        H5FDfphdf5.h H5FDgass.h H5FDlog.h H5FDmpi.h H5FDmpio.h H5FDmpiposix.h              \
+        H5FDfphdf5.h H5FDlog.h H5FDmpi.h H5FDmpio.h H5FDmpiposix.h              \
         H5FDmulti.h H5FDsec2.h H5FDsrb.h H5FDstdio.h H5FDstream.h H5FPpublic.h             \
         H5Gpublic.h H5HGpublic.h H5HLpublic.h H5Ipublic.h                     \
         H5MMpublic.h H5Opublic.h H5Ppublic.h H5Rpublic.h H5Spublic.h          \
@@ -281,8 +281,8 @@ am_libhdf5_la_OBJECTS = H5.lo H5A.lo H5AC.lo H5B.lo H5B2.lo H5B2cache.lo \
 	H5B2dbg.lo H5B2test.lo H5C.lo H5D.lo H5Dcontig.lo H5Dcompact.lo \
 	H5Defl.lo H5Dio.lo H5Distore.lo H5Dmpio.lo H5Dselect.lo \
 	H5Dtest.lo H5E.lo H5F.lo H5Fdbg.lo H5FD.lo H5FDcore.lo \
-	H5FDfamily.lo H5FDfphdf5.lo H5FDgass.lo H5FDlog.lo H5FDmpi.lo \
-	H5FDmpio.lo H5FDmpiposix.lo H5FDmulti.lo H5FDsec2.lo H5FDsrb.lo \
+	H5FDfamily.lo H5FDfphdf5.lo H5FDlog.lo H5FDmpi.lo H5FDmpio.lo \
+	H5FDmpiposix.lo H5FDmulti.lo H5FDsec2.lo H5FDsrb.lo \
 	H5FDstdio.lo H5FDstream.lo H5FL.lo H5FO.lo H5FP.lo \
 	H5FPclient.lo H5FPserver.lo H5FS.lo H5G.lo H5Gent.lo H5Gnode.lo \
 	H5Gstab.lo H5HG.lo H5HGdbg.lo H5HL.lo H5HLdbg.lo H5HP.lo H5I.lo \
@@ -327,9 +327,8 @@ am__depfiles_maybe = depfiles
 @AMDEP_TRUE@	./$(DEPDIR)/H5Dtest.Plo ./$(DEPDIR)/H5E.Plo \
 @AMDEP_TRUE@	./$(DEPDIR)/H5F.Plo ./$(DEPDIR)/H5FD.Plo \
 @AMDEP_TRUE@	./$(DEPDIR)/H5FDcore.Plo ./$(DEPDIR)/H5FDfamily.Plo \
-@AMDEP_TRUE@	./$(DEPDIR)/H5FDfphdf5.Plo ./$(DEPDIR)/H5FDgass.Plo \
-@AMDEP_TRUE@	./$(DEPDIR)/H5FDlog.Plo ./$(DEPDIR)/H5FDmpi.Plo \
-@AMDEP_TRUE@	./$(DEPDIR)/H5FDmpio.Plo \
+@AMDEP_TRUE@	./$(DEPDIR)/H5FDfphdf5.Plo ./$(DEPDIR)/H5FDlog.Plo \
+@AMDEP_TRUE@	./$(DEPDIR)/H5FDmpi.Plo ./$(DEPDIR)/H5FDmpio.Plo \
 @AMDEP_TRUE@	./$(DEPDIR)/H5FDmpiposix.Plo \
 @AMDEP_TRUE@	./$(DEPDIR)/H5FDmulti.Plo ./$(DEPDIR)/H5FDsec2.Plo \
 @AMDEP_TRUE@	./$(DEPDIR)/H5FDsrb.Plo ./$(DEPDIR)/H5FDstdio.Plo \
@@ -495,7 +494,6 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5FDcore.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5FDfamily.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5FDfphdf5.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5FDgass.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5FDlog.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5FDmpi.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5FDmpio.Plo@am__quote@
diff --git a/src/hdf5.h b/src/hdf5.h
index bd96917..05d49c7 100644
--- a/src/hdf5.h
+++ b/src/hdf5.h
@@ -44,7 +44,6 @@
 /* Predefined file drivers */
 #include "H5FDcore.h"		/* Files stored entirely in memory	*/
 #include "H5FDfamily.h"		/* File families 			*/
-#include "H5FDgass.h"		/* Remote files using GASS I/O		*/
 #include "H5FDlog.h"        	/* sec2 driver with I/O logging (for debugging) */
 #include "H5FDmpi.h"            /* MPI-based file drivers		*/
 #include "H5FDmulti.h"		/* Usage-partitioned file family	*/
diff --git a/src/hdf5.lnt b/src/hdf5.lnt
index b67abc0..ecb9964 100755
--- a/src/hdf5.lnt
+++ b/src/hdf5.lnt
@@ -92,7 +92,6 @@
     macros cleaned up, but have not been linted
     due to their dependencies on features that we don't support on Windows:
         H5FDfphdf5.c
-        H5FDgass.c
         H5FDmpio.c
         H5FDmpiposix.c
         H5FDsrb.c
diff --git a/test/Makefile.am b/test/Makefile.am
index 6e03e3d..9744c54 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -30,7 +30,7 @@ check_SCRIPTS = $(TEST_SCRIPT)
 # executed, generally most specific tests to least specific tests.
 TEST_PROG=testhdf5 lheap ohdr stab gheap cache hyperslab istore bittests     \
            dtypes dsets cmpd_dset extend external links unlink big mtime     \
-           fillval mount flush1 flush2 enum gass_write gass_read gass_append \
+           fillval mount flush1 flush2 enum \
            set_extent srb_write srb_append srb_read ttsafe stream_test       \
            getname file_handle ntypes dangle dtransform filename reserved    \
            btree2
diff --git a/test/Makefile.in b/test/Makefile.in
index fd638c9..568488b 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -200,7 +200,7 @@ check_SCRIPTS = $(TEST_SCRIPT)
 # executed, generally most specific tests to least specific tests.
 TEST_PROG = testhdf5 lheap ohdr stab gheap cache hyperslab istore bittests     \
            dtypes dsets cmpd_dset extend external links unlink big mtime     \
-           fillval mount flush1 flush2 enum gass_write gass_read gass_append \
+           fillval mount flush1 flush2 enum \
            set_extent srb_write srb_append srb_read ttsafe stream_test       \
            getname file_handle ntypes dangle dtransform filename reserved    \
            btree2
@@ -283,8 +283,7 @@ check_PROGRAMS = testhdf5$(EXEEXT) lheap$(EXEEXT) ohdr$(EXEEXT) \
 	dsets$(EXEEXT) cmpd_dset$(EXEEXT) extend$(EXEEXT) \
 	external$(EXEEXT) links$(EXEEXT) unlink$(EXEEXT) big$(EXEEXT) \
 	mtime$(EXEEXT) fillval$(EXEEXT) mount$(EXEEXT) flush1$(EXEEXT) \
-	flush2$(EXEEXT) enum$(EXEEXT) gass_write$(EXEEXT) \
-	gass_read$(EXEEXT) gass_append$(EXEEXT) set_extent$(EXEEXT) \
+	flush2$(EXEEXT) enum$(EXEEXT) set_extent$(EXEEXT) \
 	srb_write$(EXEEXT) srb_append$(EXEEXT) srb_read$(EXEEXT) \
 	ttsafe$(EXEEXT) stream_test$(EXEEXT) getname$(EXEEXT) \
 	file_handle$(EXEEXT) ntypes$(EXEEXT) dangle$(EXEEXT) \
@@ -386,21 +385,6 @@ flush2_OBJECTS = flush2.$(OBJEXT)
 flush2_LDADD = $(LDADD)
 flush2_DEPENDENCIES = libh5test.la $(top_builddir)/src/libhdf5.la
 flush2_LDFLAGS =
-gass_append_SOURCES = gass_append.c
-gass_append_OBJECTS = gass_append.$(OBJEXT)
-gass_append_LDADD = $(LDADD)
-gass_append_DEPENDENCIES = libh5test.la $(top_builddir)/src/libhdf5.la
-gass_append_LDFLAGS =
-gass_read_SOURCES = gass_read.c
-gass_read_OBJECTS = gass_read.$(OBJEXT)
-gass_read_LDADD = $(LDADD)
-gass_read_DEPENDENCIES = libh5test.la $(top_builddir)/src/libhdf5.la
-gass_read_LDFLAGS =
-gass_write_SOURCES = gass_write.c
-gass_write_OBJECTS = gass_write.$(OBJEXT)
-gass_write_LDADD = $(LDADD)
-gass_write_DEPENDENCIES = libh5test.la $(top_builddir)/src/libhdf5.la
-gass_write_LDFLAGS =
 getname_SOURCES = getname.c
 getname_OBJECTS = getname.$(OBJEXT)
 getname_LDADD = $(LDADD)
@@ -530,28 +514,26 @@ am__depfiles_maybe = depfiles
 @AMDEP_TRUE@	./$(DEPDIR)/extend.Po ./$(DEPDIR)/external.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/file_handle.Po ./$(DEPDIR)/filename.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/fillval.Po ./$(DEPDIR)/flush1.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/flush2.Po ./$(DEPDIR)/gass_append.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/gass_read.Po ./$(DEPDIR)/gass_write.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/getname.Po ./$(DEPDIR)/gheap.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/h5test.Plo ./$(DEPDIR)/hyperslab.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/istore.Po ./$(DEPDIR)/lheap.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/links.Po ./$(DEPDIR)/mount.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/mtime.Po ./$(DEPDIR)/ntypes.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/ohdr.Po ./$(DEPDIR)/reserved.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/set_extent.Po ./$(DEPDIR)/srb_append.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/srb_read.Po ./$(DEPDIR)/srb_write.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/stab.Po ./$(DEPDIR)/stream_test.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/tarray.Po ./$(DEPDIR)/tattr.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/tconfig.Po ./$(DEPDIR)/testframe.Plo \
-@AMDEP_TRUE@	./$(DEPDIR)/testhdf5.Po ./$(DEPDIR)/testmeta.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/tfile.Po ./$(DEPDIR)/tgenprop.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/th5s.Po ./$(DEPDIR)/theap.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/tid.Po ./$(DEPDIR)/titerate.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/tmeta.Po ./$(DEPDIR)/tmisc.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/trefer.Po ./$(DEPDIR)/trefstr.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/tselect.Po ./$(DEPDIR)/tskiplist.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/ttime.Po ./$(DEPDIR)/ttsafe.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/ttsafe_acreate.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/flush2.Po ./$(DEPDIR)/getname.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/gheap.Po ./$(DEPDIR)/h5test.Plo \
+@AMDEP_TRUE@	./$(DEPDIR)/hyperslab.Po ./$(DEPDIR)/istore.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/lheap.Po ./$(DEPDIR)/links.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/mount.Po ./$(DEPDIR)/mtime.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/ntypes.Po ./$(DEPDIR)/ohdr.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/reserved.Po ./$(DEPDIR)/set_extent.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/srb_append.Po ./$(DEPDIR)/srb_read.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/srb_write.Po ./$(DEPDIR)/stab.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/stream_test.Po ./$(DEPDIR)/tarray.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/tattr.Po ./$(DEPDIR)/tconfig.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/testframe.Plo ./$(DEPDIR)/testhdf5.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/testmeta.Po ./$(DEPDIR)/tfile.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/tgenprop.Po ./$(DEPDIR)/th5s.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/theap.Po ./$(DEPDIR)/tid.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/titerate.Po ./$(DEPDIR)/tmeta.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/tmisc.Po ./$(DEPDIR)/trefer.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/trefstr.Po ./$(DEPDIR)/tselect.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/tskiplist.Po ./$(DEPDIR)/ttime.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/ttsafe.Po ./$(DEPDIR)/ttsafe_acreate.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/ttsafe_cancel.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/ttsafe_dcreate.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/ttsafe_error.Po ./$(DEPDIR)/ttst.Po \
@@ -568,14 +550,13 @@ CFLAGS = @CFLAGS@
 DIST_SOURCES = $(libh5test_la_SOURCES) big.c bittests.c btree2.c cache.c \
 	cmpd_dset.c dangle.c dsets.c dtransform.c dtypes.c enum.c \
 	err_compat.c error_test.c extend.c external.c file_handle.c \
-	filename.c fillval.c flush1.c flush2.c gass_append.c \
-	gass_read.c gass_write.c getname.c gheap.c hyperslab.c istore.c \
-	lheap.c links.c mount.c mtime.c ntypes.c ohdr.c reserved.c \
-	set_extent.c srb_append.c srb_read.c srb_write.c stab.c \
-	stream_test.c $(testhdf5_SOURCES) testmeta.c $(ttsafe_SOURCES) \
-	unlink.c
+	filename.c fillval.c flush1.c flush2.c getname.c gheap.c \
+	hyperslab.c istore.c lheap.c links.c mount.c mtime.c ntypes.c \
+	ohdr.c reserved.c set_extent.c srb_append.c srb_read.c \
+	srb_write.c stab.c stream_test.c $(testhdf5_SOURCES) testmeta.c \
+	$(ttsafe_SOURCES) unlink.c
 DIST_COMMON = Makefile.am Makefile.in
-SOURCES = $(libh5test_la_SOURCES) big.c bittests.c btree2.c cache.c cmpd_dset.c dangle.c dsets.c dtransform.c dtypes.c enum.c err_compat.c error_test.c extend.c external.c file_handle.c filename.c fillval.c flush1.c flush2.c gass_append.c gass_read.c gass_write.c getname.c gheap.c hyperslab.c istore.c lheap.c links.c mount.c mtime.c ntypes.c ohdr.c reserved.c set_extent.c srb_append.c srb_read.c srb_write.c stab.c stream_test.c $(testhdf5_SOURCES) testmeta.c $(ttsafe_SOURCES) unlink.c
+SOURCES = $(libh5test_la_SOURCES) big.c bittests.c btree2.c cache.c cmpd_dset.c dangle.c dsets.c dtransform.c dtypes.c enum.c err_compat.c error_test.c extend.c external.c file_handle.c filename.c fillval.c flush1.c flush2.c getname.c gheap.c hyperslab.c istore.c lheap.c links.c mount.c mtime.c ntypes.c ohdr.c reserved.c set_extent.c srb_append.c srb_read.c srb_write.c stab.c stream_test.c $(testhdf5_SOURCES) testmeta.c $(ttsafe_SOURCES) unlink.c
 
 all: all-am
 
@@ -661,15 +642,6 @@ flush1$(EXEEXT): $(flush1_OBJECTS) $(flush1_DEPENDENCIES)
 flush2$(EXEEXT): $(flush2_OBJECTS) $(flush2_DEPENDENCIES) 
 	@rm -f flush2$(EXEEXT)
 	$(LINK) $(flush2_LDFLAGS) $(flush2_OBJECTS) $(flush2_LDADD) $(LIBS)
-gass_append$(EXEEXT): $(gass_append_OBJECTS) $(gass_append_DEPENDENCIES) 
-	@rm -f gass_append$(EXEEXT)
-	$(LINK) $(gass_append_LDFLAGS) $(gass_append_OBJECTS) $(gass_append_LDADD) $(LIBS)
-gass_read$(EXEEXT): $(gass_read_OBJECTS) $(gass_read_DEPENDENCIES) 
-	@rm -f gass_read$(EXEEXT)
-	$(LINK) $(gass_read_LDFLAGS) $(gass_read_OBJECTS) $(gass_read_LDADD) $(LIBS)
-gass_write$(EXEEXT): $(gass_write_OBJECTS) $(gass_write_DEPENDENCIES) 
-	@rm -f gass_write$(EXEEXT)
-	$(LINK) $(gass_write_LDFLAGS) $(gass_write_OBJECTS) $(gass_write_LDADD) $(LIBS)
 getname$(EXEEXT): $(getname_OBJECTS) $(getname_DEPENDENCIES) 
 	@rm -f getname$(EXEEXT)
 	$(LINK) $(getname_LDFLAGS) $(getname_OBJECTS) $(getname_LDADD) $(LIBS)
@@ -759,9 +731,6 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fillval.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flush1.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flush2.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gass_append.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gass_read.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gass_write.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getname.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gheap.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/h5test.Plo@am__quote@
diff --git a/test/gass_append.c b/test/gass_append.c
deleted file mode 100644
index 5827a74..0000000
--- a/test/gass_append.c
+++ /dev/null
@@ -1,169 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Copyright by the Board of Trustees of the University of Illinois.         *
- * All rights reserved.                                                      *
- *                                                                           *
- * This file is part of HDF5.  The full HDF5 copyright notice, including     *
- * terms governing use, modification, and redistribution, is contained in    *
- * the files COPYING and Copyright.html.  COPYING can be found at the root   *
- * of the source code distribution tree; Copyright.html can be found at the  *
- * root level of an installed copy of the electronic HDF5 document set and   *
- * is linked from the top-level documents page.  It can also be found at     *
- * http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html.  If you do not have     *
- * access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/*
- * Programmer:  Saurabh Bagchi (bagchi@uiuc.edu)
- *              Wednesday, August 11, 1999.
- *
- * Modifications: Saurabh Bagchi (Aug 17, 1999)
- *                Modified to work with VFL (HDF51.3). 
- */
-
-/* Test the following functionality of the GASS driver. 
-   1. Open a remote file for append.
-   2. Create a new dataset within the file.
-   3. Create a local memory buffer to hold the data.
-   4. Write the local data to the remote dataset.
-*/
-#include "h5test.h"
-
-#ifndef H5_HAVE_GASS
-int main(void)
-{
-    printf("Test skipped because GASS driver not available\n");
-    return 0;
-}
-#else
-
-#ifdef hide
-
-#define URL    "ftp://gass:gass12@which/tmp/gass/junk.w"
-#define DATASETNAME "Int1Array"
-#define NX     5                      /* dataset dimensions */
-#define NY     6
-#define RANK   2
-
-int main (void)
-{
-
-  hid_t         fapl =-1, file;
-  hid_t         dataspace, datatype, dataset;
-  hsize_t       dimsf[2];
-  
-  herr_t        status = 0;
-  int           data[NX][NY];          /* data to write */
-  int           i, j;
-  GASS_Info     ginf;
-  
-  /* 
-   * Data  and output buffer initialization. 
-   */
-  for (j = 0; j < NX; j++) {
-    for (i = 0; i < NY; i++)
-      data[j][i] = i*i + j*j;
-  }     
-  /*
-   *  0   1  4  9 16 25 
-   *  1   2  5 10 17 26
-   *  4   5  8 13 20 29
-   *  9  10 13 18 25 34
-   * 16  17 20 25 32 41
-   */
-  
-  /* Create access property list and set the driver to GASS */
-  fapl = H5Pcreate (H5P_FILE_ACCESS);
-  if (fapl < 0) {
-    printf (" H5Pcreate failed. \n");
-    return -1;
-  }
- 
-  ginf.block_size = 0;
-  ginf.max_length =0;
-  /* ginf = GASS_INFO_NULL; */
-  
-  status = H5Pset_fapl_gass (fapl, ginf);
-  if (status < 0) {
-    printf ("H5Pset_fapl_gass failed. \n");
-    return -1;
-  }
-  
-  /*
-   * Open an existing file using H5F_ACC_RDWR access,
-   * and gass file access properties.
-   */
-  file = H5Fopen(URL, H5F_ACC_RDWR, fapl);
-  if (file < 0) {
-    printf ("H5Fopen failed. \n");
-    return -1;
-  }
-  
-  /*
-   * Describe the size of the array and create the data space for fixed
-   * size dataset. 
-   */
-  dimsf[0] = NX;
-  dimsf[1] = NY;
-    dataspace = H5Screate_simple(RANK, dimsf, NULL); 
-    if (dataspace < 0) {
-      printf ("H5Screate failed. \n");
-      return -1;
-    }
-
-    /* 
-     * Define datatype for the data in the file.
-     * We will store little endian INT numbers.
-     */
-    datatype = H5Tcopy(H5T_NATIVE_INT);
-    if (datatype < 0) {
-      printf ("H5Tcopy failed. \n");
-      return -1;
-    }
-    
-    status = H5Tset_order(datatype, H5T_ORDER_LE);
-    if (status < 0) {
-      printf ("H5Tset_order failed. \n");
-      return -1;
-    }
-
-    /*
-     * Create a new dataset within the file using defined dataspace and
-     * datatype and default dataset creation properties.
-     */
-    dataset = H5Dcreate(file, DATASETNAME, datatype, dataspace,
-			H5P_DEFAULT);
-    if (dataset < 0) {
-      printf ("H5Dcreate failed. \n");
-      return -1;
-    }
-
-    /*
-     * Write the data to the dataset using default transfer properties.
-     */
-    status = H5Dwrite(dataset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL,
-		      H5P_DEFAULT, data);
-    if (status < 0) {
-      printf ("H5Dwrite failed. \n");
-      return -1;
-    }
-
-    /*
-     * Close/release resources.
-     */
-    H5Sclose(dataspace);
-    H5Tclose(datatype);
-    H5Dclose(dataset);
-    H5Fclose(file);
-    H5Pclose(fapl);
-    
-    return 0;
-}     
-
-#else
-int main(void)
-{
-    printf("Test skipped because append depends on web server!\n");
-    return 0;
-}
-#endif   
-#endif
diff --git a/test/gass_read.c b/test/gass_read.c
deleted file mode 100644
index 4e6e1e1..0000000
--- a/test/gass_read.c
+++ /dev/null
@@ -1,212 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Copyright by the Board of Trustees of the University of Illinois.         *
- * All rights reserved.                                                      *
- *                                                                           *
- * This file is part of HDF5.  The full HDF5 copyright notice, including     *
- * terms governing use, modification, and redistribution, is contained in    *
- * the files COPYING and Copyright.html.  COPYING can be found at the root   *
- * of the source code distribution tree; Copyright.html can be found at the  *
- * root level of an installed copy of the electronic HDF5 document set and   *
- * is linked from the top-level documents page.  It can also be found at     *
- * http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html.  If you do not have     *
- * access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/*
- * Programmer:  Saurabh Bagchi (bagchi@uiuc.edu)
- *              Wednesday, August 11, 1999.
- *
- * Modifications: Saurabh Bagchi (Aug 17, 1999)
- *                Modified to work with VFL (HDF51.3).
- */
-
-/* Test the following functionality of the GASS driver. 
-   1. Open a remote file for read (the dataset was written using gass_write.c).
-   2. Create a memory buffer to hold the dataset.
-   3. Read the dataset into the memory buffer.
-   4. Get some information about the dataset from the file.
-*/
-#include "h5test.h"
-#include <string.h>
-
-#ifndef H5_HAVE_GASS
-int main(void)
-{
-    printf("Test skipped because GASS driver not available\n");
-    return 0;
-}
-#else
-
-/*#define URL    "ftp://gass:gass12@which/tmp/gass/junk.w"*/
-/*#define URL    "http://paz.ncsa.uiuc.edu:8080/test/a.h5"*/
-#define URL    "http://hdf.ncsa.uiuc.edu/GLOBUS/a.h5"
-/* #define DATASETNAME "Int1Array"  */
-#define NX_SUB  3           /* hyperslab dimensions */ 
-#define NY_SUB  4 
-#define NX 7           /* output buffer dimensions */ 
-#define NY 7 
-#define NZ  3 
-#define RANK         2
-#define RANK_OUT     3
-
-int
-main (int argc, char **argv)
-{
-    hid_t       fapl =  -1, file, dataset;         /* handles */
-    char        DATASETNAME[32];
-    hid_t       datatype, dataspace;   
-    hid_t       memspace; 
-    H5T_class_t class;                 /* data type class */
-    H5T_order_t order;                 /* data order */
-    size_t      size;                  /*
-				        * size of the data element	       
-				        * stored in file
-				        */
-    hsize_t     dimsm[3];              /* memory space dimensions */
-    hsize_t     dims_out[2];           /* dataset dimensions */      
-    herr_t      status;                             
-
-    int         data_out[NX][NY][NZ ]; /* output buffer */
-   
-    hsize_t      count[2];              /* size of the hyperslab in the file */
-    hssize_t     offset[2];             /* hyperslab offset in the file */
-    hsize_t      count_out[3];          /* size of the hyperslab in memory */
-    hssize_t     offset_out[3];         /* hyperslab offset in memory */
-    int          i, j, k, status_n, rank;
-    GASS_Info    ginf;
-    
-    if (argc > 2) {
-      printf ("Incorrect command line. \n");
-      printf ("Correct command line: %s [DATASET NAME] \n", argv[0]);
-      printf ("The two datasets present in the file are: \"IntArray\" and "
-	      "\"Int1Array\"\n");
-      exit(1);
-    }
-    
-    printf ("Correct command line: %s [DATASET NAME] \n", argv[0]);
-    printf ("The two datasets present in the file are: \"IntArray\" and "
-	    "\"Int1Array\"\n");
-    printf ("Default dataset is IntArray. \n");
-    
-    if (argc == 1) 
-      strcpy (DATASETNAME, "IntArray");
-    else if (!strcmp(argv[1],"IntArray") || !strcmp(argv[1],"Int1Array"))
-      strcpy (DATASETNAME, argv[1]);
-    else
-      strcpy (DATASETNAME, "IntArray");
-    printf ("\n Reading dataset %s \n\n", DATASETNAME);
-    
-    for (j = 0; j < NX; j++) {
-	for (i = 0; i < NY; i++) {
-	    for (k = 0; k < NZ ; k++)
-		data_out[j][i][k] = 0;
-	}
-    } 
- 
-     /* Create access property list and set the driver to GASS */
-    fapl = H5Pcreate (H5P_FILE_ACCESS);
-    if (fapl < 0) {
-      printf (" H5Pcreate failed. \n");
-      return -1;
-    }
-    
-   
-    ginf.block_size = 0;
-    ginf.max_length =0;
-   
-    /* ginf = GASS_INFO_NULL; */
-    
-    status = H5Pset_fapl_gass (fapl, ginf);
-    if (status < 0) {
-      printf ("H5Pset_fapl_gass failed. \n");
-      return -1;
-    }
-
-    /*
-     * Open the file and the dataset.
-     */
-    file = H5Fopen(URL, H5F_ACC_RDONLY, fapl);
-    dataset = H5Dopen(file, DATASETNAME);
-
-    /*
-     * Get datatype and dataspace handles and then query
-     * dataset class, order, size, rank and dimensions.
-     */
-    datatype  = H5Dget_type(dataset);     /* datatype handle */ 
-    class     = H5Tget_class(datatype);
-    if (class == H5T_INTEGER) printf("Data set has INTEGER type \n");
-    order     = H5Tget_order(datatype);
-    if (order == H5T_ORDER_LE) printf("Little endian order \n");
-
-    size  = H5Tget_size(datatype);
-    printf(" Data size is %d \n", size);
-
-    dataspace = H5Dget_space(dataset);    /* dataspace handle */
-    rank      = H5Sget_simple_extent_ndims(dataspace);
-    status_n  = H5Sget_simple_extent_dims(dataspace, dims_out, NULL);
-    printf("rank %d, dimensions %lu x %lu \n", rank,
-	   (unsigned long)(dims_out[0]), (unsigned long)(dims_out[1]));
-
-    /* 
-     * Define hyperslab in the dataset. 
-     */
-    offset[0] = 1;
-    offset[1] = 2;
-    count[0]  = NX_SUB;
-    count[1]  = NY_SUB;
-    status = H5Sselect_hyperslab(dataspace, H5S_SELECT_SET, offset, NULL, 
-				 count, NULL);
-
-    /*
-     * Define the memory dataspace.
-     */
-    dimsm[0] = NX;
-    dimsm[1] = NY;
-    dimsm[2] = NZ ;
-    memspace = H5Screate_simple(RANK_OUT,dimsm,NULL);   
-
-    /* 
-     * Define memory hyperslab. 
-     */
-    offset_out[0] = 3;
-    offset_out[1] = 0;
-    offset_out[2] = 0;
-    count_out[0]  = NX_SUB;
-    count_out[1]  = NY_SUB;
-    count_out[2]  = 1;
-    status = H5Sselect_hyperslab(memspace, H5S_SELECT_SET, offset_out, NULL, 
-				 count_out, NULL);
-
-    /*
-     * Read data from hyperslab in the file into the hyperslab in 
-     * memory and display.
-     */
-    status = H5Dread(dataset, H5T_NATIVE_INT, memspace, dataspace,
-		     H5P_DEFAULT, data_out);
-    for (j = 0; j < NX; j++) {
-	for (i = 0; i < NY; i++) printf("%d ", data_out[j][i][0]);
-	printf("\n");
-    }
-    /*
-     * 0 0 0 0 0 0 0
-     * 0 0 0 0 0 0 0
-     * 0 0 0 0 0 0 0
-     * 3 4 5 6 0 0 0  
-     * 4 5 6 7 0 0 0
-     * 5 6 7 8 0 0 0
-     * 0 0 0 0 0 0 0
-     */
-
-    /*
-     * Close/release resources.
-     */
-    H5Tclose(datatype);
-    H5Dclose(dataset);
-    H5Sclose(dataspace);
-    H5Sclose(memspace);
-    H5Fclose(file);
-    H5Pclose(fapl);
-    
-    return 0;
-}     
-#endif
diff --git a/test/gass_write.c b/test/gass_write.c
deleted file mode 100644
index 6017224..0000000
--- a/test/gass_write.c
+++ /dev/null
@@ -1,179 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Copyright by the Board of Trustees of the University of Illinois.         *
- * All rights reserved.                                                      *
- *                                                                           *
- * This file is part of HDF5.  The full HDF5 copyright notice, including     *
- * terms governing use, modification, and redistribution, is contained in    *
- * the files COPYING and Copyright.html.  COPYING can be found at the root   *
- * of the source code distribution tree; Copyright.html can be found at the  *
- * root level of an installed copy of the electronic HDF5 document set and   *
- * is linked from the top-level documents page.  It can also be found at     *
- * http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html.  If you do not have     *
- * access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/*
- * Programmer:  Saurabh Bagchi (bagchi@uiuc.edu)
- *              Friday, August 6, 1999.
- *
- * Modifications: Saurabh Bagchi (Aug 17, 1999)
- *                Modified to work with VFL (HDF51.3). 
- */
-
-/* Test the following functionality of the GASS driver. 
-   1. Open a remote file for write.
-   2. Create a new dataset within the file.
-   3. Create a local memory buffer to hold the data.
-   4. Write the local data to the remote dataset.
-*/
-#include "h5test.h"
-
-#ifndef H5_HAVE_GASS
-int main(void)
-{
-    printf("Test skipped because GASS driver not available\n");
-    return 0;
-}
-#else
-
-#ifdef hide
-
-/*#define URL    "ftp://gass:gass12@which/tmp/gass/junk.w"*/   
-#define URL    "http://paz.ncsa.uiuc.edu:8080/test/put/test/b.h5"
-
-#define DATASETNAME "IntArray"
-#define NX     5                      /* dataset dimensions */
-#define NY     6
-#define RANK   2
-
-int main (void)
-{
-
-  hid_t         fapl =-1, file;
-  hid_t         dataspace, datatype, dataset;
-  hsize_t       dimsf[2];
-  
-  herr_t        status = 0;
-  int           data[NX][NY];          /* data to write */
-  int           i, j;
-  GASS_Info     ginf;
-  
-  /* 
-   * Data  and output buffer initialization. 
-   */
-  for (j = 0; j < NX; j++) {
-    for (i = 0; i < NY; i++)
-      data[j][i] = i + j;
-  }     
-  /*
-   * 0 1 2 3 4 5 
-   * 1 2 3 4 5 6
-   * 2 3 4 5 6 7
-   * 3 4 5 6 7 8
-   * 4 5 6 7 8 9
-   */
-  
-  /* Create access property list and set the driver to GASS */
-  fapl = H5Pcreate (H5P_FILE_ACCESS);
-  if (fapl < 0) {
-    printf (" H5Pcreate failed. \n");
-    return -1;
-  }
- 
-  ginf.block_size = 0;
-  ginf.max_length =0;
-  /* ginf = GASS_INFO_NULL;*/
-    
-  status = H5Pset_fapl_gass (fapl, ginf);
-  if (status < 0) {
-    printf ("H5Pset_fapl_gass failed. \n");
-    return -1;
-  }
-  
-  /*
-   * Create a new file using H5F_ACC_TRUNC access,
-   * default file creation properties, and gass file
-   * access properties.
-   */
-  /*
-  // file = H5Fcreate(URL, H5F_ACC_TRUNC, H5P_DEFAULT, fapl);
-  // Works. Truncates existing files.
-  // file = H5Fcreate(URL, H5F_ACC_EXCL, H5P_DEFAULT, fapl);
-  // Works. Croaks if existing file, else creates.
-  // Any other flag has no effect as long as one and exactly one of TRUNC/
-  // EXCL is there */
-  /* printf ("I'm here just before H5Fcreate. \n");*/
-  file = H5Fcreate(URL, H5F_ACC_TRUNC, H5P_DEFAULT, fapl);
-  if (file < 0) {
-    printf ("H5Fcreate failed. \n");
-    return -1;
-  }
-  
-  /*
-     * Describe the size of the array and create the data space for fixed
-     * size dataset. 
-     */
-    dimsf[0] = NX;
-    dimsf[1] = NY;
-    dataspace = H5Screate_simple(RANK, dimsf, NULL); 
-    if (dataspace < 0) {
-      printf ("H5Screate failed. \n");
-      return -1;
-    }
-
-    /* 
-     * Define datatype for the data in the file.
-     * We will store little endian INT numbers.
-     */
-    datatype = H5Tcopy(H5T_NATIVE_INT);
-    if (datatype < 0) {
-      printf ("H5Tcopy failed. \n");
-      return -1;
-    }
-    
-    status = H5Tset_order(datatype, H5T_ORDER_LE);
-    if (status < 0) {
-      printf ("H5Tset_order failed. \n");
-      return -1;
-    }
-
-    /*
-     * Create a new dataset within the file using defined dataspace and
-     * datatype and default dataset creation properties.
-     */
-    dataset = H5Dcreate(file, DATASETNAME, datatype, dataspace,
-			H5P_DEFAULT);
-    if (dataset < 0) {
-      printf ("H5Dcreate failed. \n");
-      return -1;
-    }
-
-    /*
-     * Write the data to the dataset using default transfer properties.
-     */
-    status = H5Dwrite(dataset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL,
-		      H5P_DEFAULT, data);
-    if (status < 0) {
-      printf ("H5Dwrite failed. \n");
-      return -1;
-    }
-
-    /*
-     * Close/release resources.
-     */
-    H5Sclose(dataspace);
-    H5Tclose(datatype);
-    H5Dclose(dataset);
-    H5Fclose(file);
-    H5Pclose(fapl);
-    
-    return 0;
-}
-#else 
-int main(void)
-{
-    printf("Test skipped because writing depends on web server!\n");
-    return 0;
-}
-#endif  
-#endif
diff --git a/tools/h5dump/h5dump.c b/tools/h5dump/h5dump.c
index 637dd71..3ba8e9d 100644
--- a/tools/h5dump/h5dump.c
+++ b/tools/h5dump/h5dump.c
@@ -2538,10 +2538,6 @@ dump_fcpl(hid_t fid)
  {
   strcpy(dname,"H5FD_FAMILY");
  }
- else if (H5FD_GASS==fdriver)
- {
-  strcpy(dname,"H5FD_GASS");
- }
  else if (H5FD_LOG==fdriver)
  {
   strcpy(dname,"H5FD_LOG");
-- 
cgit v0.12