宣言式は,整数型でスカラ値を持つ制限式です。この形式の式は,配列境界と文字長の宣言中にのみ現れます。
制限式では,すべての演算が組込み演算で,すべての演算対象は以下のいずれかです。
定数または定数の部分オブジェクト
以下のいずれかの変数
OPTIONAL または INTENT(OUT) 属性を持たない仮引数 (またはそのような変数の部分オブジェクト)
共通ブロック中の変数 (またはそのような変数の部分オブジェクト)
参照結合または親子結合によって参照可能になっている変数 (またはそのような変数の部分オブジェクト)
すべての要素とすべての DO 形反復の境界と刻み幅が,制限式を一次子として持つ式であるような配列構成子
制限式を成分として持つ構造体構成子
対応する DO 形反復の境界と刻み幅が制限式であるような配列構成子中の DO 形反復変数
以下のいずれかの問合せ関数の引用
BIT_SIZE | NWORKERS |
DIGITS | PRECISION |
EPSILON | PROCESSORS_SHAPE |
HUGE | RADIX |
ILEN | RANGE |
KIND | SHAPE |
LBOUND | SIZE |
LEN | SIZEOF |
MAXEXPONENT | TINY |
MINEXPONENT | UBOUND |
NUMBER_OF_PROCESSORS |
すべての関数の引数は以下のいずれかでなくてはなりません。
制限式
ALLOCATE 文,ポインタ代入,または制限式ではない式で引き継がれない,または定義されない種別パラメタと境界をもつ変数
各引数が制限式である他の組込み関数の引用
各引数が制限式であるような宣言関数の引用
DO 形反復の上下限および DO 形反復の刻み幅が制限式である配列構成子
別の制限式を括弧で囲んだもの
すべての添字,部分配列添字,および部分文字列の開始位置と終了位置が制限式でなくてはなりません。
宣言関数を宣言式の中で使用して,データ・オブジェクトの属性を宣言することができます。宣言関数は純粋関数です。これは仮手続引数を持つことはできず,以下のいずれであってもなりません。
組込み関数
内部関数
文関数
RECURSIVE として定義されたもの
宣言式中の変数は,以下のいずれかの方法で,その型および型パラメタ (存在する場合) が宣言されていなくてはなりません。
同じ有効範囲中の以前の宣言
現在その有効範囲で有効となっている暗黙の型付け規則
親子結合または参照結合
宣言式中の変数が暗黙の型付け規則によって型を宣言されている場合,その変数は,それ以降の型宣言文中では,暗黙の型と型パラメタに従わなくてはなりません。
宣言式がオブジェクトの型パラメタまたは配列境界に対する問合せ関数を呼び出す場合,型パラメタまたは配列境界は,それ以前の宣言文 (または同じ文の中の問合せ関数の左側) で宣言されていなくてはなりません。
宣言式の中で,関数の引用で引数の数は 255 個に制限されています。
例
以下に有効な宣言式の例を示します。
MAX(I) + J ! I と J はスカラ整数変数 UBOUND(ARRAY_B,20) ! ARRAY_B は形状引継ぎ仮配列
関連情報