If local system management policies require that private tmp and imdir directories be defined for each user, you can define these directories for each user as subdirectories of their SYS$LOGIN directory. One way to do this is define imdir to be the same as tmp, and modify the definition of IRAFTMP in the IRAFUSER.COM file as shown below.
$! ----------- add these lines to irafhlib:irafuser.com ---------- $! This block of DCL assigns the logical name IRAFTMP to a $! subdirectory of the user's VMS login directory. It is necessary $! to escape the "$" and "[" because they are IRAF filename $! metacharacters. This block of code should replace the current $! definition in irafuser.com of IRAFTMP: $! $! define/job IRAFTMP TEMPDISK:[IRAFTMP] ! scratch files $! $! We assume only one occurrence of "$" or "[". $! $ tmpdir = f$logical ("SYS$LOGIN") $ tmpdir = f$extract (0, f$locate("]",tmpdir), tmpdir) + ".IRAFTMP]" $ define/job vmstmp 'tmpdir' $ off = f$locate ("$", tmpdir) $ tend = f$length (tmpdir) $ if (off .ne. tend) then - tmpdir = f$extract (0, off, tmpdir) + - "\$" + f$extract (off+1, tend, tmpdir) $ off = f$locate ("[", tmpdir) $ if (off .ne. tend+1) then - tmpdir = f$extract (0, off, tmpdir) + - "\[" + f$extract (off+1, tend, tmpdir) $ define/job iraftmp "''tmpdir'"In irafhlib:login.cl, replace U_IMDIR with "tmp$".
In irafhlib:mkiraf.com, replace the block of statements beginning "imdir_file :=" with the following:
$ if (f$search ("sys$login:iraftmp.dir") .eqs. "") then - create/directory vmstmp