title: Do we still need subroutines?
body: <p>In Fortran, a clear difference exists between function and subroutine: functions return one value, subroutines return no value. This introduce a cascade of differences between the two. One example is the calling semantics: you can call a function just as in other languages, but in order to call a subroutine you must issue a <code>call</code> statement first.</p>
  
  <p>With the addition of pointers and data types in Fortran95, it appears that there is no technical limitation in making any subprogram a function, and keeping subroutines just for legacy. Functions could return zero (you just return a dummy integer), one, or multiple values (for example, you could return a pointer to an allocated instance of a type, like a C++ STL Pair).</p>
  
  <p>Am I wrong? Do we still need subroutines in Fortran programming due to some feature that subroutines have and functions don't?</p>