Certain restrictions are imposed on mapped access to NDF components, the most important being that each array component may only be mapped for access once through any NDF identifier. Thus, two successive calls to NDF_MAP (or NDF_MAPZ) specifying the same identifier and array component will result in an error. Of course, the component may later be re-mapped if it has first been unmapped, either by an intervening call to NDF_UNMAP, or implicitly.
One way of avoiding this restriction is to clone a duplicate identifier using NDF_CLONE so that a component can be mapped twice, once through each identifier. However, a more fundamental restriction exists if a possible access conflict may occur. Update and write access to NDF components is always exclusive, so the NDF_ system will reject any attempt to access a component twice if one of the attempts involves update or write access, although the same component may be accessed any number of times (through different identifiers) for read access alone.
In addition, arrays stored in scaled or delta form (rather than primitive
or simple form), are currently read-only. An error will be reported if an
attempt is made to map a scaled or delta array component for update or write
access.
If you need to modify the values in such an array, then you should first
make a copy of the NDF. Copying an NDF automatically converts all scaled
amd delta arrays into simple arrays, and so the copied array can be mapped
for any type of access.
NDF [1ex