プロシージャ ブロック内の文は、プロシージャ ブロックが別のプロシージャ ブロックから呼び出されたときにのみ実行されます。プロシージャの呼び出しは CALL 文で実行できます。次に例を示します。
A: PROCEDURE; . . . CALL B; . . . B: PROCEDURE; . . . END B; . . . END A;
この例では、プロシージャ B は、プロシージャ A から呼び出されたときにのみ実行されます。プロシージャ B が完了すると、その呼び出しに続く文からプロシージャ A の実行が再開されます。
プロシージャは、次の例に示すように、END 文を実行するか RETURN 文を実行することで呼び出し元に戻ります。
A: PROCEDURE; . . . IF X<0 THEN RETURN; . . . END A;
プロシージャには制御は移りません。つまり、制御がプロシージャ宣言の直前の文に達すると、GOTO などの制御フロー文でない限り、宣言されたプロシージャに続く文に自動的にスキップします。