next up previous contents
Next: New Fortran 90 Features Up: Fortran Evolution Previous: A Brief History of

 

Drawbacks of FORTRAN 77

By todays standards FORTRAN 77 is outmoded -- many other languages have been developed which allow greater expressiveness and ease of programming. The main drawbacks have been identified as:

  1. FORTRAN 77 awkward `punched card' or `fixed form' source format.

    Each line in a FORTRAN 77 program corresponds to a single punched card with 72 columns meaning that each line can only be 72 characters long. This can cause problems and in this day and age is totally unnecessary.

    Other restrictions of FORTRAN 77:

  2. Lack of inherent parallelism.

    Fortran is supposed to be a performance language -- today High Performance Computing is implemented on Parallel machines -- FORTRAN 77 has no in-built way of expressing parallelism. In the past calls to specially written vector subroutines have been used or reliance has been made on the compiler to vectorise (parallelise) the sequential (serial) code. It is much more efficient to give the user control of parallelism. This has been done, to a certain extent, by the introduction of parallel `array syntax'.

  3. Lack of dynamic storage.

    FORTRAN 77 only allows static storage for example, this means temporary short-lived arrays cannot be created on-the-fly nor can pointers, which are useful for implementing intuitive data structures, be used. All FORTRAN 77 programs must declare arrays `big enough' for any future problem size which is an awkward and very unattractive restriction absent in virtually all of the current popular high-level languages.

  4. Lack of numeric portability.

    Problems arise with precision when porting FORTRAN 77 code from one machine to another. Many FORTRAN 77 systems implement their own extensions to give greater precision, this means that the code becomes non-portable. Fortran 90 has taken ideas for the various FORTRAN 77 extensions and improved them so that the new language is much more portable that before.

  5. Lack of user-defined data structures.

    In FORTRAN 77 intuitive (user-defined) data types not available as they are in ADA, Algol, C, Pascal etc.. Their presence would make programming more robust and simpler. In FORTRAN 77 there is no way of defining compound objects.

  6. Lack of explicit recursion.

    FORTRAN 77 does not support recursion which is a very useful and succinct mathematical technique. In the past this had to be simulated using a user defined stack and access routines to manipulate stack entries. Recursion is a fairly simple and a code efficient concept and was, to all intents and purposes, unavailable.

  7. Reliance on unsafe storage and sequence association features.

    In FORTRAN 77, global data is only accessible via the notoriously open-to-abuse COMMON block. The rules which applied to COMMON blocks are very lax and the user could inadvertently do quite horrendous things! Fortran 90 presents a new method of obtaining global data. Another technique which is equally as open to abuse as COMMON blocks is that a user is allowed to alias an array using an EQUIVALENCE statement. A great deal of errors stem for mistakes in these two areas which are generally regarded as unsafe, however, there is no real alternative in FORTRAN 77.

Return to corresponding overview page gif


next up previous contents
Next: New Fortran 90 Features Up: Fortran Evolution Previous: A Brief History of

©University of Liverpool, 1997
Wed May 28 20:20:27 BST 1997
Not for commercial use.