title: Does the Intel Fortran 95 compiler allow module arrays to be of non-constant size?
body: <p>I have downloaded a Fortran 90/95 adaptive mesh refinment library (<a href="http://www.physics.drexel.edu/~olson/paramesh-doc/Users_manual/amr.html" rel="nofollow noreferrer">Paramesh</a>), and now I'm trying to compile an example program that came with it. In the process I modified the Makefile to use gfortran instead of the Intel Fortran compiler. </p>
  
  <p>In the library code, there is a module containing this snippet:</p>
  
  <pre><code>       module physicaldata
  
  ! Many many lines of variable definitions here
  !....
         Public :: nfluxvar
         Integer,Save :: nfluxvar
  
  ! Many many lines of variable definitions here
  !....
  
         end module physicaldata
  </code></pre>
  
  <p>Elsewhere there is</p>
  
  <pre><code>       module flux_assign
          use physicaldata
          integer :: iflux_target(nfluxvar)
         end module flux_assign
  </code></pre>
  
  <p>which is causing <a href="https://stackoverflow.com/questions/14296787/fortran-95-array-must-have-constant-shape-error">this error</a>:</p>
  
  <pre><code>advance_soln_vdt.F90:16.40:
      Included at amr_main_prog.F90:29:
  
         integer :: iflux_target(nfluxvar)
                                      1
  Error: The module or main program array 'iflux_target' at (1) must have constant shape
  </code></pre>
  
  <p>Would that code work if compiled using another compiler? I know that with standard Fortran, or at least the one used by gfortran, requires that integer variables which are used to denote array sizes should have the <code>parameter</code> keyword attached to them. Is that not the case for other Fortran compilers? Do other compiler include non-standard features such as this?</p>