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.)


7.      X3J3 BUSINESS


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.




APPENDIX A


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.]



APPENDIX C



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.