This storage form is provided primarily to maintain compatibility with previous data formats. In this case, the array's values are held as a sequence of pixels in an N-dimensional array, but in a primitive HDS object. This means that no ancillary information can be associated with such a component and this imposes a number of restrictions on the properties of such arrays:
In most situations, these restrictions are unimportant and primitive storage form may be used to maintain compatibility with existing datasets and software. In the longer term, it is expected that a gradual transition will take place, replacing primitive arrays by equivalent simple arrays and this latter approach should be taken by all new software. However, there is usually little harm in creating NDFs with primitive array components, because any change made to the NDF which would violate one of the restrictions above will cause any affected primitive array component to implicitly change its storage form to become simple. This is a straightforward change which costs little, and a subsequent call to NDF_FORM will show if this has occurred. Only one possible complication may arise: if the array is mapped for access when its storage form is implicitly changed, then an error will result. This is unlikely to be a problem in practice.