British Computer Society - Fortran Specialist Group

Minutes of Meeting held at BCS Headquarters on Tuesday 27th May 1980

Present: G. L. Harding (Chairman) ECMWF

P. A. Clarke Rothamsted Experimental Station

B. Ford NAG

W. S. Hilder

D. T. Muxworthy Edinburgh University

C. Queree Martin and Voorhess Associates

J. Roberts-Jones Liverpool City Council

K. Scott CCTA

B. T. Smith Argonne National Labs., USA

D. M. Vallance Salford University

T. L. van Raalte MOD

J. D. Wilson (Secretary) Leicester University

1. Minutes of Previous Meeting *[31 March 1980]*

The minutes were approved.

2. Matters arising

A. Clarke reported that the "Completeness Module" proposed has been

revised since the May meeting of X3J3 (see below).

3. Financial Report

J. Roberts-Jones was formally elected treasurer for the 1980/81 session.

(Proposed - G. L. Harding; seconded - T. L. van Raalte.)

The treasurer presented the statement of accounts for the year ending

30th April 1980 (Appendix A). It was noted that expenditure was down over

the previous year, mainly due to there being one fewer mailing. However, the

treasurer pointed out that postal rates have increased, the mailing list is

growing again and the group is being charged a high rate for refreshments.

It was questioned whether overseas members were receiving their copies of the

minutes air mail.

The following resolutions were passed.

(i) RESOLVED: That the Treasurer's accounts for the financial year 1979/80

be approved.

(ii) RESOLVED:

(a) That an account be opened in the name of the Group with Lloyds

Bank Limited;

(b) That all transactions in respect of the account be authenticated

by any two of the Treasurer for the time being, the Chairman for

the time being, the Secretary for the time being; and authorised

signatories of the Society's main accounts;

(c) That the Chairman.Secretary and Treasurer be authorised to issue

such instruments as may be required to give effect to this

resolution, such instruments being deemed to form part of the

minutes of this meeting.

(iii) RESOLVED:

(a) That the Group's account with Barclays Bank Limited be closed

on 30th June 1980;

(b) That the balance at that date be transferred to the Group's

account with Lloyds Bank Limited;

(c) That the Treasurer be authorised to issue such instruments as

may be required to give effect to this resolution, such

instruments being deemed to form part of the minutes of this

meeting.

4. X3J3 Activities

B. Smith reported on the latest meeting of X3J3 (May 12th-16th 1980)

as follows.

Macro facilities: committee felt the current proposal too complex.

Precision proposal: (see Appendix B) tabled for next meeting.

Completeness module: see 4.2 below.

Core + modules: the criteria for the core still not clear. It was agreed

that Applications Modules will not be discussed by the full committee.

Exception handling: the needs of Data Bases are to be represented.

A proposal has been made.

Character Data Types: a proposal to allow varying lengths up to a

stated maximum was passed.

A proposal to charge a "participation" fee and minutes distribution fee was

made by ANSI. This has not yet been approved.

B. Smith said his general impression was that the committee did not

understand the proposal. They felt it would be impossible to specify and

implement such a module and therefore the onus lies on the author(s) to show

the contrary. There was, however, some sympathy for the concept of a

Completeness Module from several members of X3J3 and it was suggested that the

author(s) should make a more detailed proposal based on Fortran 77. Any proposal

which appears in the Minutes of X3J3 before August 1980 can be considered for

the next standard: the Completeness Module has satisfied this condition.

Some questions asked were: "does it affect efficient code generation,

which some Fortran users require at all costs?" and "will it restrict new

features?" A. Clarke replied that the Module would be an option which could

be turned on or off by the user.

Some of the ideas in the Module have been addressed elsewhere,

e.g. PFORT Verifier and the WATFIV compiler.

It is hoped to gain further support (preferably non-British) for the

Completeness Module at the ISO meeting in Amsterdam (October 2Oth-23rd 1980).

B. Ford said that NAG would be happy to referee a re-write of the document

if required.

A full report of X3J3's discussion has been addressed to A. Clarke by

A. Wilson.

5. Other Fortran Group Activities

5.1 ISO Fortran Experts Meeting (Amsterdam, October l980)

British contributions have been offered by:

J. Reid, Harwell - Numerical Precision

A. Clarke, Rothamsted - Completeness Module

J. du Croz, NAG - Environmental Parameters

Any other interested person should contact D. Muxworthy as soon as possible.

5.2 Fortran Forum

This is provisionally arranged for Friday October 24th 1980 (immediately

after the ISO Experts meeting), probably in London. G. Harding and

