Control Flow and Procedural Modularity
Source video: FORTRAN in 100 Seconds (Fireship, 2:38) · at 01:56. The video shows do and do while loops, then functions and subroutines.
Parent section: Technical Evaluation of Video Content and Syntactic Mechanics
Iterative structures in Fortran center around the do construct, which accommodates bounded count-based iterations (do i = 1, 10, 1) and conditional state-based iterations (do while (condition))7. Fortran divides procedural modularity into functions and subroutines1. Functions are invoked within mathematical expressions and return a single typed scalar, array, or derived type1. Contemporary best practices favor qualifying functions with the pure attribute, which guarantees the absence of side effects, memory mutations, or input/output calls, facilitating aggressive compile-time optimizations2. Subroutines are invoked via the call statement, execute transformations via pass-by-reference arguments, and do not return an inline value1. Modern standards govern argument behavior through explicit intent annotations (intent(in), intent(out), intent(inout)), enforcing data mutability constraints at the interface boundary1.
Review findings for this part
Section titled “Review findings for this part”The findings come from ../../findings/ (pass 1). The script matches them to this part by source line.
| ID | Severity | Evidence | Status | Location | Problem |
|---|---|---|---|---|---|
| D07-C1 | critical | DOC | open | L5-89, L93, L98 | Claim: The superscript numbers cite sources for each sentence.. Problem: The citations do not support the text. Source [1] is a Facebook group post about formatted input and output. The report cites it about 15 times for history, uppercase letters, character sizes, functions, intent and coarrays. Source [6] is a Hackaday article. The reviewer read it (WebFetch). It does not discuss card columns, keypunch models or errors in the video. But the report cites [6] for these (L11, L15, L20, L53). |
| D07-M7 | major | VIDEO KNOW | open | L57 | Claim: Subroutines use “pass-by-reference”. pure guarantees no “memory mutations”.. Problem: The standard does not require pass by reference. Compilers can copy in and copy out. A pure procedure cannot change data outside itself, but it can change its local variables. Also, the video says that a function takes “immutable arguments” (02:14 to 02:16). This is false. A function can change an argument unless the argument has intent(in). The report explains intent, but does not say that the video is wrong. |
Review worksheet
Section titled “Review worksheet”1. Goal of this part
Section titled “1. Goal of this part”What does this part try to show, or help the reader decide?
2. Key claims to test
Section titled “2. Key claims to test”| # | Claim | Evidence given (citation / data) | Verifiable? |
|---|---|---|---|
| 1 |
3. Adversarial review
Section titled “3. Adversarial review”- Strongest counter-argument:
- Unsupported, overstated, or outdated claims:
- Source quality (primary vs. blog/forum/marketing):
- Omissions / what a skeptic would ask:
- Internal consistency with other segments:
4. Evaluation
Section titled “4. Evaluation”- Does the segment achieve its goal? (Yes / Partly / No)
- Confidence: (High / Medium / Low)
- Required fixes: