SG/4.2

Starlink Project
Starlink Guide 4.2

M D Lawden, K F Hartley

12 August 1992


ADAM — The Starlink Software Environment



Abstract

This is a comprehensive description of the Starlink Software Environment as of 1992.

Contents

I  Preface
II  INTRODUCTION
1 Introduction
 1.1 Who is this document for?
 1.2 What is ADAM?
 1.3 The structure of this document
2 Getting Started
 2.1 Preliminaries
 2.2 Quotas
 2.3 Starting up ADAM
 2.4 Choice of command language
 2.5 Trying out the command languages
  2.5.1 ICL
  2.5.2 DCL
3 A Guided Tour
 3.1 Starting KAPPA
 3.2 Creating test images
 3.3 Examining images
 3.4 ICL procedures
III  FOR USERS
4 Applications Packages
 4.1 ASTERIX — X-ray data analysis
 4.2 CCDPACK — CCD data reduction
 4.3 CONVERT — Data format conversion
 4.4 DAOPHOT — Stellar photometry
 4.5 FIGARO — General spectral reduction
 4.6 IRCAM — Infrared camera data reduction
 4.7 KAPPA — Kernel applications
 4.8 PHOTOM — Aperture photometry
 4.9 PISA — Object finding and analysis
 4.10 SCAR — Star catalogue database system
 4.11 SPECDRE — Spectroscopy data reduction
 4.12 SST — Simple software tools
 4.13 TSP — Time-series and polarimetry analysis
5 ICL — Interactive Command Language
 5.1 Introduction
 5.2 Starting and stopping ICL
 5.3 Modes
 5.4 Statements
 5.5 Direct statements
 5.6 Expressions
6 ICL Commands
 6.1 Commands
 6.2 Built-in commands
 6.3 User-defined commands
 6.4 Input/Output commands
  6.4.1 Terminal
  6.4.2 Screen mode
  6.4.3 Keyboard facilities
  6.4.4 File
 6.5 DCL commands and VMS processes
  6.5.1 Executing DCL commands
  6.5.2 Processes and subprocesses
  6.5.3 Changing your default directory
  6.5.4 Managing tape drives
7 Running Applications
 7.1 ADAM applications
 7.2 The running process
 7.3 Selecting programs
  7.3.1 Defining commands to run programs
  7.3.2 Monoliths
8 Specifying Parameter Values
 8.1 Introduction
 8.2 Command line specification
  8.2.1 Keyword method
  8.2.2 Position method
  8.2.3 ICL variables and functions
 8.3 Prompts and suggested values
  8.3.1 Prompts without a suggested value
  8.3.2 Prompts with a suggested value
  8.3.3 Global parameters
  8.3.4 Missing prompts
  8.3.5 Keywords — RESET, PROMPT, ACCEPT
 8.4 Value formats
  8.4.1 ICL command parameters
  8.4.2 ADAM program parameters
 8.5 Comparison of ICL and ADAM parameters
9 Programming in ICL
 9.1 Control statements
  9.1.1 IF
  9.1.2 LOOP
 9.2 Procedures and command files
  9.2.1 Defining procedures — PROC
  9.2.2 Running procedures
  9.2.3 Listing procedures — LIST
  9.2.4 Editing procedures — EDIT, SET EDITOR
  9.2.5 Direct execution of statements during procedure entry
  9.2.6 Saving, loading and deleting procedures — SAVE, LOAD, DELETE
  9.2.7 Variables
  9.2.8 Finding out what is available — VARS, PROCS
  9.2.9 Tracing execution — SET (NO)TRACE
  9.2.10 Command files
  9.2.11 Running ICL as a batch job
 9.3 Exceptions
  9.3.1 Exception handlers
  9.3.2 Keyboard aborts
  9.3.3 SIGNAL
 9.4 ICL login files
  9.4.1 Hidden procedures
 9.5 Extending on-line help
 9.6 Example procedures
10 HDS/NDF — The Data System
 10.1 HDS — Hierarchical data system
  10.1.1 Data objects
 10.2 NDF — Extensible n-dimensional data format
  10.2.1 The structure of an NDF object
IV  FOR PROGRAMMERS
11 A Guided Tour
 11.1 A ‘Hello, world’ program
 11.2 Source code
 11.3 Interface file
 11.4 Compiling and linking
 11.5 Testing
 11.6 Error handling
 11.7 Returning parameter values
 11.8 Monoliths
