引き数

実引き数の仕様



>>-+------------------+--+-argument------------------+---------><
   '-arg_keyword-- = -'  |                   (1)     |
                         +-%VAL--(--argument-------)-+
                         |                   (2)     |
                         '-%REF--(--argument-------)-'
 
 


注:


  1. IBM 拡張

  2. IBM 拡張


arg_keyword
呼び出し中のプロシージャーの明示的インターフェース内の 仮引き数名です。

argument
実引き数です。

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

%VAL%REF
引き渡しメソッドを指定します。詳細については、%VAL および %REFを参照してください。

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

実引き数は、プロシージャー参照の引き数リストに入れます。 プロシージャー参照の実引き数は下記のいずれかです。

ステートメント関数参照内で指定される実引き数は、 スカラー・オブジェクトである必要があります。

プロシージャー名は、特定名でない場合、内部プロシージャーの名前、 ステートメント関数、またはプロシージャーの総称名にすることはできません。

プロシージャーの参照の規則および 制約事項は、プロシージャー参照で説明しています。

FORTRAN 95 の開始 Fortran 95 では、非組み込みエレメント型プロシージャーを実引き数として 使用することはできません。 FORTRAN 95 の終了

引き数キーワード

引き数キーワードを使用して、実引き数を仮引き数とは異なる順序で指定することができます。 引き数キーワードを使用すると、オプションの仮引き数に対応する実引き数を 省略することができます。つまり、単にプレースホルダーとして機能する 仮引き数を必要としません。

各引き数キーワードは、参照中のプロシージャーの明示的インターフェースにある仮引き数の名前にしてください。 引き数キーワードは、暗黙のインターフェースを持つプロシージャーの 引き数リスト内に入れないでください。

引き数リスト内で、実引き数を引き数キーワードを使用して指定される場合、 リストの次の実引き数も引き数キーワードによって指定されます。

引き数キーワードは、ラベル・パラメーターに対して 指定することはできません。 ラベル・パラメーターは、 そのプロシージャー参照内で引き数キーワードを参照する前に指定しなければ なりません。

引き数キーワードの例
INTEGER MYARRAY(1:10)
INTERFACE
  SUBROUTINE SORT(ARRAY, DESCENDING, ARRAY_SIZE)
    INTEGER ARRAY_SIZE, ARRAY(ARRAY_SIZE)
    LOGICAL, OPTIONAL :: DESCENDING
  END SUBROUTINE
END INTERFACE
CALL SORT(MYARRAY, ARRAY_SIZE=10)  ! No actual argument corresponds to the
                                   ! optional dummy argument DESCENDING
END
SUBROUTINE SORT(ARRAY, DESCENDING, ARRAY_SIZE)
  INTEGER ARRAY_SIZE, ARRAY(ARRAY_SIZE)
  LOGICAL, OPTIONAL :: DESCENDING
  IF (PRESENT(DESCENDING)) THEN
            .
            .
            .
END SUBROUTINE
 

仮引き数



>>-+-dummy_arg_name------------------+-------------------------><
   |      (1)                        |
   +-%VAL-------(--dummy_arg_name--)-+
   |      (2)                        |
   '-%REF-------(--dummy_arg_name--)-'
 
 


注:


  1. IBM 拡張

  2. IBM 拡張


仮引き数は、ステートメント関数ステートメントFUNCTION ステートメント、SUBROUTINE ステートメント、または ENTRY ステートメントで指定します。 ステートメント関数、関数サブプログラム、インターフェース本体、およびサブルーチン・サブプログラムの 仮引き数は、実引き数の型や、および各引き数がスカラー値、配列、プロシージャー、または ステートメント・ラベルのいずれであるかを示しています。 外部サブプログラム、モジュール・サブプログラム、内部サブプログラムの 定義内、またはインターフェース本体内の仮引き数は、次のいずれかに 分類されます。

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

%VAL または %REF は、インターフェース・ブロックに ある FUNCTION ステートメント または SUBROUTINE ステートメントの仮引き数に対してのみ 指定することができます。 インターフェースは、Fortran 以外のプロシージャー・ インターフェースに合ったものにしてください。 %VAL または %REF が外部プロシージャーのインターフェース・ブロックにある場合、 この引き渡し方法はそのプロシージャーに対する参照ごとに示されます。 外部プロシージャーの参照で実引き数が %VAL または %REF を指定する場合、対応する 仮引き数用のインターフェース・ブロックで同じ引き渡し方法を指定する必要があります。 詳細については、%VAL および %REFを参照してください。

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

ステートメント関数定義の仮引き数は、変数名として分類されます。

指定名は、仮引き数リスト内に一度だけ入れることが可能です。

ステートメント関数のステートメントに仮引き数として指定される 変数名の有効範囲は、指定されているステートメントの有効範囲と同じです。 この変数名の型は、有効範囲単位内のステートメント関数を含む変数名である場合に持つ型および 型付きパラメーターと同じです。 変数名は、アクセス可能な配列と同じ名前にはできません。 IBM Copyright 2003