BRITISH COMPUTER SOCIETY FORTRAN SPECIALIST GROUP


Minutes of a Meeting held

on Friday, 2nd March 1973

at Barnard's Inn, Holborn

Bars, London EC1 at 10.30

a.m.


Present:    Mr B.H. Shearing (Acting Chairman)  Alcock Shearing & Partners

Mr E.O. Bodger                      IBM Information Services

Mr P.D. Bond                        Philips Industries

Mr J.C. Cullen                      B.P.

Dr A.C. Day                         University College London

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

Mr J.P. Holland                     Tunnel Cement Ltd.

Mr K. St.Pier                       G.E.C.

Mr T.L. van Raalte                  U.K.A.E.A.

Mr D. Winstanley                    University of Birmingham

Mr D.T. Muxworthy (Secretary)       Edinburgh R.C.C.


Apologies   Mr P.J. Hammond                     B.P.

for         Mr D.H. Marwick                     Heriot-Watt University.

Absence:


ACTION

1. APPOINTMENT OF       The Chairman of the Group, Mr Gatehouse, had

   ACTING CHAIRMAN      unfortunately found it necessary to resign

following his move from G.E.C. to I.C.L. The

vice-chairman, Mr Shearing, had agreed to act

as chairman until the Annual General Meeting.

Mr Shearing paid tribute to Mr Gatehouse's

work for the Group; the Group was formed on

his initiative in January 1970 and during hiss

three years as chairman it had been very active

and had established an international reputation.

The Group hoped that Mr Gatehouse would be able

to continue as an active member.


2. APPROVAL OF          The minutes of the meeting of the 7th

   MINUTES              December 1972 were approved.

                                


3. MATTERS ARISING      a. No information was available on the           IDKK

   FROM THE MINUTES     project to collect information on

"sub-standard" compilers.


b. There had been no action on the               JSG

proposal to form a language contractions

working party.


4. SPECIALIST GROUPS'   Mr Shearing reported on a meeting of chairmen

   CHAIRMEN'S METING    of BCS Specialist Groups held on February 16.

This was an active committee and was a means

by which the members could influence the

society.


5. COMPUTER             The Computer Journal had published yet another

   JOURNAL              ill-informed letter about Fortran and there

was concern that this would eventually bring

the Journal into disrepute. After some

discussion it was decided that the Chairman      BHS/DTM

and Secretary should write to the Editor of

the Journal correcting the technical points

and arguing again that letters containing

technical matter should be refereed.


6. COMPUTING            The Group had already expressed its concern,

at the Chairmen's meeting, about the quality

of the content of "Computing" and in particular

about the lack of a vehicle for the semi-

technical papers which formerly appeared in

the Computer Bulletin; this was echoed in the

discussion at this meeting. The BCS was

allowed only one page in "Computing" and there

was insufficient space even to give

adequate notice of branch and specialist

group meetings. It was decided that the

Secretary should request Computer Weekly         DTM

to print announcements of this Group's

meetings. It was suggested that articles

emanating from the Group may be suitable

for the news pages of Computer Weekly or

"Computing".


It was said that "Computing" was important

to the finances of the BCS. "Computing"

had not accepted the invitation to send

a reporter to the meeting.


7. ADVERTISING.         The Chairman read part of a letter from

Mrs Roberts of the BCS, the relevant

paragraphs of which are shown in appendix A

to these minutes. The letter asks that

the Group make available its membership

list to the Society for advertising

purposes.


In a group of this size, distributing one

sheet of paper to each member would provide

about £16 net profit to the BCS, two sheets

£23 and so on.


The feeling at the meeting was that if this

helped the Society, the Group should

cooperate. However, if any member does not

wish his name to be forwarded to the BCS

Marketing Committee (the information does

not go outside the BCS) he should inform the

secretary of this before 9 April 1973.           All

Members resident outside Europe will not be

included in this list. (The Secretary's

address is: Edinburgh R.C.C., King's

Buildings, Edinburgh EH9 3JZ).



8. ANSI X3J3            Information on the ANSI X3J3 meetings

   PROGRESS             of November 1972 and January 1973 was

to hand. The Secretary reported that

an above average number of decisions

were taken at these meetings, many of them

in the nature of clarifications, but a

few approved quite new facilities which

had not been under discussion for long.

The principal features approved were:


a.  mixed - mode arithmetic (a rather

    weak proposal)


b.  generic functions


c.  extensions to the EXTERNAL statement

        to distinguish user-supplied &

        processor-supplied functions and

        generic & non-generic functions.


d.  ENTRY


e.  direct-access input-output with OPEN,

        CLOSE and INQUIRE statements


f.  list-directed input-output (ie free

        format)


g.  SAVE - providing an 'own' variable

        facility.


h.  integer zero suppression control,

        allowing leading zeros instead of

        leading blanks on output.


         X3J3 had decided not to proceed on:

a.  Alternate returns (RETURN I)

b.  Label data type

c.  Bit data type


It was decided to submit to X3J3 an

alternative method of controlling leading

zeros, and to deplore recent extensions

to the PRINT statement. The Group's

submission is shown in Appendix B to these

minutes. The up-to-date list of approved

extensions is in Appendix C.


The proposals sent to X3J3 by this Group

in December (Appendix A of minutes of

December 7 1972) were referred to the

subgroups of X3J3. The full committee

made straw votes on the proposals thus:


1  (remove subarray) (9-7)

2  (remove reverse cross-sections) (9-8)

3  (remove cross-sections) (5-12)

4  (not restrict order of specification

   statements) (8-6)

5  (different CHARACTER syntax) (3-12)

6  (allow character functions) (7-4)

7  (implied-DO same as DO) (15-0)

8  (change "PARAMETER") (2-10)

9  (UNIT= in BACKSPACE, etc.) (12-4)

10 (no INQUIRE) (1-13)

11 (direct access I/O) (Another proposal

   was approved at January meeting)

12 (full word keywords) (3-11)

13 (OPEN and CLOSE) (Another proposal was

   approved at January meeting)


9. DATAFAIR             Mr Shearing urged members to attend

Datafair, another entity important to

the finances of the Society. There

was some discussion on detailed plans

for the Group's presentation "Fortran,

the way ahead".


10. REPORTS FROM        The Diagnostics Working Party having

    THE WORKING         been wound up, there were three

    PARTIES             extant and one proposed working parties.


a.  The Extensions Working Party had

    not met since the previous meeting.


b.  Mr Marwick had indicated that

        progress was being made on writing

        the final report of the Free Format

        Working Party. It was anticipated

        that the report would be sent to

        all members of the Group.


c.  The Small Machines Working Party

         was dormant.


11. OTHER BUSINESS      a.  The ISO Fortran Standard was said

to cost £10.25. Members were advised

that the ANSI standard cost £2.00 and

was available from BSI.


b.  Dr Day said that his report on the

ISO TC97/SC5 meeting in Washington

would be available in a few weeks'

time and that copies, price 30p post

free, could be obtained from the

Librarian, University College Computer

Centre, 19 Gordon Street, London

WClH 0AH.


12. DATE OF NEXT        The next meeting will be held on Friday

    MEETING             May 18, 1973 at l0.30 a.m. in the Tearoom

of Barnard's Inn. Holborn Bars, London ECl.



D.T. MUXWORTHY

12.3.73

js



                              APPENDIX A


                           M E M O R A N D U M


To:   Specialist Groups' Chairmen.


FROM: Mrs Frances Roberts Executive Officer, Technical/Branches


______________________________________________________________________________


The new Committee of the Society, the Marketing Committee, which has

replaced the former Conference Committee, are anxious to obtain names

and addresses of all 'Friends of the Society' i.e. all people who

frequently attend organised meetings. The purpose of obtaining this

information is to set up an efficient mailing system to advertise, to

those who may be interested, forthcoming events and publications. If your

particular Group has such a list and your Committee agree to disclose the

information, I would very much appreciate receiving a copy.


I am also enclosing a list of the charges which will be made to outside

organisations for circulation of advertising material to Branches and

Specialist Groups of the Society. No leaflets, newsletters etc will be

circulated without an accompanying letter from the Chairman of the

Branch/Group consenting that the information should be mailed to his

appropriate members; a sample of the circular will be forwarded to the

Chairman by myself for his approval prior to any mailing.


js




                                       APPENDIX B


ERCC letter head

            Ref  DTM/1298      Date  18 June 1973    Telephone  031-667 1081 Ext 2642



To:      ANSC X3J3

From:    D.T. Muxworthy (for BCS Fortran Specialist Group)

Subject: Proposed Amendments to Approved Extensions of the FORTRAN Standard.



Proposals 1, 2, 3 present an alternative way of obtaining unsuppressed leading

zeros on output. The acceptance of proposal 1 would make redundant the

currently approved extension (/40,4.5).



Proposal 1:


That a minimum width designator be provided with the form:


nM (n≥0)


The nM descriptor would be a field descriptor and its effect would persist until

another nM descriptor were interpreted or the output statement were completed.

It would have the following effect:


On input, no effect;


On output, all integers would be printed with at least the rightmost n digits of

the field. If the field descriptor were Iw, the sign if required would float

from the (w-n)th position (if any) to the first position according to the

magnitude of the corresponding integer list element. Also if n=0 and the

corresponding list item were zero, the field would be filled with blanks. If

w<n the output field would be filled with asterisks.


When format control was initiated a minimum width of 1 would be established.


Rationale 1:


The syntax of the currently approved extension, In.d, is similar to that of the

forms for real variables, such as Fw.d, but the relationship of n to d is not

that of w to d.


The desired effect on the output field is more akin to the effect of the P scale

factor. An advantage of the M descriptor is that it may be extended to apply

to real variables (proposal 2 below). It is intended that nM,Iw would have an

effect identical to that of Iw.n in the present extension.



Proposal 2:


That the M field descriptor (proposal 1 above) should apply also to variables

of type real, double precision and complex converted by D,E,F or G field

descriptors with the following effect:


On input, no effect;


On output, all variables of type real, double precision and complex would

be printed with at least n digits before the decimal point. The sign, if any,

would precede immediately the n digits before the point. If n=O and the only

digit to be printed before the point were zero, and one or more digits were

to be printed after the decimal point, the digit would not be printed and

the sign, if any, would immediately precede the decimal point. If the total

field width specified by the conversion field descriptor were insufficient

for the n digits (and the sign if appropriate) to be printed the field would

be filled with asterisks. When format control was initiated a processor-

defined minimum width would be established.


Rationale 2:


Apart from moving the position of the sign, this proposal essentially involves

replacing a specified number of leading blanks by leading zeros. It would

allow the user more control over the exact form of his output field, for

example the 1966 standard allows the implementor an option here (21R4,5).

It would not however allow the user to print a blank field in place of

a real number, and it would not allow a decimal point (only) to be printed.


Proposal 3: (if proposal 2 is rejected, this proposal is not necessary)

That the M field descriptor (proposal 1 above) may be written with the form:


M


with the following effect:


The minimum field width is set to the processor-defined default value for all

appropriate types of conversion code.


Rationale 3:


The default minimum width for integers is 1 but for real variables it may be

0 or 1.


Proposal 4:


That recent extensions to "formatted" output statements be rescinded so that

the only forms allowed for such output to sequential logical units be:


WRITE (U,f) [list]

PRINT f [,1ist]

PUNCH f [,1ist]


for both formatted and list-directed output (except that PUNCH be not allowed

with list-directed output).


Rationale 4:


We doubt if the currently approved extensions have achieved their aim of

making the language more regular. For example PRINT is a synonym for WRITE

in one case (WRITE(u,f)), is similar but references a different device in

another (WRITE f), and is not allowed in a third (WRITE(u)). Accepting this

proposal would leave this situation:


a single keyword, WRITE, which may be used to accomplish all forms of output,

plus two special abbreviated forms which are of use particularly from

terminals and for teaching.


Contrary to Ward Klein's memo of February 27, 1973, PUNCH does play a useful

role because the user may assume that the first character transmitted in each

record will be output, whereas with the PRINT statement he assumes that it will

be used for carriage control.




                                   APPENDIX C


EXTENSIONS AND REVISIONS APPROVED      APPENDIX F      X3/40



 1.        INCLUDE APOSTROPHE IN CHARACTER SET. (/21,4.1)

 2.        ALLOW DECIMAL DIGITS IN STOP AND PAUSE. (/21,4.2)

 3.        MAKE CHARS. IN STOP STAT. ACCESSIBLE. (/21,4.3)

 4.        REMOVE CONCEPT OF SECOND LEVEL DEFINITION. (/24,4.1)

 5.        ALLOW APOSTROPHES TO DELIMIT HOLLERITH STRINGS. (/24,4.2)

 6         ALLOW T FORMAT FIELD DESCRIPTOR. (/24,4.3 AND 4.4)

 7.        ALLOW APOSTROPHE TO DELIMIT CHAR. STRING IN PAUSE.(/24,4.5)

 8.        SPECIFY THAT CONSECUTIVE SLASHES IN FORMATS CAUSE

             BLANK LINES WHEN PRINTED. (/24,4.6)

 9.         ALLOW INTEGER EXPRESSION IN COMPUTED GOTO. (/25,4.1)

10.        WHEN COMPUTED GOTO EXPR. IS OUT OF RANGE, EXECUTE

             FOLLOWING STATEMENT NEXT. (/25,4.1)

11.        ALLOW AS TERMINAL STAT. OF DO LOOP ANY EXEC. STAT. THAT

             ALLOWS EXECUTION OF THE FOLLOWING STAT. (/25,4.2)

12.        REQUIRE ASSIGN STAT. AND ASSOCIATED ASSIGNED GOTO STAT.

             TO BE IN SAME PROGRAM UNIT. (/25,4.3)

13.        ALLOW ASSIGN STAT. TO SET VAR. FORMAT. (/25,4.4)

14.        FIX NO. OF RANGE EXECUTIONS AND INCR. AT DO STAT. (/25,4.5)

15.        ALLOW NEG. VALUES IN DO PARAMETERS. (/25,4.5)

16.        ALLOW REDEF. OF DO PARAMETERS WITH NO EFFECT ON NO.

             OF ITERATIONS. (/25,4.5)

17.        ALLOW MULTIPLE ASSIGNMENT STATEMENTS. (/27,4.3)

              RESCINDED. (/37,4.4)

18.        OPTIONAL COMMA IN COMPUTED AND ASSIGNED GOTO.(/27,4.4)

19.        OPTIONAL LIST IN ASSIGNED GOTO. (/27,4.5)

20.        OPTIONAL COMMA IN DO AFTER STAT. LABEL. (/27,4.6)

21.        ALLOW FUNCTIONS WITH NO ARGUMENTS. (/27,6.7)

22.        ALLOW ALL TYPES OF ARITHMETIC ASSIGNMENT STATEMENTS.(/29,4.1}

23         ALLOW INTEGER EXPRESSIONS IN DO STATEMENTS. (/29,4.2)

24.        REWIND HAS NO EFFECT AT INITIAL POSITION. (/29,4.3)

25.        ALLOW END= IN READ STATEMENTS. (/29,4.4)

26.        ALLOW READ, PRINT AND PUNCH STATEMENTS. (/30,4.1) 

27.        ALLOW IMPLICIT STATEMENT. (/30,4.2)

28.        ALLOW REAL AND DOUBLE PREC. DO CONTROL VARS. (/30,4.3)

29.        ALLOW ANY ARITH. EXPR. IN DO PARAMETERS WITH CONVERSION

             TO CONTROL VAR. TYPE BEFORE USE. (/30,4.4)

30.        ALLOW BRANCHING INTO RANGE OF ANY ACTIVE DO. (/30,4.5)

31.        MINIMUM DO ITERATION COUNT IS ZERO. (/30,4.6)

32.        ALLOW PROGRAM STATEMENT. (/31,4.1)

33.        ALLOW MANY LEVELS OF PARENTHESES IN FORMATS. (/31,4.2)

34.        FORMAT CHAR. TO STOP FORMAT SCAN AT END OF LIST. (/31,4.3)

35.        ALLOW EXPRESSIONS IN OUTPUT LISTS. (/31,4.4)

36.        ALLOW QUOTED CHAR. CONSTANTS IN OUTPUT LISTS WITH A FIELD

              DESCRIPTOR. (/31,4.5)

37.        ALLOW MORE BASIC EXT. AND INTRINSIC FUNCTIONS. (/31,4.6-4.8)

38.        RIGHT TO LEFT GROUPING OF SUCCESSIVE EXPONENTIATIONS.(/31,4.9)

39.        LEFT TO RIGHT EVALUATION OF SOME EXPRESSIONS. (/31,4.9)

40.        ALLOW ERR= IN READ/WRITE STATEMENTS (/33,4.1)

41.        ALLOW GENERALIZED SUBSCRIPT EXPRESSIONS. (/33,4.2)

42.        ALLOW SEVEN DIMENSIONS. (/33,4.3)

43.        ALLOW ARRAY ELEMENTS IN STATEMENT FUNCTION DEFINITIONS.(/33,4.4)

44.        ALLOW MORE THAN ONE FILE ON ONE SEQUENTIAL I/O UNIT. (/33,4.5)

45.        ALLOW A COMPLEX NO. TO BE EOUIV. TO TWO REAL NOS. (/33,4.6)

46.        ALLOW ADJUSTABLE DIMENSION VALUES TO BE IN COMMON. (/33,4.7)

47.        ALLOW ADJ. DIM. VALUES TO BE CHANGED WITHIN A SUBPROGRAM

              WITHOUT AFFECTING ARRAY SIZE. (/33,4.8)

48.        ALLOW INTEGER EXPRESSIONS AS ADJ. DIMENSIONS. (/33,4.9)

49.        ALLOW NON-UNITY LOWER BOUNDS FOR ARRAY DIMENSIONS. (/33,4.10)

50         ALLOW ARRAY ASSIGNMENT STAT. WITH ANY ARITH. EXPR. (/33,4.11)

51.        DIRECT ACCESS I/O WITH OPEN AND CLOSE. (/34,4.1,4.2)

52.        ALLOW ARRAY NAME WITHOUT SUBSCRIPT IN EQUIVALENCE.(/34,4.3)

53.        SPECIFY UNITS OF ARGUMENTS AND RESULTS FOR BASIC

             EXTERNAL FUNCTIONS. (/34,4.4)

54.        ALLOW NAMING OF BLOCK DATA SUBPROGRAMS. (/34,4.5)

55.        ALLOW MORE THAN ONE BLOCK DATA SUBPROGRAM. (/34,4.6)

56.        ALLOW (-*) NOTATION FOR REVERSE CROSS-SECTION. (/34,4.7)

57.        ALLOW SUBARRAY STAT. WITH BY CLAUSE. (/34,4.8)

58.        END ACTS LIKE STOP OR RETURN. (/34,4.9)

59.        ALLOW -NX AND +NX FOR I/O RELATIVE TABBING. (/34,4.10)

60.        ALLOW + SIGN ON SCALE FACTOR. (/34,4.10)

61.        RESTRICT SCALE FACTOR RANGE ON E,D,G OUTPUT. (/34,4.11)

62.        PRINT ALL ASTERISKS WHEN NO. EXCEEDS FIELD. (/34,4.12)

63.        ALLOW CONTROL OF EXPONENT SIZE ON E AND D OUTPUT. (/34,4.13)

64.        MUST PRINT + SIGN ON POSITIVE OR ZERO EXPONENT. (/34,4.14)

65.        ALLOW A CONSTANT (PARAMETER) STATEMENT. (/34,4.15)

              CHANGED TO PARAMETER STATEMENT. (/37,4.1)

66.        ALLOW LIST-DIRECTED I/O. (/34,4.16) 

67.        CHARACTER DATA TYPE. (/35,4.1)

68.        ALLOW IMPLIED DO IN DATA STATEMENT. (/35,4.2)

69.        ALLOW ARRAY NAME WITHOUT SUBSCRIPT IN DATA STAT.(/35,4.3)

70.        ALLOW ENTRY STATEMENT. (/36,4.1 AND /39,4.13)

71.        ALLOW BLOCK I/O TRANSFER, E.G. A(I)...A(J). (/36,4.2)

72.        ALLOW NONFORTRAN CHARS. ON COMMENT LINES. (/36,4.3)

73.        ALLOW BACKFILE AND SKIPFILE STATEMENTS. (/36,4.4)

