RPP -- Second pass of the SPP preprocessor.

    While RPP is derived from ratfor, it is not a ratfor preprocessor.
It accepts as input the output of the first pass, XPP, and produces Fortran as
output.  XPP and RPP together with the UNIX driver program XC make up the
preprocessor for the IRAF SPP language.


subdirectories:

	ratlibc		Interface to the host system, written in C
	ratlibf		Fortran version of the ratfor library (used by RPP)
	ratlibr		Ratfor version of the ratfor library
	rppfor		Fortran source for RPP
	rpprat		Ratfor source for RPP


RPP consists of the source for the program itself, the portable library
functions, and the interface to the host system.  Everything required to
compile and link RPP on a host system providing a C and Fortran compiler
is included in these directories.  RPP is currently implemented as a stand
alone (bootstrap) program, i.e. it can be compiled before IRAF itself is
running.  While the ratfor sources for the preprocessor and the library
are included in the distribution, a ratfor preprocessor is not necessary
to compile RPP.  All ratfor sources are distributed already preprocessed
into Fortran.

To compile RPP on a UNIX host type "make".  If there are any problems they
will most likely be in the interface routines, which are not (cannot be)
completely portable.  In particular the definitions in ratlibc/ratdef.h
should be examined to see is they are appropriate for your machine.  The
single biggest difference between different host systems providing C and
simple UNIX like STDIO is in the naming conventions of external identifiers.
All C externals called from Fortran are defined in ratdef.h to make it
easier to change the names.  RPP is a C program (it has a C main) even
though most of the code is written in Fortran.

Source for a Fortran (ratfor) version of the interface routines is provided
in ratlibr/old.  Since XPP is currently written in C we have not bothered
to try to use these routines.
