Hi @Kynda,
JMP (along with most statistical software) makes the assumption that the rows in your dataset are at the unit of analysis, so when you run an analysis with replicates within units as the rows, as the data are arranged here, you will receive incorrect results (at least for assessing statistical significance at the expected unit of analysis).
The fix is pretty simple -- summarize your data to the correct unit of analysis. Here are the steps:
1. Tables > Summary, then select WtGain, and click "Statistics" and select Mean. Then, select Diet and Tank, and cast them into the Group role. This will produce a table averaging over the replicates within tank (i.e., data now at the level of randomization):
2. Analyze > Fit Model (or Fit Y by X), and use the Mean WtGain as Y, and Diet as the only Model Effect.
3. Results will align with the output from Casella (2008)
I hope this helps!
Julian
edit: by the way, since Tank is the unit of randomization, and fish provide individual realizations of measurements within randomized levels, you could achieve identical results using the original dataset by treating Tank as a random effect in Fit Model: add Diet and Tank to the model effects section, then select Tank, click the Red Triangle next to "Attributes," and select Random Effect.
This yields a mixed model output with results identical (for the fixed factors) to an analysis summarized over your random factor (i.e., summarized to the to the level of analysis/randomization).