It is always necessary for an array component to be unmapped when access to it is complete. Failure to do this could result in an application running out of some resource, or failing to re-access the component at a later time. In the case where values are being written to an NDF component (described below), failure to unmap that component afterwards may also result in the new values being lost.
However, the need to call NDF_UNMAP explicitly can often be avoided because several other routines will perform this operation implicitly if necessary. For instance, if NDF_ANNUL is used to annul an NDF identifier (see §), then any components which were mapped through that identifier will first be implicitly unmapped. The effect is as if:
CALL NDF_UNMAP( INDF, '*', STATUS )
had been executed first.
Unmapping is also performed implicitly by the routine NDF_END as part of
the ``cleaning-up'' service it provides (see §).
Any NDF identifiers which are implicitly annulled by NDF_END will also have
any associated components unmapped at the same time.
Careful use of the routines NDF_BEGIN and NDF_END can therefore eliminate many
calls both to NDF_UNMAP and NDF_ANNUL.