Google
 

Trailing-Edge - PDP-10 Archives - decuslib20-08 - decus/20-0175/jobtst.for
There is 1 other file named jobtst.for in the archive. Click here to see a list.
C     RENBR(JOBTST/JOBS - CHANGE PRIORITIES IN TEST CASES)
C
C     DONALD BARTH, YALE SCHOOL OF MANAGEMENT
C
C     THIS PROGRAM IS PART OF THE JOB INTERVIEW REQUEST SYSTEM
C
C     ARRAYS WHICH STORE INFORMATION ABOUT ALL FIRMS RECRUITING
C
C     FOLLOWING ARRAYS STORE ALPHABETIC INFORMATION FOR EACH FIRM
      DIMENSION LTRINC(40),LTRDPT(30),LTRADR(30)
C
C     ARRAYS WHICH STORE FIRMS REQUESTED BY THIS STUDENT
      DIMENSION NUMVOT(100),KNDVOT(100),IRANK(100),IPREFR(13,100),
     1KNTPRF(100),KLOCK(100),KLOSED(100),JRANK(100),MTIME(100),
     2MDATE(100),MRECRT(100),IDATE(100),ISOURC(100),MJRRNK(100)
C
C     IDENTIFICATION OF THIS USER
      DIMENSION LTRWHO(40),LTRNAM(30),LTRPSW(20)
C
C     UNIT NUMBERS FOR TERMINAL AND FILES
      DATA ITTY,IDISK,JDISK,KDISK,LDISK/5,1,20,21,22/
C
C     DIMENSIONS OF ARRAYS CONTAINING CHARACTER INFORMATION
      DATA LMTINC,LMTDPT,LMTADR,LMTNAM,LMTWHO,LMTPSW/
     1 40,30,30,30,40,20/
C
C     DIMENSIONS OF ARRAYS LIMITING SIZE OF CASE HANDLED
C     LMTSIN = MAXIMUM REQUESTS BY 1 STUDENT
C     LMTPRF = MAXIMUM NUMBER OF TIME PREFERENCES FOR EACH REQUEST
      DATA LMTSIN,LMTPRF/
     1 100,13/
C
C     MULTIPLICATION FACTOR FOR PRIORITY 1 THRU N VALUES
      DATA INTRVL/10/
C
C     INFORM USER OF WHAT PROGRAM THIS IS
      WRITE(ITTY,1)
    1 FORMAT(' JOBTST'/' Changes priorities in JOBS test cases'/1X)
C
C     ESTABLISH RANDOM FUNCTION KERNEL
      WRITE(ITTY,2)
    2 FORMAT(' Base random sequence upon what kernel? ',$)
      READ(ITTY,3)KERNEL
    3 FORMAT(I)
      IF(KERNEL.LT.0)WRITE(ITTY,4)
    4 FORMAT(' Negative kernel indicates verification not real run')
      IF(KERNEL.GE.0)CALL SETRAN(KERNEL)
C
C     ASK FOR TYPE OF NEW TEST CASES
      WRITE(ITTY,5)
    5 FORMAT(
     1'  1 ranked requests. If request fails, boost lower priority'/
     2'  2 ranked requests. No boosting of lower priority requests'/
     3' 11 A/B priority bids.  Total of A''s fixed during season'/
     4' 12 A/B priority bids.  Total of A''s fixed during round'/
     5' 13 A/B priority bids.  Total of A''s fixed for each stage'/
     6' 21 auction.  Total bid fixed for entire season'/
     7' 22 auction.  Total bid fixed for single round'/
     8' 23 auction.  Total bid fixed for each stage')
    6 WRITE(ITTY,7)
    7 FORMAT(' Convert to priority type? ',$)
      READ(ITTY,8)NEWMNR
    8 FORMAT(I)
      IF(NEWMNR.EQ.1)GO TO 10
      IF(NEWMNR.EQ.2)GO TO 10
      IF(NEWMNR.EQ.11)GO TO 11
      IF(NEWMNR.EQ.12)GO TO 11
      IF(NEWMNR.EQ.13)GO TO 11
      IF(NEWMNR.EQ.21)GO TO 14
      IF(NEWMNR.EQ.22)GO TO 14
      IF(NEWMNR.EQ.23)GO TO 14
      WRITE(ITTY,9)
    9 FORMAT(' Priority type must be 1,2,11,12,13,21,22,23')
      GO TO 6
C
C     ESTABLISH LIMITS OF PRIORITIES
   10 MAXONE=0
      MAXTTL=0
      GO TO 17
   11 MAXONE=0
      WRITE(ITTY,12)
   12 FORMAT(' Total number of A requests per student? ',$)
      READ(ITTY,13)MAXTTL
   13 FORMAT(I)
      GO TO 17
   14 WRITE(ITTY,15)
   15 FORMAT(' Maximum amount bid by 1 student on 1 request? ',$)
      READ(ITTY,13)MAXONE
      WRITE(ITTY,16)
   16 FORMAT('          Total amount to be bid by 1 student? ',$)
      READ(ITTY,13)MAXTTL
      GO TO 17
   17 CONTINUE
      WRITE(ITTY,18)
   18 FORMAT(42H Answer following question with one of fol,
     114Hlowing values:/31H -1=Simulate running of student,
     236H and administrator programs.  Retain/4X,7Hranking,
     349H order from previous stage.  Randomize current st,
     413Hage.  Ranking/4X,24Hprogram can be run next./2H  ,
     549H0 or greater=Simulate running of ranking program ,
     621Hupon indicated number/4X,21Hof requests picked at,
     740H random for each student.  Treat rest of/4X,3Hreq,
     849Huests as being made in new stage.  Randomize prio,
     914Hrities in each)
      WRITE(ITTY,19)
   19 FORMAT(4X,39Hstage.  Assignment program can be run n,
     14Hext.)
      WRITE(ITTY,20)
   20 FORMAT(
     1' Treat how many requests as from previous stage? ',$)
      READ(ITTY,13)MAXLOK
C
C     OPEN INPUT AND OUTPUT ADMINISTRATOR FILES
      WRITE(ITTY,21)
   21 FORMAT(' ***** Input files *****')
      IF(MAXLOK.GE.0)GO TO 24
      WRITE(ITTY,22)
   22 FORMAT('   Original administrator firm file (file 1)? or')
      CALL LCLOPN(5,1,1,ITTY,IDISK,JDISK,KDISK,LDISK)
      CALL LCLCLS(5,1,1,ITTY,IDISK,JDISK,KDISK,LDISK)
      WRITE(ITTY,23)
   23 FORMAT('      Original student request file (file 2)? or'/
     1'  Intermediate student request file (file 6)? or')
      CALL LCLOPN(8,1,1,ITTY,IDISK,JDISK,KDISK,LDISK)
      CALL LCLCLS(8,1,1,ITTY,IDISK,JDISK,KDISK,LDISK)
      GO TO 25
   24 CALL LCLOPN(1,1,1,ITTY,IDISK,JDISK,KDISK,LDISK)
      CALL LCLCLS(1,1,1,ITTY,IDISK,JDISK,KDISK,LDISK)
      CALL LCLOPN(2,1,1,ITTY,IDISK,JDISK,KDISK,LDISK)
      CALL LCLCLS(2,1,1,ITTY,IDISK,JDISK,KDISK,LDISK)
      GO TO 25
   25 WRITE(ITTY,26)
   26 FORMAT(' ***** Output files *****')
      IF(MAXLOK.GE.0)GO TO 27
      CALL LCLOPN(1,1,3,ITTY,IDISK,JDISK,KDISK,LDISK)
      CALL LCLCLS(1,1,3,ITTY,IDISK,JDISK,KDISK,LDISK)
      CALL LCLOPN(2,1,3,ITTY,IDISK,JDISK,KDISK,LDISK)
      CALL LCLCLS(2,1,3,ITTY,IDISK,JDISK,KDISK,LDISK)
      GO TO 28
   27 CALL LCLOPN(5,1,3,ITTY,IDISK,JDISK,KDISK,LDISK)
      CALL LCLCLS(5,1,3,ITTY,IDISK,JDISK,KDISK,LDISK)
      CALL LCLOPN(6,1,3,ITTY,IDISK,JDISK,KDISK,LDISK)
      CALL LCLCLS(6,1,3,ITTY,IDISK,JDISK,KDISK,LDISK)
   28 CONTINUE
C
C     OPEN THE FIRM SCHEDULE FILES
      IF(MAXLOK.GE.0)GO TO 29
      CALL LCLOPN(5,0,1,ITTY,IDISK,JDISK,KDISK,LDISK)
      CALL LCLOPN(1,0,3,ITTY,IDISK,JDISK,KDISK,LDISK)
      GO TO 30
   29 CALL LCLOPN(1,0,1,ITTY,IDISK,JDISK,KDISK,LDISK)
      CALL LCLOPN(5,0,3,ITTY,IDISK,JDISK,KDISK,LDISK)
   30 CONTINUE
