NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
Hello, I think I found 1 (possibly 2) bugs. When using nf90_put_att to create a fillvalue for a long integer (8 byte) in a netcdf4/hdf5 file, I get error message -36 NetCDF: Invalid argument. As it turns out, the nf90 interface is not capable of writing any long integer. I could remedy this by using the Fortran 77 interface for this particular case. I believe the culprit is lines 211 and in f90/netcdf_attributes.f90 (in netcdf 4.2.0, that is): nf90_put_att_EightByteInt = nf_put_att_int(ncid, varid, name, nf90_int, size(values), int(values)) should be nf90_put_att_EightByteInt = nf_put_att_int(ncid, varid, name, nf90_int64, size(values), int(values)) A similar conversion issue seems to be happening in the get_att functions (with defaultInteger being a normal int, not a long one) The second issue is that the fortran 77 interface could only handle 4byte integers: Everything outside of the 4byte boundaries was converted into value 1. My guess is that the fortran interface converted the value to 4 bytes, and that the C backend made it a long again thanks to the passing of the typeid. Am I correct here? Thanks, Thijs Heus -- Dr. Thijs Heus Hans Ertel Centre for Clouds and Convection Max Planck Institute for Meteorology Bundesstr. 53 D-20146 Hamburg, Germany Office nr. Z 426 Phone +49 40 41173 242 Fax +49 40 41173 298
netcdfgroup
archives: