Register to reply

Memory storage of multidimensional arrays in fortran 90

by vacuum
Tags: arrays, fortran, memory
Share this thread:
Oct17-10, 08:01 AM
P: 26

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?
Phys.Org News Partner Science news on
Apple to unveil 'iWatch' on September 9
NASA deep-space rocket, SLS, to launch in 2018
Study examines 13,000-year-old nanodiamonds from multiple locations across three continents
Oct19-10, 06:24 AM
P: 26
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.

Register to reply

Related Discussions
Pointers and multidimensional arrays in C Programming & Computer Science 2
Fortran IO of 3D arrays Programming & Computer Science 7
Multidimensional arrays in C Programming & Computer Science 18
Storage of sparse matrices fortran/C or growing arrays Programming & Computer Science 0