C
C     READ HEADER INFORMATION
      READ(IDISK,31)IAUTHR,ICLASS,IMOVE,IPASS,IVERSN,NUMWHO
   31 FORMAT(6I)
      READ(IDISK,32)KNTINC,MAXNUM,MANNER,MAXSTG,MAXRND,
     1 MAXALL,MAXBID,MAXPAY
   32 FORMAT(8I)
C
C     WRITE HEADER INFORMATION
      MANNER=NEWMNR
      MAXBID=MAXONE
      MAXPAY=MAXTTL
      IF(MAXLOK.GE.0)GO TO 33
      IAUTHR=1
      IPASS=IPASS+1
      GO TO 34
   33 IAUTHR=2
   34 CONTINUE
      WRITE(KDISK,35)IAUTHR,ICLASS,IMOVE,IPASS,IVERSN,NUMWHO
   35 FORMAT(5I6,1I7)
      WRITE(KDISK,36)KNTINC,MAXNUM,MANNER,MAXSTG,MAXRND,
     1 MAXALL,MAXBID,MAXPAY
   36 FORMAT(6I6,2I10)
C
C     COPY INFORMATION ABOUT EACH FIRM
      IF(KNTINC.LE.0)GO TO 47
      DO 46 NOWINC=1,KNTINC
C
C     READ INFORMATION FOR FIRM
      READ(IDISK,37)LTRINC
      WRITE(KDISK,37)LTRINC
   37 FORMAT(40A1)
      READ(IDISK,38)LTRDPT
      WRITE(KDISK,38)LTRDPT
   38 FORMAT(30A1)
      READ(IDISK,39)LTRADR
      WRITE(KDISK,39)LTRADR
   39 FORMAT(30A1)
      READ(IDISK,40)NUMBER,LENGTH,KNTOPN,INTRVW,
     1IUSDUP,INCLSD,JNCLSD
   40 FORMAT(7I)
      WRITE(KDISK,41)NUMBER,LENGTH,KNTOPN,INTRVW,
     1IUSDUP,INCLSD,JNCLSD
   41 FORMAT(7I6)
      IF(INTRVW.LE.0)GO TO 45
      DO 44 IPERSN=1,INTRVW
      READ(IDISK,43)JDATE,JFIRST,JFINAL,JSCHDL
      WRITE(KDISK,42)JDATE,JFIRST,JFINAL,JSCHDL
   42 FORMAT(4I6)
   43 FORMAT(4I)
   44 CONTINUE
   45 CONTINUE
C
C     ALL RECRUITERS COPIED FOR COMPANY
   46 CONTINUE
C
C     ALL COMPANIES COPIED
   47 CONTINUE
C
C     CLOSE INPUT AND OUTPUT ADMINISTRATOR FILES
      IF(MAXLOK.GE.0)GO TO 48
      CALL LCLCLS(5,1,1,ITTY,IDISK,JDISK,KDISK,LDISK)
      CALL LCLCLS(1,1,3,ITTY,IDISK,JDISK,KDISK,LDISK)
      GO TO 49
   48 CALL LCLCLS(1,1,1,ITTY,IDISK,JDISK,KDISK,LDISK)
      CALL LCLCLS(5,1,3,ITTY,IDISK,JDISK,KDISK,LDISK)
   49 CONTINUE
C
C     ***************************
C     *                         *
C     *  READ STUDENT REQUESTS  *
C     *                         *
C     ***************************
C
C     OPEN THE INDIVIDUAL DECISION FILE FOR READING
      IF(MAXLOK.GE.0)GO TO 50
      CALL LCLOPN(8,0,1,ITTY,IDISK,JDISK,KDISK,LDISK)
      CALL LCLOPN(2,0,3,ITTY,IDISK,JDISK,KDISK,LDISK)
      GO TO 51
   50 CALL LCLOPN(2,0,1,ITTY,IDISK,JDISK,KDISK,LDISK)
      CALL LCLOPN(6,0,3,ITTY,IDISK,JDISK,KDISK,LDISK)
   51 CONTINUE
