Stop Passing Array Sizes by Hand: Assumed-Shape Arrays in Fortran Modules
Passing array sizes as separate arguments is a legacy habit that defers bugs to runtime. Module procedures with assumed-shape dummy arrays let the compiler check every call — here's a worked normalization kernel and the honest trade-offs.