J. Roberts-Jones are to arrange an organising committee.

6. BCS Business

The BCS contribution to the Fortran Specialist Group's budget for 1980/81

is £135 (requested £170).

An "Expert Systems" Specialist Group is being set up under the

chairmanship of D. Michie. It will deal with practical implementations of

Artificial Intelligence.

It has not been possible to obtain BCS funds for a regular UK

representative on ANSI X3J3. Funds may be available for a "once only" visit if a

specific need arose.

7. Any Other Business

None.

8. Next Meeting

The next meeting will take place on Monday 8th September 1980 at the

BCS Headquarters. The speaker at the afternoon session will be Dr. John Larmouth

of Salford University who will talk about Portability of Fortran 77.

BRITISH COMPUTER SOCIETY - FORTRAN SPECIALIST GROUP.

RECEIPTS & PAYMENTS ACCOUNT - YEAR ENDED 30TH APRIL 1980.

BALANCE AT START OF YEAR:

Cash at Bank 428.71

Cash in Hand 20.00 448.71

RECEIPTS:

BCS Grant 42.40

PAYMENTS (NO VAT INCURRED):

Meetings (Speakers' Expenses) 3.96

Meetings (Refreshments) 12.00

Group Mailings 77.13

Expenses at X3J3 Meeting 57.90 150.69

BALANCE AT END OF YEAR:

Cash at Bank 298.02

Cash in Hand 43.00 341.02

I certify that in my opinion the above account is in

accordance with the books and vouchers of the Fortran

Specialist Group and that the transactions were proper

to the purposes of the Group.

G.M.GRIFFITH, MBCS, Auditor

City Treasury, J.M.ROBERTS-JONES, MBCS, Treasurer

Liverpool.

25th May 1980

APPENDIX B : Precision Proposal for Fortran

Dr. B. Smith, Argonne National Labs., USA

This paper contains the elements of a proposal submitted to ANSI X3J3

for a General Precision Data Type.

Background

The facility should be usable by Numerical Analysts and others who

currently use Double Precision. The proposal is concerned with functionality

at this stage; syntactic details will be worked out later.

The processor has a set of Floating Point Real data tapes distinguished

by attributes:

precision (number of decimal digits etc.)

level (descriptor for nature data type)

exponent range (of Floating Point numbers)

others (e.g. Range)

Complex data type is a pair of Reals. To each Real Floating Point data type

there is assigned a unique integer called the level designator (LEVEL)

restricted to a consecutive sequence of integers beginning with 1. Each Real

data type has associated with it a processor-dependent set of attributes of

which DEC-DIGITS and LEVEL must be present. If there are more than one Real data

type, each has a distinct LEVEL. There are two distinguished level designators,

namely:

default level d

maximum level M

Proposal 1

Two data types are available:

REAL r[.r...]

COMPLEX c[.c...] - no storage order specified.

Default level d is used (different for different machines). Similar form is

used for the FUNCTION and IMPLICIT statements as in Fortran 77.

Proposal 2

Entities of the non-default data types may be declared by:

REAL(<ATTR-LIST>) r[.r...]

COMPLEX(<ATTR-LIST>) c[.c...]

where <ATTR-LIST> is a list of attributes, separated by commas, of the form

given above. It may consist of:

(i) DEC_DIGITS = p

(ii) more than one attribute

(iii) LEVEL = q

(i) and (ii) are minimum specifications, (iii) is an exact specification.

Any integer constant expression is permitted after =.

Proposal 3

Four intrinsic functions are provided:

LEVEL - returns level number for data type specified by the

arguments (type INTEGER).

DEC_DIGITS - returns number of decimal digits of precision for the

data type specified by the arguments (type REAL).

DEFAULT - returns level number for type REAL (type INTEGER with no

arguments.

MAX LEVEL - returns the maximum level M.

e.g.

DEFAULT_PRECISION=DEC_DIGITS(LEVEL=DEFAULT())

DOUBLE=DEC_DIGITS(2*DEFAULT_PRECISION)

where DEFAULT_PRECISION and DOUBLE are variables.

Proposal 4

Constants of different data types may be specified by optionally

following any form of a Real constant by a T and either an unsigned level

number or an attribute list enclosed in parentheses.

e.g.

1.2T(DEC_DIGITS=l0)

1.2T(LEVEL=2)

1.2T2 - short for LEVEL=2

1.2E2T(LEVEL=l)

Proposal 5

To be consistent with Fortran 77, the types of the actual and dummy

arguments must match.

e.g.

dummy REAL (DEC_DIGITS=10) D

actual REAL (DEC_DIGITS=9) A

The machine selects the same data type for D and A.

Proposal 6

The intrinsic function AREAL is added (cf. AIMAG) and DPROD is redefined.

Examples

(a) REAL(DEC_DIGITS=6) X,Y

.

.

.

X=1.1(DEC_DIGITS=6)+Y

may be used with an algorithm requiring at least 6 decimal digits of

precision; or parameterised

PARAMETER (PREC=6)

REAL (DEC_DIGITS=PREC)

(b) INTEGER PREC,DOUBLE_PREC

PARAMETER(PREC=DEC_DIGITS(DEC_DIGITS=6))

PARAMETER(DOUBLE_PREC=2*PREC)

:

:

REAL(DEC_DIGITS=PREC) X(l0),Y(l0)

REAL(DEC_DIGITS=DOUBLE_PREC) SUM

:

:

SUM=1.1T(DEC_DIGITS=DOUBLE_PREC)

:

SUM=SUM+DPROD(X(I),Y(I))

:

This is an example of an algorithm with 2 precisions, parameterized.

The intrinsic functions permit access to processor dependencies

abstractly.

(c) Library Building

SUBROUTINE LINEQ(N,A,B,X)

c

c SOLVE SYSTEM OF LINEAR EQUATIONS AX=B FOR X

c

INTEGER N

REAL (LEVEL=l) A(N,N),B(N),X(N)

:

END

Here there is processor dependent communication between programs with

no minimum precision requirement. The advantages and disadvantages

are similar to REAL,DOUBLE PRECISION etc.

Advantages - same source on many processors.

- source changes avoid processor constants.

- separates precision specification from processor

specification,

- simple and familiar.

Disadvantages- processor dependent specification.

- implies separate libraries for each level version of the

library

- specifies processor dependent communication between calling

and called subprograms.

Alternative Proposal

(i) Change argument passing restriction to exact match of specified

attributes.

e.g. Data types Precision Range

1 6 76

2 15 76

REAL(DEC_DIGITS=3) X

REAL(DEC_DIGITS=6) Y

REAL(DEC_DIGITS=6,RANGE=70) Z

(ii) Add a "passed-on" attribute (or limited user-defined generic capability)

specified by * in attribute list.

e.g.

C MAIN PROGRAM

PARAMETER(N=10)

REAL(DEC_DIGITS=6)A(N,N),B(N),X(N)

REAL(DEC_DIGITS=12)D(N,N),E(N),Y(N)

:

CALL LINEQ(N,A,B,X)

:

CALL LINEQ(N,D,E,Y)

:

END

SUBROUTINE LINEQ(N,A,B,X)

INTEGER N

REAL(*) A(N,N),B(N),Y(N)

:

END

This can be generalised, e.g.:

REAL(*) A(N,N)

REAL(*,SAMEAS=A) B(N)

and is limited to all the same data type. It can be implemented in

several ways, e.g.:

(i) parameterized instructions (ideal)

(ii) subprograms with multiple pre-compiled decks.

APPENDIX C

BRITISH COMPUTER SOCIETY - FORTRAN SPECIALIST GROUP

Steering Committee

Chairman : Mr. G.L.Harding (0734)85411 X319

European Centre for Medium Range

Weather Forecasts

Shinfield Park

Reading, Berks. RG2 9AX

Vice-chairman : Mr. P.A.Clarke (05827)62271 X64

Computer Dept.

Rothamsted Experimental Station

Harpenden, Herts. AL5 2JQ

Secretary : Mr. J.D.Wilson (0533)554455 X165

Computer Laboratory

University of Leicester

Leicester LE1 7RH

Treasurer : Mr. J.M.Roberts-Jones (051)2273911 X617

City Treasury

P.O. Box 1

Liverpool L69 2DQ

Members : Dr. J.D.Murchland (01)6576478

35, Rectory Park

Sanderstead

Surrey CR2 9JR

Mr. D.T.Muxworthy (031)6671081 X2844

Program Library Unit

James Clerk Maxwell Building

Mayfield Road

Edinburgh EH9 3JZ

Mr. G.A.Ruscoe (01)2425725

Geisco Ltd.

Commonwealth House

1-19 New Oxford St.

London WC1A 1BT

Mr. T.L.van Raalte (07356)4111 X6461

Building D3

A.W.R.E.

Aldermaston

Reading

Berks. RG7 4PR

Dr. A.Wi1son (01)7887272 X4603

Room 200

International Computers Ltd.

8S-91 Upper Richmond Road

London SW 15