
                          HDF 4.2 Release 1-post*
                            February, 2005

INTRODUCTION

This document describes the differences between HDF 4.2r1 and
HDF 4.2r1-post*.  It is written for people who are familiar with
previous releases of HDF and wish to migrate to HDF 4.2r1

The HDF 4.2r1 documentation can be found on the NCSA ftp server 
(ftp.ncsa.uiuc.edu) in the directory:

     ftp://hdf.ncsa.uiuc.edu/HDF/Documentation/

First-time HDF users are encouraged to read the FAQ in this
release for more information about HDF.  Users can also look
at the home page for HDF at:

     http://hdf.ncsa.uiuc.edu/

If you have any questions or comments, please send them to:

     hdfhelp@ncsa.uiuc.edu

CONTENTS

- New Features and Changes
  -- Configuration
  -- Library
  -- Utilities
- Support for new platforms and compilers
- Bugs fixed since HDF4.2r1
- Documentation
- Platforms Tested
- Known problems

New Features and Changes:
========================
    Configuration
    ============= 
     
    Library
    ========= 
	- The current SDgetcompress and GRgetcompress have severe flaws.
	  Two new APIs, SDgetcompinfo and GRgetcompinfo, were added to 
	  provide better functionality and will replace SDgetcompress and
	  GRgetcompress, eventually. BMR - 2005/4/4
	- The following APIs were added; see "Bugs fixed" section for details.
		SDreset_maxopenfiles
		SDget_maxopenfiles
		SDget_numopenfiles
	  BMR - 2005/10/21
	- The API SDgetfilename was added to retrieve the name of a file, 
	  given the file id. BMR - 2005/10/21

    Utilities
    ========= 

Support for new platforms and compilers
=======================================


