title: What is the explicit difference between the fortran intents (in,out,inout)?
body: <p>After searching for a while in books, here on stackoverflow and on the general web, I have found that it is difficult to find a straightforward explanation to the real differences between the fortran argument intents. The way I have understood it, is this:</p>
  
  <ul>
  <li><code>intent(in)</code> -- The actual argument is copied to the dummy argument at entry.</li>
  <li><code>intent(out)</code> -- The dummy argument points to the actual argument (they both point to the same place in memory).</li>
  <li><code>intent(inout)</code> -- the dummy argument is created locally, and then copied to the actual argument when the procedure is finished.</li>
  </ul>
  
  <p>If my understanding is correct, then I also want to know why one ever wants to use <code>intent(out)</code>, since the <code>intent(inout)</code> requires less work (no copying of data).</p>