14

SUN/11.6

Starlink Project
Starlink User Note 11.6

R.F. Warren-Smith & D.S. Berry

4th December 2017


ARY
A Subroutine Library for Accessing
ARRAY Data Structures

Version 2.0

Reference Manual



Abstract

The ARY library is a set of routines for accessing Starlink ARRAY data structures built using the Hierarchical Data System (HDS).

Contents

1 Introduction
2 Bounds, Dimensions and Pixel Counts
 2.1 The Fortran API
 2.2 The C API
3 Array Storage Forms
 3.1 Delta Compressed Array Form
  3.1.1 Creating a Delta Array
  3.1.2 The HDS Structure of a Delta Array
4 Compiling and Linking
A Alphabetical list of Routines
B Classified list of Routines
 B.1 Access to Existing Arrays
 B.2 Enquiring Array Attributes
 B.3 Creating and Deleting Arrays
 B.4 Setting Array Attributes
 B.5 Access to Array Values
 B.6 Creation and Control of Identifiers
 B.7 Message System Routines
 B.8 Creating Placeholders
 B.9 Copying Arrays
 B.10 Miscellaneous
C Fortran Routine Descriptions
ARY_ANNUL – Annul an array identifier
ARY_BAD – Determine if an array may contain bad pixels
ARY_BASE – Obtain an identifier for a base array
ARY_BOUND – Enquire the pixel-index bounds of an array
ARY_BOUNDK – Enquire the pixel-index bounds of an array
ARY_CLONE – Clone an array identifier
ARY_CMPLX – Determine whether an array holds complex values
ARY_COPY – Copy an array to a new location
ARY_DELET – Delete an array
ARY_DELTA – Compress an array using delta compression
ARY_DIM – Enquire the dimension sizes of an array
ARY_DIMK – Enquire the dimension sizes of an array
ARY_DUPE – Duplicate an array
ARY_FIND – Find an array in an HDS structure and import it into the ARY_ system
ARY_FORM – Obtain the storage form of an array
ARY_FTYPE – Obtain the full data type of an array
ARY_GTDLT – Get the compressed axis and data type for a DELTA array
ARY_GTSZB – Get the scale and zero values for an array
ARY_IMPRT – Import an array into the ARY_ system from HDS
ARY_ISACC – Determine whether a specified type of array access is available
ARY_ISBAS – Enquire if an array is a base array
ARY_ISMAP – Determine if an array is currently mapped
ARY_ISTMP – Determine if an array is temporary
ARY_LOC – Obtain an HDS locator for an array
ARY_MAP – Obtain mapped access to an array
ARY_MAPK – Obtain mapped access to an array
ARY_MAPZ – Obtain complex mapped access to an array
ARY_MAPZK – Obtain complex mapped access to an array
ARY_MSG – Assign the name of an array to a message token
ARY_NDIM – Enquire the dimensionality of an array
ARY_NEW – Create a new simple array
ARY_NEWK – Create a new simple array
ARY_NEWP – Create a new primitive array
ARY_NEWPK – Create a new primitive array
ARY_NOACC – Disable a specified type of access to an array
ARY_OFFS – Obtain the pixel offset between two arrays
ARY_OFFSK – Obtain the pixel offset between two arrays
ARY_PLACE – Obtain an array placeholder
ARY_PTSZB – Set new scale and zero values for a scaled array
ARY_RESET – Reset an array to an undefined state
ARY_SAME – Enquire if two arrays are part of the same base array
ARY_SBAD – Set the bad-pixel flag for an array
ARY_SBND – Set new pixel-index bounds for an array
ARY_SBNDK – Set new pixel-index bounds for an array
ARY_SCTYP – Obtain the numeric type of a scaled array
ARY_SECT – Create an array section
ARY_SECTK – Create an array section
ARY_SHIFT – Apply pixel-index shifts to an array
ARY_SHIFTK – Apply pixel-index shifts to an array
ARY_SIZE – Determine the size of an array
ARY_SIZEK – Determine the size of an array
ARY_SSECT – Create a similar array section to an existing one
ARY_STATE – Determine the state of an array (defined or undefined)
ARY_STYPE – Set a new type for an array
ARY_TEMP – Obtain a placeholder for a temporary array
ARY_TRACE – Set the internal ARY_ system error-tracing flag
ARY_TYPE – Obtain the numeric type of an array
ARY_UNMAP – Unmap an array
ARY_VALID – Determine whether an array identifier is valid
ARY_VERFY – Verify that an arrays data structure is correctly constructed

D C Function Descriptions
aryAnnul – Annul an array pointer
aryBad – Determine if an array may contain bad pixels
aryBase – Obtain an identifier for a base array
aryBound – Enquire the pixel-index bounds of an array
aryClone – Clone an array identifier
aryCmplx – Determine whether an array holds complex values
aryCopy – Copy an array to a new location
aryDelet – Delete an array
aryDelta – Compress an array using delta compression
aryDim – Enquire the dimension sizes of an array
aryDupe – Duplicate an array
aryFind – Find an array in an HDS structure and import it into the ARY_ system
aryForm – Obtain the storage form of an array
aryFtype – Obtain the full data type of an array
aryGtdlt – Get the compressed axis and data type for a DELTA array
aryGtsz <T > – Get the scale and zero values for an array
aryImprt – Import an array into the ARY_ system from HDS
aryIsacc – Determine whether a specified type of array access is available
aryIsbas – Enquire if an array is a base array
aryIsmap – Determine if an array is currently mapped
aryIstmp – Determine if an array is temporary
aryLoc – Obtain an HDS locator for an array
aryLock – Lock an array for exclusive use by the current thread
aryLocked – See if an array is locked
aryMap – Obtain mapped access to an array
aryMapz – Obtain complex mapped access to an array
aryMsg – Assign the name of an array to a message token
aryNdim – Enquire the dimensionality of an array
aryNew – Create a new simple array
aryNewp – Create a new primitive array
aryNoacc – Disable a specified type of access to an array
aryOffs – Obtain the pixel offset between two arrays
aryPlace – Obtain an array placeholder
aryPtsz <T > – Set new scale and zero values for a scaled array
aryReset – Reset an array to an undefined state
aryRound – Set the internal ARY_ system rouding flag
arySame – Enquire if two arrays are part of the same base array
arySbad – Set the bad-pixel flag for an array
arySbnd – Set new pixel-index bounds for an array
arySctyp – Obtain the numeric type of a scaled array
arySect – Create an array section
aryShift – Apply pixel-index shifts to an array
arySize – Determine the size of an array
arySsect – Create a similar array section to an existing one
aryState – Determine the state of an array (defined or undefined)
aryStype – Set a new type for an array
aryTemp – Obtain a placeholder for a temporary array
aryTrace – Set the internal ARY_ system error-tracing flag
aryType – Obtain the numeric type of an array
aryUnlock – Unlock an array so that it can be locked by a different thread
aryUnmap – Unmap an array
aryValid – Determine whether an array identifier is valid
aryVerfy – Verify that an array s data structure is correctly constructed

E Changes and new features in V1.1
F Changes and new features in V1.3
G Changes and new features in V1.4
H Changes and new features in V2.0