大きさ引継ぎ配列は,結合されている実引数配列の大きさ (だけ) を取る仮引数配列です。次元数と寸法は,実配列と仮配列で異なっていてもかまいません。大きさ引継ぎ指定は次の形式を取ります。
([expli-shape-spec,] [expli-shape-spec,]... [dl:] *)
expli-shape-spec
形状明示指定。
dl
次元の下限を示す宣言式。式の値は正,負,またはゼロです。必要ならば,値は整数型に変換されます。
下限が指定されていない場合,値 1 が使用されます。
*
最後の次元の上限です。
配列の次元数は,形状明示指定数に 1 を加えた値です。
配列の大きさは,以下のように,大きさ引継ぎ仮配列に結合された実引数をもとに決定されます。
実引数が基本文字型以外の型の配列である場合,仮配列の大きさは実配列の大きさとなります。
実引数が基本文字型以外の型の配列要素である場合,仮配列の大きさは,a + 1 - s となります。s は添字順序値で,a は実配列の大きさです。
実引数が基本文字型の配列,配列要素,または配列要素部分列であり,n 個の文字記憶単位を持つ配列の b 番目の文字記憶単位から始まる場合,仮配列の大きさは次のようになります。
MAX(INT((n + 1 - b) / y), 0)
y は仮配列の要素の長さです。
大きさ引継ぎ配列は,以下の場合には全体配列引用としてしか使用できません。
形状を必要としない手続引用中の実引数であるとき
組込み関数 LBOUND の中にあるとき
大きさ引継ぎ配列の実大きさは未知なので,大きさ引継ぎ配列は I/O 文の中で以下のように使用することはできません。
I/O 並び中の配列名
内部ファイルの装置識別子
実行時書式指定子
例
次に大きさ引継ぎ指定の例を示します。
SUBROUTINE SUB(A, N) REAL A, N DIMENSION A(1:N, *) ...
以下の例は,大きさ引継ぎ配列のどの次元の下限でも指定することができることを示しています。
SUBROUTINE ASSUME(A) REAL A(-4:-2, 4:6, 3:*)
関連情報
配列要素順序の詳細については,「配列要素」を参照してください。