C
C     THE FOLLOWING PARAMETERS MAY BE CHANGED TO ADJUST THE SIZE
C     OF THE LOUSE TABLES TO FIT YOUR PARTICULAR CP-V SITE
C     CONFIGURATION:
C
C     PARAMETER 'PROCS' DEFINES THE MAXIMUM NUMBER OF DISTINCT
C     LOAD MODULES THAT RECORDS CAN BE KEPT ON.  IF THE :LMMON
C     FILE FOR A PARTICULAR PERIOD CONTAINS REFERENCES TO MORE
C     THAN 'PROCS' DISTINCT LOAD MODULES, AN ERROR MESSAGE WILL
C     BE OUTPUT WHEN THE TABLES OVERFLOW, AND THE EXCESS LOAD
C     MODULES WILL BE IGNORED.
C
C     PARAMETER 'USERS' DEFINES THE NUMBER OF USER-ACTIVITY
C     ENTRIES RESERVED.  'USERS' SHOULD BE SET TO A VALUE OF
C     EQUAL TO SMUIS+1 (SMUIS BEING DEFINED AT SYSGEN TIME -
C     USE !CONTROL TO CHECK YOUR SYSTEM'S VALUE IF IN QUESTION).
C     'USERS' MAY BE SET HIGHER BUT IT WON'T GAIN YOU ANYTHING.
C
C     PARAMETER 'SELMAX' DEFINES THE MAXIMUM NUMBER OF ENTRIES
C     IN THE ACCOUNT-SELECTION TABLES - UP TO 'SELMAX' LOAD
C     MODULES (OR ENTIRE ACCOUNTS) MAY BE SPECIFIED; ONLY THE
C     SPECIFIED LOAD MODULES AND/OR ACCOUNTS WILL BE TRACKED.
C
C     PARAMETER 'SAVESIZE' DEFINES THE NUMBER OF ENTRIES IN THE
C     'SAVED PROGRAM' TABLES.  EACH TIME A USER PROGRAM (OR A
C     SYSTEM PROCESSOR) ISSUES AN M:LINK, THE USER'S CURRENT
C     LOAD MODULE TRACKING DATA IS "PUSHED" INTO AN ENTRY IN THE
C     'SAVED PROGRAM' TABLES;  THE ENTRY IS "PULLED" WHEN THE
C     LINKED-TO PROGRAM IS RUN DOWN (EITHER BY STEPOVR OR BY
C     LEXIT IN LDLNK).  A REASONABLE VALUE FOR 'SAVESIZE' IS
C     ONE-QUARTER OF 'USERS', PLUS TWO.
C
      PARAMETER PROCS=100
      PARAMETER USERS=100
      PARAMETER SAVESIZE=200
      PARAMETER SELMAX=20
      IMPLICIT INTEGER (A-Z)
      CHARACTER*(8) ACCTLIST(SELMAX)
      CHARACTER*(31) LMNLIST(SELMAX)
      INTEGER ACCTNUM
      CHARACTER*(12) NAME(PROCS)
      CHARACTER*(8) ACCOUNT(PROCS)
      CHARACTER*12 BLANKS
      DIMENSION DATA(11)
      DIMENSION INVOKE(PROCS)
      DIMENSION TOTCPU(PROCS)
      DIMENSION TOTIO(PROCS)
      DIMENSION TOTCAL(PROCS)
      DIMENSION TOTWALL(PROCS)
      DIMENSION CPUPER(PROCS)
      DIMENSION IOPER(PROCS)
      DIMENSION CALPER(PROCS)
      DIMENSION WALLPER(PROCS)
      CHARACTER*(12) PROC(USERS)
      CHARACTER*(8) ACCT(USERS)
      CHARACTER*16 STARTIME
      CHARACTER*16 ENDTIME
      CHARACTER*12 SAVEPROC(0:SAVESIZE)
      CHARACTER*8 SAVEACCT(0:SAVESIZE)
      DIMENSION SAVECPU(0:SAVESIZE)
      DIMENSION SAVECAL(0:SAVESIZE)
      DIMENSION SAVEIO(0:SAVESIZE)
      DIMENSION SAVECLK(0:SAVESIZE)
      DIMENSION SAVEFLINK(0:SAVESIZE)
      DIMENSION SAVEBLINK(0:SAVESIZE)
      DIMENSION SAVEUSER(0:SAVESIZE)
      DIMENSION CPU(USERS)
      DIMENSION CALCOUNT(USERS)
      DIMENSION IOCOUNT(USERS)
      DIMENSION CLOCK(USERS)
      DIMENSION MOVE(USERS, 9)
      CHARACTER*(12) CHAR
      LOGICAL OVERFLOW
      LOGICAL USERBIG
      EQUIVALENCE (MOVE(1,1), INVOKE)
      EQUIVALENCE (MOVE(1,2), TOTCPU)
      EQUIVALENCE (MOVE(1,3), TOTCAL)
      EQUIVALENCE (MOVE(1,4), TOTIO)
      EQUIVALENCE (MOVE(1,5), TOTWALL)
      EQUIVALENCE (MOVE(1,6), CPUPER)
      EQUIVALENCE (MOVE(1,7), CALPER)
      EQUIVALENCE (MOVE(1,8), IOPER)
      EQUIVALENCE (MOVE(1,9), WALLPER)
      COMMON /STARSEED/ STARTIME
      COMMON /STARSEED/ ENDTIME
      COMMON /KZINTI/ OVERFLOW
      COMMON /KZINTI/ NPROCS
      COMMON /KZINTI/ CPU
      COMMON /KZINTI/ CALCOUNT
      COMMON /KZINTI/ IOCOUNT
      COMMON /KZINTI/ CLOCK
      COMMON /KZINTI/ MOVE
      COMMON /THRINTS/ CHAR
      COMMON /THRINTS/ ACCTLIST
      COMMON /THRINTS/ LMNLIST
      COMMON /THRINTS/ PROC
      COMMON /THRINTS/ ACCT
      COMMON /THRINTS/ NAME
      COMMON /THRINTS/ ACCOUNT
      COMMON /THRINTS/ SAVEPROC
      COMMON /THRINTS/ SAVEACCT
      COMMON /THRINTS/ BLANKS
      COMMON /KZINTI/ SAVECPU
      COMMON /KZINTI/ SAVECAL
      COMMON /KZINTI/ SAVEIO
      COMMON /KZINTI/ SAVECLK
      COMMON /KZINTI/ SAVEFLINK
      COMMON /KZINTI/ SAVEBLINK
      COMMON /KZINTI/ SAVEUSER
      COMMON /KZINTI/ DATA
      DATA OVERFLOW/.FALSE./
      DATA USERBIG/.FALSE./
      DATA BLANKS/'            '/
