ステートメント関数

目的

ステートメント関数は単一ステートメント内の関数を定義します。

構文



>>-name--(--+---------------------+--)-- = --scalar_expression-><
            '-dummy_argument_list-'
 
 

name
ステートメント関数の名前です。 これをプロシージャー引き数で指定してはなりません。

dummy_argument
1 つのステートメント関数の仮引き数リストの中で 1 回だけ指定できます。 仮引き数には、ステートメント関数ステートメントの有効範囲があります。 その型と型付きパラメーターは、ステートメント関数を含む有効範囲単位内で同じ名前を持つエンティティーと 同じです。

規則

ステートメント関数は、その関数を定義している有効範囲単位に対してローカルです。 ステートメント関数をモジュールの有効範囲内で定義することはできません。

ステートメント関数から戻された値のデータ型は、name によって決まります。 name のデータ型がスカラー式のデータ型と 一致しない場合は、割り当てステートメントの規則に従って スカラー式の値が name の型に変換されます。

関数およびすべての仮引き数の名前はスカラー・データ・オブジェクトになるように、 明示的にあるいは暗黙的に指定しなければなりません。

スカラー式は定数、変数の参照、関数および関数のダミー・プロシージャーの 参照、および組み込み演算によって構成されます。 関数または関数のダミー・プロシージャーへの参照が式に含まれている場合、参照は明示インターフェースを使用することはできず、関数が明示インターフェースを使用したり変形可能な組み込み演算にすることはできません。結果はスカラーでなければなりません。 関数または関数のダミー・プロシージャーへの引き数が配列値の場合は、配列名を付ける必要があります。

+----------------------------------IBM 拡張----------------------------------+

XL Fortran では、スカラー式は構造体コンストラクターを参照することもできます。

+------------------------------End of IBM 拡張-------------------------------+

スカラー式は、次のステートメント関数のいずれかを参照することができます。

式の中で参照されるエレメントを持つ名前付き定数と配列は、 有効範囲単位内で前もって宣言するか、または使用関連付けか ホスト関連付けを介してアクセス可能にしなければなりません。

式の中で参照される変数は次のうちのどちらかです。

式の中のエンティティーの型が暗黙の型規則で決定されている場合、 その型と型付きパラメーターは、それに続く型宣言ステートメント内のものと一致しなければなりません。

スカラー式の中で外部関数を参照することによって、ステートメント関数の 仮引き数が未定義あるいは再定義になってはいけません。

ステートメント関数を内部サブプログラム内で定義し、そのステートメント関数とホストからアクセス可能な エンティティーの名前が同じ場合、その前に、ステートメント関数の名前を明示宣言した ステートメント関数定義を指定する必要があります。 たとえば、型宣言ステートメントを使用します。

文字型のステートメント関数、または文字型のステートメント関数の 仮引き数の長さ指定は、定数の宣言式でなければなりません。

PARAMETER (PI = 3.14159)
REAL AREA,CIRCUM,R,RADIUS
AREA(R) = PI * (R**2)            ! Define statement functions
CIRCUM(R) = 2 * PI * R           !   AREA and CIRCUM
 
! Reference the statement functions
PRINT *,'The area is: ',AREA(RADIUS)
PRINT *,'The circumference is: ',CIRCUM(RADIUS)

関連情報

IBM Copyright 2003