You need to share code by pasting the SASLOG, and use a SAS DATA step PUT (or PUTLOG in SAS 9) statement for diagnosis purposes, something like:
PUTLOG ">DIAG99" / _ALL_;
I suspect that you will need to setup a "largest sized ARRAY" and use that with your outside DO/END with a DIM(array_name) function. And you must realize that the DO loop occurrences with your SAS variables (and the inside ARRAYs) will only work if they are declared, either with an explicit variable list or if the naming convention works, something like:
DATA ;
RETAIN XVAR1-XVAR99 0;
ARRAY AXVAR (*) XVAR:
DO I=1 TO DIM(AXVAR);
* Create one obs for each var in the array. ;
XVAR = AXVAR(I);
OUTPUT;
END;
RUN;
I would recommend adding the diagnostic code first, debug your program using the SASLOG info, and then if necesssary, contact the group for additional assistance. Remember to share your SASLOG output to help explain your situation.
Scott Barry
SBBWorks, Inc.