Thanks for all this!!
I'd like to use this to dynamically produce a macro variable using the *value* of a matrix.

So in a loop like:
do j=1 to 5;
/* bunch of work */
call symputx("filetag",j);
file "c:\jwm\out_iter_&j..txt";
put /* whatever */
end;

So I'd like symput to result in "1" "2" "3" etc., but it seems instead to always result in "j". Any ideas?

Thanks!