2016-07-12 14 views
0

配列の次元を割り当てることは可能ですか? (次元のだけではなく、大きさ)配列の動的次元

すなわち、与える何か:

REAL, DIMENSION(:,:,: ... n), ALLOCATABLE :: array 

Iは、配列センスの配列でこれを意味し、我々はそれは、Fortranの簡単にアクセスできるアレイ構造を維持することができますか? thisがありましたが、最初の回答はこのニーズを満たしていません。 2番目の答えはポインタを使用します。それは働くだろうか?

+2

同様の質問は[this one](https://stackoverflow.com/q/31974786)です。 – francescalus

+0

またはこれです:http://stackoverflow.com/q/7500920/2737715 –

+1

これはよくある質問です。しかし、この施設を必要とする理由はそれほど頻繁ではありません。君は ? –

答えて

2

いいえ、可変ランクの配列を持つことはできません。 Fortran 2008 Standard、Clより。 2.4.6「配列」:

1配列は、最大15次元、任意次元の任意の次元を持つことができます。配列のサイズは、要素の数が合計で であり、エクステントの積と等しくなります。配列のサイズはゼロです。 配列の形状は、各次元のランクとエクステントによって決定され、 要素がエクステントであるランク1の配列として表されます。 名前付き配列はすべて宣言され、名前付き配列の階級は 宣言で指定されます。宣言された名前付き配列のランクは定数です。エクステントは固定でもよく、実行中に を変更することもできます。

[強調鉱山。]

ただし、エクステントproduct(extent in each dimension)、インデックス適宜要素を有する一次元アレイを有することができます。

これらの1Dアレイに関連付けられた多次元ポインタを使用することさえできます。これはあなたのための索引付けを担当しますが、引用で与えられているように、Standard Fortranでは15次元に制限されています。

関連する問題