Ich bin gerade auf die Tatsache gestoßen, dass der Compiler mir Integer-Arrays als Indizes für andere Arrays zur Verfügung stellt. Zum Beispiel:array-value Array-Indizes
implicit none
real*8 :: a(3), b(2)
integer :: idx(2)
a=1.d0
idx=(/1,2/)
b = a(idx)
print*,shape(b)
print*,b
print*
end
Angesichts der Tatsache, dass dies scheint sowohl mit gfortan und einem PGI Compiler zu arbeiten, ich frage mich, ob dies eine Sprache-Funktion, anstatt etwas Compiler lässt mich gerade aus mit. Ich würde mich freuen, wenn jemand, der besser informiert ist als ich, kommentieren kann, wenn das wirklich eine Sprachfunktion ist.
Und wenn es ist, als ich es schätzen würde, wenn jemand die genauen Sprachregeln formulieren würde, wie solche Konstruktionen sind in mehrdimensionalen Fall interpretiert, wie hier:
implicit none
real*8 :: aa(3,3), bb(2,2)
integer :: idx(2)
do i=1,3 ; do j=1,3
aa(i,j) = 1.d0*(i+j)
enddo; enddo
bb=aa(idx,idx)
print*,shape(bb)
print*,bb
end