@acer @Rouben Rostamian ,
Thanks for your replies. Rouben's suggestion is something I shall look into more as it may be the right thing to do. Esp. as @acer indicates that I cannot get what I want using the assign mechanism as it will create global variables (I did not know that).
Since @acer was looking for context I am attaching the code in which I wanted to use this assign contruct. Note that this is not a complete program, it is the early part of a package I want to write to read data files written in a so-called "SnP" format by some network analyzers (aka Touchstone format). So I write a module that has a proc "Read(filename)" to pull in the data. I eventually want to assign the read-in data to module-specific variables that I can access from the program using this package. (And yes, to do that my Sij actually need to be exports, but I wanted to debug this without having to unprotect all of these guys). Note that the code as attached does not work (yet) since I still need to work on the Read proc which I initially wrote outside of the module (and which does decode the file the way I want it to).
Once I have this part working routines for plotting & other stuff will be added as I have the need.
So, as I am typing this the merits of Rouben's suggestion appear even stronger since I only have the variable "S" to worry about. The fly in the ointment is that the caller (me) has to access the content like S[2,1][index] rather than S21[index], the latter being a more natural way. But I may be able to live with this. Or I can write 99 explicit variables; once I have them defined I assume I can set them using assign(), although now I am no longer sure about that. Note that when reading the files one would not usually have to bulk process all these vectors, often focusing on a small subset (like one or two).
Thanks much for your comments