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

[netCDF #MOB-465267]: Increasing maximum record size



Hi Sergey,

Sorry for the delay responding, I was in meetings all day yesterday.

One reason I requested a CDL is because with that, I could probably duplicate 
the problem you are seeing, diagnose the cause, and fix it if it is a bug.

The small program you have attached could serve the same purpose, but it 
includes other files (PARMS3.EXT, FDESC3.EXT, IODECL3.EXT) and calls functions 
that I don't have (open3, WRITE3), so I can't use it to reproduce or debug the 
problem.  I understand your description of the problem and may be able to 
reproduce it eventually from the description, but progress would be faster if I 
had a source program that was complete that I could compile and run 
independently.  I understand if it's not convenient to create such a package, 
and if so, I'll try to figure out what's causing the error, but it may not be 
possible without running code that we can use to demonstrate the problem.

It's puzzling that the problem requires increasing the value of NC_MAX_VARS, 
since that has nothing to do with the constraints on variable sizes.  A CDL of 
the file would make it easier to see what's going on when the variable size 
constraint message is generated.  But to create a CDL, you would have to be 
able to run ncdump on a netCDF file, and I understand the problem is that you 
can't actually create a netCDF file.  Nevertheless, if you could possibly 
create a netCDF file that has all the dimensions, attributes, and variables 
just before the error occurs, then describe the variable that is being added 
that causes the problem, I could work with that.

But that may also be difficult, because the order in which variables are 
defined matters, since the last variable in a record may be larger than all the 
rest.  As it says in the Large File FAQ:

If you get the netCDF library error "One or more variable sizes violate format  
   constraints", you are trying to define a variable larger than permitted for 
the file format variant. This error typically occurs when leaving "define mode" 
rather than when defining a variable. The error status cannot be returned when 
a variable is first defined, because the last fixed-size variable defined is 
permitted to be larger than other fixed-size variables (when there are no 
record variables).

Similarly, the last record variable may be larger than other record variables. 
This means that subsequently adding a small variable to an existing file may be 
invalid, because it makes what was previously the last variable now in 
violation of the format size constraints. For details on the format size 
constraints, see the Users Guide sections NetCDF Classic Format Limitations and 
NetCDF 64-bit Offset Format Limitations.

--Russ



--Russ

Russ Rew                                         UCAR Unidata Program
address@hidden                     http://www.unidata.ucar.edu



Ticket Details
===================
Ticket ID: MOB-465267
Department: Support netCDF
Priority: High
Status: Closed