I work with FORTRAN a lot, but I never had formal instruction in the proper way to write source code. I currently use modules to store global variables, but I understand yo
Modules help the Fortran program by automatically providing the explicit interfaces, as already described in some of the other answers. This allows the compiler to check for consistency between arguments in procedure calls and the procedure declarations, which catches a lot of mistakes -- here are some Stackoverflow answer that show this benefit of modules: Computing the cross product of two vectors in Fortran 90, FORTRAN functions and Fortran segmentation fault in pointer array