CALL

目的

CALL ステートメントは実行するサブルーチンを呼び出します。

構文



>>-CALL--name--+-------------------------------------+---------><
               '-(--+---------------------------+--)-'
                    '-actual_argument_spec_list-'
 
 

name
内部、外部、またはモジュール・サブルーチン、外部または モジュール・サブルーチンの入り口、組み込みサブルーチンの名前、 または総称名です。

規則

CALL ステートメントを実行すると次のイベントが順番に 発生します。

  1. 式である実引き数が評価されます。
  2. 実引き数が対応する仮引き数に関連付けられます。
  3. 指定されたサブルーチンに制御が移ります。
  4. サブルーチンが実行されます。
  5. サブルーチンから制御が戻ります。

サブルーチン・ステートメントで RECURSIVE キーワードを 指定していると、サブプログラムはそれ自身を再帰的、直接的、 あるいは間接的に呼び出すことができます。

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

-qrecur コンパイラー・オプションを指定した場合、 外部サブプログラムもそれ自身を直接的、あるいは間接的に参照 することができます。

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

CALL ステートメントの引き数の中に 1 つ以上の選択戻り指定子がある場合、RETURN ステートメントの サブルーチンによって指定されたアクションに応じて、指定したステートメント・ラベルの 1 つに制御を移すことができます。

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

値または参照により引き数を引き渡すことによって言語間呼び出しを容易にするために、それぞれの場合に使用するための 引き数リスト組み込み関数 %VAL および %REF が提供されています。 それらは、Fortran 以外のプロシージャー参照にのみ 使用することができます。

値による引き数の引き渡しには、VALUE 属性を 使用することもできます。

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

INTERFACE
  SUBROUTINE SUB3(D1,D2)
    REAL D1,D2
  END SUBROUTINE
END INTERFACE
ARG1=7 ; ARG2=8
CALL SUB3(D2=ARG2,D1=ARG1)    ! subroutine call with argument keywords
END
 
SUBROUTINE SUB3(F1,F2)
  REAL F1,F2,F3,F4
  F3 = F1/F2
  F4 = F1-F2
  PRINT *, F3, F4
END SUBROUTINE

関連情報

IBM Copyright 2003