Problems with netCDF on DEC Alpha


Skip Montanaro writes: 

> We have a DEC Alpha machine in for evaluation. netCDF does not work on it,
> apparently because of differences in the assumptions about the sizes of
> longs and ints. ...
> Have others run into this problem? If so, is it something that will be fixed
> in the "new version" of netCDF?

We have run into the problem and have communicated with DEC about it.  The
problem is in the implementation of the functions xdr_long() and xdr_ulong()
in the DEC-supplied XDR library in OSF/1 for the Alpha.  DEC chose to encode
their 64-bit C longs as XDR hyper integers, and to have xdr_long() take a
pointer to an int rather than a pointer to a long.  Others (e.g.  Cray,
which has 64-bit longs, ints, and shorts) have chosen to encode 64-bit host
longs as 32-bit XDR integers when they're in range and make xdr_long()
undefined otherwise.  According to the manual page and our understanding,
the routine xdr_long() should take a pointer to a long and convert it into
an XDR 32 bit integer, but we haven't been able to convince DEC.  Until this
issue is resolved, netCDF will not work on DEC Alphas.