Making recursive calls

A called program can directly or indirectly execute its caller. For example, program X calls program Y, program Y calls program Z, and program Z then calls program X. This type of call is recursive.

To make a recursive call, you must either code the RECURSIVE clause in the PROGRAM-ID paragraph of the recursively called program or specify the THREAD compiler option. If you try to recursively call a COBOL program that does not either specify the THREAD compiler option or have the RECURSIVE clause in the PROGRAM-ID paragraph, the run unit will end abnormally.

related references  
THREAD
  
PROGRAM-ID paragraph (COBOL for AIX Language Reference)