
                          HDF 4.2 Release 3
                          =================
                          January 28, 2008

INTRODUCTION

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

The HDF 4.2r3 documentation can be found on the THG ftp server:

     ftp://ftp.hdfgroup.org/HDF/Documentation/

First-time HDF users are encouraged to read the HDF FAQ, which can be
reached from the HDF product home page:
  
     http://hdfgroup.org/products/hdf4/

If you have any questions or comments, please see the HDF Support page:

     http://hdfgroup.org/services/support.html

CONTENTS

- New features and changes
  -- Configuration
  -- Library
  -- Utilities
- Support for new platforms and compilers
- Bugs fixed since HDF4.2r2
  -- Utilities
  -- Library
  -- Configuration
- Documentation
- Platforms tested
- Known problems


New features and changes
========================
    Configuration
    ============= 
    None 

    Library
    ========= 

	- Modified the HDF4 mfhdf library and configure to work in the 
	  absence of the NetCDF-3 header files when the HDF4 library 
	  is configured with the --disable-netcdf flag. This feature is 
	  required when building the ESDIS Toolkit in the presence of the
	  NetCDF-3 library. In this case, the HDF4 file netcdf.h is used 
	  to build the HDF4 libraries and is installed under the name 
	  "hdf4_netcdf.h" to avoid a name clash with the NetCDF-3 file 
	  netcdf.h.
							EIP 2007-10-30

	- Note that the previous change to SDnametoindex was backed out.  It 
	  only returns the first variable of the requested name, as did the 
	  original version of this function.  The variable can be an SDS or 
	  a coordinate variable.  With this behavior, if there is more than
	  one variable with the same name in the file, care must be taken to
	  retrieve the desired variable.  Please see new APIs in the next 
	  item for a way to handle non-uniquely named variables.  The behavior 
	  of SDnametoindex will be documented in FAQs, documentation, and the
	  newsletter.
							BMR 2008-01-17

	- Added new APIs to SD interface:
	  + SDgetnumvars_byname: Given a name, returns the number of 
	    variables in a file with that same name.
	  + SDnametoindices: Given a name, returns a list of indices of 
	    all the variables in a file with that same name.
	  With these new APIs, users can determine when an SDS name or 
	  a coordinate variable's name is not unique, retrieve the named 
	  variables, and examine them.
							BMR 2008-01-17

    Utilities
    ========= 
        None 


Support for new platforms and compilers
=======================================
        
    Support for Windows XP 64-bit with Visual Studio 2005 and 
    Intel Fortran compiler was added. 

Bugs fixed since HDF4.2r2
=========================
    Utilities
    ========= 
        None

    Library
    ========= 
        None

    Configuration
    ============= 
       - libhdf4.settings file was not installed by make install command;
         fixed
                                                         EIP, 2007-10-09


Documentation
==============
     Descriptions of the new functions SDgetnumvars_byname and SDnametoindices
     have been added to the documentation. 


Platforms tested
================

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

                                  
    AIX 5.2 (32/64 bit)           xlc 8.0.0.11
    (datstar)                     xlf 10.01.0000.0002

    FreeBSD 6.2 (32- and 64-bit)  gcc  and f77 GNU 3.4.6
    (duty and liberty)            GNU Fortran (GCC) 4.2.3 20080123 

    IRIX64 6.5                    MIPSpro cc 7.4.4m
    (ucar mop1 64 & n32)          F90 MIPSpro 7.4.4m 

    Linux 2.4.21-47.ELsmp #1 SMP  gcc and g77 3.2.3
        i686 i386 GNU/Linux
    (osage)

    Linux 2.6.9-42.0.10.ELsmp #1  gcc (GCC) 3.4.6
        SMP i686 i386             G95 (GCC 4.0.3 (g95 0.91!) April 18 2007)
    (kagiso)                      PGI C, Fortran 7.0-7 32-bit 
                                  icc (ICC) 9.1 
                                  Intel(R) Fortran Compiler for 32-bit 
                                      applications, Version 9.1 

    Linux 2.6.16.46-0.12-debug #1 Intel(R) C++ Version 10.0.025
        SMP ia64 GNU/Linux        Intel(R) Fortran Itanium(R) Version 10.0.025
    (ucar hir1)                   

    Linux 2.6.16.46-0.14-smp #1   Intel(R) C for Intel(R) EM64T Ver. 9.1.037
        SMP x86_64 GNU/Linux      Intel(R) Fortran Intel(R) EM64T Ver. 9.1.031
    (smirom)                      gcc (GCC) 4.1.2 20070115 (SUSE Linux)
                                  G95 (GCC 4.0.3 (g95 0.91!) Apr 19 2007)

    Linux 2.6.5-7.283-rtgfx Altix Intel(R) C++ Version 9.0.032
        SMP ia64                  Intel(R) Fortran Itanium(R) Version 9.0.033
    (cobalt)                      

    SunOS 5.8 32- and 64-bit      Sun WorkShop 6 update 2 C 5.3
    (sol)                         Sun WorkShop 6 update 2 Fortran 77 5.3

    SunOS 5.10 32- and 64-bit     Sun WorkShop 6 update 2 C 5.8 
                                  Patch 121015-06
    (linew)                       Sun WorkShop 6 update 2 Fortran 95 8.2
                                  Patch 121019-09 

    IA-64 Linux 2.4.21.SuSE_292.til1
        ia64                      
    (NCSA tg-login)               Intel(R) C++ Version 8.1.037
                                  Intel(R) Fortran Compiler Version 8.1.033

    Windows XP                    Visual Studio 6.0
                                  Visual Studio .NET (with Intel Fortran 9.1)
                                  Visual Studio 2005 (with Intel Fortran 9.1)
                                  cygwin (gcc 3.4.4)

    Windows XP(64 bit)            Visual Studio 2005(with Intel Fortran 9.1)
                                  
    Windows Vista                 Visual Studio 2005 (no fortran)
                                  
    MAC OS X Intel                Darwin 8.10.1
                                  i686-apple-darwin8-gcc-4.0.1 (GCC) 4.0.1
                                  g95 0.91
                                  gfortran GNU Fortran (GCC) 4.3.0 20070518


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

o  hdfcomp fails on HPUX 11.23 for the 64-bit version of the library.

o  This release does not support VMS systems.

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

o  Using both fill-value and compression on SD datasets does not work.

o  For existing data prior to HDF 4.2r2, when a one-dimensional SDS has the 
   same name as the dimension scale, subsequent accesses to the dimension scale
   or the SDS might produce undesired results.  It is recommended to check
   for name duplication first.  See "New features and changes" section for 
   details.

o  When using PGI compilers, make sure that the JPEG library is also compiled 
   with a PGI C compiler; linking with a JPEG library 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 installation directory
         for the PGI-compiled JPEG library:

         setenv LIBS $PGI_JPEG_INSTALL_DIR/lib/libjpeg.a

       x Use the --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....

