C*************** START FILE USERIO.BLK ; GROUP USERIO *************
C============================================================
C  USERIO.BLK   VERSION 2 ... MAY 9 1980 ... D. MC CUNE
C
C  TBT May 1995 -- Increase length of XFILE to 130 from 64.
C  DMC JAN 1985 -- MODIFIED TO SUPPORT UREAD5 FEATURES
C   SOFT CODED COMMAND CHARACTERS
C    E.G. MFILI (DFLT "@") INDIRECT INPUT FILE CHARACTER
C
C   OUTPUT LUN STACK FOR MULTIPLE SIMULTANEOUS INDIRECT FILES
C    OPEN FOR OUTPUT-- RECORDING OF PROMPTS/INSTRUCTIONS.
C
C   TYPEAHEAD BUFFER STACK TO ALLOW TYPEAHEAD PAST INDIRECT
C    INPUT FILENAMES
C
c  character buffers:  size:
c
C============
C idecl:  explicitize implicit INTEGER declarations:
      INTEGER ncbufp,nchbfp,lpunct,lprbuf,nprbuf,nvidch,ncpwd,luntin,
     > nlunin,lunido,luntrm,maxlin,nchara,ncp1a,ncp2a,ncharc,ncp1c,
     > nlunio,lbuff,lfiln,lpnam,lpval,luword,nbline,ibatch,nttyp,nclear,
     > nplotd,lready,lpmmsg,lmarkn,levcmd,lcmdin,ncmnd,nsaved,npgmax,
     > nplmax,npgc,nplc
C============
      integer urdbufl
      parameter (urdbufl=512)
c
c  ** note ** if urdbufl changes then see also fldlim.for, iscmp0.for,
c     and numfld.for in the ureadsub library...
C
C    NLUINI=.TRUE. IF BLOCK HAS BEEN INITIALIZED VIA CALL USINIT
C  COMMON BLOCK CONTAINING BUFFERS AND INFORMATION USEFUL
C   FOR CARRYING OUT USER-COMPUTER INTERACTION
C
C  CBUFF  -- (urdbufl) CHARACTER BUFFER  PACKED   - COMMAND INPUT
C  CBUFFP -- RECORD OF RECENT INPUT LINES - CAPACITY NCBUFP
C   NCHBFP CHARACTERS IN EACH ENTRY OF CBUFFP
C  DBUFF  -- (urdbufl) CHARACTER BUFFER UNPACKED  - COMMAND INPUT
C  BBUFF  -- (urdbufl) CHARACTER BUFFER UNPACKED  - PROGRAM PROMPT
C   NCHAR-- # OF CHARACTERS BEFORE "$" IN BBUFF
C  NCPWD  -- # OF CHARACTERS PER WORD
C
C  MSEMI  -- ASCII SEMICOLON
C  MDOLLR -- ASCII DOLLAR SIGN "$"
C  MCAROT -- ASCII ">"
C  MIDAT  -- ASCII "@"
C
C  NLINDI -- LOGICAL FLAG  .TRUE.==> USING INDIRECT FILE AS INPUT
C   NEW AUG 1981
C    NLXPER  -- LOGICAL FLAG  .TRUE. ==> PROGRAM USER IS EXPERT
C      SUPPRESS EXTRA PROMPTS
C    NLXOUT  -- LOGICAL FLAG  .TRUE. ==> PRINT EXTRA PROMPTS
C      NLXOUT = (.NOT.NLXPER).AND.(.NOT.NLINDI)
C  NLINDO -- LOGICAL FLAG  .TRUE.==> CREATING INDIRECT FILE AS OUTPUT
C
C  LUNTIN -- STACK OF INPUT L.U.N. S
C  MAXLIN -- MAX # OF INPUT UNITS (EQUALS MAX LEVEL OF
C             INDIRECT FILES)
C  NLUNIN -- POINTS TO CURRENT INPUT LINE
C
C  LUNIDO -- POINTS TO OUTPUT DEVICE LUN FOR CREATING INDIRECT FILE
C  LUNTRM --- LUN OF TERMINAL FOR OUTPUT
C  IBATCH --- =1 IF IN BATCH, 0 OTHERWISE.
C    IBATCH SET BY: CALL ISBATCH(IBATCH);  [JOD]ISBATCH.OBJ
C
C  XFILE-- LIST OF INDIRECT FILE NAMES FOR TRACE-BACK
C  NCMND-- LIST OF COMMAND COUNTS FOR TRACEBACK
C
C  " EDITOR " COMMON:
C    NLEDIT = .TRUE. IF EDITOR IN EFFECT
C    NLCOPI = .TRUE. TO COPY TERMINAL INPUT TO OUTPUT FILE
C    NLSWIN = .TRUE. IF CHANGING INPUT CHANNEL DUE TO EDIT COMMAND
C    NSAVED = # OF FILE INPUT LINES SAVED PRIOR TO PROCESSING
C    MSTAR = '*' SPECIAL CHARACTER USED TO INVOKE SPECIAL FUNCTIONS
C
C    LURCAP = .TRUE. for uppercase script filenames
C             .FALSE. for lowercase filenames -- unix option
C
C-----
C  23 JAN 1982
C   NLNULL - FLAG TO UREAD - PERMIT NULL LINE ANSWER TO PROMPT
C     NLCRI -- VALUE OF NLNULL TO USE FOR COMMAND INPUT MODE
C     (SET VIA ROUTINE URDCRI)
c   nlcmd -- .TRUE. to enable * commands 
C   NL1LIN - FLAG TO UPROMT - PROMPT AND ANSWER ON ONE LINE
C   NLHOLD - FLAG TO UREAD UTILITIES
C     IF NLHOLD=.TRUE. (INITIAL DEFAULT) DO NOT DELETE STRING FROM
C   INPUT BUFFER AFTER DECODING (IDCODE,FDCODE,IXUOPC, ETC.)
C     IF NLHOLD .FALSE. DO DELETE STRING AND RE-JUSTIFY INPUT BUFFER
C   ALLOWS STACKING OF MULTIPLE COMMANDS ON LINE
C     TO SET NLHOLD CALL UHOLD; TO CLEAR CALL UFREE
C
C     NCLEAR - PAGE CLEARING COUNT
C     NPLOTD - SGLIB PLOT DISPLAY COUNT
C-----
C-----
C  STRING PARAMETER BLOCKS--
C   (DEC. 1980  D. MC CUNE)  ALLOWS "LOCAL" AND "GLOBAL" STRING
C   PARAMETER DEFINITION; THESE MAY IN EFFECT BE INPUT ARGUMENTS
C   FROM HIGHER-LEVEL TO LOWER LEVEL INDIRECT INPUT FILES.
C    E.G. LINE "@FILE.TMI/NSHOT=12345" WILL EXECUTE INDIRECT
C   FILE "FILE.TMI"; ANY OCCURENCE OF THE STRING "=NSHOT" IN
C   "FILE.TMI" WILL BE REPLACED BY THE SPECIFIED STRING "12345"
C     LOCAL-- PARMS DEFINED IN @FILE LINE
C     GLOBAL-- PARMS DEFINED IN LINE OF FORM /NAME=VALUE
C       / IN *FIRST* CHARACTER POSITION.
C   WHEREVER STRING =(PARM. NAME) OCCURS IN INPUT STREAM, BOTH
C   LOCAL AND GLOBAL VALUE TABLES ARE SEARCHED; IF SEARCH FAILS,
C   USER IS PROMPTED TO SUPPLY VALUE; IF IN BATCH AND VALUE
C   IS NOT FOUND, CODE HALTS.
C     GLOBAL ARRAYS-- PGLNAM(1500),PGLVAL(1500),NPGMAX(=1500),NPGC
C     LOCAL ARRAYS-- PLCNAM(300,10),PLCVAL(300,10),NPLC(10)
C       NPLMAX(=300)  (ALSO MAX # OF LEVS = MAXLIN = 10)
C     INCL. PARAMETER NAMES,VALUES, AND COUNTERS
C
C
C  REV. DEC. 1980-- ADD 3 CHARACTER VARIABLE "FILEXT"
C     DEFAULT FILENAME EXTENSION FOR CONSTRUCTING NAMES OF INDIRECT
C     INPUT FILES, 3 CHARACTERS
C
C----
C  CHARACTER*8 UTTYP - USER TTY TYPE (HHT SYSTEM - VAX)
C  INTEGER     NTTYP - DITTO INTEGER CODE (HHT SYSTEM - VAX)
C    CF [NBEAM.TERMCTL]TERMCTL SUBROUTINE LIBRARY -
C      READS LOGICAL SYMBOL "TERMINAL_TYPE" FROM JOB LOGIN.COM
C  (DMC - NOV 1984)
C
C----
C  DMC FEB 1989
C  UPUNCT(1:LPUNCT) CONTAINS LIST OF USER DEFINED "PUNCTUATION
C  CHARACTERS" WHICH DELIMIT UREAD INPUT WORDS AND ARE VISIBLE AS
C  WORDS TO THE APPLICATION.  INITIAL DEFAULT WILL BE LPUNCT=0,
C  NO PUNCTUATION DEFINED.
C
C  DMC FEB 1989
C  UPCHAR -- CHARACTER ENTERED BY USER TO ACKNOWLEDGE "UPAUSE" CALL
C  *INTERACTIVE JOBS ONLY*
C
      COMMON/USIOV1/ BBUFF,CBUFF,DBUFF,CBUFFP,AHDBUF,USRCMD
     >     ,MSEMI,MCAROT,MIDAT,MDOLLR,MSLASH,MEQS,MDOT,UTTYP
     >     ,MFILI,MFILO,MBRNCH,MTARGT,MCOMMT
     >     ,MPARAM,MSUB1,MSUB2,MCMD
     >     ,MQMARK,MCOLON,M1QUOT,M2QUOT,MLBRAK,MRBRAK
     >     ,ABUFF,UPUNCT,UPCHAR,PREBUF,VIDCHS
     >     ,t1buff, t2buff, t1file, t2file
      COMMON/USIOV2/ NLINDI,NLINDO,NLXPER,NLXOUT,NCBUFP,NCHBFP,NLRVID
     >     ,LPUNCT,LPRBUF,NPRBUF,NVIDCH,LURCAP
C
      LOGICAL LURCAP
C
C  ADDED MAXIMUM LENGTHS OF ELEMENTS DMC MAY 86
C   LBUFF - LENGTH (CHARACTERS) OF INPUT LINE BUFFER
C   LFILN - LENGTH (CHARACTERS) OF UREAD FILENAME
C   LPNAM - LENGTH (CHARACTERS) OF UREAD STRING PARAMETER NAME
C   LPVAL - LENGTH (CHARACTERS) OF UREAD STRING PARAMETER VALUE
C      ... SEE USINIT.FOR
C
      COMMON/USIOV3/ NCPWD,LUNTIN,NLUNIN,LUNIDO,LUNTRM,MAXLIN
     >   ,NCHARA,NCP1A,NCP2A,NCHARC,NCP1C,NLUNIO,NLUSRC
     >   ,LBUFF,LFILN,LPNAM,LPVAL,LUWORD,NBLINE
C
C   NBLINE-- NO. OF BLANK LINES TO TYPE BEFORE EACH PROMPT
C
      COMMON/USIOV4/ IBATCH,NTTYP,NLUINI,NLJAVA
      COMMON/USIOV5/ URFILE,URMARK,XFILE,FILEXT,UWORD
      COMMON/USIOV7/ NLNULL,NL1LIN,NLHOLD,NCLEAR,NPLOTD,NLCRI,nlcmd
      COMMON/USIOV8/ LREADY,LPMMSG,LMARKN,LEVCMD,LCMDIN,NCMND,
     >   NCPRM
      INTEGER NCPRM(2)
C
C  DMC JAN 1985
C    LEVCMD=1 CMD INPUT  =2 TEXT INPUT (NO UPPERCASE CONVERSION...)
C    LCMDIN=1 TTY/FILE INPUT  =2 USER PROGRAM CALL
      COMMON/USEDT1/ NLEDIT,NLSKIP,NLCOPI,NSAVED,NLECHO
      COMMON/USEDT2/ MSTAR
      COMMON/USPM01/ PGLNAM,PGLVAL,PLCNAM,PLCVAL,PRMSUB
      COMMON/USPM02/ NPGMAX,NPLMAX,NPGC,NPLC,NLSSUB
C
      LOGICAL NLEDIT,NLSKIP,NLCOPI,NLECHO,NLUINI,NLJAVA
      CHARACTER*1 MSTAR
     >     ,MFILI,MFILO,MBRNCH,MTARGT,MCOMMT
     >     ,MPARAM,MSUB1,MSUB2(2),MCMD
     >     ,MQMARK,MCOLON,M1QUOT,M2QUOT,MLBRAK,MRBRAK
      CHARACTER*128 ABUFF,USRCMD
      CHARACTER*(urdbufl) CBUFF,CBUFFP(3),AHDBUF(10),UWORD,PREBUF(8)
      LOGICAL NLUSRC,NLSSUB
      CHARACTER*130 URFILE
      CHARACTER*64 URMARK
      Character*1   T1buff(urdbufl)
      Character*(urdbufl) T2buff
      Character*64  T1File, T2File
      CHARACTER*1 BBUFF(urdbufl),DBUFF(urdbufl),
     >	    MSEMI,MCAROT,MIDAT,MDOLLR
      CHARACTER*1 MSLASH,MEQS,MDOT
      CHARACTER*8 UTTYP,VIDCHS
      CHARACTER*16 UPUNCT
      CHARACTER*1 UPCHAR
      LOGICAL NLINDI,NLINDO,NLXPER,NLXOUT,NLRVID
      LOGICAL NLNULL,NL1LIN,NLHOLD,NLCRI,nlcmd
      CHARACTER*130 XFILE(10)
      CHARACTER*3 FILEXT
      DIMENSION LUNTIN(10),NCMND(10)
c
c  if the sizes of these arrays change, update definitions of
c  NPGMAX and NPLMAX in ureadsub/usinit.for
c
      CHARACTER*16 PGLNAM(1500),PLCNAM(300,10)
      CHARACTER*96 PGLVAL(1500),PLCVAL(300,10)
     >         ,PRMSUB
      DIMENSION NPLC(10),NCHBFP(3)
c
      integer levdflt
      common /urdprdef/ levdflt
c
C*************** END FILE USERIO.BLK ; GROUP USERIO *************
C  ==================
C  trailer info for TRANS.COM on the CRAY
C
C@        endcliche
C
C  see also "CRALDR.COM"
C  ==================
