Onder een subprogramma verstaan we in dit hoofdstuk een programma dat apart wordt gecompileerd en dat wordt aangeroepen vanuit een ander programma.
De call-opdracht roept een subprogramma aan. Het hoofd- en subprogramma communiceren met elkaar via parameters. Bij de aanroep staan de parameters in de call-opdracht. In het subprogramma staan de parameters in de kop van de procedure division. De koppeling is positioneel (per plaats). In het subprogramma staan de parameters beschreven in de linkage section.
Parameters kunnen by content of by reference worden overgedragen. Bij by content krijgt het subprogramma een kopie van de waarde van de parameter. De waarde in het hoofdprogramma blijft altijd ongewijzigd. Bij by reference kan het subprogramma volledig beschikken over de variabele. Het subprogramma kan die variabele dus ook wijzigen.
In de call-opdracht kunnen we opgeven wat er moet gebeuren als de aanroep van een subprogramma mislukt (exception) en wat er moet gebeuren nadat het subprogramma de besturing weer heeft teruggegeven aan het hoofdprogramma. In een subprogramma zorgt exit program ervoor dat de besturing teruggaat naar het hoofdprogramma.
In principe treft een hoofdprogramma een subprogramma aan zoals het de laatste keer werd verlaten. We kunnen een beginstatus van het subprogramma forceren door na de naam van het programma toe te voegen: is initial program. Vanuit het hoofdprogramma kunnen we een beginstatus forceren met de cancel-opdracht.