cdc:nos2.source:opl.opl871:deck:secart
Deck SECART
Library Member Format: MODIFY
Listing Sections
- Deck SECART Start
- Deck SECART Part 1 (Line 2160)
Source
Seq # *Modification Id* Act ----------------------------+ 00001 M00S00001.secart +++|*NOSEQ 00002 M00S00002.secart +++| PROGRAM SECART
Line S00003 Modification History | |
---|---|
M01 (Removed by) | 281l803 |
Seq # *Modification Id* Act ----------------------------+ 00003 M01S00003.281l803 ---|* COMMENT. COPYRIGHT CONTROL DATA CORPORATION 1986. 00004 M00S00004.secart +++|*** SECART - SECURITY AUDIT REDUCTION TOOL.
Line S00001 Modification History | |
---|---|
M01 (Added by) | 281l803 |
Seq # *Modification Id* Act ----------------------------+ 00005 M01S00001.281l803 +++|* 00006 M01S00002.281l803 +++|* COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. 00007 M00S00005.secart +++|* 00008 M00S00006.secart +++|* T. A. CURETON. 86/06/30. 00009 M00S00007.secart +++| 00010 M00S00008.secart +++|*** OVERVIEW. 00011 M00S00009.secart +++|* 00012 M00S00010.secart +++|* *SECART* IS A STAND-ALONE SECURITY ADMINISTRATOR UTILITY WHICH 00013 M00S00011.secart +++|* DIGESTS BOTH *ACCOUNT* AND *DAYFILE* LOG MESSAGES, REDUCING 00014 M00S00012.secart +++|* THE VOLUME OF DATA WHICH MUST BE REVIEWED AND PRODUCES 00015 M00S00013.secart +++|* PRINTOUTS AND FILES USEFUL FOR SECURITY AUDITING PURPOSES. 00016 M00S00014.secart +++| 00017 M00S00015.secart +++|*** FUNCTIONS. 00018 M00S00016.secart +++|* 00019 M00S00017.secart +++|* - MERGE BY TIME SEQUENCE MESSAGES FROM RAW *DAYFILE* AND 00020 M00S00018.secart +++|* *ACCOUNT* LOGS TO PRODUCE A NEAR-NORMAL CAUSE-AND-EFFECT 00021 M00S00019.secart +++|* SERIAL SEQUENCE AND ESTABLISH EVENT CONTEXT. 00022 M00S00020.secart +++|* 00023 M00S00021.secart +++|* - SELECT MESSAGES FROM RAW LOGS FOR SERIAL PRINTOUT BASED ON 00024 M00S00022.secart +++|* CRITERIA SPECIFIED IN DIRECTIVES. 00025 M00S00023.secart +++|* 00026 M00S00024.secart +++|* - EXTRACT JSN-S, USER NAMES, AND OTHER ATTRIBUTES OF EACH JOB 00027 M00S00025.secart +++|* ENCOUNTERED IN THE RAW LOG INPUT(S). 00028 M00S00026.secart +++|* 00029 M00S00027.secart +++|* - RECOGNIZE MESSAGES INDICATING LEVEL 0 DEADSTARTS WHICH RESET 00030 M00S00028.secart +++|* JSN GENERATION SEQUENCE AND AUGMENT JSN IDENTIFIERS TO 00031 M00S00029.secart +++|* UNIQUELY IDENTIFY EACH JOB. 00032 M00S00030.secart +++|* 00033 M00S00031.secart +++|* - RECOGNIZE JOB RECOVERY EVENTS AND, WHERE POSSIBLE, RECOVER 00034 M00S00032.secart +++|* JOB ATTRIBUTES FROM PREVIOUS JSN TRACE TABLE ENTRIES. 00035 M00S00033.secart +++|* 00036 M00S00034.secart +++|* - COLLECT AND PRINTOUT STATISTICS ON USAGE OF *ACCOUNT* LOG 00037 M00S00035.secart +++|* MESSAGE IDENTIFIERS. 00038 M00S00036.secart +++|* 00039 M00S00037.secart +++|* - SORT AND PRINTOUT JSN TRACE TABLE PER DIRECTIVES. 00040 M00S00038.secart +++|* 00041 M00S00039.secart +++|* - SORT COMPOSITE (MERGED) LOG TO GROUP MESSAGES BY UNIQUE JSN. 00042 M00S00040.secart +++|* 00043 M00S00041.secart +++|* - SELECT AND PRINTOUT UNIT JOBS PER DIRECTIVES. APPLY SAMPLE 00044 M00S00042.secart +++|* LIMIT TO NUMBER OF MESSAGES PRINTED FOR EACH JOB TO REDUCE 00045 M00S00043.secart +++|* RISK OF MASSIVE PRINTOUT OR EXCEEDING RESOURCE LIMITS. 00046 M00S00044.secart +++| 00047 M00S00045.secart +++|*** COMMAND FORMAT. 00048 M00S00046.secart +++|* 00049 M00S00047.secart +++|* SECART(P1,P2,...PN) 00050 M00S00048.secart +++|* 00051 M00S00049.secart +++|* EACH PARAMETER SPECIFIES THE LFN OF A FILE PROVIDED AS INPUT 00052 M00S00050.secart +++|* OR TO BE PRODUCED AS AN OUTPUT OF THE PROGRAM. PARAMETERS 00053 M00S00051.secart +++|* MUST BE IN KEYWORD=VALUE FORMAT AND MAY BE IN ANY ORDER. A 00054 M00S00052.secart +++|* VALUE OF *0* (ZERO) SPECIFIES NO FILE IS PROVIDED OR PRODUCED. 00055 M00S00053.secart +++|* A PARAMETER OMITTED OR SPECIFIED WITHOUT A VALUE FIELD WILL 00056 M00S00054.secart +++|* ASSUME A DEFAULT VALUE AS DEFINED IN THE FOLLOWING TABLE: 00057 M00S00055.secart +++|* 00058 M00S00056.secart +++|* PARAM OMIT NO_VALUE DESCRIPTION 00059 M00S00057.secart +++|* 00060 M00S00058.secart +++|* *D* 0 DFLOG RAW DAYFILE LOG INPUT. 00061 M00S00059.secart +++|* *A* 0 ACLOG RAW ACCOUNT LOG INPUT. 00062 M00S00060.secart +++|* *C* 0 COMBO COMPOSITE LOG OUTPUT/INPUT. 00063 M00S00061.secart +++|* *J* 0 JOBS UNIT JOBS COMPOSITE LOG OUTPUT/INPUT. 00064 M00S00062.secart +++|* *M* 0 MSGID ACCOUNT MSG ID REFERENCE INPUT FILE. 00065 M00S00063.secart +++|* *T* 0 TRACE JSN TRACE TABLE INPUT AND OUTPUT. 00066 M00S00064.secart +++|* *I* INPUT INPUT DIRECTIVES INPUT FILE. 00067 M00S00065.secart +++|* *L* OUTPUT OUTPUT PRINTOUTS FILE. REQUIRED OUTPUT. 00068 M00S00066.secart +++|* 00069 M00S00067.secart +++|* AT LEAST ONE OF THE FILES IDENTIFIED BY PARAMETERS *D*,*A*, 00070 M00S00068.secart +++|* C*,*J*,*T* MUST BE SPECIFIED TO PROVIDE INPUT(S) FOR *SECART* 00071 M00S00069.secart +++|* PROCESSING. SPECIFYING EITHER (OR BOTH) RAW LOGS (*D*,*A*) 00072 M00S00070.secart +++|* DEFINES AN INITIAL RUN WITH COMPOSITE (*C*) AND UNIT JOB (*J*) 00073 M00S00071.secart +++|* LOGS AND JSN TRACE TABLE (*T*) PRODUCED AS OUTPUT FILES. 00074 M00S00072.secart +++|* 00075 M00S00073.secart +++|* IF NO RAW LOG FILE IS SPECIFIED, *SECART* WILL ASSUME RERUN 00076 M00S00074.secart +++|* MODE AND LOOK FOR 1) A COMPOSITE LOG OR 2) UNIT JOBS LOG AS 00077 M00S00075.secart +++|* INPUT. IF A COMPOSITE LOG (*C*) IS PROVIDED, THE UNIT JOBS 00078 M00S00076.secart +++|* LOG (*J*) WILL BE AN OUTPUT FILE. IF A UNIT JOBS LOG (*J*) IS 00079 M00S00077.secart +++|* THE LOG INPUT FILE, ONLY PRINTOUTS WILL BE PRODUCED. 00080 M00S00078.secart +++|* 00081 M00S00079.secart +++|* THE JSN TRACE TABLE FILE (*T*) IS PRODUCED ONLY DURING AN 00082 M00S00080.secart +++|* INITIAL RUN. IT CONTAINS AN ENTRY FOR EACH JOB FOUND IN THE 00083 M00S00081.secart +++|* RAW LOG(S) AND SHOULD BE SAVED TO FACILLITATE RERUNS. ANY 00084 M00S00082.secart +++|* *SECART* RERUN USING A PRE-PROCESSED LOG FILE REQUIRES 00085 M00S00083.secart +++|* PROVIDING THE TRACE TABLE FILE WHICH CORRESPONDS TO THE INPUT 00086 M00S00084.secart +++|* LOG. PROVIDING A JSN TRACE TABLE FILE AS THE ONLY INPUT IS 00087 M00S00085.secart +++|* USEFUL FOR RE-SORTING AND/OR PRINTOUT OF THE JSN TRACE TABLE. 00088 M00S00086.secart +++|* TO AID RECOVERY OF JOB ATTRIBUTES FROM A PREVIOUS SET OF RAW 00089 M00S00087.secart +++|* LOGS, THE TRACE TABLE (OR A SUBSET) FROM THE PREVIOUS RUN MAY 00090 M00S00088.secart +++|* BE PROVIDED FOR AN INITIAL RAW LOGS *SECART* RUN. SINCE THIS 00091 M00S00089.secart +++|* FILE WILL BE FIRST READ, THEN REWRITTEN, AN EXPENDABLE COPY OF 00092 M00S00090.secart +++|* THE TRACE TABLE FILE (OR SUBSET) SHOULD BE PROVIDED. 00093 M00S00091.secart +++|* 00094 M00S00092.secart +++|* THE INPUT FILE (*I*) MAY CONTAIN *SECART* DIRECTIVES WHICH 00095 M00S00093.secart +++|* SPECIFY CRITERIA FOR SELECTING MESSAGES AND/OR UNIT JOBS FOR 00096 M00S00094.secart +++|* PRINTOUT, SORTING JSN TRACE TABLE ENTRIES, AND LIMITING UNIT 00097 M00S00095.secart +++|* JOB PRINTOUTS. SEE DIRECTIVES SECTION BELOW FOR DESCRIPTIONS. 00098 M00S00096.secart +++|* 00099 M00S00097.secart +++|* A LIST FILE (*L*) IS ALWAYS PRODUCED AND THE *L* PARAMETER MAY 00100 M00S00098.secart +++|* BE USED TO DIRECT PRINTOUTS TO A FILENAME. THE SEQUENCE OF 00101 M00S00099.secart +++|* PRINTOUTS MAY INCLUDE: 00102 M00S00100.secart +++|* 00103 M00S00101.secart +++|* - *SECART* DIRECTIVES AND ANY DIRECTIVE ERROR MESSAGES. 00104 M00S00102.secart +++|* 00105 M00S00103.secart +++|* - TIME SEQUENCED SERIAL PRINTOUT OF SELECTED MESSAGES. 00106 M00S00104.secart +++|* 00107 M00S00105.secart +++|* - *ACCOUNT* MESSAGE ID STATISTICS. 00108 M00S00106.secart +++|* 00109 M00S00107.secart +++|* - SORTED JSN TRACE TABLE. 00110 M00S00108.secart +++|* 00111 M00S00109.secart +++|* - SELECTED UNIT JOBS. 00112 M00S00110.secart +++| 00113 M00S00111.secart +++|*** DIRECTIVES. 00114 M00S00112.secart +++|* 00115 M00S00113.secart +++|* *SECART* DIRECTIVES MAY BE USED TO SPECIFY OPTIONS AND TO 00116 M00S00114.secart +++|* SELECT MESSAGES, TIME WINDOWS, AND JOBS FOR PRINTOUT. ALL 00117 M00S00115.secart +++|* SELECTIONS ARE ON AN INCLUSIVE OR BASIS. SELECTED *ACCOUNT* 00118 M00S00116.secart +++|* MESSAGE ID-S ARE FLAGGED AND OCCURRENCES TABULATED IN THE 00119 M00S00117.secart +++|* STATISTICS PRINTOUT. SELECTED JOBS ARE ANNOTATED TO SHOW 00120 M00S00118.secart +++|* SELECTION BASIS IN THE JSN TRACE TABLE PRINTOUT. 00121 M00S00119.secart +++|* 00122 M00S00120.secart +++|* EACH DIRECTIVE MUST BEGIN IN COLUMN 1 ON A SEPARATE INPUT 00123 M00S00121.secart +++|* LINE. THE *=* AFTER THE DIRECTIVE NAME IS REQUIRED. SYNTAX 00124 M00S00122.secart +++|* IS GENERALLY FREEFORM USING A COMMA AND/OR BLANKS TO SEPARATE 00125 M00S00123.secart +++|* ARGUMENTS. ITEMS SHOWN BELOW IN [BRACKETS] ARE OPTIONAL. 00126 M00S00124.secart +++|* REPETITIVE ARGUMENTS ARE INDICATED BY TRIPLE PERIODS AND MAY 00127 M00S00125.secart +++|* MAY BE ENTERED VIA MULTIPLE DIRECTIVES TO A MAXIMUM DEFINED 00128 M00S00126.secart +++|* BY TABLE SPACE (50 EACH TYPE). 00129 M00S00127.secart +++|* 00130 M00S00128.secart +++|* AMSG=MSID,MSID,... 00131 M00S00129.secart +++|* 00132 M00S00130.secart +++|* SELECTS FOR SERIAL PRINTOUT ALL MESSAGES CONTAINING 00133 M00S00131.secart +++|* ANY OF THE SPECIFIED ACCOUNT MESSAGE IDENTIFIERS. 00134 M00S00132.secart +++|* 00135 M00S00133.secart +++|* DMSG=[NN:]TEXTSTRING 00136 M00S00134.secart +++|* 00137 M00S00135.secart +++|* SELECTS FOR SERIAL PRINTOUT OF ALL DAYFILE 00138 M00S00136.secart +++|* MESSAGES CONTAINING SPECIFIED TEXT STRING. NN IS 00139 M00S00137.secart +++|* OPTIONAL AND SPECIFIES A START CHARACTER POSITION 00140 M00S00138.secart +++|* [1-80] RELATIVE TO MESSAGE PORTION OF DAYFILE. TEXT 00141 M00S00139.secart +++|* STRING IS UNDELIMITED, BEGINS IMMEDIATELY AFTER THE 00142 M00S00140.secart +++|* EQUAL OR COLON, AND ENDS WITH LAST NON-BLANK. 00143 M00S00141.secart +++|* 00144 M00S00142.secart +++|* TIME=HHMMSS[-HHMMSS] (OR) 00145 M00S00143.secart +++|* TIME=HH.MM.SS.[-HH.MM.SS] 00146 M00S00144.secart +++|* 00147 M00S00145.secart +++|* SPECIFIES TIME WINDOW FOR SERIAL PRINTOUT. 00148 M00S00146.secart +++|* SECONDS PORTION IS OPTIONAL. END TIME IS OPTIONAL 00149 M00S00147.secart +++|* BUT REQUIRES '-' SEPARATOR. DEFAULTS TO SAME AS 00150 M00S00148.secart +++|* START TIME FOR ONE SECOND WINDOW. 00151 M00S00149.secart +++|* 00152 M00S00150.secart +++|* TRACE=KEY,KEY,... 00153 M00S00151.secart +++|* 00154 M00S00152.secart +++|* SPECIFIES SORT KEYS FOR TRACE TABLE PRINTOUT. VALID 00155 M00S00153.secart +++|* KEYS: UJN,JSN,JC,SDT,EDT,FM,UN,TRM. DEFAULT IS SDT 00156 M00S00154.secart +++|* WHICH IS SEQUENCE OF ENCOUNTERING UNIQUE JSN-S. 00157 M00S00155.secart +++|* 00158 M00S00156.secart +++|* USER=FAMILY,USER 00159 M00S00157.secart +++|* 00160 M00S00158.secart +++|* SELECTS UNIT JOBS FOR PRINTOUT BY USER/FAMILY 00161 M00S00159.secart +++|* IDENTIFICATION. FAMILY MAY BE BLANK OR OMITTED TO 00162 M00S00160.secart +++|* SELECT DEFAULT FAMILY. ASTERISK MAY BE SPECIFIED 00163 M00S00161.secart +++|* FOR WILDCARD MATCH ON FAMILY OR USER. NOTE THAT 00164 M00S00162.secart +++|* USER=*,* SELECTS ALL JOBS. SINCE *SECART* RECOGNIZES 00165 M00S00163.secart +++|* THE USER INDEX IN A *SUI* COMMAND AS A USER ID, A 00166 M00S00164.secart +++|* USER INDEX MAY BE SPECIFIED IN PLACE OF THE USERNAME 00167 M00S00165.secart +++|* AND WILL BE RECOGNIZED WHEN A *SUI* WITH THAT UI IS 00168 M00S00166.secart +++|* ENCOUNTERED IN THE DAYFILE LOG. 00169 M00S00167.secart +++|* 00170 M00S00168.secart +++|* UJN=JOBNAME,... 00171 M00S00169.secart +++|* 00172 M00S00170.secart +++|* SELECTS UNIT JOBS FOR PRINTOUT BY JOBNAME FOUND IN 00173 M00S00171.secart +++|* FIRST DAYFILE MESSAGE (USUALLY). 00174 M00S00172.secart +++|* 00175 M00S00173.secart +++|* JSN=[D.]AAAA,... 00176 M00S00174.secart +++|* 00177 M00S00175.secart +++|* SELECTS UNIT JOBS FOR PRINTOUT BY JSN. 'D.' IS 00178 M00S00176.secart +++|* OPTIONAL AND SPECIFIES AN *SECART*-ASSIGNED PREFIX 00179 M00S00177.secart +++|* CODE USED TO RESOLVE JSN AMBIGUITY ACROSS LEVEL 0 00180 M00S00178.secart +++|* DEADSTARTS. 00181 M00S00179.secart +++|* 00182 M00S00180.secart +++|* TRM=TERMID,... 00183 M00S00181.secart +++|* 00184 M00S00182.secart +++|* SELECTS UNIT JOBS PRINTOUT BY TERMINAL ID. 00185 M00S00183.secart +++|* 00186 M00S00184.secart +++|* LIMIT=NNNN 00187 M00S00185.secart +++|* 00188 M00S00186.secart +++|* LIMITS UNIT JOB PRINTOUTS TO NNNN LINES EACH. HELPS 00189 M00S00187.secart +++|* REDUCE/AVOID MASSSIVE PRINTOUTS. 00190 M00S00188.secart +++| 00191 M00S00189.secart +++|*** CALLS. 00192 M00S00190.secart +++|* 00193 M00S00191.secart +++|* SORT/MERGE V5 - TO GROUP COMPOSITE LOG INTO UNIT JOBS AND 00194 M00S00192.secart +++|* - TO SORT TRACE TABLE (OPTIONAL). 00195 M00S00193.secart +++| 00196 M00S00194.secart +++|*** DAYFILE MESSAGES. 00197 M00S00195.secart +++|* 00198 M00S00196.secart +++|* *SECART* ISSUES TWO CLASSES OF DAYFILE MESSAGES - STATUS AND 00199 M00S00197.secart +++|* ERROR MESSAGES. 00200 M00S00198.secart +++|* 00201 M00S00199.secart +++|* STATUS MESSAGES MERELY INDICATE PROCESSING PHASES AND ARE 00202 M00S00200.secart +++|* SELF-EXPLANATORY. ALL STATUS MESSAGES BEGIN WITH ONE LEADING 00203 M00S00201.secart +++|* BLANK AND OCCUR IN THE FOLLOWING SEQUENCE: 00204 M00S00202.secart +++|* 00205 M00S00203.secart +++|* READING DIRECTIVES... 00206 M00S00204.secart +++|* 00207 M00S00205.secart +++|* LOADING TRACE TABLE... 00208 M00S00206.secart +++|* 00209 M00S00207.secart +++|* DIGESTING RAW LOG(S)... 00210 M00S00208.secart +++|* 00211 M00S00209.secart +++|* ACCOUNT MSG STATISTICS... 00212 M00S00210.secart +++|* 00213 M00S00211.secart +++|* TRACE TABLE PRINTOUT... 00214 M00S00212.secart +++|* 00215 M00S00213.secart +++|* SORTING OUT JOBS... 00216 M00S00214.secart +++|* 00217 M00S00215.secart +++|* EXTRACTING SELECTED JOBS... 00218 M00S00216.secart +++|* 00219 M00S00217.secart +++|* SECART COMPLETED. 00220 M00S00218.secart +++|* 00221 M00S00219.secart +++|* ALL ERROR MESSAGES ARE OFFSET WITH THREE LEADING BLANKS AND 00222 M00S00220.secart +++|* FLAGGED WITH ASTERISKS TO STAND OUT IN THE DAYFILE SEQUENCE. 00223 M00S00221.secart +++|* ERROR MESSAGES LEADING TO TERMINATION ALSO HAVE TRAILING 00224 M00S00222.secart +++|* ASTERISKS. ERROR MESSAGES AND EXPLANATIONS ARE: 00225 M00S00223.secart +++|* 00226 M00S00224.secart +++|* *** SECART TERMINATED. 00227 M00S00225.secart +++|* 00228 M00S00226.secart +++|* ABNORMAL *SECART* TERMINATION. PRECEEDING MESSAGE 00229 M00S00227.secart +++|* IDENTIFIES CAUSE. 00230 M00S00228.secart +++|* 00231 M00S00229.secart +++|* *** DIRECTIVE ERROR(S). 00232 M00S00230.secart +++|* 00233 M00S00231.secart +++|* SEE PRINTOUT FOR ERRORS. 00234 M00S00232.secart +++|* 00235 M00S00233.secart +++|* *** [LFN] NOT RAW ACCOUNT LOG. 00236 M00S00234.secart +++|* 00237 M00S00235.secart +++|* FIRST AND/OR SECOND LINES NOT IN DATE/TIME FORMAT. 00238 M00S00236.secart +++|* 00239 M00S00237.secart +++|* *** [LFN] NOT RAW DAYFILE LOG. 00240 M00S00238.secart +++|* 00241 M00S00239.secart +++|* FIRST AND/OR SECOND LINES NOT IN DATE/TIME FORMAT. 00242 M00S00240.secart +++|* 00243 M00S00241.secart +++|* *** LIST FILE REQUIRED. 00244 M00S00242.secart +++|* 00245 M00S00243.secart +++|* *L=0* PARAMETER IGNORED. 00246 M00S00244.secart +++|* 00247 M00S00245.secart +++|* *** LOG DATES MISMATCH. 00248 M00S00246.secart +++|* 00249 M00S00247.secart +++|* *ACCOUNT* VS *DAYFILE* SYSTEM DATE MISMATCH. LOG 00250 M00S00248.secart +++|* TIME PERIODS MAY NOT OVERLAP. 00251 M00S00249.secart +++|* 00252 M00S00250.secart +++|* *** MSGID SEQUENCE ERROR(S). 00253 M00S00251.secart +++|* 00254 M00S00252.secart +++|* *ACCOUNT* MESSAGE ID TABLE (*M*) OUT OF SEQUENCE. 00255 M00S00253.secart +++|* 00256 M00S00254.secart +++|* *** MSGID TABLE FULL *** 00257 M00S00255.secart +++|* 00258 M00S00256.secart +++|* *ACCOUNT* MESSAGE ID FILE EXCEEDS TABLE SIZE. 00259 M00S00257.secart +++|* 00260 M00S00258.secart +++|* *** SYSTEM ID MISMATCH *** 00261 M00S00259.secart +++|* 00262 M00S00260.secart +++|* *ACCOUNT* VS *DAYFILE* SYSTEM TITLE/VERSION 00263 M00S00261.secart +++|* MISMATCH. LOGS NOT FROM SAME SYSTEM. 00264 M00S00262.secart +++|* 00265 M00S00263.secart +++|* *** TRACE TABLE FULL *** 00266 M00S00264.secart +++|* 00267 M00S00265.secart +++|* JSN TRACE TABLE OVERFLOW. MAY BE DUE TO COMBINING 00268 M00S00266.secart +++|* TABLE FROM PREVIOUS LOGS. 00269 M00S00267.secart +++|* 00270 M00S00268.secart +++|* *** TRACE TABLE SEQUENCE ERROR(S). 00271 M00S00269.secart +++|* 00272 M00S00270.secart +++|* LOADED TRACE TABLE (*T*) NOT IN ASCENDING D.JSN 00273 M00S00271.secart +++|* SEQUENCE. 00274 M00S00272.secart +++|* 00275 M00S00273.secart +++|* *** UNRECOGNIZED PARAMETER: [PARAM] 00276 M00S00274.secart +++|* 00277 M00S00275.secart +++|* PROGRAM CALL PARAMETER NOT RECOGNIZED. 00278 M00S00276.secart +++| 00279 M00S00277.secart +++|*** PRINTOUT MESSAGES. 00280 M00S00278.secart +++|* 00281 M00S00279.secart +++|* INFORMATIVE AND ERROR MESSAGES INSERTED IN THE PRINTOUT ARE 00282 M00S00280.secart +++|* FLAGGED WITH === AND *** RESPECTIVELY. ALL ARE INDENTED THREE 00283 M00S00281.secart +++|* SPACES. A FEW INFORMATIVE MESSAGES ARE ALSO E X P A N D E D 00284 M00S00282.secart +++|* SO AS TO STAND OUT WHEN EMBEDDED IN LENGTHY SERIAL PRINTOUT. 00285 M00S00283.secart +++|* 00286 M00S00284.secart +++|* === EOF ACCOUNT LOG [LFN], NNNN MESSAGES (OR) 00287 M00S00285.secart +++|* === EOF DAYFILE LOG [LFN], NNNN MESSAGES 00288 M00S00286.secart +++|* 00289 M00S00287.secart +++|* MARKS LOG END-OF-FILE POINT AND NUMBER OF MESSAGES. 00290 M00S00288.secart +++|* 00291 M00S00289.secart +++|* === JSN NOT FOUND: [JSN] YY/MM/DD. HH.MM.SS. 00292 M00S00290.secart +++|* 00293 M00S00291.secart +++|* ORIGINAL JSN NOT IN TRACE TABLE. JOB ATTRIBUTES 00294 M00S00292.secart +++|* NOT RECOVERED. 00295 M00S00293.secart +++|* 00296 M00S00294.secart +++|* === JSN RECOVERED [D.JSN] 00297 M00S00295.secart +++|* 00298 M00S00296.secart +++|* JOB RECOVERY LINKED TO ORIGINAL JSN IN TRACE TABLE. 00299 M00S00297.secart +++|* JOB ATTRIBUTES RECOVERED VIA TRACE TABLE. 00300 M00S00298.secart +++|* 00301 M00S00299.secart +++|* ========= L E V E L 0 D / S ( X ) ========= 00302 M00S00300.secart +++|* 00303 M00S00301.secart +++|* INITIAL LEVEL 0 D/S RESETS JSN SEQUENCE. X IS NEW 00304 M00S00302.secart +++|* *SECART*-GENERATED PREFIX FOR SUBSEQUENT JOBS. 00305 M00S00303.secart +++|* 00306 M00S00304.secart +++|* ========= S A M P L E L I M I T ========= 00307 M00S00305.secart +++|* 00308 M00S00306.secart +++|* UNIT JOB PRINTOUT TRUNCATED PER *LIMIT* DIRECTIVE. 00309 M00S00307.secart +++|* 00310 M00S00308.secart +++|* *** TIME ARGUMENT ERROR. 00311 M00S00309.secart +++|* 00312 M00S00310.secart +++|* ERROR IN VALUE OR SYNTAX FOR *TIME* DIRECTIVE. 00313 M00S00311.secart +++|* 00314 M00S00312.secart +++|* ====== TIME WINDOW START ====== 00315 M00S00313.secart +++|* ====== TIME WINDOW END ====== 00316 M00S00314.secart +++|* 00317 M00S00315.secart +++|* INDICATES START/END OF SPECIFIED TIME WINDOW. 00318 M00S00316.secart +++|* 00319 M00S00317.secart +++|* *** TOO MANY ARGUMENTS, EXCESS IGNORED. 00320 M00S00318.secart +++|* 00321 M00S00319.secart +++|* REPETITIVE ARGUMENT LIST EXCEEDS TABLE SIZE. 00322 M00S00320.secart +++|* 00323 M00S00321.secart +++|* *** UNRECOGNIZED DIRECTIVE *** 00324 M00S00322.secart +++|* 00325 M00S00323.secart +++|* DIRECTIVE NOT RECOGNIZED - MISPELLED, ETC. 00326 M00S00324.secart +++| 00327 M00S00325.secart +++|** INTERNAL OVERVIEW. 00328 M00S00326.secart +++|* 00329 M00S00327.secart +++|* *SECART* IS WRITTEN IN FORTRAN FOR COMPILATION VIA FTN5. IT 00330 M00S00328.secart +++|* CONSISTS OF A MAIN PROGRAM, PRIMARY SUBROUTINES, AND SUPPORT 00331 M00S00329.secart +++|* SUBROUTINES ORGANIZED IN A TOP-DOWN STRUCTURE. THE MAIN 00332 M00S00330.secart +++|* PROGRAM ESTABLISHES OVERALL PROCESSING SEQUENCE AND CONTROL. 00333 M00S00331.secart +++|* EACH PRIMARY SUBROUTINE ISOLATES RESPONSIBILITY FOR A MAJOR 00334 M00S00332.secart +++|* PROGRAM OBJECTIVE TO A SINGLE CODE MODULE AND SUPPORTS 00335 M00S00333.secart +++|* SEVERAL RELATED FUNCTIONS VIA MULTIPLE ENTRY POINTS. LOW 00336 M00S00334.secart +++|* LEVEL SUPPORT SUBROUTINES PROVIDE COMMON/REDUNDANT FUNCTIONS 00337 M00S00335.secart +++|* USED BY ONE OR MORE SUBROUTINES AND/OR THE MAIN PROGRAM. 00338 M00S00336.secart +++|* THE LIST OF MODULES AND [ENTRY POINTS] , INDENTED TO SHOW 00339 M00S00337.secart +++|* STRUCTURE, INCLUDES: 00340 M00S00338.secart +++|* 00341 M00S00339.secart +++|* SECART - MAIN PROGRAM. 00342 M00S00340.secart +++|* 00343 M00S00341.secart +++|* DIRECT - DIRECTIVES AND SELECTION FUNCTIONS. 00344 M00S00342.secart +++|* [TMCHECK] - TIME WINDOW CHECKING. 00345 M00S00343.secart +++|* [MSCHECK] - DAYFILE MESSAGE CHECK. 00346 M00S00344.secart +++|* [PICKJSN] - PICK JOBS BY JSN. 00347 M00S00345.secart +++|* [PICKUJN] - PICK JOBS BY UJN. 00348 M00S00346.secart +++|* [PICKUSR] - PICK JOBS BY USER, FAMILY NAME. 00349 M00S00347.secart +++|* [PICKTRM] - PICK JOBS BY TERMINAL NAME. 00350 M00S00348.secart +++|* 00351 M00S00349.secart +++|* TMARG - REDUNDANT TIME ARGUMENT DIRECTIVE CRACKING. 00352 M00S00350.secart +++|* 00353 M00S00351.secart +++|* DFSCAN - *DAYFILE* LOG I/O AND MESSAGE PROCESSING. 00354 M00S00352.secart +++|* [DFMSG] - ROUTINE MESSAGE PROCESSING. 00355 M00S00353.secart +++|* 00356 M00S00354.secart +++|* ACSCAN - *ACCOUNT* LOG I/O AND MESSAGE PROCESSING. 00357 M00S00355.secart +++|* [ACMSG] - ROUTINE MESSAGE PROCESSING. 00358 M00S00356.secart +++|* 00359 M00S00357.secart +++|* LOGTEST - CHECK FORMAT, EXTRACT START DATE/TIME. 00360 M00S00358.secart +++|* 00361 M00S00359.secart +++|* JSNLOAD - JSN TRACE TABLE MANAGEMENT. 00362 M00S00360.secart +++|* [JSNTRAK] - MATCH/COLLECT JSN-S, JOB ATTRIBUTES. 00363 M00S00361.secart +++|* [JSNLOOK] - JSN MATCH ONLY. 00364 M00S00362.secart +++|* [JSNLVL0] - HANDLE LEVEL 0 D/S EVENTS W/O DUPLICATION. 00365 M00S00363.secart +++|* [JSNLIST] - TRACE TABLE SORT (OPTIONAL) AND PRINTOUT. 00366 M00S00364.secart +++|* 00367 M00S00365.secart +++|* AMSLOAD - *ACCOUNT* MESSAGE ID TABLE AND STATISTICS. 00368 M00S00366.secart +++|* [AMSMARK] - FLAG ID-S FOR SELECTION. 00369 M00S00367.secart +++|* [AMSTEST] - ID MATCH, SELECTION TEST, TABULATION. 00370 M00S00368.secart +++|* [AMSLIST] - MESSAGE ID STATISTICS PRINTOUT. 00371 M00S00369.secart +++|* 00372 M00S00370.secart +++|* PARSE - COMMON TEXT PARSER. 00373 M00S00371.secart +++| 00374 M00S00372.secart +++|** COMMON BLOCKS. 00375 M00S00373.secart +++|* 00376 M00S00374.secart +++|* COMMON BLOCKS PROVIDE THE PRIMARY MEANS OF SHARING 00377 M00S00375.secart +++|* INFORMATION BETWEEN MODULES. AS WITH CODE MODULES, THEY ARE 00378 M00S00376.secart +++|* ORGANIZED BY FUNCTIONAL AREA AND EACH IS DEFINED ONLY IN 00379 M00S00377.secart +++|* THOSE MODULES WHICH NEED ACCESS TO ONE OR MORE VARIABLES IN 00380 M00S00378.secart +++|* THAT BLOCK. OF NECESSITY, EACH BLOCK CONTAINS EXCLUSIVELY 00381 M00S00379.secart +++|* EITHER NUMERIC OR TEXT STRING VARIABLES WHICH SIGNIFICANTLY 00382 M00S00380.secart +++|* INFLUENCES ORGANIZATION. DEFINED COMMON BLOCKS ARE: 00383 M00S00381.secart +++|* 00384 M00S00382.secart +++|* /ACL/ STRINGS, *ACCOUNT* LOG SPECIFIC VARIABLES. 00385 M00S00383.secart +++|* 00386 M00S00384.secart +++|* /CTL/ NUMERIC, PROGRAM-WIDE VARIABLES & PARAMETERS. 00387 M00S00385.secart +++|* 00388 M00S00386.secart +++|* /DFL/ STRINGS, *DAYFILE* LOG SPECIFIC VARIABLES. 00389 M00S00387.secart +++|* 00390 M00S00388.secart +++|* /SRT/ STRINGS, TRACE TABLE SORT KEY IDENTIFIERS. 00391 M00S00389.secart +++|* 00392 M00S00390.secart +++|* /SYS/ STRINGS, PROGRAM-WIDE VARIABLES. 00393 M00S00391.secart +++|* 00394 M00S00392.secart +++|* /TRC/ STRINGS, JSN TRACE TABLE. 00395 M00S00393.secart +++| 00396 M00S00394.secart +++|** SPECIAL TECHNIQUES. 00397 M00S00395.secart +++|* 00398 M00S00396.secart +++|* THE PROGRAM INITIALIZATION SEQUENCE IS DESIGNED TO AVOID 00399 M00S00397.secart +++|* CONFLICTS BETWEEN DIRECTIVES AND INFORMATION CONTAINED IN 00400 M00S00398.secart +++|* DATA TABLE FILES, AND TO AUTOMATICALLY ACCOMMODATE OMMISSION 00401 M00S00399.secart +++|* OF INPUT FILES WHICH INDICATE RERUNS VERSUS INITIAL RAW LOGS 00402 M00S00400.secart +++|* PROCESSING RUNS. 00403 M00S00401.secart +++|* 00404 M00S00402.secart +++|* THE USE OF TWO INDEPENDENT SUBROUTINES TO ENCAPSULATE I/O AND 00405 M00S00403.secart +++|* MESSAGE ANALYSIS FOR EACH RAW LOG ALLOWS THE MAIN PROGRAM TO 00406 M00S00404.secart +++|* FOCUS ON SYNCHRONIZATION OF MESSAGES FROM BOTH LOGS INTO A 00407 M00S00405.secart +++|* NEAR CAUSE-AND-EFFECT SEQUENCE FOR SUBSEQUENT PROCESSING. 00408 M00S00406.secart +++| 00409 M00S00407.secart +++|** KNOWN LIMITATIONS. 00410 M00S00408.secart +++|* 00411 M00S00409.secart +++|* THE PROGRAM-S CAPACITY FOR DIRECTIVE ARGUMENTS, MESSAGE ID-S, 00412 M00S00410.secart +++|* UNIQUE JSN-S, AND JSN TRACE TABLE SORT KEYS ARE LIMITED BY 00413 M00S00411.secart +++|* THEIR RESPECTIVE TABLE SIZES AND ULTIMATELY BY OVERALL 00414 M00S00412.secart +++|* PROGRAM SIZE. FOR PERFORMANCE REASONS, NO ATTEMPT HAS BEEN 00415 M00S00413.secart +++|* MADE TO ACCOMMODATE DYNAMIC TABLE MANAGEMENT OR OVERFLOW TO 00416 M00S00414.secart +++|* MASS STORAGE. 00417 M00S00415.secart +++| 00418 M00S00416.secart +++| 00419 M00S00417.secart +++| IMPLICIT INTEGER(A-Z) 00420 M00S00418.secart +++| 00421 M00S00419.secart +++| PARAMETER (MXJ=1000) 00422 M00S00420.secart +++|* SIZE OF JSN TRACE TABLE. 00423 M00S00421.secart +++| 00424 M00S00422.secart +++| PARAMETER (NK=8) 00425 M00S00423.secart +++|* NUMBER OF COMMAND KEYWORD PARAMETERS. 00426 M00S00424.secart +++| 00427 M00S00425.secart +++| EQUIVALENCE (ACSDTG,ACSDATE) 00428 M00S00426.secart +++|* /ACL/ ACSDTG*20 = ACSDATE*10 // ACSTIME*10. 00429 M00S00427.secart +++| 00430 M00S00428.secart +++| EQUIVALENCE (ACEDTG,ACEDATE) 00431 M00S00429.secart +++|* /ACL/ ACEDTG*20 = ACEDATE*10 // ACETIME*10. 00432 M00S00430.secart +++| 00433 M00S00431.secart +++| EQUIVALENCE (ACSYSID,ACTITLE) 00434 M00S00432.secart +++|* /ACL/ ACSYSID*60 = ACTITLE*40//ACVERSN*20. 00435 M00S00433.secart +++| 00436 M00S00434.secart +++| EQUIVALENCE (DFSDTG,DFSDATE) 00437 M00S00435.secart +++|* /DFL/ DFSDTG*20 = DFSDATE*10 // DFSTIME*10. 00438 M00S00436.secart +++| 00439 M00S00437.secart +++| EQUIVALENCE (DFEDTG,DFEDATE) 00440 M00S00438.secart +++|* /DFL/ DFEDTG*20 = DFEDATE*10 // DFETIME*10. 00441 M00S00439.secart +++| 00442 M00S00440.secart +++| EQUIVALENCE (DFSYSID,DFTITLE) 00443 M00S00441.secart +++|* /DFL/ DFSYSID*60 = DFTITLE*40//DFVERSN*20. 00444 M00S00442.secart +++| 00445 M00S00443.secart +++| CHARACTER*10 ACEDATE 00446 M00S00444.secart +++|* /ACL/ (EQV) ACCOUNT LOG END DATE. 00447 M00S00445.secart +++| 00448 M00S00446.secart +++| CHARACTER*10 ACETIME 00449 M00S00447.secart +++|* /ACL/ (EQV) ACCOUNT LOG END TIME. 00450 M00S00448.secart +++| 00451 M00S00449.secart +++| CHARACTER*20 ACEDTG 00452 M00S00450.secart +++|* /ACL/ ACCOUNT LOG END DATE/TIME GROUP. 00453 M00S00451.secart +++| 00454 M00S00452.secart +++| LOGICAL ACEOF 00455 M00S00453.secart +++|* /CTL/ ACCOUNT LOG EOF FLAG. 00456 M00S00454.secart +++| 00457 M00S00455.secart +++| INTEGER ACIN 00458 M00S00456.secart +++|* /CTL/ ACCOUNT LOG MESSAGE COUNTER. 00459 M00S00457.secart +++| 00460 M00S00458.secart +++| CHARACTER*10 ACSDATE 00461 M00S00459.secart +++|* /ACL/ (EQV) ACCOUNT LOG START DATE. 00462 M00S00460.secart +++| 00463 M00S00461.secart +++| CHARACTER*20 ACSDTG 00464 M00S00462.secart +++|* /ACL/ ACCOUNT LOG START DATE/TIME GROUP. 00465 M00S00463.secart +++| 00466 M00S00464.secart +++| CHARACTER*10 ACSTIME 00467 M00S00465.secart +++|* /ACL/ (EQV) ACCOUNT LOG START TIME. 00468 M00S00466.secart +++| 00469 M00S00467.secart +++| CHARACTER*60 ACSYSID 00470 M00S00468.secart +++|* /ACL/ ACCOUNT LOG SYSTEM TITLE/VERSION. 00471 M00S00469.secart +++| 00472 M00S00470.secart +++| CHARACTER*40 ACTITLE 00473 M00S00471.secart +++|* /ACL/ ACCOUNT LOG SYSTEM TITLE. 00474 M00S00472.secart +++| 00475 M00S00473.secart +++| CHARACTER*100 ACTXT 00476 M00S00474.secart +++|* /ACL/ ACCOUNT LOG CURRENT MESSAGE TEXT. 00477 M00S00475.secart +++| 00478 M00S00476.secart +++| CHARACTER*20 ACVERSN 00479 M00S00477.secart +++|* /ACL/ ACCOUNT LOG SYSTEM VERSION. 00480 M00S00478.secart +++| 00481 M00S00479.secart +++| CHARACTER*10 DATE 00482 M00S00480.secart +++|* TYPING FOR FTN5 FUNCTION. 00483 M00S00481.secart +++| 00484 M00S00482.secart +++| CHARACTER*7 DEF(NK) 00485 M00S00483.secart +++|* *SECART* COMMAND KEYWORD DEFAULTS. 00486 M00S00484.secart +++| 00487 M00S00485.secart +++| CHARACTER*10 DFEDATE 00488 M00S00486.secart +++|* /DFL/ (EQV) DAYFILE LOG END DATE. 00489 M00S00487.secart +++| 00490 M00S00488.secart +++| CHARACTER*20 DFEDTG 00491 M00S00489.secart +++|* /DFL/ DAYFILE LOG END DATE/TIME GROUP. 00492 M00S00490.secart +++| 00493 M00S00491.secart +++| CHARACTER*10 DFETIME 00494 M00S00492.secart +++|* /DFL/ (EQV) DAYFILE LOG END TIME. 00495 M00S00493.secart +++| 00496 M00S00494.secart +++| LOGICAL DFEOF 00497 M00S00495.secart +++|* /CTL/ DAYFILE LOG EOF FLAG. 00498 M00S00496.secart +++| 00499 M00S00497.secart +++| INTEGER DFIN 00500 M00S00498.secart +++|* /CTL/ DAYFILE LOG MESSAGE COUNTER. 00501 M00S00499.secart +++| 00502 M00S00500.secart +++| CHARACTER*10 DFSDATE 00503 M00S00501.secart +++|* /DFL/ (EQV) DAYFILE LOG START DATE. 00504 M00S00502.secart +++| 00505 M00S00503.secart +++| CHARACTER*20 DFSDTG 00506 M00S00504.secart +++|* /DFL/ DAYFILE LOG START DATE/TIME GROUP. 00507 M00S00505.secart +++| 00508 M00S00506.secart +++| CHARACTER*10 DFSTIME 00509 M00S00507.secart +++|* /DFL/ (EQV) DAYFILE LOG START TIME. 00510 M00S00508.secart +++| 00511 M00S00509.secart +++| CHARACTER*60 DFSYSID 00512 M00S00510.secart +++|* /DFL/ DAYFILE LOG SYSTEM TITLE/VERSION. 00513 M00S00511.secart +++| 00514 M00S00512.secart +++| CHARACTER*40 DFTITLE 00515 M00S00513.secart +++|* /DFL/ DAYFILE LOG SYSTEM TITLE. 00516 M00S00514.secart +++| 00517 M00S00515.secart +++| CHARACTER*20 DFVERSN 00518 M00S00516.secart +++|* /DFL/ DAYFILE LOG SYSTEM VERSION. 00519 M00S00517.secart +++| 00520 M00S00518.secart +++| CHARACTER*100 DFTXT 00521 M00S00519.secart +++|* /DFL/ DAYFILE LOG CURRENT MESSAGE TEXT. 00522 M00S00520.secart +++| 00523 M00S00521.secart +++| CHARACTER*1 DSU 00524 M00S00522.secart +++|* /TRC/ DEADSTART UNIQUE PREFIX CODE. 00525 M00S00523.secart +++| 00526 M00S00524.secart +++| CHARACTER*7 FN(MXJ) 00527 M00S00525.secart +++|* /TRC/ FAMILY NAME COLUMN IN TRACE TABLE. 00528 M00S00526.secart +++| 00529 M00S00527.secart +++| CHARACTER*40 HDR 00530 M00S00528.secart +++|* /SYS/ PRINTOUT HEADER TEXT. 00531 M00S00529.secart +++| 00532 M00S00530.secart +++| INTEGER IPAGE 00533 M00S00531.secart +++|* LOCAL PRINTOUT PAGE COUNTER. 00534 M00S00532.secart +++| 00535 M00S00533.secart +++| INTEGER JBLIMIT 00536 M00S00534.secart +++|* /CTL/ UNIT JOB PRINTOUT MESSAGE LIMIT. 00537 M00S00535.secart +++| 00538 M00S00536.secart +++| CHARACTER*1 JC(MXJ) 00539 M00S00537.secart +++|* /TRC/ JOB CLASS COLUMN IN TRACE TABLE. 00540 M00S00538.secart +++| 00541 M00S00539.secart +++| CHARACTER*7 JN(MXJ) 00542 M00S00540.secart +++|* /TRC/ UJN COLUMN IN TRACE TABLE. 00543 M00S00541.secart +++| 00544 M00S00542.secart +++| CHARACTER*6 JS(MXJ) 00545 M00S00543.secart +++|* /TRC/ D.JSN COLUMN IN TRACE TABLE. 00546 M00S00544.secart +++| 00547 M00S00545.secart +++| CHARACTER*6 JSN 00548 M00S00546.secart +++|* TEMP - D.JSN VARIABLE. 00549 M00S00547.secart +++| 00550 M00S00548.secart +++| CHARACTER*7 KWD(NK) 00551 M00S00549.secart +++|* *SECART* COMMAND KEYWORD LIST. 00552 M00S00550.secart +++| 00553 M00S00551.secart +++| CHARACTER*7 LFN(NK) 00554 M00S00552.secart +++|* LFN LIST BUILT FROM *SECART* COMMAND. 00555 M00S00553.secart +++| 00556 M00S00554.secart +++| CHARACTER*5 MK(MXJ) 00557 M00S00555.secart +++|* /TRC/ JOB SELECTION MARKS IN TRACE TABLE. 00558 M00S00556.secart +++| 00559 M00S00557.secart +++| INTEGER ML(2,MXJ) 00560 M00S00558.secart +++|* /CTL/ DFL/AFL MSG COUNTS FOR TRACE TABLE. 00561 M00S00559.secart +++| 00562 M00S00560.secart +++| INTEGER NJ 00563 M00S00561.secart +++|* /CTL/ CURRENT NUMBER JOBS IN TRACE TABLE. 00564 M00S00562.secart +++| 00565 M00S00563.secart +++| CHARACTER*7 P 00566 M00S00564.secart +++|* TEMP USED IN *SECART* COMMAND PROCESSING. 00567 M00S00565.secart +++| 00568 M00S00566.secart +++| CHARACTER*10 PGM 00569 M00S00567.secart +++|* /SYS/ *SECART* VERSION ID FOR PRINTOUTS. 00570 M00S00568.secart +++| 00571 M00S00569.secart +++| LOGICAL PICKED 00572 M00S00570.secart +++|* TEMP FLAG USED IN UNIT JOB PRINTOUT. 00573 M00S00571.secart +++| 00574 M00S00572.secart +++| CHARACTER*10 RUNDT 00575 M00S00573.secart +++|* /SYS/ *SECART* RUN DATE FOR PRINTOUTS. 00576 M00S00574.secart +++| 00577 M00S00575.secart +++| CHARACTER*10 RUNTM 00578 M00S00576.secart +++|* /SYS/ *SECART* RUN TIME FOR PRINTOUTS. 00579 M00S00577.secart +++| 00580 M00S00578.secart +++| CHARACTER*3 SKY(12) 00581 M00S00579.secart +++|* /SRT/ TRACE TABLE SORT KEYS. 00582 M00S00580.secart +++| 00583 M00S00581.secart +++| CHARACTER*20 TE(MXJ) 00584 M00S00582.secart +++|* /TRC/ JOB DATE/TIME END IN TRACE TABLE. 00585 M00S00583.secart +++| 00586 M00S00584.secart +++| CHARACTER*10 TIME 00587 M00S00585.secart +++|* TYPING FOR FTN5 FUNCTION. 00588 M00S00586.secart +++| 00589 M00S00587.secart +++| CHARACTER*7 TN(MXJ) 00590 M00S00588.secart +++|* /TRC/ JOB TERMINAL NAME IN TRACE TABLE. 00591 M00S00589.secart +++| 00592 M00S00590.secart +++| CHARACTER*20 TS(MXJ) 00593 M00S00591.secart +++|* /TRC/ JOB DATE/TIME START IN TRACE TABLE. 00594 M00S00592.secart +++| 00595 M00S00593.secart +++| CHARACTER*6 UJSN 00596 M00S00594.secart +++|* TEMP - D.JSN VARIABLE. 00597 M00S00595.secart +++| 00598 M00S00596.secart +++| CHARACTER*7 UN(MXJ) 00599 M00S00597.secart +++|* /TRC/ JOB USERNAME IN TRACE TABLE. 00600 M00S00598.secart +++| 00601 M00S00599.secart +++| CHARACTER*7 V 00602 M00S00600.secart +++|* TEMP - VALUE USED IN COMMAND PROCESSING. 00603 M00S00601.secart +++| 00604 M00S00602.secart +++|* ACCOUNT LOG SPECIFIC VARIABLES. 00605 M00S00603.secart +++| 00606 M00S00604.secart +++| COMMON /ACL/ ACSDATE 00607 M00S00605.secart +++| COMMON /ACL/ ACSTIME 00608 M00S00606.secart +++| COMMON /ACL/ ACEDATE 00609 M00S00607.secart +++| COMMON /ACL/ ACETIME 00610 M00S00608.secart +++| COMMON /ACL/ ACTITLE 00611 M00S00609.secart +++| COMMON /ACL/ ACVERSN 00612 M00S00610.secart +++| COMMON /ACL/ ACTXT 00613 M00S00611.secart +++| 00614 M00S00612.secart +++|* GLOBAL NUMERIC/LOGICAL VARIABLES AND PARAMETERS. 00615 M00S00613.secart +++| 00616 M00S00614.secart +++| COMMON /CTL/ NJ 00617 M00S00615.secart +++| COMMON /CTL/ ACIN 00618 M00S00616.secart +++| COMMON /CTL/ DFIN 00619 M00S00617.secart +++| COMMON /CTL/ ACEOF 00620 M00S00618.secart +++| COMMON /CTL/ DFEOF 00621 M00S00619.secart +++| COMMON /CTL/ ML 00622 M00S00620.secart +++| COMMON /CTL/ JBLIMIT 00623 M00S00621.secart +++| 00624 M00S00622.secart +++|* DAYFILE LOG SPECIFIC VARIABLES. 00625 M00S00623.secart +++| 00626 M00S00624.secart +++| COMMON /DFL/ DFSDATE 00627 M00S00625.secart +++| COMMON /DFL/ DFSTIME 00628 M00S00626.secart +++| COMMON /DFL/ DFEDATE 00629 M00S00627.secart +++| COMMON /DFL/ DFETIME 00630 M00S00628.secart +++| COMMON /DFL/ DFTITLE 00631 M00S00629.secart +++| COMMON /DFL/ DFVERSN 00632 M00S00630.secart +++| COMMON /DFL/ DFTXT 00633 M00S00631.secart +++| 00634 M00S00632.secart +++|* JSN TRACE TABLE SORT PARAMETERS. 00635 M00S00633.secart +++| 00636 M00S00634.secart +++| COMMON /SRT/ SKY 00637 M00S00635.secart +++| 00638 M00S00636.secart +++|* GLOBAL STRING VARIABLES. 00639 M00S00637.secart +++| 00640 M00S00638.secart +++| COMMON /SYS/ HDR 00641 M00S00639.secart +++| COMMON /SYS/ PGM 00642 M00S00640.secart +++| COMMON /SYS/ RUNDT 00643 M00S00641.secart +++| COMMON /SYS/ RUNTM 00644 M00S00642.secart +++| 00645 M00S00643.secart +++|* JSN TRACE TABLE STORAGE. 00646 M00S00644.secart +++| 00647 M00S00645.secart +++| COMMON /TRC/ DSU 00648 M00S00646.secart +++| COMMON /TRC/ MK 00649 M00S00647.secart +++| COMMON /TRC/ JN 00650 M00S00648.secart +++| COMMON /TRC/ JS 00651 M00S00649.secart +++| COMMON /TRC/ JC 00652 M00S00650.secart +++| COMMON /TRC/ TS 00653 M00S00651.secart +++| COMMON /TRC/ TE 00654 M00S00652.secart +++| COMMON /TRC/ FN 00655 M00S00653.secart +++| COMMON /TRC/ UN 00656 M00S00654.secart +++| COMMON /TRC/ TN 00657 M00S00655.secart +++| 00658 M00S00656.secart +++| DATA ACEDTG /' '/ 00659 M00S00657.secart +++| DATA ACEOF /.FALSE./ 00660 M00S00658.secart +++| DATA ACIN /0/ 00661 M00S00659.secart +++| DATA ACSDTG /' '/ 00662 M00S00660.secart +++| DATA ACSYSID /' '/ 00663 M00S00661.secart +++| DATA DFEDTG /' '/ 00664 M00S00662.secart +++| DATA DFEOF /.FALSE./ 00665 M00S00663.secart +++| DATA DFIN /0/ 00666 M00S00664.secart +++| DATA DFSDTG /' '/ 00667 M00S00665.secart +++| DATA DFSYSID /' '/ 00668 M00S00666.secart +++| DATA DSU /'A'/ 00669 M00S00667.secart +++| DATA FN /MXJ*' '/ 00670 M00S00668.secart +++| DATA IPAGE /1/ 00671 M00S00669.secart +++| DATA JBLIMIT /99999/ 00672 M00S00670.secart +++| DATA JC /MXJ*' '/ 00673 M00S00671.secart +++| DATA JN /MXJ*' '/ 00674 M00S00672.secart +++| DATA JS /MXJ*' '/ 00675 M00S00673.secart +++| DATA MK /MXJ*' '/ 00676 M00S00674.secart +++| DATA NJ /0/ 00677 M00S00675.secart +++| DATA PGM /' SECART V1'/ 00678 M00S00676.secart +++| DATA SKY /12*' '/ 00679 M00S00677.secart +++| DATA TE /MXJ*' '/ 00680 M00S00678.secart +++| DATA TN /MXJ*' '/ 00681 M00S00679.secart +++| DATA TS /MXJ*' '/ 00682 M00S00680.secart +++| DATA UN /MXJ*' '/ 00683 M00S00681.secart +++| DATA (KWD(I) ,LFN(I) ,DEF(I),I=1,NK)/ 00684 M00S00682.secart +++| . 'D', '0', 'DFLOG', 00685 M00S00683.secart +++| . 'A', '0', 'ACLOG', 00686 M00S00684.secart +++| . 'C', '0', 'COMBO', 00687 M00S00685.secart +++| . 'J', '0', 'JOBS', 00688 M00S00686.secart +++| . 'M', '0', 'MSGID', 00689 M00S00687.secart +++| . 'T', '0', 'TRACE', 00690 M00S00688.secart +++| . 'I', 'INPUT', 'INPUT', 00691 M00S00689.secart +++| . 'L', 'OUTPUT', 'OUTPUT'/ 00692 M00S00690.secart +++| 00693 M00S00691.secart +++|* ---------------------------------------------------------------------- 00694 M00S00692.secart +++|* INITIALIZATION PHASE 00695 M00S00693.secart +++|* ---------------------------------------------------------------------- 00696 M00S00694.secart +++| 00697 M00S00695.secart +++| RUNDT=DATE() 00698 M00S00696.secart +++| RUNTM=TIME() 00699 M00S00697.secart +++| 00700 M00S00698.secart +++|* PROCESS EXECUTION PARAMETERS. 00701 M00S00699.secart +++| 00702 M00S00700.secart +++| 100 CALL GETPARM(P,V,J) 00703 M00S00701.secart +++| IF (J.LT.0) GOTO 130 00704 M00S00702.secart +++| DO 110 I=1,NK 00705 M00S00703.secart +++| IF (P.EQ.KWD(I)) GOTO 120 00706 M00S00704.secart +++| 110 CONTINUE 00707 M00S00705.secart +++| CALL REMARK(' *** UNRECOGNIZED PARAMETER: '//P) 00708 M00S00706.secart +++| GOTO 100 00709 M00S00707.secart +++| 00710 M00S00708.secart +++|* SET TO VALUE OR DEFAULT. 00711 M00S00709.secart +++| 00712 M00S00710.secart +++| 120 IF (J.EQ.1) THEN 00713 M00S00711.secart +++| LFN(I)=DEF(I) 00714 M00S00712.secart +++| ELSE 00715 M00S00713.secart +++| IF (I.EQ.8 .AND. V.EQ.'0') THEN 00716 M00S00714.secart +++| CALL REMARK(' *** LIST FILE REQUIRED.') 00717 M00S00715.secart +++| ELSE 00718 M00S00716.secart +++| LFN(I)=V 00719 M00S00717.secart +++| ENDIF 00720 M00S00718.secart +++| ENDIF 00721 M00S00719.secart +++| GOTO 100 00722 M00S00720.secart +++| 00723 M00S00721.secart +++|* FIRST, OPEN LIST OUTPUT FILE. 00724 M00S00722.secart +++| 00725 M00S00723.secart +++| 130 OPEN (8,FILE=LFN(8)) 00726 M00S00724.secart +++| 00727 M00S00725.secart +++|* SECOND, LOAD ACCOUNT LOG MESSAGE IDENTIFIERS, IF ANY, 00728 M00S00726.secart +++|* BEFORE DIRECTIVES TO AVOID AMNESIA PROBLEM. 00729 M00S00727.secart +++| 00730 M00S00728.secart +++| IF (LFN(5).NE.'0') THEN 00731 M00S00729.secart +++| OPEN (5,FILE=LFN(5)) 00732 M00S00730.secart +++| CALL AMSLOAD 00733 M00S00731.secart +++| CLOSE (5) 00734 M00S00732.secart +++| ENDIF 00735 M00S00733.secart +++| 00736 M00S00734.secart +++|* THIRD, PROCESS DIRECTIVES, IF ANY. 00737 M00S00735.secart +++| 00738 M00S00736.secart +++| IF (LFN(7).NE.'0') THEN 00739 M00S00737.secart +++| CALL REMARK(' READING DIRECTIVES...') 00740 M00S00738.secart +++| HDR='S E C A R T D I R E C T I V E S ' 00741 M00S00739.secart +++| WRITE (8,10) HDR,PGM,RUNDT,RUNTM,IPAGE 00742 M00S00740.secart +++| 10 FORMAT('1',A40,3A10,' PG',I3) 00743 M00S00741.secart +++| OPEN (7,FILE=LFN(7)) 00744 M00S00742.secart +++| CALL DIRECT 00745 M00S00743.secart +++| CLOSE (7) 00746 M00S00744.secart +++| ENDIF 00747 M00S00745.secart +++| 00748 M00S00746.secart +++|* FOURTH, LOAD PREVIOUS JSN TRACE TABLE, IF ANY. 00749 M00S00747.secart +++| 00750 M00S00748.secart +++| IF (LFN(6).NE.'0') THEN 00751 M00S00749.secart +++| CALL REMARK(' LOADING TRACE TABLE...') 00752 M00S00750.secart +++| OPEN (6,FILE=LFN(6)) 00753 M00S00751.secart +++| CALL JSNLOAD 00754 M00S00752.secart +++| CLOSE (6) 00755 M00S00753.secart +++| ENDIF 00756 M00S00754.secart +++| 00757 M00S00755.secart +++|* ---------------------------------------------------------------------- 00758 M00S00756.secart +++|* PHASE 1: MERGE AND SCREEN RAW LOGS, BUILD TRACE TABLE AND PICK JOBS. 00759 M00S00757.secart +++|* ---------------------------------------------------------------------- 00760 M00S00758.secart +++| 00761 M00S00759.secart +++| 00762 M00S00760.secart +++|* PREVIEW EACH LOG TO OBTAIN SYSID, START DATE/TIME GROUP. 00763 M00S00761.secart +++| 00764 M00S00762.secart +++| IF (LFN(1).NE.'0') THEN 00765 M00S00763.secart +++| OPEN (1,FILE=LFN(1)) 00766 M00S00764.secart +++| CALL DFSCAN(LFN(1),*140) 00767 M00S00765.secart +++| ELSE 00768 M00S00766.secart +++| DFEOF=.TRUE. 00769 M00S00767.secart +++| ENDIF 00770 M00S00768.secart +++| 00771 M00S00769.secart +++|* NOW, RAW ACCOUNT LOG. 00772 M00S00770.secart +++| 00773 M00S00771.secart +++| 140 IF (LFN(2).NE.'0') THEN 00774 M00S00772.secart +++| OPEN (2,FILE=LFN(2)) 00775 M00S00773.secart +++| CALL ACSCAN(LFN(2),*150) 00776 M00S00774.secart +++| ELSE 00777 M00S00775.secart +++| ACEOF=.TRUE. 00778 M00S00776.secart +++| ENDIF 00779 M00S00777.secart +++| 00780 M00S00778.secart +++|* CHECK FOR NO RAW LOG INPUT. 00781 M00S00779.secart +++| 00782 M00S00780.secart +++| 150 IF (ACIN+DFIN.EQ.0) GOTO 210 00783 M00S00781.secart +++| IPAGE=IPAGE+1 00784 M00S00782.secart +++| HDR='S C R E E N E D M E S S A G E S' 00785 M00S00783.secart +++| WRITE (8,10) HDR,PGM,RUNDT,RUNTM,IPAGE 00786 M00S00784.secart +++| IF (.NOT.DFEOF) WRITE (8,11) 'DAYFILE',DFSDTG,DFSYSID 00787 M00S00785.secart +++| IF (.NOT.ACEOF) WRITE (8,11) 'ACCOUNT',ACSDTG,ACSYSID 00788 M00S00786.secart +++| 11 FORMAT(5X,A7,' FROM',A20 /5X,'SYSTEM ID: ',A60) 00789 M00S00787.secart +++| 00790 M00S00788.secart +++|* IF BOTH LOGS, CHECK FOR SYSTEM ID OR DATE MISMATCHES. 00791 M00S00789.secart +++| 00792 M00S00790.secart +++| IF (ACIN*DFIN.NE.0) THEN 00793 M00S00791.secart +++| IF (ACSYSID.NE.DFSYSID) THEN 00794 M00S00792.secart +++| CALL REMARK(' *** SYSTEM ID MISMATCH ***') 00795 M00S00793.secart +++| STOP ' *** SECART TERMINATED.' 00796 M00S00794.secart +++| ENDIF 00797 M00S00795.secart +++| IF (ACSDATE.NE.DFSDATE) THEN 00798 M00S00796.secart +++| CALL REMARK(' *** LOG DATES MISMATCH.') 00799 M00S00797.secart +++| ENDIF 00800 M00S00798.secart +++| ENDIF 00801 M00S00799.secart +++| 00802 M00S00800.secart +++|* ANNOTATED LOG DATA MUST BE WRITTEN TO COMBO LOG FILE. 00803 M00S00801.secart +++| 00804 M00S00802.secart +++| IF (LFN(3).EQ.'0') LFN(3)='TAPE3' 00805 M00S00803.secart +++| OPEN (3,FILE=LFN(3)) 00806 M00S00804.secart +++| 00807 M00S00805.secart +++|* RECORD SOURCE LOG IDENTIFICATIONS IN COMPOSITE LOG. 00808 M00S00806.secart +++| 00809 M00S00807.secart +++| IF (DFSDATE.NE.' ') 00810 M00S00808.secart +++| . WRITE (3,13) DFSTIME,'- DAYFILE ',DFSDATE,DFSYSID 00811 M00S00809.secart +++| IF (ACSDATE.NE.' ') 00812 M00S00810.secart +++| . WRITE (3,13) ACSTIME,' +ACCOUNT ',ACSDATE,ACSYSID 00813 M00S00811.secart +++| 13 FORMAT(A10,8X,A12,A10,A60) 00814 M00S00812.secart +++| 00815 M00S00813.secart +++| CALL REMARK(' DIGESTING RAW LOG(S)...') 00816 M00S00814.secart +++| IF (DFEOF) GOTO 170 00817 M00S00815.secart +++| 00818 M00S00816.secart +++|* SYNCHRONIZE PROCESSING AND MERGE LOGS. 00819 M00S00817.secart +++| 00820 M00S00818.secart +++| 160 CALL DFMSG(*180) 00821 M00S00819.secart +++| IF (.NOT.ACEOF .AND. ACEDTG.LT.DFEDTG) GOTO 170 00822 M00S00820.secart +++| GOTO 160 00823 M00S00821.secart +++| 00824 M00S00822.secart +++|* BIAS TO CLUMP DFL MSGS BEFORE ACL MSGS IN SAME SECOND. 00825 M00S00823.secart +++|* SOME ACCOUNT LOG MSID-S TWEAK DTG TO PRECEDE DAYFILE MSG. 00826 M00S00824.secart +++| 00827 M00S00825.secart +++| 170 CALL ACMSG(*190) 00828 M00S00826.secart +++| IF (.NOT.DFEOF .AND. DFEDTG.LE.ACEDTG) GOTO 160 00829 M00S00827.secart +++| GOTO 170 00830 M00S00828.secart +++| 00831 M00S00829.secart +++|* END-OF-FILE DECISIONS. 00832 M00S00830.secart +++| 00833 M00S00831.secart +++| 180 CLOSE (1) 00834 M00S00832.secart +++| IF (.NOT.ACEOF) GOTO 170 00835 M00S00833.secart +++| GOTO 200 00836 M00S00834.secart +++| 00837 M00S00835.secart +++| 190 CLOSE (2) 00838 M00S00836.secart +++| IF (.NOT.DFEOF) GOTO 160 00839 M00S00837.secart +++| 00840 M00S00838.secart +++|* COMPLETED MERGE PASS (BURP!). 00841 M00S00839.secart +++| 00842 M00S00840.secart +++| 200 CLOSE (3) 00843 M00S00841.secart +++| 00844 M00S00842.secart +++|* ---------------------------------------------------------------------- 00845 M00S00843.secart +++|* PHASE 2: INTERMEDIATE PRINTOUTS. 00846 M00S00844.secart +++|* ---------------------------------------------------------------------- 00847 M00S00845.secart +++| 00848 M00S00846.secart +++|* PRINTOUT ACCOUNT MESSAGE STATISTICS. 00849 M00S00847.secart +++| 00850 M00S00848.secart +++| IF (ACIN.GT.0) THEN 00851 M00S00849.secart +++| CALL REMARK(' ACCOUNT MSG STATISTICS...') 00852 M00S00850.secart +++| CALL AMSLIST 00853 M00S00851.secart +++| ENDIF 00854 M00S00852.secart +++| 00855 M00S00853.secart +++|* PRINTOUT JSN/USER/TERMINAL TRACE TABLE (SORT OPTIONAL). 00856 M00S00854.secart +++| 00857 M00S00855.secart +++| 210 IF (NJ.GT.0) THEN 00858 M00S00856.secart +++| CALL REMARK(' TRACE TABLE PRINTOUT...') 00859 M00S00857.secart +++| 00860 M00S00858.secart +++|* UNIT 6 FILE REQUIRED FOR TRACE TABLE OUTPUT. 00861 M00S00859.secart +++| 00862 M00S00860.secart +++| IF (LFN(6).EQ.'0') LFN(6)='TAPE6' 00863 M00S00861.secart +++| OPEN (6,FILE=LFN(6)) 00864 M00S00862.secart +++| OPEN (9,STATUS='SCRATCH') 00865 M00S00863.secart +++| CALL JSNLIST(LFN(6)) 00866 M00S00864.secart +++| CLOSE (6) 00867 M00S00865.secart +++| CLOSE (9) 00868 M00S00866.secart +++| ENDIF 00869 M00S00867.secart +++| 00870 M00S00868.secart +++|* ---------------------------------------------------------------------- 00871 M00S00869.secart +++|* PHASE 3: SORT COMPOSITE LOG BY UNIQUE JSN TO GROUP INTO UNIT JOBS. 00872 M00S00870.secart +++|* ---------------------------------------------------------------------- 00873 M00S00871.secart +++| 00874 M00S00872.secart +++|* SORT UNIT 3 COMPOSITE LOG, IF PRODUCED/PROVIDED, TO UNIT 4 JOBS FILE, 00875 M00S00873.secart +++|* REQUIRED FOR OUTPUT. 00876 M00S00874.secart +++| 00877 M00S00875.secart +++| IF (LFN(3).EQ.'0') GOTO 220 00878 M00S00876.secart +++| OPEN (3,FILE=LFN(3)) 00879 M00S00877.secart +++| REWIND 3 00880 M00S00878.secart +++| IF (LFN(4).EQ.'0') LFN(4)='TAPE4' 00881 M00S00879.secart +++| OPEN (4,FILE=LFN(4)) 00882 M00S00880.secart +++| CALL REMARK(' SORTING OUT JOBS...') 00883 M00S00881.secart +++| CALL SM5SORT(0) 00884 M00S00882.secart +++| CALL SM5ENR(ACIN+DFIN) 00885 M00S00883.secart +++| CALL SM5FROM(LFN(3)) 00886 M00S00884.secart +++| CALL SM5TO(LFN(4)) 00887 M00S00885.secart +++| CALL SM5KEY(11,6,'DISPLAY','A') 00888 M00S00886.secart +++| CALL SM5RETA('YES') 00889 M00S00887.secart +++| CALL SM5END 00890 M00S00888.secart +++| CLOSE (3) 00891 M00S00889.secart +++| CLOSE (4) 00892 M00S00890.secart +++| 00893 M00S00891.secart +++|* ---------------------------------------------------------------------- 00894 M00S00892.secart +++|* PHASE 4: EXTRACT UNIT JOBS FROM JOBS LOG FOR PRINTOUT. 00895 M00S00893.secart +++|* ---------------------------------------------------------------------- 00896 M00S00894.secart +++| 00897 M00S00895.secart +++| 220 IF (LFN(4).EQ.'0') GOTO 250 00898 M00S00896.secart +++| OPEN (4,FILE=LFN(4)) 00899 M00S00897.secart +++| REWIND 4 00900 M00S00898.secart +++| CALL REMARK(' EXTRACTING SELECTED JOBS...') 00901 M00S00899.secart +++| IPAGE=IPAGE+1 00902 M00S00900.secart +++| HDR='S E L E C T E D J O B S' 00903 M00S00901.secart +++| WRITE (8,10) HDR,PGM,RUNDT,RUNTM,IPAGE 00904 M00S00902.secart +++| UJSN=' ' 00905 M00S00903.secart +++| 00906 M00S00904.secart +++| 230 READ (4,14,END=240) DFTXT 00907 M00S00905.secart +++| 14 FORMAT(A100) 00908 M00S00906.secart +++| JSN=DFTXT(11:16) 00909 M00S00907.secart +++| IF (JSN.NE.UJSN) THEN 00910 M00S00908.secart +++| UJSN=JSN 00911 M00S00909.secart +++| CALL JSNLOOK(JSN,N) 00912 M00S00910.secart +++| PICKED=MK(N).NE.' ' 00913 M00S00911.secart +++| IF (PICKED) THEN 00914 M00S00912.secart +++| WRITE (8,18) 00915 M00S00913.secart +++| 18 FORMAT('0') 00916 M00S00914.secart +++| J=JBLIMIT 00917 M00S00915.secart +++| ENDIF 00918 M00S00916.secart +++| ENDIF 00919 M00S00917.secart +++| 00920 M00S00918.secart +++|* PRINTOUT JOB TILL SAMPLE LIMIT. 00921 M00S00919.secart +++| 00922 M00S00920.secart +++| IF (PICKED) THEN 00923 M00S00921.secart +++| IF (J.GT.0) THEN 00924 M00S00922.secart +++| WRITE (8,14) DFTXT 00925 M00S00923.secart +++| J=J-1 00926 M00S00924.secart +++| IF (J.EQ.0) WRITE (8,*) 00927 M00S00925.secart +++| . ' ========= S A M P L E L I M I T =========' 00928 M00S00926.secart +++| ENDIF 00929 M00S00927.secart +++| ENDIF 00930 M00S00928.secart +++| GOTO 230 00931 M00S00929.secart +++| 00932 M00S00930.secart +++| 240 CLOSE (4) 00933 M00S00931.secart +++| 00934 M00S00932.secart +++|* FINISHED. 00935 M00S00933.secart +++| 00936 M00S00934.secart +++| 250 CALL REMARK(' SECART COMPLETED.') 00937 M00S00935.secart +++| CLOSE (8) 00938 M00S00936.secart +++| END 00939 M00S00937.secart +++| 00940 M00S00938.secart +++|* --------------------------------------------------------------------- 00941 M00S00939.secart +++| SUBROUTINE DIRECT 00942 M00S00940.secart +++|** DIRECT - SECART DIRECTIVES PROCESSING. 00943 M00S00941.secart +++|* 00944 M00S00942.secart +++|* THIS MODULE HANDLES ALL ASPECTS OF DIRECTIVES PROCESSING AND 00945 M00S00943.secart +++|* PROVIDES MULTIPLE ENTRY POINT FOR PURPOSES SUCH AS: ACCEPTING 00946 M00S00944.secart +++|* *SECART* DIRECTIVES DURING INITIALIZATION PHASE AND STORING 00947 M00S00945.secart +++|* SELECTION ARGUMENTS IN INTERNAL ARRAYS, MARKING ACCOUNT LOG 00948 M00S00946.secart +++|* MESSAGE ID-S FOR PRINTOUT SELECTION, AND CHECKING LOG DATA 00949 M00S00947.secart +++|* AGAINST SELECTION ARGUMENTS DURING RAW LOGS PROCESSING. 00950 M00S00948.secart +++| 00951 M00S00949.secart +++| 00952 M00S00950.secart +++| IMPLICIT INTEGER(A-Z) 00953 M00S00951.secart +++| PARAMETER (MXJ=1000) 00954 M00S00952.secart +++|* SIZE OF JSN TRACE TABLE. 00955 M00S00953.secart +++| 00956 M00S00954.secart +++| PARAMETER (MXP=50) 00957 M00S00955.secart +++|* SIZE OF DIRECTIVE ARGUMENT TABLES. 00958 M00S00956.secart +++| 00959 M00S00957.secart +++| LOGICAL ACEOF 00960 M00S00958.secart +++|* /CTL/ ACCOUNT LOG EOF FLAG. 00961 M00S00959.secart +++| 00962 M00S00960.secart +++| INTEGER ACIN 00963 M00S00961.secart +++|* /CTL/ ACCOUNT LOG MESSAGE COUNTER. 00964 M00S00962.secart +++| 00965 M00S00963.secart +++| LOGICAL DFEOF 00966 M00S00964.secart +++|* /CTL/ DAYFILE LOG EOF FLAG. 00967 M00S00965.secart +++| 00968 M00S00966.secart +++| INTEGER DFIN 00969 M00S00967.secart +++|* /CTL/ DAYFILE LOG MESSAGE COUNTER. 00970 M00S00968.secart +++| 00971 M00S00969.secart +++| CHARACTER*80 DIR 00972 M00S00970.secart +++|* *SECART* DIRECTIVE TEXT STRING. 00973 M00S00971.secart +++| 00974 M00S00972.secart +++| LOGICAL ERR 00975 M00S00973.secart +++|* DIRECTIVE ERROR(S) FLAG. 00976 M00S00974.secart +++| 00977 M00S00975.secart +++| CHARACTER*10 ETM 00978 M00S00976.secart +++|* ARG - MESSAGE TIMESTAMP. 00979 M00S00977.secart +++| 00980 M00S00978.secart +++| CHARACTER*7 FAM(MXP) 00981 M00S00979.secart +++|* USER= DIRECTIVE FAMILYNAME ARGUMENTS. 00982 M00S00980.secart +++| 00983 M00S00981.secart +++| CHARACTER*7 FAMILY 00984 M00S00982.secart +++|* TEMP - FAMILYNAME VARIABLE. 00985 M00S00983.secart +++| 00986 M00S00984.secart +++| CHARACTER*7 FN 00987 M00S00985.secart +++|* ARG - FAMILYNAME TO CHECK. 00988 M00S00986.secart +++| 00989 M00S00987.secart +++| LOGICAL HIT 00990 M00S00988.secart +++|* ARG - FLAG RETURNED TO SHOW SELECTION. 00991 M00S00989.secart +++| 00992 M00S00990.secart +++| INTEGER ITX(MXP) 00993 M00S00991.secart +++|* DMSG= DIRECTIVE CHARACTER START POSITIONS. 00994 M00S00992.secart +++| 00995 M00S00993.secart +++| INTEGER IW 00996 M00S00994.secart +++|* LOCAL - CURRENT TIME WINDOW INDEX. 00997 M00S00995.secart +++| 00998 M00S00996.secart +++| INTEGER JBLIMIT 00999 M00S00997.secart +++|* /CTL/ UNIT JOB PRINTOUT MESSAGE LIMIT. 01000 M00S00998.secart +++| 01001 M00S00999.secart +++| CHARACTER*7 JN 01002 M00S01000.secart +++|* ARG - JOBNAME TO CHECK. 01003 M00S01001.secart +++| 01004 M00S01002.secart +++| CHARACTER*7 JOBNAME 01005 M00S01003.secart +++|* TEMP - JOBNAME VARIABLE. 01006 M00S01004.secart +++| 01007 M00S01005.secart +++| CHARACTER*6 JS 01008 M00S01006.secart +++|* ARG - JSN TO CHECK. 01009 M00S01007.secart +++| 01010 M00S01008.secart +++| CHARACTER*6 JSN(MXP) 01011 M00S01009.secart +++|* JSN= DIRECTIVE ARGUMENTS. 01012 M00S01010.secart +++| 01013 M00S01011.secart +++| INTEGER LTX(MXP) 01014 M00S01012.secart +++|* DMSG= DIRECTIVE LAST CHARACTER POSITIONS. 01015 M00S01013.secart +++| 01016 M00S01014.secart +++| CHARACTER*4 MID 01017 M00S01015.secart +++|* TEMP - FOR AMSG= DIRECTIVE MSG ID. 01018 M00S01016.secart +++| 01019 M00S01017.secart +++| CHARACTER*5 MK 01020 M00S01018.secart +++|* ARG - TRACE TABLE MARKS TO BE UPDATED. 01021 M00S01019.secart +++| 01022 M00S01020.secart +++| INTEGER ML(2,MXJ) 01023 M00S01021.secart +++|* /CTL/ DFL/AFL MSG COUNTS FOR TRACE TABLE. 01024 M00S01022.secart +++| 01025 M00S01023.secart +++| CHARACTER*40 MTX(MXP) 01026 M00S01024.secart +++|* DMSG= DIRECTIVE MESSAGE STRINGS. 01027 M00S01025.secart +++| 01028 M00S01026.secart +++| INTEGER NJ 01029 M00S01027.secart +++|* /CTL/ CURRENT NUMBER JOBS IN TRACE TABLE. 01030 M00S01028.secart +++| 01031 M00S01029.secart +++| INTEGER NM 01032 M00S01030.secart +++|* NUMBER OF DMSG= ARGUMENTS STORED. 01033 M00S01031.secart +++| 01034 M00S01032.secart +++| INTEGER NN 01035 M00S01033.secart +++|* NUMBER OF UJN= ARGUMENTS STORED. 01036 M00S01034.secart +++| 01037 M00S01035.secart +++| INTEGER NP 01038 M00S01036.secart +++|* NUMBER OF UJN= ARGUMENTS STORED. 01039 M00S01037.secart +++| 01040 M00S01038.secart +++| INTEGER NS 01041 M00S01039.secart +++|* NUMBER OF JSN= ARGUMENTS STORED. 01042 M00S01040.secart +++| 01043 M00S01041.secart +++| INTEGER NT 01044 M00S01042.secart +++|* NUMBER OF TRM= ARGUMENTS STORED. 01045 M00S01043.secart +++| 01046 M00S01044.secart +++| INTEGER NU 01047 M00S01045.secart +++|* NUMBER OF USER= ARGUMENTS STORED. 01048 M00S01046.secart +++| 01049 M00S01047.secart +++| CHARACTER*3 SKY(12) 01050 M00S01048.secart +++|* /SRT/ TRACE TABLE SORT KEYS. 01051 M00S01049.secart +++| 01052 M00S01050.secart +++| CHARACTER*7 TERMINL 01053 M00S01051.secart +++|* TEMP - TRM= VARIABLE. 01054 M00S01052.secart +++| 01055 M00S01053.secart +++| CHARACTER*10 TME(MXP) 01056 M00S01054.secart +++|* TIME= DIRECTIVE TIME END ARGUMENTS. 01057 M00S01055.secart +++| 01058 M00S01056.secart +++| CHARACTER*10 TMS(MXP) 01059 M00S01057.secart +++|* TIME= DIRECTIVE TIME START ARGUMENTS. 01060 M00S01058.secart +++| 01061 M00S01059.secart +++| CHARACTER*7 TN 01062 M00S01060.secart +++|* ARG - TERMINAL ID TO CHECK. 01063 M00S01061.secart +++| 01064 M00S01062.secart +++| CHARACTER*7 TRM(MXP) 01065 M00S01063.secart +++|* TRM= DIRECTIVE ARGUMENTS. 01066 M00S01064.secart +++| 01067 M00S01065.secart +++| CHARACTER*80 TXT 01068 M00S01066.secart +++|* ARG - MESSAGE TEXT TO CHECK. 01069 M00S01067.secart +++| 01070 M00S01068.secart +++| CHARACTER*7 UJN(MXP) 01071 M00S01069.secart +++|* UJN= DIRECTIVE ARGUMENTS. 01072 M00S01070.secart +++| 01073 M00S01071.secart +++| CHARACTER*7 UN 01074 M00S01072.secart +++|* ARG - USERNAME TO CHECK. 01075 M00S01073.secart +++| 01076 M00S01074.secart +++| CHARACTER*7 USER 01077 M00S01075.secart +++|* TEMP - USERNAME VARIABLE. 01078 M00S01076.secart +++| 01079 M00S01077.secart +++| CHARACTER*7 USR(MXP) 01080 M00S01078.secart +++|* USER= DIRECTIVE ARGUMENTS. 01081 M00S01079.secart +++| 01082 M00S01080.secart +++| LOGICAL WINDOW 01083 M00S01081.secart +++|* FLAG TO REMEMBER TIME WINDOW IS OPEN. 01084 M00S01082.secart +++| 01085 M00S01083.secart +++| 01086 M00S01084.secart +++|* GLOBAL NUMERIC/LOGICAL VARIABLES AND PARAMETERS. 01087 M00S01085.secart +++| 01088 M00S01086.secart +++| COMMON /CTL/ NJ 01089 M00S01087.secart +++| COMMON /CTL/ ACIN 01090 M00S01088.secart +++| COMMON /CTL/ DFIN 01091 M00S01089.secart +++| COMMON /CTL/ ACEOF 01092 M00S01090.secart +++| COMMON /CTL/ DFEOF 01093 M00S01091.secart +++| COMMON /CTL/ ML 01094 M00S01092.secart +++| COMMON /CTL/ JBLIMIT 01095 M00S01093.secart +++| 01096 M00S01094.secart +++|* JSN TRACE TABLE SORT PARAMETERS. 01097 M00S01095.secart +++| 01098 M00S01096.secart +++| COMMON /SRT/ SKY 01099 M00S01097.secart +++| 01100 M00S01098.secart +++| DATA FAM /MXP*' '/ 01101 M00S01099.secart +++| DATA ITX /MXP*0/ 01102 M00S01100.secart +++| DATA JSN /MXP*' '/ 01103 M00S01101.secart +++| DATA LTX /MXP*0/ 01104 M00S01102.secart +++| DATA MTX /MXP*' '/ 01105 M00S01103.secart +++| DATA NM /0/ 01106 M00S01104.secart +++| DATA NN /0/ 01107 M00S01105.secart +++| DATA NP /0/ 01108 M00S01106.secart +++| DATA NS /0/ 01109 M00S01107.secart +++| DATA NT /0/ 01110 M00S01108.secart +++| DATA NU /0/ 01111 M00S01109.secart +++| DATA TME /MXP*' '/ 01112 M00S01110.secart +++| DATA TMS /MXP*' '/ 01113 M00S01111.secart +++| DATA TRM /MXP*' '/ 01114 M00S01112.secart +++| DATA UJN /MXP*' '/ 01115 M00S01113.secart +++| DATA USR /MXP*' '/ 01116 M00S01114.secart +++| 01117 M00S01115.secart +++| 01118 M00S01116.secart +++|** ENTRY - CALL DIRECT [NO ARGUMENTS]. 01119 M00S01117.secart +++|* UNIT 7 FILE CONTAINS DIRECTIVES INPUT. 01120 M00S01118.secart +++|* 01121 M00S01119.secart +++|* EXIT - UNIT 8 FILE CONTAINS PRINTOUT OF DIRECTIVES. 01122 M00S01120.secart +++|* ARRAYS WITHIN MODULE CONTAIN SELECTION ARGUMENTS. 01123 M00S01121.secart +++|* 01124 M00S01122.secart +++|* ERROR - MESSAGES IN PRINTOUT AND DAYFILE: 01125 M00S01123.secart +++|* *** UNRECOGNIZED DIRECTIVE *** 01126 M00S01124.secart +++|* *** TOO MANY ARGUMENTS, EXCESS IGNORED. 01127 M00S01125.secart +++|* *** DIRECTIVE ERROR(S). [DAYFILE] 01128 M00S01126.secart +++|* 01129 M00S01127.secart +++|* USES - /CTL/ TO SET JBLIMIT. 01130 M00S01128.secart +++|* /SRT/ TO STORE JSN TRACE TABLE SORT KEYS IN SKY(I). 01131 M00S01129.secart +++|* 01132 M00S01130.secart +++|* CALLS - *PARSE* TO EXTRACT WORDS FROM DIRECTIVES. 01133 M00S01131.secart +++|* *TMARG* TO EXTRACT TIME ARGUMENTS FROM DIRECTIVES. 01134 M00S01132.secart +++|* *AMSMARK* TO MARK ACCOUNT MESSAGE ID-S FOR SELECTION. 01135 M00S01133.secart +++|* 01136 M00S01134.secart +++|* NOTES - ARRAYS FOR STORAGE OF SELECTION ARGUMENTS ARE ALL 01137 M00S01135.secart +++|* SAME SIZE, DEFINED VIA PARAMETER FOR CODE SIMPLICITY. 01138 M00S01136.secart +++|* 01139 M00S01137.secart +++|* 01140 M00S01138.secart +++|* DIRECTIVES - 01141 M00S01139.secart +++|* 01142 M00S01140.secart +++|* AMSG=MSID,... SCAN ACCOUNT MSG IDENTIFIERS FOR PRINT. 01143 M00S01141.secart +++|* 01144 M00S01142.secart +++|* DMSG=[NN:]TEXT_STR SCAN DAYFILE TEXT STRING FOR PRINTOUT. 01145 M00S01143.secart +++|* NN IS START CHR [1-80] W/IN TEXT FIELD. 01146 M00S01144.secart +++|* 01147 M00S01145.secart +++|* TIME=HHMMSS[-HHMMSS] SCAN TIME PERIOD FOR PRINTOUT. EITHER 01148 M00S01146.secart +++|* (OR) HH.MM.SS. FORMAT ACCEPTED, SECONDS OPTIONAL, END 01149 M00S01147.secart +++|* TIME OPTIONAL BUT REQUIRES '-' SEPARATOR. 01150 M00S01148.secart +++|* 01151 M00S01149.secart +++|* TRACE=KEY,... SORT KEYS FOR TRACE TABLE PRINTOUT. 01152 M00S01150.secart +++|* VALID KEYS: UJN,JSN,JC,SDT,EDT,FM,UN,TRM. 01153 M00S01151.secart +++|* 01154 M00S01152.secart +++|* USER=FAMILY,USER SELECT JOBS FOR PRINTOUT BY USER NAME/ 01155 M00S01153.secart +++|* INDEX (VIA *SUI* COMMANDS). 01156 M00S01154.secart +++|* USE BLANK OR OMIT FOR DEFAULT FAMILY. 01157 M00S01155.secart +++|* USE * FOR WILDCARD MATCH. (NOTE THAT 01158 M00S01156.secart +++|* USER=*,* SELECTS EVERY JOB!!) 01159 M00S01157.secart +++|* 01160 M00S01158.secart +++|* UJN=JOBNAME,... SELECT JOBS FOR PRINTOUT BY JOBNAME. 01161 M00S01159.secart +++|* 01162 M00S01160.secart +++|* JSN=[D.]AAAA,... SELECT UNIT JOBS FOR PRINTOUT BY JSN. 01163 M00S01161.secart +++|* OPTIONAL PREFIX IS D/S UNIQUE CODE USED 01164 M00S01162.secart +++|* TO RESOLVE JSN AMBIGUITIES ACROSS LEVEL 01165 M00S01163.secart +++|* ZERO DEADSTARTS. 01166 M00S01164.secart +++|* 01167 M00S01165.secart +++|* TRM=TERMID,... SELECT JOBS FOR PRINTOUT BY TERMINAL ID. 01168 M00S01166.secart +++|* 01169 M00S01167.secart +++|* LIMIT=NNNN LIMIT JOB PRINTOUTS TO NNNN LINES EACH. 01170 M00S01168.secart +++| 01171 M00S01169.secart +++|* EACH DIRECTIVE LINE. 01172 M00S01170.secart +++| 01173 M00S01171.secart +++| 100 READ (7,10,END=190) DIR 01174 M00S01172.secart +++| 10 FORMAT(A80) 01175 M00S01173.secart +++| WRITE (8,*) ' //// ',DIR 01176 M00S01174.secart +++| 01177 M00S01175.secart +++|* DIRECTIVE: AMSG=MSID,MSID... 01178 M00S01176.secart +++|* ACCOUNT LOG MSG ID-S FOR SERIAL PRINTOUT. 01179 M00S01177.secart +++| 01180 M00S01178.secart +++| IF (DIR(1:5).EQ.'AMSG=') THEN 01181 M00S01179.secart +++| I=6 01182 M00S01180.secart +++| 01183 M00S01181.secart +++| 110 CALL PARSE(DIR,I,MID) 01184 M00S01182.secart +++| IF (MID.NE.' ') THEN 01185 M00S01183.secart +++| CALL AMSMARK(MID,'*') 01186 M00S01184.secart +++| GOTO 110 01187 M00S01185.secart +++| ENDIF 01188 M00S01186.secart +++| 01189 M00S01187.secart +++|* DIRECTIVE: DMSG=NN:TEXT STRING...[40]. 01190 M00S01188.secart +++|* DAYFILE LOG TEXT STRING FOR SERIAL PRINTOUT. 01191 M00S01189.secart +++| 01192 M00S01190.secart +++| ELSE IF (DIR(1:5).EQ.'DMSG=') THEN 01193 M00S01191.secart +++| NM=NM+1 01194 M00S01192.secart +++| I=6 01195 M00S01193.secart +++| N=INDEX('0123456789',DIR(I:I)) 01196 M00S01194.secart +++| IF (N.GT.0) THEN 01197 M00S01195.secart +++| ITX(NM)=N-1 01198 M00S01196.secart +++| I=I+1 01199 M00S01197.secart +++| N=INDEX('0123456789',DIR(I:I)) 01200 M00S01198.secart +++| IF (N.GT.0) THEN 01201 M00S01199.secart +++| ITX(NM)=10*ITX(NM)+(N-1) 01202 M00S01200.secart +++| I=I+1 01203 M00S01201.secart +++| ENDIF 01204 M00S01202.secart +++| 01205 M00S01203.secart +++|* COLON REQUIRED WITH CHAR POSITION. 01206 M00S01204.secart +++| 01207 M00S01205.secart +++| IF (DIR(I:I).EQ.':') THEN 01208 M00S01206.secart +++| I=I+1 01209 M00S01207.secart +++| 01210 M00S01208.secart +++|* OTHERWISE USE AS TEXT STRING. 01211 M00S01209.secart +++| 01212 M00S01210.secart +++| ELSE 01213 M00S01211.secart +++| I=6 01214 M00S01212.secart +++| ITX(NM)=0 01215 M00S01213.secart +++| ENDIF 01216 M00S01214.secart +++| ENDIF 01217 M00S01215.secart +++| MTX(NM)=DIR(I:I+39) 01218 M00S01216.secart +++| LTX(NM)=1 01219 M00S01217.secart +++| DO 120 I=1,40 01220 M00S01218.secart +++| IF (MTX(NM)(I:I).NE.' ') LTX(NM)=I 01221 M00S01219.secart +++| 120 CONTINUE 01222 M00S01220.secart +++| 01223 M00S01221.secart +++|* DIRECTIVE: TIME=START[,END] 01224 M00S01222.secart +++|* TIME PERIOD FOR SERIAL PRINTOUT. 01225 M00S01223.secart +++| 01226 M00S01224.secart +++| ELSE IF (DIR(1:5).EQ.'TIME=') THEN 01227 M00S01225.secart +++| I=6 01228 M00S01226.secart +++| IF (NP.GE.MXP) GOTO 180 01229 M00S01227.secart +++| CALL TMARG(DIR,I,TMS(NP+1)) 01230 M00S01228.secart +++| TME(NP)=TMS(NP) 01231 M00S01229.secart +++| IF (DIR(I-1:I-1).EQ.'-') CALL TMARG(DIR,I,TME(NP+1)) 01232 M00S01230.secart +++| IF (TMS(NP+1).NE.' '.AND.TME(NP+1).NE.' ') NP=NP+1 01233 M00S01231.secart +++| WINDOW=.FALSE. 01234 M00S01232.secart +++| 01235 M00S01233.secart +++|* DIRECTIVE: TRACE=KEY,KEY,... 01236 M00S01234.secart +++|* SORT KEYS FOR TRACE TABLE PRINTOUT. 01237 M00S01235.secart +++|* VALID KEYS: UJN,JSN,JC,SDT,EDT,FM,UN,TRM. 01238 M00S01236.secart +++| 01239 M00S01237.secart +++| ELSE IF (DIR(1:6).EQ.'TRACE=') THEN 01240 M00S01238.secart +++| I=7 01241 M00S01239.secart +++| DO 130 N=1,12 01242 M00S01240.secart +++| CALL PARSE(DIR,I,SKY(N)) 01243 M00S01241.secart +++| 130 CONTINUE 01244 M00S01242.secart +++| 01245 M00S01243.secart +++|* DIRECTIVE: USER=FAMILY,USER. 01246 M00S01244.secart +++|* FAMILY & USERNAME PAIR W/WILDCARDS. 01247 M00S01245.secart +++| 01248 M00S01246.secart +++| ELSE IF (DIR(1:5).EQ.'USER=') THEN 01249 M00S01247.secart +++| I=6 01250 M00S01248.secart +++| CALL PARSE(DIR,I,FAMILY) 01251 M00S01249.secart +++| CALL PARSE(DIR,I,USER) 01252 M00S01250.secart +++| IF (NU.GE.MXP) GOTO 180 01253 M00S01251.secart +++| NU=NU+1 01254 M00S01252.secart +++| FAM(NU)=FAMILY 01255 M00S01253.secart +++| USR(NU)=USER 01256 M00S01254.secart +++| 01257 M00S01255.secart +++|* DIRECTIVE: UJN=JOBNAME,... 01258 M00S01256.secart +++|* USER JOB NAME FOR JOB SELECTION. 01259 M00S01257.secart +++| 01260 M00S01258.secart +++| ELSE IF (DIR(1:4).EQ.'UJN=') THEN 01261 M00S01259.secart +++| I=5 01262 M00S01260.secart +++| 140 CALL PARSE(DIR,I,JOBNAME) 01263 M00S01261.secart +++| IF (JOBNAME.NE.' ') THEN 01264 M00S01262.secart +++| IF (NN.GE.MXP) GOTO 180 01265 M00S01263.secart +++| NN=NN+1 01266 M00S01264.secart +++| UJN(NN)=JOBNAME 01267 M00S01265.secart +++| GOTO 140 01268 M00S01266.secart +++| ENDIF 01269 M00S01267.secart +++| 01270 M00S01268.secart +++|* DIRECTIVE: JSN=[D.]AAAA,... 01271 M00S01269.secart +++|* JOB SEQUENCE NAME (AAAA) W/ OPTIONAL D/S UNIQUE CODE (D.). 01272 M00S01270.secart +++| 01273 M00S01271.secart +++| ELSE IF (DIR(1:4).EQ.'JSN=') THEN 01274 M00S01272.secart +++| I=5 01275 M00S01273.secart +++| 150 IF(NS.GE.MXP) GOTO 180 01276 M00S01274.secart +++| JSN(NS+1)=' ' 01277 M00S01275.secart +++| CALL PARSE(DIR,I,JSN(NS+1)(3:6)) 01278 M00S01276.secart +++| IF (JSN(NS+1).NE.' ') THEN 01279 M00S01277.secart +++| NS=NS+1 01280 M00S01278.secart +++| IF (JSN(NS)(2:2).EQ.' ' .AND. DIR(I-1:I-1).EQ.'.') THEN 01281 M00S01279.secart +++| JSN(NS)(1:1)=JSN(NS)(3:3) 01282 M00S01280.secart +++| JSN(NS)(2:2)='.' 01283 M00S01281.secart +++| CALL PARSE(DIR,I,JSN(NS)(3:6)) 01284 M00S01282.secart +++| ELSE 01285 M00S01283.secart +++| JSN(NS)(1:2)='*.' 01286 M00S01284.secart +++| ENDIF 01287 M00S01285.secart +++| GOTO 150 01288 M00S01286.secart +++| ENDIF 01289 M00S01287.secart +++| 01290 M00S01288.secart +++|* DIRECTIVE: TRM=TERMID,... 01291 M00S01289.secart +++|* TERMINAL NAMES SELECTION DIRECTIVE. 01292 M00S01290.secart +++| 01293 M00S01291.secart +++| ELSE IF (DIR(1:4).EQ.'TRM=') THEN 01294 M00S01292.secart +++| I=5 01295 M00S01293.secart +++| 01296 M00S01294.secart +++| 160 CALL PARSE(DIR,I,TERMINL) 01297 M00S01295.secart +++| IF (TERMINL.NE.' ') THEN 01298 M00S01296.secart +++| IF (NT.GE.MXP) GOTO 180 01299 M00S01297.secart +++| NT=NT+1 01300 M00S01298.secart +++| TRM(NT)=TERMINL 01301 M00S01299.secart +++| GOTO 160 01302 M00S01300.secart +++| ENDIF 01303 M00S01301.secart +++| 01304 M00S01302.secart +++|* DIRECTIVE: LIMIT=NNNN 01305 M00S01303.secart +++|* SAMPLE LIMIT FOR PRINTOUTS. 01306 M00S01304.secart +++| 01307 M00S01305.secart +++| ELSE IF (DIR(1:6).EQ.'LIMIT=') THEN 01308 M00S01306.secart +++| I=7 01309 M00S01307.secart +++| JBLIMIT=0 01310 M00S01308.secart +++| 01311 M00S01309.secart +++| 170 N=ICHAR(DIR(I:I))-16 01312 M00S01310.secart +++| IF(N.GE.0.AND.N.LE.9.AND.I.LE.12) THEN 01313 M00S01311.secart +++| JBLIMIT=JBLIMIT*10+N 01314 M00S01312.secart +++| I=I+1 01315 M00S01313.secart +++| GOTO 170 01316 M00S01314.secart +++| ENDIF 01317 M00S01315.secart +++| 01318 M00S01316.secart +++|* UNRECOGNIZED DIRECTIVE VERB. 01319 M00S01317.secart +++| 01320 M00S01318.secart +++| ELSE 01321 M00S01319.secart +++| WRITE (8,*) ' *** UNRECOGNIZED DIRECTIVE ***' 01322 M00S01320.secart +++| ERR=.TRUE. 01323 M00S01321.secart +++| ENDIF 01324 M00S01322.secart +++| GOTO 100 01325 M00S01323.secart +++| 01326 M00S01324.secart +++|* ARGUMENT TABLE FULL, IGNORE ADDITIONAL ARGUMENTS. 01327 M00S01325.secart +++| 01328 M00S01326.secart +++| 180 WRITE (8,*) ' *** TOO MANY ARGUMENTS, EXCESS IGNORED.' 01329 M00S01327.secart +++| ERR=.TRUE. 01330 M00S01328.secart +++| GOTO 100 01331 M00S01329.secart +++| 01332 M00S01330.secart +++|* FINISHED WITH DIRECTIVES, REPORT IF ERRORS. 01333 M00S01331.secart +++| 01334 M00S01332.secart +++| 190 IF (ERR) CALL REMARK(' *** DIRECTIVE ERROR(S).') 01335 M00S01333.secart +++| RETURN 01336 M00S01334.secart +++| 01337 M00S01335.secart +++| 01338 M00S01336.secart +++|* --------------------------------------------------------------------- 01339 M00S01337.secart +++|* SERIAL PRINTOUT SELECTIONS. 01340 M00S01338.secart +++|* --------------------------------------------------------------------- 01341 M00S01339.secart +++| 01342 M00S01340.secart +++|** ENTRY - CALL TMCHECK(ETM,HIT) 01343 M00S01341.secart +++|* *ETM* CONTAINS TIMESTAMP FROM LOG MESSAGE. 01344 M00S01342.secart +++|* 01345 M00S01343.secart +++|* EXIT - *HIT* SET TO .TRUE. IF *ETM* FALLS WITHIN ANY TIME 01346 M00S01344.secart +++|* WINDOW, OTHERWISE UNCHANGED (AVOID CONFLICT WITH 01347 M00S01345.secart +++|* OTHER SELECTION IN CALLING ROUTINE). 01348 M00S01346.secart +++|* 01349 M00S01347.secart +++|* PRINTOUT (UNIT 8) MESSAGES: 01350 M00S01348.secart +++|* ====== TIME WINDOW START ====== 01351 M00S01349.secart +++|* ====== TIME WINDOW END ====== 01352 M00S01350.secart +++|* 01353 M00S01351.secart +++|* NOTES - THIS ROUTINE REMEMBERS INDEX OF OPEN TIME WINDOW IN 01354 M00S01352.secart +++|* *IW* TO SHORTCUT SEARCH AND TEST. 01355 M00S01353.secart +++| 01356 M00S01354.secart +++| 01357 M00S01355.secart +++| ENTRY TMCHECK(ETM,HIT) 01358 M00S01356.secart +++| 01359 M00S01357.secart +++| IF (NP.LE.0) RETURN 01360 M00S01358.secart +++| 01361 M00S01359.secart +++|* CHECK FOR END OF CURRENT WINDOW, IF ANY. 01362 M00S01360.secart +++| 01363 M00S01361.secart +++| IF (WINDOW) THEN 01364 M00S01362.secart +++| IF (ETM.LE.TME(IW)) THEN 01365 M00S01363.secart +++| HIT=.TRUE. 01366 M00S01364.secart +++| RETURN 01367 M00S01365.secart +++| ELSE 01368 M00S01366.secart +++| WINDOW=.FALSE. 01369 M00S01367.secart +++| WRITE (8,*) ' ====== TIME WINDOW END ======' 01370 M00S01368.secart +++| ENDIF 01371 M00S01369.secart +++| ENDIF 01372 M00S01370.secart +++| 01373 M00S01371.secart +++|* CHECK FOR START OF ANY TIME WINDOW. 01374 M00S01372.secart +++| 01375 M00S01373.secart +++| DO 200 I=1,NP 01376 M00S01374.secart +++| IF (ETM.LT.TMS(I) .OR. ETM.GT.TME(I)) GOTO 200 01377 M00S01375.secart +++| IW=I 01378 M00S01376.secart +++| WINDOW=.TRUE. 01379 M00S01377.secart +++| WRITE (8,*) ' ====== TIME WINDOW START ======' 01380 M00S01378.secart +++| 200 CONTINUE 01381 M00S01379.secart +++| RETURN 01382 M00S01380.secart +++| 01383 M00S01381.secart +++| 01384 M00S01382.secart +++|** ENTRY - CALL MSCHECK(TXT,HIT) 01385 M00S01383.secart +++|* *TXT* IS MESSAGE FIELD FROM DAYFILE MESSAGE. 01386 M00S01384.secart +++|* 01387 M00S01385.secart +++|* EXIT - *HIT* SET TO .TRUE. IF *TXT* CONTAINS SELECTED TEXT 01388 M00S01386.secart +++|* STRING, .FALSE. OTHERWISE. 01389 M00S01387.secart +++| 01390 M00S01388.secart +++| ENTRY MSCHECK(TXT,HIT) 01391 M00S01389.secart +++| 01392 M00S01390.secart +++| IF (NM.EQ.0) RETURN 01393 M00S01391.secart +++| DO 210 N=1,NM 01394 M00S01392.secart +++| IF (ITX(N).EQ.0) THEN 01395 M00S01393.secart +++| IF (INDEX(TXT,MTX(N)(1:LTX(N))).NE.0) HIT=.TRUE. 01396 M00S01394.secart +++| ELSE 01397 M00S01395.secart +++| IF (TXT(ITX(N):ITX(N)+LTX(N)-1).EQ.MTX(N)(1:LTX(N))) 01398 M00S01396.secart +++| . HIT=.TRUE. 01399 M00S01397.secart +++| ENDIF 01400 M00S01398.secart +++| IF (HIT) RETURN 01401 M00S01399.secart +++| 210 CONTINUE 01402 M00S01400.secart +++| RETURN 01403 M00S01401.secart +++| 01404 M00S01402.secart +++| 01405 M00S01403.secart +++|* --------------------------------------------------------------------- 01406 M00S01404.secart +++|* JOB SELECTION ENTRY POINTS. 01407 M00S01405.secart +++|* CALLED DURING 1ST PASS TO TAG PICKS IN TRACE TABLE. 01408 M00S01406.secart +++|* --------------------------------------------------------------------- 01409 M00S01407.secart +++| 01410 M00S01408.secart +++| 01411 M00S01409.secart +++|** ENTRY - CALL PICKJSN(JS,MK) 01412 M00S01410.secart +++|* *JS* IS JSN FROM LOG MESSAGE. 01413 M00S01411.secart +++|* *MK* IS MARKS FIELD FOR JOB IN JSN TRACE TABLE. 01414 M00S01412.secart +++|* 01415 M00S01413.secart +++|* EXIT - *MK(1:1)* SET TO 'J' IF JSN WAS SELECTED. 01416 M00S01414.secart +++| 01417 M00S01415.secart +++| ENTRY PICKJSN(JS,MK) 01418 M00S01416.secart +++| 01419 M00S01417.secart +++|* CHECK NEW JSN AGAINST EACH SELECTED JSN, IF ANY. 01420 M00S01418.secart +++| 01421 M00S01419.secart +++| IF (NS.EQ.0) RETURN 01422 M00S01420.secart +++| DO 220 I=1,NS 01423 M00S01421.secart +++| IF ( (JS(3:6).EQ.JSN(I)(3:6)) .AND. 01424 M00S01422.secart +++| . (JS(1:1).EQ.JSN(I)(1:1) .OR. JSN(I)(1:1).EQ.'*') )MK(1:1)='J' 01425 M00S01423.secart +++| 220 CONTINUE 01426 M00S01424.secart +++| RETURN 01427 M00S01425.secart +++| 01428 M00S01426.secart +++| 01429 M00S01427.secart +++|** ENTRY - CALL PICKUJN(JN,MK) 01430 M00S01428.secart +++|* *JN* IS UJN FROM LOG MESSAGE. 01431 M00S01429.secart +++|* *MK* IS MARKS FIELD FOR JOB IN JSN TRACE TABLE. 01432 M00S01430.secart +++|* 01433 M00S01431.secart +++|* EXIT - *MK(2:2)* SET TO 'N' IF UJN WAS SELECTED. 01434 M00S01432.secart +++| 01435 M00S01433.secart +++| ENTRY PICKUJN(JN,MK) 01436 M00S01434.secart +++| 01437 M00S01435.secart +++|* CHECK EACH NEW UJN AGAINST EACH SELECTED UJN-S, IF ANY. 01438 M00S01436.secart +++| 01439 M00S01437.secart +++| IF (NN.EQ.0) RETURN 01440 M00S01438.secart +++| DO 230 I=1,NN 01441 M00S01439.secart +++| IF (JN.EQ.UJN(I)) MK(2:2)='N' 01442 M00S01440.secart +++| 230 CONTINUE 01443 M00S01441.secart +++| RETURN 01444 M00S01442.secart +++| 01445 M00S01443.secart +++| 01446 M00S01444.secart +++|** ENTRY - CALL PICKUSR(FN,UN,MK) 01447 M00S01445.secart +++|* *FN* IS FAMILYNAME FROM LOG MESSAGE. 01448 M00S01446.secart +++|* *UN* IS USERNAME FROM LOG MESSAGE. 01449 M00S01447.secart +++|* *MK* IS MARKS FIELD FOR JOB IN JSN TRACE TABLE. 01450 M00S01448.secart +++|* 01451 M00S01449.secart +++|* EXIT - *MK(3:3)* SET TO 'U' IF FAMILY/USER WAS SELECTED. 01452 M00S01450.secart +++| 01453 M00S01451.secart +++| ENTRY PICKUSR(FN,UN,MK) 01454 M00S01452.secart +++| 01455 M00S01453.secart +++|* CHECK NEW USERID AGAINST EACH SELECTED FAMILY AND USER PAIR. 01456 M00S01454.secart +++|* WILDCARD (*) MATCHES ANYTHING. BLANK FAMILY MATCHES DEFAULT FAMILY. 01457 M00S01455.secart +++| 01458 M00S01456.secart +++| IF (NU.EQ.0) RETURN 01459 M00S01457.secart +++| DO 240 I=1,NU 01460 M00S01458.secart +++| IF ( (FAM(I).EQ.'*'.OR.FN.EQ.FAM(I)) .AND. 01461 M00S01459.secart +++| . (USR(I).EQ.'*'.OR.USR(I).EQ.UN) ) MK(3:3)='U' 01462 M00S01460.secart +++| 240 CONTINUE 01463 M00S01461.secart +++| RETURN 01464 M00S01462.secart +++| 01465 M00S01463.secart +++| 01466 M00S01464.secart +++|** ENTRY - CALL PICKTRM(TN,MK) 01467 M00S01465.secart +++|* *TN* IS TERMINAL ID FROM LOG MESSAGE. 01468 M00S01466.secart +++|* *MK* IS MARKS FIELD FOR JOB IN JSN TRACE TABLE. 01469 M00S01467.secart +++|* 01470 M00S01468.secart +++|* EXIT - *MK(4:4)* SET TO 'T' IF TERMINAL ID WAS SELECTED. 01471 M00S01469.secart +++| 01472 M00S01470.secart +++| ENTRY PICKTRM(TN,MK) 01473 M00S01471.secart +++| 01474 M00S01472.secart +++|* CHECK NEW TERMINAL ID AGAINST EACH SELECTED TERMINAL ID, IF ANY. 01475 M00S01473.secart +++| 01476 M00S01474.secart +++| IF (NT.EQ.0) RETURN 01477 M00S01475.secart +++| DO 250 I=1,NT 01478 M00S01476.secart +++| IF (TN.EQ.TRM(I)) MK(4:4)='T' 01479 M00S01477.secart +++| 250 CONTINUE 01480 M00S01478.secart +++| RETURN 01481 M00S01479.secart +++| END 01482 M00S01480.secart +++| 01483 M00S01481.secart +++|* --------------------------------------------------------------------- 01484 M00S01482.secart +++| SUBROUTINE TMARG(DIR,IS,TIMEX) 01485 M00S01483.secart +++|** TMARG - EXPANDS TIME= DIRECTIVE ARGUMENTS TO FIXED FORMAT. 01486 M00S01484.secart +++|* 01487 M00S01485.secart +++|* *TMARG* ACCEPTS TIME ARGUMENTS IN A VARIETY OF FORMATS AND 01488 M00S01486.secart +++|* EXPANDS INTO A CANONICAL FIXED FORMAT FOR USE IN TIME WINDOW 01489 M00S01487.secart +++|* SELECTION OF MESSAGES FOR SERIAL PRINTOUT. 01490 M00S01488.secart +++|* 01491 M00S01489.secart +++|* ENTRY - CALL TMARG(DIR,IS,TIMEX) 01492 M00S01490.secart +++|* *DIR* IS DIRECTIVE CONTAINING TIME= ARGS. 01493 M00S01491.secart +++|* *IS* IS STRING POSITION OF TIME ARGUMENT. 01494 M00S01492.secart +++|* 01495 M00S01493.secart +++|* EXIT - *TIMEX* WILL CONTAIN FIXED FORMAT TIME ARGUMENT. 01496 M00S01494.secart +++|* 01497 M00S01495.secart +++|* ERROR - PRINTOUT (UNIT 8): 01498 M00S01496.secart +++|* *** TIME ARGUMENT ERROR. 01499 M00S01497.secart +++|* 01500 M00S01498.secart +++|* NOTES - FTN5 INDEX FUNCTION IS USED TO TEST FOR DIGITS AND 01501 M00S01499.secart +++|* NUMERIC RANGE AT SAME TIME. ACCEPTED FORMS ARE: 01502 M00S01500.secart +++|* HOURS - HH- HH. REQUIRED. 01503 M00S01501.secart +++|* MINUTES - MM- MM. OPTIONAL. 01504 M00S01502.secart +++|* SECONDS - SS- SS. OPTIONAL W/MINUTES. 01505 M00S01503.secart +++|* ---------------------------- 01506 M00S01504.secart +++|* EXPANDED TO => ' HH.MM.SS.' CANONICAL FORM. 01507 M00S01505.secart +++| 01508 M00S01506.secart +++| IMPLICIT INTEGER(A-Z) 01509 M00S01507.secart +++| 01510 M00S01508.secart +++| CHARACTER*80 DIR 01511 M00S01509.secart +++|* ARG - DIRECTIVE TEXT STRING. 01512 M00S01510.secart +++| 01513 M00S01511.secart +++| INTEGER IS 01514 M00S01512.secart +++|* ARG - START POSITION FOR TIME ARGUMENT. 01515 M00S01513.secart +++| 01516 M00S01514.secart +++| CHARACTER*10 TIMEX 01517 M00S01515.secart +++|* ARG - FIXED FORMAT TIME RETURNED. 01518 M00S01516.secart +++| 01519 M00S01517.secart +++|* SET DEFAULT RESULT. 01520 M00S01518.secart +++| 01521 M00S01519.secart +++| TIMEX=' 00.00.00.' 01522 M00S01520.secart +++| 01523 M00S01521.secart +++|* HOURS PORTION OF TIMESTAMP. 01524 M00S01522.secart +++| 01525 M00S01523.secart +++| IF (INDEX('012',DIR(IS:IS)).NE.0) THEN 01526 M00S01524.secart +++| TIMEX(2:2)=DIR(IS:IS) 01527 M00S01525.secart +++| IS=IS+1 01528 M00S01526.secart +++| ELSE 01529 M00S01527.secart +++| GOTO 110 01530 M00S01528.secart +++| ENDIF 01531 M00S01529.secart +++| 01532 M00S01530.secart +++| IF (INDEX('0123456789',DIR(IS:IS)).NE.0) THEN 01533 M00S01531.secart +++| TIMEX(3:3)=DIR(IS:IS) 01534 M00S01532.secart +++| IS=IS+1 01535 M00S01533.secart +++| ELSE 01536 M00S01534.secart +++| GOTO 110 01537 M00S01535.secart +++| ENDIF 01538 M00S01536.secart +++| IF (DIR(IS:IS).EQ.'.') IS=IS+1 01539 M00S01537.secart +++| IF (DIR(IS:IS).EQ.'-') GOTO 100 01540 M00S01538.secart +++| 01541 M00S01539.secart +++|* MINUTES PORTION OF TIMESTAMP. 01542 M00S01540.secart +++| 01543 M00S01541.secart +++| IF (INDEX('012345',DIR(IS:IS)).NE.0) THEN 01544 M00S01542.secart +++| TIMEX(5:5)=DIR(IS:IS) 01545 M00S01543.secart +++| IS=IS+1 01546 M00S01544.secart +++| ELSE 01547 M00S01545.secart +++| GOTO 110 01548 M00S01546.secart +++| ENDIF 01549 M00S01547.secart +++| 01550 M00S01548.secart +++| IF (INDEX('0123456789',DIR(IS:IS)).NE.0) THEN 01551 M00S01549.secart +++| TIMEX(6:6)=DIR(IS:IS) 01552 M00S01550.secart +++| IS=IS+1 01553 M00S01551.secart +++| ELSE 01554 M00S01552.secart +++| GOTO 110 01555 M00S01553.secart +++| ENDIF 01556 M00S01554.secart +++| IF (DIR(IS:IS).EQ.'.') IS=IS+1 01557 M00S01555.secart +++| IF (DIR(IS:IS).EQ.'-') GOTO 100 01558 M00S01556.secart +++| 01559 M00S01557.secart +++|* SECONDS PORTION OF TIMESTAMP. 01560 M00S01558.secart +++| 01561 M00S01559.secart +++| IF (INDEX('012345',DIR(IS:IS)).NE.0) THEN 01562 M00S01560.secart +++| TIMEX(8:8)=DIR(IS:IS) 01563 M00S01561.secart +++| IS=IS+1 01564 M00S01562.secart +++| ELSE 01565 M00S01563.secart +++| GOTO 110 01566 M00S01564.secart +++| ENDIF 01567 M00S01565.secart +++| 01568 M00S01566.secart +++| IF (INDEX('0123456789',DIR(IS:IS)).NE.0) THEN 01569 M00S01567.secart +++| TIMEX(9:9)=DIR(IS:IS) 01570 M00S01568.secart +++| IS=IS+1 01571 M00S01569.secart +++| ELSE 01572 M00S01570.secart +++| GOTO 110 01573 M00S01571.secart +++| ENDIF 01574 M00S01572.secart +++| IF (DIR(IS:IS).EQ.'.') IS=IS+1 01575 M00S01573.secart +++| IF (DIR(IS:IS).NE.'-') RETURN 01576 M00S01574.secart +++| 01577 M00S01575.secart +++| 100 IS=IS+1 01578 M00S01576.secart +++| RETURN 01579 M00S01577.secart +++| 01580 M00S01578.secart +++|* TIMESTAMP ARGUMENT ERROR. 01581 M00S01579.secart +++| 01582 M00S01580.secart +++| 110 WRITE (8,*) ' *** TIME ARGUMENT ERROR.' 01583 M00S01581.secart +++| TIMEX=' ' 01584 M00S01582.secart +++| RETURN 01585 M00S01583.secart +++| END 01586 M00S01584.secart +++| 01587 M00S01585.secart +++|* --------------------------------------------------------------------- 01588 M00S01586.secart +++| SUBROUTINE DFSCAN(LFN,*) 01589 M00S01587.secart +++|** DFSCAN - DAYFILE LOG MESSAGE PROCESSING. 01590 M00S01588.secart +++|* 01591 M00S01589.secart +++|* *DFSCAN* PROVIDES THE PRIMARY ROUTINES FOR PROCESSING DAYFILE 01592 M00S01590.secart +++|* LOG MESSAGES. IT PROVIDES AN ENTRY POINT TO PRE-SCAN THE LOG 01593 M00S01591.secart +++|* FILE TO VALIDATE FORMAT AND EXTRACT CRITICAL SYSTEM ID AND 01594 M00S01592.secart +++|* DATE/TIME DATA, AND ANOTHER FOR ROUTINE PROCESSING OF EACH 01595 M00S01593.secart +++|* LOG MESSAGE IN THE SEQUENCE CONTROLLED BY *SECART*. ANNOTATED 01596 M00S01594.secart +++|* MESSAGES ARE WRITTEN TO COMPOSITE LOG FILE ON UNIT 3. 01597 M00S01595.secart +++| 01598 M00S01596.secart +++| 01599 M00S01597.secart +++| IMPLICIT INTEGER(A-Z) 01600 M00S01598.secart +++| 01601 M00S01599.secart +++| PARAMETER (MXJ=1000) 01602 M00S01600.secart +++|* SIZE OF JSN TRACE TABLE. 01603 M00S01601.secart +++| 01604 M00S01602.secart +++| EQUIVALENCE (DFEDTG,DFEDATE) 01605 M00S01603.secart +++|* /DFL/ DFEDTG*20 = DFEDATE*10//DFETIME*10. 01606 M00S01604.secart +++| 01607 M00S01605.secart +++| 01608 M00S01606.secart +++| LOGICAL ACEOF 01609 M00S01607.secart +++|* /CTL/ ACCOUNT LOG EOF FLAG. 01610 M00S01608.secart +++| 01611 M00S01609.secart +++| INTEGER ACIN 01612 M00S01610.secart +++|* /CTL/ ACCOUNT LOG MESSAGE COUNTER. 01613 M00S01611.secart +++| 01614 M00S01612.secart +++| LOGICAL DFEOF 01615 M00S01613.secart +++|* /CTL/ DAYFILE LOG EOF FLAG. 01616 M00S01614.secart +++| 01617 M00S01615.secart +++| CHARACTER*10 DFEDATE 01618 M00S01616.secart +++|* /DFL/ (EQV) DAYFILE LOG END DATE. 01619 M00S01617.secart +++| 01620 M00S01618.secart +++| CHARACTER*20 DFEDTG 01621 M00S01619.secart +++|* /DFL/ (EQV) DAYFILE LOG END DATE/TIME. 01622 M00S01620.secart +++| 01623 M00S01621.secart +++| CHARACTER*10 DFETIME 01624 M00S01622.secart +++|* /DFL/ (EQV) DAYFILE LOG END TIME. 01625 M00S01623.secart +++| 01626 M00S01624.secart +++| INTEGER DFIN 01627 M00S01625.secart +++|* /CTL/ DAYFILE LOG MESSAGE COUNTER. 01628 M00S01626.secart +++| 01629 M00S01627.secart +++| CHARACTER*10 DFSDATE 01630 M00S01628.secart +++|* /DFL/ (EQV) DAYFILE LOG START DATE. 01631 M00S01629.secart +++| 01632 M00S01630.secart +++| CHARACTER*10 DFSTIME 01633 M00S01631.secart +++|* /DFL/ (EQV) DAYFILE LOG START TIME. 01634 M00S01632.secart +++| 01635 M00S01633.secart +++| CHARACTER*40 DFTITLE 01636 M00S01634.secart +++|* /DFL/ DAYFILE SYSTEM TITLE. 01637 M00S01635.secart +++| 01638 M00S01636.secart +++| CHARACTER*100 DFTXT 01639 M00S01637.secart +++|* /DFL/ CURRENT DAYFILE MESSAGE TEXT. 01640 M00S01638.secart +++| 01641 M00S01639.secart +++| CHARACTER*20 DFVERSN 01642 M00S01640.secart +++|* /DFL/ SYSTEM VERSION (PART OF SYID). 01643 M00S01641.secart +++| 01644 M00S01642.secart +++| CHARACTER*1 DSU 01645 M00S01643.secart +++|* /TRC/ DEADSTART UNIQUE PREFIX CODE. 01646 M00S01644.secart +++| 01647 M00S01645.secart +++| CHARACTER*7 FAM 01648 M00S01646.secart +++|* TEMP - FAMILYNAME VARIABLE. 01649 M00S01647.secart +++| 01650 M00S01648.secart +++| CHARACTER*7 FN(MXJ) 01651 M00S01649.secart +++|* /TRC/ FAMILY NAME COLUMN IN TRACE TABLE. 01652 M00S01650.secart +++| 01653 M00S01651.secart +++| INTEGER JBLIMIT 01654 M00S01652.secart +++|* /CTL/ UNIT JOB PRINTOUT MESSAGE LIMIT. 01655 M00S01653.secart +++| 01656 M00S01654.secart +++| CHARACTER*1 JC(MXJ) 01657 M00S01655.secart +++|* /TRC/ JOB CLASS COLUMN IN TRACE TABLE. 01658 M00S01656.secart +++| 01659 M00S01657.secart +++| CHARACTER*1 JCL 01660 M00S01658.secart +++|* TEMP - JOB CLASS VARIABLE. 01661 M00S01659.secart +++| 01662 M00S01660.secart +++| CHARACTER*7 JN(MXJ) 01663 M00S01661.secart +++|* /TRC/ UJN COLUMN IN TRACE TABLE. 01664 M00S01662.secart +++| 01665 M00S01663.secart +++| CHARACTER*6 JS(MXJ) 01666 M00S01664.secart +++|* /TRC/ D.JSN COLUMN IN TRACE TABLE. 01667 M00S01665.secart +++| 01668 M00S01666.secart +++| CHARACTER*6 JSN 01669 M00S01667.secart +++|* TEMP - JSN VARIABLE. 01670 M00S01668.secart +++| 01671 M00S01669.secart +++| CHARACTER*7 LFN 01672 M00S01670.secart +++|* ARG - LFN OF DAYFILE LOG FILE. 01673 M00S01671.secart +++| 01674 M00S01672.secart +++| CHARACTER*5 MK(MXJ) 01675 M00S01673.secart +++|* /TRC/ JOB SELECTION MARKS IN TRACE TABLE. 01676 M00S01674.secart +++| 01677 M00S01675.secart +++| INTEGER ML(2,MXJ) 01678 M00S01676.secart +++|* /CTL/ DFL/AFL MSG COUNTS FOR TRACE TABLE. 01679 M00S01677.secart +++| 01680 M00S01678.secart +++| INTEGER NJ 01681 M00S01679.secart +++|* /CTL/ CURRENT NUMBER JOBS IN TRACE TABLE. 01682 M00S01680.secart +++| 01683 M00S01681.secart +++| CHARACTER*7 NUL 01684 M00S01682.secart +++|* TEMP - FOR IGNORED WORD FROM *PARSE*. 01685 M00S01683.secart +++| 01686 M00S01684.secart +++| LOGICAL PRT 01687 M00S01685.secart +++|* FLAG SET TO PRINTOUT DAYFILE MESSAGE. 01688 M00S01686.secart +++| 01689 M00S01687.secart +++| INTEGER SM 01690 M00S01688.secart +++|* LOCAL COUNTER FOR DFL SYSTEM MESSAGES. 01691 M00S01689.secart +++| 01692 M00S01690.secart +++| CHARACTER*20 TE(MXJ) 01693 M00S01691.secart +++|* /TRC/ JOB DATE/TIME END IN TRACE TABLE. 01694 M00S01692.secart +++| 01695 M00S01693.secart +++| CHARACTER*7 TN(MXJ) 01696 M00S01694.secart +++|* /TRC/ JOB TERMINAL NAME IN TRACE TABLE. 01697 M00S01695.secart +++| 01698 M00S01696.secart +++| CHARACTER*20 TS(MXJ) 01699 M00S01697.secart +++|* /TRC/ JOB DATE/TIME START IN TRACE TABLE. 01700 M00S01698.secart +++| 01701 M00S01699.secart +++| CHARACTER*7 UN(MXJ) 01702 M00S01700.secart +++|* /TRC/ JOB USERNAME IN TRACE TABLE. 01703 M00S01701.secart +++| 01704 M00S01702.secart +++| CHARACTER*7 USR 01705 M00S01703.secart +++|* TEMP - USERNAME VARIABLE. 01706 M00S01704.secart +++| 01707 M00S01705.secart +++| CHARACTER*7 VERB 01708 M00S01706.secart +++|* TEMP - COMMAND CRACKING VARIABLE. 01709 M00S01707.secart +++| 01710 M00S01708.secart +++| 01711 M00S01709.secart +++|* GLOBAL NUMERIC/LOGICAL VARIABLES AND PARAMETERS. 01712 M00S01710.secart +++| 01713 M00S01711.secart +++| COMMON /CTL/ NJ 01714 M00S01712.secart +++| COMMON /CTL/ ACIN 01715 M00S01713.secart +++| COMMON /CTL/ DFIN 01716 M00S01714.secart +++| COMMON /CTL/ ACEOF 01717 M00S01715.secart +++| COMMON /CTL/ DFEOF 01718 M00S01716.secart +++| COMMON /CTL/ ML 01719 M00S01717.secart +++| COMMON /CTL/ JBLIMIT 01720 M00S01718.secart +++| 01721 M00S01719.secart +++|* DAYFILE LOG SPECIFIC VARIABLES. 01722 M00S01720.secart +++| 01723 M00S01721.secart +++| COMMON /DFL/ DFSDATE 01724 M00S01722.secart +++| COMMON /DFL/ DFSTIME 01725 M00S01723.secart +++| COMMON /DFL/ DFEDATE 01726 M00S01724.secart +++| COMMON /DFL/ DFETIME 01727 M00S01725.secart +++| COMMON /DFL/ DFTITLE 01728 M00S01726.secart +++| COMMON /DFL/ DFVERSN 01729 M00S01727.secart +++| COMMON /DFL/ DFTXT 01730 M00S01728.secart +++| 01731 M00S01729.secart +++|* JSN TRACE TABLE STORAGE. 01732 M00S01730.secart +++| 01733 M00S01731.secart +++| COMMON /TRC/ DSU 01734 M00S01732.secart +++| COMMON /TRC/ MK 01735 M00S01733.secart +++| COMMON /TRC/ JN 01736 M00S01734.secart +++| COMMON /TRC/ JS 01737 M00S01735.secart +++| COMMON /TRC/ JC 01738 M00S01736.secart +++| COMMON /TRC/ TS 01739 M00S01737.secart +++| COMMON /TRC/ TE 01740 M00S01738.secart +++| COMMON /TRC/ FN 01741 M00S01739.secart +++| COMMON /TRC/ UN 01742 M00S01740.secart +++| COMMON /TRC/ TN 01743 M00S01741.secart +++| 01744 M00S01742.secart +++| DATA SM/0/ 01745 M00S01743.secart +++| 01746 M00S01744.secart +++| 01747 M00S01745.secart +++|** ENTRY - CALL DFSCAN(LFN,*NNN) 01748 M00S01746.secart +++|* *LFN* IS LFN OF DAYFILE LOG FILE. 01749 M00S01747.secart +++|* *NNN IS ALTERNATE EXIT STATEMENT NUMBER. 01750 M00S01748.secart +++|* 01751 M00S01749.secart +++|* EXIT - FILE REWOUND AND FIRST RECORD READ FOR PROCESSING. 01752 M00S01750.secart +++|* 01753 M00S01751.secart +++|* ERROR - ALTERNATE EXIT TAKEN IF FILE FAILS FORMAT TEST OR 01754 M00S01752.secart +++|* EOF FOUND BEFORE FIRST 3 SYSJOB MESSAGES FOUND. 01755 M00S01753.secart +++|* 01756 M00S01754.secart +++|* USES - COMMON /CTL/ FOR GLOBAL VARIABLES DFEOF, DFIN. 01757 M00S01755.secart +++|* COMMON /DFL/ FOR DAYFILE-SPECIFIC VARIABLES. 01758 M00S01756.secart +++|* 01759 M00S01757.secart +++|* CALLS - *LOGTEST* TO TEST LOG FORMAT, EXTRACT DATE/TIME. 01760 M00S01758.secart +++|* 01761 M00S01759.secart +++|* NOTES - DAYFILE LOG PRE-SCAN ROUTINE REQUIRES: 01762 M00S01760.secart +++|* 1) THAT FILE BE FORMATTED AS A RAW DAYFILE LOG. 01763 M00S01761.secart +++|* 2) FINDING A START DATE VIA - 01764 M00S01762.secart +++|* A) 1ST RECORD DATE STAMP -OR- 01765 M00S01763.secart +++|* B) DATE IN 1ST SYSJOB MESSAGE -OR- 01766 M00S01764.secart +++|* C) A DEAD START MSG -OR- 01767 M00S01765.secart +++|* D) AN HOURLY DATE STAMP MSG. 01768 M00S01766.secart +++|* 3) ESTABLISHING SYSTEM ID VIA - 01769 M00S01767.secart +++|* A) TITLE IN 2ND SYSJOB MSG -AND- 01770 M00S01768.secart +++|* B) VERSION IN 3RD SYSJOB MSG. 01771 M00S01769.secart +++|* IF SUCCESSFUL, FILE WILL BE REWOUND AND FIRST RECORD 01772 M00S01770.secart +++|* WILL BE READ IN ADVANCE TO START PROCESSING. 01773 M00S01771.secart +++| 01774 M00S01772.secart +++| SM=0 01775 M00S01773.secart +++| DFEOF=.FALSE. 01776 M00S01774.secart +++| 01777 M00S01775.secart +++|* CHECK LOG FORMAT AND EXTRACT START [DATE]/TIME STAMPS. 01778 M00S01776.secart +++| 01779 M00S01777.secart +++| CALL LOGTEST(1,DFTXT,DFEDATE,DFETIME,*130) 01780 M00S01778.secart +++| IF (DFETIME.EQ.' ') THEN 01781 M00S01779.secart +++| CALL REMARK(' *** '//LFN//' NOT RAW DAYFILE LOG.') 01782 M00S01780.secart +++| DFEOF=.TRUE. 01783 M00S01781.secart +++| RETURN 1 01784 M00S01782.secart +++| ENDIF 01785 M00S01783.secart +++| 01786 M00S01784.secart +++|* ACCEPT TIME, COUNT DATE STAMP RECORD AND REMEMBER TO SKIP OVER. 01787 M00S01785.secart +++| 01788 M00S01786.secart +++| DFSTIME=DFETIME 01789 M00S01787.secart +++| IF (DFEDATE.NE.' ') DFIN=1 01790 M00S01788.secart +++| GOTO 110 01791 M00S01789.secart +++| 01792 M00S01790.secart +++|* READ NEXT DAYFILE LOG RECORD. 01793 M00S01791.secart +++| 01794 M00S01792.secart +++| 100 READ (1,10,END=130) DFTXT 01795 M00S01793.secart +++| 10 FORMAT(A100) 01796 M00S01794.secart +++| 01797 M00S01795.secart +++|* SCAN FOR SYSJOB MESSAGES ONLY. 01798 M00S01796.secart +++| 01799 M00S01797.secart +++| 110 DFETIME=DFTXT(1:10) 01800 M00S01798.secart +++| IF (DFTXT(13:17).NE.'SYS S') GOTO 100 01801 M00S01799.secart +++| 01802 M00S01800.secart +++|* FIRST THREE SYSJOB MESSAGES HAVE SYSTEM DATE, TITLE, & VERSION. 01803 M00S01801.secart +++| 01804 M00S01802.secart +++| SM=SM+1 01805 M00S01803.secart +++| IF (SM.EQ.1) THEN 01806 M00S01804.secart +++| L=INDEX(DFTXT,'/') 01807 M00S01805.secart +++| IF (L.GT.3 .AND. DFTXT(L+3:L+3).EQ.'/') THEN 01808 M00S01806.secart +++| DFEDATE=DFTXT(L-3:L+6) 01809 M00S01807.secart +++| ENDIF 01810 M00S01808.secart +++| 01811 M00S01809.secart +++| ELSE IF (SM.EQ.2) THEN 01812 M00S01810.secart +++| DFTITLE=DFTXT(21:60) 01813 M00S01811.secart +++| 01814 M00S01812.secart +++| ELSE IF (SM.EQ.3) THEN 01815 M00S01813.secart +++| DFVERSN=DFTXT(21:40) 01816 M00S01814.secart +++| 01817 M00S01815.secart +++|* OTHER SYSJOB MSG-S INCLUDE DEAD START DATE MESSAGE WITH DATE. 01818 M00S01816.secart +++| 01819 M00S01817.secart +++| ELSE IF (DFTXT(32:41).EQ.'DEAD START') THEN 01820 M00S01818.secart +++| DFEDATE=DFTXT(21:30) 01821 M00S01819.secart +++| 01822 M00S01820.secart +++|* HOURLY LOG DATE MESSAGE. 01823 M00S01821.secart +++| 01824 M00S01822.secart +++| ELSE IF (DFTXT(5:9).EQ.'00.00' .AND. 01825 M00S01823.secart +++| . DFTXT(21:31).EQ.'SYSTEM DATE') THEN 01826 M00S01824.secart +++| DFEDATE=DFTXT(35:44) 01827 M00S01825.secart +++| ENDIF 01828 M00S01826.secart +++| 01829 M00S01827.secart +++|* ACCEPT START DATE, IF FOUND. 01830 M00S01828.secart +++| 01831 M00S01829.secart +++| IF (DFSDATE.EQ.' ' .AND. DFEDATE.NE.' ') DFSDATE=DFEDATE 01832 M00S01830.secart +++| 01833 M00S01831.secart +++|* NEED DATE, SYSTEM TITLE AND VERSION TO PROCESS LOG. 01834 M00S01832.secart +++| 01835 M00S01833.secart +++| IF (DFSDATE.EQ.' '.OR.DFTITLE.EQ.' '.OR.DFVERSN.EQ.' ') GOTO 100 01836 M00S01834.secart +++| 01837 M00S01835.secart +++|* REWIND FOR ROUTINE PROCESSING AND SKIP OVER DATE STAMP. 01838 M00S01836.secart +++| 01839 M00S01837.secart +++| REWIND 1 01840 M00S01838.secart +++| IF (DFIN.EQ.1) READ (1,10,END=130) DFTXT 01841 M00S01839.secart +++| PRT=.FALSE. 01842 M00S01840.secart +++| 01843 M00S01841.secart +++|* DROP THROUGH TO READ FIRST USABLE MESSAGE. 01844 M00S01842.secart +++| 01845 M00S01843.secart +++|* --------------------------------------------------------------------- 01846 M00S01844.secart +++|* ROUTINE DAYFILE MESSAGE PROCESSING. 01847 M00S01845.secart +++|* --------------------------------------------------------------------- 01848 M00S01846.secart +++| 01849 M00S01847.secart +++|* GET MSG, COUNT & MARK AS TO SOURCE ('-' IN COL 19 = DAYFILE). 01850 M00S01848.secart +++| 01851 M00S01849.secart +++| 120 READ (1,10,END=130) DFTXT 01852 M00S01850.secart +++| DFIN=DFIN+1 01853 M00S01851.secart +++| DFTXT(19:19)='-' 01854 M00S01852.secart +++| DFETIME=DFTXT(1:10) 01855 M00S01853.secart +++| RETURN 01856 M00S01854.secart +++| 01857 M00S01855.secart +++|* EOF ALTERNATE EXIT. 01858 M00S01856.secart +++| 01859 M00S01857.secart +++| 130 DFEOF=.TRUE. 01860 M00S01858.secart +++| WRITE (8,*) ' === EOF DAYFILE LOG ',LFN,', ',DFIN,' MESSAGES' 01861 M00S01859.secart +++| RETURN 1 01862 M00S01860.secart +++| 01863 M00S01861.secart +++|** ENTRY - CALL DFMSG(*NNN) 01864 M00S01862.secart +++|* *NNN IS ALTERNATE EXIT TAKEN WHEN DFEOF = .TRUE. AT 01865 M00S01863.secart +++|* TIME OF CALL. 01866 M00S01864.secart +++|* 01867 M00S01865.secart +++|* EXIT - ANNOTATED DAYFILE MESSAGE IS WRITTEN TO COMPOSITE 01868 M00S01866.secart +++|* LOG FILE ON UNIT 3 AND NEXT RECORD IS READ, OR 01869 M00S01867.secart +++|* *DFEOF* IS SET .TRUE. 01870 M00S01868.secart +++|* 01871 M00S01869.secart +++|* ERROR - NONE. 01872 M00S01870.secart +++|* 01873 M00S01871.secart +++|* PRINTOUT - 01874 M00S01872.secart +++|* ANNOTATED COPIES OF CERTAIN DAYFILE LOG MESSAGES: 01875 M00S01873.secart +++|* - LEVEL ZERO DEADSTART MESSAGES, 01876 M00S01874.secart +++|* - ALL WITH TIMESTAMP WITHIN TIME WINDOW, 01877 M00S01875.secart +++|* - ALL *SUI* MESSAGES, 01878 M00S01876.secart +++|* - ALL CONSOLE OPERATOR COMMAND MESSAGES, 01879 M00S01877.secart +++|* - ANY CONTAINING SELECTED TEXT STRING. 01880 M00S01878.secart +++|* 01881 M00S01879.secart +++|* CALLS - *JSNLVL0* TO UPDATE D/S UNIQUE JSN PREFIX CODE. 01882 M00S01880.secart +++|* *TMCHECK* TO CHECK FOR TIME WINDOWS. 01883 M00S01881.secart +++|* *JSNTRAK* TO COLLECT ATTRIBUTES IN JSN TRACE TABLE. 01884 M00S01882.secart +++|* *PARSE* TO EXTRACT DATA ITEMS FROM LOG MESSAGES. 01885 M00S01883.secart +++|* *PICKUSR* TO CHECK NEW USERIDS FOR SELECTION. 01886 M00S01884.secart +++|* *MSCHECK* TO CHECK FOR SELECTED TEXT STRINGS. 01887 M00S01885.secart +++|* 01888 M00S01886.secart +++|* USES - COMMON /CTL/ FOR GLOBAL VARIABLES. 01889 M00S01887.secart +++|* COMMON /DFL/ FOR DAYFILE-SPECIFIC VARIABLES. 01890 M00S01888.secart +++|* COMMON /TRC/ FOR JSN TRACE TABLE DATA. 01891 M00S01889.secart +++|* 01892 M00S01890.secart +++|* NOTES - THIS ROUTINE PROCESSES MESSAGE READ DURING PREVIOUS 01893 M00S01891.secart +++|* CALL AND THEN READS NEXT RECORD BEFORE RETURNING. 01894 M00S01892.secart +++|* THIS ALLOWS *SECART* TO SEE TIMESTAMP OF NEXT RECORD 01895 M00S01893.secart +++|* AND DECIDE WHEN TO PROCESS VIS A VIS ACCOUNT LOG. 01896 M00S01894.secart +++| 01897 M00S01895.secart +++| ENTRY DFMSG(*) 01898 M00S01896.secart +++| 01899 M00S01897.secart +++|* WATCH FOR SYSJOB MSGS W/ DATE. 01900 M00S01898.secart +++| 01901 M00S01899.secart +++| IF (DFTXT(13:17).EQ.'SYS S') THEN 01902 M00S01900.secart +++| 01903 M00S01901.secart +++|* SYSJOB HOURLY DATE MESSAGES. 01904 M00S01902.secart +++| 01905 M00S01903.secart +++| IF (DFTXT(5:9).EQ.'00.00' .AND. 01906 M00S01904.secart +++| . DFTXT(21:31).EQ.'SYSTEM DATE') THEN 01907 M00S01905.secart +++| DFEDATE=DFTXT(35:44) 01908 M00S01906.secart +++| 01909 M00S01907.secart +++|* SYSJOB DEAD START MESSAGE W/ DATE. 01910 M00S01908.secart +++| 01911 M00S01909.secart +++| ELSE IF (DFTXT(32:41).EQ.'DEAD START') THEN 01912 M00S01910.secart +++| DFEDATE=DFTXT(21:30) 01913 M00S01911.secart +++| 01914 M00S01912.secart +++|* LEVEL 0 REQUIRES UPDATE D/S UNIQUE CODE. 01915 M00S01913.secart +++| 01916 M00S01914.secart +++| IF (DFTXT(43:51).EQ.'LEVEL 0.') CALL JSNLVL0 01917 M00S01915.secart +++| ENDIF 01918 M00S01916.secart +++| 01919 M00S01917.secart +++|* DETECT SPECIAL JSN FOR LEVEL 0 DEADSTART TOO. 01920 M00S01918.secart +++| 01921 M00S01919.secart +++| ELSE IF (DFTXT(13:17).EQ.'AAAAA') THEN 01922 M00S01920.secart +++| PRT=.TRUE. 01923 M00S01921.secart +++| CALL JSNLVL0 01924 M00S01922.secart +++| ENDIF 01925 M00S01923.secart +++| 01926 M00S01924.secart +++|* INSERT D/S UNIQUE CODE LETTER AS JSN PREFIX. 01927 M00S01925.secart +++| 01928 M00S01926.secart +++| DFTXT(11:12)=DSU//'.' 01929 M00S01927.secart +++| 01930 M00S01928.secart +++|* CHECK FOR TIME WINDOW PRINTOUT. 01931 M00S01929.secart +++| 01932 M00S01930.secart +++| CALL TMCHECK(DFETIME,PRT) 01933 M00S01931.secart +++| 01934 M00S01932.secart +++|* MATCH/COLLECT JSN AND DATE/TIME GROUP (DTG). 01935 M00S01933.secart +++| 01936 M00S01934.secart +++| JSN=DFTXT(11:16) 01937 M00S01935.secart +++| JCL=DFTXT(17:17) 01938 M00S01936.secart +++| CALL JSNTRAK(JSN,JCL,DFEDTG,N,1) 01939 M00S01937.secart +++| 01940 M00S01938.secart +++|* CRACK 1ST WORD TO PICK OUT UJN OR USER, SUI, OPERATOR COMMANDS. 01941 M00S01939.secart +++|* SHORTSTOP COMMENT LINES. 01942 M00S01940.secart +++| 01943 M00S01941.secart +++| I=21 01944 M00S01942.secart +++| CALL PARSE(DFTXT,I,VERB) 01945 M00S01943.secart +++| IF (VERB.EQ.'*') GOTO 140 01946 M00S01944.secart +++| 01947 M00S01945.secart +++|* ACCOMMODATE USE OF $ AND / COMMAND PREFIXES ONLY. 01948 M00S01946.secart +++| 01949 M00S01947.secart +++| IF (VERB.EQ.' ') THEN 01950 M00S01948.secart +++| IF (INDEX('$/',DFTXT(I-1:I-1)).NE.0) THEN 01951 M00S01949.secart +++| CALL PARSE(DFTXT,I,VERB) 01952 M00S01950.secart +++| ELSE 01953 M00S01951.secart +++| GOTO 140 01954 M00S01952.secart +++| ENDIF 01955 M00S01953.secart +++| ENDIF 01956 M00S01954.secart +++| 01957 M00S01955.secart +++|* TRY TO EXTRACT UJN FROM FIRST DAYFILE MESSAGE FOR EACH JOB. 01958 M00S01956.secart +++| 01959 M00S01957.secart +++| IF ((ML(1,N).EQ.1) .AND. JN(N).EQ.' ') THEN 01960 M00S01958.secart +++| JN(N)=VERB 01961 M00S01959.secart +++| CALL PICKUJN(JN(N),MK(N)) 01962 M00S01960.secart +++| ENDIF 01963 M00S01961.secart +++| 01964 M00S01962.secart +++|* WATCH FOR USER COMMAND TO EXTRACT FM,UN & CHECK FOR SELECTION. 01965 M00S01963.secart +++| 01966 M00S01964.secart +++| IF (VERB.EQ.'USER') THEN 01967 M00S01965.secart +++| CALL PARSE(DFTXT,I,USR) 01968 M00S01966.secart +++| CALL PARSE(DFTXT,I,NUL) 01969 M00S01967.secart +++| CALL PARSE(DFTXT,I,FAM) 01970 M00S01968.secart +++| IF (UN(N).EQ.' ' .AND .FN(N).EQ.' ') THEN 01971 M00S01969.secart +++| UN(N) = USR 01972 M00S01970.secart +++| FN(N) = FAM 01973 M00S01971.secart +++| ENDIF 01974 M00S01972.secart +++| CALL PICKUSR(FAM,USR,MK(N)) 01975 M00S01973.secart +++| 01976 M00S01974.secart +++|* SPECIAL CASE 'SUI' COMMAND AS USERNAME. 01977 M00S01975.secart +++| 01978 M00S01976.secart +++| ELSE IF (VERB.EQ.'SUI') THEN 01979 M00S01977.secart +++| CALL PARSE(DFTXT,I,USR) 01980 M00S01978.secart +++| IF (UN(N).EQ.' ') UN(N) = USR 01981 M00S01979.secart +++| CALL PICKUSR(FN(N),USR,MK(N)) 01982 M00S01980.secart +++| 01983 M00S01981.secart +++|* SPECIAL CASE PRINTOUT OF OPERATOR COMMANDS. 01984 M00S01982.secart +++| 01985 M00S01983.secart +++| ELSE IF (VERB.EQ.'DS'.AND.DFTXT(I-1:I).EQ.', ') THEN 01986 M00S01984.secart +++| PRT=.TRUE. 01987 M00S01985.secart +++| ENDIF 01988 M00S01986.secart +++| 01989 M00S01987.secart +++|* FINAL CHECK FOR DIRECTIVE SELECTED TEXT STRING(S). 01990 M00S01988.secart +++| 01991 M00S01989.secart +++| 140 CALL MSCHECK(DFTXT(21:100),PRT) 01992 M00S01990.secart +++| 01993 M00S01991.secart +++|* PRINTOUT MESSAGE FOR ANY REASON. 01994 M00S01992.secart +++| 01995 M00S01993.secart +++| IF (PRT) THEN 01996 M00S01994.secart +++| WRITE (8,10) DFTXT 01997 M00S01995.secart +++| PRT=.FALSE. 01998 M00S01996.secart +++| ENDIF 01999 M00S01997.secart +++| 02000 M00S01998.secart +++|* PUT ANNOTATED MESSAGE INTO MERGED LOG FILE. 02001 M00S01999.secart +++| 02002 M00S02000.secart +++| WRITE (3,10) DFTXT 02003 M00S02001.secart +++| GOTO 120 02004 M00S02002.secart +++| 02005 M00S02003.secart +++| END 02006 M00S02004.secart +++| 02007 M00S02005.secart +++|* --------------------------------------------------------------------- 02008 M00S02006.secart +++| SUBROUTINE ACSCAN(LFN,*) 02009 M00S02007.secart +++|** ACSCAN - ACCOUNT LOG MESSAGE PROCESSING. 02010 M00S02008.secart +++|* 02011 M00S02009.secart +++|* *ACSCAN* PROVIDES THE PRIMARY ROUTINES FOR PROCESSING ACCOUNT 02012 M00S02010.secart +++|* LOG MESSAGES. IT PROVIDES AN ENTRY POINT TO PRE-SCAN THE LOG 02013 M00S02011.secart +++|* FILE TO VALIDATE FORMAT AND EXTRACT CRITICAL SYSTEM ID AND 02014 M00S02012.secart +++|* DATE/TIME DATA, AND ANOTHER FOR ROUTINE PROCESSING OF EACH 02015 M00S02013.secart +++|* LOG MESSAGE IN THE SEQUENCE CONTROLLED BY *SECART*. ANNOTATED 02016 M00S02014.secart +++|* ACCOUNT LOG MESSAGES ARE WRITTEN TO COMPOSITE LOG ON UNIT 3. 02017 M00S02015.secart +++| 02018 M00S02016.secart +++| IMPLICIT INTEGER(A-Z) 02019 M00S02017.secart +++| 02020 M00S02018.secart +++| PARAMETER (MXJ=1000) 02021 M00S02019.secart +++|* SIZE OF JSN TRACE TABLE. 02022 M00S02020.secart +++| 02023 M00S02021.secart +++| EQUIVALENCE (ACEDTG,ACEDATE) 02024 M00S02022.secart +++|* /ACL/ ACEDTG*20 = ACEDATE*10 // ACETIME*10. 02025 M00S02023.secart +++| 02026 M00S02024.secart +++| 02027 M00S02025.secart +++| CHARACTER*10 ACEDATE 02028 M00S02026.secart +++|* /ACL/ (EQV) ACCOUNT LOG END DATE. 02029 M00S02027.secart +++| 02030 M00S02028.secart +++| CHARACTER*20 ACEDTG 02031 M00S02029.secart +++|* /ACL/ (EQV) ACCOUNT LOG END DATE/TIME. 02032 M00S02030.secart +++| 02033 M00S02031.secart +++| LOGICAL ACEOF 02034 M00S02032.secart +++|* /CTL/ ACCOUNT LOG EOF FLAG. 02035 M00S02033.secart +++| 02036 M00S02034.secart +++| CHARACTER*10 ACETIME 02037 M00S02035.secart +++|* /ACL/ (EQV) ACCOUNT LOG END TIME. 02038 M00S02036.secart +++| 02039 M00S02037.secart +++| INTEGER ACIN 02040 M00S02038.secart +++|* /CTL/ ACCOUNT LOG MESSAGE COUNTER. 02041 M00S02039.secart +++| 02042 M00S02040.secart +++| CHARACTER*10 ACSDATE 02043 M00S02041.secart +++|* /ACL/ (EQV) ACCOUNT LOG START DATE. 02044 M00S02042.secart +++| 02045 M00S02043.secart +++| CHARACTER*10 ACSTIME 02046 M00S02044.secart +++|* /ACL/ (EQV) ACCOUNT LOG START TIME. 02047 M00S02045.secart +++| 02048 M00S02046.secart +++| CHARACTER*40 ACTITLE 02049 M00S02047.secart +++|* /ACL/ ACCOUNT LOG SYSTEM TITLE. 02050 M00S02048.secart +++| 02051 M00S02049.secart +++| CHARACTER*100 ACTXT 02052 M00S02050.secart +++|* /ACL/ CURRENT ACCOUNT LOG MESSAGE TEXT. 02053 M00S02051.secart +++| 02054 M00S02052.secart +++| CHARACTER*20 ACVERSN 02055 M00S02053.secart +++|* /ACL/ ACCOUNT LOG SYSTEM VERSION. 02056 M00S02054.secart +++| 02057 M00S02055.secart +++| LOGICAL DFEOF 02058 M00S02056.secart +++|* /CTL/ DAYFILE LOG EOF FLAG. 02059 M00S02057.secart +++| 02060 M00S02058.secart +++| INTEGER DFIN 02061 M00S02059.secart +++|* /CTL/ DAYFILE LOG MESSAGE COUNTER. 02062 M00S02060.secart +++| 02063 M00S02061.secart +++| CHARACTER*1 DSU 02064 M00S02062.secart +++|* /TRC/ DEADSTART UNIQUE PREFIX CODE. 02065 M00S02063.secart +++| 02066 M00S02064.secart +++| CHARACTER*7 FAM 02067 M00S02065.secart +++|* TEMP - FAMILYNAME VARIABLE. 02068 M00S02066.secart +++| 02069 M00S02067.secart +++| CHARACTER*7 FN(MXJ) 02070 M00S02068.secart +++|* /TRC/ FAMILY NAME COLUMN IN TRACE TABLE. 02071 M00S02069.secart +++| 02072 M00S02070.secart +++| INTEGER JBLIMIT 02073 M00S02071.secart +++|* /CTL/ UNIT JOB PRINTOUT MESSAGE LIMIT. 02074 M00S02072.secart +++| 02075 M00S02073.secart +++| CHARACTER*1 JC(MXJ) 02076 M00S02074.secart +++|* /TRC/ JOB CLASS COLUMN IN TRACE TABLE. 02077 M00S02075.secart +++| 02078 M00S02076.secart +++| CHARACTER*1 JCL 02079 M00S02077.secart +++|* TEMP - JOB CLASS VARIABLE. 02080 M00S02078.secart +++| 02081 M00S02079.secart +++| CHARACTER*7 JN(MXJ) 02082 M00S02080.secart +++|* /TRC/ UJN COLUMN IN TRACE TABLE. 02083 M00S02081.secart +++| 02084 M00S02082.secart +++| CHARACTER*6 JS(MXJ) 02085 M00S02083.secart +++|* /TRC/ D.JSN COLUMN IN TRACE TABLE. 02086 M00S02084.secart +++| 02087 M00S02085.secart +++| CHARACTER*6 JSN 02088 M00S02086.secart +++|* TEMP JSN VARIABLE. 02089 M00S02087.secart +++| 02090 M00S02088.secart +++| CHARACTER*7 LFN 02091 M00S02089.secart +++|* ARG - LFN FOR ACCOUNT LOG FILE. 02092 M00S02090.secart +++| 02093 M00S02091.secart +++| CHARACTER*4 MID 02094 M00S02092.secart +++|* TEMP - ACCOUNT MESSAGE ID. 02095 M00S02093.secart +++| 02096 M00S02094.secart +++| CHARACTER*5 MK(MXJ) 02097 M00S02095.secart +++|* /TRC/ JOB SELECTION MARKS IN TRACE TABLE. 02098 M00S02096.secart +++| 02099 M00S02097.secart +++| INTEGER ML(2,MXJ) 02100 M00S02098.secart +++|* /CTL/ DFL/AFL MSG COUNTS FOR TRACE TABLE. 02101 M00S02099.secart +++| 02102 M00S02100.secart +++| INTEGER NJ 02103 M00S02101.secart +++|* /CTL/ CURRENT NUMBER JOBS IN TRACE TABLE. 02104 M00S02102.secart +++| 02105 M00S02103.secart +++| CHARACTER*20 NUDTG 02106 M00S02104.secart +++|* TEMP - NEW DATE/TIME GROUP VARIABLE. 02107 M00S02105.secart +++| 02108 M00S02106.secart +++| CHARACTER*6 NUJSN 02109 M00S02107.secart +++|* TEMP - NEW JSN VARIABLE. 02110 M00S02108.secart +++| 02111 M00S02109.secart +++| LOGICAL PRT 02112 M00S02110.secart +++|* FLAG TO PRINTOUT ACCOUNT LOG MESSAGE. 02113 M00S02111.secart +++| 02114 M00S02112.secart +++| CHARACTER*2 SC 02115 M00S02113.secart +++|* TEMP - IGNORED WORD FROM *PARSE*. 02116 M00S02114.secart +++| 02117 M00S02115.secart +++| CHARACTER*20 TE(MXJ) 02118 M00S02116.secart +++|* /TRC/ JOB DATE/TIME END IN TRACE TABLE. 02119 M00S02117.secart +++| 02120 M00S02118.secart +++| CHARACTER*7 TN(MXJ) 02121 M00S02119.secart +++|* /TRC/ JOB TERMINAL NAME IN TRACE TABLE. 02122 M00S02120.secart +++| 02123 M00S02121.secart +++| CHARACTER*7 TRM 02124 M00S02122.secart +++|* TEMP - TERMINAL ID VARIABLE. 02125 M00S02123.secart +++| 02126 M00S02124.secart +++| CHARACTER*20 TS(MXJ) 02127 M00S02125.secart +++|* /TRC/ JOB DATE/TIME START IN TRACE TABLE. 02128 M00S02126.secart +++| 02129 M00S02127.secart +++| CHARACTER*7 UN(MXJ) 02130 M00S02128.secart +++|* /TRC/ JOB USERNAME IN TRACE TABLE. 02131 M00S02129.secart +++| 02132 M00S02130.secart +++| CHARACTER*7 USR 02133 M00S02131.secart +++|* TEMP - USERNAME VARIABLE. 02134 M00S02132.secart +++| 02135 M00S02133.secart +++| CHARACTER*1 X 02136 M00S02134.secart +++|* TEMP - USED IN D.JSN ATTRIBUTES RECOVERY. 02137 M00S02135.secart +++| 02138 M00S02136.secart +++| 02139 M00S02137.secart +++|* ACCOUNT LOG SPECIFIC VARIABLES. 02140 M00S02138.secart +++| 02141 M00S02139.secart +++| COMMON /ACL/ ACSDATE 02142 M00S02140.secart +++| COMMON /ACL/ ACSTIME 02143 M00S02141.secart +++| COMMON /ACL/ ACEDATE 02144 M00S02142.secart +++| COMMON /ACL/ ACETIME 02145 M00S02143.secart +++| COMMON /ACL/ ACTITLE 02146 M00S02144.secart +++| COMMON /ACL/ ACVERSN 02147 M00S02145.secart +++| COMMON /ACL/ ACTXT 02148 M00S02146.secart +++| 02149 M00S02147.secart +++|* GLOBAL NUMERIC/LOGICAL VARIABLES AND PARAMETERS. 02150 M00S02148.secart +++| 02151 M00S02149.secart +++| COMMON /CTL/ NJ 02152 M00S02150.secart +++| COMMON /CTL/ ACIN 02153 M00S02151.secart +++| COMMON /CTL/ DFIN 02154 M00S02152.secart +++| COMMON /CTL/ ACEOF 02155 M00S02153.secart +++| COMMON /CTL/ DFEOF 02156 M00S02154.secart +++| COMMON /CTL/ ML 02157 M00S02155.secart +++| COMMON /CTL/ JBLIMIT 02158 M00S02156.secart +++| 02159 M00S02157.secart +++|* JSN TRACE TABLE STORAGE.
Proceed to Part 1
cdc/nos2.source/opl.opl871/deck/secart.txt ยท Last modified: (external edit)