Jim,
Parameters are passed on a DO command line by reference by default. DO commands are noit UDF calls. SET UDFPARMS only affects UDF calls.
You can eliminate the error by putting a line in the called routine;
EXTERNAL ARRAY Whatever
to inform the compiler that the array referenced is created outside of the routine.