1-4 STANDARD FORTRAN AND NON-STANDARD EXTENSIONS
*************************************************
(Thanks to Clive Page for the information on MIL-STD influence,
and to Craig Burley for the important corrections)
In the general programming rules section, it was emphasized how
important it is to adhere to the standard of FORTRAN, and avoid
fancy but unportable language extensions.
Some tempting extensions NOT in the FORTRAN 77 standard are:
Using lowercase letters
ENDDO construct
DO WHILE ... ENDDO construct
IMPLICIT NONE statement
Recursion
The 'size suffixes' (or star notation): REAL*4, REAL*8, INTEGER*4, ...
Identifiers longer than 6 characters
Allowing more than 19 continuation lines
Allowing code up to column 131
Non-advancing format edit-descriptor ('$')
CARRIAGECONTROL keyword in the 'OPEN' statement
Indexed files
Automatic arrays
The list is ordered (more or less) in increasing order of 'badness',
the first items are 'almost standard'. Most of this 'wish list' was
adopted by Fortran 90.
MIL-STD and its influence
-------------------------
A major source of FORTRAN extensions was the US MIL-STD-1753 army
standard that came out just after FORTRAN 77, and added some more
language constructs like:
END DO MIL-STD 1753 did _not_ add END DO as we are
generally familiar with -- it added END DO as,
basically, a synonym for CONTINUE, which means
it would still have to be a final (labeled)
statement of a _labeled_ iterative DO that 'closes'
the loop to meet that standard's requirements.
Of course, many other dialects added the
superior nonlabeled END DO as an extension as well,
allowing a non-labeled iterative DO to have a single,
unique terminating END DO statement, which is much
more in the spirit of structured programming.
DO WHILE ... Loop is tested in the beginning
IMPLICIT NONE Turns off implicit data typing
INCLUDE Useful to keep COMMON declarations identical
Miscs: Octal and hex constants in DATA statements
Bitwise intrinsic functions:
Logical operations: IOR, IAND, NOT, IEOR,
Shift operations: ISHFT, ISHFTC,
Reading & Moving: IBITS, MVBITS,
Testing & setting: BTEST, IBSET, IBCLR,
Since MIL-STD compliance was mandatory for FORTRAN systems sold
to the US Government, it quickly became a world-wide standard.
The new wonderful Fortran 90 accepted these extensions, and made
some major changes that transformed FORTRAN into a powerful and
modern language.
Return to contents page