Contact us Heritage collections Image license terms
HOME ACL Associates Technology Literature Applications Society Software revisited
Further reading □ OverviewNo.1No.2No.3No.4No.5No.6No.7No.8No.9No.10No.11No.12No.13No.14No.15No.16No.17No.18No.19No.20No.22No.23No.24No.25
ACD C&A INF CCD CISD Archives Contact us Heritage archives Image license terms

Search

   
ACLLiteratureProgress ReportsSPROGS Technical Papers
ACLLiteratureProgress ReportsSPROGS Technical Papers
ACL ACD C&A INF CCD CISD Archives
Further reading

Overview
No.1
No.2
No.3
No.4
No.5
No.6
No.7
No.8
No.9
No.10
No.11
No.12
No.13
No.14
No.15
No.16
No.17
No.18
No.19
No.20
No.22
No.23
No.24
No.25

SPROGS Technical Paper No 17: SPROGS Generation System Version II (Update)

R E Thomas

11 February 1974

This paper supersedes Technical Paper No 12 and describes the generation system in use for Version II. The main changes concern the method of inserting COMMON, the number of source files and the use of exofiles.

1. SPROGS VERSION II

1.1 Macro

The macro SPROGS in :SPROGS will refer to the developing system. When issued, Version II will be available from the macro SPROGS under :MACROS.

1.2 Semi-compiled Library

The two library files will be held in:

    SPROGSEMIE1
    SPROGSEMIE2 
with previous copies in: 
    SPROGSEMI1X 
    SPROGSEM12X 
all under 
    :SPROGS . 
When issued, Version II will be held in 
    SPROGSEMI1 
    SPROGSEMI2 
under 
    :SUBLIB 
A version, suitable for use with overlays, is available in 
    SPROGSEMIO1 
    SPROGSEMIO2 
under :SPROGS, but is not directly accessible by the macros. 

1.3 Source

Source files are all kept in :BSOURCE. They are:

  FORTSRC1   Block data COMMON initialisation
  FORTSRC2   Low level routines, such as STSPR, DVOUT etc
  FORTSRC3   Low level library routines, mainly array access functions
  FORTSRC4   Library routines using lower level ones
  FORTSRC5   Execution routines for Display Routines
  FORTSRC6   FIDF, INTERP etc
  FORTSRC7   Display Routines
  FORTSRC8   High level routines
  PLANSRC2   Low level PLAN device routines
  PLANSRC3   PLAN library 
  PLANSRC4   PLAN routines needing to be ordered

1.4 Edit files

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, for example:

   EDFORTSRC1 

1.5 Common files

The system common blocks are stored in files under :BSCOMMON. The files are:

SPRG1   I/0 FORTRAN block   
SPRG2   File stack block   
SPRG3   General FORTRAN block   
SPRG4   Error handling block   
SPRG5   Real constants   
SPRG1X  PLAN version of SPRG1   
SPRG3X  PLAN version of SPRG3   

1.6 Intermediate semi-compiled

The semi-compiled generated from individual file compilations is stored in files whose names are the same as source names, with the letters SRC replaced by SEMI. FORTSEMII is a filestore file under :SPRGSEMI. A11 the others are on EDS30 pack 2 as exofiles.

Overlay semicompiled is stored in files with OV as the last two letters of the name. FORTSEMI1OV is in :SPRGSEMI, with the others on pack 2.

The system is generated from these files by using XPES to concatenate them and XFYZ to compact the resulting files.

2. SYSTEM GENERATION

2.1 Macro

The macro:

    SPROGSGEN parameter list 

under :SPROGS initiates a generation run. The following parameters are possible.

2.1.1 If the first parameter is null, or if ALL is present, every routine is recompiled.

2.1.2 If NONE is present, the system is generated from the semi-compiled only.

2.1.3 If the names of source routines (without the letters SRC) are added, for example:

      FORT1, PLAN2, FORT4 

only these files are recompiled.

2.1.4 XFEH is used to compile the system. If NOPT is present, XFIH is is used instead.

2.1.5 OVER will cause the overlay version to be recompiled.

2.1.6 NOLIB will prevent any library generation. The routines·will be compiled only.

2.1.7 JT allows a job time to be specified.

2.1.8 MZ will set maxsize to 120K. This will only be necessary for very long label-less FORTRAN programs.

2.2 Generation programs

The generation programs reside in :BSLIB.

   SPROGSGEN1   Steering macro
   SPROGSEDIT   Edits source file and compiles
   SPROGSLIB    Steering macro for XPES and XFYZ
   SPROGSLIB1   XPES macro.

Source file editing involves applying any edit file for the given source file, and then listing the COMMON blocks. In FORTRAN, the COMMON blocks are referenced by:

*INCLUDE (*CR, : BSCOMMON.blockname) 

At the moment, inclusion is done by the file :BSEDITS.EDFORTCOMMON generating an edits file to be applied to the original source. However, a new version of the FORTRAN compiler should allow the compiler itself to do the insertion.

In PLAN, the COMMON blocks are referenced by:

 ==COMMON blockname 
and 
 :BSEDITS.EDPLANCOMMON generates the required edits file. 

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========

⇑ Top of page
© Chilton Computing and UKRI Science and Technology Facilities Council webmaster@chilton-computing.org.uk
Our thanks to UKRI Science and Technology Facilities Council for hosting this site