title: gfortran : check subroutine argument list (if call match definition)
body: <p>I'm debugging fortran program with gfortran using <code>-g -Og -fcheck=all</code></p>
  <p>It still does not report errors, that the number and type of arguments in call differs from the definition</p>
  <p><strong>e.g. it pass things like this without errors:</strong></p>
  <p>Definition:</p>
  <pre><code>subroutine assemble_2c(iforce, itheory, natoms)
          integer, intent(in) :: iforce
          integer, intent(in) :: itheory
          integer, intent(in) :: natoms
  ...
  end subroutine
  </code></pre>
  <p>use</p>
  <pre><code>call assemble_2c()
  </code></pre>
  <p><strong>also this:</strong></p>
  <pre><code>subroutine assemble_2c()
  ...
  end subroutine
  </code></pre>
  <p>use</p>
  <pre><code>call assemble_2c(iforce, itheory, natoms)
  </code></pre>
  <p>comming from C/C++ (Java, python... basically any other language) ... this seems to me as perhaps the most basic thing which compiler should check, so I'm really dismayed it does not.</p>