This paper supersedes Technical Paper No 7 and describes the generation system in use when version I of the system was issued. The system is currently preserved in two ways. The first set constitute version I. The second set make up the system being developed.
The macro to drive SPROGS version I is held in :MACROS.
There are two library files referenced by the SPROGS macro, both in :SPROGS under :GSIN0O.
SPROGSEMI1 Essential routines. SPROGSEMI2 Library routines.
Source files for version I are preserved on the magnetic tape number 445, called SPROGST1 in :SPROGS. The files, written using the ACL version of COPYOUT are
FORTSRC1 Essential routines. PLANSRC1 FORTSRC2 Library routines. FORTSRC3 FORTSRC4 PLANSRC2 PLANSRC2A SPRG1 FORTRAN common blocks SPRG2 SPRG3 SPRG4 SPRG1X PLAN common blocks SPRG3X
Copies of these files are also preserved on cards.
It is not intended to make alterations to the issued version, apart from correcting major bugs, so all the following generation system refers to the system under development. Correction of such bugs must be performed by saving all development files, copying the source back into the filestore, generating a new system and copying the resultant semi-compiled into the appropriate files.
The macro SPROGS in :SPROGS will refer to the developing system.
The two library files will be held in
SPROGSEMIE1 SPROGSEMIE2 with previous copies in SPROGSEMI1X SPROGSEMI2X all under : SPROGS
Source files are all kept in :BSOURCE. They are
FORTSRC1 Essential FORTRAN routines PLANSRC1 Essential PLAN routines FORTSRC2 FORTRAN library routines PLANSRC2 PLAN library routines FORTSRC3 Character fonts FORTSRC4 High level FORTRAN routines PLANSRC3 High level PLAN routines
The source of the system is changed infrequently. Instead, additions are made to edits files, which are stored under :BSEDITS. File names are the same as source names, with the letters ED added to the front of the name, eg
EDFORTSRC1
The system common blocks are stored in files under :BSCOMMON. The files are
SPRG1 I/O FORTRAN block SPRG2 File stack block SPRG3 General FORTRAN block SPRG4 Error handling block SPRG1X PLAN version of SPRG1 SPRG3X PLAN version of SPRG3
The semi-compiled generated direct from individual file compilations is stored under :SPRGSEMI. The files are
FORTSEMI1 FORTSEMI2 FORTSEMI3 FORTSEMI4 PLANSEMI1 PLANSEMI2 PLANSEMI3
The system is generated from these files by using XPES to concatenate them and XFYZ to compact the resulting files.
The macro
SPROGSGEN parameter list
under :SPROGS initiates a generation run. The following parameters are possible.
3.1.1 If the first parameter is null, or if ALL is present, every routine is recompiled.
3.1.2 If NONE is present, the system is generated from the semicompiled only.
3.1.3 If the names of source routines (without the letters SRC) are added, eg
FORT1, PLAN2, FORT4
only these files are recompiled.
3.1.4 IE OPT is present, XFEH is used. However, since this requires 120K to run, it should not be used during the day.
3.1.5 If JT time is present, a job time other than 180 secs will be used.
The generation programs reside in :BSLIB
SPROGSGEN1 Steering macro SPROGSEDIT Edits source file and compiles SRPOGSLIB Steering macro for XPS and XFYZ SPROGSLIB1 XPES macro
Source file editing involves applying any edit file for the given source file, and then inserting the COMMON blocks, referenced in the source by
==COMMON blockname
If an edit, compilation or XFYZ run fails, no semi-compiled library update is performed. XPES errors are noted and ignored.
Regeneration runs can always be restarted in the event of failure.
Error messages are preceded by ========