when you assign a library to libref USER, all single level data set names ( memname rather than libname.memname) will be read from, or written to that USER library.
A neat trick uses this combined with library concatenation.[pre] libname elsewher 'somewhere else' ;
libname user ( elsewher work ) ;[/pre]After this code, any datasets already written to the WORK library are available as one-level names and new data sets created will be written into ELSEWHER.
does this technique provide what you need?