BRITISH COMPUTER SOCIETY FORTRAN SPECIALIST GROUP



Minutes of a meeting held on

24th January, 1975 at the Royal

Society for Tropical Medicine and

Hygiene, 26 Portland Place, London, W.l.


Present:   Mr. D. Muxworthy (Chairman)       University of Edinburgh

Mr. E. O. Bodger (Vice-chairman)  IBM W. T. Systems Aid Centre

Mr. K. Aldridge                   North Thames Gas

Mr. G. Ashley                     I.C.L.

Mrs. E. Aylmer-Kelly              University of York

Dr. J. C. Baldwin                 University College, Cardiff

Mr. B. J. Banes                   Rolls-Royce, Bristol Engine Division

Mr. S. J. Bell                    Computer Weekly

Mr. H. W. Eradly                  Bradly Associates

Mr. D. W. Brown                   SCICON

Dr. A. C. Day                     University College, London

Mr. B. C. Chapman                 Honeywell Information Systems Ltd.,

                                  Hemel Hempstead

Mr. E. C. Coles                   M.R.C.

Mr. J. Cullen                     B.P.

Mr. M. Fitzsimmons                Berne Electronics

Mr. D. J. Flower                  SCICON

Mr. A. J. Forward                 I.C.L.

Mr. J. Gilbert                    U.L.C.C.

Mr. D. Grossmann                  E.S.R.O.

Mr. D. Hill                       Micro Computer Systems Ltd.

Mr. I. D. Hill                    M.R.C.

Mr. D. J. Holmes                  Rolls-Royce (l97l) Ltd.

Mr. I. Kelly                      Calikam

Mr. W. M. M. Kerr                 C.E.G.B.

Mr. H. J. King                    B.B.C.

Mr. R. S. Love                    G.L.C.

Mr. D. J. Maisey                  I.C.L.

Mr. I. McNico1                    E.S.R.O.

Mr. W. Y. Milne                   I.C.C.

Mr. C. W. Nott                    Central Computer Agency

Mr. L. A. Odell                   Ministry of Defence

Mr. N. Patet                      South Eastern Road Construction Unit

Mr. J. S. Pearson                 I.C.L.

Mr. G. Pegg                       South Eastern Road Construction Unit

Mr. M. Peltu                      Dataweek

Mrs. R. J. Pyne                   Computing

Mr. T. L. van Raalte              Ministry of Defence, A.W.R.E.

Mr. R. W. S. Rodwell              I.C.L.

Mr. R. J. Salmon                  SCICON

Mr. B. Shearing                   Alcock Shearing and Partners

Dr. G. M. Stacey                  E.R.C.C.

Mr. C. R. Towler                  I.C.L.

Mr. M. C. Turnill                 University of Glasgow

Mr. E. Willey                     Prudential Assurance Co. Ltd.

Mr. R. Woollett                   U.L.C.C.

Mr. P. A. Clarke (Secretary)      Rothamsted Experimental Station


Apologies for Absence:

Mr. D. Ellison                    University of Manchester R.C.C.

Mr. C. K. Mackinnon               U.K.A.E.A., Risley

Mr. T. D. Palmer                  Computer Power Ltd.

Mr. P. D. Bond                    Philips Industries

Mr. B. Meek                       Queen Elizabeth College, London


l. Introduction by   Mr. Shearing welcomed the many new attenders and

   The Chairman.     distributed a summary sheet of the activities of the

group. He also welcomed the first visit by a president of

the B.C.S., Mr. E. L. Willey. He said that this was

encouraging to the group because of Mr. Willey's long

experience in programming and Standards activities.


2. Election of       Mr. Shearing, as retiring chairman, declared that the

   Officers.         steering committee proposed the following officers for

1975:


Chairman: Mr. D. T. Muxworthy of Edinburgh University.

Vice-chairman: Mr. E. O. Bodger of IBM W. T. Systems Aid

Centre

Secretary: Mr. P. A. Clarke of Rothamsted Experimental

Station

These would be subject to election at the next meeting.


3. Address by the    Mr. Willey briefly expressed the view that groups like

   President of the  the Fortran specialist group were important to the B,C.S.

   B.C.S.            because they could provide an effective voice on

technical matters such as influencing the revision of the

ANSI Fortran Standard. He said that when he visited other

specialist and branch meetings, he could cite the Fortran

Standards work as an example of a current B.C.S. activity

of significance.


4. ICL 2900 Series   Mr. D. J. Maisey of the I.C.L. Systems Programming

   Fortran           Division, Bracknell, who was involved in designing the

2900 series Fortran Language standards presented a

summary of the new facilities. He said that the design

criteria were:


l. The language should be a superset of the ANSI 1966

   standard.

2. It should be upward compatible with existing ICL

   implementations .

3. A few bad and obsolete features in existing

   implementations would be dropped.

4. Some of the better features from other manufacturers

   would be included.

5. Many of the features in the forthcoming ANSI standard

   would be included.


Generally the language would be made as machine

independent as possible.


He then detailed the major extensions to the ANSI 1966

standard and listed extensions and restrictions nn the

existing 1900 series and system 4 series implementations.

[See Appendix 1]


5.  Next meeting.    The next meeting will be held on Friday, 7th March 1975,

at 10.30 a.m.; the venue is not yet decided.




APPENDIX 1


