[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[netCDF #IVN-676408]: Problems with netCDF files in IDL



> Folks,
> 
> 
> 
> I am having 2 separate problems with netCDF files in IDL.  This is with
> "classic" netCDF files, using netCDF 3.6.2 in IDL 7.0 and 7.1.1.
> 
> address@hidden
> 
> 1) On Linux when I write a large (but legal) netCDF file (typically
> between 500MB and 3.9GB) it sometimes returns an error, "ncdf_varput
> failed".  The file is the correct size, and is almost OK, but there is
> typically a small amount of the data in the middle of the file that is
> not written correctly.  Doing the identical operation again it will
> usually succeed; the failure appears to be random.  This is a legal
> netCDF file because even when the array variable is greater than 2GB it
> is the only variable in the file.  But I often get the error even when
> the variable is only 500MB.  The ncdf_varput is being done as a single
> large write, writing the entire variable to the file at once.
> 
> 
> 
> 2) On Windows 7 with 64-bit IDL when reading a netCDF file with a
> variable larger than 2GB does not work.  There is no error returned, and
> the first 2GB of data in the returned array is fine, but the data past
> 2GB in the array is garbage.  These files read fine on 64-bit IDL on
> Linux, the problem is confined to Windows.
> 
> 
> 
> I was observing these failures on IDL 7.0.  To see if they might perhaps
> be fixed in the latest version of IDL I installed IDL 7.1.1 on Linux and
> Windows today.
> 
> 
> 
> Unfortunately both of these problems persist, they are not fixed.
> 
> 
> 
> Has anyone seem similar problems, and have any idea how to fix them?  I
> have reported them to ITT Vis.
> 
> 
> 
> Thanks,
> 
> 
> 
> Mark Rivers
> 
> University of Chicago
> 
> 

Howdy Mark!

I see that your first problem was resolved on the netcdfgroup mailing list: 
this problem was a result of a bug in 3.6.2 which was fixed in 3.6.3.

As for your second problem, it appears to be the 2 GB file size limit which is 
occurs on Unix and Windows. (The problem is solved by defining a 64-bit lseek 
function to have the name lseek. Otherwise when you try and seek past the 
32-bit limit, you wrap to the beginning of the file again, or get lost in the 
weeds.)

I don't know what DLL the IDL team is using, and so I have included Bill Okubo, 
the IDL Product Manageer. Bill, it might be that the software person who hooked 
up netCDF would be the best person to ask this question.

Thanks,

Ed
 
> 
> 


Ticket Details
===================
Ticket ID: IVN-676408
Department: Support netCDF
Priority: Critical
Status: Closed