netCDF on HDF library available for testing


First the important issue: names.  I'm already tired of referring to the
"netCDF on HDF" or "netCDF/HDF merger" library, so I propose using the
acronym "niche" (netCDF interface covers HDF encoding).  If you prefer, the
"c" could also stand for conceals, cloaks, clads, confounds, ...

I built Chris Houck's prototype niche library for SPARCstations, merged it
with the latest HDF library it requires, and put the result (with both C and
FORTRAN interfaces) in /usr/local/lib/libniche.a.  Hence you should be able
to test any utility or program that uses the netCDF library by merely
linking against /usr/local/lib/libniche.a instead of
/usr/local/ldm/lib/libnetcdf.a.  Resulting executables should be able to
read either our XDR-encoded netCDF files or the HDF-encoded files written by
the niche library.

I built executables corresponding to ncdump and ncgen and named them
nichedump and nichegen; they're in /usr/local/bin on groucho.  They should
work just like ncdump and ncgen on our netCDF files, but will also work for
the HDF files written by the new interface.

The prototype library was easy to build under SunOS and seems to faithfully
implement the netCDF interface.  Executables linked against the niche
library appear to be larger and slower, as might be expected with a
prototype implementation, though I have made only a cursory comparison.  For
example "nctest", which runs fairly exhaustive tests of all the netCDF
functions, executes in 7 seconds on buddy.  The corresponding executable
built by linking against libniche.a requires 12 seconds to execute and is
about three times as large.  The file sizes of the HDF files created by this
program are more than 3 times as large as the corresponding XDR files
created by nctest.  However the niche library may have a significant
advantage where it is necessary to add new dimensions or variables to a
large netCDF file, since it supposedly can do this without requiring that
the original file be copied.

If you have a chance, please test the new library with existing programs
that use the netCDF library and report on the results to this list.  Chris
Houck will be visiting here on Friday afternoon, so we'll have an
opportunity to ask him about the prototype and any problems we discover,
present our assessment of the prototype, discuss whether there will be a
niche for niche, and possibly even come up with a better acronym.

If you need the library built for other platforms the sources are currently
in ~russ/src/{hdf,niche} or let me know and I'll build them.