Chapter 1
Introduction

 1.1 Who is this document for?
 1.2 What is ADAM?
 1.3 The structure of this document

1.1 Who is this document for?

This Guide is for anyone interested in Starlink software. Its purpose is to provide people with a single document that describes the ADAM software environment in sufficient detail for them to understand what it is, what it can do, and where to find more information. It is only for people doing data analysis. Features of ADAM which are particularly relevant to data acquisition are not covered.

1.2 What is ADAM?

This question is often asked, and various equally valid answers are possible. This Guide is based on the view that ADAM is about astronomical applications software written in a particular way. Specifically, it is about applications written using the ADAM subroutine libraries. It has usually been found that when a collection of application programs has been developed, the need is perceived for a command language to invoke them and to offer useful features over and above those provided by the operating system command language. These, then, are the three major components of ADAM: Applications, Subroutine libraries, Command language(s). However, there are other aspects to ADAM.

Firstly, it is about a certain style in constructing applications, sometimes called a software architecture, and about coding standards. ADAM also stands for professional software of high quality. It means that attention is given to supportability, portability, and performance.

Secondly, it is concerned with a consistent way of handling the storage of large quantities of astronomical data from all possible sources.

Many ADAM libraries can be used in isolation to write ‘non-ADAM’ applications. This practice is encouraged as it makes it more likely that such applications will fit in better with existing ADAM applications.

It must be emphasized that this document refers to the VMS version of the software being discussed. There will be minor differences when ADAM is ported to other systems. Subsequent versions of this document will specify those differences.

1.3 The structure of this document

Part I presents the fundamental information you need to know before you can use ADAM successfully. It also give you a guided tour in which ADAM is used to process simple data in simple ways. The idea is to give you a feel for what the system is like, without drowning in details.

Part II begins by surveying the applications software that is available for use. It then describes in detail the main language that is used to run ADAM programs, namely ICL. It ends by introducing the data system (HDS/NDF) that is at the heart of ADAM.

Part III shows how to use ADAM subroutine libraries to create new applications. It begins by describing some simple ADAM programs, and how to compile, link, and run them. ADAM programs are associated with something called an Interface File which describes the parameters which control the program — this is also described. Another important consideration for ADAM programmers are the standards and conventions which are recommended when writing programs, and the tools which are available to help you do it, and a chapter is devoted to this. Next, the ADAM libraries are surveyed, and then the individual systems are described in more detail in separate chapters.

Part IV is a reference section containing a summary of the main command language, ICL, and lists of the precise contents of ADAM application packages and subroutine libraries. The number of individual programs and subroutines is so large (about 1500 of each) that it is helpful to have them organised in functional groups and listed concisely in a consistent format without (in the case of subroutines) the clutter of parameter lists. This should enable you to understand in detail just what the packages and libraries can do. When you start to use the subroutines in your programs, you will need their associated documentation in order to establish the required parameters.