This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
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