You kind of have to get a “feel” for what programmers had to do back in the day. The vast majority of the code I work with is older than I am and ran on machines that were “new” when my parents were in high school.
Common FORTRAN-isms I deal with, that hurt readability are:
- Common blocks
- Implicit variables
- Two or three DO loops with shared CONTINUE statements
- GOTO’s in place of DO loops
- Arithmetic IF statements
- Computed GOTO’s
- Equivalence REAL/INTEGER/other in some common block
Strategies for solving these involve:
- Get Spag / plusFORT, worth the money, it solves a lot of them automatically and Bug Free(tm)
- Move to Fortran 90 if at all possible, if not move to free-format Fortran 77
- Add IMPLICIT NONE to each subroutine and then fix every compile error, time consuming but ultimately necessary, some programs can do this for you automatically (or you can script it)
- Moving all COMMON blocks to MODULEs, low hanging fruit, worth it
- Convert arithmetic IF statements to IF..ELSEIF..ELSE blocks
- Convert computed GOTOs to SELECT CASE blocks
-
Convert all DO loops to the newer F90 syntax
myloop: do ii = 1, nloops ! do something enddo myloop
-
Convert equivalenced common block members to either ALLOCATABLE memory allocated in a module, or to their true character routines if it is Hollerith being stored in a REAL
If you had more specific questions as to how to accomplish some readability tasks, I can give advice. I have a code base of a few hundred thousand lines of Fortran which was written over the span of 40 years that I am in some way responsible for, so I’ve probably run across any “problems” you may have found.