Starlink User Note 181.12
A.C. Davenhall & D.S. Berry
27th July 2020
Copyright © 2001 Council for the Central Laboratory of the Research Councils
Catalogue and Table Manipulation Library
CAT is the Starlink Fortran subroutine library for manipulating astronomical catalogues and similar tabular datasets. This manual is intended for programmers who plan to write applications which use the CAT library to manipulate such datasets. It is introductory in the sense that it contains sufficient information to enable a programmer new to the CAT library to write applications which use it. The version of the library intended for use in conjunction with the Starlink ADAM programming environment is described. All the subroutines in the interface to the library are covered. However, the principles underlying the library, and their justification, are described only insofar as they affect its use.
This manual is intended for programmers who wish to use the Starlink CAT subroutine library to manipulate astronomical catalogues and similar tabular datasets. The reader is assumed to be familiar with the following: standard Fortran 77 and the extensions permitted by Starlink, Starlink programming practices and procedures and the various packages and libraries of the ADAM programming environment.
You will not usually need to read this document from beginning to end in order to use the CAT subroutine library. The document is divided into three parts:
Part I contains some preliminary details, such as an introduction to the terminology of CAT and details of how to access the library. Part II is a tutorial example of how to write a simple application which accesses the library and Part III contains reference material which describes the library.
If the CAT library is new to you, you should start by reading Part I and working through the tutorial in Part II. Finally, read Section 6 of Part III, but skipping the detailed descriptions of individual attributes.
If you are already familiar with the library you should consult the reference material in Part III, and probably also the details in Section 3 of Part I, as necessary.
I am happy to answer queries about using the CAT subroutine library and to receive comments or suggestions about how it could be improved. Details of how to contact me are included below.
Postal address: Institute for Astronomy, Royal Observatory, Blackford Hill, Edinburgh,
|EH9 3HJ, United Kingdom.|
|from within the United Kingdom:||0131-668-8416|
The CAT subroutine library is far from being all my own work. Its specification evolved during extensive discussions with (alphabetically) Dave Giaretta, Clive Page, Rodney Warren-Smith and Alan Wood, all of whom have contributed substantially to its final form. Also, at various times, Brian Read, Malcolm Currie and Steven Beard have made useful comments.
Clive Page wrote the expression parser which CAT uses and Appendix B is based on documentation which he supplied. CAT accesses FITS tables through Bill Pence’s FITSIO subroutine library and CHI/HDS catalogues through Alan Wood’s CHI subroutine library.
Martin Bly assisted in preparing the Unix version for release. Alan Wood, Malcolm Currie and Peter Draper tested a pre-release version and suggested several useful improvements.
I am grateful to all these people for sharing their time and expertise.
Department of Physics and Astronomy, University of Leicester
Saint Edmund’s Day 1994
 M.J. Currie and D.S. Berry, 20 October 2000, SUN/95.16: KAPPA — Kernel Application Package, Starlink.
 A.C. Davenhall, September 1993, The Starlink Subroutine Interface for Manipulating Catalogues (StarBase/ACD/3.4). See also A.C. Davenhall, December 1992, Requirements for a Starlink RDBMS (StarBase/ACD/2.1). These documents were written as part of the project to define and implement the CAT subroutine library. StarBase/ACD/3.4 gives the complete specification of the CAT subroutine interface, and describes much of the thinking that went into the specification. StarBase/ACD/2.1 lists the original requirements for the Starlink subroutine library to manipulate catalogues and similar tabular datasets.
 A.C. Davenhall, 25 July 2000, SUN/190.8: CURSA — Catalogue and Table Manipulation Applications, Starlink.
 A.C. Davenhall, 26 July 2000, SSN/75.1: Writing Catalogue and Image Servers for GAIA and CURSA, Starlink.
 P.W. Draper and N. Gray, 16 October 2000, SUN/214.8: GAIA — Graphical Astronomy and Image Analysis Tool, Starlink.
 D.L. Terrett and P.M. Allan, 1 February 1993, SUN/111.2: SPT – Software Porting Tools, Starlink.
 R.F. Warren-Smith and M.D. Lawden, 23 February 1999, SUN/92.11: HDS — Hierarchical Data System, Starlink.