While SPA provides a powerful set of tools with which a user can manipulate
data, it is neccessarily incomplete of all functions an astronomer may
use. Unfortunately, developing new tools
for the SPA program requires some familiarity with the internal workings
of the program itself and therefore, is not recommended. For those
brazen souls who wish to augment the abilities of the program, an itemized
list of steps is provided below.
It is recommended that programmers
study and understand some representative subroutines of the
various type of functions
(see line.f for 1
1 function,
see math2.f for 2
1 function,
see gen.f for an internally looped 1
1 function,
see av.f for n
1 function, and
see ss.f for n
n function)
since the program treats these much differently, in particular, how the
data is blocked into the memory of the program and stored for later use.
Once a subroutine has been written, there are several steps necessary to
incorporate the new function into the program. These include editing the
function constant common block FCONC.INC
if the new subroutine requires additional
function constants, editing the subroutine incon.f which controls
the input of the function constants from the user, editing the file act.f
which actually calls the new subroutine, and editing spi.pgm which defines
the new function in the program within the common block CODES.INC. This
definition includes the name of the function and the type of function
1
1,
(i.e. 1
1, 2
1, n
n or n
1).
In addition, the spi program
provides defaults for any new function constants within the block data code.
Once changes to these files have been made, one needs to recompile the spa and
spi programs and reinitialize the function constants and codes within the
S file with the spi program.