Access restrictions may be imposed on any NDF identifier in order to constrain the operations which can be performed by NDF_ routines via that identifier. The act of disabling a particular type of access is performed by the routine NDF_NOACC. For instance:
CALL NDF_NOACC( 'DELETE', INDF, STATUS )
would disable delete access for the identifier INDF. As a result, any subsequent attempt to delete the NDF via that identifier would fail, and the resulting error message would indicate that access had been disabled. Access restrictions imposed on NDF identifiers are propagated to all new identifiers derived from them (e.g. by cloning or creation of an NDF section). Once imposed, they cannot be revoked.
The following types of access may be disabled, either singly or in combination (by means of repeated calls to NDF_NOACC), in order to impose the corresponding restriction on NDF access:
).
The pixel-index bounds of an NDF section can always be altered
regardless of this access restriction, but the restriction will be
propagated to any new identifier obtained from an NDF section via the
routine NDF_BASE.
).
).
Pixel-index shifts may always be applied to an NDF section regardless of
this access restriction, but the restriction will be propagated to any new
identifier obtained from an NDF section via the routine NDF_BASE.
).
).
In addition, specifying an access type of `MODIFY' in a call to NDF_NOACC will disable all the forms of access described above.
You can enquire whether a specified type of access is available via any identifier by using the routine NDF_ISACC. For instance:
CALL NDF_ISACC( INDF, 'WRITE', ISACC, STATUS )
will return a logical value ISACC indicating whether write access is available for the identifier INDF.