BRITISH COMPUTER SOCIETY - FORTRAN SPECIALIST GROUP
Minutes of AGM held at BCS Headquarters on Monday 19 April 1982
Present: P Allatt : ICCC
S G Brazier : United Glass Ltd
P A Clarke : Rothamsted Experimental Station
G L Harding : ECMWF
C G Lazou : ULCC
C K Mackinnon : UKAEA
B Meek : Queen Elizabeth College
K Normington : Coventry Polytechnic
D Muxworthy : University of Edinburgh
M Nunn : CCTA
T L Van Raalte : MOD
J Roberts-Jones : Liverpool
A L Swarbrick : UMIST (SERC)
L M Swarbrick : Ferranti Computer Systems
D M Vallance : University of Salford
J D Wilson : Leicester University (Chairman)
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
FUTURE MEETINGS
Monday 28 June 1982 : Discussion on Vienna ISO meeting
Monday 13 September 1982 : PERQ presentation
Monday 29 November 1982 :
Monday 7 February 1983 : ULCC
Monday 11 April 1983 : AGM
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
1. APOLOGIES FOR ABSENCE
None received.
2. MINUTES OF PREVIOUS MEETING [8 February 1982]
Accepted.
3. MATTERS ARISING
Chris Lazou (University of London Computer Centre) will send a copy of
a report on experiences with the CDC FTN5 computer on receipt of a
large stamped addressed envelope.
Appendix B of these minutes is a form which members are asked to use
to describe any implementation of Fortran 77 known to them.
Completed forms should be returned to the Secretary.
(D M Vallance, Computing Centre, University of Salford, Salford M5 4WT.)
It was felt that the book list (Appendix A of previous minutes) could
usefully include a brief comment on the contents of each book with the
reviewer's initials. It would be made clear that the remarks were
not the Group's view.
The Treasurer has not received minutes for over a year owing to
industrial action at his place of work.
4. TREASURER'S STATEMENT
Fortran Forum: The approximate income from the Forum was £1,300.
Expenses for hire of room and refreshments were £720. These figures
will need adjustment when speakers' expenses are paid and fee
concessions for the speakers and the organising committee are taken
into account.
Other Activities: The Group's contribution to the ISO meeting (£50)
has been paid to Brian Meek.
There is still a cheque payable to a speaker in 1980-81 which has not Action
been presented. The Treasurer will prepare a financial statement for J Roberts-
the BCS by 6 May 1982. This statement will be audited at Liverpool. Jones
5. ELECTION OF OFFICERS
The Group thanked the resigning Treasurer, John Roberts-Jones, for
his valuable work on its behalf during the last four years.
The following Group members were elected to the specified posts:
Chairman : J D Wilson
Secretary : D M Vallance
Treasurer : T L Van Raalte
Vice-Chairman : G L Harding
Steering Committee : D Muxworthy
The Secretary will notify the BCS of the results of the elections. Action:
D M
Vallance
6. CHAIRMAN'S BUSINESS
Members of the Group should inform the Secretary of any change of Action:
address. Members who no longer wish to receive the minutes should All
also notify the Secretary.
The Secretary will ask the BCS for an up-to-date copy of the mailing Action:
list for himself and the Chairman. D M
Vallance
The Chairman attended the meeting of the Specialist Group's Board
on 12 February. The main business was a discussion of the Expert
Systems Specialist Group. Group members who require a copy of the
minutes of this meeting should apply directly to BCS Headquarters.
The Group has been asked to send minutes and other publications to Action:
Peta Walmisley and Barry Barber (Specialist Group's Board) at BCS D M
HQ. Vallance
The Chairman and Secretary will prepare the Group's annual report Action:
for the BCS. J D Wilson
D M
Vallance
The Chairman circulated the BCS Computing Award proposal form and
advance information on an international conference on man-machine
systems to be held at UMIST, Manchester, on 6-9 July 1982.
SERC are planning a two week Fortran 77 Programming workshop in the
Autumn and are hoping to recruit lecturers who are experienced in
teaching design and testing techniques using Fortran 77. (Contact
R E Thomas, SERC, Rutherford and Appleton Laboratories, Atlas Centre,
Chilton, Didcot, Oxfordshire OX11 OQX.)
David Muxworthy reported that Loren Meissner is resigning and
Jeanne Martin is taking over the job of Secretary. FOR-WORD may
well not continue. The ACM is setting up a Fortran Specialist
Group, ForTec, which will publish a bulletin, sponsor conference
sessions and generate income (by holding Fortran Forums) which could
help with expenses for X3J3 committee members. (An application
form for ForTec appears as Appendix C to these minutes.)
There will be a Fortran Pioneer Day at the NCC at Houston in June
to celebrate 25 years since the first Fortran processor was delivered.
8. DATE AND PLACE OF NEXT MEETING
The next meeting of the Group will be on Monday 28 June 1982 at BCS
Headquarters. The afternoon session will be devoted to a discussion
of the Fortran Experts meeting in Vienna which will be led by
David Muxworthy and Alan Clarke.
[The 28 June meeting was cancelled because of a threatened rail strike.
The following meeting was held on 13 September 1982.]
9. AFTERNOON SESSION
David Muxworthy (Edinburgh University) gave a talk outlining the
proposals for Fortran 8X. A summary of this talk appears as
Appendix A to these minutes.
PROPOSALS APPROVED FOR FORTRAN 8X
Summary of a talk given to the BCS Fortran Specialist Group on April
19th, 1982, itself an attempt to summarize the ANSI X33 proposal document
S6.81 dated March 2nd 1982. The following proposals have been approved by
X3J3, but the committee reserve the right to revise or rescind any item
before the next revision of the standard is completed.
1. Language Architecture
The language will consist of a core, an obsolete features module and
a language extension module or modules. Application area support modules
may be additional and dependent on the core and/or the language extension
modules. The criteria for the core are that it be:
general purpose
portable
safe
efficient
concise and consistent
contemporary
compatible (with modules)
The obsolete features module (O.F.M.) is an integral part of the Fortran
standard and contains those features of the current standard considered to be
outmoded, but which are retained for compatibility with the previous standard.
The O.F.M. contains:
Fortran 77 source form Alternate RETURN
EQUIVALENCE ASSIGN, assigned GO TO
COMMON, BLOCK DATA statement functions
Passing array elements,substrings to dummy array DOUBLE PRECISION
Arithmetic IF END=,ERR=
Computed GO TO H,X,D in format
specific names for intrinsic functions Fortran 77 DO
ENTRY PAUSE
DATA DIMENSION
The functionality of all the above items is in the core, except for storage
association, aliasing and PAUSE.
2. Source Form
The source form is free format with no column significance; it is
incompatible with the Fortran 77 form. Blank is a significant separator.
Statement continuation is effected by an ampersand placed at the end of a
line which is to be continued. Statements are terminated by an end of line
or by a semicolon. Comments begin with an exclamation mark. Labels are
separated from the rest of the statement by one or more blanks.
Names may have up to 31 characters and may include underline as a
significant character other than in the first position. Lower case characters
are indistinguishable from upper case ones except in character constants.
3. Generalized Precision
For each entity cf type real it is possible to specify the minimal
decimal precision and minimal exponent range. The processor will then map
this onto suitable hardware. It is possible to define the attributes of
constants. There are a set of environmental enquiry functions.
The attributes of actual and dummy procedure arguments must agree.
This is facilitated, for the Fortran user, by a generic type statement which
allows arguments to be defined to have one of a set of attributes, or to have
the attributes of the arguments as passed. This could have the effect of
requiring the implementor to compile duplicate (or triplicate) sets of all
floating point instructions.
4. Type BIT
Type BIT has many of the characteristics of type CHARACTER, with
arbitrary length specification, substrings, concatenation etc. Constants and
input output may be in binary, octal or hexadecimal form. There are transfer
functions to and from integers and logicals and there are manipulative
functions such as shifting.
5. CHARACTER Extensions
Varying length strings with a maximum specified length have been
introduced. The declaration is of the form:
STRING*len name,.....
There is considerable overlap of functionality between varying length strings,
fixed length strings (Fortran 77 style) and arrays of characters but X3J3 were
reluctant to put Fortran 77 characters in the obsolete module.
New functions applicable to both strings and characters are introduced
to manipulate text and to convert between the two types.
6. Data Structures
Fixed data structures are defined by a FORM statement and then declared
in a type statement with the form (followed by a colon) as a type. Individual
fields may be referenced, using the dot as a separator, and whole structures
may be used as a single entity where logically possible.
7. Control Structures
Block DO
There are three forms of the DO statement, the indexed (as in Fortran 77)
the counted and the indefinite. The forms are:
DO(i=e1,e2[,e3]) DO(e4 TIMES) DO
: : :
REPEAT REPEAT REPEAT
The ei are integer expressions. There is an EXIT statement which causes
control to pass to the statement following REPEAT. There is no WHILE or UNTIL
form, the functionality of which is provided by an indefinite loop and an EXIT.
BLOCK CASE
The form of the block CASE is
SELECT CASE (expr) where expr is integer, logical, character
CASE (block-selector) or bit
statements
[CASE (block-selector)
statements
: ]
END SELECT
where block selector is a list of constant expressions or constant expression
ranges of the form e1:e2, or is DEFAULT.
Block naming
The first and last lines of a block (IF,DO,etc) may have a name
appended on the right; in this case other control lines (ELSE, CASE etc) may
optionally be named. This acts partly as a comment but also allows a
processor to check that blocks are properly nested. This feature does not
allow multi-level exiting from nests of DO's.
In addition RETURN and END lines may be named provided the appropriate
program unit type is inserted, e.g.
END SUBROUTINE MATRIX_MULTIPLY
8. Dynamic Storage
In general, all restrictions in Fortran 77 which assume a lack of
dynamic storage are removed. These include restrictions on concatenating
character arguments, assignment with overlap etc. Dynamic local arrays are
allowed in subroutines and function subprograms. Recursive routines are
allowed; they have a distinctive declaration.
9. Subprogram Referencing
Subprogram references are extended to allow subsets of arguments to
be passed and for arguments to be specified in the calling program by position
or by keyword. The arguments of the called subprogram must in this case be
specified in an INTERFACE sequence in the calling program. In the called
program dummy arguments may appear in an OPTIONAL specification statement
and there is a logical intrinsic function PRESENT which may be used to
determine if the actual argument existed at the call. There is no explicit
provision for defining default values of arguments.
An additional specification statement allows dummy arguments to be
declared to be in, out or in-out.
10. Internal Procedures and Shared Data
Program units may host an arbitrary number of internal procedures but
internal procedures may not themselves be lexically nested. There is no
inherent connection between the local variables of an internal procedure
and those of its host procedure but host variables may be introduced to the
internal procedure by specifying them in an INHERIT statement in the internal
procedure. An internal procedure name may not be used as an actual argument.
The common block is replaced by a SHARED DATA program unit of which
there may be an arbitrary number in a program. They have the form:
SHARED DATA sdname
variable specifications
END
The shared variables may then be introduced to a subprogram by the "extended
INHERIT" which has the form:
INHERIT/sdname/
to bring in the whole set of variables, or
INHERIT/sdname/varname,varname,....
to select variables. The shared data program must therefore be available at
compile time and it is nominated in a USING statement (below).
11. Input-Output Extensions
There are several detailed extensions and clarifications to input»
output, the most important of which are the ability to specify whether a
file is read-only, write-only or both, "engineering" output format wherein
the decimal exponent is always a multiple of 3 and the functionality of
NAMELIST input-output as an extension of list-directed I/O.
l2. Compile-time Facilities
Each program unit will be assumed to reference only core facilities
unless it is preceded by'a USING statement which specifies the other modules
required. The USING statement may also be used to point to any other
information required at compile-time such as shared data programs, macro
libraries etc.
Simple macro facilities are provided with compile time variables,
declarations and control structures which may be used to select the code to
be compiled from an extended program. Also simple macros without arguments
have been approved; this covers the INCLUDE functionality. More complex
macro facilities have been approved in principle but not in detail.
l3. Arrays
A comprehensive set of facilities for manipulating matrices as single
entities has been approved. These allow for array sections, array assignment
in forward and reverse order, packing and unpacking, aliasing subarrays,
shifting, replicating, bound functions, diagonal extraction etc. etc. There
are many intrinsic functions to allow implementors freedom to exploit their
hardware fully. There are also new control statements such as
WHERE
<statements>
[OTHERWISE]
<statements>
ENDWHERE
which is analogous to a simultaneous IF on all the elements of an array. Other
than a matrix multiplication function, there are no matrix manipulation
features. In particular there is no matrix inversion function.
14. Unresolved items
Many items remain to be resolved. Those discussed at the February 1982
meeting of X3J3 included whether to base the Fortran 8X document on the
Fortran 77 one or whether to start afresh; which items should be in core
and which in the extension module; event handling; the use of varying length
strings in unformatted I/O; the interaction of SAVE and recursion; macros.
Other unresolved items include varying structures, aliasing and the effect
of the IEEE floating point standard.
David Muxworthy
20th May l982
[There was no Appendix B.]
A P P L I C A T I O N F O R F O R T e C M E M B E R S H I P *
ASSOCIATION FOR COMPUTING MACHINERY
11 WEST 42ND STREET, NEW YORK, NY 10036
Please enroll me as a member of
F o r T e c
SIGPLAN Technical Committee on Fortran
Membership includes subscription to "Fortran Forum", the ForTec newsletter. Please
make checks payable to:
ACM, Inc., PO Box 12115, Church Street Station, New York, NY 10249
Annual Membership Dues are $6 for ACM Members, $3 for ACM Student Members, and $13
for Non-ACM Members.
................................................
Name (Please print or type) ( ) ACM MEMBER
ACM Member No. ......... ....
Annual membership dues: $6.
(See note regarding dues
payment.)
................................................
Mailing Address ( ) ACM STUDENT MEMBER
ACM Student Member No. ....
Annual membership dues: $3.
(See note regarding dues
payment.)
................................................
( ) NON_ACM MEMBER
Enclosed is annual dues of
$13.
................................................
City State Zip
( ) SUBSCRIPTION TO "FORTRAN
FORUM" (ForTec NEWSLETTER
ONLY
Enclosed is $20 payment for
annual subscription.
Note: Subscription is in-
cluded with membership dues.
................................................
Signature
( ) Please send information on ACM Membership.
( ) New address. Please change my ACM record.
*Note: ACM Members and Student Members who expect to renew their membership within
the next six months: Send no ForTec dues with this application; you will be
billed on your renewal notice. Those expecting to renew in seven or more
months: send one-half the annual ForTec dues with this application.