初期値式はコンパイル時に定数として評価されなくてはなりません。これは言語要素の初期値を宣言するために使用されます。
初期値式の中では,すべての演算が組込み演算であり,すべての演算対象が以下のいずれかになっています。
定数または定数の部分オブジェクト
個々の要素と個々の DO 形反復の境界と刻み幅が,初期値式を一次子として持つ式であるような配列構成子
成分が初期値式である構造体構成子
整数型または文字型の初期値式を引数として持つ整数型または文字型の要素別組込み関数の引用
以下のいずれかの問合せ関数の引用
| BIT_SIZE | MINEXPONENT |
| DIGITS | PRECISION |
| EPSILON | RADIX |
| HUGE | RANGE |
| ILEN | SHAPE |
| KIND | SIZE |
| LBOUND | TINY |
| LEN | UBOUND |
| MAXEXPONENT |
各関数の引数は以下のいずれかでなくてはなりません。
初期値式
ALLOCATE 文,ポインタ代入,または初期値式ではない式で引き継がれない,または定義されない種別パラメタと境界を持つ変数
以下のいずれかの変形関数の引用 (すべての引数が初期値式でなくてはなりません)
| REPEAT | SELECTED_REAL_KIND |
| RESHAPE | TRANSFER | SELECTED_INT_KIND | TRIM |
変形関数 NULL の引用
対応する DO 形反復の境界と刻み幅が初期値式であるような配列構成子中の DO 変数
別の初期値式を括弧で囲んだもの
すべての添字,部分配列添字,および部分文字列の開始位置と終了位置が初期値式でなくてはなりません。
初期値式の中で,べき乗演算子 (**) は整数型のべき乗でなくてはなりません。
初期値式がオブジェクトの型パラメタまたは配列境界に対する問合せ関数を呼び出す場合,型パラメタまたは配列境界は,それ以前の宣言文 (または同じ文の中の問合せ関数の左側) で宣言されていなくてはなりません。
例
以下に,初期値 (定数) 式として有効な例と無効な例を示します。
| 有効 | |
| -1 + 3 | |
| SIZE(B) | ! B は名前付き定数 |
| 7_2 | |
| INT(J, 4) | ! J は名前付き定数 |
| SELECTED_INT_KIND (2) | |
| 無効 | 説明 |
| SUM(A) | 使用不可能な関数です。 |
| A/4.1 - K**1.2 | 整数型のべき乗ではありません (A と K は名前付き定数)。 |
| HUGE(4.0) | 引数が整数型ではありません。 |
関連情報