Rational Developer for System z
PL/I for Windows, Version 8.0, Programming Guide

Array expressions

An array expression is not allowed as an argument to a user function unless it is an array of scalars of known size. Consequently, any array of scalars of arithmetic type may be passed to a user function, but there may be problems with arrays of varying-length strings.

The following example shows a numeric array expression supported in a call:

     dcl x entry, (y(10),z(10)) fixed bin(31);

     call x(y + z);

The following unprototyped call would be flagged since it requires a string expression of unknown size:

     dcl a1 entry;
     dcl (b(10),c(10)) char(20) var;

     call a1(b || c);

However, the following prototyped call would not be flagged:

     dcl a2 entry(char(30) var);
     dcl (b(10),c(10)) char(20) var;

     call a2(b || c);
Rational Developer for System z
PL/I for Windows, Version 8.0, Programming Guide