Re: Is variable storage logically contiguous?

> I have an application in which I would like to read variable data stored
> in a netCDF file without using the netCDF routines, but rather using for
> example - "read"s in C.  My question is -- Assuming I know where the data
> for a variable starts, what its format is and how many elements it has, can
> I just start reading the appropriate number of bytes (without jumping around)?
> If it makes a difference -- the variable is multi-dimensional.
>
> If yes, what is the probability of this ever changing?
> 
> How about for HDF formatted files created with an netCDF front end?

In general, this sort of things is highly discouraged.  In order 
to do this you are going to have to do a fairly thorough job of
parsing the files:  you will need to figure out where the variable
starts, what its number type is, convert from IEEE (the default
storage scheme) to your local number type representation.  Furthermore,
the HDF version of the library lets you store variables using
the native number types rather than going to IEEE and in HDF 4.0
the library will allow for data compression...

By the time you have done all of this you have basically rewritten
the library.

But enough preaching :-)

In answer to your question, both libraries will store nonrecord
variables contiguously.  Both store record variables noncontiguously
but in different ways.  The Unidata version interleaves data from all
of the record variables together.  The HDF version stores each
record variable as a separate linked list.
 
If pressed, I think both groups would reserve the right to change
this in the future as long as it was transparent to the public
interface level.

> Also, what is the status of the netCDF (and related HDF) port to VMS on the
> Alpha?

The HDF version of netCDF is held up for all operating systems on
the Alpha.

> And finally -- Are there any plans to merge the netCDF and HDF formats or
> make them more compatible?

What did you have in mind?  We are always open to suggestions on how 
to do this.

-Chris Houck
HDF Group