Self-Paced Study Guide
For the working scientist, engineer, or student learning on their own. The book supports four tracks; pick the one that matches your goal, then use the schedules below as a realistic pace. Total study time for the whole book is roughly 200 hours (see each part intro's time table).
Pick your track
- 🔬 Scientist — "my Python/MATLAB is too slow." You want speed soon.
- 📖 Standard — comprehensive mastery, front to back.
- 🔧 Legacy — "I inherited FORTRAN 77 and must understand it."
- ⚡ HPC — "I need parallel code for a cluster."
🔬 Scientist Track (~10–12 weeks at ~8 h/week)
- Weeks 1–3: Parts I (Chapters 1–7) — the language. Do every Project Checkpoint.
- Weeks 4–5: Part II essentials (Chapters 8, 9, 13) — modules, derived types, error handling.
- Week 6: Chapter 15 (f2py) — the payoff: call Fortran from your existing Python.
- Weeks 7–8: Part V (Chapters 20–24) — floating point through PDEs; finish the serial solver.
- Weeks 9–10: Part VII (Chapters 27–30) — profile and optimize; measure your speedup vs. Python.
- Weeks 11–12: Part VIII (Chapters 31, 33) — Amdahl and OpenMP; parallelize the hot loop.
📖 Standard Track (~6 months at ~8 h/week)
Read straight through, Chapters 1–40, one part every 2–3 weeks, doing every Project Checkpoint. This is the path the running project assumes and the most thorough. Budget the most time for Chapters 5 (arrays), 24 (the solver's core), and 32–34 (parallelism).
🔧 Legacy Track (~8 weeks at ~8 h/week)
- Weeks 1–2: Part I (Chapters 1–7) — enough modern Fortran to read and write.
- Week 3: Chapter 8 (modules) — the single most important modern feature for modernization.
- Weeks 4–5: Part IV (Chapters 17–19) — read, modernize, and translate FORTRAN 77. This is your core.
- Week 6: Chapter 13 (error handling) and Chapter 6 (
intent) — the safety features you'll add. - Weeks 7–8: Part IX (Chapters 36–37) — how real codes are organized and tested; apply it to yours.
Then return to Parts II, V, and VII as the code you maintain demands.
âš¡ HPC Track (~10 weeks at ~8 h/week)
- Weeks 1–3: Parts I–II fundamentals (Chapters 1–9, 13) — you must be fluent before parallelizing.
- Week 4: Chapter 16 (ecosystem) and Chapter 24 (the solver core) — something worth parallelizing.
- Weeks 5–6: Part VII (Chapters 27–30) — make it fast serially first; parallelizing slow code wastes processors.
- Weeks 7–10: Part VIII (Chapters 31–35) — Amdahl, coarrays, OpenMP, MPI, GPU, in order.
Working the book on your own
- Do the Project Checkpoints. Reading teaches vocabulary; building the solver teaches the language.
- Compile and run every example. The book never ran its code — confirming its "expected output" is a built-in exercise, and the moment your result matches, you know you understood.
- Attempt the daggered (†) and odd exercises, then check
appendices/answers-to-selected.md. - Keep the reference cards (
key-takeaways.md) and the appendices open as you code. - Join
fortran-lang.discourse.group— the community answers beginners' questions generously.