title: Fortran intent(inout) versus omitting intent
body: <p>Good practice dictates that subroutine arguments in Fortran should each have a specified intent (i.e. <code>intent(in)</code>, <code>intent(out)</code> or <code>intent(inout)</code> as described <a href="https://stackoverflow.com/questions/1011604/what-is-the-explicit-difference-between-the-fortran-intents-in-out-inout">this question</a>):</p>
  
  <pre><code>subroutine bar (a, b)
      real, intent(in) :: a
      real, intent(inout) :: b
      b = b + a
      ...
  </code></pre>
  
  <p>However, not specifying an intent is valid Fortran:</p>
  
  <pre><code>subroutine bar (a, b)
      real, intent(in) :: a
      real :: b
      b = b + a
      ...
  </code></pre>
  
  <p>Are there any real differences beyond compile time checking for an argument specified as <code>intent(inout)</code> and an argument without a specified intent? Is there anything I should worry about if I'm retrofitting intents to older, intent free, code? </p>