Fortranで配列の配列を作成しようとしています。
次のようなもの
TYPE :: array_of_arrays
REAL, DIMENSION(:), POINTER :: p => NULL()
END TYPE
TYPE(array_of_arrays), DIMENSION(2) :: some_array
私ができるように:
REAL, DIMENSION(3), TARGET :: some_vector1 = (/1.0, 2.1, 4.3/)
REAL, DIMENSION(3), TARGET :: some_vector2 = (/3.0, 1.2, 9.6/)
some_array(1)%p => some_vector1
some_array(2)%p => some_vector2
WRITE(*,*) some_array(1)%p ! I see some_vector1
WRITE(*,*) some_array(2)%p ! I see some_vector2
some_vector
これらの配列のそれぞれを、配列の配列内の各要素に対応するように実際に宣言するのは面倒です。
私がやりたいのは、一時ベクトルがターゲットとして設定されている別のサブルーチンにあり、そのサブルーチンは、その一時ベクトルを指すように配列の配列を設定します。
このようにして、匿名配列を作成できます。
ただし、これは機能していないようで、Fortranがサポートしていないことを最初に行っているのではないかと思います。
では、Fortranは匿名配列、つまり(用語が間違っている場合に備えて)参照を介してのみアクセスできる配列をサポートしていますか?