title: Subtle difference between Fortran and c with respect to how sources are interfaced and compiled together
body: <p>Both languages have a way for a single program/library to span over multiple files. C languages use include statements using explicitly created header files, whereas Fortran has the compiler generate an interface from a single module. Forgive me in advance if I misunderstood how either language compiles its source code. </p>
  
  <p>In c/c++ programs you usually create .c files containing source code, and .h files containing the interface to your code so that other source files can anticipate what is in the source, which is then compiled all together into libraries, object files, etc. </p>
  
  <p>In Fortran programs (90+), you can put code into separate modules, and instead of explicitly writing a header/interface file for each one, the compiler will generate interfaces for them and put them into separate binaries (.mod files) in addition to the compiled object files. Creating libraries, object files, etc then requires you compile/link them together.</p>
  
  <p>Why is there this subtle difference between how these languages compile their interfaces? Is it just a quirk that resulted from the long histories of either language? </p>