Create an array section, using an NDF section as a template NDF_SSARY
"
similar section"
from an array (whose ARY_ system identifier is supplied) using an
existing NDF section as a template. An identifier for the array section is returned and this
may subsequently be manipulated using the ARY_ system routines (SUN/11). The new
array section will bear the same relationship to its base array as the NDF template does to
its own base NDF. Allowance is made for any pixel-index shifts which may have been
applied, so that the pixel-index system of the new array section matches that of the NDF
template.
This routine is intended for use when an array which must match pixel-for-pixel with an NDF is stored in an NDF extension; if an NDF section is obtained, then this routine may be used to obtain a pixel-by-pixel matching section from the array.
This routine will normally generate an array section. However, if the input array is a base array and the input NDF is a base NDF with the same pixel-index bounds, then there is no need to generate a section in order to access the required part of the array. In this case, a base array identifier will be returned instead.
It is the caller’
s responsibility to annul the ARY_ system identifier issued by this routine (e.g. by
calling ARY_ANNUL) when it is no longer required. The NDF_ system will not perform this task
itself.
The new array generated by this routine will have the same number of dimensions as the array from which it is derived. If the template NDF has fewer dimensions, then the pixel-index bounds of the extra array dimensions are preserved unchanged. If the NDF has more dimensions, then the extra ones are ignored.
This routine takes account of the transfer windows of the array and NDF supplied and will restrict the transfer window of the new array section so as not to grant access to regions of the base array which were not previously accessible through both the input array and the NDF section.
If this routine is called with STATUS set, then a value of ARY__NOID will be returned for the IARY2 argument, although no further processing will occur. The same value will also be returned if the routine should fail for any reason. The ARY__NOID constant is defined in the include file ARY_PAR.