Next: FINDING EXAMPLES
Up: No Title
Previous: UNDERSTANDING THE SYSTEM
PROG_001 should be carefully digested, and the rules in the
`Immediate' section should ALL be observed. The second section is
more advisory. Some points to watch are:
-
Always use the standard ASTERIX program headers.
-
Use standard ASTERIX subroutines for data access and user
interfaces wherever possible. In particular the BDA_*
subroutines should be used when reading, writing or copying
standard components of binned datasets.
-
Primitive data input (i.e. a simple array rather than a
whole dataset) should be handled wherever this might be
useful.
-
QUALITY and VARIANCE are supported by ASTERIX applications
wherever they are relevant (though in some cases the support
might consist only of warning the user that bad data are
present, for example).
-
Bulk data should be mapped, and assumptions about its size
avoided (dynamical storage is available using the DYN_*
package).
-
Overwriting of a dataset should in general occur only via an
OVER parameter entered on the command line.
-
User i/o should be grouped together as far as possible within
an application; usually either in the top level, or in a
small number of subroutines.
-
Applications should exit if the user responds !! (abort) in
response to a prompt (i.e. check STATUS after each user
input and EXIT if it is bad).
-
Use the PRS_* routines to obtain any range specifications
from the user.
-
Make frequent STATUS checks to avoid program crashes.
-
Write a HISTORY entry wherever a dataset is created or
modified.
-
All Starlink standard components should be propagated to the
output file, except where they are known to be inappropriate
or wrong.
-
Check STATUS at the end of all applications and subroutines
and provide error traceback.
Web Master
Wed Oct 8 15:26:54 BST 1997