12 Programming Standards, Conventions and Tools
 12.1 Language standards
  12.1.1 Fortran
  12.1.2 C
  12.1.3 Fortran/C interface
  12.1.4 Posix interface
 12.2 Prologue standards
 12.3 Software tools
  12.3.1 FORCHECK
  12.3.2 GENERIC
  12.3.3 LIBMAINT
  12.3.4 LIBX
  12.3.5 SPAG
  12.3.6 SST
  12.3.7 STARLSE
  12.3.8 TOOLPACK
13 The ADAM Libraries
 13.1 Parameter system
 13.2 Data system
 13.3 Message and Error systems
 13.4 Graphics system
 13.5 Input/output systems
 13.6 Database system
 13.7 Utilities
14 The Parameter System
 14.1 Parameters and objects
 14.2 Associating objects with parameters
 14.3 Interface files
 14.4 Parameter specifications
 14.5 Message specifications
 14.6 Monoliths
 14.7 Parameter states
15 The Data System
 15.1 HDS — Hierarchical data system
  15.1.1 Symbolic names and Include files
  15.1.2 Creating objects
  15.1.3 Writing and reading objects
  15.1.4 Accessing objects by mapping
  15.1.5 Mapping character data
  15.1.6 Copying and deleting objects
  15.1.7 Subsets of objects
  15.1.8 Temporary objects
  15.1.9 Enquiries
  15.1.10 Packaged routines
 15.2 REF — References to HDS objects
  15.2.1 Uses
 15.3 NDF — Extensible n-dimensional data format
  15.3.1 Relationship with HDS
  15.3.2 Data format
  15.3.3 Routines
  15.3.4 Example program
16 The Message and Error Systems
 16.1 MSG — Message reporting system
  16.1.1 Reporting messages
  16.1.2 Conditional message reporting
  16.1.3 Message tokens
  16.1.4 Message parameters
  16.1.5 Parameter references
  16.1.6 Getting the conditional output level
 16.2 ERR — Error reporting system
  16.2.1 Inherited status checking
  16.2.2 Reporting errors
  16.2.3 When to report an error
  16.2.4 Setting and defining status values
  16.2.5 The content of error messages
  16.2.6 Deferred error reporting
  16.2.7 Error message parameters
17 The Graphics System
 17.1 SGS — Simple graphics system
 17.2 IDI — Image display interface
 17.3 AGI — Applications graphics interface
 17.4 GNS — Graphics workstation name service
18 Input/Output Systems
 18.1 FIO — Sequential file I/O
 18.2 RIO — Direct file I/O
 18.3 MAG — Magnetic tape system
  18.3.1 Device management
  18.3.2 Tape positioning
  18.3.3 Example
V  REFERENCE
19 ICL
 19.1 Syntax
 19.2 Commands
 19.3 Functions
 19.4 Exceptions
20 Applications
 20.1 ASTERIX — X-ray data analysis
 20.2 CCDPACK — CCD data reduction
 20.3 CONVERT — Data format conversion
 20.4 DAOPHOT — Stellar photometry
 20.5 FIGARO — General spectral reduction
 20.6 IRCAM — Infrared camera data reduction
 20.7 KAPPA — Kernel applications
 20.8 PHOTOM — Aperture photometry
 20.9 PISA — Object finding and analysis
 20.10 SCAR — Star catalogue database system
 20.11 SPECDRE — Spectroscopy data reduction
 20.12 SST — Simple software tools
 20.13 TSP — Time-series and polarimetry analysis
21 Subroutine Libraries
 21.1 Parameter system
  21.1.1 PAR — Parameter system
 21.2 Data system
  21.2.1 NDF — NDF data structure access
  21.2.2 ARY — ARRAY data structure access
  21.2.3 REF — References to HDS objects
  21.2.4 HDS — Hierarchical data system
 21.3 Message and Error systems
  21.3.1 MSG/ERR — Message and Error reporting
 21.4 Graphics system
  21.4.1 NCAR/SNX — Graphics utilities
  21.4.2 PGPLOT — Graphics library
  21.4.3 NAG — Graphics library
  21.4.4 SGS — Simple graphics system
  21.4.5 GKS — Graphical kernel system
  21.4.6 IDI — Image display interface
  21.4.7 AGI — Applications graphics interface
  21.4.8 GNS — Graphics workstation name service
 21.5 Input/output systems
  21.5.1 FIO/RIO — File I/O
  21.5.2 MAG — Magnetic tape I/O
 21.6 Database system
  21.6.1 CHI — Catalogue handling
 21.7 Utilities
  21.7.1 CHR — Character handling
  21.7.2 CNF/F77 — Mixed language programming
  21.7.3 PRIMDAT — Primitive numerical data processing
  21.7.4 PSX — Posix interface
  21.7.5 SLALIB — Positional astronomy and time
  21.7.6 TRANSFORM — Coordinate transformation