(Note that this appendix is for interest only and whilst information contained

herein is believed to~be correct, no liability is assumed by the Fortran

Specialist Group or by Mr Maisey.)


Summary of the Main Extensions to ANSI 1966 Standard in the ICL 2900 Fortran

Language as described by Mr D. Maisey


Blank lines are allowed and treated as comments.


Variables and constants may be declared with a symbolic length thus:


INTEGER*J


The allowed symbols are


I, J, K for INTEGER (default is I)


E, D, Q, R for REAL and COMPLEX (default is E)


L, M, N for LOGICAL (default is L)


These lengths are mapped onto a suitable storage by means of a compile-time

option.


Type statements have been extended to include the symbolic length. Thus:

REAL*E X,Y,Z, A*D


Also functions may be declared with a symbolic length.


A new type, CHARACTER has been introduced for constants, variables, arrays and

functions. These may have a declared length (in number of characters) in the

range 1-255


Character constants are of the form 'constant'


Character comparison is possible within relational expressions using .EQ.,.GT.,

etc and the collating sequence of the machine is used. If one character

expression is of shorter length than the other, the shorter is padded on the

right with spaces before comparison.


Assignment of characters is allowed and for different length characters, the

rules are:


(1) extend with spaces and assign if R.H.S. is shorter than L.H.S.

(2) truncate from right and assign if R H.S. is longer than L.H.S.


Hexadecimal constants of the form Zdddddddd are allowed but their use is

restricted to the DATA statement only.


Subscripts of expressions may be of any numerical type and length and may be of

any complexity.


Expressions and assignments containing mixed numerical types and lengths are

allowed - with the exception of the form: expression**complex.


A**B**C is defined to mean A**(B**C).


The comma before the controlling variable in a computed GO TO may be omitted.


If the controlling variable is out of range, a computed GO TO acts as if it

were a CONTINUE.


PAUSE n is allowed with n being either a 1-5 digit number or a character

string.


The instructions in a DO loop will be executed at least once


The rules for extended range of a DO loop have been simplified so that

branching may enter an 'active' DO loop only, provided that the control

variable has not been redefined. A loop is regarded as 'inactive' prior to

being entered at the DO statement and after it has been exited normally.


List directed input/output is provided. This is indicated by an asterisk in

the place of a Format label in input/output statements. The data items must be

delimited by either a blank, a comma or end of record. If the input/output

list contains more variables than there are data items, a READ can be

terminated by /. Each READ/WRITE statement starts a new record. 'End of Record'

causes an 'End of READ' except if the READ is half way through a complex data

item or a character data item (which may be up to 255 characters and thus may

not fit onto a single record).


NAMELIST input/output is provided (as implemented in ICL 1900 series Fortran).


Direct access input/output is provided (this does not require a DEFINE FILE or

a FIND statement as exists in some Fortran implementations) by statements of

the form:

READ(unit,fmt REC=n,REPLY=m)iolist


where REPLY returns the physically next record after the statement has been

executed. If n is set to m and the statement repeated. sequential access will

result.


READ, PRINT and PUNCH may have implied units. In this case, the statements

used are of the form:

READ fmt,iolist


ENCODE/DECODE are provided (as in CDC Fortran) for conversion to/from character

variables 'in core'.


Arrays may have up to seven dimensions.


The variable used to dimension adjustable dimensioned arrays may be passed in

common.


Named common blocks may have different lengths in different program units.


In an EQUIVALENCE statement, an array name may be used to indicate the first

element of that array.


If a user defined function has the same name as a basic external function it

must be declared in an EXTERNAL statement of the form:

EXTERNAL & name, . . .


A function may be typed by a type statement within that function. Date initial-

ization may be performed in a type statement. An IMPLIC1T statement may be

used to declare the type and length of variables whose names start with

specified letters. The general form is:


IMPLICIT type*lenqth (Letter1 - Letter2)


In a DATA statement, the list specified variables may have different types and

lengths to the corresponding constants - provided this is sensible. DATA X/1/

is allowed. DATA I/1.32/ is not allowed. In a DATA statement, an arrayname

may be used to indicate all the elements of that array.


In FORMAT statements, brackets may be nested to any level.  A T descriptor is

provided for tabbing, an M descriptor is provided for reading data that

consists of 'integers with exponents' eg. 3I3 meaning 3000.


The G descriptor allows numeric, logical and character data to be input/output.

G w.d. acts as Iw for integers, as Fw.d for reals and complex, as Lw for

logicals and as Aw for characters. The Z descriptor is provided for hexadecimal

data.


Statement function definitions may include array elements.


Automatic function selection (sometimes called Generic) is provided for ease of

use and simplification of REAL/DOUBLE PRECISION length changes.


Subprograms may have multiple entry points. These are indicated by an ENTRY

statement, which is similar in Syntax to SUBROUTINE or FUNCTION statements.

The type of the entry name and the number of arguments may be different to that

of the function containing the entry. There must be at least one executable

statement between the ENTRY and END statements.


The RETURN n statement is provided (as in ICL System 4 Fortran). If n is out

of range, the statement is interpreted as RETURN. BLOCK DATA subprograms may

be named.


Data initialization of items in labelled common may be performed in any

subprogram in which that common is declared.


A PROGRAM statement allows main subprograms to he named.


Variables local to a subprogram do not become undefined upon return from that

subprogram.


The concept of second level definition has been dropped.