Memory storage of multidimensional arrays in fortran 90

  1. Hello,

    I think i heard somewhere that a multidimensional array in fortran 90 may be stored non-contiguously in memory. Is this true? Even if it the size was known at compile time?

    If your answer is it depends on a compiler, what about ifort and gfortran?
     
  2. jcsd
  3. OK, after some investigation, I found that fortran 90, unlike fortran 77 (and C) does not impose a storage implementation on the arrays. But, according to some people, in all implementations at least the first index is contiguous. What is certainly not contiguous are subarrays chosen with a stride of course (A(1:50:10)), though when used as an argument they are usually copied to a contiguous temporary. The pointers to such arrays are also not contiguous.
    If arrays are defined with a simple format, e.g. A(10,20,30), they are, in most (all?) cases contiguous.

    Any further comments or clarifications would be welcome.
     
Know someone interested in this topic? Share this thead via email, Google+, Twitter, or Facebook

Have something to add?
Similar discussions for: Memory storage of multidimensional arrays in fortran 90
Loading...