Due to the current gap in continued funding from the U.S. National Science Foundation (NSF), the NSF Unidata Program Center has temporarily paused most operations. See NSF Unidata Pause in Most Operations for details.
Clarification 1: I was probably too terse in my previous message about variable-length dimensions. Let me elaborate a bit. All existing dimensions (including UNLIMITED) have(at any point in time) a fixed known size and every use of that dimension has that size. Note that an UNLIMITED dimension's size may change over time, but it is still the case that all occurrences of it have the same size at any point in time.
A variable-length dimension (often represented by "*") has potentially a different size for every occurrence at any given point in time. The pretense that a variable-length dimension is a dimension causes significant code and use complications in the CDM data model. An ArraySequence is particular form of CDM Array, similar to anArray Structure, that encapsulates the fact the the length of the sequence can differ for each ArraySequence instance. The goal of the proposed change is to isolate/encapsulate true variable-length objects within an ArraySequence object.
So, if we have, for example, int x(5,*) then this would be represented as a 5 element array of ArraySequence objects, and each ArraySequence object contains a variable length vector of integers. Using the netcdf-4 model, this would be: types: int(*) sequence_t variables: sequence_t x(5)The requirement on e.g. IOSP developers is that they create ArraySequence objects, and the requirement on the client users of CDM (via the netcdf-Java library) is that they recognize ArraySequence objects.
My speculation is that anyone who uses variable-length dimensions already has to make code exceptions to process it, and it is probable that only that code would need to be changed to deal with ArraySequence.
Note: ArraySequences actually already exist in the CDM code, but are currently not used (AFAIK).
=Dennis Heimbigner Unidata
netcdf-java
archives: