British Computer Society Fortran Specialist Group
Minutes of a meeting held on Monday 7th February 1977 in the
Geology Lecture Theatre, Royal School of Mines, Imperial College
Computer Centre, Prince Consort Road, London S.W.7.
Present: Mr.D.T.Muxworthy (Chairman) University of Edinburgh
Mr.M.Lewis (Vice Chairman) Imperial College Computer Centre
Mr.P.D.Bond Philips Industries
Mr.M.Dolbear B.P.
Mr.C.M.Evans D.O.A.E.
Dr.B.Ford N.A.G.
Mr.R.Grosvenor Honeywell I.S.Ltd.
Mr.S.Hague N.A.G.
Mr.D.Hill C.C.A.
Mr.D.J.Holmes Rolls Royce (1971) Ltd., Bristol
Mr.K.Y.Lee Kingston Polytechnic
Dr.J.Murch1and University College London
Mr.K.Normington Lanchester Polytechnic
Mr.H.Pitcher N.C.C.
Mr.J.Roberts-Jones Liverpool City Council
Dr.D.A.Rutherford U.M.I.S.T.
Dr.A.Sambles Philips Industries
Dr.L.Schonfelder Birmingham University
Mr.J.D.Wilson Leicester University
Mr.R.Woollett U.L.C.C.
Mr.P.A.Clarke (Secretary) Rothamsted Experimental Station
1. Approval of Minutes of Previous Meeting
The minutes of the meeting of 6th December 1976 were approved
subject to the following corrections: In section 1, The first
occurrence of "recommending" should have read "recommedning".
In 3.1 paragraph 1 ':*' should read ';*'. In 3.1 paragraph 2
'it's' should read 'its'. In 5. 'Mr.Muxworthy had had no reply etc.'
should read 'Mr.Muxworthy had had a reply, but it was not satisfactory'.
2. Matters Arising from the Minutes
In 3.1 of the minutes of the December 1976 minutes it was
stated that X3J3 had received over 600 public comments on dpANS
(March 76). Mr.Muxworthy had revised information that 289 letters
consisting of 1225 pages consisting of 2388 comments had now been
received.
3. Activities of Other Fortran Groups
3.1 ANSI X3J3 Committee Activities
The minutes of the November meeting of X3J3 had been received
and the decisions taken were reviewed. Mr.Muxworthy noted some
discrepancies in the revised draft (X3J3/76.5, Nov.1976) and
these were sent to X3J3. The minutes of the January meeting
had not been received but a summary document
had been received from Dr.Meissner (Appendix A). It was known
that Mr.D.Maisey (ICL) had attended the January meeting and it
was regretted that he was unable to attend this meeting to
elaborate on some of the decisions.
From the summary, it was not clear if the new syntax for
CHARACTER declarations was an alternative or a replacement.
3.2 International Purdue Workshop (IPW) Activities
The Minutes of the joint meeting of the Fortran Committee
of the IPW and the ISA SP61 Committee on Industrial Fortran,
8-11th November 1976, had been received. Enclosed were working
papers entitled "Management of Parallel Activities in Real-Time
Fortran" by D.Pettersen, "Initiation Key Words" by M.Gordon-
Clark , "Notes on Tasking"by Mrs. M.Hands, "A Rationale and
Proposal for Fortran Extension for Task Management" by R.Curtis
and a "Proposal to Improve the Fortran SUBROUTINE and FUNCTION
statements and their reference" by R.Caro.
The latter proposes keyword parameters. Circulation copy
of these is available from the Secretary.
Mr.Clarke said that real-time facilities in Fortran had become
topical because our Group had been asked to supply a representative
for a working group on programming languages of the BSI DPS 13,
by its chairman Mr.K.Thomson (N.C.C.). Dr.D.A.Rutherford of
the Control Systems Centre, UMIST had volunteered and attended
a meeting (see 3.3.1 below).
Mr.Clarke said that now was an appropriate time to consider
the ISA standards, and with slides (see Appendix C) he
described the main features of ISA S61.1.
3.3 Other Fortran Groups
3.3.1 Working Group 2 (programming languages for industrial
Control, systems and communication) of the BSI DPS 13
Committee
Dr.Rutherford had attended a meeting on 1st February
1977 and said that the languages being considered
included Coral, RTL2, Real-time BASIC and Fortran with
ISA routines. The objective of the Group was to be
able to provide information from which the various
submissions for standardisation could be assessed, in
order to be able to present a British recommendation at
the next ISO TC97/SC5/WG1 meeting in November 1977.
Meetings of the Working Group are to be held at 2
monthly intervals. The Chairman is Mr.K.Thomson (N.C.C.)
and other members were from IEE, ICL, RAE. the "Coral
Group", GEC and the PO.
Dr.Rutherford reported the impression that the
activities were mainly 'non-technical'.
The meeting considered the proposal submitted to
ISU by an American group - which consisted of "Real-time"
Fortran i.e. the ISA standards, and would be interested
in the UK reaction. The working group appeared to be
trying to standardise the functional requirements for
real-time languages. In particular, the "Coral 66"
proposal which contains no real-time functions is being
considered because of certain characteristics which lend
themselves to real-time usage e.g. pointer and address
processing and partword fields.
To help Dr.Rutherford with this work, a survey form
(enclosed) has been prepared and any returns would be
valuable.
3.3.2 Canadian Standards Association Fortran W.G.
We had received the minutes of the December 76 meeting
of the CSA Fortran Working Group. Included in their
list of possible future work projects are: sending
comments to X3J3 on ANS Fortran, giving publicity to
the "substantial ongoing standardisation activity" related
to Fortran, Clarifying its interest in database standards
with respect to Fortran. The group appears to consist
of about seven people, and some recruitment activity is
reported.
3.3.3 Fortran Development Committee
No FOR-WORD newsletter was received since our last
meeting. Dr.Meissner had forwarded draft details of a
Fortran loop construct proposed for discussion purposes
by Mr.W.Brainerd. Mr.Lewis described the proposals in
detail. Mr.Normington said that they were unnecessarily
complicated, but he thought the "times-clause" was a
convenient structure when used on its own. No-one seemed
impressed by the fact that "program-proving" was assisted
because the loop could be shown to terminate. There was
discussion as to whether all the logical conditions in
the 'until-clause' should be set .TRUE. on exit from the
loop. The examples described were:
DO 17 TIMES
DO FOR I = 1,N
DO UNTIL (NO DATA)
DO UNTIL (SIGNAL,ERROR) N+2 TIMES
DO UNTIL (TIRED)FOR BOTTLES=99,1,-1
A LEAVE statement is proposed, which causes the loop to
be terminated and a logical variable to be set .TRUE.
It might be used as follows:
DO UNTIL(CNVRGD,DATA ER) 1000 TIMES
-
IF (DATA.LT.0.)LEAVE(DATA ER)
-
IF (X.LT.EPS)LEAVE(CNVRGD)
-
REPEAT
IF(CNVRGD)THEN
-
ELSEIF(DATA ER)THEN
-
ELSE
-
ENDIF
Several people said that it would be easy to simulate
this type of loop using standard Fortran.
3.3.4 Dutch Fortran Study Group
Mr.Muxworthy said that he had been contacted by
Mr.Heyns and that the Dutch Group were in favour of
supporting an international Fortran development group.
4. Progress Reports
4.1 Preprocessor W.P
Dr.Murchland said that there was little to report since the
last meeting. A document entitled 'A Review of Program
Portability and Fortran Conventions' by Mr.Muxworthy had been
studied and found to contain much valuable information including
ten pages of references. Mr.Muxworthy said that copies could
be obtained from EUROCOPI, Ispra, Italy (as Technical Report No.1 -
Sspt.1976) and cost 2500 Lira (£1.60).
4.2 Group Promotion/Information W.P
Mr.Clarke said that a draft of the revised document 'Some
activities of the Fortran Specialist Group of the BCS' was
available to those present and comments for improvement would
be welcome.
A draft of the revised contact list (version 1.1, Jan. 1977)
was available for inspection. Many more changes would be made
before the next release (version 2).
4.3 W.P. to review the CODASYL FDBMLC JOD
Mr.Clarke reported that the review had not progressed very far -
a list of section headings was being circulated to form a frame
work for the text. Pauline Walters of the BCS Technical/Branches
division had been contacted to see if the BCS would be prepared
to (re) publish the JOD in the UK. It appeared that this could
be done provided at least 200 copies could be sold (to avoid
making a loss of revenue). It is doubtful if this number of
copies could be sold in the U.K.
5. BCS Business
5.1 Datafair 1977
Mr.Muxworthy said that our Group had been allocated a room
at Datafair, at the Cunard Hotel, from 4.15-4.45 p.m. on
Wednesday 5th October. There would be seating for 50 people.
He asked for volunteers to talk on the revised ANS Fortran.
6. Any Other Business
Mr.Muxworthy said that the next meeting was the A.G.M. and that
himself and Mr.Clarke would be retiring as Chairman and Secretary,
and he invited proposals for replacements. Mr.H.D.(Dave) Ellison
of University of Manchester had also resigned from the steering
committee as he was about to move to the University of Salford and
new work.
Mr.Lewis drew attention to the revised CDC draft specification
for Fortran and a conversion program providing 42 points of change
for existing CDC Fortran programs.
Mr.Hi1l said that he had had informal contacts with ICL 2900 staff
involved with Fortran and who would be interested to know informally
what facilities users thought ICL should be providing. He asked for
comments to be referred to him after the meeting.
Mr.Clarke asked if members thought there was a case for Fortran
'supersets' i.e. optional alternative extensions. This had been
prompted by the CODASYL FDBML specifications, the ISA standards, and
the CADC proposal to 'standardise' plotter software. These are all
rather large and specialised.
One comment was that these constituted "application extensions"
rather than "language enhancements".
Dr.Schonfelder suggested that Fortran follow a proposal made about
Pascal; that extensions only be standardised, when the extension
has been "written in" standard Pascal.
7. Date of Next Meeting
The next meeting will be held on Monday 4th April 1977.
Dr.A.Sambles (Philips Industries) gave a talk on his experiences
developing a large program (see Appendix D) and Dr.B.Ford and Mr.S.Hague
talked about the organisation and software tools used to develop,
maintain and distribute a large subroutine package. (Details to be
included with minutes of next meeting). Statistics relating to the
transportability of the Fortran were presented. A document describing
these entitled "On the enhancement of portability within the Nag project"
is available, on circulation, from the secretary.
SUMMARY OF ACTIONS TAKEN AT JANUARY 1977 MEETING OF X3J3
The draft describes certain "properties of a file", including the access
method (sequential or direct), the form (formatted or unformatted), the record
length, and the maximum record number (if any); it seems to imply that these are
inherent attributes that become attached to the file at the time it is created
and must remain unchanged thereafter. The terminology has now been modified
to clarify that the properties of a file are a set of allowed access methods, a
set of allowed forms, etc., while the particular choices currently in effect are
properties of the connection rather than of the file. Specifiers for access,
form, etc. in the OPEN and INQUIRE statements therefore relate to the present
connection. New specifiers have been added to the INQUIRE statement to improve
information concerning the set of allowed access methods and the set of allowed
forms.
Use of the FORM attribute in OPEN and INQUIRE statements is no longer
prohibited if a file is connected for sequential access. When this specifier is
omitted from the OPEN statement, the default for a direct access connection is
UNFORMATTED and for a sequential connection is FORMATTED.
Either part of a complex constant may be a real constant or an integer
constant.
An integer, real, or complex expression may be raised to
a real or complex power. The interpretation of xl ** x2 is defined to be the
same as that of EXP (x2 * LOG (xl)), where the principal values of EXP and LOG
are those of the Fortran intrinsic functions. (Use of the processor-implemented
EXP and LOG intrinsics is not necessarily recommended; they merely define the
principal value of the result.)
If a function subprogram contains one or more ENTRY statements, a reference
to one of these functions must not cause the definition of an associated function
name (as a variable) that is not of the same type as the referenced function.
Change the syntax of the FUNCTION statement so that the parentheses are
mandatory even if there is no argument list.
The formula for unformatted record length in section l2.l.2 is eliminated.
The length of an unformatted record is "measured in processor-dependent units".
If the list of an unformatted WRITE does not fill the record on a direct access
file, the remainder of the record is undefined.
For list-directed data, a complex constant may have blanks before or after
either the real or the imaginary part.
Negative zero is prohibited in the exponent field for E and D output.
The precedence of .XOR. is changed to the same as .EQV., and the name is
changed to .NEQV.
In a CHARACTER declaration, when a length specification applies to more
than one of the entities being declared, those entities are enclosed in paren-
theses and the length specification is written at the end. Thus, according to
the draft, a declaration might appear as
CHARACTER *7 A*6, B, C, D, E*8, F(3)*8, G*l
this would now become
CHARACTER A*6, (B, C, D)*7, (E, F(3))*8, G
Also the IMPLICIT CHARACTER and CHARACTER FUNCTION statements are changed as
shown in the following examples:
IMPLICIT CHARACTER (B - D) * 7
CHARACTER FUNCTION CF (X, Y) * (*)
An integer, real, double precision, or complex entity in an nlist of a
DATA statement may correspond to an integer, real, double precision, or complex
entity in a clist. Type conversion takes place as with assignment.
The length specified for a statement function dummy argument of type
character must be an integer constant expression.
L. P. Meissner
27 January 1977
To: X3J3
From: British Computer Society Fortran Specialist Group
Date: l6th February, 1977.
Subject: Comments on Fortran 77 Full language X3J3/76.5 (76-11-30)
The following editorial points were noted at our meeting of
7th February, 1977.
1. The Group repeats its objection to the use of the
word 'redundant', applied to type specifications
in section 19.2 item (9). It is clear from
section 8.4 that 'duplicate' is intended.
2. The decisions taken on 'extended range of Do loops'
at the November l976 meeting of X3J3 have not been
incorporated consistently in X3J3/76.5. In section
11.10.2, lines 35O - 351 contradict lines 361 - 364.
SUMMARY OF THE WORK OF THE JOINT INTERNATIONAL PURDUE WORKSHOP
(IPW) FORTRAN COMMITTEE AND THE INSTRUMENT SOCIETY OF AMERICA
(ISA) COMMITTEE ON INDUSTRIAL FORTRAN
Standard ISA S61.2 (1976)
Fortran Procedures for
* Executive Interface,
* Process Input/output,
* Bit String Manipulatlon And
* Date And Time lnformatlon.
The procedures are expected to be executing both in a solitary and in a
multiprogramming environment under the control of a real time executive
routine.
EXECUTIVE INTERFACE
Procedures to start, stop or delay execution of a program.
Start a Program Immediately Or After A Specified Time Delay.
CALL START ( PROG, DELAY, UNITS, STATUS)
where PROG specifies the program to be executed (either an integer
expression, array or procedure name)
DELAY is the time delay (in UNITS units) before executing the
program
UNITS is units of time (either real-time-clock units,
milliseconds, seconds or minutes)
STATUS returns status (1 = accepted, 2 or more = rejected)
Start A Program At A Specified Time Of Day
CALL TRNON ( PROG, GOTIME, STATUS)
where PROG and STATUS are as for START
GOTIME is an integer array whose first three elements contain
Hours, Minutes, and Seconds
Delay Continuation Of A Program
CALL WAIT ( DELAY, UNITS, STATUS)
where DELAY, UNITS and STATUS are as for START. WAIT returns after the
specified time delay
Terminate A Program - use STOP
PROCESS INPUT/OUTPUT INTERFACE
Control Of Analog And Digital Sensors And Output. Each Procedure
Performs An Unformatted Input/Output Transfer.
Analog Inputs In A Sequential Order
CALL AISQW ( NDATA, TRANS, BUFFER, STATUS)
where NDATA is the number of analog points to be read.
TRANS provides transmission information. i.e. (processor
dependent) hardware or software acquisition and conversion
inform atom, (as an integer expression of array). It specifies
the first point to be read and the form of all the data placed
in BUFFER.
BUFFER is an array to receive the data
STATUS returns status (all data collected =1, operation
incomplete = 2. error = 3 or more)
Analog Inputs In Any Sequence
CALL AIRDW ( NDATA, TRANS, BUFFER, STATUS)
where NDATA and STATUS are as for AISQW
TRANS is as for AISQW and also controls the input sequence
BUFFER is an array to receive the data. the order of the
elements in BUFFER will correspond to the order in TRANS
Analog Output In Any Sequence
CALL AOW ( NDATA, TRANS, BUFFER, STATUS)
where NDATA, TRANS, STATUS are as for AIRDW
Digital Input
CALL DIW ( NWORDS, TRANS, BUFFER, STATUS)
where NWORDS is the number of external digital words to be read.
TRANS, BUFFER and STATUS are as before
Momentary Digital Output
CALL DOMW ( NWORDS, TRANS, BUFFER, PERIOD, STATUS)
where NWORDS, TRANS, BUFFER and STATUS are as as before
PERIOD is the duration in basic system clock counts that the
outputs are to remain set. ( PEROID may be ignored but must be
present.)
Latching Digital Output
CALL DOLW ( NWORDS, TRANS, BUFFER, LATCH, STATUS)
where NWORDS, TRANS, BUFFER and STATUS are as as before
LATCH is a masking array defining digital outputs which can be
changed by DOLW
Causes the output of digital signals which can be latched in either the
set or reset state. These signals consist of sets of bits typically
organised as an external digital word.
Summary of a talk on 'A Large Scale Fortran Project' by Mr.A.Sambles
(Philips Industries)
The project was to write a comprehensive electronic circuit analysis
program. This was to be undertaken at two sites and use two different
computers during development. Fortran was chosen because it was
available and was reasonably efficient at run-time. Programming
considerations to co-ordinate the groups determined a strict set of
rules for coding subroutines. Data structure documentation and COMMON
allocation was made the responsibility of the Project Leader. Test
versions were run at both development centres at frequent intervals to
help clear non-standard features at the earliest opportunity. A
comprehensive benchmark was run before new versions were released.
Coding Rules enforced included: beginning subroutines with
descriptions of arguments, inputs/outputs, list of called and calling
subprograms; code should contain about hO% comments; No local variables
were to be used; No assumptions of variables being initially defined
(e.g. as zero).
Naming conventions were as follows: names starting with I-N are
integer, B are boolean, C are complex, D are double precision and the
remainder are real.
COMMONs are organised so that arrays and variables are not in the same
COMMON. Nested DO loops do not end on the same labelled statement,
statements are labelled in order. Formats are labelled n+1000 where n
is related to the adjacent statements. Subroutines contain less than
150 statements. All errors are processed by a CALL EROR procedure.
All machine dependent constants are held in COMMON. All array dimensions
are held in one COMMON. Use of assembler is kept to a minimum.
A diagnostic built-in debug which is controlled by flags which can be
set in the input stream has proved worthwhile.
The conclusions are that the system works, it is transportable,
there are numerous cases of code extension by programmers other than the
originator. The programmers initial reaction that some of the
conventions were bureaucratic soon subsided and it was found acceptable
for a one person to be responsible for COMMON organisation.
British Computer Society Fortran Specialist Group
Survey of Fortran usage in real-time and process control applications
This survey is to assist the working Group 2 (Programming Languages for
industrial control, systems and communications) of the BSI DPS13 in obtaining
information for the purpose of formulating recommendations for standardisation.
If you can answer any of the questions below this would be much appreciated.
Questions
1. What is your interest in real time facilities for Fortran?
e.g. Process Control? Scientific experimentation?____________________
2. Are you aware of the Instrument Society of America (ISA) Standards,
ISA S61.1 and S61.2? ________________________________________________
3. Please indicate which facilities listed overleaf, or near equivalents,
which are available to a Fortran program on your processor. Indicate
in the 'specification'column, the standard used e.g. ISA, Computer
Manufacturers standard, CAMAC, Company/Department or 'local' specific-
ation. The procedures in brackets (e.g. CALL START) are those defined in
the ISA specifications. Some of the functions such as OPEN file and
Direct Access I/O are currently included in the draft proposed ANS
Fortran.
4. Please give number of processors to which your answer applies:
Mainframe_____ Mini_____ Micro _____ Other _____
5. Please tick estimated (rough) usage.
rarely -- Yearly -- Monthly __ weekly __ daily__ hourly __ continuous __
6. Any comments on the ISA specifications e.g. have you found it necessary
to modify them?
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
7. Suggest any other persons to whom this survey should be sent _________
Name and address:_____________________________________________________
______________________________________________________________________
______________________________________________________________________
8. Completed survey forms should - either be sent to:
Dr D.A. Rutherford, Control Systems Centre, UMIST,
P.O. Box 88, Manchester M50 1QD.
- or may be handed in at the next BCS FSG meeting.
D. A. Rutherford
21.1.77
Function |
Avail- YES/NO |
Specification |
Starting a Program (from another Fortran Program.) |
|
|
- immediately (CALL START) |
|
|
- after a specified time delay (CALL START) |
|
|
- at a specified time (of day) (CALL TRNON) |
|
|
Delaying continuation of the program (CALL WAIT) |
|
|
Stopping the program (STOP in ANS Fortran) |
|
|
Handling Analogue Inputs |
|
|
- in a sequential order (CALL AISQW) |
|
|
- in any sequence (CALL AIRDW) |
|
|
Handling Analogue output (CALL ADW) |
|
|
Handling digital input (CALL DIW) |
|
|
Handling Momentary Digital Output (CALL DOMW) |
|
|
Handling Latching digital output (CALL DOLW) |
|
|
Bit String Manipulation |
|
|
Logical operations |
|
|
- Inclusive OR (IOR) |
|
|
- Logical product (IAND) |
|
|
- Logical complement (NOT) |
|
|
- Exclusive UR (IEOR) |
|
|
- Shift Operations (ISHFT) |
|
|
- Bit testing (B TEST) |
|
|
- Bit setting (IBSET) |
|
|
- Bit Clearing (IBCLR) |
|
|
Date and time information |
|
|
Obtain time of day (CALL TIME) |
|
|
Obtain Date (CALL DATE) |
|
|
Create (establish) a file (CALL FILW) |
|
|
Delete a file (CALL DFILW) |
|
|
Open a file (CALL OPENW) |
|
|
Close a file (CALL CLOSEW) |
|
|
Modify Access Privileges to a file (CALL MODAPW) |
|
|
Input/Output to unformatted direct access files |
|
|
- Direct file Read (CALL RDRW) |
|
|
- Direct file WRITE (CALL WRTRW) |
|
|
Any Other functions - please give details |
|
|