C
C     READ THE STUDENTS DECISION FILE
   52 READ(IDISK,53,END=106)IAUTHR,ICLASS,IMOVE,IPASS,IVERSN,NUMWHO,
     1LTRPSW
      READ(IDISK,54)ISUBMT,IUSED,KNTSIN,LOCKUP,MANNER,
     1 KNTALL,IGVBAK
   53 FORMAT(6I,20A1)
   54 FORMAT(7I)
      READ(IDISK,55)LTRWHO
      READ(IDISK,55)LTRNAM
   55 FORMAT(60A1)
      IF(KNTSIN.LE.0)GO TO 59
      IF(KNTSIN.GT.LMTSIN)GO TO 109
      DO 58 KOMPNY=1,KNTSIN
      READ(IDISK,56)NUMVOT(KOMPNY),KNDVOT(KOMPNY),KNTPRF(KOMPNY),
     1IDATE(KOMPNY),KLOSED(KOMPNY),IRANK(KOMPNY),JRANK(KOMPNY),
     2KLOCK(KOMPNY),MTIME(KOMPNY),MDATE(KOMPNY),MRECRT(KOMPNY),
     3ISOURC(KOMPNY)
   56 FORMAT(12I)
      LIMIT=KNTPRF(KOMPNY)
      IF(LIMIT.GT.LMTPRF)GO TO 111
      IF(LIMIT.GT.0)READ(IDISK,57)(IPREFR(I,KOMPNY),I=1,LIMIT)
   57 FORMAT(13I)
   58 CONTINUE
   59 READ(IDISK,60)LTREND
   60 FORMAT(1A1)
C
C     ************************************
C     *                                  *
C     *  CONVERT REQUESTS TO NEW SYSTEM  *
C     *                                  *
C     ************************************
C
C     SORT FIRM NUMBERS SO RANDOM ORDER SAVE FOR SAME KERNEL
      LOWSIN=LOCKUP+1
      IF(MAXLOK.GE.0)LOWSIN=1
      IF(LOWSIN.GE.KNTSIN)GO TO 65
      DO 63 KOMPNY=LOWSIN,KNTSIN
      DO 62 J=KOMPNY,KNTSIN
      IF(NUMVOT(KOMPNY).LE.NUMVOT(J))GO TO 62
      L               = NUMVOT(KOMPNY)
      NUMVOT(KOMPNY)  = NUMVOT(J)
      NUMVOT(J)       = L
      L               = KNDVOT(KOMPNY)
      KNDVOT(KOMPNY)  = KNDVOT(J)
      KNDVOT(J)       = L
      L               = KNTPRF(KOMPNY)
      KNTPRF(KOMPNY)  = KNTPRF(J)
      KNTPRF(J)       = L
      L               = IDATE(KOMPNY)
      IDATE(KOMPNY)   = IDATE(J)
      IDATE(J)        = L
      L               = KLOSED(KOMPNY)
      KLOSED(KOMPNY)  = KLOSED(J)
      KLOSED(J)       = L
      L               = ISOURC(KOMPNY)
      ISOURC(KOMPNY)  = ISOURC(J)
      ISOURC(J)       = L
      DO 61 M=1,LMTPRF
      L               = IPREFR(M,KOMPNY)
      IPREFR(M,KOMPNY)= IPREFR(M,J)
      IPREFR(M,J)     = L
   61 CONTINUE
   62 CONTINUE
   63 CONTINUE
      DO 64 I=LOWSIN,KNTSIN
      IRANK(I)=0
      JRANK(I)=0
      KLOCK(I)=0
      MTIME(I)=0
      MDATE(I)=0
      MRECRT(I)=0
   64 CONTINUE
   65 CONTINUE
C
C     SIMULATE PREVIOUS CASE
C     NOTE THAT ALL TESTS OF MAXLOK HAVE SAME SENSE
      IF(MAXLOK.GE.0)GO TO 66
      GO TO 71
   66 LOCKUP=MAXLOK
      IF(LOCKUP.GT.KNTSIN)LOCKUP=KNTSIN
      IF(KNTSIN.LE.0)GO TO 91
      CALL RANK(KERNEL,MJRRNK,1,KNTSIN,0)
      KNTFRM=0
      DO 68 KOMPNY=1,KNTSIN
      IF(MJRRNK(KOMPNY).GT.LOCKUP)GO TO 68
      KNTFRM=KNTFRM+1
      J=KNTFRM
      L               = NUMVOT(KOMPNY)
      NUMVOT(KOMPNY)  = NUMVOT(J)
      NUMVOT(J)       = L
      L               = KNDVOT(KOMPNY)
      KNDVOT(KOMPNY)  = KNDVOT(J)
      KNDVOT(J)       = L
      L               = KNTPRF(KOMPNY)
      KNTPRF(KOMPNY)  = KNTPRF(J)
      KNTPRF(J)       = L
      L               = IDATE(KOMPNY)
      IDATE(KOMPNY)   = IDATE(J)
      IDATE(J)        = L
      L               = KLOSED(KOMPNY)
      KLOSED(KOMPNY)  = KLOSED(J)
      KLOSED(J)       = L
      L               = ISOURC(KOMPNY)
      ISOURC(KOMPNY)  = ISOURC(J)
      ISOURC(J)       = L
      DO 67 M=1,LMTPRF
      L               = IPREFR(M,KOMPNY)
      IPREFR(M,KOMPNY)= IPREFR(M,J)
      IPREFR(M,J)     = L
   67 CONTINUE
   68 CONTINUE
      DO 69 I=1,KNTSIN
      IRANK(I)=0
      JRANK(I)=0
      KLOCK(I)=0
      MTIME(I)=0
      MDATE(I)=0
      MRECRT(I)=0
   69 CONTINUE
      IF(LOCKUP.EQ.0)GO TO 70
      CALL RANK(KERNEL,IRANK,1,LOCKUP,0)
   70 GO TO 74
