式は、データの参照または計算のことで、オペランド、演算子、 括弧から構成されます。 式を評価すると、型、形状、および場合によっては型付きパラメーターを 持った値が生成されます。
オペランド は、スカラーまたは配列のいずれかです。 演算子 は、組み込みまたは定義済みのいずれかです。 単項演算の形式は次のとおりです。
2 進演算の形式は次のとおりです。
2 つのオペランドの形状は整合性がとられます。 一方のオペランドが配列で、もう一方がスカラーである場合、そのスカラーは、 その配列オペランドと同じ形状を持つ配列として扱われ、 この配列のすべてのエレメントがスカラーの値を持つことになります。
括弧内の式はどれもデータ・エンティティーとして扱われます。 括弧を使用して式の明示的解釈を指定することもできます。 さらに、括弧を使用して式の代替形式を制限することもできます。 これにより、式の計算時に中間値の大きさと精度を制御できます。 例として、次に 2 つの式を示します。
(I*J)/K I*(J/K)
この 2 つの式は、数学的には等しいものですが、計算の結果として異なる計算値が出ることもあります。
1 次子 は、最も単純な形式の式です。 以下のいずれかになります。
データ・オブジェクトである 1 次子は、想定サイズ配列ではありません。
12.3 ! Constant 'ABCDEFG'(2:3) ! Subobject of a constant VAR ! Variable name (/7.0,8.0/) ! Array constructor EMP(6,'SMITH') ! Structure constructor SIN(X) ! Function reference (T-1) ! Expression in parentheses
1 次子の型、型付きパラメーター、および形状は、次のように決定されます。
ポインターがポインター以外の仮引き数に関連した演算 に 1 次子として入れられる場合、ターゲットが参照されます。 1 次子の型、パラメーター、 および形状は、ターゲットの型、パラメーターおよび形状です。 ポインターがターゲットと関連していない場合、その ポインターは、対応する仮引き数がポインターである プロシージャー参照内の実引き数、またはポインター割り当てステートメント内の ターゲットとしてのみ指定されます。 関連解除されたポインターを ASSOCIATED 組み込み照会関数の実引き数として使用することもできます。
演算 [expr1] op expr2 の場合、op が 単項式であるか、あるいは expr1 がスカラーで あると、その演算の形状は expr2 の形状となります。 そうでない場合、その形状は expr1 の形状となります。
式の型および形状は、演算子および式の 1 次子の型と形状によって決まります。
式の型は、組み込み型または派生型です。
組み込み型の式は、kind パラメーターを持ち、
これが文字型の場合には、length パラメーターも持ちます。