Deep array kopieren in Fortran

Brauche ich eine Tiefe Kopie eines (real) array Fortran (90), bin aber nicht sicher, genau, wie, eins zu bekommen, da ich nicht vollständig verstehen, wie Referenzen funktionieren. Intuitiv würde ich erwarten, dass dies von mir, was ich will:

do i=1,n
  b(i) = a(i)
end do

Es wurde jedoch vor kurzem wies mich darauf hin, dass b(1:n) = a(1:n) ist äquivalent zu dem code oben. Intuitiv würde ich erwarten, dass b(1:n) = a(1:n) lediglich bewirkt, dass die Referenz von b(1:n) auf die Stelle des a(1:n) im Speicher.

Ist b(1:n) = a(1:n) eine Tiefe Kopie? Warum? Was ist Los mit den zugrunde liegenden Referenzen im Gegensatz zu b = a?

InformationsquelleAutor astay13 | 2012-08-03
Schreibe einen Kommentar