Ch17 Discussion
Discussion Guide
Warm-up (think–pair–share, 5 min). "You open a .f file written in 1985 that runs a system your team
depends on. What is your first move?" Surface the instinct to rewrite — then contrast with read-first.
Main discussion (15–20 min).
1. Why did COMMON corrupt so many programs? Walk the re-ordered-declaration bug (Exercise 17.11 / the
§17.2 Find-the-Bug). Ask: what, exactly, would a module have caught, and at what stage (compile vs run)?
2. Diagnose before you delete. Present three EQUIVALENCEs (reuse a buffer / alias 2-D as 1-D / overlay
REAL on INTEGER). For each, have pairs name the modern replacement and one thing that breaks if they
pick the wrong one.
3. Read the kernel as a team. Project RELAX. Groups race to answer: is it Jacobi or Gauss–Seidel, and
what single feature proves it? (Answer: the separate TNEW.) Then: which one statement is the whole
convergence loop?
Group activity (10 min). Hand out the PLATE SETBC subroutine (fixed-form). In pairs, students
annotate every legacy construct with its modern replacement and write the first line of a modern setbc.
Collect a few; compare the design choices (module field vs assumed-shape argument).
Exit ticket. "State the five-step reading method in order, and name the one construct whose intent you
must diagnose before replacing it." (Method: shape → shared state → loops → kernel → hand-trace; the
construct is EQUIVALENCE.)