Eine COBOL-Subroutine kann von außen nicht direkt aufgerufen werden.
COBOL hat nicht dieselbe Unterstützung bzgl. der Prozeduren wie ILERPG.

SQL erlaubt jedoch, jedes beliebige Hauptprogramm per Call mit Parametern aufzurufen.
Diese sind in COBOL dann in der Linkage-Section passend zu definieren und abzufragen.

Aber besser ist es auf jeden Fall, eine SQL-Prozedur als externe Prozedur mit passenden Aufrufkonventionen zu erstellen. Diese externe Prozedur darf dann wiederum ein anderes Hauptprogramm gerne aufrufen. Das nennt man dann Wrapper-Programm.

Um eine Prozedur eines Programmes aufzurufen, bedarf es für SQL der Registrierung einer Prozedur in einem Service-Programm.
Dies ist auch in COBOL möglich, wenn man ein COBOL-Modul erstellt und dieses dann in ein Service-Programm verpackt.

Die typische Subroutiene in COBOL wird mit PERFORM aufgerufen und entspricht im RPG der EXSR-Anweisung. Dahinter verbirgt sich nur leider kein CALL sondern ein GOTO mit einem Return, der wie ein "go to ." und einem passenden "Alter Label to proceed to" wirkt.
Daher ist ein Perform auch nicht rekursiv aufrufbar.