私は、コンパイラが整数配列を他の配列のインデックスとして使用できるようにしたという事実に直面しました。例えば:この言語機能ではなく、何かのコンパイラはちょうどで私を繰り出す場合配列値の配列インデックス
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
が、これはgfortanとPGIコンパイラの両方で動作するように見えるという事実を考えると、私は思ったんだけど。これが本当に言語機能であれば、私より知識のある人がコメントできるのは分かります。
そして、それは誰かがここでのように、多次元の場合にどのように解釈されるか、そのような構造の正確な言語規則を綴るならば、私は感謝よりも、ある場合:
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