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
'Office life' of bacteria may be their weak spot
Lunar explorers will walk at higher speeds than thought
Philips introduces BlueTouch, PulseRelief control for pain relief
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