A COBOL74 host program can initiate a bound subprogram as a task with a PROCESS statement or with the CALL <task identifier> WITH <section name> form of the CALL statement. If the host program passes an array parameter to the task, the subprogram can receive various run-time errors (such as INVALID OPERATOR or SEG ARRAY ERROR) when it attempts to use the array. These errors can occur even if the arrays in the host and subprogram are the same type and length.
Specifically, arrays of usage BINARY, COMPUTATION, REAL, or DOUBLE always receive run-time errors when passed as parameters to a bound subprogram called as a task. EBCDIC arrays (01-level with usage DISPLAY) are the only type of array that can be passed successfully to such a subprogram. Nonarray items (77-level) can be passed without a problem.
If it is necessary for the bound subprogram to share a non-EBCDIC array with the host program, you can declare the array in the subprogram as a global array rather than a parameter. This method allows the same data to be shared between the subprogram and host and does not cause run-time errors.

