Charlie Zender - 2005-07-01

Hi All,

I just committed a pervasive change to handling types NC_BYTE,
NC_CHAR, and NC_INT. The treatment of these types is somewhat
implementation specific (e.g., long or int?) and keeping them straight
has always been kind of a headache. Now NCO represents these types
internally with the opaque types nco_byte, nco_char, and nco_int.
Basically, we use the C-preprocessor to do a poor-man's overloading.
The gory details are in nco_typ.h.
Please use these opaque types when handling data.

This mostly affects the netCDF wrappers in nco_netcdf.c and the type
conversion functions like those in nco_cnf_typ.c.
I didn't worry about carrying through the opacity to the printf()
formatting statements like those in nco_prn.c and nco_msa.c, but
that could and perhaps should be done later.

I think the opaque types will ease portability and future introduction
of new types, e.g., NC_LONG.

Charlie