Starlink Project
Starlink Cookbook 13.1

Norman Gray

10 March 2003

Copyright © 1999, 2001–2003, Central Laboratories for the Research Councils

Theory and Modelling Resources Cookbook




This cookbook is intended to assemble references to resources likely to be of interest to theorists and modellers. It’s not a collection of standard recipes, but instead a repository of brief introductions to facilities. It includes references to sources of authoritative information, including those Starlink documents most likely to be of interest to theorists.

Although the topics are chosen for their relevance to theoretical work, a good proportion of the information should be of interest to all of the astronomical computing community.


1 Introduction
 1.1 Call for contributions
2 Computing
 2.1 Unix guides
 2.2 Editors
 2.3 Numerical analysis
  2.3.1 Numerical Recipes
  2.3.2 Floating point representation Endianness of floating-point numbers Accuracy Other floating-point topics
 2.4 Programming languages
  2.4.1 Fortran 77
  2.4.2 Fortran 90/95
  2.4.3 C
  2.4.4 C++ and object orientation
  2.4.5 Java
  2.4.6 Other languages awk and sed Perl
 2.5 Code topics
  2.5.1 Profiling
  2.5.2 Optimization Avoid using the register keyword in C Walk through arrays in the correct order I/O Use NaN and Infinity Remove debugging options Choose a fast compiler Further reading
  2.5.3 Debugging
  2.5.4 Intermixing Fortran and C Arrays Strings Compiling and linking
  2.5.5 Compilers, and other stray remarks on code
 2.6 Link farms
  2.6.1 Unix documentation and standards
3 Theory support
 3.1 Computer algebra
 3.2 Data visualisation
  3.2.1 gnuplot
  3.2.2 IDL
  3.2.3 DX
  3.2.4 PGPLOT
 3.3 Producing images
4 Astrophysical and other libraries
 4.1 Astrophysical modelling codes
 4.2 General-purpose and numerical libraries
  4.2.1 Reading and writing data
 4.3 Link farms
5 Paper production
 5.1 TeX and LaTeX
 5.2 The LANL archive
6 General astronomical and astrophysical resources
 6.1 Observations
7 Acknowledgements
A Example programs
 A.1 islittlendian.c
 A.2 fpp.c
 A.3 fpdemo.c
 A.4 Profiling
  A.4.1 p1.f
  A.4.2 p2.f
  A.4.3 p3.f
 A.5 crash.c
 A.6 Mixed language programming
  A.6.1 mixed-c.c
  A.6.2 mixed-f.f
B References: Starlink documents
C Release notes
 C.1 Release 2.5 (10-Mar-2003)
 C.2 Release 2.4 (22-Jul-2002)
 C.3 Release 2.3 (16-Jul-2002)
 C.4 Release 2.2 (01-Dec-2001)
 C.5 Release 2.1 (04-Dec-2001)
 C.6 Version 2 (02-Dec-2001)
 C.7 Release 1.2
 C.8 Release 1.1 (20-Jun-2000)
D Bibliography