I have the following lines in my code…
double precision, dimension(mj) :: temp, xl, r, pres equivalence (x(1, 1), pres), (x(1, 4), temp) equivalence (x(1, 2), r), (x(1, 3), xl)
I understand that
equivalence causes the two variables to share common memory allocation, thus as one variable’s contents change, the other changes as well (since they have the same memory allocation).
However, I note that
xl are arrays with a dimension of
mj (set to 4000).
I am reading this as that every single part of those 4 arrays are linked to a single value in the corresponding index of
For example, all 4000 elements of
pres are set to reflect the contents of
x(1, 1). If
x(1, 1)'s contents change, then every part of
pres will change accordingly. Equally, if any part of
pres changes, then all parts of
pres change, as does
- Am I correct here?
- If so, does this not appear to be overly complex, wasting of space and time?
- If not, where am I going wrong in my thinking?
Thank you for any help received.