Implicit Typing Rules and the implicit none Anomaly
Source video: FORTRAN in 100 Seconds (Fireship, 2:38) · at 01:19. The video gives the I to N rule and tells you to use implicit none.
Parent section: Technical Evaluation of Video Content and Syntactic Mechanics
Classical Fortran eliminated mandatory variable declarations by introducing automatic implicit typing based on lexical naming rules7. Any variable identifier starting with the characters I, J, K, L, M, or N—a convention derived from the initial letters of the word Integer—automatically resolved to an integer type7. All remaining alphabetic characters (A–H and O–Z) defaulted to single-precision floating-point real scalars7.
Because implicit typing frequently introduced undetectable software bugs stemming from typographical errors, modern software engineering practices mandate the insertion of implicit none at the boundary of every program, module, and procedure7. This directive disables default typing rules and forces the explicit declaration of every variable7.
The video presents an illustrative snippet intended to demonstrate modern loop execution under implicit none7:
Fortran
program myApp
implicit none
do n = 1, 10
doubled = n * 2
print *, doubled
end do
end program myApp
From a compilation standpoint, this snippet contains a fatal defect: because implicit none is active, the variables n and doubled must be explicitly declared with their respective data types7. In its published state, any standard-conforming Fortran compiler (gfortran, flang, ifx) will immediately abort compilation with an undefined variable error5. If implicit none were omitted, the code would execute successfully, but n would resolve as an integer while doubled would implicitly default to a floating-point real, causing unintended type conversion7.
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-m11 | minor | DOC | open | L36-43 | Claim: The code block. Problem: The code has no code fence and has escaped characters such as \= and \*. It does not show as code. |
| D07-m3 | minor | VERIFY | verify | L32 | Claim: The I to N rule comes from the word “Integer”.. Problem: This is a common story. Many sources say that it comes from the math custom of i to n for integer indices. The report gives one story as fact. |
| D07-m4 | minor | KNOW | open | L33 | Claim: Put implicit none in every program, module and procedure.. Problem: A procedure inside a module gets implicit none from the module. The learner can write it once per module. |
| D07-m9 | minor | VERIFY | verify | L36-43 | Claim: The report quotes the code of the video.. Problem: The transcript does not show code, so this review cannot check the exact text. The fortran-lang forum thread confirms that n and doubled have no declaration under implicit none. The analysis at L45 is correct: without implicit none, doubled is REAL. |
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: