      INTEGER FUNCTION CRELOG_SUP(LOGNAM,TRUNAM)
C
C     This function attempts to create a permanent (ie supervisor mode)
C        logical name.
C
C     You must have CMEXEC privilege to run this function successfully !
C
      CHARACTER*(*) LOGNAM,TRUNAM
      INTEGER*4 SYS$CMEXEC
      EXTERNAL CRE_LOG_EXEC
      INTEGER*4 ARGLST(3),LNAMD(2),TNAMD(2)
      LNAMD(1) = LEN(LOGNAM)
      LNAMD(2) = %LOC(LOGNAM)
      TNAMD(1) = LEN(TRUNAM)
      TNAMD(2) = %LOC(TRUNAM)
      ARGLST(1) = 3
      ARGLST(2) = %LOC(LNAMD)
      ARGLST(3) = %LOC(TNAMD)
      CRELOG_SUP = SYS$CMEXEC(CRE_LOG_EXEC,ARGLST)
      RETURN
      END
      INTEGER FUNCTION CRE_LOG_EXEC(LOGNAM,TRUNAM)
      CHARACTER*(*) LOGNAM,TRUNAM
      INTEGER*4 SYS$CRELOG
      CRE_LOG_EXEC = SYS$CRELOG(%VAL(2),LOGNAM,TRUNAM,%VAL(2))
      RETURN
      END