C
C     CHECK IF KEEP OLD PRIORITY VALUES FOR PREVIOUS STAGE
   71 IF(NEWMNR.GT.20)GO TO 73
      IF(NEWMNR.GT.10)GO TO 72
      IF(MANNER.GT.10)GO TO 74
      GO TO 85
   72 IF(MANNER.LT.10)GO TO 74
      IF(MANNER.GT.20)GO TO 74
      GO TO 85
   73 IF(MANNER.LT.20)GO TO 74
      GO TO 85
C
C     CONVERT RANKINGS FOR ON FIRM LIST INTO RANK 1 THRU N
   74 IF(LOCKUP.LE.0)GO TO 85
      K=0
      L=0
      I=0
   75 DO 77 J=1,LOCKUP
      IF(K.GE.IRANK(J))GO TO 77
      IF(K.EQ.L)GO TO 76
      IF(L.LE.IRANK(J))GO TO 77
   76 L=IRANK(J)
   77 CONTINUE
      IF(K.EQ.L)GO TO 79
      DO 78 J=1,LOCKUP
      IF(IRANK(J).NE.L)GO TO 78
      I=I+1
      JRANK(J)=I
   78 CONTINUE
      K=L
      GO TO 75
   79 DO 80 J=1,LOCKUP
      IRANK(J)=JRANK(J)
   80 CONTINUE
C
C     DEFINE PRIORITY VALUES FOR PREVIOUS STAGE
      LOCATN=0
      NEWTTL=MAXTTL
   81 LOCATN=LOCATN+1
      IF(LOCATN.GT.LOCKUP)GO TO 85
      IF(NEWMNR.GT.20)GO TO 83
      IF(NEWMNR.GT.10)GO TO 82
      KNDVOT(LOCATN)=INTRVL*IRANK(LOCATN)
      GO TO 81
   82 KNDVOT(LOCATN)=1
      IF(IRANK(LOCATN).GT.MAXTTL)KNDVOT(LOCATN)=2
      GO TO 81
   83 IDENOM=100*101
      IF(IRANK(LOCATN).LE.100)IDENOM=IRANK(LOCATN)*(IRANK(LOCATN)+1)
      IVALUE=NEWTTL/IDENOM
      JVALUE=1
   84 KVALUE=IVALUE
      IVALUE=IVALUE/10
      JVALUE=10*JVALUE
      IF(IVALUE.GT.0)GO TO 84
      JVALUE=JVALUE/10
      KNDVOT(LOCATN)=KVALUE*JVALUE
      IF(KNDVOT(LOCATN).GT.MAXONE)KNDVOT(LOCATN)=MAXONE
      NEWTTL=NEWTTL-KNDVOT(LOCATN)
      GO TO 81
C
C     RANDOMIZE THE CURRENT STAGE
   85 IF(LOCKUP.GE.KNTSIN)GO TO 91
      LOWSIN=LOCKUP+1
      CALL RANK(KERNEL,MJRRNK,LOWSIN,KNTSIN,0)
