We used PERFORM to implement calls. Whether or not implemented with a stack, it acts the same as any call/return. So to implement a simple loop to count records in a file:
PERFORM COUNT-ROWS VARYING COUNT FROM 1 BY 1 UNTIL EOF.
And the callee did:
READ INPUT-FILE AT END MOVE 1 TO EOF-FLAG.