title: Fortran 90 array pass by reference issue
body: <p>What happens if I allocate a F90 pointer thus:</p>
  
  <pre><code>real, pointer :: abc(:)
  
  allocate abc (nx*ny*nz)
  </code></pre>
  
  <p>I pass abc to a subroutine, where i redefine it as </p>
  
  <pre><code>real arg1(nx,ny,xz)
  </code></pre>
  
  <p>This seems to work fine.</p>
  
  <p>But if I redefine as 2D array, I get a segfault.</p>
  
  <pre><code>real arg1(nx,ny)
  </code></pre>
  
  <p>With reordered arrays as above, it should work. Why does it fail? Any help will be appreciated.</p>
  
  <p>Thanks.</p>