Bugs fixed since HDF4.2r1
=========================
	- Added the display of compression method to hdp dumpsds and dumpgr.
	  (bugzilla #130) BMR - 2005/4/4
	- Applied user's patch to fix bug #602 - BMR - 2005/4/23
	- Added a switch ('u') to ncdump to replace nonalpha-numerics 
	  characters with underscores.  Thus, the SDS names won't be
	  changed automatically unless the user requests. (bug #934)
	  BMR - 2005/7/17
	- In HDF4.2r0, SDwritedata failed when the SDS had rank=0 (bug #1045.)
	  This change was retracted, writing to SDS with rank=0 is allowed 
	  again.  BMR - 2005/8/23
	- SDgetdimscale incorrectly returns FAIL or returns incorrect
	  data when the associated SDS has the same name as the dimension.
	  The problem was fixed for multi-dimensional SDSs.  If the SDS has 
	  only one dimension, the results of subsequent assesses to the
	  dimension are still unpredictable.  BMR - 2005/8/23
	- Prior to this release, the maximum number of files that can be opened 
	  at the same time was only 32, and it was a defined constant in the
	  library, which users cannot change without recompiling the library.
	  In this release, if this limit is reached, the library will 
	  increase it to the system limit.  In addition, three APIs are 
	  added for more flexibility.  (bugzilla #396) BMR - 2005/10/21
		SDreset_maxopenfiles -- resets the maximum number of files 
			can be opened at a time.
		SDget_maxopenfiles -- retrieves the current number of opened 
			files allowed in HDF and the maximum number of opened 
			files allowed on a system.
		SDget_numopenfiles -- returns the number of files currently 
			being opened.
	  Note:
		Because there are also stdin, stdout, and stderr, the maximum
		limit that can be set must only be (system limit) - 3.
	- If a VSgetattr was called twice for an attribute, the second would
	  failed (bugzilla #486.)  This problem is fixed.  BMR - 2005/12/30
	- Allowing maximum number of opened files to be increased revealed
	  a problem, more than 255 files being opened will cause file
	  corruption (bugzilla #440.)  Specifically, file number (255*m)+n 
	  will overwrite file number n, where n is [0..255] and m is [1..p], 
	  where (255*p) <= maximum system allowed.  This problem is fixed.
	  In addition, a new API is added for convenience:
		SDgetfilename -- retrieves the name of the file given its ID.

Documentation
==============
   Documentation contains multiple bug fixes and improvements. 

Platforms Tested
================

HDF 4.2 Release 1 has been tested on the following platforms:

    AIX 5.1  (32 and 64-bit)      xlc 6.0.0.6
                                  xlf 8.1.1.6
    AIX 5.2  (32 and 64-bit)      xlc 6.0.0.8
                                  xlf 8.1.1.7
    Cray SV1 10.0.1.2             Cray Standard C Version 6.6.0.3.6
                                  Cray Fortran: Version 3.6.0.3.1
    Cray TS IEEE                  Cray Standard C Version 6.4.0.3
                                  Cray Fortran: Version 3.4.0.0

    FreeBSD 4.9                   gcc 2.95.4
                                  GNU Fortran 0.5.25 
    HP-UX B.11.00                 HP C  HP92453-01 A.11.01.20 
                                  HP F90 v2.4
                                  HP ANSI C++ B3910B A.03.13

    IRIX64 6.5 (64 & n32)         MIPSpro cc 7.3.1.3m
                                  F90 MIPSpro 7.3.1.3m 

    Linux 2.4.20.28               gcc 2.96, GNU Fortran 0.5.25,
                                  Absoft Fortran 9.0
                                  Intel(R) C++ and Fortran Compilers 
                                  Version 8.1
    Linux 2.4.21-268-smp #1 SMP x86_64 (AMD)
                                  gcc 3.3.1
                                  GNU Fortran (GCC) 3.3.1
                                  Intel(R) C++ and Fortran Compilers
                                  Version 8.1
                                  PGI C and Fortran Compilers Version 5.2-1
    Linux 2.4.21-27.0.1.ELsmp #1 SMP
                                  gcc 3.2.3
                                  PGI C and Fortran Compilers Version 5.2-1 

    Linux 2.4.21-sgi303rp05012313_10138 (Altix) 
                                  Intel C++ and Intel Fortran Verison 8.1
    
    Linux 2.4.20-31.9smp_perfctr_lustre (IA-32)
                                  Intel(R) C++ Version 8.0
                                  Intel(R) Fortran Compiler Version 8.0
    Linux 2.4.21.SuSE_241.bef1 (IA-64)
                                  Intel(R) C++ Version 8.0
                                  Intel(R) Fortran Compiler Version 8.0
   
    OSF1 V5.1                     Compaq C V6.5-303 
				  HP Fortran V5.5A-3548
                                  HP Fortran Compiler X5.5A-4085-48E1K

    SunOS 5.7(32 and 64 bit)      WorkShop Compilers 5.0 98/12/15 C 5.0
     (Solaris 2.7)                
                                  WorkShop Compilers 5.0 99/09/16 FORTRAN 77 5.0 patch 107596-03
                                  gcc 3.2.2
                                  g77 GNU Fortran (GCC 3.2.2) 3.2.2 
    SunOS 5.8(32 and 64 bit)      Sun WorkShop 6 update 2 C 5.3
     (Solaris 2.8)                Sun WorkShop 6 update 2 Fortran 77 5.3 

    SunOS 5.9 (32 and 64 bit)     Sun C 5.6 compiler, Sun Fortran 95 8.0

    Windows 2000 (NT5.0)          MSVC++ 6.0
                                  DEC Visual Fortran 6.0
                                  Intel C and F90 compilers version 7.1
    Windows XP                    MSVC++.NET, Intel Fortran 8.1 (static libraries only)
    MAC OS X Darwin 7.7           gcc  3.3
                                  IBM Fortran xlf 8.1
                                  Absoft Fortran 8.2
                                  
                                  

Known problems
==============

o  SZIP Library is not available for Crays SV1 and TS
   Fortran APIs do not support SZIP compression.

o SZIP compression cannot be used with GR interfaces. For more information
  see "HDF4.2r1 SZIP Release Notes" available at 
  http://hdf.ncsa.uiuc.edu/doc_resource/SZIP/SZIP_HDF4_2r1.pdf

o  This release doesn't support VMS system.

o  N-Bit compression is not supported with Fortran APIs.

o  Using both fill-value and compression on SD datasets doesn't work.

o  When a one-dimensional SDS has the same name as the dimension, subsequent
   accesses to the dimension produce unpredictable results.

o  When using PGI compilers make sure that JPEG library is also compiled with 
   PGI C compiler; linking with JPEG built with gcc causes JPEG library tests
   to fail.  To bypass the problem

       x Set LIBS flag to $PGI_JPEG_INSTALL_DIR/lib/libjpeg.a
          where $PGI_JPEG_INSTALL_DIR points to the installtion directory
          for the PGI-compiled JPEG library:

          setenv LIBS $PGI_JPEG_INSTALL_DIR/lib/libjpeg.a

       x Use  --with-jpeg=$PGI_JPEG_INSTALL_DIR
         configure flag to configure with the PGI-compiled JPEG library:

          ./configure --with-jpeg=$PGI_JPEG_INSTALL_DIR --with-zlib....
