In reply to Rebekah.

Hi Rebekah, you are in the right place. The code example under "Splitting an external raw file into many" section of this blog shows how we can dynamically allocate filenames before writing to them. Your macro can be implemented as follows:

%macro slicefile;
%do i=0 %to &slicenum;
filename slice&i "&filestem&&i" disp=(new,catlg) label=(,,,,expdt=99365)
space=(15643,(10000,2000),rlse) recfm=vb lrecl=15643 noprompt;
%end;

data _null_;
infile src;
input;
select(char(_infile_,13));
%do i=0 %to &slicenum;
when(&i) file slice&i;
%end;
end;
put _infile_;
run;

%do i=0 %to &slicenum;
filename slice&i;
%end;
%mend slicefile;

That is you are going to read your source file only once. By the way, you don't need double ampersand in slice&&count, one is enough; so I used slice&i. I also used macro loop to generate 10 when( ) statements to dynamically re-allocate filenames, but you could use 10 when( ) statements instead:

when(0) file slice0;
when(1) file slice1;
/* ... */
when(9) file slice9;

Please let me know if this is what you were looking for.
Best,
Leonid