74.        ALLOW BACKSPACE N RECORDS. (/36,4.4)

75.        SPECIFY SYNTAX AND OTHER CLARIFICATIONS FOR CHARACTER

              DATA TYPE. (/36,4.5)

76.        ALLOW EXTRA DIGITS ON REAL, DOUBLE, AND COMPLEX CONSTANTS

             AND INPUT DATA. (/36,4.6)

77.        RESTRICT ARRAY ASSIGNMENT STATEMENT ON OVERLAP. (/36,4.7)

78.        ALLOW DPROD FUNCTION. (/36,4.8)

79.        NOT ALLOW SIMPLE I/O LISTS ENCLOSED IN PARENTHESES.(/37,4.2)

80.        DEFINE DO CONTROL VAR. AT NORMAL COMPLETION OF LOOP.(/37,4.3)

81.        CLARIFICATIONS OF IMPLIED DO IN DATA STAT. (/39,4.1)

82.        ALLOW EACH NAMED COMMON BLOCK IN ONLY ONE BLOCK DATA

             SUBPROGRAM. (/39,4.2)

83.        ALLOW E AND F DESCRIPTORS WITH DOUBLE PREC. DATA.(/39,4.3)

84.        ALLOW EW.DEE INSTEAD OF EW.D.E  (/39,4.4)

             RESCIND DW.D.E AND ALLOW EW.DDE (/39,4.4)

85.        GET ALL *'S IN OUTPUT FIELD IF EXPONENT IS TOO LONG. (/39,4.5)

86.        INCLUDE PUBLISHED CLARIFICATIONS, MAY 69 AND OCT 71(/39,4.6)

87.        ALLOW MIXED DATA TYPES IN EXPRESSIONS. (/39,4.7)

88.        REQUIRE COMPLETE SPECIFICATION BEFORE USE OF A VAR. (/39,4.8)

89.        FUNCTION TYPE CONV. IS SAME AS ACROSS = IN ASSIGNMENT

             STATEMENT. (/39,4.9)

90.        ALLOW FUNCTION AND ENTRY NAMES IN TYPE STAT. (/39,4.10)

91.        ALLOW * IN EXTERNAL STAT. TO SPECIFY USER PROCEDURE.(/39,4.1)

92.        ALLOW AUTOMATIC TYPING OF FUNCTION NAMES. (/39,4.12)

93.        REMOVE DELAYED DEFINITION OF ASSOC. INPUT ENTITIES.(/39,4.14)

94.        DO NOT ALLOW COMPLEX DO PARAMETERS. (/39,4.15)

95.        SUGGEST IDENTIFICATION OF NONSTANDARD EXTENSIONS. (/39,4.16)

96.        DIRECT ACCESS I/O WITH OPEN AND CLOSE. (/40,4.1)

97.        OPEN OPTION TO IGNORE INPUT BLANKS. (/40,4.2)

98.        LIST-DIRECTED I/O. (/40,4.3)

99.        SAVE STATEMENT. (/40,4.4)

100.      ZERO SUPPRESSION CONTROL WITH INTEGER OUTPUT. (/40,4.5)

101.      OUTPUT SIGN CONTROL, S FIELD DESCRIPTOR. (/40,4.6)

102.      REQUIRE NONZERO FORMAT GROUP REPEAT COUNT. (/40,4.7)

103.      RESTRICT USAGE OF MAIN AND BLOCK DATA NAMES. (/40,4.8)

104.      REMOVE DUPLICATE GENERIC FUNCTION NAMES. (/40,4.9)

105.      REMOVE RESTRICTION ON DEF. OF DUM. ARG. WHEN ACTUAL ARG.

             IS IN COMMON IN REFERENCING PROGRAM ONLY. (/40,4.10)

106.      ALLOW EW.DEE AND EW.DDE WITH COMPLEX DATA. (/40,4.11)

107.      ALLOW DW.D WITH REAL AND COMPLEX DATA. (/40,4.12)

108.      ALLOW GW.D WITH DOUBLE PRECISION DATA. (/40,4.13)

109.      ALLOW PRINT(U,F) AND WRITE F STATEMENTS.(/40,4.14)