Defining a subprogram to be called at runtime is possible but ill-advised. This extremely powerful feature can quite easily be misused, and even when used correctly, it highly increases the overall complexity of the program, and makes it impossible before runtime to know exactly what will be executed. Therefore defining the subprogram to be called at runtime is a feature that should be avoided.


== Noncompliant Code Example

----
MOVE SOMETHING TO MY_SUBPROG.
...
CALL MY_SUBPROG.
----


== Compliant Solution

----
01 MY_SUBPROG PIC X(10) VALUE "SUB123".
....
CALL MY_SUBPROG.
----


