直接または間接的に自身を参照することのできるプロシージャーを再帰プロシージャーと呼びます。このようなプロシージャーは、特定の条件を満たすまで、無限にそのプロシージャー自身を参照することができます。たとえば、次のように正の整数 N の階乗を決定することができます。
INTEGER N, RESULT, FACTORIAL READ (5,*) N IF (N.GE.0) THEN RESULT = FACTORIAL(N) END IF CONTAINS RECURSIVE FUNCTION FACTORIAL (N) RESULT (RES) INTEGER RES IF (N.EQ.0) THEN RES = 1 ELSE RES = N * FACTORIAL(N-1) END IF END FUNCTION FACTORIAL END
構文および規則に関する詳細については、FUNCTION、SUBROUTINE、または ENTRYを参照してください。
+----------------------------------IBM 拡張----------------------------------+
また、コンパイラー・オプション -qrecur を指定することによって、外部プロシージャーを再帰的に呼び出すことができます。ただし、XL Fortran は、プロシージャーが RECURSIVE または RESULT のいずれかのキーワードを指定している場合に、このオプションを無視します。
+--------------------------------IBM 拡張の終り-------------------------------+