V5R4M0 未満の開発環境でも少しの工夫で CLP でのサブ・ルーチンを実現することができる。
以下のそのサンプルを紹介する。
0001.00 PGM
0002.00 DCL VAR(&N) TYPE(*DEC) LEN(4 0) VALUE(1)
0003.00 DCL VAR(&RTN_POINT) TYPE(*CHAR) LEN(10)
0004.00
0005.00 CHGVAR VAR(&RTN_POINT) VALUE('RTN001')
0006.00 GOTO MYSUBR
0007.00 RTN001:
0008.00 RETURN
0009.00
0010.00 MYSUBR:
0011.00 CHGVAR VAR(&N) VALUE(&N + 1)
0012.00 IF COND(&RTN_POINT *EQ 'RTN001') THEN(GOTO +
0013.00 CMDLBL(RTN001))
0014.00 ENDPGM