HDF4.0r2
========
1. SDstart (<non-existent file>, DFACC_RDWR) no longer fails.
   It will create a file now.
2. When appending compressed data onto the end of an unlimited
   dimension SDS, the SD interface no longer writes the fill-
   values in locations where they will immediately be over-
   written by data.
3. dfkcray.c, IEG2JPEG and JPEG2IEG do not work if the foreign
   data does not start from the 64-bit boundary.
4. On IRIX 6.1 with -n32,  hdf/test/comp.c gave error messages.
   Fix: Not to use '-O' option (for now).
5. Problem when running 'make test' on UNICOS has been fixed
   (bug was in hdf/util/he_main.c).
6. The RIG tag was not getting written out when creating a
   GR object, so you couldn't view it with "hdp list". The hdp
   command has been updated.

HDF4.0r1p1
==========
1. Fixed a bug in SDS interface which caused a wrong
   number of records for UNLIMITED dimensions when 
   ncsync was called to write data to hdf files. 
2. A bug has been fixed in the UNLIMITED dimension record 
   to improve backward compatibility.
3. Parameter 'class' in vffndcls() has been changed to 
   'vgclass' to avoid conflicts with C++ reserved word 
   'class'.

HDF4.0r1
========
1. Fixed Fortran character string handling under UNICOS. 
2. Added checks on the return values of HDmalloc calls. 
3. The automatic test of hdf utilities (in hdf/util/) 
   is added to the Makefile and will be executed by 
   'make test' at the top level. 
4. Thanks to Mark W. Dalton for his contribution to the fix
   of the adaptive Huffman compression on the CRAY YMP. 
   His fix is merged into 4.0r1.
5. Added check in SDsetattr() to make sure that the argument 
   'count' < MAX_ORDER.

HDF4.0b2
========
1. To avoid conflicts with C++, field name 'new' in vgroup_desc 
   of vg.h is changed to 'new_vg', and in accrec_t 'new' of 
   hfile.h is changed to 'new_elem'.
2. Fixed the max number of fields of vdata in vparse.c, vshow.c 
   and show.c (in mfhdf/dumper/). Now vshow and hdp can dump
   VSFIELDMAX number of fields. 
3. Fixed platform number subclass problem when external data file was
   written in Little_endian format (IBM-PC). 
4. Fixed the core-dump on some machines when writing large number of 
   big SDS by holding the buffer instead of freeing it every time.
5. The max number of files which can be open at one time was defined
   in hdf.h, hfile.h and netcdf.h. Now there is only one definition
   by MAX_FILE in hdf/src/hlimits.h.
6. A bug in SDsetnbitdataset is fixed. 
7. Uninitialized memory reads in SDIputattr and hdf_create_dim_vdata
    are fixed. 

HDF4.0b1
========
1. Added support to unsigned integers for attributes.
2. Bug fixed in SDsetdimscale if dim strings or other attributes already
   assigned to that dimension and if the size of the number type
   is not 4 bytes. 
3. Bug fixed in SDgetdimscale.  For dimensions that have no dim scale 
   SDgetdimscale now returns 0 for nt to indicate that  no-scale was assigned.
4. Several buffers allocated by Hxxxx, SDxxxx, and VSxxxx functions were 
   used through the entire excecution time of HDF application programs.
   In previous releases those buffers were not freed by HDF. Some debugging 
   tools list those buffers as memory leaks. In HDF4.0b1 those buffers are freed
   by HDF when the programs exit. The fix doesn't work on SunOS.  
5. Added Fortran version of VSQueryxxxx and VSfind:
     vsqfnelt -- VSQuerycount
     vsqfintr -- VSQueryinterlace
     vsqfflds -- VSQueryfields
     vsqfvsiz -- VSQuerysize
     vsqfname -- VSQueryname
     vsffnd   -- VSfind
6.  SDsetdimscale () did not set scales for unlimited dimension. 
    After appending records to the unlimited dimension, the number of 
    records was not updated.  The bug is fixed. 
7.  In previous releases, the Vdata interface couldn't define more than 36 
    fields even though VSFIELDMAX was defined as 64 in hdf.h. 
    The bug is fixed. Now the maximum number of fields is decided by
    VSFIELDMAX. 
8.  The Fortran function sfgdinfo now returns nattr correctly.
9.  hdfrseq is moved out from the HDF release. It is now available on the NCSA
    ftp server in directory: /HDF/contrib/NCSA/hdfrseq/.
10. If the same file is accessed twice with DFSDputdata (i.e. the file 
    is first destroyed), the first call to DFANputlabel after the second 
    call to DFSDputdata fails. To fix this problem, a new function 
    DFANclear has been added. 
    -----------------------------------------------------------------
    Name:    DFANclear
    Purpose: Clear DFAN interface
    Inputs:  void
    Returns: SUCCEED if ok; FAIL otherwise.
    Remarks: When a file is re-created in a single run, user should
             call DFANclear() before the file is re-created to reset DFAN 
             interface structures.
    Example: 
             main()
             {
                  int ret;
                  dump(0);  /* DFSDputdata("myfile.hdf",...) is called  */
                            /* in dump() to create myfile.hdf  */
                  ret = DFANclear();
                  dump(1);  /* DFSDputdata("myfile.hdf",...) is called  */
                            /* again to re-create a file with the same  */
                            /* name myfile.hdf  */
             }

11. A bug is fixed in SDgetcal, which failed in getting number_type from 
    old hdf files, created by DFSDxxxx calls.  
12. hdf.inc missing constants and commas
13. HDgettagname() can't recognize DFTAG_FV and DFTAG_COMPRESSED
    in hkit.c  
14. fp2hdf is back in hdf/util/.

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

Known problems:
1. Need Fortran version of VFfieldxxxx functions.
2. Need an easy way to append to a vdata. One solution would be 
   to make all FULL_INTERLACE vdatas appendable.
3. Need a high level function to create external Vdata, similar to 
   SDsetexternalfile(). 
4. SDxxxx interface creates dummy values for dimension records. 
   For multi-dimensional SDS this isn't too bad. However, for 
   1-D SDS it doubles the size of the file. 
