Refactoring and the evolution of Fortran

Successful languages like Fortran keep changing and tend to become more complex, often containing older features that are rarely used. Complexity makes languages harder to use and makes it harder to build tools for them. A refactoring tool can eliminate use of these features from programs; this makes programs easier to understand and maintain, and it can simplify building certain programming tools. This is illustrated by using Photran, a refactoring tool for Fortran, to eliminate global variables from Fortran programs so that they can be used with Adaptive MPI, a version of MPI that performs load balancing.