User Tools

Site Tools


cdc:nos2.source:opl.opl871:deck:dfsort

Deck DFSORT

Library Member Format: MODIFY

Source

Seq #  *Modification Id* Act 
----------------------------+
00001  M00S00001.dfsort  +++|***       THE *DFSORT* CONTROL STATEMENT SORTS THE *OUTPUT* FROM
00002  M00S00002.dfsort  +++|*         THE DAYFILE DUMPING UTILITIES TO THE FILE SPECIFIED.
00003  M00S00003.dfsort  +++|*
00004  M00S00004.dfsort  +++|*         THE CONTROL STATEMENT FORMAT IS -
00005  M00S00005.dfsort  +++|*
00006  M00S00006.dfsort  +++|*         DFSORT(D=LFN1,L=LFN2,S=AAA,F=999,TN=NAME)
00007  M00S00007.dfsort  +++|*
00008  M00S00008.dfsort  +++|*                LFN1 - NAME OF THE FILE TO SORT FROM.  IF THIS
00009  M00S00009.dfsort  +++|*                       PARAMETER IS OMITTED, FILE *DAYFILE* IS
00010  M00S00010.dfsort  +++|*                       ASSUMED.
00011  M00S00011.dfsort  +++|*
00012  M00S00012.dfsort  +++|*                LFN2 - NAME OF THE FILE TO WRITE TO.  IF THIS
00013  M00S00013.dfsort  +++|*                       PARAMETER IS OMITTED, FILE *OUTPUT* IS
00014  M00S00014.dfsort  +++|*                       ASSUMED.
00015  M00S00015.dfsort  +++|*
00016  M00S00016.dfsort  +++|*                AAA  - LAST THREE CHARACTERS OF THE JOB SEQUENCE
00017  M00S00017.dfsort  +++|*                       NUMBER TO START THE SORT.  IF THIS PARAMETER
00018  M00S00018.dfsort  +++|*                       IS OMITTED, THE SORT BEGINS WITH THE
00019  M00S00019.dfsort  +++|*                       CHARACTER STRING *AAA*.
00020  M00S00020.dfsort  +++|*
00021  M00S00021.dfsort  +++|*                999  - LAST THREE CHARACTERS OF THE JOB SEQUENCE
00022  M00S00022.dfsort  +++|*                       NUMBER TO STOP THE SORT.  IF THIS PARAMETER
00023  M00S00023.dfsort  +++|*                       IS OMITTED, THE SORT ENDS WITH THE
00024  M00S00024.dfsort  +++|*                       CHARACTER STRING *999*.
00025  M00S00025.dfsort  +++|*
00026  M00S00026.dfsort  +++|*                NAME - TEST NAME IS ONE OF THE FOLLOWING -
00027  M00S00027.dfsort  +++|*                       P - THE TEST JOB PASSED.
00028  M00S00028.dfsort  +++|*                       F - THE TEST JOB FAILED.
00029  M00S00029.dfsort  +++|*                       QAQ - TEST JOB NAME.
00030  M00S00030.dfsort  +++|
00031  M00S00031.dfsort  +++|
00032  M00S00032.dfsort  +++|          OVERLAY(DFSORT,0,0)
00033  M00S00033.dfsort  +++|          PROGRAM DFSORT(TAPE1,OUTPUT,TAPE2=OUTPUT,
00034  M00S00034.dfsort  +++|     1    TAPE3,TAPE4)
00035  M00S00035.dfsort  +++|          COMMON /DATA/JOBS,JOBF,ITN
00036  M00S00036.dfsort  +++|          DIMENSION JJOB(1000),III(1000),KK(1000)
00037  M00S00037.dfsort  +++|          DIMENSION LINE(8)
00038  M00S00038.dfsort  +++|          DIMENSION ICHAR(50)
00039  M00S00039.dfsort  +++|          DIMENSION JOB(1000)
00040  M00S00040.dfsort  +++|          DIMENSION TIMES(1000,4)
00041  M00S00041.dfsort  +++|          DIMENSION IRUN(1000)
00042  M00S00042.dfsort  +++|          DIMENSION MSG(1000,3)
00043  M00S00043.dfsort  +++|          DIMENSION NTIME(3)
00044  M00S00044.dfsort  +++|          DIMENSION MRUN(50,3)
00045  M00S00045.dfsort  +++|          INTEGER SJOB
00046  M00S00046.dfsort  +++|          INTEGER STIME
00047  M00S00047.dfsort  +++|          INTEGER FJOB
00048  M00S00048.dfsort  +++|          INTEGER FTIME
00049  M00S00049.dfsort  +++|          REAL   MSTIME
00050  M00S00050.dfsort  +++|          REAL   MTTIME
00051  M00S00051.dfsort  +++|1000      FORMAT (BZ,8A10)
00052  M00S00052.dfsort  +++|1001      FORMAT (50R1)
00053  M00S00053.dfsort  +++|2000      FORMAT(1H1,19X,'DAYFILE SUMMARY - ',A10,2X,
00054  M00S00054.dfsort  +++|     1    ' (FROM ....',R3,'. TO ....',R3,'.)',11X,'PAGE',I4,/,
00055  M00S00055.dfsort  +++|     2    3X,' JOB',3X,' NAME     ',3X,'  CP TIME',3X,'SYS RSRCE',
00056  M00S00056.dfsort  +++|     3    3X,' MS USAGE',3X,' MT USAGE',
00057  M00S00057.dfsort  +++|     4    3X,'   RUN   ',5X,'LAST DAYFILE MESSAGE.'/
00058  M00S00058.dfsort  +++|     5    26X,'(SECS)',6X,'(UNTS)',6X,'(KUNS)',6X,'(KUNS)'//)
00059  M00S00059.dfsort  +++|2001      FORMAT (2X,I4,1H.,3X,A10,4(3X,F9.3),3X,A10,5X,3A10)
00060  M00S00060.dfsort  +++|2002      FORMAT (/,14X,'TOTALS',4(1X,F11.3))
00061  M00S00061.dfsort  +++|2003      FORMAT (/,13X,'FINISH TIME - ',A10,2X,' AT END OF - ',A10,
00062  M00S00062.dfsort  +++|     1    /14X,'START TIME - ',A10,' AT START OF - ',A10)
00063  M00S00063.dfsort  +++|2004      FORMAT (12X,'ELAPSED TIME - ',I2,' HR. ',I2,' MIN. ',I2,
00064  M00S00064.dfsort  +++|     1   ' SEC.','   (',I6,' SEC.)')
00065  M00S00065.dfsort  +++|2005      FORMAT (1H1,19X,'DAYFILE SUMMARY - ',A10,40X,'PAGE',I4,/,
00066  M00S00066.dfsort  +++|     1    10X,'RUN',7X,' USED'//)
00067  M00S00067.dfsort  +++|2006      FORMAT (10X,A10,I5)
00068  M00S00068.dfsort  +++|2007      FORMAT(1H1,19X,' A C R  SUMMARY - ',A10,2X,
00069  M00S00069.dfsort  +++|     1    '(FROM ....',R3,'. TO ....',R3,'.)',11X,'PAGE',I4)
00070  M00S00070.dfsort  +++|2008      FORMAT (10X,4A10)
00071  M00S00071.dfsort  +++|2009      FORMAT (BZ,I4,3A10,3A10)
00072  M00S00072.dfsort  +++|2010      FORMAT(//36X,'NUMBER OF PASSES =',I4/)
00073  M00S00073.dfsort  +++|2011      FORMAT(//36X,'NUMBER OF FAILS  =',I4/)
00074  M00S00074.dfsort  +++|2012      FORMAT(//36X,'TOTAL NUMBER     =',I4/)
00075  M00S00075.dfsort  +++|2013      FORMAT (2X,I4,1H.,3X,A10,3X,A10,3X,3A10,6X,A10)
00076  M00S00076.dfsort  +++|2014      FORMAT (3X,' JOB',2X,'  NAME    ',3X,' TEST NAME ',
00077  M00S00077.dfsort  +++|     1    3X,'ACR MESSAGE    ',22X,'  TYPE    ',/)
00078  M00S00078.dfsort  +++|2015      FORMAT(3X,' JOB',2X,'  NAME    ',3X,' TEST NAME ',
00079  M00S00079.dfsort  +++|     1    3X,'ACR MESSAGE    ',22X,'  TYPE    ',/,19X,'(TN=',A3,')')
00080  M00S00080.dfsort  +++|3000      FORMAT (26X,F10.3,4X)
00081  M00S00081.dfsort  +++|3001      FORMAT (1X,I2,1X,I2,1X,I2,1X)
00082  M00S00082.dfsort  +++|3002      FORMAT (5X,I3,2X)
00083  M00S00083.dfsort  +++|
00084  M00S00084.dfsort  +++|**        ACCOUNTING CONSTANTS.
00085  M00S00085.dfsort  +++|
00086  M00S00086.dfsort  +++|          DATA   BFILL /10H            /
00087  M00S00087.dfsort  +++|          DATA   IRUN /1000 * O"5555 5555 5555 5555 5555"/
00088  M00S00088.dfsort  +++|          DATA   NUECP /L"UECP"/
00089  M00S00089.dfsort  +++|          DATA   NSECS /R"SECS"/
00090  M00S00090.dfsort  +++|          DATA   NAESR /L"AESR"/
00091  M00S00091.dfsort  +++|          DATA   NUNTS /R"UNTS"/
00092  M00S00092.dfsort  +++|          DATA   NUEMS /L"UEMS"/
00093  M00S00093.dfsort  +++|          DATA   NKUNS /R"KUNS"/
00094  M00S00094.dfsort  +++|          DATA   NUEMT /L"UEMT"/
00095  M00S00095.dfsort  +++|          DATA   MASK1 /O"7700 0000 0000 0000 0000"/
00096  M00S00096.dfsort  +++|          DATA   MASK2 /O"7777 0000 0000 0000 0000"/
00097  M00S00097.dfsort  +++|          DATA   MASK3 /O"7777 7700 0000 0000 0000"/
00098  M00S00098.dfsort  +++|          DATA   MASK4R/O"0000 0000 0000 7777 7777"/
00099  M00S00099.dfsort  +++|          DATA   MASK4L/O"7777 7777 0000 0000 0000"/
00100  M00S00100.dfsort  +++|          DATA   MASK8 /O"7777 7777 7777 7777 0000"/
00101  M00S00101.dfsort  +++|          DATA   MASK9  /O"0077 7777 7700 0000 0000"/
00102  M00S00102.dfsort  +++|          DATA   MASK10 /O"0000 0000 0000 0000 0077"/
00103  M00S00103.dfsort  +++|          DATA   IQM1  /O"0021 0121 0100 0000 0000"/
00104  M00S00104.dfsort  +++|          DATA   IQM2  /O"0000 0000 0000 0000 0020"/
00105  M00S00105.dfsort  +++|*
00106  M00S00106.dfsort  +++|**       INITIALIZE CPU, MS, MT, SRU ACCUMULATORS.
00107  M00S00107.dfsort  +++|*
00108  M00S00108.dfsort  +++|          DATA   CPTIME /0.0/
00109  M00S00109.dfsort  +++|          DATA   MSTIME /0.0/
00110  M00S00110.dfsort  +++|          DATA   MTTIME /0.0/
00111  M00S00111.dfsort  +++|          DATA   SRTIME /0.0/
00112  M00S00112.dfsort  +++|          DATA   TIMES /4000 * 0.0/
00113  M00S00113.dfsort  +++|*
00114  M00S00114.dfsort  +++|**        INITIALIZE LAST DAYFILE MESSAGE TO *(NONE)*.
00115  M00S00115.dfsort  +++|*
00116  M00S00116.dfsort  +++|          DATA   MSG /1000 * 8H  (NONE), 2000 * 1H /
00117  M00S00117.dfsort  +++|
00118  M00S00118.dfsort  +++|**        COMPILER TABLE.
00119  M00S00119.dfsort  +++|
00120  M00S00120.dfsort  +++|          DATA   MRUN(1,1) /L"COMPASS"/
00121  M00S00121.dfsort  +++|          DATA   MRUN(1,2) /O"7777 7777 7777 7700 0000"/
00122  M00S00122.dfsort  +++|          DATA   MRUN(1,3) /O"0000 0000 0000 0055 5555"/
00123  M00S00123.dfsort  +++|          DATA   MRUN(2,1) /L"SORTMRG"/
00124  M00S00124.dfsort  +++|          DATA   MRUN(2,2) /O"7777 7777 7777 7700 0000"/
00125  M00S00125.dfsort  +++|          DATA   MRUN(2,3) /O"0000 0000 0000 0055 5555"/
00126  M00S00126.dfsort  +++|          DATA   MRUN(3,1) /L"ALGOL"/
00127  M00S00127.dfsort  +++|          DATA   MRUN(3,2) /O"7777 7777 7700 0000 0000"/
00128  M00S00128.dfsort  +++|          DATA   MRUN(3,3) /O"0000 0000 0055 5555 5555"/
00129  M00S00129.dfsort  +++|          DATA   MRUN(4,1) /L"COBOL"/
00130  M00S00130.dfsort  +++|          DATA   MRUN(4,2) /O"7777 7777 7700 0000 0000"/
00131  M00S00131.dfsort  +++|          DATA   MRUN(4,3) /O"0000 0000 0055 5555 5555"/
00132  M00S00132.dfsort  +++|          DATA   MRUN(5,1) /L"RUN23"/
00133  M00S00133.dfsort  +++|          DATA   MRUN(5,2) /O"7777 7777 7700 0000 0000"/
00134  M00S00134.dfsort  +++|          DATA   MRUN(5,3) /O"0000 0000 0055 5555 5555"/
00135  M00S00135.dfsort  +++|          DATA   MRUN(6,1) /L"BASIC"/
00136  M00S00136.dfsort  +++|          DATA   MRUN(6,2) /O"7777 7777 7700 0000 0000"/
00137  M00S00137.dfsort  +++|          DATA   MRUN(6,3) /O"0000 0000 0055 5555 5555"/
00138  M00S00138.dfsort  +++|          DATA   MRUN(7,1) /L"FTN"/
00139  M00S00139.dfsort  +++|          DATA   MRUN(7,2) /O"7777 7700 0000 0000 0000"/
00140  M00S00140.dfsort  +++|          DATA   MRUN(7,3) /O"0000 0055 5555 5555 5555"/
00141  M00S00141.dfsort  +++|          DATA   MRUN(8,1) /L"RUN"/
00142  M00S00142.dfsort  +++|          DATA   MRUN(8,2) /O"7777 7700 0000 0000 0000"/
00143  M00S00143.dfsort  +++|          DATA   MRUN(8,3) /O"0000 0055 5555 5555 5555"/
00144  M00S00144.dfsort  +++|          DATA   MRUN(9,1) /L"FTN5"/
00145  M00S00145.dfsort  +++|          DATA   MRUN(9,2) /O"7777 7777 0000 0000 0000"/
00146  M00S00146.dfsort  +++|          DATA   MRUN(9,3) /O"0000 0000 5555 5555 5555"/
00147  M00S00147.dfsort  +++|          DATA   MRUN(10,1) /L"SYMPL"/
00148  M00S00148.dfsort  +++|          DATA   MRUN(10,2) /O"7777 7777 7700 0000 0000"/
00149  M00S00149.dfsort  +++|          DATA   MRUN(10,3) /O"0000 0000 0055 5555 5555"/
00150  M00S00150.dfsort  +++|
00151  M00S00151.dfsort  +++|          CALL REMARK(' VERSION 3')
00152  M00S00152.dfsort  +++|          REWIND 1
00153  M00S00153.dfsort  +++|          REWIND 3
00154  M00S00154.dfsort  +++|          REWIND 4
00155  M00S00155.dfsort  +++|          CALL DATER(DATE)
00156  M00S00156.dfsort  +++|          IJOB = 1
00157  M00S00157.dfsort  +++|          ITNM = 0
00158  M00S00158.dfsort  +++|          IF(ITN.EQ.0) GO TO 7
00159  M00S00159.dfsort  +++|          IF((ITN.AND. .NOT.MASK3).EQ.0)ITNM = MASK3
00160  M00S00160.dfsort  +++|          IF((ITN.AND. .NOT.MASK2).EQ.0)ITNM = MASK2
00161  M00S00161.dfsort  +++|          IF((ITN.AND. .NOT.MASK1).EQ.0)ITNM = MASK1
00162  M00S00162.dfsort  +++|7         CONTINUE
00163  M00S00163.dfsort  +++|          STIME = 0
00164  M00S00164.dfsort  +++|          JOBS = SHIFT(JOBS,-42).AND.O"777777"
00165  M00S00165.dfsort  +++|          JOBF = SHIFT(JOBF,-42).AND.O"777777"
00166  M00S00166.dfsort  +++|          ITIME = 1
00167  M00S00167.dfsort  +++|1         READ(1,1000,END=10000) LINE
00168  M00S00168.dfsort  +++|10000     IF(EOF(1)) 100,2,100
00169  M00S00169.dfsort  +++|
00170  M00S00170.dfsort  +++|**        CHANGE 00B TO BLANK(55B)
00171  M00S00171.dfsort  +++|
00172  M00S00172.dfsort  +++| 2        CONTINUE
00173  M00S00173.dfsort  +++|          DECODE(50,1001,LINE(1)) (ICHAR(I),I=1,50)
00174  M00S00174.dfsort  +++|          DO 201 L=1,50
00175  M00S00175.dfsort  +++|          IF(ICHAR(L) .EQ. O"00") ICHAR(L) = O"55"
00176  M00S00176.dfsort  +++| 201      CONTINUE
00177  M00S00177.dfsort  +++|          ENCODE(50,1001,LINE(1)) (ICHAR(I),I=1,50)
00178  M00S00178.dfsort  +++|
00179  M00S00179.dfsort  +++|**        DETERMINE JOB LIMITS.
00180  M00S00180.dfsort  +++|
00181  M00S00181.dfsort  +++|          JOBN = SHIFT(LINE(2),-18).AND.O"777777"
00182  M00S00182.dfsort  +++|          IF (ITIME.EQ.0) GO TO 21
00183  M00S00183.dfsort  +++|          IF ((LINE(2).AND.MASK8).EQ.L"SYSTEM  ") GO TO 1
00184  M00S00184.dfsort  +++|          IF ((LINE(2).AND.MASK8).EQ.L"TELEX  S") GO TO 1
00185  M00S00185.dfsort  +++|          IF ((LINE(2).AND.MASK8).EQ.L"BATCHIOS") GO TO 1
00186  M00S00186.dfsort  +++|          IF ((LINE(2).AND.MASK8).EQ.L"EXPORTLS") GO TO 1
00187  M00S00187.dfsort  +++|          IF ((LINE(2).AND.MASK8).EQ.L"IAFEX  S") GO TO 1
00188  M00S00188.dfsort  +++|          IF ((LINE(2).AND.MASK8).EQ.L"MSSEXECS") GO TO 1
00189  M00S00189.dfsort  +++|          IF ((LINE(2).AND.MASK8).EQ.L"NAM    S") GO TO 1
00190  M00S00190.dfsort  +++|          IF ((LINE(2).AND.MASK8).EQ.L"RBF    S") GO TO 1
00191  M00S00191.dfsort  +++|          IF ((LINE(2).AND.MASK8).EQ.L"MAGNET S") GO TO 1
00192  M00S00192.dfsort  +++|          IF (LINE(3).EQ.6HINPUT.) GO TO 1
00193  M00S00193.dfsort  +++|          ITIME = 0
00194  M00S00194.dfsort  +++|          STIME = LINE(1)
00195  M00S00195.dfsort  +++|          SJOB = LINE(2)
00196  M00S00196.dfsort  +++|21        IF(JOBN.LT.JOBS) GO TO 1
00197  M00S00197.dfsort  +++|          IF(JOBN.GT.JOBF) GO TO 1
00198  M00S00198.dfsort  +++|          IF(STIME.NE.0) GO TO 23
00199  M00S00199.dfsort  +++|          STIME = LINE(1)
00200  M00S00200.dfsort  +++|23        FTIME = LINE(1)
00201  M00S00201.dfsort  +++|          FJOB = LINE(2)
00202  M00S00202.dfsort  +++|
00203  M00S00203.dfsort  +++|**        ADD JOB NAME TO JOB LIST IF NOT IN.
00204  M00S00204.dfsort  +++|
00205  M00S00205.dfsort  +++|          INJ=0
00206  M00S00206.dfsort  +++|          DO 31 II=1,IJOB
00207  M00S00207.dfsort  +++|          I = II
00208  M00S00208.dfsort  +++|          IF(JOB(I).EQ.LINE(2)) GO TO 4
00209  M00S00209.dfsort  +++|31        CONTINUE
00210  M00S00210.dfsort  +++|          JOB(I) = LINE(2)
00211  M00S00211.dfsort  +++|          ICNT = 60
00212  M00S00212.dfsort  +++|          JB = LINE(3)
00213  M00S00213.dfsort  +++|
00214  M00S00214.dfsort  +++|**        DETERMINE JOB NAME LENGTH
00215  M00S00215.dfsort  +++|
00216  M00S00216.dfsort  +++| 32       JB = SHIFT(JB,6)
00217  M00S00217.dfsort  +++|          ICNT = ICNT - 6
00218  M00S00218.dfsort  +++|          IF((JB.AND.O"77").LT.R"A") GO TO 33
00219  M00S00219.dfsort  +++|          IF((JB.AND.O"77").GT.R"9") GO TO 33
00220  M00S00220.dfsort  +++|          IF(ICNT.NE.0) GO TO 32
00221  M00S00221.dfsort  +++|          JJOB(I) = LINE(3)
00222  M00S00222.dfsort  +++|          GO TO 34
00223  M00S00223.dfsort  +++|
00224  M00S00224.dfsort  +++|**        ADD BLANKS TO JOB NAME FIELD
00225  M00S00225.dfsort  +++|
00226  M00S00226.dfsort  +++|33        N = ICNT + 6
00227  M00S00227.dfsort  +++|          JB = SHIFT(JB,ICNT)
00228  M00S00228.dfsort  +++|          JJOB(I) = (JB.AND.MASK(60-N)).OR.(SHIFT(MASK(N),N).AND.BFILL)
00229  M00S00229.dfsort  +++|34        CONTINUE
00230  M00S00230.dfsort  +++|          IJOB = IJOB+1
00231  M00S00231.dfsort  +++|          INJ=1
00232  M00S00232.dfsort  +++|
00233  M00S00233.dfsort  +++|**        ENTER JOB TIMES.
00234  M00S00234.dfsort  +++|
00235  M00S00235.dfsort  +++|4         IF((LINE(4).AND.MASK4R).NE.NSECS)   GO TO 41
00236  M00S00236.dfsort  +++|          IF((LINE(3).AND.MASK4L).NE.NUECP)   GO TO 41
00237  M00S00237.dfsort  +++|          DECODE(40,3000,LINE) TIME
00238  M00S00238.dfsort  +++|          CPTIME = CPTIME+TIME
00239  M00S00239.dfsort  +++|          TIMES(I,1) = TIMES(I,1)+TIME
00240  M00S00240.dfsort  +++|          GO TO 44
00241  M00S00241.dfsort  +++|41        IF((LINE(4).AND.MASK4R).NE.NUNTS)   GO TO 42
00242  M00S00242.dfsort  +++|          IF((LINE(3).AND.MASK4L).NE.NAESR)   GO TO 42
00243  M00S00243.dfsort  +++|          DECODE(40,3000,LINE) TIME
00244  M00S00244.dfsort  +++|          SRTIME = SRTIME+TIME
00245  M00S00245.dfsort  +++|          TIMES(I,2) = TIMES(I,2)+TIME
00246  M00S00246.dfsort  +++|          GO TO 44
00247  M00S00247.dfsort  +++|42        IF((LINE(4).AND.MASK4R).NE.NKUNS)   GO TO 5
00248  M00S00248.dfsort  +++|          IF((LINE(3).AND.MASK4L).NE.NUEMS)   GO TO 43
00249  M00S00249.dfsort  +++|          DECODE(40,3000,LINE) TIME
00250  M00S00250.dfsort  +++|          MSTIME = MSTIME+TIME
00251  M00S00251.dfsort  +++|          TIMES(I,3) = TIMES(I,3)+TIME
00252  M00S00252.dfsort  +++|          GO TO 44
00253  M00S00253.dfsort  +++|43        IF((LINE(3).AND.MASK4L).NE.NUEMT)   GO TO 1
00254  M00S00254.dfsort  +++|          DECODE(40,3000,LINE) TIME
00255  M00S00255.dfsort  +++|          MTTIME = MTTIME+TIME
00256  M00S00256.dfsort  +++|          TIMES(I,4) = TIMES(I,4)+TIME
00257  M00S00257.dfsort  +++|44        GO TO 1
00258  M00S00258.dfsort  +++|
00259  M00S00259.dfsort  +++|**        DETERMINE RUN TYPE.
00260  M00S00260.dfsort  +++|
00261  M00S00261.dfsort  +++|5         IF(INJ.EQ.0) GO TO 50
00262  M00S00262.dfsort  +++|          IF(JOBN.GE.JOBS) GO TO 1
00263  M00S00263.dfsort  +++|50        DO 51 J=1,50
00264  M00S00264.dfsort  +++|          IF (MRUN(J,1).EQ.0) GO TO 6
00265  M00S00265.dfsort  +++|          IF ((LINE(3).AND.MRUN(J,2)).NE.(MRUN(J,1).AND.MRUN(J,2)))
00266  M00S00266.dfsort  +++|     1    GO TO 51
00267  M00S00267.dfsort  +++|          IRUN(I) = SHIFT(((MRUN(J,1).AND.MRUN(J,2)).OR.MRUN(J,3)),42)
00268  M00S00268.dfsort  +++|          MRUN(J,1) = MRUN(J,1)+1
00269  M00S00269.dfsort  +++|          GO TO 6
00270  M00S00270.dfsort  +++|51        CONTINUE
00271  M00S00271.dfsort  +++|
00272  M00S00272.dfsort  +++|**        ENTER DAYFILE MESSAGE.
00273  M00S00273.dfsort  +++|
00274  M00S00274.dfsort  +++|6         DO 61 J=1,3
00275  M00S00275.dfsort  +++|61        MSG(I,J) = LINE(J+2)
00276  M00S00276.dfsort  +++|          IF((LINE(3).AND.MASK9).NE.IQM1) GO TO 62
00277  M00S00277.dfsort  +++|          ITAPE =4
00278  M00S00278.dfsort  +++|          IF((LINE(4).AND.MASK10).EQ.IQM2) ITAPE = 3
00279  M00S00279.dfsort  +++|          IF((JJOB(I).AND.ITNM).NE.(ITN)) GO TO 62
00280  M00S00280.dfsort  +++|          WRITE(ITAPE,2009)I,JOB(I),JJOB(I),IRUN(I),(LINE(L),L=3,5)
00281  M00S00281.dfsort  +++|62        CONTINUE
00282  M00S00282.dfsort  +++|          GO TO 1
00283  M00S00283.dfsort  +++|
00284  M00S00284.dfsort  +++|
00285  M00S00285.dfsort  +++|**        PRINT JOB TABLES
00286  M00S00286.dfsort  +++|
00287  M00S00287.dfsort  +++|100       LINES = 64
00288  M00S00288.dfsort  +++|          J = IJOB-1
00289  M00S00289.dfsort  +++|          IPAGE = 1
00290  M00S00290.dfsort  +++|          DO 105 I=1,J
00291  M00S00291.dfsort  +++|          IF (LINES.LT.60) GO TO 101
00292  M00S00292.dfsort  +++|          WRITE(2,2000)DATE,JOBS,JOBF,IPAGE
00293  M00S00293.dfsort  +++|          LINES = 4
00294  M00S00294.dfsort  +++|          IPAGE = IPAGE+1
00295  M00S00295.dfsort  +++|101       M = R"999"
00296  M00S00296.dfsort  +++|          DO 102 K=1,J
00297  M00S00297.dfsort  +++|          IF (JOB(K).EQ.0) GO TO 102
00298  M00S00298.dfsort  +++|          IF ((SHIFT(JOB(K),-18).AND.O"777777").GE.M) GO TO 102
00299  M00S00299.dfsort  +++|          L = K
00300  M00S00300.dfsort  +++|          M = SHIFT(JOB(K),-18).AND.O"777777"
00301  M00S00301.dfsort  +++|102       CONTINUE
00302  M00S00302.dfsort  +++|          K = L
00303  M00S00303.dfsort  +++|          WRITE(2,2001) I,JOB(K),(TIMES(K,L),L=1,4),IRUN(K),(MSG(K,L),
00304  M00S00304.dfsort  +++|     1    L=1,3)
00305  M00S00305.dfsort  +++|          JOB(K) = 0
00306  M00S00306.dfsort  +++|          III(K) = I
00307  M00S00307.dfsort  +++|105       LINES = LINES+1
00308  M00S00308.dfsort  +++|
00309  M00S00309.dfsort  +++|**        LIST TOTALS.
00310  M00S00310.dfsort  +++|
00311  M00S00311.dfsort  +++|          WRITE(2,2002) CPTIME,SRTIME,MSTIME,MTTIME
00312  M00S00312.dfsort  +++|          WRITE(2,2003) FTIME,FJOB,STIME,SJOB
00313  M00S00313.dfsort  +++|          DECODE(10,3001,STIME) NTIME
00314  M00S00314.dfsort  +++|          ITIME = 3600*NTIME(1)+60*NTIME(2)+NTIME(3)
00315  M00S00315.dfsort  +++|          DECODE(10,3001,FTIME) NTIME
00316  M00S00316.dfsort  +++|          JTIME = 3600*NTIME(1)+60*NTIME(2)+NTIME(3)
00317  M00S00317.dfsort  +++|          KTIME = JTIME-ITIME
00318  M00S00318.dfsort  +++|          NTIME(1) = KTIME/3600
00319  M00S00319.dfsort  +++|          ITIME = KTIME/60
00320  M00S00320.dfsort  +++|          NTIME(2) = ITIME-(NTIME(1)*60)
00321  M00S00321.dfsort  +++|          NTIME(3) = KTIME-(NTIME(2)*60)-(NTIME(1)*3600)
00322  M00S00322.dfsort  +++|          WRITE(2,2004) NTIME,KTIME
00323  M00S00323.dfsort  +++|
00324  M00S00324.dfsort  +++|**        LIST RUN USAGE.
00325  M00S00325.dfsort  +++|
00326  M00S00326.dfsort  +++|          WRITE(2,2005) DATE,IPAGE
00327  M00S00327.dfsort  +++|          LINES = 4
00328  M00S00328.dfsort  +++|          IPAGE = IPAGE+1
00329  M00S00329.dfsort  +++|          DO 110 I=1,50
00330  M00S00330.dfsort  +++|          IF (MRUN(I,1).EQ.0) GO TO 111
00331  M00S00331.dfsort  +++|          J = (MRUN(I,1).AND.MRUN(I,2)) .OR. MRUN(I,3)
00332  M00S00332.dfsort  +++|          K = MRUN(I,1).AND.O"777777"
00333  M00S00333.dfsort  +++|110       WRITE(2,2006) J, K
00334  M00S00334.dfsort  +++|*
00335  M00S00335.dfsort  +++|**        AUTOMATIC CHECKOUT ROUTINES SUMMARY PROCESSOR.
00336  M00S00336.dfsort  +++|*
00337  M00S00337.dfsort  +++|111       ENDFILE 3
00338  M00S00338.dfsort  +++|          ENDFILE 4
00339  M00S00339.dfsort  +++|          REWIND 3
00340  M00S00340.dfsort  +++|          REWIND 4
00341  M00S00341.dfsort  +++|          ITOT = 0
00342  M00S00342.dfsort  +++|          IPASS = 0
00343  M00S00343.dfsort  +++|          IFAIL = 0
00344  M00S00344.dfsort  +++|          DO 112 I=1,1000
00345  M00S00345.dfsort  +++|          KK(I)=0
00346  M00S00346.dfsort  +++|112       CONTINUE
00347  M00S00347.dfsort  +++|          ITAPE = 3
00348  M00S00348.dfsort  +++|          DO 114 J=1,1000
00349  M00S00349.dfsort  +++|          READ(ITAPE,2009,END=10001)I,JOB(I),JJOB(I),IRUN(I),(MSG(I,L)
00350  M00S00350.dfsort  +++|     +,L=1,3)
00351  M00S00351.dfsort  +++|10001     IF(EOF(ITAPE)) 115,113,115
00352  M00S00352.dfsort  +++|113       IPASS = IPASS + 1
00353  M00S00353.dfsort  +++|          ITOT = ITOT + 1
00354  M00S00354.dfsort  +++|          KK(I) = III(I)
00355  M00S00355.dfsort  +++|114       CONTINUE
00356  M00S00356.dfsort  +++|115       IF(IPASS.EQ.0) GO TO 119
00357  M00S00357.dfsort  +++|          LINES = 64
00358  M00S00358.dfsort  +++|          J = J - 1
00359  M00S00359.dfsort  +++|          DO 118 I = 1,J
00360  M00S00360.dfsort  +++|          IF(LINES.LT.60) GO TO 116
00361  M00S00361.dfsort  +++|          WRITE(2,2007)DATE,JOBS,JOBF,IPAGE
00362  M00S00362.dfsort  +++|          IF(ITN.EQ.0)WRITE(2,2014)
00363  M00S00363.dfsort  +++|          IF(ITN.NE.0)WRITE(2,2015)ITN
00364  M00S00364.dfsort  +++|          LINES = 4
00365  M00S00365.dfsort  +++|          IPAGE = IPAGE + 1
00366  M00S00366.dfsort  +++|116       M = 1001
00367  M00S00367.dfsort  +++|          DO 117 K=1,1000
00368  M00S00368.dfsort  +++|          IF(KK(K).EQ.0) GO TO 117
00369  M00S00369.dfsort  +++|          IF(KK(K).GE.M) GO TO 117
00370  M00S00370.dfsort  +++|          L = K
00371  M00S00371.dfsort  +++|          M = KK(K)
00372  M00S00372.dfsort  +++|117       CONTINUE
00373  M00S00373.dfsort  +++|          K = L
00374  M00S00374.dfsort  +++|          WRITE(2,2013)KK(K),JOB(K),JJOB(K),(MSG(K,L),L=1,3),IRUN(K)
00375  M00S00375.dfsort  +++|          KK(K) = 0
00376  M00S00376.dfsort  +++|          LINES = LINES + 1
00377  M00S00377.dfsort  +++|118       CONTINUE
00378  M00S00378.dfsort  +++|          WRITE(2,2010)IPASS
00379  M00S00379.dfsort  +++|*
00380  M00S00380.dfsort  +++|119       ITAPE = 4
00381  M00S00381.dfsort  +++|          DO 121 J = 1,1000
00382  M00S00382.dfsort  +++|          READ(ITAPE,2009,END=10002)I,JOB(I),JJOB(I),IRUN(I),(MSG(I,L)
00383  M00S00383.dfsort  +++|     +,L=1,3)
00384  M00S00384.dfsort  +++|10002     IF(EOF(ITAPE)) 122,120,122
00385  M00S00385.dfsort  +++|120       IFAIL = IFAIL + 1
00386  M00S00386.dfsort  +++|          ITOT = ITOT + 1
00387  M00S00387.dfsort  +++|          KK(I) = III(I)
00388  M00S00388.dfsort  +++|121       CONTINUE
00389  M00S00389.dfsort  +++|122       IF(IFAIL.EQ.0)GO TO 126
00390  M00S00390.dfsort  +++|          LINES = 64
00391  M00S00391.dfsort  +++|          J = J - 1
00392  M00S00392.dfsort  +++|          DO 125 I=1,J
00393  M00S00393.dfsort  +++|          IF(LINES.LT.60) GO TO 123
00394  M00S00394.dfsort  +++|          WRITE(2,2007)DATE,JOBS,JOBF,IPAGE
00395  M00S00395.dfsort  +++|          IF(ITN.EQ.0)WRITE(2,2014)
00396  M00S00396.dfsort  +++|          IF(ITN.NE.0)WRITE(2,2015)ITN
00397  M00S00397.dfsort  +++|          LINES = 4
00398  M00S00398.dfsort  +++|          IPAGE = IPAGE + 1
00399  M00S00399.dfsort  +++|123       M = 1001
00400  M00S00400.dfsort  +++|          DO 124 K = 1,1000
00401  M00S00401.dfsort  +++|          IF(KK(K).EQ.0)GO TO 124
00402  M00S00402.dfsort  +++|          IF(KK(K).GE.M)GO TO 124
00403  M00S00403.dfsort  +++|          L = K
00404  M00S00404.dfsort  +++|          M = KK(K)
00405  M00S00405.dfsort  +++|124       CONTINUE
00406  M00S00406.dfsort  +++|          K = L
00407  M00S00407.dfsort  +++|          WRITE(2,2013)KK(K),JOB(K),JJOB(K),(MSG(K,L),L=1,3),IRUN(K)
00408  M00S00408.dfsort  +++|          KK(K) = 0
00409  M00S00409.dfsort  +++|          LINES = LINES + 1
00410  M00S00410.dfsort  +++|125       CONTINUE
00411  M00S00411.dfsort  +++|          WRITE(2,2011)IFAIL
00412  M00S00412.dfsort  +++|126       IF(ITOT.EQ.0) GO TO 127
00413  M00S00413.dfsort  +++|          WRITE(2,2007)DATE,JOBS,JOBF,IPAGE
00414  M00S00414.dfsort  +++|          WRITE(2,2010)IPASS
00415  M00S00415.dfsort  +++|          WRITE(2,2011)IFAIL
00416  M00S00416.dfsort  +++|          WRITE(2,2012)ITOT
00417  M00S00417.dfsort  +++|127       ENDFILE 2
00418  M00S00418.dfsort  +++|          END
00419  M00S00419.dfsort  +++|          SUBROUTINE DATER(I)
00420  M00S00420.dfsort  +++|          CALL DATE(I)
00421  M00S00421.dfsort  +++|          RETURN
00422  M00S00422.dfsort  +++|          END
00423  M00S00423.dfsort  +++|          IDENT  PRESET
00424  M00S00424.dfsort  +++|          ENTRY  PRESET
00425  M00S00425.dfsort  +++|          SYSCOM
00426  M00S00426.dfsort  +++|          SPACE  4,10
00427  M00S00427.dfsort  +++|*CALL     COMCMAC
00428  M00S00428.dfsort  +++|          SPACE  4,10
00429  M00S00429.dfsort  +++| PRESET   SB1    1
00430  M00S00430.dfsort  +++|          SA1    ACTR
00431  M00S00431.dfsort  +++|          SB4    X1
00432  M00S00432.dfsort  +++|          SA4    ARGR
00433  M00S00433.dfsort  +++|          SB5    PRSA
00434  M00S00434.dfsort  +++|          RJ     ARG         PROCESS ARGUMENTS
00435  M00S00435.dfsort  +++|          ZR     X1,PRS1     IF NO ARGUMENT ERRORS
00436  M00S00436.dfsort  +++|          MESSAGE (=C*DFSORT ARGUMENT ERROR.*)
00437  M00S00437.dfsort  +++|          ABORT
00438  M00S00438.dfsort  +++| PRS1     SA1    D           SET DAYFILE NAME
00439  M00S00439.dfsort  +++|          SA2    L           SET LIST FILE NAME
00440  M00S00440.dfsort  +++|          BX6    X1
00441  M00S00441.dfsort  +++|          LX7    X2
00442  M00S00442.dfsort  +++|          SA6    ARGR
00443  M00S00443.dfsort  +++|          SA7    A6+B1
00444  M00S00444.dfsort  +++|          SX6    B1+B1       ARGUMENT COUNT = 2
00445  M00S00445.dfsort  +++|          SA6    ACTR
00446  M00S00446.dfsort  +++|          EQ     =XDFSORT    ENTER FORTRAN PROGRAM
00447  M00S00447.dfsort  +++|
00448  M00S00448.dfsort  +++| PRSA     BSS    0
00449  M00S00449.dfsort  +++|          VFD    12/0LD,18/D,30/D
00450  M00S00450.dfsort  +++|          VFD    12/0LL,18/L,30/L
00451  M00S00451.dfsort  +++|          VFD    12/0LS,18/JOBS,30/JOBS
00452  M00S00452.dfsort  +++|          VFD    12/0LF,18/JOBF,30/JOBF
00453  M00S00453.dfsort  +++|          VFD    12/0LTN,18/ITN,30/ITN
00454  M00S00454.dfsort  +++|          CON    0
00455  M00S00455.dfsort  +++|
00456  M00S00456.dfsort  +++| D        CON    0LDAYFILE
00457  M00S00457.dfsort  +++| L        CON    0LOUTPUT
00458  M00S00458.dfsort  +++|          SPACE  4
00459  M00S00459.dfsort  +++|**        COMMON DECKS.
00460  M00S00460.dfsort  +++|
00461  M00S00461.dfsort  +++|
00462  M00S00462.dfsort  +++|*CALL     COMCARG
00463  M00S00463.dfsort  +++|*CALL     COMCSYS
00464  M00S00464.dfsort  +++|          SPACE  4
00465  M00S00465.dfsort  +++|          USE    /DATA/
00466  M00S00466.dfsort  +++| JOBS     CON    0LAAA
00467  M00S00467.dfsort  +++| JOBF     CON    0L999
00468  M00S00468.dfsort  +++| ITN      CON    0
00469  M00S00469.dfsort  +++|          SPACE  4
00470  M00S00470.dfsort  +++|          END    PRESET
cdc/nos2.source/opl.opl871/deck/dfsort.txt ยท Last modified: by 127.0.0.1