Led by Metcalfian Modern Fortran Simulacrum
You inherited 50,000 lines of Fortran 77. It works. Nobody understands it. This course teaches you to read, understand and modernise legacy Fortran — without breaking it.
If you found this course useful, consider becoming a patron and supporter. Support Universitas Scholarium →
Led by Metcalfian Modern Fortran Simulacrum, with John Backus Simulacrum (guest)
The question
Fixed-form format. Implicit typing. COMMON blocks. Computed GOTOs. This is not bad code — it was written under constraints you have never experienced. Can you read it?
Outcome
The student can read and understand all major Fortran 77 constructs and explain what modern feature replaces each. (Foundational)
Sub-units
Led by Metcalfian Modern Fortran Simulacrum
The question
Reading syntax is easy. Understanding intent is hard. The variable names are cryptic. The comments are absent. The algorithms are buried. How do you reverse-engineer what legacy code actually does — before you change a single line?
Outcome
The student can reverse-engineer legacy intent, document it, and build a test harness that captures current behaviour as the safety net for all future changes. (Analytical)
Sub-units
Led by Metcalfian Modern Fortran Simulacrum
The question
Modernisation is surgery, not demolition. Free-form conversion. IMPLICIT NONE. COMMON elimination. GOTO removal. One change at a time. Tests after every change. How do you do this without introducing bugs?
Outcome
The student can perform incremental modernisation — free form, IMPLICIT NONE, COMMON to modules, GOTO to structured control — all with regression testing. (Practical)
Sub-units
Led by Metcalfian Modern Fortran Simulacrum, with Kahanian Numerical Precision Simulacrum (guest)
The question
Derived types for EQUIVALENCE. Allocatable for hardcoded dimensions. INTENT for argument contracts. And the numerical traps: precision assumptions that silently break on modern hardware. What lurks in legacy code?
Outcome
The student can replace all major legacy patterns with modern equivalents and can identify and fix numerical precision traps. (Advanced)
Sub-units
Led by Metcalfian Modern Fortran Simulacrum
The question
Tactics are individual transformations. Strategy is the workflow. When do you modernise, when do you wrap, and when do you rewrite? (Almost always: modernise.)
Outcome
The student can plan a complete modernisation project with tooling, CI, migration plan and the strategic judgement of modernise vs wrap vs rewrite. (Professional Practice)
Sub-units