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
Scientists discover RNA modifications in some unexpected places
Scientists discover tropical tree microbiome in Panama
'Squid skin' metamaterials project yields vivid color display
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