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.)