FORTRAN is the world’s first high level programming language with its origin in the 50s, developed by John Backus (a scientific programmer) and his team at IBM. It was developed primarily to handle mathematically intense calculations, hence its adoption in mathematical, scientific and engineering computing. The huge amount of FORTRAN legacy code in existence today (mainly in science and engineering – including real time systems) is a consequence of its history, most of which is still based on FORTRAN 77.
Legacy FORTRAN code is a fundamental part of highly valuable and major production scientific and engineering software in active use – with significant commercial and intellectual value. Most of the code base was developed by non-programmers with limited or non-existent experience of essential software engineering practices. Issues such as version control, unit testing, validation, correctness, optimisation, readability, extensibility, scalability, portability, reusability, and interoperability though recognisably important were usually overlooked. There is significant FORTRAN legacy code base in computational fluid dynamics, weather forecasting and hydrology, computational biology, physics and chemistry, aerodynamics and solid mechanics, traffic modelling and simulation to name a few.
Most of the weaknesses of FORTRAN legacy code involve maintainability, flexibility, extensibility, reusability and related issues. Rewriting legacy code (if desirable) usually involve prohibitive costs. Most organisations with legacy FORTRAN code usually adopt strategies involving containment or wrapping of the code and exposing their key functionality via interfaces to other applications. This enables the adoption of an incremental update strategy whereby key functionality of the legacy code is exposed to more modern languages whilst gradually modernising the underlying legacy code where appropriate.
Majority of legacy FORTRAN code have performance issues (especially due to increasing complexity of scientific models and amount of data collected, operated on and generated) most of which can be alleviated with parallel/distributed processing, aspects of FORTRAN language that have been significantly improved in the modern version of the language and associated parallel processing paradigms. Although most programs could take hours and days to complete, some especially in research and development in the fields of chemistry (e.g. molecular dynamics simulations) and geosciences (e.g. ocean modelling) could take weeks to months to complete. The significance of parallel and distributed processing cannot be overstated. This is an area where we have significant expertise including GPU computing.