Fortran on Titan: System Note 1
B C Chapman
May 1966
1. Introduction
At a later date a proper description of the system will be written.
The purpose of this note is to describe the facilities available in the preliminary version
in terms of existing documentation. This comprises:
- "The S3 Fortran System on Atlas 2" January 1966.
- "The S3 Fortran System on Atlas 2" - Amendments" 16.3.66
- "Manual for the S2 Language" (AWRE Aldermaston) August 1964
The last document describes the dialect of Fortran used, and the other two the environment
in which it exists. Machine code subroutines may be written in ASP, an early form of which was described
in "INTERASP - an intermediate Atlas symbolic programming language" (A.E.R.E. Harwell report R4285).
2. Modifications to the S2 Manual
- 2.4.1
- INTEGERS will normally be in the range (-220 , 220 -l).
When this is insufficient use the declaration e.g. LQNG INTEGER A, B which allows A, B to lie in the range
(-236 , 236 -l)
- 2.4.2
- REALs are in floating octal with 13 significant octal digits, with a range of approximately 10-116
to 10113 in magnitude.
- 2.4.6
- Arrays of up to 13 dimensions may be used.
- 3.3
- Arithmetic expressions - division by zero will kill a job.
- 4
- Control Statements:
The compiler analyses in detail the flow in a routine to discover DO loops and other loops of similar type.
The rule that there must be only one entry to an inner DO loop from an outer DO loop or from the main level
of the routine is strictly maintained.
Since the S3 compiler actually analyses the flow to discover loops, it cannot be fooled on this point.
- 5
- Functions:
In S3 a function should not change COMMON or any of its arguments, and it is assumed that the value provided
is independent of how the function is used. Thus F(X) is assumed to provide the same value always.
- The declaration e.g. NON-ECON F allows exceptions to the last part of the rule,
so that functions can generate sequences e.g. of random numbers.
- 7
- The first version of the library will not include
routines for the handling of magnetic tape. Therefore the statements READ TAPE, WRITE TAPE,
READ DISC, WRITE DISC must not be used. READ INPUT TAPE and WRITE OUTPUT TAPE may only be used for slow
peripheral streams, and must not be used for magnetic tape.
- 11
-
The treatment of equivalence is different. It is therefore important that the rules of section 11.6
should be followed.
- Appendices
- Appendix C applies. Note that when using paper tape input erase and tab are not allowed.
- Appendix H Section H1 applies except that a chain can be formed on any logical tape number.
Sections H2, H3 do not apply.
- All other appendices are either replaced by sections of the system manual or describe facilities
not available.
3. Modifications to the System Manual
- 1.6
- Loader work space commences at 26K (25.5K if a library is being written).
- 2
- Whilst generally true, this chapter will be modified, particularly in respect of preset job
description limits. OUTPUT 15 will be preset to the tape punch.
Since there is no card punch, there will be no punched output from the compiler.
- 3.8
- *ABCLOAD is not available.
- 4.3
- The heading should read: Punched Card Images Output (FORGO only). Delete the last sentence.
- 7.4.4
- Release of Library Tapes (A new section)
-
All tapes which have been involved in either reading or writing libraries will be released at the end
of loading before execution begins.
- Appendix 1
- Diagnostics implying immediate cessation of loading halfway down list change a note to:
Number of blocks is less than two. Last note: change 2048 to 512.
- Appendix 2
-
n p
7 Extracode not yet available m - 1
15 Output stream limit exhausted m - 1
16 Mis-use of input organisational extracode m - 1
17 Mis-use of output organisational extracode m - 1
18 Mis-use of general organisational extracode m - 1
20 Spare
21 No backing store device selected or non-existent m - 1
22 Backing store illegal search m - 1
23 Backing- store illegal write m - 1
24 Malformed input stream m - 1
25 System failure on handling input stream m - 1
42 Job terminated by CALL EEX1T m - 1
50 Local time expired D
53 Backing store' transfer not attempted D
54 Backing store transfer failure D
55 Backing store label failure D
56 Backing store search failure D
57 Deck failure D
60-72 Spare D
89 Hardware failure in handling output stream D
98 Output stream limit completely expired m - 1