ABOUT HDF4.1 Release 1 February 21, 1997 INTRODUCTION This document describes the differences between HDF 4.0r2 and HDF 4.1r1. It is written for people who are familiar with previous releases of HDF and wish to migrate to HDF 4.1r1. The release notes provide more in-depth information concerning the topics discussed here. The HDF 4.1r1 documentation can be found on the NCSA ftp server (ftp.ncsa.uiuc.edu) in the directory: /HDF/Documentation/HDF4.1r1 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 - Platforms Tested - Known Problems - Important Fixes New Features and Changes: ======================== o Attributes are now supported in both the vdata and vgroup APIs. In the vdata API, attributes can be attached to either vdata fields or vdatas; in the vgroup API, attributes can be attached to vgroups. This new functionality can also be used to attach attributes to vdatas and vgroups created by earlier versions of the HDF library. However, the old versions of the HDF library cannot read the new version vdatas and vgroups. A vdata/vgroup having attributes will become a new version vdata/vgroup. For more information, please refer to the file ../release_notes/vattr.txt, the man pages for the new functions, and the HDF 4.1 User's Guide. o Data chunking is now supported in SD scientific data sets. When data chunking is used, an n-dimensional SDS is stored as a series of n-dimensional chunks, improving performance on certain types of partial read operations. New routines for creating and manipulating chunked SD scientific data sets have been provided, and two preexisting SD I/O routines, SDreaddata and SDwritedata, have also been modified to work with chunked SDSs. For more information, please refer to the file ../release_notes/sd_chunk_examples.txt, the man page for sd_chunk, and the HDF 4.1 User's Guide. o Due to certain limitations in the way compressed SDS datasets are stored, data which has been compressed is not completely writable in ways that uncompressed datasets are. The "rules" for writing to a compressed dataset are as follows: (1) Write an entire dataset that is to be compressed. i.e. build the dataset entirely in memory, then write it out with a single call. (2) Append to a compressed dataset. i.e. write to a compressed dataset that has already been written out by adding to the unlimited dimension for that dataset. (3) For users of HDF 4.1, write to any subset of a compressed dataset that is also chunked. Please refer to the HDF 4.1 User's Guide for more information. o HDF now creates free format FORTRAN include files. In order to make FORTRAN 90 programs be able to use HDF include files (*.inc), HDF4.1r1 creates F90 versions of these files during the 'make' process on UNIX platforms, by replacing 'C' or 'c' in column 1 with '!'. Continuation lines in hdf.inc have been eliminated. The F90 version files are named as hdf.f90, dffunc.f90 and netcdf.f90. o Several performance improvements have been added. Test programs on SPARC 20/Solaris 2.5 show that when creating an hdf file with 2500 3D (10x10x10) float32 SDSs, the program execution speed is improved by 2.5 - 4.8 times, and SDend is faster by 4.3 - 20 times. o A new function, SDsetfillmode, has been added. It can be used to prevent SDwritedata from pre-filling the dataset with a user defined or default fill value, so that better performance can be obtained. o SGI has changed some compiler default settings in IRIX 6.2. We decided to explicitly define the settings of various ABI related options. For the 64 bit OS ("uname -s" returns IRIX64), HDF uses "-64 -mips4" code. For the traditional 32 bit OS ("uname -s" returns IRIX), HDF uses "-32 -mips2". To use n32 mode on IRIX64, HDF uses "-n32 -mips3" code. Note that in the previous release (4.0r2), HDF used only "-n32". In IRIX 6.1 and before, "-n32" defaulted to "-mips4" code but in IRIX 6.2, it defaults to mips3 or mips4 code. We decided to explicitly set it to "-n32 -mips3". Therefore, applications linking with the HDF library must be compiled with the same explicit ABI options. o This will be the last release that we support the CM5. HDF 4.1 Beta 1 USERS ONLY ------------------------- o The SD chunking routine names were changed to be more consistent with the SD interface. The names of the routines are now in lower case, after the two initial "SD" characters. For example, SDwriteChunk() has been changed to SDwritechunk(). o The _HDF_ENTIRE_VDATA variable has been changed to _HDF_VDATA. For those users already using it, a macro called _HDF_ENTIRE_VDATA has been added, which is defined as _HDF_VDATA. o You can now create an empty compressed SDS. Please refer to the ../release_notes/bugs_fixed.txt file for changes in this release. Platforms Tested: ================ HDF 4.1 Release 1 has been tested on the following platforms: CM5 Parallel I/O, 4.1.3_U1 DEC Alpha/Digital Unix 3.2 DEC Alpha/OpenVMS AXP 6.2 DEC VAX OpenVMS 6.2 Exemplar 9.03 Free BSD 2.2 HP-UX 9.03 HP-UX 10.10 IRIX 5.3 IRIX 6.2_64 IRIX 6.2_n32 IRIX 6.4_64 IRIX 6.4_n32 Linux A.OUT 1.2.4 Linux ELF 2.0.27 (C only) Macintosh PowerPC (C only) SP2 4.1 Solaris 2.5 Solaris_x86 2.5 (C only) SunOS 4.1.3 Windows NT/95 (C only) Known Problems: ============== o With the SD interface, you are unable to overwrite existing compressed data, that is not stored in "chunked" form. This is due to compression algorithms not being suitable for "local" modifications in a compressed datastream. o There are no plans to add the DF24writeref function to the DF24 interface. This function will be removed from the documentation. Important Fixes: =============== o If you opened a file in Read Only mode with the SD interface (using SDstart), it would create the file if the file did not exist. This no longer occurs. o HDF 4.0r2 did not recognize JPEG images created by HDF 3.3r4. This has been fixed. See the ../release_notes/bugs_fixed.txt file for more information on bugs fixed in this release.