title: Passing multi-dimensional array in fortran subroutines
body: <p>I am trying to understand a Fortran code written by someone else. The code is doing what it is supposed to do so I am assuming that it works fine. A subroutine called "fft" is being called from another subroutine called "convol". Inside "convol", an array is declared like this:</p>
  
  <pre><code>real, dimension fri(n+1,n,nh,2,0:1)
  call fft(fri)
  </code></pre>
  
  <p>Inside "fft", the declaration is like this:</p>
  
  <pre><code>subroutine wrft3b(fri) 
  real, dimension fri(2,n+1,n,nh,0:1) 
  </code></pre>
  
  <p>I don't understand why the array lengths are not consistent and still the code is working. Any clues what might be happening here? </p>