式は,データ引用または計算を表し,演算子,演算対象,および括弧で構成されます。式の結果は,スカラ値か,スカラ値の配列です。
式の値が組込み型である場合,その式は種別パラメタを持ちます (値が CHARACTER 組込み型である場合,長さのパラメタも持ちます)。式の値が構造型である場合,種別パラメタは持ちません。
演算対象はスカラまたは配列です。演算子には組込みと,ユーザー定義があります。組込み演算子は,コンパイラが認識しているもので,任意のプログラム単位で使用することができます。ユーザー定義演算子は,ユーザーが関数副プログラム中で明示的に記述したもので,その副プログラムを使用しているプログラム単位中で使用することができます。
式の最も単純な形式 (一次子) は,以下の形を取ることができます。
定数-例:4.2
定数の部分オブジェクト-例:'LMNOP'(2:4)
変数-例:VAR_1
構造体構成子-例:EMPLOYEE(3472, "JOHN DOE")
配列構成子-例:(/12.0,16.0/)
関数引用-例:COS(X)
括弧で囲まれた別の式-例:(I+5)
式の中で演算対象として使用される変数または関数の引用は,その引用が実行される時点よりも前に定義されていなくてはなりません。演算対象がポインタである場合,定義済みの指示先オブジェクトと結合されていなくてはなりません。整数型演算対象は,文番号値ではなく整数値で定義されていなくてはなりません。文字データ・オブジェクト引用中のすべての文字列は事前に定義されていなくてはなりません。
配列または部分配列の引用が行われるとき,選択されるすべての要素が事前に定義されていなくてはなりません。構造体が引用されるとき,すべての成分が事前に定義されていなくてはなりません。
配列を演算対象として取る組込み演算子を含んでいる式では,演算は配列の各要素に対して行われます。複数の配列演算対象を持つ式では,配列は形状適合 (同じ形状を持つ) でなくてはなりません。演算は配列の対応する要素に適用され,その結果は演算対象と同じ形状 (同じ次元数と寸法) の配列となります。
ポインタを演算対象として取る組込み演算子を含んでいる式では,演算はポインタに結合された指示先の値に対して行われます。
ユーザー定義演算子の場合,配列とポインタに対する演算は,その演算を定義している手続によって決定されます。
スカラは任意の配列に対して形状適合です。式の 1 つの演算対象が配列であり,もう 1 つの演算対象がスカラである場合,スカラの値がコピーされて,配列演算対象と同じ形状を持つ配列が作成されます。その結果として,配列演算対象と同じ形状の配列が得られます。
以下の項では,数値式,文字式,関係式,論理式,ユーザー定義演算子について説明し,演算子の優先順位を要約し,初期値式および宣言式について説明します。
関連情報