The type of an HDS object falls into two classes:
Structure objects contain other objects called components. Primitive objects contain only numeric, character, or logical values. Objects in the different classes are referred to as structures and primitives while the more general term object refers to either a structure or a primitive. Structures are analogous to the directories in a filing system - they can contain a part of the hierarchy below them. Primitives are analogous to files - they are at the bottom of any branch of the structure and contain the actual data.
In HDS, structure types are represented by character strings with the same rules of formation as name, except that a structure type may not start with an underscore character `_' (a structure type may also be completely blank). Examples of structure types are `IMAGE', `SPECTRUM', `INSTR_RESP', etc. These do not begin with an underscore, so they are easily distinguished from the primitive types, which do.
Special rules apply to the primitive types, which all begin with an underscore and are "pre-defined" by HDS, as follows:
HDS Type | Fortran Type | Description |
_INTEGER | INTEGER | Integer (signed) |
_REAL | REAL | Single precision |
_DOUBLE | DOUBLE PRECISION | Double precision |
_LOGICAL | LOGICAL | Logical |
_CHAR[*n] | CHARACTER[*n] | Character string |
_WORD | INTEGER*2 | Word (signed) |
_UWORD | INTEGER*2 | Unsigned word |
_BYTE | BYTE | Byte (signed) |
_UBYTE | BYTE | Unsigned byte |
The first five of these primitive types are referred to as standard data types, since they correspond with standard Fortran 77 data types. The last four are non-standard data types and are typically required to accommodate raw data from instrumental hardware, which may generate numbers in these formats. The range of values which may be stored in each primitive numeric type is determined by the numerical capabilities of your machine and the particular implementation of Fortran you are using. Details of HDS, which include information about the properties of the primitive data types on the system you are using, may be found in the file:
hds_datestamp
in the directory in which the HDS source files reside.
The rules by which character values are handled by HDS is the same as for Fortran 77, i.e. character values are padded with blanks or truncated from the right depending on the relative length of the program value and the object.
HDS Hierarchical Data System