C
C     DEFINE PRIORITY VALUES FOR CURRENT STAGE
      LOCATN=LOCKUP
      NEWTTL=MAXTTL
   86 LOCATN=LOCATN+1
      IF(LOCATN.GT.KNTSIN)GO TO 90
      IF(NEWMNR.GT.20)GO TO 88
      IF(NEWMNR.GT.10)GO TO 87
      KNDVOT(LOCATN)=INTRVL*MJRRNK(LOCATN)
      GO TO 86
   87 KNDVOT(LOCATN)=1
      IF(MJRRNK(LOCATN).GT.MAXTTL)KNDVOT(LOCATN)=2
      GO TO 86
   88 IDENOM=100*101
      IF(MJRRNK(LOCATN).LE.100)IDENOM=MJRRNK(LOCATN)*(MJRRNK(LOCATN)+1)
      IVALUE=NEWTTL/IDENOM
      JVALUE=1
   89 KVALUE=IVALUE
      IVALUE=IVALUE/10
      JVALUE=10*JVALUE
      IF(IVALUE.GT.0)GO TO 89
      JVALUE=JVALUE/10
      KNDVOT(LOCATN)=KVALUE*JVALUE
      IF(KNDVOT(LOCATN).GT.MAXONE)KNDVOT(LOCATN)=MAXONE
      NEWTTL=NEWTTL-KNDVOT(LOCATN)
      GO TO 86
   90 CONTINUE
   91 CONTINUE
C
C     GET TOTAL AMOUNT USED SO FAR
      LOCATN=0
      IUSED=0
   92 LOCATN=LOCATN+1
      IF(LOCATN.GT.KNTSIN)GO TO 95
      IF(NEWMNR.GT.20)GO TO 94
      IF(NEWMNR.GT.10)GO TO 93
      GO TO 92
   93 IF(KNDVOT(LOCATN).EQ.1)IUSED=IUSED+1
      GO TO 92
   94 IUSED=IUSED+KNDVOT(LOCATN)
      GO TO 92
   95 MANNER=NEWMNR
      IF(MAXLOK.GE.0)GO TO 96
      IAUTHR=11
      IPASS=IPASS+1
      GO TO 97
   96 IAUTHR=12
   97 CONTINUE
C
C     *****************************************
C     *                                       *
C     *  WRITE REQUESTS MADE BY THIS STUDENT  *
C     *                                       *
C     *****************************************
C
C     WRITE THE STUDENTS DECISION FILE
      WRITE(KDISK,98)IAUTHR,ICLASS,IMOVE,IPASS,IVERSN,NUMWHO,
     1LTRPSW
      WRITE(KDISK,99)ISUBMT,IUSED,KNTSIN,LOCKUP,MANNER,
     1 KNTALL,IGVBAK
   98 FORMAT(5I6,1I7,1X,20A1)
   99 FORMAT(1I6,1I10,4I6,1I10)
      WRITE(KDISK,100)LTRWHO
      WRITE(KDISK,100)LTRNAM
  100 FORMAT(60A1)
      IF(KNTSIN.LE.0)GO TO 104
      DO 103 KOMPNY=1,KNTSIN
      WRITE(KDISK,101)NUMVOT(KOMPNY),KNDVOT(KOMPNY),KNTPRF(KOMPNY),
     1IDATE(KOMPNY),KLOSED(KOMPNY),IRANK(KOMPNY),JRANK(KOMPNY),
     2KLOCK(KOMPNY),MTIME(KOMPNY),MDATE(KOMPNY),MRECRT(KOMPNY),
     3ISOURC(KOMPNY)
  101 FORMAT(1I6,1I10,10I6)
      LIMIT=KNTPRF(KOMPNY)
      IF(LIMIT.GT.0)WRITE(KDISK,102)(IPREFR(I,KOMPNY),I=1,LIMIT)
  102 FORMAT(13I6)
  103 CONTINUE
  104 WRITE(KDISK,105)LTREND
  105 FORMAT(1A1)
      GO TO 52
  106 IF(MAXLOK.GE.0)GO TO 107
      CALL LCLCLS(8,1,1,ITTY,IDISK,JDISK,KDISK,LDISK)
      CALL LCLCLS(2,1,3,ITTY,IDISK,JDISK,KDISK,LDISK)
      GO TO 108
  107 CALL LCLCLS(2,1,1,ITTY,IDISK,JDISK,KDISK,LDISK)
      CALL LCLCLS(6,1,3,ITTY,IDISK,JDISK,KDISK,LDISK)
  108 GO TO 113
C
C     ERROR MESSAGES
  109 WRITE(ITTY,110)NUMWHO
  110 FORMAT(' Student',1I7,' has made too many requests')
      GO TO 113
  111 WRITE(ITTY,112)NUMWHO
  112 FORMAT(' Student',1I7,' has given too many time preferences')
      GO TO 113
C
C     ALL DONE
  113 STOP
      END