SUBROUTINE DIRUIC ( luntrm, tstlun, uic, iuic, dev, idev, exists ) C CHARACTER*80 uic, dev CHARACTER*80 tmpchr, filnam C LOGICAL exists LOGICAL log C INTEGER*2 iuic, idev INTEGER*2 tstlun, luntrm INTEGER*2 locrgt, loclft, loccom INTEGER*2 locstr, idiff, lennam INTEGER*2 ipntr C DATA log/.FALSE./ DATA tmpchr/' '/ C C Executable begins here. C CALL ERRSET ( 29, , , , log ) CALL ERRSET ( 43, , , , log ) locrgt = INDEX ( uic, ']' ) loclft = INDEX ( uic, '[' ) loccom = INDEX ( uic, ',' ) IF ( idev .GT. 0 ) THEN ! Device specified. filnam(1:idev) = dev(1:idev) filnam(idev+1:idev+5) = '[0,0]' ipntr = idev + 6 ELSE ! No device specified. filnam(1:8) = 'SY:[0,0]' ipntr = 9 END IF IF ( loccom .GT. 0 ) THEN ! Found a comma. tmpchr(6-loccom:3) = uic(loclft+1:loccom-1) ! Save group number. idiff = locrgt - loccom IF ( idiff .EQ. 4 ) THEN locstr = 4 ELSE IF ( idiff .EQ. 3 ) THEN locstr = 5 ELSE locstr = 6 END IF tmpchr(locstr:6) = uic(loccom+1:locrgt-1) ! Save user number. CALL INSZIP ( tmpchr, 1, 6 ) ! Plug in missing zeros. filnam(ipntr:ipntr+5) = tmpchr(1:6) filnam(ipntr+6:ipntr+9) = '.DIR' lennam = ipntr + 9 ELSE filnam(ipntr:ipntr+locrgt-loclft-2) = + uic(locrgt+1:loclft-1) filnam(ipntr+locrgt-loclft-1: + ipntr+locrgt-loclft+2) = '.DIR' lennam = ipntr + locrgt - loclft + 2 END IF D WRITE ( luntrm, 100) lennam, filnam(1:lennam) D100 FORMAT ( ' LENNAM: ',I6,' FILE: ',A ) OPEN ( UNIT = tstlun, + NAME = filnam(1:lennam), + STATUS = 'old', + FORM = 'unformatted', + RECL = 4, + RECORDTYPE = 'fixed', + READONLY, SHARED, ERR = 9100 ) exists = .TRUE. 9000 CONTINUE CLOSE ( UNIT = tstlun ) RETURN 9100 CONTINUE exists = .FALSE. GO TO 9000 END