Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Memory storage of multidimensional arrays in fortran 90

  1. Oct 17, 2010 #1

    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. Oct 19, 2010 #2
    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 thread via Reddit, Google+, Twitter, or Facebook

Similar Discussions: Memory storage of multidimensional arrays in fortran 90
  1. FORTRAN 90 2d arrays (Replies: 6)