cdc:nos2.source:opl.opl871:deck:secart
Deck SECART
1 Modification
Listing Sections
- Deck SECART Start
- Deck SECART Part 1 (Line 2163)
Source
Seq # *Modification Id* Act ----------------------------+ 00001 M01S00001.secart +++|*NOSEQ 00002 M01S00002.secart +++| PROGRAM SECART
Line S00003 Modification History | |
---|---|
M01 (Added by) | secart |
M02 (Updated by) | 281l803 |
Seq # *Modification Id* Act ----------------------------+ 00003 M02S00003.281l803 ---|* COMMENT. COPYRIGHT CONTROL DATA CORPORATION 1986. 00004 M01S00004.secart +++|*** SECART - SECURITY AUDIT REDUCTION TOOL. 00005 M01S00001.281l803 +++|* 00006 M01S00002.281l803 +++|* COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. 00007 M01S00005.secart +++|* 00008 M01S00006.secart +++|* T. A. CURETON. 86/06/30. 00009 M01S00007.secart +++| 00010 M01S00008.secart +++|*** OVERVIEW. 00011 M01S00009.secart +++|* 00012 M01S00010.secart +++|* *SECART* IS A STAND-ALONE SECURITY ADMINISTRATOR UTILITY WHICH 00013 M01S00011.secart +++|* DIGESTS BOTH *ACCOUNT* AND *DAYFILE* LOG MESSAGES, REDUCING 00014 M01S00012.secart +++|* THE VOLUME OF DATA WHICH MUST BE REVIEWED AND PRODUCES 00015 M01S00013.secart +++|* PRINTOUTS AND FILES USEFUL FOR SECURITY AUDITING PURPOSES. 00016 M01S00014.secart +++| 00017 M01S00015.secart +++|*** FUNCTIONS. 00018 M01S00016.secart +++|* 00019 M01S00017.secart +++|* - MERGE BY TIME SEQUENCE MESSAGES FROM RAW *DAYFILE* AND 00020 M01S00018.secart +++|* *ACCOUNT* LOGS TO PRODUCE A NEAR-NORMAL CAUSE-AND-EFFECT 00021 M01S00019.secart +++|* SERIAL SEQUENCE AND ESTABLISH EVENT CONTEXT. 00022 M01S00020.secart +++|* 00023 M01S00021.secart +++|* - SELECT MESSAGES FROM RAW LOGS FOR SERIAL PRINTOUT BASED ON 00024 M01S00022.secart +++|* CRITERIA SPECIFIED IN DIRECTIVES. 00025 M01S00023.secart +++|* 00026 M01S00024.secart +++|* - EXTRACT JSN-S, USER NAMES, AND OTHER ATTRIBUTES OF EACH JOB 00027 M01S00025.secart +++|* ENCOUNTERED IN THE RAW LOG INPUT(S). 00028 M01S00026.secart +++|* 00029 M01S00027.secart +++|* - RECOGNIZE MESSAGES INDICATING LEVEL 0 DEADSTARTS WHICH RESET 00030 M01S00028.secart +++|* JSN GENERATION SEQUENCE AND AUGMENT JSN IDENTIFIERS TO 00031 M01S00029.secart +++|* UNIQUELY IDENTIFY EACH JOB. 00032 M01S00030.secart +++|* 00033 M01S00031.secart +++|* - RECOGNIZE JOB RECOVERY EVENTS AND, WHERE POSSIBLE, RECOVER 00034 M01S00032.secart +++|* JOB ATTRIBUTES FROM PREVIOUS JSN TRACE TABLE ENTRIES. 00035 M01S00033.secart +++|* 00036 M01S00034.secart +++|* - COLLECT AND PRINTOUT STATISTICS ON USAGE OF *ACCOUNT* LOG 00037 M01S00035.secart +++|* MESSAGE IDENTIFIERS. 00038 M01S00036.secart +++|* 00039 M01S00037.secart +++|* - SORT AND PRINTOUT JSN TRACE TABLE PER DIRECTIVES. 00040 M01S00038.secart +++|* 00041 M01S00039.secart +++|* - SORT COMPOSITE (MERGED) LOG TO GROUP MESSAGES BY UNIQUE JSN. 00042 M01S00040.secart +++|* 00043 M01S00041.secart +++|* - SELECT AND PRINTOUT UNIT JOBS PER DIRECTIVES. APPLY SAMPLE 00044 M01S00042.secart +++|* LIMIT TO NUMBER OF MESSAGES PRINTED FOR EACH JOB TO REDUCE 00045 M01S00043.secart +++|* RISK OF MASSIVE PRINTOUT OR EXCEEDING RESOURCE LIMITS. 00046 M01S00044.secart +++| 00047 M01S00045.secart +++|*** COMMAND FORMAT. 00048 M01S00046.secart +++|* 00049 M01S00047.secart +++|* SECART(P1,P2,...PN) 00050 M01S00048.secart +++|* 00051 M01S00049.secart +++|* EACH PARAMETER SPECIFIES THE LFN OF A FILE PROVIDED AS INPUT 00052 M01S00050.secart +++|* OR TO BE PRODUCED AS AN OUTPUT OF THE PROGRAM. PARAMETERS 00053 M01S00051.secart +++|* MUST BE IN KEYWORD=VALUE FORMAT AND MAY BE IN ANY ORDER. A 00054 M01S00052.secart +++|* VALUE OF *0* (ZERO) SPECIFIES NO FILE IS PROVIDED OR PRODUCED. 00055 M01S00053.secart +++|* A PARAMETER OMITTED OR SPECIFIED WITHOUT A VALUE FIELD WILL 00056 M01S00054.secart +++|* ASSUME A DEFAULT VALUE AS DEFINED IN THE FOLLOWING TABLE: 00057 M01S00055.secart +++|* 00058 M01S00056.secart +++|* PARAM OMIT NO_VALUE DESCRIPTION 00059 M01S00057.secart +++|* 00060 M01S00058.secart +++|* *D* 0 DFLOG RAW DAYFILE LOG INPUT. 00061 M01S00059.secart +++|* *A* 0 ACLOG RAW ACCOUNT LOG INPUT. 00062 M01S00060.secart +++|* *C* 0 COMBO COMPOSITE LOG OUTPUT/INPUT. 00063 M01S00061.secart +++|* *J* 0 JOBS UNIT JOBS COMPOSITE LOG OUTPUT/INPUT. 00064 M01S00062.secart +++|* *M* 0 MSGID ACCOUNT MSG ID REFERENCE INPUT FILE. 00065 M01S00063.secart +++|* *T* 0 TRACE JSN TRACE TABLE INPUT AND OUTPUT. 00066 M01S00064.secart +++|* *I* INPUT INPUT DIRECTIVES INPUT FILE. 00067 M01S00065.secart +++|* *L* OUTPUT OUTPUT PRINTOUTS FILE. REQUIRED OUTPUT. 00068 M01S00066.secart +++|* 00069 M01S00067.secart +++|* AT LEAST ONE OF THE FILES IDENTIFIED BY PARAMETERS *D*,*A*, 00070 M01S00068.secart +++|* C*,*J*,*T* MUST BE SPECIFIED TO PROVIDE INPUT(S) FOR *SECART* 00071 M01S00069.secart +++|* PROCESSING. SPECIFYING EITHER (OR BOTH) RAW LOGS (*D*,*A*) 00072 M01S00070.secart +++|* DEFINES AN INITIAL RUN WITH COMPOSITE (*C*) AND UNIT JOB (*J*) 00073 M01S00071.secart +++|* LOGS AND JSN TRACE TABLE (*T*) PRODUCED AS OUTPUT FILES. 00074 M01S00072.secart +++|* 00075 M01S00073.secart +++|* IF NO RAW LOG FILE IS SPECIFIED, *SECART* WILL ASSUME RERUN 00076 M01S00074.secart +++|* MODE AND LOOK FOR 1) A COMPOSITE LOG OR 2) UNIT JOBS LOG AS 00077 M01S00075.secart +++|* INPUT. IF A COMPOSITE LOG (*C*) IS PROVIDED, THE UNIT JOBS 00078 M01S00076.secart +++|* LOG (*J*) WILL BE AN OUTPUT FILE. IF A UNIT JOBS LOG (*J*) IS 00079 M01S00077.secart +++|* THE LOG INPUT FILE, ONLY PRINTOUTS WILL BE PRODUCED. 00080 M01S00078.secart +++|* 00081 M01S00079.secart +++|* THE JSN TRACE TABLE FILE (*T*) IS PRODUCED ONLY DURING AN 00082 M01S00080.secart +++|* INITIAL RUN. IT CONTAINS AN ENTRY FOR EACH JOB FOUND IN THE 00083 M01S00081.secart +++|* RAW LOG(S) AND SHOULD BE SAVED TO FACILLITATE RERUNS. ANY 00084 M01S00082.secart +++|* *SECART* RERUN USING A PRE-PROCESSED LOG FILE REQUIRES 00085 M01S00083.secart +++|* PROVIDING THE TRACE TABLE FILE WHICH CORRESPONDS TO THE INPUT 00086 M01S00084.secart +++|* LOG. PROVIDING A JSN TRACE TABLE FILE AS THE ONLY INPUT IS 00087 M01S00085.secart +++|* USEFUL FOR RE-SORTING AND/OR PRINTOUT OF THE JSN TRACE TABLE. 00088 M01S00086.secart +++|* TO AID RECOVERY OF JOB ATTRIBUTES FROM A PREVIOUS SET OF RAW 00089 M01S00087.secart +++|* LOGS, THE TRACE TABLE (OR A SUBSET) FROM THE PREVIOUS RUN MAY 00090 M01S00088.secart +++|* BE PROVIDED FOR AN INITIAL RAW LOGS *SECART* RUN. SINCE THIS 00091 M01S00089.secart +++|* FILE WILL BE FIRST READ, THEN REWRITTEN, AN EXPENDABLE COPY OF 00092 M01S00090.secart +++|* THE TRACE TABLE FILE (OR SUBSET) SHOULD BE PROVIDED. 00093 M01S00091.secart +++|* 00094 M01S00092.secart +++|* THE INPUT FILE (*I*) MAY CONTAIN *SECART* DIRECTIVES WHICH 00095 M01S00093.secart +++|* SPECIFY CRITERIA FOR SELECTING MESSAGES AND/OR UNIT JOBS FOR 00096 M01S00094.secart +++|* PRINTOUT, SORTING JSN TRACE TABLE ENTRIES, AND LIMITING UNIT 00097 M01S00095.secart +++|* JOB PRINTOUTS. SEE DIRECTIVES SECTION BELOW FOR DESCRIPTIONS. 00098 M01S00096.secart +++|* 00099 M01S00097.secart +++|* A LIST FILE (*L*) IS ALWAYS PRODUCED AND THE *L* PARAMETER MAY 00100 M01S00098.secart +++|* BE USED TO DIRECT PRINTOUTS TO A FILENAME. THE SEQUENCE OF 00101 M01S00099.secart +++|* PRINTOUTS MAY INCLUDE: 00102 M01S00100.secart +++|* 00103 M01S00101.secart +++|* - *SECART* DIRECTIVES AND ANY DIRECTIVE ERROR MESSAGES. 00104 M01S00102.secart +++|* 00105 M01S00103.secart +++|* - TIME SEQUENCED SERIAL PRINTOUT OF SELECTED MESSAGES. 00106 M01S00104.secart +++|* 00107 M01S00105.secart +++|* - *ACCOUNT* MESSAGE ID STATISTICS. 00108 M01S00106.secart +++|* 00109 M01S00107.secart +++|* - SORTED JSN TRACE TABLE. 00110 M01S00108.secart +++|* 00111 M01S00109.secart +++|* - SELECTED UNIT JOBS. 00112 M01S00110.secart +++| 00113 M01S00111.secart +++|*** DIRECTIVES. 00114 M01S00112.secart +++|* 00115 M01S00113.secart +++|* *SECART* DIRECTIVES MAY BE USED TO SPECIFY OPTIONS AND TO 00116 M01S00114.secart +++|* SELECT MESSAGES, TIME WINDOWS, AND JOBS FOR PRINTOUT. ALL 00117 M01S00115.secart +++|* SELECTIONS ARE ON AN INCLUSIVE OR BASIS. SELECTED *ACCOUNT* 00118 M01S00116.secart +++|* MESSAGE ID-S ARE FLAGGED AND OCCURRENCES TABULATED IN THE 00119 M01S00117.secart +++|* STATISTICS PRINTOUT. SELECTED JOBS ARE ANNOTATED TO SHOW 00120 M01S00118.secart +++|* SELECTION BASIS IN THE JSN TRACE TABLE PRINTOUT. 00121 M01S00119.secart +++|* 00122 M01S00120.secart +++|* EACH DIRECTIVE MUST BEGIN IN COLUMN 1 ON A SEPARATE INPUT 00123 M01S00121.secart +++|* LINE. THE *=* AFTER THE DIRECTIVE NAME IS REQUIRED. SYNTAX 00124 M01S00122.secart +++|* IS GENERALLY FREEFORM USING A COMMA AND/OR BLANKS TO SEPARATE 00125 M01S00123.secart +++|* ARGUMENTS. ITEMS SHOWN BELOW IN [BRACKETS] ARE OPTIONAL. 00126 M01S00124.secart +++|* REPETITIVE ARGUMENTS ARE INDICATED BY TRIPLE PERIODS AND MAY 00127 M01S00125.secart +++|* MAY BE ENTERED VIA MULTIPLE DIRECTIVES TO A MAXIMUM DEFINED 00128 M01S00126.secart +++|* BY TABLE SPACE (50 EACH TYPE). 00129 M01S00127.secart +++|* 00130 M01S00128.secart +++|* AMSG=MSID,MSID,... 00131 M01S00129.secart +++|* 00132 M01S00130.secart +++|* SELECTS FOR SERIAL PRINTOUT ALL MESSAGES CONTAINING 00133 M01S00131.secart +++|* ANY OF THE SPECIFIED ACCOUNT MESSAGE IDENTIFIERS. 00134 M01S00132.secart +++|* 00135 M01S00133.secart +++|* DMSG=[NN:]TEXTSTRING 00136 M01S00134.secart +++|* 00137 M01S00135.secart +++|* SELECTS FOR SERIAL PRINTOUT OF ALL DAYFILE 00138 M01S00136.secart +++|* MESSAGES CONTAINING SPECIFIED TEXT STRING. NN IS 00139 M01S00137.secart +++|* OPTIONAL AND SPECIFIES A START CHARACTER POSITION 00140 M01S00138.secart +++|* [1-80] RELATIVE TO MESSAGE PORTION OF DAYFILE. TEXT 00141 M01S00139.secart +++|* STRING IS UNDELIMITED, BEGINS IMMEDIATELY AFTER THE 00142 M01S00140.secart +++|* EQUAL OR COLON, AND ENDS WITH LAST NON-BLANK. 00143 M01S00141.secart +++|* 00144 M01S00142.secart +++|* TIME=HHMMSS[-HHMMSS] (OR) 00145 M01S00143.secart +++|* TIME=HH.MM.SS.[-HH.MM.SS] 00146 M01S00144.secart +++|* 00147 M01S00145.secart +++|* SPECIFIES TIME WINDOW FOR SERIAL PRINTOUT. 00148 M01S00146.secart +++|* SECONDS PORTION IS OPTIONAL. END TIME IS OPTIONAL 00149 M01S00147.secart +++|* BUT REQUIRES '-' SEPARATOR. DEFAULTS TO SAME AS 00150 M01S00148.secart +++|* START TIME FOR ONE SECOND WINDOW. 00151 M01S00149.secart +++|* 00152 M01S00150.secart +++|* TRACE=KEY,KEY,... 00153 M01S00151.secart +++|* 00154 M01S00152.secart +++|* SPECIFIES SORT KEYS FOR TRACE TABLE PRINTOUT. VALID 00155 M01S00153.secart +++|* KEYS: UJN,JSN,JC,SDT,EDT,FM,UN,TRM. DEFAULT IS SDT 00156 M01S00154.secart +++|* WHICH IS SEQUENCE OF ENCOUNTERING UNIQUE JSN-S. 00157 M01S00155.secart +++|* 00158 M01S00156.secart +++|* USER=FAMILY,USER 00159 M01S00157.secart +++|* 00160 M01S00158.secart +++|* SELECTS UNIT JOBS FOR PRINTOUT BY USER/FAMILY 00161 M01S00159.secart +++|* IDENTIFICATION. FAMILY MAY BE BLANK OR OMITTED TO 00162 M01S00160.secart +++|* SELECT DEFAULT FAMILY. ASTERISK MAY BE SPECIFIED 00163 M01S00161.secart +++|* FOR WILDCARD MATCH ON FAMILY OR USER. NOTE THAT 00164 M01S00162.secart +++|* USER=*,* SELECTS ALL JOBS. SINCE *SECART* RECOGNIZES 00165 M01S00163.secart +++|* THE USER INDEX IN A *SUI* COMMAND AS A USER ID, A 00166 M01S00164.secart +++|* USER INDEX MAY BE SPECIFIED IN PLACE OF THE USERNAME 00167 M01S00165.secart +++|* AND WILL BE RECOGNIZED WHEN A *SUI* WITH THAT UI IS 00168 M01S00166.secart +++|* ENCOUNTERED IN THE DAYFILE LOG. 00169 M01S00167.secart +++|* 00170 M01S00168.secart +++|* UJN=JOBNAME,... 00171 M01S00169.secart +++|* 00172 M01S00170.secart +++|* SELECTS UNIT JOBS FOR PRINTOUT BY JOBNAME FOUND IN 00173 M01S00171.secart +++|* FIRST DAYFILE MESSAGE (USUALLY). 00174 M01S00172.secart +++|* 00175 M01S00173.secart +++|* JSN=[D.]AAAA,... 00176 M01S00174.secart +++|* 00177 M01S00175.secart +++|* SELECTS UNIT JOBS FOR PRINTOUT BY JSN. 'D.' IS 00178 M01S00176.secart +++|* OPTIONAL AND SPECIFIES AN *SECART*-ASSIGNED PREFIX 00179 M01S00177.secart +++|* CODE USED TO RESOLVE JSN AMBIGUITY ACROSS LEVEL 0 00180 M01S00178.secart +++|* DEADSTARTS. 00181 M01S00179.secart +++|* 00182 M01S00180.secart +++|* TRM=TERMID,... 00183 M01S00181.secart +++|* 00184 M01S00182.secart +++|* SELECTS UNIT JOBS PRINTOUT BY TERMINAL ID. 00185 M01S00183.secart +++|* 00186 M01S00184.secart +++|* LIMIT=NNNN 00187 M01S00185.secart +++|* 00188 M01S00186.secart +++|* LIMITS UNIT JOB PRINTOUTS TO NNNN LINES EACH. HELPS 00189 M01S00187.secart +++|* REDUCE/AVOID MASSSIVE PRINTOUTS. 00190 M01S00188.secart +++| 00191 M01S00189.secart +++|*** CALLS. 00192 M01S00190.secart +++|* 00193 M01S00191.secart +++|* SORT/MERGE V5 - TO GROUP COMPOSITE LOG INTO UNIT JOBS AND 00194 M01S00192.secart +++|* - TO SORT TRACE TABLE (OPTIONAL). 00195 M01S00193.secart +++| 00196 M01S00194.secart +++|*** DAYFILE MESSAGES. 00197 M01S00195.secart +++|* 00198 M01S00196.secart +++|* *SECART* ISSUES TWO CLASSES OF DAYFILE MESSAGES - STATUS AND 00199 M01S00197.secart +++|* ERROR MESSAGES. 00200 M01S00198.secart +++|* 00201 M01S00199.secart +++|* STATUS MESSAGES MERELY INDICATE PROCESSING PHASES AND ARE 00202 M01S00200.secart +++|* SELF-EXPLANATORY. ALL STATUS MESSAGES BEGIN WITH ONE LEADING 00203 M01S00201.secart +++|* BLANK AND OCCUR IN THE FOLLOWING SEQUENCE: 00204 M01S00202.secart +++|* 00205 M01S00203.secart +++|* READING DIRECTIVES... 00206 M01S00204.secart +++|* 00207 M01S00205.secart +++|* LOADING TRACE TABLE... 00208 M01S00206.secart +++|* 00209 M01S00207.secart +++|* DIGESTING RAW LOG(S)... 00210 M01S00208.secart +++|* 00211 M01S00209.secart +++|* ACCOUNT MSG STATISTICS... 00212 M01S00210.secart +++|* 00213 M01S00211.secart +++|* TRACE TABLE PRINTOUT... 00214 M01S00212.secart +++|* 00215 M01S00213.secart +++|* SORTING OUT JOBS... 00216 M01S00214.secart +++|* 00217 M01S00215.secart +++|* EXTRACTING SELECTED JOBS... 00218 M01S00216.secart +++|* 00219 M01S00217.secart +++|* SECART COMPLETED. 00220 M01S00218.secart +++|* 00221 M01S00219.secart +++|* ALL ERROR MESSAGES ARE OFFSET WITH THREE LEADING BLANKS AND 00222 M01S00220.secart +++|* FLAGGED WITH ASTERISKS TO STAND OUT IN THE DAYFILE SEQUENCE. 00223 M01S00221.secart +++|* ERROR MESSAGES LEADING TO TERMINATION ALSO HAVE TRAILING 00224 M01S00222.secart +++|* ASTERISKS. ERROR MESSAGES AND EXPLANATIONS ARE: 00225 M01S00223.secart +++|* 00226 M01S00224.secart +++|* *** SECART TERMINATED. 00227 M01S00225.secart +++|* 00228 M01S00226.secart +++|* ABNORMAL *SECART* TERMINATION. PRECEEDING MESSAGE 00229 M01S00227.secart +++|* IDENTIFIES CAUSE. 00230 M01S00228.secart +++|* 00231 M01S00229.secart +++|* *** DIRECTIVE ERROR(S). 00232 M01S00230.secart +++|* 00233 M01S00231.secart +++|* SEE PRINTOUT FOR ERRORS. 00234 M01S00232.secart +++|* 00235 M01S00233.secart +++|* *** [LFN] NOT RAW ACCOUNT LOG. 00236 M01S00234.secart +++|* 00237 M01S00235.secart +++|* FIRST AND/OR SECOND LINES NOT IN DATE/TIME FORMAT. 00238 M01S00236.secart +++|* 00239 M01S00237.secart +++|* *** [LFN] NOT RAW DAYFILE LOG. 00240 M01S00238.secart +++|* 00241 M01S00239.secart +++|* FIRST AND/OR SECOND LINES NOT IN DATE/TIME FORMAT. 00242 M01S00240.secart +++|* 00243 M01S00241.secart +++|* *** LIST FILE REQUIRED. 00244 M01S00242.secart +++|* 00245 M01S00243.secart +++|* *L=0* PARAMETER IGNORED. 00246 M01S00244.secart +++|* 00247 M01S00245.secart +++|* *** LOG DATES MISMATCH. 00248 M01S00246.secart +++|* 00249 M01S00247.secart +++|* *ACCOUNT* VS *DAYFILE* SYSTEM DATE MISMATCH. LOG 00250 M01S00248.secart +++|* TIME PERIODS MAY NOT OVERLAP. 00251 M01S00249.secart +++|* 00252 M01S00250.secart +++|* *** MSGID SEQUENCE ERROR(S). 00253 M01S00251.secart +++|* 00254 M01S00252.secart +++|* *ACCOUNT* MESSAGE ID TABLE (*M*) OUT OF SEQUENCE. 00255 M01S00253.secart +++|* 00256 M01S00254.secart +++|* *** MSGID TABLE FULL *** 00257 M01S00255.secart +++|* 00258 M01S00256.secart +++|* *ACCOUNT* MESSAGE ID FILE EXCEEDS TABLE SIZE. 00259 M01S00257.secart +++|* 00260 M01S00258.secart +++|* *** SYSTEM ID MISMATCH *** 00261 M01S00259.secart +++|* 00262 M01S00260.secart +++|* *ACCOUNT* VS *DAYFILE* SYSTEM TITLE/VERSION 00263 M01S00261.secart +++|* MISMATCH. LOGS NOT FROM SAME SYSTEM. 00264 M01S00262.secart +++|* 00265 M01S00263.secart +++|* *** TRACE TABLE FULL *** 00266 M01S00264.secart +++|* 00267 M01S00265.secart +++|* JSN TRACE TABLE OVERFLOW. MAY BE DUE TO COMBINING 00268 M01S00266.secart +++|* TABLE FROM PREVIOUS LOGS. 00269 M01S00267.secart +++|* 00270 M01S00268.secart +++|* *** TRACE TABLE SEQUENCE ERROR(S). 00271 M01S00269.secart +++|* 00272 M01S00270.secart +++|* LOADED TRACE TABLE (*T*) NOT IN ASCENDING D.JSN 00273 M01S00271.secart +++|* SEQUENCE. 00274 M01S00272.secart +++|* 00275 M01S00273.secart +++|* *** UNRECOGNIZED PARAMETER: [PARAM] 00276 M01S00274.secart +++|* 00277 M01S00275.secart +++|* PROGRAM CALL PARAMETER NOT RECOGNIZED. 00278 M01S00276.secart +++| 00279 M01S00277.secart +++|*** PRINTOUT MESSAGES. 00280 M01S00278.secart +++|* 00281 M01S00279.secart +++|* INFORMATIVE AND ERROR MESSAGES INSERTED IN THE PRINTOUT ARE 00282 M01S00280.secart +++|* FLAGGED WITH === AND *** RESPECTIVELY. ALL ARE INDENTED THREE 00283 M01S00281.secart +++|* SPACES. A FEW INFORMATIVE MESSAGES ARE ALSO E X P A N D E D 00284 M01S00282.secart +++|* SO AS TO STAND OUT WHEN EMBEDDED IN LENGTHY SERIAL PRINTOUT. 00285 M01S00283.secart +++|* 00286 M01S00284.secart +++|* === EOF ACCOUNT LOG [LFN], NNNN MESSAGES (OR) 00287 M01S00285.secart +++|* === EOF DAYFILE LOG [LFN], NNNN MESSAGES 00288 M01S00286.secart +++|* 00289 M01S00287.secart +++|* MARKS LOG END-OF-FILE POINT AND NUMBER OF MESSAGES. 00290 M01S00288.secart +++|* 00291 M01S00289.secart +++|* === JSN NOT FOUND: [JSN] YY/MM/DD. HH.MM.SS. 00292 M01S00290.secart +++|* 00293 M01S00291.secart +++|* ORIGINAL JSN NOT IN TRACE TABLE. JOB ATTRIBUTES 00294 M01S00292.secart +++|* NOT RECOVERED. 00295 M01S00293.secart +++|* 00296 M01S00294.secart +++|* === JSN RECOVERED [D.JSN] 00297 M01S00295.secart +++|* 00298 M01S00296.secart +++|* JOB RECOVERY LINKED TO ORIGINAL JSN IN TRACE TABLE. 00299 M01S00297.secart +++|* JOB ATTRIBUTES RECOVERED VIA TRACE TABLE. 00300 M01S00298.secart +++|* 00301 M01S00299.secart +++|* ========= L E V E L 0 D / S ( X ) ========= 00302 M01S00300.secart +++|* 00303 M01S00301.secart +++|* INITIAL LEVEL 0 D/S RESETS JSN SEQUENCE. X IS NEW 00304 M01S00302.secart +++|* *SECART*-GENERATED PREFIX FOR SUBSEQUENT JOBS. 00305 M01S00303.secart +++|* 00306 M01S00304.secart +++|* ========= S A M P L E L I M I T ========= 00307 M01S00305.secart +++|* 00308 M01S00306.secart +++|* UNIT JOB PRINTOUT TRUNCATED PER *LIMIT* DIRECTIVE. 00309 M01S00307.secart +++|* 00310 M01S00308.secart +++|* *** TIME ARGUMENT ERROR. 00311 M01S00309.secart +++|* 00312 M01S00310.secart +++|* ERROR IN VALUE OR SYNTAX FOR *TIME* DIRECTIVE. 00313 M01S00311.secart +++|* 00314 M01S00312.secart +++|* ====== TIME WINDOW START ====== 00315 M01S00313.secart +++|* ====== TIME WINDOW END ====== 00316 M01S00314.secart +++|* 00317 M01S00315.secart +++|* INDICATES START/END OF SPECIFIED TIME WINDOW. 00318 M01S00316.secart +++|* 00319 M01S00317.secart +++|* *** TOO MANY ARGUMENTS, EXCESS IGNORED. 00320 M01S00318.secart +++|* 00321 M01S00319.secart +++|* REPETITIVE ARGUMENT LIST EXCEEDS TABLE SIZE. 00322 M01S00320.secart +++|* 00323 M01S00321.secart +++|* *** UNRECOGNIZED DIRECTIVE *** 00324 M01S00322.secart +++|* 00325 M01S00323.secart +++|* DIRECTIVE NOT RECOGNIZED - MISPELLED, ETC. 00326 M01S00324.secart +++| 00327 M01S00325.secart +++|** INTERNAL OVERVIEW. 00328 M01S00326.secart +++|* 00329 M01S00327.secart +++|* *SECART* IS WRITTEN IN FORTRAN FOR COMPILATION VIA FTN5. IT 00330 M01S00328.secart +++|* CONSISTS OF A MAIN PROGRAM, PRIMARY SUBROUTINES, AND SUPPORT 00331 M01S00329.secart +++|* SUBROUTINES ORGANIZED IN A TOP-DOWN STRUCTURE. THE MAIN 00332 M01S00330.secart +++|* PROGRAM ESTABLISHES OVERALL PROCESSING SEQUENCE AND CONTROL. 00333 M01S00331.secart +++|* EACH PRIMARY SUBROUTINE ISOLATES RESPONSIBILITY FOR A MAJOR 00334 M01S00332.secart +++|* PROGRAM OBJECTIVE TO A SINGLE CODE MODULE AND SUPPORTS 00335 M01S00333.secart +++|* SEVERAL RELATED FUNCTIONS VIA MULTIPLE ENTRY POINTS. LOW 00336 M01S00334.secart +++|* LEVEL SUPPORT SUBROUTINES PROVIDE COMMON/REDUNDANT FUNCTIONS 00337 M01S00335.secart +++|* USED BY ONE OR MORE SUBROUTINES AND/OR THE MAIN PROGRAM. 00338 M01S00336.secart +++|* THE LIST OF MODULES AND [ENTRY POINTS] , INDENTED TO SHOW 00339 M01S00337.secart +++|* STRUCTURE, INCLUDES: 00340 M01S00338.secart +++|* 00341 M01S00339.secart +++|* SECART - MAIN PROGRAM. 00342 M01S00340.secart +++|* 00343 M01S00341.secart +++|* DIRECT - DIRECTIVES AND SELECTION FUNCTIONS. 00344 M01S00342.secart +++|* [TMCHECK] - TIME WINDOW CHECKING. 00345 M01S00343.secart +++|* [MSCHECK] - DAYFILE MESSAGE CHECK. 00346 M01S00344.secart +++|* [PICKJSN] - PICK JOBS BY JSN. 00347 M01S00345.secart +++|* [PICKUJN] - PICK JOBS BY UJN. 00348 M01S00346.secart +++|* [PICKUSR] - PICK JOBS BY USER, FAMILY NAME. 00349 M01S00347.secart +++|* [PICKTRM] - PICK JOBS BY TERMINAL NAME. 00350 M01S00348.secart +++|* 00351 M01S00349.secart +++|* TMARG - REDUNDANT TIME ARGUMENT DIRECTIVE CRACKING. 00352 M01S00350.secart +++|* 00353 M01S00351.secart +++|* DFSCAN - *DAYFILE* LOG I/O AND MESSAGE PROCESSING. 00354 M01S00352.secart +++|* [DFMSG] - ROUTINE MESSAGE PROCESSING. 00355 M01S00353.secart +++|* 00356 M01S00354.secart +++|* ACSCAN - *ACCOUNT* LOG I/O AND MESSAGE PROCESSING. 00357 M01S00355.secart +++|* [ACMSG] - ROUTINE MESSAGE PROCESSING. 00358 M01S00356.secart +++|* 00359 M01S00357.secart +++|* LOGTEST - CHECK FORMAT, EXTRACT START DATE/TIME. 00360 M01S00358.secart +++|* 00361 M01S00359.secart +++|* JSNLOAD - JSN TRACE TABLE MANAGEMENT. 00362 M01S00360.secart +++|* [JSNTRAK] - MATCH/COLLECT JSN-S, JOB ATTRIBUTES. 00363 M01S00361.secart +++|* [JSNLOOK] - JSN MATCH ONLY. 00364 M01S00362.secart +++|* [JSNLVL0] - HANDLE LEVEL 0 D/S EVENTS W/O DUPLICATION. 00365 M01S00363.secart +++|* [JSNLIST] - TRACE TABLE SORT (OPTIONAL) AND PRINTOUT. 00366 M01S00364.secart +++|* 00367 M01S00365.secart +++|* AMSLOAD - *ACCOUNT* MESSAGE ID TABLE AND STATISTICS. 00368 M01S00366.secart +++|* [AMSMARK] - FLAG ID-S FOR SELECTION. 00369 M01S00367.secart +++|* [AMSTEST] - ID MATCH, SELECTION TEST, TABULATION. 00370 M01S00368.secart +++|* [AMSLIST] - MESSAGE ID STATISTICS PRINTOUT. 00371 M01S00369.secart +++|* 00372 M01S00370.secart +++|* PARSE - COMMON TEXT PARSER. 00373 M01S00371.secart +++| 00374 M01S00372.secart +++|** COMMON BLOCKS. 00375 M01S00373.secart +++|* 00376 M01S00374.secart +++|* COMMON BLOCKS PROVIDE THE PRIMARY MEANS OF SHARING 00377 M01S00375.secart +++|* INFORMATION BETWEEN MODULES. AS WITH CODE MODULES, THEY ARE 00378 M01S00376.secart +++|* ORGANIZED BY FUNCTIONAL AREA AND EACH IS DEFINED ONLY IN 00379 M01S00377.secart +++|* THOSE MODULES WHICH NEED ACCESS TO ONE OR MORE VARIABLES IN 00380 M01S00378.secart +++|* THAT BLOCK. OF NECESSITY, EACH BLOCK CONTAINS EXCLUSIVELY 00381 M01S00379.secart +++|* EITHER NUMERIC OR TEXT STRING VARIABLES WHICH SIGNIFICANTLY 00382 M01S00380.secart +++|* INFLUENCES ORGANIZATION. DEFINED COMMON BLOCKS ARE: 00383 M01S00381.secart +++|* 00384 M01S00382.secart +++|* /ACL/ STRINGS, *ACCOUNT* LOG SPECIFIC VARIABLES. 00385 M01S00383.secart +++|* 00386 M01S00384.secart +++|* /CTL/ NUMERIC, PROGRAM-WIDE VARIABLES & PARAMETERS. 00387 M01S00385.secart +++|* 00388 M01S00386.secart +++|* /DFL/ STRINGS, *DAYFILE* LOG SPECIFIC VARIABLES. 00389 M01S00387.secart +++|* 00390 M01S00388.secart +++|* /SRT/ STRINGS, TRACE TABLE SORT KEY IDENTIFIERS. 00391 M01S00389.secart +++|* 00392 M01S00390.secart +++|* /SYS/ STRINGS, PROGRAM-WIDE VARIABLES. 00393 M01S00391.secart +++|* 00394 M01S00392.secart +++|* /TRC/ STRINGS, JSN TRACE TABLE. 00395 M01S00393.secart +++| 00396 M01S00394.secart +++|** SPECIAL TECHNIQUES. 00397 M01S00395.secart +++|* 00398 M01S00396.secart +++|* THE PROGRAM INITIALIZATION SEQUENCE IS DESIGNED TO AVOID 00399 M01S00397.secart +++|* CONFLICTS BETWEEN DIRECTIVES AND INFORMATION CONTAINED IN 00400 M01S00398.secart +++|* DATA TABLE FILES, AND TO AUTOMATICALLY ACCOMMODATE OMMISSION 00401 M01S00399.secart +++|* OF INPUT FILES WHICH INDICATE RERUNS VERSUS INITIAL RAW LOGS 00402 M01S00400.secart +++|* PROCESSING RUNS. 00403 M01S00401.secart +++|* 00404 M01S00402.secart +++|* THE USE OF TWO INDEPENDENT SUBROUTINES TO ENCAPSULATE I/O AND 00405 M01S00403.secart +++|* MESSAGE ANALYSIS FOR EACH RAW LOG ALLOWS THE MAIN PROGRAM TO 00406 M01S00404.secart +++|* FOCUS ON SYNCHRONIZATION OF MESSAGES FROM BOTH LOGS INTO A 00407 M01S00405.secart +++|* NEAR CAUSE-AND-EFFECT SEQUENCE FOR SUBSEQUENT PROCESSING. 00408 M01S00406.secart +++| 00409 M01S00407.secart +++|** KNOWN LIMITATIONS. 00410 M01S00408.secart +++|* 00411 M01S00409.secart +++|* THE PROGRAM-S CAPACITY FOR DIRECTIVE ARGUMENTS, MESSAGE ID-S, 00412 M01S00410.secart +++|* UNIQUE JSN-S, AND JSN TRACE TABLE SORT KEYS ARE LIMITED BY 00413 M01S00411.secart +++|* THEIR RESPECTIVE TABLE SIZES AND ULTIMATELY BY OVERALL 00414 M01S00412.secart +++|* PROGRAM SIZE. FOR PERFORMANCE REASONS, NO ATTEMPT HAS BEEN 00415 M01S00413.secart +++|* MADE TO ACCOMMODATE DYNAMIC TABLE MANAGEMENT OR OVERFLOW TO 00416 M01S00414.secart +++|* MASS STORAGE. 00417 M01S00415.secart +++| 00418 M01S00416.secart +++| 00419 M01S00417.secart +++| IMPLICIT INTEGER(A-Z) 00420 M01S00418.secart +++| 00421 M01S00419.secart +++| PARAMETER (MXJ=1000) 00422 M01S00420.secart +++|* SIZE OF JSN TRACE TABLE. 00423 M01S00421.secart +++| 00424 M01S00422.secart +++| PARAMETER (NK=8) 00425 M01S00423.secart +++|* NUMBER OF COMMAND KEYWORD PARAMETERS. 00426 M01S00424.secart +++| 00427 M01S00425.secart +++| EQUIVALENCE (ACSDTG,ACSDATE) 00428 M01S00426.secart +++|* /ACL/ ACSDTG*20 = ACSDATE*10 // ACSTIME*10. 00429 M01S00427.secart +++| 00430 M01S00428.secart +++| EQUIVALENCE (ACEDTG,ACEDATE) 00431 M01S00429.secart +++|* /ACL/ ACEDTG*20 = ACEDATE*10 // ACETIME*10. 00432 M01S00430.secart +++| 00433 M01S00431.secart +++| EQUIVALENCE (ACSYSID,ACTITLE) 00434 M01S00432.secart +++|* /ACL/ ACSYSID*60 = ACTITLE*40//ACVERSN*20. 00435 M01S00433.secart +++| 00436 M01S00434.secart +++| EQUIVALENCE (DFSDTG,DFSDATE) 00437 M01S00435.secart +++|* /DFL/ DFSDTG*20 = DFSDATE*10 // DFSTIME*10. 00438 M01S00436.secart +++| 00439 M01S00437.secart +++| EQUIVALENCE (DFEDTG,DFEDATE) 00440 M01S00438.secart +++|* /DFL/ DFEDTG*20 = DFEDATE*10 // DFETIME*10. 00441 M01S00439.secart +++| 00442 M01S00440.secart +++| EQUIVALENCE (DFSYSID,DFTITLE) 00443 M01S00441.secart +++|* /DFL/ DFSYSID*60 = DFTITLE*40//DFVERSN*20. 00444 M01S00442.secart +++| 00445 M01S00443.secart +++| CHARACTER*10 ACEDATE 00446 M01S00444.secart +++|* /ACL/ (EQV) ACCOUNT LOG END DATE. 00447 M01S00445.secart +++| 00448 M01S00446.secart +++| CHARACTER*10 ACETIME 00449 M01S00447.secart +++|* /ACL/ (EQV) ACCOUNT LOG END TIME. 00450 M01S00448.secart +++| 00451 M01S00449.secart +++| CHARACTER*20 ACEDTG 00452 M01S00450.secart +++|* /ACL/ ACCOUNT LOG END DATE/TIME GROUP. 00453 M01S00451.secart +++| 00454 M01S00452.secart +++| LOGICAL ACEOF 00455 M01S00453.secart +++|* /CTL/ ACCOUNT LOG EOF FLAG. 00456 M01S00454.secart +++| 00457 M01S00455.secart +++| INTEGER ACIN 00458 M01S00456.secart +++|* /CTL/ ACCOUNT LOG MESSAGE COUNTER. 00459 M01S00457.secart +++| 00460 M01S00458.secart +++| CHARACTER*10 ACSDATE 00461 M01S00459.secart +++|* /ACL/ (EQV) ACCOUNT LOG START DATE. 00462 M01S00460.secart +++| 00463 M01S00461.secart +++| CHARACTER*20 ACSDTG 00464 M01S00462.secart +++|* /ACL/ ACCOUNT LOG START DATE/TIME GROUP. 00465 M01S00463.secart +++| 00466 M01S00464.secart +++| CHARACTER*10 ACSTIME 00467 M01S00465.secart +++|* /ACL/ (EQV) ACCOUNT LOG START TIME. 00468 M01S00466.secart +++| 00469 M01S00467.secart +++| CHARACTER*60 ACSYSID 00470 M01S00468.secart +++|* /ACL/ ACCOUNT LOG SYSTEM TITLE/VERSION. 00471 M01S00469.secart +++| 00472 M01S00470.secart +++| CHARACTER*40 ACTITLE 00473 M01S00471.secart +++|* /ACL/ ACCOUNT LOG SYSTEM TITLE. 00474 M01S00472.secart +++| 00475 M01S00473.secart +++| CHARACTER*100 ACTXT 00476 M01S00474.secart +++|* /ACL/ ACCOUNT LOG CURRENT MESSAGE TEXT. 00477 M01S00475.secart +++| 00478 M01S00476.secart +++| CHARACTER*20 ACVERSN 00479 M01S00477.secart +++|* /ACL/ ACCOUNT LOG SYSTEM VERSION. 00480 M01S00478.secart +++| 00481 M01S00479.secart +++| CHARACTER*10 DATE 00482 M01S00480.secart +++|* TYPING FOR FTN5 FUNCTION. 00483 M01S00481.secart +++| 00484 M01S00482.secart +++| CHARACTER*7 DEF(NK) 00485 M01S00483.secart +++|* *SECART* COMMAND KEYWORD DEFAULTS. 00486 M01S00484.secart +++| 00487 M01S00485.secart +++| CHARACTER*10 DFEDATE 00488 M01S00486.secart +++|* /DFL/ (EQV) DAYFILE LOG END DATE. 00489 M01S00487.secart +++| 00490 M01S00488.secart +++| CHARACTER*20 DFEDTG 00491 M01S00489.secart +++|* /DFL/ DAYFILE LOG END DATE/TIME GROUP. 00492 M01S00490.secart +++| 00493 M01S00491.secart +++| CHARACTER*10 DFETIME 00494 M01S00492.secart +++|* /DFL/ (EQV) DAYFILE LOG END TIME. 00495 M01S00493.secart +++| 00496 M01S00494.secart +++| LOGICAL DFEOF 00497 M01S00495.secart +++|* /CTL/ DAYFILE LOG EOF FLAG. 00498 M01S00496.secart +++| 00499 M01S00497.secart +++| INTEGER DFIN 00500 M01S00498.secart +++|* /CTL/ DAYFILE LOG MESSAGE COUNTER. 00501 M01S00499.secart +++| 00502 M01S00500.secart +++| CHARACTER*10 DFSDATE 00503 M01S00501.secart +++|* /DFL/ (EQV) DAYFILE LOG START DATE. 00504 M01S00502.secart +++| 00505 M01S00503.secart +++| CHARACTER*20 DFSDTG 00506 M01S00504.secart +++|* /DFL/ DAYFILE LOG START DATE/TIME GROUP. 00507 M01S00505.secart +++| 00508 M01S00506.secart +++| CHARACTER*10 DFSTIME 00509 M01S00507.secart +++|* /DFL/ (EQV) DAYFILE LOG START TIME. 00510 M01S00508.secart +++| 00511 M01S00509.secart +++| CHARACTER*60 DFSYSID 00512 M01S00510.secart +++|* /DFL/ DAYFILE LOG SYSTEM TITLE/VERSION. 00513 M01S00511.secart +++| 00514 M01S00512.secart +++| CHARACTER*40 DFTITLE 00515 M01S00513.secart +++|* /DFL/ DAYFILE LOG SYSTEM TITLE. 00516 M01S00514.secart +++| 00517 M01S00515.secart +++| CHARACTER*20 DFVERSN 00518 M01S00516.secart +++|* /DFL/ DAYFILE LOG SYSTEM VERSION. 00519 M01S00517.secart +++| 00520 M01S00518.secart +++| CHARACTER*100 DFTXT 00521 M01S00519.secart +++|* /DFL/ DAYFILE LOG CURRENT MESSAGE TEXT. 00522 M01S00520.secart +++| 00523 M01S00521.secart +++| CHARACTER*1 DSU 00524 M01S00522.secart +++|* /TRC/ DEADSTART UNIQUE PREFIX CODE. 00525 M01S00523.secart +++| 00526 M01S00524.secart +++| CHARACTER*7 FN(MXJ) 00527 M01S00525.secart +++|* /TRC/ FAMILY NAME COLUMN IN TRACE TABLE. 00528 M01S00526.secart +++| 00529 M01S00527.secart +++| CHARACTER*40 HDR 00530 M01S00528.secart +++|* /SYS/ PRINTOUT HEADER TEXT. 00531 M01S00529.secart +++| 00532 M01S00530.secart +++| INTEGER IPAGE 00533 M01S00531.secart +++|* LOCAL PRINTOUT PAGE COUNTER. 00534 M01S00532.secart +++| 00535 M01S00533.secart +++| INTEGER JBLIMIT 00536 M01S00534.secart +++|* /CTL/ UNIT JOB PRINTOUT MESSAGE LIMIT. 00537 M01S00535.secart +++| 00538 M01S00536.secart +++| CHARACTER*1 JC(MXJ) 00539 M01S00537.secart +++|* /TRC/ JOB CLASS COLUMN IN TRACE TABLE. 00540 M01S00538.secart +++| 00541 M01S00539.secart +++| CHARACTER*7 JN(MXJ) 00542 M01S00540.secart +++|* /TRC/ UJN COLUMN IN TRACE TABLE. 00543 M01S00541.secart +++| 00544 M01S00542.secart +++| CHARACTER*6 JS(MXJ) 00545 M01S00543.secart +++|* /TRC/ D.JSN COLUMN IN TRACE TABLE. 00546 M01S00544.secart +++| 00547 M01S00545.secart +++| CHARACTER*6 JSN 00548 M01S00546.secart +++|* TEMP - D.JSN VARIABLE. 00549 M01S00547.secart +++| 00550 M01S00548.secart +++| CHARACTER*7 KWD(NK) 00551 M01S00549.secart +++|* *SECART* COMMAND KEYWORD LIST. 00552 M01S00550.secart +++| 00553 M01S00551.secart +++| CHARACTER*7 LFN(NK) 00554 M01S00552.secart +++|* LFN LIST BUILT FROM *SECART* COMMAND. 00555 M01S00553.secart +++| 00556 M01S00554.secart +++| CHARACTER*5 MK(MXJ) 00557 M01S00555.secart +++|* /TRC/ JOB SELECTION MARKS IN TRACE TABLE. 00558 M01S00556.secart +++| 00559 M01S00557.secart +++| INTEGER ML(2,MXJ) 00560 M01S00558.secart +++|* /CTL/ DFL/AFL MSG COUNTS FOR TRACE TABLE. 00561 M01S00559.secart +++| 00562 M01S00560.secart +++| INTEGER NJ 00563 M01S00561.secart +++|* /CTL/ CURRENT NUMBER JOBS IN TRACE TABLE. 00564 M01S00562.secart +++| 00565 M01S00563.secart +++| CHARACTER*7 P 00566 M01S00564.secart +++|* TEMP USED IN *SECART* COMMAND PROCESSING. 00567 M01S00565.secart +++| 00568 M01S00566.secart +++| CHARACTER*10 PGM 00569 M01S00567.secart +++|* /SYS/ *SECART* VERSION ID FOR PRINTOUTS. 00570 M01S00568.secart +++| 00571 M01S00569.secart +++| LOGICAL PICKED 00572 M01S00570.secart +++|* TEMP FLAG USED IN UNIT JOB PRINTOUT. 00573 M01S00571.secart +++| 00574 M01S00572.secart +++| CHARACTER*10 RUNDT 00575 M01S00573.secart +++|* /SYS/ *SECART* RUN DATE FOR PRINTOUTS. 00576 M01S00574.secart +++| 00577 M01S00575.secart +++| CHARACTER*10 RUNTM 00578 M01S00576.secart +++|* /SYS/ *SECART* RUN TIME FOR PRINTOUTS. 00579 M01S00577.secart +++| 00580 M01S00578.secart +++| CHARACTER*3 SKY(12) 00581 M01S00579.secart +++|* /SRT/ TRACE TABLE SORT KEYS. 00582 M01S00580.secart +++| 00583 M01S00581.secart +++| CHARACTER*20 TE(MXJ) 00584 M01S00582.secart +++|* /TRC/ JOB DATE/TIME END IN TRACE TABLE. 00585 M01S00583.secart +++| 00586 M01S00584.secart +++| CHARACTER*10 TIME 00587 M01S00585.secart +++|* TYPING FOR FTN5 FUNCTION. 00588 M01S00586.secart +++| 00589 M01S00587.secart +++| CHARACTER*7 TN(MXJ) 00590 M01S00588.secart +++|* /TRC/ JOB TERMINAL NAME IN TRACE TABLE. 00591 M01S00589.secart +++| 00592 M01S00590.secart +++| CHARACTER*20 TS(MXJ) 00593 M01S00591.secart +++|* /TRC/ JOB DATE/TIME START IN TRACE TABLE. 00594 M01S00592.secart +++| 00595 M01S00593.secart +++| CHARACTER*6 UJSN 00596 M01S00594.secart +++|* TEMP - D.JSN VARIABLE. 00597 M01S00595.secart +++| 00598 M01S00596.secart +++| CHARACTER*7 UN(MXJ) 00599 M01S00597.secart +++|* /TRC/ JOB USERNAME IN TRACE TABLE. 00600 M01S00598.secart +++| 00601 M01S00599.secart +++| CHARACTER*7 V 00602 M01S00600.secart +++|* TEMP - VALUE USED IN COMMAND PROCESSING. 00603 M01S00601.secart +++| 00604 M01S00602.secart +++|* ACCOUNT LOG SPECIFIC VARIABLES. 00605 M01S00603.secart +++| 00606 M01S00604.secart +++| COMMON /ACL/ ACSDATE 00607 M01S00605.secart +++| COMMON /ACL/ ACSTIME 00608 M01S00606.secart +++| COMMON /ACL/ ACEDATE 00609 M01S00607.secart +++| COMMON /ACL/ ACETIME 00610 M01S00608.secart +++| COMMON /ACL/ ACTITLE 00611 M01S00609.secart +++| COMMON /ACL/ ACVERSN 00612 M01S00610.secart +++| COMMON /ACL/ ACTXT 00613 M01S00611.secart +++| 00614 M01S00612.secart +++|* GLOBAL NUMERIC/LOGICAL VARIABLES AND PARAMETERS. 00615 M01S00613.secart +++| 00616 M01S00614.secart +++| COMMON /CTL/ NJ 00617 M01S00615.secart +++| COMMON /CTL/ ACIN 00618 M01S00616.secart +++| COMMON /CTL/ DFIN 00619 M01S00617.secart +++| COMMON /CTL/ ACEOF 00620 M01S00618.secart +++| COMMON /CTL/ DFEOF 00621 M01S00619.secart +++| COMMON /CTL/ ML 00622 M01S00620.secart +++| COMMON /CTL/ JBLIMIT 00623 M01S00621.secart +++| 00624 M01S00622.secart +++|* DAYFILE LOG SPECIFIC VARIABLES. 00625 M01S00623.secart +++| 00626 M01S00624.secart +++| COMMON /DFL/ DFSDATE 00627 M01S00625.secart +++| COMMON /DFL/ DFSTIME 00628 M01S00626.secart +++| COMMON /DFL/ DFEDATE 00629 M01S00627.secart +++| COMMON /DFL/ DFETIME 00630 M01S00628.secart +++| COMMON /DFL/ DFTITLE 00631 M01S00629.secart +++| COMMON /DFL/ DFVERSN 00632 M01S00630.secart +++| COMMON /DFL/ DFTXT 00633 M01S00631.secart +++| 00634 M01S00632.secart +++|* JSN TRACE TABLE SORT PARAMETERS. 00635 M01S00633.secart +++| 00636 M01S00634.secart +++| COMMON /SRT/ SKY 00637 M01S00635.secart +++| 00638 M01S00636.secart +++|* GLOBAL STRING VARIABLES. 00639 M01S00637.secart +++| 00640 M01S00638.secart +++| COMMON /SYS/ HDR 00641 M01S00639.secart +++| COMMON /SYS/ PGM 00642 M01S00640.secart +++| COMMON /SYS/ RUNDT 00643 M01S00641.secart +++| COMMON /SYS/ RUNTM 00644 M01S00642.secart +++| 00645 M01S00643.secart +++|* JSN TRACE TABLE STORAGE. 00646 M01S00644.secart +++| 00647 M01S00645.secart +++| COMMON /TRC/ DSU 00648 M01S00646.secart +++| COMMON /TRC/ MK 00649 M01S00647.secart +++| COMMON /TRC/ JN 00650 M01S00648.secart +++| COMMON /TRC/ JS 00651 M01S00649.secart +++| COMMON /TRC/ JC 00652 M01S00650.secart +++| COMMON /TRC/ TS 00653 M01S00651.secart +++| COMMON /TRC/ TE 00654 M01S00652.secart +++| COMMON /TRC/ FN 00655 M01S00653.secart +++| COMMON /TRC/ UN 00656 M01S00654.secart +++| COMMON /TRC/ TN 00657 M01S00655.secart +++| 00658 M01S00656.secart +++| DATA ACEDTG /' '/ 00659 M01S00657.secart +++| DATA ACEOF /.FALSE./ 00660 M01S00658.secart +++| DATA ACIN /0/ 00661 M01S00659.secart +++| DATA ACSDTG /' '/ 00662 M01S00660.secart +++| DATA ACSYSID /' '/ 00663 M01S00661.secart +++| DATA DFEDTG /' '/ 00664 M01S00662.secart +++| DATA DFEOF /.FALSE./ 00665 M01S00663.secart +++| DATA DFIN /0/ 00666 M01S00664.secart +++| DATA DFSDTG /' '/ 00667 M01S00665.secart +++| DATA DFSYSID /' '/ 00668 M01S00666.secart +++| DATA DSU /'A'/ 00669 M01S00667.secart +++| DATA FN /MXJ*' '/ 00670 M01S00668.secart +++| DATA IPAGE /1/ 00671 M01S00669.secart +++| DATA JBLIMIT /99999/ 00672 M01S00670.secart +++| DATA JC /MXJ*' '/ 00673 M01S00671.secart +++| DATA JN /MXJ*' '/ 00674 M01S00672.secart +++| DATA JS /MXJ*' '/ 00675 M01S00673.secart +++| DATA MK /MXJ*' '/ 00676 M01S00674.secart +++| DATA NJ /0/ 00677 M01S00675.secart +++| DATA PGM /' SECART V1'/ 00678 M01S00676.secart +++| DATA SKY /12*' '/ 00679 M01S00677.secart +++| DATA TE /MXJ*' '/ 00680 M01S00678.secart +++| DATA TN /MXJ*' '/ 00681 M01S00679.secart +++| DATA TS /MXJ*' '/ 00682 M01S00680.secart +++| DATA UN /MXJ*' '/ 00683 M01S00681.secart +++| DATA (KWD(I) ,LFN(I) ,DEF(I),I=1,NK)/ 00684 M01S00682.secart +++| . 'D', '0', 'DFLOG', 00685 M01S00683.secart +++| . 'A', '0', 'ACLOG', 00686 M01S00684.secart +++| . 'C', '0', 'COMBO', 00687 M01S00685.secart +++| . 'J', '0', 'JOBS', 00688 M01S00686.secart +++| . 'M', '0', 'MSGID', 00689 M01S00687.secart +++| . 'T', '0', 'TRACE', 00690 M01S00688.secart +++| . 'I', 'INPUT', 'INPUT', 00691 M01S00689.secart +++| . 'L', 'OUTPUT', 'OUTPUT'/ 00692 M01S00690.secart +++| 00693 M01S00691.secart +++|* ---------------------------------------------------------------------- 00694 M01S00692.secart +++|* INITIALIZATION PHASE 00695 M01S00693.secart +++|* ---------------------------------------------------------------------- 00696 M01S00694.secart +++| 00697 M01S00695.secart +++| RUNDT=DATE() 00698 M01S00696.secart +++| RUNTM=TIME() 00699 M01S00697.secart +++| 00700 M01S00698.secart +++|* PROCESS EXECUTION PARAMETERS. 00701 M01S00699.secart +++| 00702 M01S00700.secart +++| 100 CALL GETPARM(P,V,J) 00703 M01S00701.secart +++| IF (J.LT.0) GOTO 130 00704 M01S00702.secart +++| DO 110 I=1,NK 00705 M01S00703.secart +++| IF (P.EQ.KWD(I)) GOTO 120 00706 M01S00704.secart +++| 110 CONTINUE 00707 M01S00705.secart +++| CALL REMARK(' *** UNRECOGNIZED PARAMETER: '//P) 00708 M01S00706.secart +++| GOTO 100 00709 M01S00707.secart +++| 00710 M01S00708.secart +++|* SET TO VALUE OR DEFAULT. 00711 M01S00709.secart +++| 00712 M01S00710.secart +++| 120 IF (J.EQ.1) THEN 00713 M01S00711.secart +++| LFN(I)=DEF(I) 00714 M01S00712.secart +++| ELSE 00715 M01S00713.secart +++| IF (I.EQ.8 .AND. V.EQ.'0') THEN 00716 M01S00714.secart +++| CALL REMARK(' *** LIST FILE REQUIRED.') 00717 M01S00715.secart +++| ELSE 00718 M01S00716.secart +++| LFN(I)=V 00719 M01S00717.secart +++| ENDIF 00720 M01S00718.secart +++| ENDIF 00721 M01S00719.secart +++| GOTO 100 00722 M01S00720.secart +++| 00723 M01S00721.secart +++|* FIRST, OPEN LIST OUTPUT FILE. 00724 M01S00722.secart +++| 00725 M01S00723.secart +++| 130 OPEN (8,FILE=LFN(8)) 00726 M01S00724.secart +++| 00727 M01S00725.secart +++|* SECOND, LOAD ACCOUNT LOG MESSAGE IDENTIFIERS, IF ANY, 00728 M01S00726.secart +++|* BEFORE DIRECTIVES TO AVOID AMNESIA PROBLEM. 00729 M01S00727.secart +++| 00730 M01S00728.secart +++| IF (LFN(5).NE.'0') THEN 00731 M01S00729.secart +++| OPEN (5,FILE=LFN(5)) 00732 M01S00730.secart +++| CALL AMSLOAD 00733 M01S00731.secart +++| CLOSE (5) 00734 M01S00732.secart +++| ENDIF 00735 M01S00733.secart +++| 00736 M01S00734.secart +++|* THIRD, PROCESS DIRECTIVES, IF ANY. 00737 M01S00735.secart +++| 00738 M01S00736.secart +++| IF (LFN(7).NE.'0') THEN 00739 M01S00737.secart +++| CALL REMARK(' READING DIRECTIVES...') 00740 M01S00738.secart +++| HDR='S E C A R T D I R E C T I V E S ' 00741 M01S00739.secart +++| WRITE (8,10) HDR,PGM,RUNDT,RUNTM,IPAGE 00742 M01S00740.secart +++| 10 FORMAT('1',A40,3A10,' PG',I3) 00743 M01S00741.secart +++| OPEN (7,FILE=LFN(7)) 00744 M01S00742.secart +++| CALL DIRECT 00745 M01S00743.secart +++| CLOSE (7) 00746 M01S00744.secart +++| ENDIF 00747 M01S00745.secart +++| 00748 M01S00746.secart +++|* FOURTH, LOAD PREVIOUS JSN TRACE TABLE, IF ANY. 00749 M01S00747.secart +++| 00750 M01S00748.secart +++| IF (LFN(6).NE.'0') THEN 00751 M01S00749.secart +++| CALL REMARK(' LOADING TRACE TABLE...') 00752 M01S00750.secart +++| OPEN (6,FILE=LFN(6)) 00753 M01S00751.secart +++| CALL JSNLOAD 00754 M01S00752.secart +++| CLOSE (6) 00755 M01S00753.secart +++| ENDIF 00756 M01S00754.secart +++| 00757 M01S00755.secart +++|* ---------------------------------------------------------------------- 00758 M01S00756.secart +++|* PHASE 1: MERGE AND SCREEN RAW LOGS, BUILD TRACE TABLE AND PICK JOBS. 00759 M01S00757.secart +++|* ---------------------------------------------------------------------- 00760 M01S00758.secart +++| 00761 M01S00759.secart +++| 00762 M01S00760.secart +++|* PREVIEW EACH LOG TO OBTAIN SYSID, START DATE/TIME GROUP. 00763 M01S00761.secart +++| 00764 M01S00762.secart +++| IF (LFN(1).NE.'0') THEN 00765 M01S00763.secart +++| OPEN (1,FILE=LFN(1)) 00766 M01S00764.secart +++| CALL DFSCAN(LFN(1),*140) 00767 M01S00765.secart +++| ELSE 00768 M01S00766.secart +++| DFEOF=.TRUE. 00769 M01S00767.secart +++| ENDIF 00770 M01S00768.secart +++| 00771 M01S00769.secart +++|* NOW, RAW ACCOUNT LOG. 00772 M01S00770.secart +++| 00773 M01S00771.secart +++| 140 IF (LFN(2).NE.'0') THEN 00774 M01S00772.secart +++| OPEN (2,FILE=LFN(2)) 00775 M01S00773.secart +++| CALL ACSCAN(LFN(2),*150) 00776 M01S00774.secart +++| ELSE 00777 M01S00775.secart +++| ACEOF=.TRUE. 00778 M01S00776.secart +++| ENDIF 00779 M01S00777.secart +++| 00780 M01S00778.secart +++|* CHECK FOR NO RAW LOG INPUT. 00781 M01S00779.secart +++| 00782 M01S00780.secart +++| 150 IF (ACIN+DFIN.EQ.0) GOTO 210 00783 M01S00781.secart +++| IPAGE=IPAGE+1 00784 M01S00782.secart +++| HDR='S C R E E N E D M E S S A G E S' 00785 M01S00783.secart +++| WRITE (8,10) HDR,PGM,RUNDT,RUNTM,IPAGE 00786 M01S00784.secart +++| IF (.NOT.DFEOF) WRITE (8,11) 'DAYFILE',DFSDTG,DFSYSID 00787 M01S00785.secart +++| IF (.NOT.ACEOF) WRITE (8,11) 'ACCOUNT',ACSDTG,ACSYSID 00788 M01S00786.secart +++| 11 FORMAT(5X,A7,' FROM',A20 /5X,'SYSTEM ID: ',A60) 00789 M01S00787.secart +++| 00790 M01S00788.secart +++|* IF BOTH LOGS, CHECK FOR SYSTEM ID OR DATE MISMATCHES. 00791 M01S00789.secart +++| 00792 M01S00790.secart +++| IF (ACIN*DFIN.NE.0) THEN 00793 M01S00791.secart +++| IF (ACSYSID.NE.DFSYSID) THEN 00794 M01S00792.secart +++| CALL REMARK(' *** SYSTEM ID MISMATCH ***') 00795 M01S00793.secart +++| STOP ' *** SECART TERMINATED.' 00796 M01S00794.secart +++| ENDIF 00797 M01S00795.secart +++| IF (ACSDATE.NE.DFSDATE) THEN 00798 M01S00796.secart +++| CALL REMARK(' *** LOG DATES MISMATCH.') 00799 M01S00797.secart +++| ENDIF 00800 M01S00798.secart +++| ENDIF 00801 M01S00799.secart +++| 00802 M01S00800.secart +++|* ANNOTATED LOG DATA MUST BE WRITTEN TO COMBO LOG FILE. 00803 M01S00801.secart +++| 00804 M01S00802.secart +++| IF (LFN(3).EQ.'0') LFN(3)='TAPE3' 00805 M01S00803.secart +++| OPEN (3,FILE=LFN(3)) 00806 M01S00804.secart +++| 00807 M01S00805.secart +++|* RECORD SOURCE LOG IDENTIFICATIONS IN COMPOSITE LOG. 00808 M01S00806.secart +++| 00809 M01S00807.secart +++| IF (DFSDATE.NE.' ') 00810 M01S00808.secart +++| . WRITE (3,13) DFSTIME,'- DAYFILE ',DFSDATE,DFSYSID 00811 M01S00809.secart +++| IF (ACSDATE.NE.' ') 00812 M01S00810.secart +++| . WRITE (3,13) ACSTIME,' +ACCOUNT ',ACSDATE,ACSYSID 00813 M01S00811.secart +++| 13 FORMAT(A10,8X,A12,A10,A60) 00814 M01S00812.secart +++| 00815 M01S00813.secart +++| CALL REMARK(' DIGESTING RAW LOG(S)...') 00816 M01S00814.secart +++| IF (DFEOF) GOTO 170 00817 M01S00815.secart +++| 00818 M01S00816.secart +++|* SYNCHRONIZE PROCESSING AND MERGE LOGS. 00819 M01S00817.secart +++| 00820 M01S00818.secart +++| 160 CALL DFMSG(*180) 00821 M01S00819.secart +++| IF (.NOT.ACEOF .AND. ACEDTG.LT.DFEDTG) GOTO 170 00822 M01S00820.secart +++| GOTO 160 00823 M01S00821.secart +++| 00824 M01S00822.secart +++|* BIAS TO CLUMP DFL MSGS BEFORE ACL MSGS IN SAME SECOND. 00825 M01S00823.secart +++|* SOME ACCOUNT LOG MSID-S TWEAK DTG TO PRECEDE DAYFILE MSG. 00826 M01S00824.secart +++| 00827 M01S00825.secart +++| 170 CALL ACMSG(*190) 00828 M01S00826.secart +++| IF (.NOT.DFEOF .AND. DFEDTG.LE.ACEDTG) GOTO 160 00829 M01S00827.secart +++| GOTO 170 00830 M01S00828.secart +++| 00831 M01S00829.secart +++|* END-OF-FILE DECISIONS. 00832 M01S00830.secart +++| 00833 M01S00831.secart +++| 180 CLOSE (1) 00834 M01S00832.secart +++| IF (.NOT.ACEOF) GOTO 170 00835 M01S00833.secart +++| GOTO 200 00836 M01S00834.secart +++| 00837 M01S00835.secart +++| 190 CLOSE (2) 00838 M01S00836.secart +++| IF (.NOT.DFEOF) GOTO 160 00839 M01S00837.secart +++| 00840 M01S00838.secart +++|* COMPLETED MERGE PASS (BURP!). 00841 M01S00839.secart +++| 00842 M01S00840.secart +++| 200 CLOSE (3) 00843 M01S00841.secart +++| 00844 M01S00842.secart +++|* ---------------------------------------------------------------------- 00845 M01S00843.secart +++|* PHASE 2: INTERMEDIATE PRINTOUTS. 00846 M01S00844.secart +++|* ---------------------------------------------------------------------- 00847 M01S00845.secart +++| 00848 M01S00846.secart +++|* PRINTOUT ACCOUNT MESSAGE STATISTICS. 00849 M01S00847.secart +++| 00850 M01S00848.secart +++| IF (ACIN.GT.0) THEN 00851 M01S00849.secart +++| CALL REMARK(' ACCOUNT MSG STATISTICS...') 00852 M01S00850.secart +++| CALL AMSLIST 00853 M01S00851.secart +++| ENDIF 00854 M01S00852.secart +++| 00855 M01S00853.secart +++|* PRINTOUT JSN/USER/TERMINAL TRACE TABLE (SORT OPTIONAL). 00856 M01S00854.secart +++| 00857 M01S00855.secart +++| 210 IF (NJ.GT.0) THEN 00858 M01S00856.secart +++| CALL REMARK(' TRACE TABLE PRINTOUT...') 00859 M01S00857.secart +++| 00860 M01S00858.secart +++|* UNIT 6 FILE REQUIRED FOR TRACE TABLE OUTPUT. 00861 M01S00859.secart +++| 00862 M01S00860.secart +++| IF (LFN(6).EQ.'0') LFN(6)='TAPE6' 00863 M01S00861.secart +++| OPEN (6,FILE=LFN(6)) 00864 M01S00862.secart +++| OPEN (9,STATUS='SCRATCH') 00865 M01S00863.secart +++| CALL JSNLIST(LFN(6)) 00866 M01S00864.secart +++| CLOSE (6) 00867 M01S00865.secart +++| CLOSE (9) 00868 M01S00866.secart +++| ENDIF 00869 M01S00867.secart +++| 00870 M01S00868.secart +++|* ---------------------------------------------------------------------- 00871 M01S00869.secart +++|* PHASE 3: SORT COMPOSITE LOG BY UNIQUE JSN TO GROUP INTO UNIT JOBS. 00872 M01S00870.secart +++|* ---------------------------------------------------------------------- 00873 M01S00871.secart +++| 00874 M01S00872.secart +++|* SORT UNIT 3 COMPOSITE LOG, IF PRODUCED/PROVIDED, TO UNIT 4 JOBS FILE, 00875 M01S00873.secart +++|* REQUIRED FOR OUTPUT. 00876 M01S00874.secart +++| 00877 M01S00875.secart +++| IF (LFN(3).EQ.'0') GOTO 220 00878 M01S00876.secart +++| OPEN (3,FILE=LFN(3)) 00879 M01S00877.secart +++| REWIND 3 00880 M01S00878.secart +++| IF (LFN(4).EQ.'0') LFN(4)='TAPE4' 00881 M01S00879.secart +++| OPEN (4,FILE=LFN(4)) 00882 M01S00880.secart +++| CALL REMARK(' SORTING OUT JOBS...') 00883 M01S00881.secart +++| CALL SM5SORT(0) 00884 M01S00882.secart +++| CALL SM5ENR(ACIN+DFIN) 00885 M01S00883.secart +++| CALL SM5FROM(LFN(3)) 00886 M01S00884.secart +++| CALL SM5TO(LFN(4)) 00887 M01S00885.secart +++| CALL SM5KEY(11,6,'DISPLAY','A') 00888 M01S00886.secart +++| CALL SM5RETA('YES') 00889 M01S00887.secart +++| CALL SM5END 00890 M01S00888.secart +++| CLOSE (3) 00891 M01S00889.secart +++| CLOSE (4) 00892 M01S00890.secart +++| 00893 M01S00891.secart +++|* ---------------------------------------------------------------------- 00894 M01S00892.secart +++|* PHASE 4: EXTRACT UNIT JOBS FROM JOBS LOG FOR PRINTOUT. 00895 M01S00893.secart +++|* ---------------------------------------------------------------------- 00896 M01S00894.secart +++| 00897 M01S00895.secart +++| 220 IF (LFN(4).EQ.'0') GOTO 250 00898 M01S00896.secart +++| OPEN (4,FILE=LFN(4)) 00899 M01S00897.secart +++| REWIND 4 00900 M01S00898.secart +++| CALL REMARK(' EXTRACTING SELECTED JOBS...') 00901 M01S00899.secart +++| IPAGE=IPAGE+1 00902 M01S00900.secart +++| HDR='S E L E C T E D J O B S' 00903 M01S00901.secart +++| WRITE (8,10) HDR,PGM,RUNDT,RUNTM,IPAGE 00904 M01S00902.secart +++| UJSN=' ' 00905 M01S00903.secart +++| 00906 M01S00904.secart +++| 230 READ (4,14,END=240) DFTXT 00907 M01S00905.secart +++| 14 FORMAT(A100) 00908 M01S00906.secart +++| JSN=DFTXT(11:16) 00909 M01S00907.secart +++| IF (JSN.NE.UJSN) THEN 00910 M01S00908.secart +++| UJSN=JSN 00911 M01S00909.secart +++| CALL JSNLOOK(JSN,N) 00912 M01S00910.secart +++| PICKED=MK(N).NE.' ' 00913 M01S00911.secart +++| IF (PICKED) THEN 00914 M01S00912.secart +++| WRITE (8,18) 00915 M01S00913.secart +++| 18 FORMAT('0') 00916 M01S00914.secart +++| J=JBLIMIT 00917 M01S00915.secart +++| ENDIF 00918 M01S00916.secart +++| ENDIF 00919 M01S00917.secart +++| 00920 M01S00918.secart +++|* PRINTOUT JOB TILL SAMPLE LIMIT. 00921 M01S00919.secart +++| 00922 M01S00920.secart +++| IF (PICKED) THEN 00923 M01S00921.secart +++| IF (J.GT.0) THEN 00924 M01S00922.secart +++| WRITE (8,14) DFTXT 00925 M01S00923.secart +++| J=J-1 00926 M01S00924.secart +++| IF (J.EQ.0) WRITE (8,*) 00927 M01S00925.secart +++| . ' ========= S A M P L E L I M I T =========' 00928 M01S00926.secart +++| ENDIF 00929 M01S00927.secart +++| ENDIF 00930 M01S00928.secart +++| GOTO 230 00931 M01S00929.secart +++| 00932 M01S00930.secart +++| 240 CLOSE (4) 00933 M01S00931.secart +++| 00934 M01S00932.secart +++|* FINISHED. 00935 M01S00933.secart +++| 00936 M01S00934.secart +++| 250 CALL REMARK(' SECART COMPLETED.') 00937 M01S00935.secart +++| CLOSE (8) 00938 M01S00936.secart +++| END 00939 M01S00937.secart +++| 00940 M01S00938.secart +++|* --------------------------------------------------------------------- 00941 M01S00939.secart +++| SUBROUTINE DIRECT 00942 M01S00940.secart +++|** DIRECT - SECART DIRECTIVES PROCESSING. 00943 M01S00941.secart +++|* 00944 M01S00942.secart +++|* THIS MODULE HANDLES ALL ASPECTS OF DIRECTIVES PROCESSING AND 00945 M01S00943.secart +++|* PROVIDES MULTIPLE ENTRY POINT FOR PURPOSES SUCH AS: ACCEPTING 00946 M01S00944.secart +++|* *SECART* DIRECTIVES DURING INITIALIZATION PHASE AND STORING 00947 M01S00945.secart +++|* SELECTION ARGUMENTS IN INTERNAL ARRAYS, MARKING ACCOUNT LOG 00948 M01S00946.secart +++|* MESSAGE ID-S FOR PRINTOUT SELECTION, AND CHECKING LOG DATA 00949 M01S00947.secart +++|* AGAINST SELECTION ARGUMENTS DURING RAW LOGS PROCESSING. 00950 M01S00948.secart +++| 00951 M01S00949.secart +++| 00952 M01S00950.secart +++| IMPLICIT INTEGER(A-Z) 00953 M01S00951.secart +++| PARAMETER (MXJ=1000) 00954 M01S00952.secart +++|* SIZE OF JSN TRACE TABLE. 00955 M01S00953.secart +++| 00956 M01S00954.secart +++| PARAMETER (MXP=50) 00957 M01S00955.secart +++|* SIZE OF DIRECTIVE ARGUMENT TABLES. 00958 M01S00956.secart +++| 00959 M01S00957.secart +++| LOGICAL ACEOF 00960 M01S00958.secart +++|* /CTL/ ACCOUNT LOG EOF FLAG. 00961 M01S00959.secart +++| 00962 M01S00960.secart +++| INTEGER ACIN 00963 M01S00961.secart +++|* /CTL/ ACCOUNT LOG MESSAGE COUNTER. 00964 M01S00962.secart +++| 00965 M01S00963.secart +++| LOGICAL DFEOF 00966 M01S00964.secart +++|* /CTL/ DAYFILE LOG EOF FLAG. 00967 M01S00965.secart +++| 00968 M01S00966.secart +++| INTEGER DFIN 00969 M01S00967.secart +++|* /CTL/ DAYFILE LOG MESSAGE COUNTER. 00970 M01S00968.secart +++| 00971 M01S00969.secart +++| CHARACTER*80 DIR 00972 M01S00970.secart +++|* *SECART* DIRECTIVE TEXT STRING. 00973 M01S00971.secart +++| 00974 M01S00972.secart +++| LOGICAL ERR 00975 M01S00973.secart +++|* DIRECTIVE ERROR(S) FLAG. 00976 M01S00974.secart +++| 00977 M01S00975.secart +++| CHARACTER*10 ETM 00978 M01S00976.secart +++|* ARG - MESSAGE TIMESTAMP. 00979 M01S00977.secart +++| 00980 M01S00978.secart +++| CHARACTER*7 FAM(MXP) 00981 M01S00979.secart +++|* USER= DIRECTIVE FAMILYNAME ARGUMENTS. 00982 M01S00980.secart +++| 00983 M01S00981.secart +++| CHARACTER*7 FAMILY 00984 M01S00982.secart +++|* TEMP - FAMILYNAME VARIABLE. 00985 M01S00983.secart +++| 00986 M01S00984.secart +++| CHARACTER*7 FN 00987 M01S00985.secart +++|* ARG - FAMILYNAME TO CHECK. 00988 M01S00986.secart +++| 00989 M01S00987.secart +++| LOGICAL HIT 00990 M01S00988.secart +++|* ARG - FLAG RETURNED TO SHOW SELECTION. 00991 M01S00989.secart +++| 00992 M01S00990.secart +++| INTEGER ITX(MXP) 00993 M01S00991.secart +++|* DMSG= DIRECTIVE CHARACTER START POSITIONS. 00994 M01S00992.secart +++| 00995 M01S00993.secart +++| INTEGER IW 00996 M01S00994.secart +++|* LOCAL - CURRENT TIME WINDOW INDEX. 00997 M01S00995.secart +++| 00998 M01S00996.secart +++| INTEGER JBLIMIT 00999 M01S00997.secart +++|* /CTL/ UNIT JOB PRINTOUT MESSAGE LIMIT. 01000 M01S00998.secart +++| 01001 M01S00999.secart +++| CHARACTER*7 JN 01002 M01S01000.secart +++|* ARG - JOBNAME TO CHECK. 01003 M01S01001.secart +++| 01004 M01S01002.secart +++| CHARACTER*7 JOBNAME 01005 M01S01003.secart +++|* TEMP - JOBNAME VARIABLE. 01006 M01S01004.secart +++| 01007 M01S01005.secart +++| CHARACTER*6 JS 01008 M01S01006.secart +++|* ARG - JSN TO CHECK. 01009 M01S01007.secart +++| 01010 M01S01008.secart +++| CHARACTER*6 JSN(MXP) 01011 M01S01009.secart +++|* JSN= DIRECTIVE ARGUMENTS. 01012 M01S01010.secart +++| 01013 M01S01011.secart +++| INTEGER LTX(MXP) 01014 M01S01012.secart +++|* DMSG= DIRECTIVE LAST CHARACTER POSITIONS. 01015 M01S01013.secart +++| 01016 M01S01014.secart +++| CHARACTER*4 MID 01017 M01S01015.secart +++|* TEMP - FOR AMSG= DIRECTIVE MSG ID. 01018 M01S01016.secart +++| 01019 M01S01017.secart +++| CHARACTER*5 MK 01020 M01S01018.secart +++|* ARG - TRACE TABLE MARKS TO BE UPDATED. 01021 M01S01019.secart +++| 01022 M01S01020.secart +++| INTEGER ML(2,MXJ) 01023 M01S01021.secart +++|* /CTL/ DFL/AFL MSG COUNTS FOR TRACE TABLE. 01024 M01S01022.secart +++| 01025 M01S01023.secart +++| CHARACTER*40 MTX(MXP) 01026 M01S01024.secart +++|* DMSG= DIRECTIVE MESSAGE STRINGS. 01027 M01S01025.secart +++| 01028 M01S01026.secart +++| INTEGER NJ 01029 M01S01027.secart +++|* /CTL/ CURRENT NUMBER JOBS IN TRACE TABLE. 01030 M01S01028.secart +++| 01031 M01S01029.secart +++| INTEGER NM 01032 M01S01030.secart +++|* NUMBER OF DMSG= ARGUMENTS STORED. 01033 M01S01031.secart +++| 01034 M01S01032.secart +++| INTEGER NN 01035 M01S01033.secart +++|* NUMBER OF UJN= ARGUMENTS STORED. 01036 M01S01034.secart +++| 01037 M01S01035.secart +++| INTEGER NP 01038 M01S01036.secart +++|* NUMBER OF UJN= ARGUMENTS STORED. 01039 M01S01037.secart +++| 01040 M01S01038.secart +++| INTEGER NS 01041 M01S01039.secart +++|* NUMBER OF JSN= ARGUMENTS STORED. 01042 M01S01040.secart +++| 01043 M01S01041.secart +++| INTEGER NT 01044 M01S01042.secart +++|* NUMBER OF TRM= ARGUMENTS STORED. 01045 M01S01043.secart +++| 01046 M01S01044.secart +++| INTEGER NU 01047 M01S01045.secart +++|* NUMBER OF USER= ARGUMENTS STORED. 01048 M01S01046.secart +++| 01049 M01S01047.secart +++| CHARACTER*3 SKY(12) 01050 M01S01048.secart +++|* /SRT/ TRACE TABLE SORT KEYS. 01051 M01S01049.secart +++| 01052 M01S01050.secart +++| CHARACTER*7 TERMINL 01053 M01S01051.secart +++|* TEMP - TRM= VARIABLE. 01054 M01S01052.secart +++| 01055 M01S01053.secart +++| CHARACTER*10 TME(MXP) 01056 M01S01054.secart +++|* TIME= DIRECTIVE TIME END ARGUMENTS. 01057 M01S01055.secart +++| 01058 M01S01056.secart +++| CHARACTER*10 TMS(MXP) 01059 M01S01057.secart +++|* TIME= DIRECTIVE TIME START ARGUMENTS. 01060 M01S01058.secart +++| 01061 M01S01059.secart +++| CHARACTER*7 TN 01062 M01S01060.secart +++|* ARG - TERMINAL ID TO CHECK. 01063 M01S01061.secart +++| 01064 M01S01062.secart +++| CHARACTER*7 TRM(MXP) 01065 M01S01063.secart +++|* TRM= DIRECTIVE ARGUMENTS. 01066 M01S01064.secart +++| 01067 M01S01065.secart +++| CHARACTER*80 TXT 01068 M01S01066.secart +++|* ARG - MESSAGE TEXT TO CHECK. 01069 M01S01067.secart +++| 01070 M01S01068.secart +++| CHARACTER*7 UJN(MXP) 01071 M01S01069.secart +++|* UJN= DIRECTIVE ARGUMENTS. 01072 M01S01070.secart +++| 01073 M01S01071.secart +++| CHARACTER*7 UN 01074 M01S01072.secart +++|* ARG - USERNAME TO CHECK. 01075 M01S01073.secart +++| 01076 M01S01074.secart +++| CHARACTER*7 USER 01077 M01S01075.secart +++|* TEMP - USERNAME VARIABLE. 01078 M01S01076.secart +++| 01079 M01S01077.secart +++| CHARACTER*7 USR(MXP) 01080 M01S01078.secart +++|* USER= DIRECTIVE ARGUMENTS. 01081 M01S01079.secart +++| 01082 M01S01080.secart +++| LOGICAL WINDOW 01083 M01S01081.secart +++|* FLAG TO REMEMBER TIME WINDOW IS OPEN. 01084 M01S01082.secart +++| 01085 M01S01083.secart +++| 01086 M01S01084.secart +++|* GLOBAL NUMERIC/LOGICAL VARIABLES AND PARAMETERS. 01087 M01S01085.secart +++| 01088 M01S01086.secart +++| COMMON /CTL/ NJ 01089 M01S01087.secart +++| COMMON /CTL/ ACIN 01090 M01S01088.secart +++| COMMON /CTL/ DFIN 01091 M01S01089.secart +++| COMMON /CTL/ ACEOF 01092 M01S01090.secart +++| COMMON /CTL/ DFEOF 01093 M01S01091.secart +++| COMMON /CTL/ ML 01094 M01S01092.secart +++| COMMON /CTL/ JBLIMIT 01095 M01S01093.secart +++| 01096 M01S01094.secart +++|* JSN TRACE TABLE SORT PARAMETERS. 01097 M01S01095.secart +++| 01098 M01S01096.secart +++| COMMON /SRT/ SKY 01099 M01S01097.secart +++| 01100 M01S01098.secart +++| DATA FAM /MXP*' '/ 01101 M01S01099.secart +++| DATA ITX /MXP*0/ 01102 M01S01100.secart +++| DATA JSN /MXP*' '/ 01103 M01S01101.secart +++| DATA LTX /MXP*0/ 01104 M01S01102.secart +++| DATA MTX /MXP*' '/ 01105 M01S01103.secart +++| DATA NM /0/ 01106 M01S01104.secart +++| DATA NN /0/ 01107 M01S01105.secart +++| DATA NP /0/ 01108 M01S01106.secart +++| DATA NS /0/ 01109 M01S01107.secart +++| DATA NT /0/ 01110 M01S01108.secart +++| DATA NU /0/ 01111 M01S01109.secart +++| DATA TME /MXP*' '/ 01112 M01S01110.secart +++| DATA TMS /MXP*' '/ 01113 M01S01111.secart +++| DATA TRM /MXP*' '/ 01114 M01S01112.secart +++| DATA UJN /MXP*' '/ 01115 M01S01113.secart +++| DATA USR /MXP*' '/ 01116 M01S01114.secart +++| 01117 M01S01115.secart +++| 01118 M01S01116.secart +++|** ENTRY - CALL DIRECT [NO ARGUMENTS]. 01119 M01S01117.secart +++|* UNIT 7 FILE CONTAINS DIRECTIVES INPUT. 01120 M01S01118.secart +++|* 01121 M01S01119.secart +++|* EXIT - UNIT 8 FILE CONTAINS PRINTOUT OF DIRECTIVES. 01122 M01S01120.secart +++|* ARRAYS WITHIN MODULE CONTAIN SELECTION ARGUMENTS. 01123 M01S01121.secart +++|* 01124 M01S01122.secart +++|* ERROR - MESSAGES IN PRINTOUT AND DAYFILE: 01125 M01S01123.secart +++|* *** UNRECOGNIZED DIRECTIVE *** 01126 M01S01124.secart +++|* *** TOO MANY ARGUMENTS, EXCESS IGNORED. 01127 M01S01125.secart +++|* *** DIRECTIVE ERROR(S). [DAYFILE] 01128 M01S01126.secart +++|* 01129 M01S01127.secart +++|* USES - /CTL/ TO SET JBLIMIT. 01130 M01S01128.secart +++|* /SRT/ TO STORE JSN TRACE TABLE SORT KEYS IN SKY(I). 01131 M01S01129.secart +++|* 01132 M01S01130.secart +++|* CALLS - *PARSE* TO EXTRACT WORDS FROM DIRECTIVES. 01133 M01S01131.secart +++|* *TMARG* TO EXTRACT TIME ARGUMENTS FROM DIRECTIVES. 01134 M01S01132.secart +++|* *AMSMARK* TO MARK ACCOUNT MESSAGE ID-S FOR SELECTION. 01135 M01S01133.secart +++|* 01136 M01S01134.secart +++|* NOTES - ARRAYS FOR STORAGE OF SELECTION ARGUMENTS ARE ALL 01137 M01S01135.secart +++|* SAME SIZE, DEFINED VIA PARAMETER FOR CODE SIMPLICITY. 01138 M01S01136.secart +++|* 01139 M01S01137.secart +++|* 01140 M01S01138.secart +++|* DIRECTIVES - 01141 M01S01139.secart +++|* 01142 M01S01140.secart +++|* AMSG=MSID,... SCAN ACCOUNT MSG IDENTIFIERS FOR PRINT. 01143 M01S01141.secart +++|* 01144 M01S01142.secart +++|* DMSG=[NN:]TEXT_STR SCAN DAYFILE TEXT STRING FOR PRINTOUT. 01145 M01S01143.secart +++|* NN IS START CHR [1-80] W/IN TEXT FIELD. 01146 M01S01144.secart +++|* 01147 M01S01145.secart +++|* TIME=HHMMSS[-HHMMSS] SCAN TIME PERIOD FOR PRINTOUT. EITHER 01148 M01S01146.secart +++|* (OR) HH.MM.SS. FORMAT ACCEPTED, SECONDS OPTIONAL, END 01149 M01S01147.secart +++|* TIME OPTIONAL BUT REQUIRES '-' SEPARATOR. 01150 M01S01148.secart +++|* 01151 M01S01149.secart +++|* TRACE=KEY,... SORT KEYS FOR TRACE TABLE PRINTOUT. 01152 M01S01150.secart +++|* VALID KEYS: UJN,JSN,JC,SDT,EDT,FM,UN,TRM. 01153 M01S01151.secart +++|* 01154 M01S01152.secart +++|* USER=FAMILY,USER SELECT JOBS FOR PRINTOUT BY USER NAME/ 01155 M01S01153.secart +++|* INDEX (VIA *SUI* COMMANDS). 01156 M01S01154.secart +++|* USE BLANK OR OMIT FOR DEFAULT FAMILY. 01157 M01S01155.secart +++|* USE * FOR WILDCARD MATCH. (NOTE THAT 01158 M01S01156.secart +++|* USER=*,* SELECTS EVERY JOB!!) 01159 M01S01157.secart +++|* 01160 M01S01158.secart +++|* UJN=JOBNAME,... SELECT JOBS FOR PRINTOUT BY JOBNAME. 01161 M01S01159.secart +++|* 01162 M01S01160.secart +++|* JSN=[D.]AAAA,... SELECT UNIT JOBS FOR PRINTOUT BY JSN. 01163 M01S01161.secart +++|* OPTIONAL PREFIX IS D/S UNIQUE CODE USED 01164 M01S01162.secart +++|* TO RESOLVE JSN AMBIGUITIES ACROSS LEVEL 01165 M01S01163.secart +++|* ZERO DEADSTARTS. 01166 M01S01164.secart +++|* 01167 M01S01165.secart +++|* TRM=TERMID,... SELECT JOBS FOR PRINTOUT BY TERMINAL ID. 01168 M01S01166.secart +++|* 01169 M01S01167.secart +++|* LIMIT=NNNN LIMIT JOB PRINTOUTS TO NNNN LINES EACH. 01170 M01S01168.secart +++| 01171 M01S01169.secart +++|* EACH DIRECTIVE LINE. 01172 M01S01170.secart +++| 01173 M01S01171.secart +++| 100 READ (7,10,END=190) DIR 01174 M01S01172.secart +++| 10 FORMAT(A80) 01175 M01S01173.secart +++| WRITE (8,*) ' //// ',DIR 01176 M01S01174.secart +++| 01177 M01S01175.secart +++|* DIRECTIVE: AMSG=MSID,MSID... 01178 M01S01176.secart +++|* ACCOUNT LOG MSG ID-S FOR SERIAL PRINTOUT. 01179 M01S01177.secart +++| 01180 M01S01178.secart +++| IF (DIR(1:5).EQ.'AMSG=') THEN 01181 M01S01179.secart +++| I=6 01182 M01S01180.secart +++| 01183 M01S01181.secart +++| 110 CALL PARSE(DIR,I,MID) 01184 M01S01182.secart +++| IF (MID.NE.' ') THEN 01185 M01S01183.secart +++| CALL AMSMARK(MID,'*') 01186 M01S01184.secart +++| GOTO 110 01187 M01S01185.secart +++| ENDIF 01188 M01S01186.secart +++| 01189 M01S01187.secart +++|* DIRECTIVE: DMSG=NN:TEXT STRING...[40]. 01190 M01S01188.secart +++|* DAYFILE LOG TEXT STRING FOR SERIAL PRINTOUT. 01191 M01S01189.secart +++| 01192 M01S01190.secart +++| ELSE IF (DIR(1:5).EQ.'DMSG=') THEN 01193 M01S01191.secart +++| NM=NM+1 01194 M01S01192.secart +++| I=6 01195 M01S01193.secart +++| N=INDEX('0123456789',DIR(I:I)) 01196 M01S01194.secart +++| IF (N.GT.0) THEN 01197 M01S01195.secart +++| ITX(NM)=N-1 01198 M01S01196.secart +++| I=I+1 01199 M01S01197.secart +++| N=INDEX('0123456789',DIR(I:I)) 01200 M01S01198.secart +++| IF (N.GT.0) THEN 01201 M01S01199.secart +++| ITX(NM)=10*ITX(NM)+(N-1) 01202 M01S01200.secart +++| I=I+1 01203 M01S01201.secart +++| ENDIF 01204 M01S01202.secart +++| 01205 M01S01203.secart +++|* COLON REQUIRED WITH CHAR POSITION. 01206 M01S01204.secart +++| 01207 M01S01205.secart +++| IF (DIR(I:I).EQ.':') THEN 01208 M01S01206.secart +++| I=I+1 01209 M01S01207.secart +++| 01210 M01S01208.secart +++|* OTHERWISE USE AS TEXT STRING. 01211 M01S01209.secart +++| 01212 M01S01210.secart +++| ELSE 01213 M01S01211.secart +++| I=6 01214 M01S01212.secart +++| ITX(NM)=0 01215 M01S01213.secart +++| ENDIF 01216 M01S01214.secart +++| ENDIF 01217 M01S01215.secart +++| MTX(NM)=DIR(I:I+39) 01218 M01S01216.secart +++| LTX(NM)=1 01219 M01S01217.secart +++| DO 120 I=1,40 01220 M01S01218.secart +++| IF (MTX(NM)(I:I).NE.' ') LTX(NM)=I 01221 M01S01219.secart +++| 120 CONTINUE 01222 M01S01220.secart +++| 01223 M01S01221.secart +++|* DIRECTIVE: TIME=START[,END] 01224 M01S01222.secart +++|* TIME PERIOD FOR SERIAL PRINTOUT. 01225 M01S01223.secart +++| 01226 M01S01224.secart +++| ELSE IF (DIR(1:5).EQ.'TIME=') THEN 01227 M01S01225.secart +++| I=6 01228 M01S01226.secart +++| IF (NP.GE.MXP) GOTO 180 01229 M01S01227.secart +++| CALL TMARG(DIR,I,TMS(NP+1)) 01230 M01S01228.secart +++| TME(NP)=TMS(NP) 01231 M01S01229.secart +++| IF (DIR(I-1:I-1).EQ.'-') CALL TMARG(DIR,I,TME(NP+1)) 01232 M01S01230.secart +++| IF (TMS(NP+1).NE.' '.AND.TME(NP+1).NE.' ') NP=NP+1 01233 M01S01231.secart +++| WINDOW=.FALSE. 01234 M01S01232.secart +++| 01235 M01S01233.secart +++|* DIRECTIVE: TRACE=KEY,KEY,... 01236 M01S01234.secart +++|* SORT KEYS FOR TRACE TABLE PRINTOUT. 01237 M01S01235.secart +++|* VALID KEYS: UJN,JSN,JC,SDT,EDT,FM,UN,TRM. 01238 M01S01236.secart +++| 01239 M01S01237.secart +++| ELSE IF (DIR(1:6).EQ.'TRACE=') THEN 01240 M01S01238.secart +++| I=7 01241 M01S01239.secart +++| DO 130 N=1,12 01242 M01S01240.secart +++| CALL PARSE(DIR,I,SKY(N)) 01243 M01S01241.secart +++| 130 CONTINUE 01244 M01S01242.secart +++| 01245 M01S01243.secart +++|* DIRECTIVE: USER=FAMILY,USER. 01246 M01S01244.secart +++|* FAMILY & USERNAME PAIR W/WILDCARDS. 01247 M01S01245.secart +++| 01248 M01S01246.secart +++| ELSE IF (DIR(1:5).EQ.'USER=') THEN 01249 M01S01247.secart +++| I=6 01250 M01S01248.secart +++| CALL PARSE(DIR,I,FAMILY) 01251 M01S01249.secart +++| CALL PARSE(DIR,I,USER) 01252 M01S01250.secart +++| IF (NU.GE.MXP) GOTO 180 01253 M01S01251.secart +++| NU=NU+1 01254 M01S01252.secart +++| FAM(NU)=FAMILY 01255 M01S01253.secart +++| USR(NU)=USER 01256 M01S01254.secart +++| 01257 M01S01255.secart +++|* DIRECTIVE: UJN=JOBNAME,... 01258 M01S01256.secart +++|* USER JOB NAME FOR JOB SELECTION. 01259 M01S01257.secart +++| 01260 M01S01258.secart +++| ELSE IF (DIR(1:4).EQ.'UJN=') THEN 01261 M01S01259.secart +++| I=5 01262 M01S01260.secart +++| 140 CALL PARSE(DIR,I,JOBNAME) 01263 M01S01261.secart +++| IF (JOBNAME.NE.' ') THEN 01264 M01S01262.secart +++| IF (NN.GE.MXP) GOTO 180 01265 M01S01263.secart +++| NN=NN+1 01266 M01S01264.secart +++| UJN(NN)=JOBNAME 01267 M01S01265.secart +++| GOTO 140 01268 M01S01266.secart +++| ENDIF 01269 M01S01267.secart +++| 01270 M01S01268.secart +++|* DIRECTIVE: JSN=[D.]AAAA,... 01271 M01S01269.secart +++|* JOB SEQUENCE NAME (AAAA) W/ OPTIONAL D/S UNIQUE CODE (D.). 01272 M01S01270.secart +++| 01273 M01S01271.secart +++| ELSE IF (DIR(1:4).EQ.'JSN=') THEN 01274 M01S01272.secart +++| I=5 01275 M01S01273.secart +++| 150 IF(NS.GE.MXP) GOTO 180 01276 M01S01274.secart +++| JSN(NS+1)=' ' 01277 M01S01275.secart +++| CALL PARSE(DIR,I,JSN(NS+1)(3:6)) 01278 M01S01276.secart +++| IF (JSN(NS+1).NE.' ') THEN 01279 M01S01277.secart +++| NS=NS+1 01280 M01S01278.secart +++| IF (JSN(NS)(2:2).EQ.' ' .AND. DIR(I-1:I-1).EQ.'.') THEN 01281 M01S01279.secart +++| JSN(NS)(1:1)=JSN(NS)(3:3) 01282 M01S01280.secart +++| JSN(NS)(2:2)='.' 01283 M01S01281.secart +++| CALL PARSE(DIR,I,JSN(NS)(3:6)) 01284 M01S01282.secart +++| ELSE 01285 M01S01283.secart +++| JSN(NS)(1:2)='*.' 01286 M01S01284.secart +++| ENDIF 01287 M01S01285.secart +++| GOTO 150 01288 M01S01286.secart +++| ENDIF 01289 M01S01287.secart +++| 01290 M01S01288.secart +++|* DIRECTIVE: TRM=TERMID,... 01291 M01S01289.secart +++|* TERMINAL NAMES SELECTION DIRECTIVE. 01292 M01S01290.secart +++| 01293 M01S01291.secart +++| ELSE IF (DIR(1:4).EQ.'TRM=') THEN 01294 M01S01292.secart +++| I=5 01295 M01S01293.secart +++| 01296 M01S01294.secart +++| 160 CALL PARSE(DIR,I,TERMINL) 01297 M01S01295.secart +++| IF (TERMINL.NE.' ') THEN 01298 M01S01296.secart +++| IF (NT.GE.MXP) GOTO 180 01299 M01S01297.secart +++| NT=NT+1 01300 M01S01298.secart +++| TRM(NT)=TERMINL 01301 M01S01299.secart +++| GOTO 160 01302 M01S01300.secart +++| ENDIF 01303 M01S01301.secart +++| 01304 M01S01302.secart +++|* DIRECTIVE: LIMIT=NNNN 01305 M01S01303.secart +++|* SAMPLE LIMIT FOR PRINTOUTS. 01306 M01S01304.secart +++| 01307 M01S01305.secart +++| ELSE IF (DIR(1:6).EQ.'LIMIT=') THEN 01308 M01S01306.secart +++| I=7 01309 M01S01307.secart +++| JBLIMIT=0 01310 M01S01308.secart +++| 01311 M01S01309.secart +++| 170 N=ICHAR(DIR(I:I))-16 01312 M01S01310.secart +++| IF(N.GE.0.AND.N.LE.9.AND.I.LE.12) THEN 01313 M01S01311.secart +++| JBLIMIT=JBLIMIT*10+N 01314 M01S01312.secart +++| I=I+1 01315 M01S01313.secart +++| GOTO 170 01316 M01S01314.secart +++| ENDIF 01317 M01S01315.secart +++| 01318 M01S01316.secart +++|* UNRECOGNIZED DIRECTIVE VERB. 01319 M01S01317.secart +++| 01320 M01S01318.secart +++| ELSE 01321 M01S01319.secart +++| WRITE (8,*) ' *** UNRECOGNIZED DIRECTIVE ***' 01322 M01S01320.secart +++| ERR=.TRUE. 01323 M01S01321.secart +++| ENDIF 01324 M01S01322.secart +++| GOTO 100 01325 M01S01323.secart +++| 01326 M01S01324.secart +++|* ARGUMENT TABLE FULL, IGNORE ADDITIONAL ARGUMENTS. 01327 M01S01325.secart +++| 01328 M01S01326.secart +++| 180 WRITE (8,*) ' *** TOO MANY ARGUMENTS, EXCESS IGNORED.' 01329 M01S01327.secart +++| ERR=.TRUE. 01330 M01S01328.secart +++| GOTO 100 01331 M01S01329.secart +++| 01332 M01S01330.secart +++|* FINISHED WITH DIRECTIVES, REPORT IF ERRORS. 01333 M01S01331.secart +++| 01334 M01S01332.secart +++| 190 IF (ERR) CALL REMARK(' *** DIRECTIVE ERROR(S).') 01335 M01S01333.secart +++| RETURN 01336 M01S01334.secart +++| 01337 M01S01335.secart +++| 01338 M01S01336.secart +++|* --------------------------------------------------------------------- 01339 M01S01337.secart +++|* SERIAL PRINTOUT SELECTIONS. 01340 M01S01338.secart +++|* --------------------------------------------------------------------- 01341 M01S01339.secart +++| 01342 M01S01340.secart +++|** ENTRY - CALL TMCHECK(ETM,HIT) 01343 M01S01341.secart +++|* *ETM* CONTAINS TIMESTAMP FROM LOG MESSAGE. 01344 M01S01342.secart +++|* 01345 M01S01343.secart +++|* EXIT - *HIT* SET TO .TRUE. IF *ETM* FALLS WITHIN ANY TIME 01346 M01S01344.secart +++|* WINDOW, OTHERWISE UNCHANGED (AVOID CONFLICT WITH 01347 M01S01345.secart +++|* OTHER SELECTION IN CALLING ROUTINE). 01348 M01S01346.secart +++|* 01349 M01S01347.secart +++|* PRINTOUT (UNIT 8) MESSAGES: 01350 M01S01348.secart +++|* ====== TIME WINDOW START ====== 01351 M01S01349.secart +++|* ====== TIME WINDOW END ====== 01352 M01S01350.secart +++|* 01353 M01S01351.secart +++|* NOTES - THIS ROUTINE REMEMBERS INDEX OF OPEN TIME WINDOW IN 01354 M01S01352.secart +++|* *IW* TO SHORTCUT SEARCH AND TEST. 01355 M01S01353.secart +++| 01356 M01S01354.secart +++| 01357 M01S01355.secart +++| ENTRY TMCHECK(ETM,HIT) 01358 M01S01356.secart +++| 01359 M01S01357.secart +++| IF (NP.LE.0) RETURN 01360 M01S01358.secart +++| 01361 M01S01359.secart +++|* CHECK FOR END OF CURRENT WINDOW, IF ANY. 01362 M01S01360.secart +++| 01363 M01S01361.secart +++| IF (WINDOW) THEN 01364 M01S01362.secart +++| IF (ETM.LE.TME(IW)) THEN 01365 M01S01363.secart +++| HIT=.TRUE. 01366 M01S01364.secart +++| RETURN 01367 M01S01365.secart +++| ELSE 01368 M01S01366.secart +++| WINDOW=.FALSE. 01369 M01S01367.secart +++| WRITE (8,*) ' ====== TIME WINDOW END ======' 01370 M01S01368.secart +++| ENDIF 01371 M01S01369.secart +++| ENDIF 01372 M01S01370.secart +++| 01373 M01S01371.secart +++|* CHECK FOR START OF ANY TIME WINDOW. 01374 M01S01372.secart +++| 01375 M01S01373.secart +++| DO 200 I=1,NP 01376 M01S01374.secart +++| IF (ETM.LT.TMS(I) .OR. ETM.GT.TME(I)) GOTO 200 01377 M01S01375.secart +++| IW=I 01378 M01S01376.secart +++| WINDOW=.TRUE. 01379 M01S01377.secart +++| WRITE (8,*) ' ====== TIME WINDOW START ======' 01380 M01S01378.secart +++| 200 CONTINUE 01381 M01S01379.secart +++| RETURN 01382 M01S01380.secart +++| 01383 M01S01381.secart +++| 01384 M01S01382.secart +++|** ENTRY - CALL MSCHECK(TXT,HIT) 01385 M01S01383.secart +++|* *TXT* IS MESSAGE FIELD FROM DAYFILE MESSAGE. 01386 M01S01384.secart +++|* 01387 M01S01385.secart +++|* EXIT - *HIT* SET TO .TRUE. IF *TXT* CONTAINS SELECTED TEXT 01388 M01S01386.secart +++|* STRING, .FALSE. OTHERWISE. 01389 M01S01387.secart +++| 01390 M01S01388.secart +++| ENTRY MSCHECK(TXT,HIT) 01391 M01S01389.secart +++| 01392 M01S01390.secart +++| IF (NM.EQ.0) RETURN 01393 M01S01391.secart +++| DO 210 N=1,NM 01394 M01S01392.secart +++| IF (ITX(N).EQ.0) THEN 01395 M01S01393.secart +++| IF (INDEX(TXT,MTX(N)(1:LTX(N))).NE.0) HIT=.TRUE. 01396 M01S01394.secart +++| ELSE 01397 M01S01395.secart +++| IF (TXT(ITX(N):ITX(N)+LTX(N)-1).EQ.MTX(N)(1:LTX(N))) 01398 M01S01396.secart +++| . HIT=.TRUE. 01399 M01S01397.secart +++| ENDIF 01400 M01S01398.secart +++| IF (HIT) RETURN 01401 M01S01399.secart +++| 210 CONTINUE 01402 M01S01400.secart +++| RETURN 01403 M01S01401.secart +++| 01404 M01S01402.secart +++| 01405 M01S01403.secart +++|* --------------------------------------------------------------------- 01406 M01S01404.secart +++|* JOB SELECTION ENTRY POINTS. 01407 M01S01405.secart +++|* CALLED DURING 1ST PASS TO TAG PICKS IN TRACE TABLE. 01408 M01S01406.secart +++|* --------------------------------------------------------------------- 01409 M01S01407.secart +++| 01410 M01S01408.secart +++| 01411 M01S01409.secart +++|** ENTRY - CALL PICKJSN(JS,MK) 01412 M01S01410.secart +++|* *JS* IS JSN FROM LOG MESSAGE. 01413 M01S01411.secart +++|* *MK* IS MARKS FIELD FOR JOB IN JSN TRACE TABLE. 01414 M01S01412.secart +++|* 01415 M01S01413.secart +++|* EXIT - *MK(1:1)* SET TO 'J' IF JSN WAS SELECTED. 01416 M01S01414.secart +++| 01417 M01S01415.secart +++| ENTRY PICKJSN(JS,MK) 01418 M01S01416.secart +++| 01419 M01S01417.secart +++|* CHECK NEW JSN AGAINST EACH SELECTED JSN, IF ANY. 01420 M01S01418.secart +++| 01421 M01S01419.secart +++| IF (NS.EQ.0) RETURN 01422 M01S01420.secart +++| DO 220 I=1,NS 01423 M01S01421.secart +++| IF ( (JS(3:6).EQ.JSN(I)(3:6)) .AND. 01424 M01S01422.secart +++| . (JS(1:1).EQ.JSN(I)(1:1) .OR. JSN(I)(1:1).EQ.'*') )MK(1:1)='J' 01425 M01S01423.secart +++| 220 CONTINUE 01426 M01S01424.secart +++| RETURN 01427 M01S01425.secart +++| 01428 M01S01426.secart +++| 01429 M01S01427.secart +++|** ENTRY - CALL PICKUJN(JN,MK) 01430 M01S01428.secart +++|* *JN* IS UJN FROM LOG MESSAGE. 01431 M01S01429.secart +++|* *MK* IS MARKS FIELD FOR JOB IN JSN TRACE TABLE. 01432 M01S01430.secart +++|* 01433 M01S01431.secart +++|* EXIT - *MK(2:2)* SET TO 'N' IF UJN WAS SELECTED. 01434 M01S01432.secart +++| 01435 M01S01433.secart +++| ENTRY PICKUJN(JN,MK) 01436 M01S01434.secart +++| 01437 M01S01435.secart +++|* CHECK EACH NEW UJN AGAINST EACH SELECTED UJN-S, IF ANY. 01438 M01S01436.secart +++| 01439 M01S01437.secart +++| IF (NN.EQ.0) RETURN 01440 M01S01438.secart +++| DO 230 I=1,NN 01441 M01S01439.secart +++| IF (JN.EQ.UJN(I)) MK(2:2)='N' 01442 M01S01440.secart +++| 230 CONTINUE 01443 M01S01441.secart +++| RETURN 01444 M01S01442.secart +++| 01445 M01S01443.secart +++| 01446 M01S01444.secart +++|** ENTRY - CALL PICKUSR(FN,UN,MK) 01447 M01S01445.secart +++|* *FN* IS FAMILYNAME FROM LOG MESSAGE. 01448 M01S01446.secart +++|* *UN* IS USERNAME FROM LOG MESSAGE. 01449 M01S01447.secart +++|* *MK* IS MARKS FIELD FOR JOB IN JSN TRACE TABLE. 01450 M01S01448.secart +++|* 01451 M01S01449.secart +++|* EXIT - *MK(3:3)* SET TO 'U' IF FAMILY/USER WAS SELECTED. 01452 M01S01450.secart +++| 01453 M01S01451.secart +++| ENTRY PICKUSR(FN,UN,MK) 01454 M01S01452.secart +++| 01455 M01S01453.secart +++|* CHECK NEW USERID AGAINST EACH SELECTED FAMILY AND USER PAIR. 01456 M01S01454.secart +++|* WILDCARD (*) MATCHES ANYTHING. BLANK FAMILY MATCHES DEFAULT FAMILY. 01457 M01S01455.secart +++| 01458 M01S01456.secart +++| IF (NU.EQ.0) RETURN 01459 M01S01457.secart +++| DO 240 I=1,NU 01460 M01S01458.secart +++| IF ( (FAM(I).EQ.'*'.OR.FN.EQ.FAM(I)) .AND. 01461 M01S01459.secart +++| . (USR(I).EQ.'*'.OR.USR(I).EQ.UN) ) MK(3:3)='U' 01462 M01S01460.secart +++| 240 CONTINUE 01463 M01S01461.secart +++| RETURN 01464 M01S01462.secart +++| 01465 M01S01463.secart +++| 01466 M01S01464.secart +++|** ENTRY - CALL PICKTRM(TN,MK) 01467 M01S01465.secart +++|* *TN* IS TERMINAL ID FROM LOG MESSAGE. 01468 M01S01466.secart +++|* *MK* IS MARKS FIELD FOR JOB IN JSN TRACE TABLE. 01469 M01S01467.secart +++|* 01470 M01S01468.secart +++|* EXIT - *MK(4:4)* SET TO 'T' IF TERMINAL ID WAS SELECTED. 01471 M01S01469.secart +++| 01472 M01S01470.secart +++| ENTRY PICKTRM(TN,MK) 01473 M01S01471.secart +++| 01474 M01S01472.secart +++|* CHECK NEW TERMINAL ID AGAINST EACH SELECTED TERMINAL ID, IF ANY. 01475 M01S01473.secart +++| 01476 M01S01474.secart +++| IF (NT.EQ.0) RETURN 01477 M01S01475.secart +++| DO 250 I=1,NT 01478 M01S01476.secart +++| IF (TN.EQ.TRM(I)) MK(4:4)='T' 01479 M01S01477.secart +++| 250 CONTINUE 01480 M01S01478.secart +++| RETURN 01481 M01S01479.secart +++| END 01482 M01S01480.secart +++| 01483 M01S01481.secart +++|* --------------------------------------------------------------------- 01484 M01S01482.secart +++| SUBROUTINE TMARG(DIR,IS,TIMEX) 01485 M01S01483.secart +++|** TMARG - EXPANDS TIME= DIRECTIVE ARGUMENTS TO FIXED FORMAT. 01486 M01S01484.secart +++|* 01487 M01S01485.secart +++|* *TMARG* ACCEPTS TIME ARGUMENTS IN A VARIETY OF FORMATS AND 01488 M01S01486.secart +++|* EXPANDS INTO A CANONICAL FIXED FORMAT FOR USE IN TIME WINDOW 01489 M01S01487.secart +++|* SELECTION OF MESSAGES FOR SERIAL PRINTOUT. 01490 M01S01488.secart +++|* 01491 M01S01489.secart +++|* ENTRY - CALL TMARG(DIR,IS,TIMEX) 01492 M01S01490.secart +++|* *DIR* IS DIRECTIVE CONTAINING TIME= ARGS. 01493 M01S01491.secart +++|* *IS* IS STRING POSITION OF TIME ARGUMENT. 01494 M01S01492.secart +++|* 01495 M01S01493.secart +++|* EXIT - *TIMEX* WILL CONTAIN FIXED FORMAT TIME ARGUMENT. 01496 M01S01494.secart +++|* 01497 M01S01495.secart +++|* ERROR - PRINTOUT (UNIT 8): 01498 M01S01496.secart +++|* *** TIME ARGUMENT ERROR. 01499 M01S01497.secart +++|* 01500 M01S01498.secart +++|* NOTES - FTN5 INDEX FUNCTION IS USED TO TEST FOR DIGITS AND 01501 M01S01499.secart +++|* NUMERIC RANGE AT SAME TIME. ACCEPTED FORMS ARE: 01502 M01S01500.secart +++|* HOURS - HH- HH. REQUIRED. 01503 M01S01501.secart +++|* MINUTES - MM- MM. OPTIONAL. 01504 M01S01502.secart +++|* SECONDS - SS- SS. OPTIONAL W/MINUTES. 01505 M01S01503.secart +++|* ---------------------------- 01506 M01S01504.secart +++|* EXPANDED TO => ' HH.MM.SS.' CANONICAL FORM. 01507 M01S01505.secart +++| 01508 M01S01506.secart +++| IMPLICIT INTEGER(A-Z) 01509 M01S01507.secart +++| 01510 M01S01508.secart +++| CHARACTER*80 DIR 01511 M01S01509.secart +++|* ARG - DIRECTIVE TEXT STRING. 01512 M01S01510.secart +++| 01513 M01S01511.secart +++| INTEGER IS 01514 M01S01512.secart +++|* ARG - START POSITION FOR TIME ARGUMENT. 01515 M01S01513.secart +++| 01516 M01S01514.secart +++| CHARACTER*10 TIMEX 01517 M01S01515.secart +++|* ARG - FIXED FORMAT TIME RETURNED. 01518 M01S01516.secart +++| 01519 M01S01517.secart +++|* SET DEFAULT RESULT. 01520 M01S01518.secart +++| 01521 M01S01519.secart +++| TIMEX=' 00.00.00.' 01522 M01S01520.secart +++| 01523 M01S01521.secart +++|* HOURS PORTION OF TIMESTAMP. 01524 M01S01522.secart +++| 01525 M01S01523.secart +++| IF (INDEX('012',DIR(IS:IS)).NE.0) THEN 01526 M01S01524.secart +++| TIMEX(2:2)=DIR(IS:IS) 01527 M01S01525.secart +++| IS=IS+1 01528 M01S01526.secart +++| ELSE 01529 M01S01527.secart +++| GOTO 110 01530 M01S01528.secart +++| ENDIF 01531 M01S01529.secart +++| 01532 M01S01530.secart +++| IF (INDEX('0123456789',DIR(IS:IS)).NE.0) THEN 01533 M01S01531.secart +++| TIMEX(3:3)=DIR(IS:IS) 01534 M01S01532.secart +++| IS=IS+1 01535 M01S01533.secart +++| ELSE 01536 M01S01534.secart +++| GOTO 110 01537 M01S01535.secart +++| ENDIF 01538 M01S01536.secart +++| IF (DIR(IS:IS).EQ.'.') IS=IS+1 01539 M01S01537.secart +++| IF (DIR(IS:IS).EQ.'-') GOTO 100 01540 M01S01538.secart +++| 01541 M01S01539.secart +++|* MINUTES PORTION OF TIMESTAMP. 01542 M01S01540.secart +++| 01543 M01S01541.secart +++| IF (INDEX('012345',DIR(IS:IS)).NE.0) THEN 01544 M01S01542.secart +++| TIMEX(5:5)=DIR(IS:IS) 01545 M01S01543.secart +++| IS=IS+1 01546 M01S01544.secart +++| ELSE 01547 M01S01545.secart +++| GOTO 110 01548 M01S01546.secart +++| ENDIF 01549 M01S01547.secart +++| 01550 M01S01548.secart +++| IF (INDEX('0123456789',DIR(IS:IS)).NE.0) THEN 01551 M01S01549.secart +++| TIMEX(6:6)=DIR(IS:IS) 01552 M01S01550.secart +++| IS=IS+1 01553 M01S01551.secart +++| ELSE 01554 M01S01552.secart +++| GOTO 110 01555 M01S01553.secart +++| ENDIF 01556 M01S01554.secart +++| IF (DIR(IS:IS).EQ.'.') IS=IS+1 01557 M01S01555.secart +++| IF (DIR(IS:IS).EQ.'-') GOTO 100 01558 M01S01556.secart +++| 01559 M01S01557.secart +++|* SECONDS PORTION OF TIMESTAMP. 01560 M01S01558.secart +++| 01561 M01S01559.secart +++| IF (INDEX('012345',DIR(IS:IS)).NE.0) THEN 01562 M01S01560.secart +++| TIMEX(8:8)=DIR(IS:IS) 01563 M01S01561.secart +++| IS=IS+1 01564 M01S01562.secart +++| ELSE 01565 M01S01563.secart +++| GOTO 110 01566 M01S01564.secart +++| ENDIF 01567 M01S01565.secart +++| 01568 M01S01566.secart +++| IF (INDEX('0123456789',DIR(IS:IS)).NE.0) THEN 01569 M01S01567.secart +++| TIMEX(9:9)=DIR(IS:IS) 01570 M01S01568.secart +++| IS=IS+1 01571 M01S01569.secart +++| ELSE 01572 M01S01570.secart +++| GOTO 110 01573 M01S01571.secart +++| ENDIF 01574 M01S01572.secart +++| IF (DIR(IS:IS).EQ.'.') IS=IS+1 01575 M01S01573.secart +++| IF (DIR(IS:IS).NE.'-') RETURN 01576 M01S01574.secart +++| 01577 M01S01575.secart +++| 100 IS=IS+1 01578 M01S01576.secart +++| RETURN 01579 M01S01577.secart +++| 01580 M01S01578.secart +++|* TIMESTAMP ARGUMENT ERROR. 01581 M01S01579.secart +++| 01582 M01S01580.secart +++| 110 WRITE (8,*) ' *** TIME ARGUMENT ERROR.' 01583 M01S01581.secart +++| TIMEX=' ' 01584 M01S01582.secart +++| RETURN 01585 M01S01583.secart +++| END 01586 M01S01584.secart +++| 01587 M01S01585.secart +++|* --------------------------------------------------------------------- 01588 M01S01586.secart +++| SUBROUTINE DFSCAN(LFN,*) 01589 M01S01587.secart +++|** DFSCAN - DAYFILE LOG MESSAGE PROCESSING. 01590 M01S01588.secart +++|* 01591 M01S01589.secart +++|* *DFSCAN* PROVIDES THE PRIMARY ROUTINES FOR PROCESSING DAYFILE 01592 M01S01590.secart +++|* LOG MESSAGES. IT PROVIDES AN ENTRY POINT TO PRE-SCAN THE LOG 01593 M01S01591.secart +++|* FILE TO VALIDATE FORMAT AND EXTRACT CRITICAL SYSTEM ID AND 01594 M01S01592.secart +++|* DATE/TIME DATA, AND ANOTHER FOR ROUTINE PROCESSING OF EACH 01595 M01S01593.secart +++|* LOG MESSAGE IN THE SEQUENCE CONTROLLED BY *SECART*. ANNOTATED 01596 M01S01594.secart +++|* MESSAGES ARE WRITTEN TO COMPOSITE LOG FILE ON UNIT 3. 01597 M01S01595.secart +++| 01598 M01S01596.secart +++| 01599 M01S01597.secart +++| IMPLICIT INTEGER(A-Z) 01600 M01S01598.secart +++| 01601 M01S01599.secart +++| PARAMETER (MXJ=1000) 01602 M01S01600.secart +++|* SIZE OF JSN TRACE TABLE. 01603 M01S01601.secart +++| 01604 M01S01602.secart +++| EQUIVALENCE (DFEDTG,DFEDATE) 01605 M01S01603.secart +++|* /DFL/ DFEDTG*20 = DFEDATE*10//DFETIME*10. 01606 M01S01604.secart +++| 01607 M01S01605.secart +++| 01608 M01S01606.secart +++| LOGICAL ACEOF 01609 M01S01607.secart +++|* /CTL/ ACCOUNT LOG EOF FLAG. 01610 M01S01608.secart +++| 01611 M01S01609.secart +++| INTEGER ACIN 01612 M01S01610.secart +++|* /CTL/ ACCOUNT LOG MESSAGE COUNTER. 01613 M01S01611.secart +++| 01614 M01S01612.secart +++| LOGICAL DFEOF 01615 M01S01613.secart +++|* /CTL/ DAYFILE LOG EOF FLAG. 01616 M01S01614.secart +++| 01617 M01S01615.secart +++| CHARACTER*10 DFEDATE 01618 M01S01616.secart +++|* /DFL/ (EQV) DAYFILE LOG END DATE. 01619 M01S01617.secart +++| 01620 M01S01618.secart +++| CHARACTER*20 DFEDTG 01621 M01S01619.secart +++|* /DFL/ (EQV) DAYFILE LOG END DATE/TIME. 01622 M01S01620.secart +++| 01623 M01S01621.secart +++| CHARACTER*10 DFETIME 01624 M01S01622.secart +++|* /DFL/ (EQV) DAYFILE LOG END TIME. 01625 M01S01623.secart +++| 01626 M01S01624.secart +++| INTEGER DFIN 01627 M01S01625.secart +++|* /CTL/ DAYFILE LOG MESSAGE COUNTER. 01628 M01S01626.secart +++| 01629 M01S01627.secart +++| CHARACTER*10 DFSDATE 01630 M01S01628.secart +++|* /DFL/ (EQV) DAYFILE LOG START DATE. 01631 M01S01629.secart +++| 01632 M01S01630.secart +++| CHARACTER*10 DFSTIME 01633 M01S01631.secart +++|* /DFL/ (EQV) DAYFILE LOG START TIME. 01634 M01S01632.secart +++| 01635 M01S01633.secart +++| CHARACTER*40 DFTITLE 01636 M01S01634.secart +++|* /DFL/ DAYFILE SYSTEM TITLE. 01637 M01S01635.secart +++| 01638 M01S01636.secart +++| CHARACTER*100 DFTXT 01639 M01S01637.secart +++|* /DFL/ CURRENT DAYFILE MESSAGE TEXT. 01640 M01S01638.secart +++| 01641 M01S01639.secart +++| CHARACTER*20 DFVERSN 01642 M01S01640.secart +++|* /DFL/ SYSTEM VERSION (PART OF SYID). 01643 M01S01641.secart +++| 01644 M01S01642.secart +++| CHARACTER*1 DSU 01645 M01S01643.secart +++|* /TRC/ DEADSTART UNIQUE PREFIX CODE. 01646 M01S01644.secart +++| 01647 M01S01645.secart +++| CHARACTER*7 FAM 01648 M01S01646.secart +++|* TEMP - FAMILYNAME VARIABLE. 01649 M01S01647.secart +++| 01650 M01S01648.secart +++| CHARACTER*7 FN(MXJ) 01651 M01S01649.secart +++|* /TRC/ FAMILY NAME COLUMN IN TRACE TABLE. 01652 M01S01650.secart +++| 01653 M01S01651.secart +++| INTEGER JBLIMIT 01654 M01S01652.secart +++|* /CTL/ UNIT JOB PRINTOUT MESSAGE LIMIT. 01655 M01S01653.secart +++| 01656 M01S01654.secart +++| CHARACTER*1 JC(MXJ) 01657 M01S01655.secart +++|* /TRC/ JOB CLASS COLUMN IN TRACE TABLE. 01658 M01S01656.secart +++| 01659 M01S01657.secart +++| CHARACTER*1 JCL 01660 M01S01658.secart +++|* TEMP - JOB CLASS VARIABLE. 01661 M01S01659.secart +++| 01662 M01S01660.secart +++| CHARACTER*7 JN(MXJ) 01663 M01S01661.secart +++|* /TRC/ UJN COLUMN IN TRACE TABLE. 01664 M01S01662.secart +++| 01665 M01S01663.secart +++| CHARACTER*6 JS(MXJ) 01666 M01S01664.secart +++|* /TRC/ D.JSN COLUMN IN TRACE TABLE. 01667 M01S01665.secart +++| 01668 M01S01666.secart +++| CHARACTER*6 JSN 01669 M01S01667.secart +++|* TEMP - JSN VARIABLE. 01670 M01S01668.secart +++| 01671 M01S01669.secart +++| CHARACTER*7 LFN 01672 M01S01670.secart +++|* ARG - LFN OF DAYFILE LOG FILE. 01673 M01S01671.secart +++| 01674 M01S01672.secart +++| CHARACTER*5 MK(MXJ) 01675 M01S01673.secart +++|* /TRC/ JOB SELECTION MARKS IN TRACE TABLE. 01676 M01S01674.secart +++| 01677 M01S01675.secart +++| INTEGER ML(2,MXJ) 01678 M01S01676.secart +++|* /CTL/ DFL/AFL MSG COUNTS FOR TRACE TABLE. 01679 M01S01677.secart +++| 01680 M01S01678.secart +++| INTEGER NJ 01681 M01S01679.secart +++|* /CTL/ CURRENT NUMBER JOBS IN TRACE TABLE. 01682 M01S01680.secart +++| 01683 M01S01681.secart +++| CHARACTER*7 NUL 01684 M01S01682.secart +++|* TEMP - FOR IGNORED WORD FROM *PARSE*. 01685 M01S01683.secart +++| 01686 M01S01684.secart +++| LOGICAL PRT 01687 M01S01685.secart +++|* FLAG SET TO PRINTOUT DAYFILE MESSAGE. 01688 M01S01686.secart +++| 01689 M01S01687.secart +++| INTEGER SM 01690 M01S01688.secart +++|* LOCAL COUNTER FOR DFL SYSTEM MESSAGES. 01691 M01S01689.secart +++| 01692 M01S01690.secart +++| CHARACTER*20 TE(MXJ) 01693 M01S01691.secart +++|* /TRC/ JOB DATE/TIME END IN TRACE TABLE. 01694 M01S01692.secart +++| 01695 M01S01693.secart +++| CHARACTER*7 TN(MXJ) 01696 M01S01694.secart +++|* /TRC/ JOB TERMINAL NAME IN TRACE TABLE. 01697 M01S01695.secart +++| 01698 M01S01696.secart +++| CHARACTER*20 TS(MXJ) 01699 M01S01697.secart +++|* /TRC/ JOB DATE/TIME START IN TRACE TABLE. 01700 M01S01698.secart +++| 01701 M01S01699.secart +++| CHARACTER*7 UN(MXJ) 01702 M01S01700.secart +++|* /TRC/ JOB USERNAME IN TRACE TABLE. 01703 M01S01701.secart +++| 01704 M01S01702.secart +++| CHARACTER*7 USR 01705 M01S01703.secart +++|* TEMP - USERNAME VARIABLE. 01706 M01S01704.secart +++| 01707 M01S01705.secart +++| CHARACTER*7 VERB 01708 M01S01706.secart +++|* TEMP - COMMAND CRACKING VARIABLE. 01709 M01S01707.secart +++| 01710 M01S01708.secart +++| 01711 M01S01709.secart +++|* GLOBAL NUMERIC/LOGICAL VARIABLES AND PARAMETERS. 01712 M01S01710.secart +++| 01713 M01S01711.secart +++| COMMON /CTL/ NJ 01714 M01S01712.secart +++| COMMON /CTL/ ACIN 01715 M01S01713.secart +++| COMMON /CTL/ DFIN 01716 M01S01714.secart +++| COMMON /CTL/ ACEOF 01717 M01S01715.secart +++| COMMON /CTL/ DFEOF 01718 M01S01716.secart +++| COMMON /CTL/ ML 01719 M01S01717.secart +++| COMMON /CTL/ JBLIMIT 01720 M01S01718.secart +++| 01721 M01S01719.secart +++|* DAYFILE LOG SPECIFIC VARIABLES. 01722 M01S01720.secart +++| 01723 M01S01721.secart +++| COMMON /DFL/ DFSDATE 01724 M01S01722.secart +++| COMMON /DFL/ DFSTIME 01725 M01S01723.secart +++| COMMON /DFL/ DFEDATE 01726 M01S01724.secart +++| COMMON /DFL/ DFETIME 01727 M01S01725.secart +++| COMMON /DFL/ DFTITLE 01728 M01S01726.secart +++| COMMON /DFL/ DFVERSN 01729 M01S01727.secart +++| COMMON /DFL/ DFTXT 01730 M01S01728.secart +++| 01731 M01S01729.secart +++|* JSN TRACE TABLE STORAGE. 01732 M01S01730.secart +++| 01733 M01S01731.secart +++| COMMON /TRC/ DSU 01734 M01S01732.secart +++| COMMON /TRC/ MK 01735 M01S01733.secart +++| COMMON /TRC/ JN 01736 M01S01734.secart +++| COMMON /TRC/ JS 01737 M01S01735.secart +++| COMMON /TRC/ JC 01738 M01S01736.secart +++| COMMON /TRC/ TS 01739 M01S01737.secart +++| COMMON /TRC/ TE 01740 M01S01738.secart +++| COMMON /TRC/ FN 01741 M01S01739.secart +++| COMMON /TRC/ UN 01742 M01S01740.secart +++| COMMON /TRC/ TN 01743 M01S01741.secart +++| 01744 M01S01742.secart +++| DATA SM/0/ 01745 M01S01743.secart +++| 01746 M01S01744.secart +++| 01747 M01S01745.secart +++|** ENTRY - CALL DFSCAN(LFN,*NNN) 01748 M01S01746.secart +++|* *LFN* IS LFN OF DAYFILE LOG FILE. 01749 M01S01747.secart +++|* *NNN IS ALTERNATE EXIT STATEMENT NUMBER. 01750 M01S01748.secart +++|* 01751 M01S01749.secart +++|* EXIT - FILE REWOUND AND FIRST RECORD READ FOR PROCESSING. 01752 M01S01750.secart +++|* 01753 M01S01751.secart +++|* ERROR - ALTERNATE EXIT TAKEN IF FILE FAILS FORMAT TEST OR 01754 M01S01752.secart +++|* EOF FOUND BEFORE FIRST 3 SYSJOB MESSAGES FOUND. 01755 M01S01753.secart +++|* 01756 M01S01754.secart +++|* USES - COMMON /CTL/ FOR GLOBAL VARIABLES DFEOF, DFIN. 01757 M01S01755.secart +++|* COMMON /DFL/ FOR DAYFILE-SPECIFIC VARIABLES. 01758 M01S01756.secart +++|* 01759 M01S01757.secart +++|* CALLS - *LOGTEST* TO TEST LOG FORMAT, EXTRACT DATE/TIME. 01760 M01S01758.secart +++|* 01761 M01S01759.secart +++|* NOTES - DAYFILE LOG PRE-SCAN ROUTINE REQUIRES: 01762 M01S01760.secart +++|* 1) THAT FILE BE FORMATTED AS A RAW DAYFILE LOG. 01763 M01S01761.secart +++|* 2) FINDING A START DATE VIA - 01764 M01S01762.secart +++|* A) 1ST RECORD DATE STAMP -OR- 01765 M01S01763.secart +++|* B) DATE IN 1ST SYSJOB MESSAGE -OR- 01766 M01S01764.secart +++|* C) A DEAD START MSG -OR- 01767 M01S01765.secart +++|* D) AN HOURLY DATE STAMP MSG. 01768 M01S01766.secart +++|* 3) ESTABLISHING SYSTEM ID VIA - 01769 M01S01767.secart +++|* A) TITLE IN 2ND SYSJOB MSG -AND- 01770 M01S01768.secart +++|* B) VERSION IN 3RD SYSJOB MSG. 01771 M01S01769.secart +++|* IF SUCCESSFUL, FILE WILL BE REWOUND AND FIRST RECORD 01772 M01S01770.secart +++|* WILL BE READ IN ADVANCE TO START PROCESSING. 01773 M01S01771.secart +++| 01774 M01S01772.secart +++| SM=0 01775 M01S01773.secart +++| DFEOF=.FALSE. 01776 M01S01774.secart +++| 01777 M01S01775.secart +++|* CHECK LOG FORMAT AND EXTRACT START [DATE]/TIME STAMPS. 01778 M01S01776.secart +++| 01779 M01S01777.secart +++| CALL LOGTEST(1,DFTXT,DFEDATE,DFETIME,*130) 01780 M01S01778.secart +++| IF (DFETIME.EQ.' ') THEN 01781 M01S01779.secart +++| CALL REMARK(' *** '//LFN//' NOT RAW DAYFILE LOG.') 01782 M01S01780.secart +++| DFEOF=.TRUE. 01783 M01S01781.secart +++| RETURN 1 01784 M01S01782.secart +++| ENDIF 01785 M01S01783.secart +++| 01786 M01S01784.secart +++|* ACCEPT TIME, COUNT DATE STAMP RECORD AND REMEMBER TO SKIP OVER. 01787 M01S01785.secart +++| 01788 M01S01786.secart +++| DFSTIME=DFETIME 01789 M01S01787.secart +++| IF (DFEDATE.NE.' ') DFIN=1 01790 M01S01788.secart +++| GOTO 110 01791 M01S01789.secart +++| 01792 M01S01790.secart +++|* READ NEXT DAYFILE LOG RECORD. 01793 M01S01791.secart +++| 01794 M01S01792.secart +++| 100 READ (1,10,END=130) DFTXT 01795 M01S01793.secart +++| 10 FORMAT(A100) 01796 M01S01794.secart +++| 01797 M01S01795.secart +++|* SCAN FOR SYSJOB MESSAGES ONLY. 01798 M01S01796.secart +++| 01799 M01S01797.secart +++| 110 DFETIME=DFTXT(1:10) 01800 M01S01798.secart +++| IF (DFTXT(13:17).NE.'SYS S') GOTO 100 01801 M01S01799.secart +++| 01802 M01S01800.secart +++|* FIRST THREE SYSJOB MESSAGES HAVE SYSTEM DATE, TITLE, & VERSION. 01803 M01S01801.secart +++| 01804 M01S01802.secart +++| SM=SM+1 01805 M01S01803.secart +++| IF (SM.EQ.1) THEN 01806 M01S01804.secart +++| L=INDEX(DFTXT,'/') 01807 M01S01805.secart +++| IF (L.GT.3 .AND. DFTXT(L+3:L+3).EQ.'/') THEN 01808 M01S01806.secart +++| DFEDATE=DFTXT(L-3:L+6) 01809 M01S01807.secart +++| ENDIF 01810 M01S01808.secart +++| 01811 M01S01809.secart +++| ELSE IF (SM.EQ.2) THEN 01812 M01S01810.secart +++| DFTITLE=DFTXT(21:60) 01813 M01S01811.secart +++| 01814 M01S01812.secart +++| ELSE IF (SM.EQ.3) THEN 01815 M01S01813.secart +++| DFVERSN=DFTXT(21:40) 01816 M01S01814.secart +++| 01817 M01S01815.secart +++|* OTHER SYSJOB MSG-S INCLUDE DEAD START DATE MESSAGE WITH DATE. 01818 M01S01816.secart +++| 01819 M01S01817.secart +++| ELSE IF (DFTXT(32:41).EQ.'DEAD START') THEN 01820 M01S01818.secart +++| DFEDATE=DFTXT(21:30) 01821 M01S01819.secart +++| 01822 M01S01820.secart +++|* HOURLY LOG DATE MESSAGE. 01823 M01S01821.secart +++| 01824 M01S01822.secart +++| ELSE IF (DFTXT(5:9).EQ.'00.00' .AND. 01825 M01S01823.secart +++| . DFTXT(21:31).EQ.'SYSTEM DATE') THEN 01826 M01S01824.secart +++| DFEDATE=DFTXT(35:44) 01827 M01S01825.secart +++| ENDIF 01828 M01S01826.secart +++| 01829 M01S01827.secart +++|* ACCEPT START DATE, IF FOUND. 01830 M01S01828.secart +++| 01831 M01S01829.secart +++| IF (DFSDATE.EQ.' ' .AND. DFEDATE.NE.' ') DFSDATE=DFEDATE 01832 M01S01830.secart +++| 01833 M01S01831.secart +++|* NEED DATE, SYSTEM TITLE AND VERSION TO PROCESS LOG. 01834 M01S01832.secart +++| 01835 M01S01833.secart +++| IF (DFSDATE.EQ.' '.OR.DFTITLE.EQ.' '.OR.DFVERSN.EQ.' ') GOTO 100 01836 M01S01834.secart +++| 01837 M01S01835.secart +++|* REWIND FOR ROUTINE PROCESSING AND SKIP OVER DATE STAMP. 01838 M01S01836.secart +++| 01839 M01S01837.secart +++| REWIND 1 01840 M01S01838.secart +++| IF (DFIN.EQ.1) READ (1,10,END=130) DFTXT 01841 M01S01839.secart +++| PRT=.FALSE. 01842 M01S01840.secart +++| 01843 M01S01841.secart +++|* DROP THROUGH TO READ FIRST USABLE MESSAGE. 01844 M01S01842.secart +++| 01845 M01S01843.secart +++|* --------------------------------------------------------------------- 01846 M01S01844.secart +++|* ROUTINE DAYFILE MESSAGE PROCESSING. 01847 M01S01845.secart +++|* --------------------------------------------------------------------- 01848 M01S01846.secart +++| 01849 M01S01847.secart +++|* GET MSG, COUNT & MARK AS TO SOURCE ('-' IN COL 19 = DAYFILE). 01850 M01S01848.secart +++| 01851 M01S01849.secart +++| 120 READ (1,10,END=130) DFTXT 01852 M01S01850.secart +++| DFIN=DFIN+1 01853 M01S01851.secart +++| DFTXT(19:19)='-' 01854 M01S01852.secart +++| DFETIME=DFTXT(1:10) 01855 M01S01853.secart +++| RETURN 01856 M01S01854.secart +++| 01857 M01S01855.secart +++|* EOF ALTERNATE EXIT. 01858 M01S01856.secart +++| 01859 M01S01857.secart +++| 130 DFEOF=.TRUE. 01860 M01S01858.secart +++| WRITE (8,*) ' === EOF DAYFILE LOG ',LFN,', ',DFIN,' MESSAGES' 01861 M01S01859.secart +++| RETURN 1 01862 M01S01860.secart +++| 01863 M01S01861.secart +++|** ENTRY - CALL DFMSG(*NNN) 01864 M01S01862.secart +++|* *NNN IS ALTERNATE EXIT TAKEN WHEN DFEOF = .TRUE. AT 01865 M01S01863.secart +++|* TIME OF CALL. 01866 M01S01864.secart +++|* 01867 M01S01865.secart +++|* EXIT - ANNOTATED DAYFILE MESSAGE IS WRITTEN TO COMPOSITE 01868 M01S01866.secart +++|* LOG FILE ON UNIT 3 AND NEXT RECORD IS READ, OR 01869 M01S01867.secart +++|* *DFEOF* IS SET .TRUE. 01870 M01S01868.secart +++|* 01871 M01S01869.secart +++|* ERROR - NONE. 01872 M01S01870.secart +++|* 01873 M01S01871.secart +++|* PRINTOUT - 01874 M01S01872.secart +++|* ANNOTATED COPIES OF CERTAIN DAYFILE LOG MESSAGES: 01875 M01S01873.secart +++|* - LEVEL ZERO DEADSTART MESSAGES, 01876 M01S01874.secart +++|* - ALL WITH TIMESTAMP WITHIN TIME WINDOW, 01877 M01S01875.secart +++|* - ALL *SUI* MESSAGES, 01878 M01S01876.secart +++|* - ALL CONSOLE OPERATOR COMMAND MESSAGES, 01879 M01S01877.secart +++|* - ANY CONTAINING SELECTED TEXT STRING. 01880 M01S01878.secart +++|* 01881 M01S01879.secart +++|* CALLS - *JSNLVL0* TO UPDATE D/S UNIQUE JSN PREFIX CODE. 01882 M01S01880.secart +++|* *TMCHECK* TO CHECK FOR TIME WINDOWS. 01883 M01S01881.secart +++|* *JSNTRAK* TO COLLECT ATTRIBUTES IN JSN TRACE TABLE. 01884 M01S01882.secart +++|* *PARSE* TO EXTRACT DATA ITEMS FROM LOG MESSAGES. 01885 M01S01883.secart +++|* *PICKUSR* TO CHECK NEW USERIDS FOR SELECTION. 01886 M01S01884.secart +++|* *MSCHECK* TO CHECK FOR SELECTED TEXT STRINGS. 01887 M01S01885.secart +++|* 01888 M01S01886.secart +++|* USES - COMMON /CTL/ FOR GLOBAL VARIABLES. 01889 M01S01887.secart +++|* COMMON /DFL/ FOR DAYFILE-SPECIFIC VARIABLES. 01890 M01S01888.secart +++|* COMMON /TRC/ FOR JSN TRACE TABLE DATA. 01891 M01S01889.secart +++|* 01892 M01S01890.secart +++|* NOTES - THIS ROUTINE PROCESSES MESSAGE READ DURING PREVIOUS 01893 M01S01891.secart +++|* CALL AND THEN READS NEXT RECORD BEFORE RETURNING. 01894 M01S01892.secart +++|* THIS ALLOWS *SECART* TO SEE TIMESTAMP OF NEXT RECORD 01895 M01S01893.secart +++|* AND DECIDE WHEN TO PROCESS VIS A VIS ACCOUNT LOG. 01896 M01S01894.secart +++| 01897 M01S01895.secart +++| ENTRY DFMSG(*) 01898 M01S01896.secart +++| 01899 M01S01897.secart +++|* WATCH FOR SYSJOB MSGS W/ DATE. 01900 M01S01898.secart +++| 01901 M01S01899.secart +++| IF (DFTXT(13:17).EQ.'SYS S') THEN 01902 M01S01900.secart +++| 01903 M01S01901.secart +++|* SYSJOB HOURLY DATE MESSAGES. 01904 M01S01902.secart +++| 01905 M01S01903.secart +++| IF (DFTXT(5:9).EQ.'00.00' .AND. 01906 M01S01904.secart +++| . DFTXT(21:31).EQ.'SYSTEM DATE') THEN 01907 M01S01905.secart +++| DFEDATE=DFTXT(35:44) 01908 M01S01906.secart +++| 01909 M01S01907.secart +++|* SYSJOB DEAD START MESSAGE W/ DATE. 01910 M01S01908.secart +++| 01911 M01S01909.secart +++| ELSE IF (DFTXT(32:41).EQ.'DEAD START') THEN 01912 M01S01910.secart +++| DFEDATE=DFTXT(21:30) 01913 M01S01911.secart +++| 01914 M01S01912.secart +++|* LEVEL 0 REQUIRES UPDATE D/S UNIQUE CODE. 01915 M01S01913.secart +++| 01916 M01S01914.secart +++| IF (DFTXT(43:51).EQ.'LEVEL 0.') CALL JSNLVL0 01917 M01S01915.secart +++| ENDIF 01918 M01S01916.secart +++| 01919 M01S01917.secart +++|* DETECT SPECIAL JSN FOR LEVEL 0 DEADSTART TOO. 01920 M01S01918.secart +++| 01921 M01S01919.secart +++| ELSE IF (DFTXT(13:17).EQ.'AAAAA') THEN 01922 M01S01920.secart +++| PRT=.TRUE. 01923 M01S01921.secart +++| CALL JSNLVL0 01924 M01S01922.secart +++| ENDIF 01925 M01S01923.secart +++| 01926 M01S01924.secart +++|* INSERT D/S UNIQUE CODE LETTER AS JSN PREFIX. 01927 M01S01925.secart +++| 01928 M01S01926.secart +++| DFTXT(11:12)=DSU//'.' 01929 M01S01927.secart +++| 01930 M01S01928.secart +++|* CHECK FOR TIME WINDOW PRINTOUT. 01931 M01S01929.secart +++| 01932 M01S01930.secart +++| CALL TMCHECK(DFETIME,PRT) 01933 M01S01931.secart +++| 01934 M01S01932.secart +++|* MATCH/COLLECT JSN AND DATE/TIME GROUP (DTG). 01935 M01S01933.secart +++| 01936 M01S01934.secart +++| JSN=DFTXT(11:16) 01937 M01S01935.secart +++| JCL=DFTXT(17:17) 01938 M01S01936.secart +++| CALL JSNTRAK(JSN,JCL,DFEDTG,N,1) 01939 M01S01937.secart +++| 01940 M01S01938.secart +++|* CRACK 1ST WORD TO PICK OUT UJN OR USER, SUI, OPERATOR COMMANDS. 01941 M01S01939.secart +++|* SHORTSTOP COMMENT LINES. 01942 M01S01940.secart +++| 01943 M01S01941.secart +++| I=21 01944 M01S01942.secart +++| CALL PARSE(DFTXT,I,VERB) 01945 M01S01943.secart +++| IF (VERB.EQ.'*') GOTO 140 01946 M01S01944.secart +++| 01947 M01S01945.secart +++|* ACCOMMODATE USE OF $ AND / COMMAND PREFIXES ONLY. 01948 M01S01946.secart +++| 01949 M01S01947.secart +++| IF (VERB.EQ.' ') THEN 01950 M01S01948.secart +++| IF (INDEX('$/',DFTXT(I-1:I-1)).NE.0) THEN 01951 M01S01949.secart +++| CALL PARSE(DFTXT,I,VERB) 01952 M01S01950.secart +++| ELSE 01953 M01S01951.secart +++| GOTO 140 01954 M01S01952.secart +++| ENDIF 01955 M01S01953.secart +++| ENDIF 01956 M01S01954.secart +++| 01957 M01S01955.secart +++|* TRY TO EXTRACT UJN FROM FIRST DAYFILE MESSAGE FOR EACH JOB. 01958 M01S01956.secart +++| 01959 M01S01957.secart +++| IF ((ML(1,N).EQ.1) .AND. JN(N).EQ.' ') THEN 01960 M01S01958.secart +++| JN(N)=VERB 01961 M01S01959.secart +++| CALL PICKUJN(JN(N),MK(N)) 01962 M01S01960.secart +++| ENDIF 01963 M01S01961.secart +++| 01964 M01S01962.secart +++|* WATCH FOR USER COMMAND TO EXTRACT FM,UN & CHECK FOR SELECTION. 01965 M01S01963.secart +++| 01966 M01S01964.secart +++| IF (VERB.EQ.'USER') THEN 01967 M01S01965.secart +++| CALL PARSE(DFTXT,I,USR) 01968 M01S01966.secart +++| CALL PARSE(DFTXT,I,NUL) 01969 M01S01967.secart +++| CALL PARSE(DFTXT,I,FAM) 01970 M01S01968.secart +++| IF (UN(N).EQ.' ' .AND .FN(N).EQ.' ') THEN 01971 M01S01969.secart +++| UN(N) = USR 01972 M01S01970.secart +++| FN(N) = FAM 01973 M01S01971.secart +++| ENDIF 01974 M01S01972.secart +++| CALL PICKUSR(FAM,USR,MK(N)) 01975 M01S01973.secart +++| 01976 M01S01974.secart +++|* SPECIAL CASE 'SUI' COMMAND AS USERNAME. 01977 M01S01975.secart +++| 01978 M01S01976.secart +++| ELSE IF (VERB.EQ.'SUI') THEN 01979 M01S01977.secart +++| CALL PARSE(DFTXT,I,USR) 01980 M01S01978.secart +++| IF (UN(N).EQ.' ') UN(N) = USR 01981 M01S01979.secart +++| CALL PICKUSR(FN(N),USR,MK(N)) 01982 M01S01980.secart +++| 01983 M01S01981.secart +++|* SPECIAL CASE PRINTOUT OF OPERATOR COMMANDS. 01984 M01S01982.secart +++| 01985 M01S01983.secart +++| ELSE IF (VERB.EQ.'DS'.AND.DFTXT(I-1:I).EQ.', ') THEN 01986 M01S01984.secart +++| PRT=.TRUE. 01987 M01S01985.secart +++| ENDIF 01988 M01S01986.secart +++| 01989 M01S01987.secart +++|* FINAL CHECK FOR DIRECTIVE SELECTED TEXT STRING(S). 01990 M01S01988.secart +++| 01991 M01S01989.secart +++| 140 CALL MSCHECK(DFTXT(21:100),PRT) 01992 M01S01990.secart +++| 01993 M01S01991.secart +++|* PRINTOUT MESSAGE FOR ANY REASON. 01994 M01S01992.secart +++| 01995 M01S01993.secart +++| IF (PRT) THEN 01996 M01S01994.secart +++| WRITE (8,10) DFTXT 01997 M01S01995.secart +++| PRT=.FALSE. 01998 M01S01996.secart +++| ENDIF 01999 M01S01997.secart +++| 02000 M01S01998.secart +++|* PUT ANNOTATED MESSAGE INTO MERGED LOG FILE. 02001 M01S01999.secart +++| 02002 M01S02000.secart +++| WRITE (3,10) DFTXT 02003 M01S02001.secart +++| GOTO 120 02004 M01S02002.secart +++| 02005 M01S02003.secart +++| END 02006 M01S02004.secart +++| 02007 M01S02005.secart +++|* --------------------------------------------------------------------- 02008 M01S02006.secart +++| SUBROUTINE ACSCAN(LFN,*) 02009 M01S02007.secart +++|** ACSCAN - ACCOUNT LOG MESSAGE PROCESSING. 02010 M01S02008.secart +++|* 02011 M01S02009.secart +++|* *ACSCAN* PROVIDES THE PRIMARY ROUTINES FOR PROCESSING ACCOUNT 02012 M01S02010.secart +++|* LOG MESSAGES. IT PROVIDES AN ENTRY POINT TO PRE-SCAN THE LOG 02013 M01S02011.secart +++|* FILE TO VALIDATE FORMAT AND EXTRACT CRITICAL SYSTEM ID AND 02014 M01S02012.secart +++|* DATE/TIME DATA, AND ANOTHER FOR ROUTINE PROCESSING OF EACH 02015 M01S02013.secart +++|* LOG MESSAGE IN THE SEQUENCE CONTROLLED BY *SECART*. ANNOTATED 02016 M01S02014.secart +++|* ACCOUNT LOG MESSAGES ARE WRITTEN TO COMPOSITE LOG ON UNIT 3. 02017 M01S02015.secart +++| 02018 M01S02016.secart +++| IMPLICIT INTEGER(A-Z) 02019 M01S02017.secart +++| 02020 M01S02018.secart +++| PARAMETER (MXJ=1000) 02021 M01S02019.secart +++|* SIZE OF JSN TRACE TABLE. 02022 M01S02020.secart +++| 02023 M01S02021.secart +++| EQUIVALENCE (ACEDTG,ACEDATE) 02024 M01S02022.secart +++|* /ACL/ ACEDTG*20 = ACEDATE*10 // ACETIME*10. 02025 M01S02023.secart +++| 02026 M01S02024.secart +++| 02027 M01S02025.secart +++| CHARACTER*10 ACEDATE 02028 M01S02026.secart +++|* /ACL/ (EQV) ACCOUNT LOG END DATE. 02029 M01S02027.secart +++| 02030 M01S02028.secart +++| CHARACTER*20 ACEDTG 02031 M01S02029.secart +++|* /ACL/ (EQV) ACCOUNT LOG END DATE/TIME. 02032 M01S02030.secart +++| 02033 M01S02031.secart +++| LOGICAL ACEOF 02034 M01S02032.secart +++|* /CTL/ ACCOUNT LOG EOF FLAG. 02035 M01S02033.secart +++| 02036 M01S02034.secart +++| CHARACTER*10 ACETIME 02037 M01S02035.secart +++|* /ACL/ (EQV) ACCOUNT LOG END TIME. 02038 M01S02036.secart +++| 02039 M01S02037.secart +++| INTEGER ACIN 02040 M01S02038.secart +++|* /CTL/ ACCOUNT LOG MESSAGE COUNTER. 02041 M01S02039.secart +++| 02042 M01S02040.secart +++| CHARACTER*10 ACSDATE 02043 M01S02041.secart +++|* /ACL/ (EQV) ACCOUNT LOG START DATE. 02044 M01S02042.secart +++| 02045 M01S02043.secart +++| CHARACTER*10 ACSTIME 02046 M01S02044.secart +++|* /ACL/ (EQV) ACCOUNT LOG START TIME. 02047 M01S02045.secart +++| 02048 M01S02046.secart +++| CHARACTER*40 ACTITLE 02049 M01S02047.secart +++|* /ACL/ ACCOUNT LOG SYSTEM TITLE. 02050 M01S02048.secart +++| 02051 M01S02049.secart +++| CHARACTER*100 ACTXT 02052 M01S02050.secart +++|* /ACL/ CURRENT ACCOUNT LOG MESSAGE TEXT. 02053 M01S02051.secart +++| 02054 M01S02052.secart +++| CHARACTER*20 ACVERSN 02055 M01S02053.secart +++|* /ACL/ ACCOUNT LOG SYSTEM VERSION. 02056 M01S02054.secart +++| 02057 M01S02055.secart +++| LOGICAL DFEOF 02058 M01S02056.secart +++|* /CTL/ DAYFILE LOG EOF FLAG. 02059 M01S02057.secart +++| 02060 M01S02058.secart +++| INTEGER DFIN 02061 M01S02059.secart +++|* /CTL/ DAYFILE LOG MESSAGE COUNTER. 02062 M01S02060.secart +++| 02063 M01S02061.secart +++| CHARACTER*1 DSU 02064 M01S02062.secart +++|* /TRC/ DEADSTART UNIQUE PREFIX CODE. 02065 M01S02063.secart +++| 02066 M01S02064.secart +++| CHARACTER*7 FAM 02067 M01S02065.secart +++|* TEMP - FAMILYNAME VARIABLE. 02068 M01S02066.secart +++| 02069 M01S02067.secart +++| CHARACTER*7 FN(MXJ) 02070 M01S02068.secart +++|* /TRC/ FAMILY NAME COLUMN IN TRACE TABLE. 02071 M01S02069.secart +++| 02072 M01S02070.secart +++| INTEGER JBLIMIT 02073 M01S02071.secart +++|* /CTL/ UNIT JOB PRINTOUT MESSAGE LIMIT. 02074 M01S02072.secart +++| 02075 M01S02073.secart +++| CHARACTER*1 JC(MXJ) 02076 M01S02074.secart +++|* /TRC/ JOB CLASS COLUMN IN TRACE TABLE. 02077 M01S02075.secart +++| 02078 M01S02076.secart +++| CHARACTER*1 JCL 02079 M01S02077.secart +++|* TEMP - JOB CLASS VARIABLE. 02080 M01S02078.secart +++| 02081 M01S02079.secart +++| CHARACTER*7 JN(MXJ) 02082 M01S02080.secart +++|* /TRC/ UJN COLUMN IN TRACE TABLE. 02083 M01S02081.secart +++| 02084 M01S02082.secart +++| CHARACTER*6 JS(MXJ) 02085 M01S02083.secart +++|* /TRC/ D.JSN COLUMN IN TRACE TABLE. 02086 M01S02084.secart +++| 02087 M01S02085.secart +++| CHARACTER*6 JSN 02088 M01S02086.secart +++|* TEMP JSN VARIABLE. 02089 M01S02087.secart +++| 02090 M01S02088.secart +++| CHARACTER*7 LFN 02091 M01S02089.secart +++|* ARG - LFN FOR ACCOUNT LOG FILE. 02092 M01S02090.secart +++| 02093 M01S02091.secart +++| CHARACTER*4 MID 02094 M01S02092.secart +++|* TEMP - ACCOUNT MESSAGE ID. 02095 M01S02093.secart +++| 02096 M01S02094.secart +++| CHARACTER*5 MK(MXJ) 02097 M01S02095.secart +++|* /TRC/ JOB SELECTION MARKS IN TRACE TABLE. 02098 M01S02096.secart +++| 02099 M01S02097.secart +++| INTEGER ML(2,MXJ) 02100 M01S02098.secart +++|* /CTL/ DFL/AFL MSG COUNTS FOR TRACE TABLE. 02101 M01S02099.secart +++| 02102 M01S02100.secart +++| INTEGER NJ 02103 M01S02101.secart +++|* /CTL/ CURRENT NUMBER JOBS IN TRACE TABLE. 02104 M01S02102.secart +++| 02105 M01S02103.secart +++| CHARACTER*20 NUDTG 02106 M01S02104.secart +++|* TEMP - NEW DATE/TIME GROUP VARIABLE. 02107 M01S02105.secart +++| 02108 M01S02106.secart +++| CHARACTER*6 NUJSN 02109 M01S02107.secart +++|* TEMP - NEW JSN VARIABLE. 02110 M01S02108.secart +++| 02111 M01S02109.secart +++| LOGICAL PRT 02112 M01S02110.secart +++|* FLAG TO PRINTOUT ACCOUNT LOG MESSAGE. 02113 M01S02111.secart +++| 02114 M01S02112.secart +++| CHARACTER*2 SC 02115 M01S02113.secart +++|* TEMP - IGNORED WORD FROM *PARSE*. 02116 M01S02114.secart +++| 02117 M01S02115.secart +++| CHARACTER*20 TE(MXJ) 02118 M01S02116.secart +++|* /TRC/ JOB DATE/TIME END IN TRACE TABLE. 02119 M01S02117.secart +++| 02120 M01S02118.secart +++| CHARACTER*7 TN(MXJ) 02121 M01S02119.secart +++|* /TRC/ JOB TERMINAL NAME IN TRACE TABLE. 02122 M01S02120.secart +++| 02123 M01S02121.secart +++| CHARACTER*7 TRM 02124 M01S02122.secart +++|* TEMP - TERMINAL ID VARIABLE. 02125 M01S02123.secart +++| 02126 M01S02124.secart +++| CHARACTER*20 TS(MXJ) 02127 M01S02125.secart +++|* /TRC/ JOB DATE/TIME START IN TRACE TABLE. 02128 M01S02126.secart +++| 02129 M01S02127.secart +++| CHARACTER*7 UN(MXJ) 02130 M01S02128.secart +++|* /TRC/ JOB USERNAME IN TRACE TABLE. 02131 M01S02129.secart +++| 02132 M01S02130.secart +++| CHARACTER*7 USR 02133 M01S02131.secart +++|* TEMP - USERNAME VARIABLE. 02134 M01S02132.secart +++| 02135 M01S02133.secart +++| CHARACTER*1 X 02136 M01S02134.secart +++|* TEMP - USED IN D.JSN ATTRIBUTES RECOVERY. 02137 M01S02135.secart +++| 02138 M01S02136.secart +++| 02139 M01S02137.secart +++|* ACCOUNT LOG SPECIFIC VARIABLES. 02140 M01S02138.secart +++| 02141 M01S02139.secart +++| COMMON /ACL/ ACSDATE 02142 M01S02140.secart +++| COMMON /ACL/ ACSTIME 02143 M01S02141.secart +++| COMMON /ACL/ ACEDATE 02144 M01S02142.secart +++| COMMON /ACL/ ACETIME 02145 M01S02143.secart +++| COMMON /ACL/ ACTITLE 02146 M01S02144.secart +++| COMMON /ACL/ ACVERSN 02147 M01S02145.secart +++| COMMON /ACL/ ACTXT 02148 M01S02146.secart +++| 02149 M01S02147.secart +++|* GLOBAL NUMERIC/LOGICAL VARIABLES AND PARAMETERS. 02150 M01S02148.secart +++| 02151 M01S02149.secart +++| COMMON /CTL/ NJ 02152 M01S02150.secart +++| COMMON /CTL/ ACIN 02153 M01S02151.secart +++| COMMON /CTL/ DFIN 02154 M01S02152.secart +++| COMMON /CTL/ ACEOF 02155 M01S02153.secart +++| COMMON /CTL/ DFEOF 02156 M01S02154.secart +++| COMMON /CTL/ ML 02157 M01S02155.secart +++| COMMON /CTL/ JBLIMIT 02158 M01S02156.secart +++| 02159 M01S02157.secart +++|* JSN TRACE TABLE STORAGE. 02160 M01S02158.secart +++| 02161 M01S02159.secart +++| COMMON /TRC/ DSU 02162 M01S02160.secart +++| COMMON /TRC/ MK
Proceed to Part 1
cdc/nos2.source/opl.opl871/deck/secart.txt · Last modified: by 127.0.0.1