Seq # *Modification Id* Act
----------------------------+
02081 M00S01992.acpd +++|#
02082 M00S01993.acpd +++|* THE CURRENT FILE IS DONE. CHECK IF THERE IS ANOTHER FILE
02083 M00S01994.acpd +++|* TO REPORT.
02084 M00S01995.acpd +++|#
02085 M00S01996.acpd +++|
02086 M00S01997.acpd +++| IF (P$ET LQ TM) # ENDING TIME REACHED #
Line S00002 Modification History |
M01 (Added by) | acpd2 |
Seq # *Modification Id* Act
----------------------------+
02087 M01S00002.acpd2 +++| OR (STAT EQ EOIC) # EOI ENCOUNTERED ON FILE #
02088 M00S01998.acpd +++| THEN
02089 M00S01999.acpd +++| BEGIN
Line S02000 Modification History |
M01 (Removed by) | acpd2 |
Seq # *Modification Id* Act
----------------------------+
02090 M01S02000.acpd2 ---| EDTM=TRUE; # ENDING TIME REACHED #
Line S00003 Modification History |
M01 (Added by) | acpd2 |
Seq # *Modification Id* Act
----------------------------+
02091 M01S00003.acpd2 +++| EDTM=TRUE; # ENDING TIME REACHED OR EOI #
02092 M00S02001.acpd +++| END
02093 M00S02002.acpd +++|
02094 M00S02003.acpd +++| ELSE # DONE WITH THE CURRENT FILE #
02095 M00S02004.acpd +++| BEGIN
02096 M00S02005.acpd +++| LSTM=TM; # TIME OF LAST RECORD #
02097 M00S02006.acpd +++| END
02098 M00S02007.acpd +++|
02099 M00S02008.acpd +++| RETURN;
02100 M00S02009.acpd +++| END # DATBLK #
02101 M00S02010.acpd +++|
02102 M00S02011.acpd +++| TERM
02103 M00S02012.acpd +++|PROC DATELM(FLG,MS1,MS2,(WFA),(WFP),(POS),(DTY),(FWA),(NSF));
02104 M00S02013.acpd +++|# TITLE DATELM - PROCESS ONE DATA BLOCK ELEMENT. #
02105 M00S02014.acpd +++|
02106 M00S02015.acpd +++| BEGIN # DATELM #
02107 M00S02016.acpd +++|
02108 M00S02017.acpd +++|#
02109 M00S02018.acpd +++|** DATELM - PROCESS ONE DATA BLOCK ELEMENT.
02110 M00S02019.acpd +++|*
02111 M00S02020.acpd +++|* COMPUTE AND PRINT ONE DATA BLOCK ELEMENT-S STATISTICAL
02112 M00S02021.acpd +++|* VALUES (AVERAGE, STANDARD DEVIATION, AND PERCENTAGE).
02113 M00S02022.acpd +++|*
02114 M00S02023.acpd +++|* PROC DATELM(FLG,MS1,MS2,(WFA),(WFP),(POS),(DTY),(FWA),(NSF))
02115 M00S02024.acpd +++|*
02116 M00S02025.acpd +++|* ENTRY FLG = TRUE IF SUB BLOCK TITLE IS TO BE PRINTED.
02117 M00S02026.acpd +++|* MS1 = SUB BLOCK TITLE.
02118 M00S02027.acpd +++|* MS2 = DATA ELEMENT NAME.
02119 M00S02028.acpd +++|* WFA = WEIGHT FACTOR INFORMATION.
02120 M00S02029.acpd +++|* WFP = WEIGHT FACTOR.
02121 M00S02030.acpd +++|* POS = RELATIVE POSITION OF WEIGHT FACTOR.
02122 M00S02031.acpd +++|* DTY = DATA TYPE.
02123 M00S02032.acpd +++|* FWA = ADDRESS OF THE ELEMENT IN TABLE *DCDT*.
02124 M00S02033.acpd +++|* NSF = NUMBER OF RECORDS PER INTERVAL.
02125 M00S02034.acpd +++|* NIPP = (COMMON BLOCK *CIOCOMM*) NUMBER OF INTERVALS
02126 M00S02035.acpd +++|* PER PAGE.
02127 M00S02036.acpd +++|*
02128 M00S02037.acpd +++|* EXIT THE AVERAGE, STANDARD DEVIATION, AND PERCENTAGE
02129 M00S02038.acpd +++|* OF THE DATA ELEMENT AT TEN INTERVALS ARE COMPUTED
02130 M00S02039.acpd +++|* AND PRINTED.
02131 M00S02040.acpd +++|* IF THE WEIGHT FACTOR IS THE CONSTANT 1, THE AVERAGE
02132 M00S02041.acpd +++|* WILL NOT BE PRINTED.
02133 M00S02042.acpd +++|* THE PERCENTAGE WILL NOT BE PRINTED IF THE ELEMENT
02134 M00S02043.acpd +++|* DOES NOT HAVE A WEIGHT FACTOR, OR THE WEIGHT FACTOR
02135 M00S02044.acpd +++|* IS THE CONSTANT 100.
02136 M00S02045.acpd +++|#
02137 M00S02046.acpd +++|
02138 M00S02047.acpd +++|#
02139 M00S02048.acpd +++|* PARAMETER LIST.
02140 M00S02049.acpd +++|#
02141 M00S02050.acpd +++|
02142 M00S02051.acpd +++| ITEM FLG B; # SUBBLOCK TITLE FLAG #
02143 M00S02052.acpd +++| ITEM MS1 C(40); # SUBBLOCK TITLE #
02144 M00S02053.acpd +++| ITEM MS2 C(30); # DATA ELEMENT NAME #
02145 M00S02054.acpd +++| ITEM WFA U; # WEIGHT FACTOR INFORMATION #
02146 M00S02055.acpd +++| ITEM WFP U; # WEIGHT FACTOR #
02147 M00S02056.acpd +++| ITEM POS I; # RELATIVE POSITIN OF *WFP* #
02148 M00S02057.acpd +++| ITEM DTY U; # DATA TYPE #
02149 M00S02058.acpd +++| ITEM FWA U; # ADDRESS OF ENTRY #
02150 M00S02059.acpd +++| ITEM NSF I; # NUMBER OF SAMPLES PER INTERVAL #
02151 M00S02060.acpd +++|
02152 M00S02061.acpd +++|#
02153 M00S02062.acpd +++|**** PROC DATELM - XREF LIST BEGIN.
02154 M00S02063.acpd +++|#
02155 M00S02064.acpd +++|
02156 M00S02065.acpd +++| XREF
02157 M00S02066.acpd +++| BEGIN
02158 M00S02067.acpd +++| PROC ACMSTA; # COMPUTE TOTAL STATISTICS #
02159 M00S02068.acpd +++| PROC COMPWF; # COMPUTE WEIGHT FACTOR #
02160 M00S02069.acpd +++| PROC PRDTEL; # PRINT ONE ROW OF DATA ELEMENT #
02161 M00S02070.acpd +++| FUNC SQRT R; # SQUARE ROOT #
02162 M00S02071.acpd +++| PROC WRITEV; # WRITE ONE VALUE #
02163 M00S02072.acpd +++| END
02164 M00S02073.acpd +++|
02165 M00S02074.acpd +++|#
02166 M00S02075.acpd +++|**** PROC DATELM - XREF LIST END.
02167 M00S02076.acpd +++|#
02168 M00S02077.acpd +++|
02169 M00S02078.acpd +++| DEF AVGC #"AV"#; # AVERAGE #
02170 M00S02079.acpd +++| DEF PCTC #"PC"#; # PERCENTAGE #
02171 M00S02080.acpd +++| DEF SDVC #"SD"#; # STANDARD DEVIATION #
02172 M00S02081.acpd +++| DEF ZOPC #"Z"#; # *Z* OPTION #
02173 M00S02082.acpd +++|
02174 M00S02083.acpd +++| DEF LISTCON #0#; # TURN OFF COMMON DECK LISTING #
02175 M00S02084.acpd +++|
02176 M00S02085.acpd +++|*CALL COMUCPD
02177 M00S02086.acpd +++|
02178 M00S02087.acpd +++|#
02179 M00S02088.acpd +++|* LOCAL VARIABLES.
02180 M00S02089.acpd +++|#
02181 M00S02090.acpd +++|
02182 M00S02091.acpd +++| ITEM AV R; # AVERAGE VALUE #
02183 M00S02092.acpd +++| ITEM BCL I; # BEGIN COLUMN TO PRINT #
02184 M00S02093.acpd +++| ITEM I I; # FOR LOOP CONTROL #
02185 M00S02094.acpd +++| ITEM NIP R; # NUMBER OF COLUMNS PER PAGE #
02186 M00S02095.acpd +++| ITEM NSR R; # NUMBER OF BLOCKS PER COLUMN #
02187 M00S02096.acpd +++| ITEM PRFLG B; # PROCESS FLAG #
02188 M00S02097.acpd +++| ITEM SM R; # INTERVAL SUM #
02189 M00S02098.acpd +++| ITEM SQ R; # INTERVAL SUM SQUARED #
02190 M00S02099.acpd +++| ITEM SSM R; # SUM OF SUBTOTAL #
02191 M00S02100.acpd +++| ITEM SSQ R; # SQUARED SUM OF SUBTOTAL #
02192 M00S02101.acpd +++| ITEM SWF R; # SUM OF WEIGHT FACTOR #
02193 M00S02102.acpd +++| ITEM WFT R; # WEIGHT FACTOR #
02194 M00S02103.acpd +++|
02195 M00S02104.acpd +++| ARRAY TEM [1:11] P(3); # COMPUTED STATISTIC VALUES #
02196 M00S02105.acpd +++| BEGIN
02197 M00S02106.acpd +++| ITEM TEM$AV R(00,00,60); # AVERAGE #
02198 M00S02107.acpd +++| ITEM TEM$SD R(01,00,60); # STANDARD DEVIATION #
02199 M00S02108.acpd +++| ITEM TEM$PC R(02,00,60); # PERCENTAGE #
02200 M00S02109.acpd +++| END
02201 M00S02110.acpd +++|
02202 M00S02111.acpd +++|
02203 M00S02112.acpd +++|
02204 M00S02113.acpd +++|#
02205 M00S02114.acpd +++|* BEGIN DATELM PROC.
02206 M00S02115.acpd +++|#
02207 M00S02116.acpd +++|
02208 M00S02117.acpd +++| COMPWF(WFA,WFP,POS,WFT,PRFLG); # COMPUTE WEIGHT FACTOR #
02209 M00S02118.acpd +++| IF (NOT PRFLG) # NOT TO PROCESS THIS ELEMENT #
02210 M00S02119.acpd +++| THEN
02211 M00S02120.acpd +++| BEGIN
02212 M00S02121.acpd +++| RETURN;
02213 M00S02122.acpd +++| END
02214 M00S02123.acpd +++|
02215 M00S02124.acpd +++| P<DCHD>=LOC(DBUF);
02216 M00S02125.acpd +++| P<DCDT>=LOC(DBUF[DCHL]);
02217 M00S02126.acpd +++| P<DDSM>=LOC(DBUF[DCHL + DCDC*DCDL*2]);
02218 M00S02127.acpd +++| P<DDSC>=LOC(DDDT);
02219 M00S02128.acpd +++|
02220 M00S02129.acpd +++|#
02221 M00S02130.acpd +++|* CHECK IF ENTIRE LINE IS ZERO. IF SO, DO NOT PRINT THIS LINE.
02222 M00S02131.acpd +++|#
02223 M00S02132.acpd +++|
02224 M00S02133.acpd +++| SM=0;
02225 M00S02134.acpd +++| SLOWFOR I=1 STEP 1 UNTIL NIPP
02226 M00S02135.acpd +++| DO
02227 M00S02136.acpd +++| BEGIN
02228 M00S02137.acpd +++| SM=SM + DCDT$SM[(I-1)*DCDL + FWA];
02229 M00S02138.acpd +++| END
02230 M00S02139.acpd +++|
02231 M00S02140.acpd +++| IF (SM EQ 0.0) AND (P$LO NQ ZOPC) AND (NIPP GR (DCDC-3))
02232 M00S02141.acpd +++| THEN
02233 M00S02142.acpd +++| BEGIN
02234 M00S02143.acpd +++| RETURN;
02235 M00S02144.acpd +++| END
02236 M00S02145.acpd +++|
02237 M00S02146.acpd +++| IF (NIPP LQ (DCDC-3)) # PRINT TOTAL ON THIS PAGE #
02238 M00S02147.acpd +++| THEN # CHECK IF TOTAL IS 0 #
02239 M00S02148.acpd +++| BEGIN
02240 M00S02149.acpd +++| IF (DDSM$IM[FWA] EQ 0) AND (P$LO NQ ZOPC)
02241 M00S02150.acpd +++| THEN
02242 M00S02151.acpd +++| BEGIN
02243 M00S02152.acpd +++| RETURN;
02244 M00S02153.acpd +++| END
02245 M00S02154.acpd +++|
02246 M00S02155.acpd +++| END
02247 M00S02156.acpd +++|
02248 M00S02157.acpd +++|#
02249 M00S02158.acpd +++|* CHECK IF SUBTITLE HAS BEEN PRINTED.
02250 M00S02159.acpd +++|#
02251 M00S02160.acpd +++|
02252 M00S02161.acpd +++| IF (FLG) # SUBTITLE NOT PRINTED #
02253 M00S02162.acpd +++| THEN # PRINT SUBTITLE #
02254 M00S02163.acpd +++| BEGIN
02255 M00S02164.acpd +++| WRITEV(MS1,CHRC,1,22,LFDC);
02256 M00S02165.acpd +++| FLG=FALSE; # INDICATE SUBTITLE WAS PRINTED #
02257 M00S02166.acpd +++| END
02258 M00S02167.acpd +++|
02259 M00S02168.acpd +++| WRITEV(MS2,CHRC,1,22,NLFC); # WRITE DATA ELEMENT NAME #
02260 M00S02169.acpd +++|
02261 M00S02170.acpd +++|#
02262 M00S02171.acpd +++|* COMPUTE AVERAGE, STANDARD DEVIATION, AND PERCENTAGE
02263 M00S02172.acpd +++|* FOR *NIPP* INTERVALS. THE COMPUTED VALUES ARE SAVED
02264 M00S02173.acpd +++|* IN ARRAY *TEM*.
02265 M00S02174.acpd +++|#
02266 M00S02175.acpd +++|
02267 M00S02176.acpd +++| BCL=BCLC; # BEGIN COLUMN TO PRINT #
02268 M00S02177.acpd +++| NSR=NSF; # CONVERT TO REAL #
02269 M00S02178.acpd +++| NIP=NIPP; # CONVERT TO REAL #
02270 M00S02179.acpd +++| SSM=0.0;
02271 M00S02180.acpd +++| SSQ=0.0;
02272 M00S02181.acpd +++| SWF=0.0;
02273 M00S02182.acpd +++|
02274 M00S02183.acpd +++| IF (NIPP GR 0)
02275 M00S02184.acpd +++| THEN
02276 M00S02185.acpd +++| BEGIN # COMPUTE INTERVAL STATISTICS #
02277 M00S02186.acpd +++| FASTFOR I=1 STEP 1 UNTIL NIPP
02278 M00S02187.acpd +++| DO
02279 M00S02188.acpd +++| BEGIN # COMPUTE *AV*, *SD*, *PC* #
02280 M00S02189.acpd +++| SM=DCDT$SM[(I-1)*DCDL + FWA];
02281 M00S02190.acpd +++| SSM=SSM+SM;
02282 M00S02191.acpd +++| SQ=DCDT$SQ[(I-1)*DCDL+DCDC*DCDL+FWA];
02283 M00S02192.acpd +++| SSQ=SSQ+SQ;
02284 M00S02193.acpd +++| AV=SM/NSR; # AVERAGE #
02285 M00S02194.acpd +++| TEM$AV[I]=AV;
02286 M00S02195.acpd +++| TEM$SD[I]=SQRT(SQ/NSR - AV*AV); # STANDARD DEVIATION #
02287 M00S02196.acpd +++| DCDT$SQ[(I-1)*DCDL+DCDC*DCDL+FWA]=TEM$SD[I]; # SAVE *SD* #
Line S00001 Modification History |
M01 (Added by) | acpd1 |
Seq # *Modification Id* Act
----------------------------+
02288 M01S00001.acpd1 +++| DCDT$SM[(I-1)*DCDL+FWA]=TEM$AV[I]; # SAVE *AV* #
02289 M00S02197.acpd +++|
02290 M00S02198.acpd +++| IF (WFA EQ IWFC) # INDIRECT WEIGHT FACTOR #
02291 M00S02199.acpd +++| THEN # GET WEIGHT FACTOR #
02292 M00S02200.acpd +++| BEGIN
02293 M00S02201.acpd +++| WFT=DCDT$SM[(I-1)*DCDL + DDSC$FW[WFP]]/NSR;
02294 M00S02202.acpd +++| SWF=SWF+WFT;
02295 M00S02203.acpd +++| END
02296 M00S02204.acpd +++|
02297 M00S02205.acpd +++| IF (WFT LQ 0)
02298 M00S02206.acpd +++| THEN
02299 M00S02207.acpd +++| BEGIN
02300 M00S02208.acpd +++| TEM$PC[I]=0.0;
02301 M00S02209.acpd +++| END
02302 M00S02210.acpd +++|
02303 M00S02211.acpd +++| ELSE
02304 M00S02212.acpd +++| BEGIN
02305 M00S02213.acpd +++| TEM$PC[I]=(AV/WFT)*100.0; # PERCENTAGE #
02306 M00S02214.acpd +++| END
02307 M00S02215.acpd +++|
02308 M00S02216.acpd +++| END # COMPUTE *AV*, *SD*, *PC* #
02309 M00S02217.acpd +++|
02310 M00S02218.acpd +++|#
02311 M00S02219.acpd +++|* COMPUTE AVERAGE, STANDARD DEVIATION, AND PERCENTAGE
02312 M00S02220.acpd +++|* OF SUBTOTAL. THE PRECEDING INTERVALS ARE CONSIDERED
02313 M00S02221.acpd +++|* AS ONE INTERVAL.
02314 M00S02222.acpd +++|#
02315 M00S02223.acpd +++|
02316 M00S02224.acpd +++| IF (TCOL GR (DCDC-3)) # PRINT SUBTOTAL #
02317 M00S02225.acpd +++| THEN
02318 M00S02226.acpd +++| BEGIN # COMPUTE SUBTOTAL STATISTICS #
02319 M00S02227.acpd +++| I=NIPP+1;
02320 M00S02228.acpd +++| TEM$AV[I]=SSM/(NIP*NSR); # AVERAGE #
02321 M00S02229.acpd +++| TEM$SD[I]=SQRT(SSQ/(NIP*NSR)-(TEM$AV[I]*TEM$AV[I]));
02322 M00S02230.acpd +++| IF (WFA EQ IWFC) # INDIRECT WEIGHT FACTOR #
02323 M00S02231.acpd +++| THEN
02324 M00S02232.acpd +++| BEGIN
02325 M00S02233.acpd +++| WFT=SWF/NIP; # WEIGHT FACTOR #
02326 M00S02234.acpd +++| END
02327 M00S02235.acpd +++|
02328 M00S02236.acpd +++| IF (WFT LQ 0)
02329 M00S02237.acpd +++| THEN
02330 M00S02238.acpd +++| BEGIN
02331 M00S02239.acpd +++| TEM$PC[I]=0.0;
02332 M00S02240.acpd +++| END
02333 M00S02241.acpd +++|
02334 M00S02242.acpd +++| ELSE
02335 M00S02243.acpd +++| BEGIN
02336 M00S02244.acpd +++| TEM$PC[I]=(TEM$AV[I]/WFT)*100.0;
02337 M00S02245.acpd +++| END
02338 M00S02246.acpd +++|
02339 M00S02247.acpd +++| BCL=BCL + I*10;
02340 M00S02248.acpd +++| END # COMPUTE SUBTOTAL STATISTICS #
02341 M00S02249.acpd +++|
02342 M00S02250.acpd +++| ELSE # NO SUBTOTAL #
02343 M00S02251.acpd +++| BEGIN
02344 M00S02252.acpd +++| BCL=BCL + NIPP*10;
02345 M00S02253.acpd +++| END
02346 M00S02254.acpd +++|
02347 M00S02255.acpd +++| END # COMPUTE INTERVAL STATISTICS #
02348 M00S02256.acpd +++|
02349 M00S02257.acpd +++|#
02350 M00S02258.acpd +++|* PRINT VALUES SAVED IN ARRAY *TEM*.
02351 M00S02259.acpd +++|* AVERAGE VALUES ARE NOT PRINTED IF THE WEIGHT FACTOR
02352 M00S02260.acpd +++|* IS 1.
02353 M00S02261.acpd +++|* PERCENTAGE VALUES ARE NOT PRINTED IF *WFT* IS LESS THAN 0.
02354 M00S02262.acpd +++|* THE TOTAL STATISTIC VALUES ARE NOT PRINTED IF THERE ARE
02355 M00S02263.acpd +++|* MORE THAN 7 COLUMNS PRINTED ON A PAGE, I.E. IF THE NUMBER
02356 M00S02264.acpd +++|* OF INTERVALS PER PAGE *NIPP* IS GREATER THAN 7.
02357 M00S02265.acpd +++|#
02358 M00S02266.acpd +++|
02359 M00S02267.acpd +++| IF (WFA NQ CWFC) OR (WFP NQ 1)
02360 M00S02268.acpd +++| THEN
02361 M00S02269.acpd +++| BEGIN # PRINT *AV* #
02362 M00S02270.acpd +++| WRITEV(AVGC,CHRC,BCLC-2,2,NLFC);
02363 M00S02271.acpd +++| IF (NIPP GR 0) # MORE THAN 1 COLUMN #
02364 M00S02272.acpd +++| THEN
02365 M00S02273.acpd +++| BEGIN
02366 M00S02274.acpd +++| PRDTEL(LOC(TEM$AV[1]),DTY,LOC(DDSM$AX[FWA]));
02367 M00S02275.acpd +++| END
02368 M00S02276.acpd +++|
02369 M00S02277.acpd +++| IF (NIPP LQ (DCDC-3)) # PRINT TOTAL ON SAME PAGE #
02370 M00S02278.acpd +++| THEN
02371 M00S02279.acpd +++| BEGIN
02372 M00S02280.acpd +++| ACMSTA(STVAL"AVST",FWA,DTY,BCL,0); # TOTAL AVERAGE #
02373 M00S02281.acpd +++| END
02374 M00S02282.acpd +++|
02375 M00S02283.acpd +++| END # PRINT *AV* #
02376 M00S02284.acpd +++|
02377 M00S02285.acpd +++| WRITEV(SDVC,CHRC,BCLC-2,2,NLFC);
02378 M00S02286.acpd +++| IF (NIPP GR 0) # MORE THAN 1 COLUMN #
02379 M00S02287.acpd +++| THEN
02380 M00S02288.acpd +++| BEGIN # PRINT *SD* #
02381 M00S02289.acpd +++| PRDTEL(LOC(TEM$SD[1]),FLPC,LOC(DDSM$SX[FWA]));
02382 M00S02290.acpd +++| END # PRINT *SD* #
02383 M00S02291.acpd +++|
02384 M00S02292.acpd +++| IF (NIPP LQ (DCDC-3)) # PRINT TOTAL ON SAME PAGE #
02385 M00S02293.acpd +++| THEN
02386 M00S02294.acpd +++| BEGIN
02387 M00S02295.acpd +++| ACMSTA(STVAL"SDST",FWA,FLPC,BCL,0); # STANDARD DEVIATION #
02388 M00S02296.acpd +++| END
02389 M00S02297.acpd +++|
02390 M00S02298.acpd +++| IF (WFT GQ 0.0) # PERCENTAGE TO BE PRINTED #
02391 M00S02299.acpd +++| THEN
02392 M00S02300.acpd +++| BEGIN # PRINT *PC* #
02393 M00S02301.acpd +++| WRITEV(PCTC,CHRC,BCLC-2,2,NLFC);
02394 M00S02302.acpd +++| IF (NIPP GR 0) # MORE THAN 1 COLUMN #
02395 M00S02303.acpd +++| THEN
02396 M00S02304.acpd +++| BEGIN
02397 M00S02305.acpd +++| PRDTEL(LOC(TEM$PC[1]),FLPC,LOC(DDSM$PX[FWA]));
02398 M00S02306.acpd +++| END
02399 M00S02307.acpd +++|
02400 M00S02308.acpd +++| IF (WFA EQ IWFC) # INDIRECT WEIGHT FACTOR #
02401 M00S02309.acpd +++| THEN
02402 M00S02310.acpd +++| BEGIN
02403 M00S02311.acpd +++| WFT=DDSM$SM[DDSC$FW[WFP]]/ACNS; # TOTAL WEIGHT FACTOR #
02404 M00S02312.acpd +++| END
02405 M00S02313.acpd +++|
02406 M00S02314.acpd +++| IF (NIPP LQ (DCDC-3)) # TOTAL IS PRINTED ON SAME PAGE #
02407 M00S02315.acpd +++| THEN
02408 M00S02316.acpd +++| BEGIN
02409 M00S02317.acpd +++| ACMSTA(STVAL"PCST",FWA,FLPC,BCL,WFT); # TOTAL PERCENTAGE #
02410 M00S02318.acpd +++| END
02411 M00S02319.acpd +++|
02412 M00S02320.acpd +++| END # PRINT *PC* #
02413 M00S02321.acpd +++|
02414 M00S02322.acpd +++| RETURN;
02415 M00S02323.acpd +++| END # DATELM #
02416 M00S02324.acpd +++|
02417 M00S02325.acpd +++| TERM
02418 M00S02326.acpd +++|PROC DECODE((DTA),(BFA));
02419 M00S02327.acpd +++|# TITLE DECODE - DECODE DATA. #
02420 M00S02328.acpd +++|
02421 M00S02329.acpd +++| BEGIN # DECODE #
02422 M00S02330.acpd +++|
02423 M00S02331.acpd +++|#
02424 M00S02332.acpd +++|** DECODE - DECODE DATA.
02425 M00S02333.acpd +++|*
02426 M00S02334.acpd +++|* DECODE DATA IN *CIO* INPUT BUFFER, AND PUT THEM
02427 M00S02335.acpd +++|* IN CORRESPONDING DECODED BUFFER.
02428 M00S02336.acpd +++|*
02429 M00S02337.acpd +++|* PROC DECODE((DTA),(BFA))
02430 M00S02338.acpd +++|*
02431 M00S02339.acpd +++|* ENTRY DTA = ADDRESS OF DATA DESCRIPTION TABLE
02432 M00S02340.acpd +++|* (*DDHD* OR *DDDT*).
02433 M00S02341.acpd +++|* BFA = ADDRESS OF THE BUFFER WHERE THE DECODED DATA
02434 M00S02342.acpd +++|* ARE TO BE SAVED (*DCHD* OR *DCDT*).
02435 M00S02343.acpd +++|* IBWA = CURRENT *CIO* INPUT BUFFER ADDRESS.
02436 M00S02344.acpd +++|*
02437 M00S02345.acpd +++|* EXIT IBWA = ADDRESS OF NEXT *CIO* INPUT BUFFER WORD.
02438 M00S02346.acpd +++|* DECODED DATA ARE ACCUMULATED IN THE APPROPRIATE
02439 M00S02347.acpd +++|* BUFFER.
02440 M00S02348.acpd +++|#
02441 M00S02349.acpd +++|
02442 M00S02350.acpd +++|#
02443 M00S02351.acpd +++|* PARAMETER LIST.
02444 M00S02352.acpd +++|#
02445 M00S02353.acpd +++|
02446 M00S02354.acpd +++| ITEM BFA I; # BUFFER ADDRESS #
02447 M00S02355.acpd +++| ITEM DTA I; # DATA DESCRIPTOR TABLE ADDRESS #
02448 M00S02356.acpd +++|
02449 M00S02357.acpd +++|#
02450 M00S02358.acpd +++|**** PROC DECODE - XREF LIST BEGIN.
02451 M00S02359.acpd +++|#
02452 M00S02360.acpd +++|
02453 M00S02361.acpd +++| XREF
02454 M00S02362.acpd +++| BEGIN
02455 M00S02363.acpd +++| FUNC GETVAL I; # GET VALUE FROM *CIO* BUFFER #
02456 M00S02364.acpd +++| PROC PERROR; # PROCESS ERROR #
02457 M00S02365.acpd +++| END
02458 M00S02366.acpd +++|
02459 M00S02367.acpd +++|#
02460 M00S02368.acpd +++|**** PROC DECODE - XREF LIST END.
02461 M00S02369.acpd +++|#
02462 M00S02370.acpd +++|
02463 M00S02371.acpd +++| DEF CNIC #"CNIL"#; # FAST LOOP SAMPLE #
02464 M00S02372.acpd +++| DEF CPWC #5#; # NUMBER OF BYTES #
02465 M00S02373.acpd +++| DEF CTMC #"CTML"#; # MEDIUM LOOP SAMPLE #
02466 M00S02374.acpd +++| DEF CTOC #"CTOL"#; # SLOW LOOP SAMPLE #
02467 M00S02375.acpd +++| DEF HDLC #0#; # HEADER LOOP FLAG #
02468 M00S02376.acpd +++| DEF PDTC #"PDTM"#; # PACKED DATE AND TIME #
02469 M00S02377.acpd +++| DEF SNLC #4#; # SNAP SHOT LOOP FLAG #
02470 M00S02378.acpd +++|
02471 M00S02379.acpd +++| DEF LISTCON #0#; # TURN OFF COMMON DECK LISTING #
02472 M00S02380.acpd +++|
02473 M00S02381.acpd +++|*CALL COMUCPD
02474 M00S02382.acpd +++|
02475 M00S02383.acpd +++|#
02476 M00S02384.acpd +++|* LOCAL VARIABLES.
02477 M00S02385.acpd +++|#
02478 M00S02386.acpd +++|
02479 M00S02387.acpd +++| ITEM AV R; # AVERAGE VALUE #
02480 M00S02388.acpd +++| ITEM BA I; # BYTE ADDRESS OF *CIO* BUFFER #
02481 M00S02389.acpd +++| ITEM BASE I; # BEGIN ADDRESS OF REPEAT GROUP #
02482 M00S02390.acpd +++| ITEM C I; # DECODED DATA BUFFER ADDRESS #
02483 M00S02391.acpd +++| ITEM CQ I; # DECODED DATA BUFFER ADDRESS #
02484 M00S02392.acpd +++| ITEM I I; # FOR LOOP CONTROL #
02485 M00S02393.acpd +++| ITEM IC I; # INCREMENTOR #
02486 M00S02394.acpd +++| ITEM J I; # FOR LOOP CONTROL #
02487 M00S02395.acpd +++| ITEM K I; # FOR LOOP CONTROL #
02488 M00S02396.acpd +++| ITEM L I; # FOR LOOP CONTROL #
02489 M00S02397.acpd +++| ITEM LMP I; # LENGTH MULTIPLIER #
02490 M00S02398.acpd +++| ITEM LN I; # LENGTH OF ENTRY #
02491 M00S02399.acpd +++| ITEM M I; # FOR LOOP CONTROL #
02492 M00S02400.acpd +++| ITEM NM C(4); # DATA ELEMENT NAME #
02493 M00S02401.acpd +++| ITEM OF I; # OFFSET #
02494 M00S02402.acpd +++| ITEM PR I; # NUMBER OF PP WORDS OCCUPIED #
02495 M00S02403.acpd +++| ITEM TP U; # DATA TYPE OF ELEMENT #
02496 M00S02404.acpd +++| ITEM VL I; # DECODED VALUE #
02497 M00S02405.acpd +++| ITEM VLR R; # DECODED VALUE #
02498 M00S02406.acpd +++|
02499 M00S02407.acpd +++| BASED
02500 M00S02408.acpd +++| ARRAY BUF [0:0] P(1); # DECODED BUFFER #
02501 M00S02409.acpd +++| BEGIN # ARRAY BUF #
02502 M00S02410.acpd +++| ITEM BUF$WD U(00,00,60); # DECODED DATA #
02503 M00S02411.acpd +++| ITEM BUF$SQ R(00,00,60); # SUM SQUARE #
02504 M00S02412.acpd +++| ITEM BUF$SM R(00,00,60); # SUM #
02505 M00S02413.acpd +++| ITEM BUF$ET U(00,00,30); # INTERVAL START TIME #
02506 M00S02414.acpd +++| ITEM BUF$BT U(00,30,30); # INTERVAL END TIME #
02507 M00S02415.acpd +++| END # ARRAY BUF #
02508 M00S02416.acpd +++|
02509 M00S02417.acpd +++| ARRAY SPT [1:3] P(1); # LOOP SAMPLE TIMES #
02510 M00S02418.acpd +++| BEGIN # ARRAY SPT #
02511 M00S02419.acpd +++| ITEM SPT$WD I(00,00,60); # SAMPLE TIME #
02512 M00S02420.acpd +++| END # ARRAY SPT #
02513 M00S02421.acpd +++|
02514 M00S02422.acpd +++|
02515 M00S02423.acpd +++|
02516 M00S02424.acpd +++|
02517 M00S02425.acpd +++|
02518 M00S02426.acpd +++|
02519 M00S02427.acpd +++|#
02520 M00S02428.acpd +++|* BEGIN DECODE PROC.
02521 M00S02429.acpd +++|#
02522 M00S02430.acpd +++|
02523 M00S02431.acpd +++| P<DCHD>=LOC(DBUF);
02524 M00S02432.acpd +++| P<DDSM>=LOC(DBUF[DCHL + DCDC*DCDL*2]);
02525 M00S02433.acpd +++| P<MPAR>=DTA;
02526 M00S02434.acpd +++| P<DDSC>=LOC(DDHD);
02527 M00S02435.acpd +++| P<BUF>=BFA;
02528 M00S02436.acpd +++| BA=IBWA*CPWC;
02529 M00S02437.acpd +++|
02530 M00S02438.acpd +++| IF (MPAR$TP[0] NQ HDLC) # NOT HEADER BLOCK #
02531 M00S02439.acpd +++| THEN
02532 M00S02440.acpd +++| BEGIN # GET LOOP SAMPLE TIMES #
02533 M00S02441.acpd +++| FASTFOR I=1 STEP 1 UNTIL 3
02534 M00S02442.acpd +++| DO
02535 M00S02443.acpd +++| BEGIN
02536 M00S02444.acpd +++| SPT$WD[I]=GETVAL(BA+SPLA$WD[I],2);
02537 M00S02445.acpd +++| END
02538 M00S02446.acpd +++|
02539 M00S02447.acpd +++| END # GET LOOP SAMPLE TIMES #
02540 M00S02448.acpd +++|
02541 M00S02449.acpd +++|#
02542 M00S02450.acpd +++|* FOLLOW TABLE *MPAR* TO EXTRACT DATA FROM *CIO* BUFFER AND PUT
02543 M00S02451.acpd +++|* THEM IN THE DECODED DATA BUFFER.
02544 M00S02452.acpd +++|* THE VALUES STORED IN THE DECODED DATA BUFFER FOR THE DATA
02545 M00S02453.acpd +++|* BLOCK ELEMENTS ARE THE CUMULATIVE AVERAGES. THE AVERAGE OF
02546 M00S02454.acpd +++|* EACH DATA BLOCK ELEMENT IS COMPUTED BY TAKING THE EXTRACTED
02547 M00S02455.acpd +++|* VALUE AND DIVIDING IT BY THE RESPECTIVE LOOP-S SAMPLE TIME
02548 M00S02456.acpd +++|* (*SPT* ARRAY). THE SQUARED AVERAGES ARE ALSO COMPUTED FOR
02549 M00S02457.acpd +++|* THE DATA BLOCK ELEMENTS.
02550 M00S02458.acpd +++|#
02551 M00S02459.acpd +++|
02552 M00S02460.acpd +++| C=0; # BEGIN ADDRESS TO STORE AVERAGE #
02553 M00S02461.acpd +++| OF=DCDL*DCDC; # OFFSET #
02554 M00S02462.acpd +++| J=0;
02555 M00S02463.acpd +++|
02556 M00S02464.acpd +++| SLOWFOR M=0 WHILE (MPAR$WD[J] NQ 0)
02557 M00S02465.acpd +++| DO
02558 M00S02466.acpd +++| BEGIN # FOLLOW TABLE *MPAR* #
02559 M00S02467.acpd +++| BASE=J;
02560 M00S02468.acpd +++| LMP=1;
02561 M00S02469.acpd +++| IF (MPAR$LMP[J] NQ NULL)
02562 M00S02470.acpd +++| THEN
02563 M00S02471.acpd +++| BEGIN
02564 M00S02472.acpd +++| LMP=DCHD$WD[DDSC$FW[MPAR$LMP[J]]]; # REPEAT GROUP LENGTH #
02565 M00S02473.acpd +++| END
02566 M00S02474.acpd +++|
02567 M00S02475.acpd +++|#
02568 M00S02476.acpd +++|* *LMP* IS GREATER THAN 1 IF THE REPEAT GROUP HAS
02569 M00S02477.acpd +++|* MULTIPLE ENTRIES.
02570 M00S02478.acpd +++|#
02571 M00S02479.acpd +++|
02572 M00S02480.acpd +++| FASTFOR K=1 STEP 1 UNTIL LMP
02573 M00S02481.acpd +++| DO
02574 M00S02482.acpd +++| BEGIN # COLLECT REPEAT GROUP VALUES #
02575 M00S02483.acpd +++| J=BASE;
02576 M00S02484.acpd +++| IC=MPAR$IC[J];
02577 M00S02485.acpd +++|
02578 M00S02486.acpd +++|#
02579 M00S02487.acpd +++|* *IC* IS THE SIZE OF THE REPEAT GROUP.
02580 M00S02488.acpd +++|* SINGLE ELEMENTS HAVE *IC* EQUAL TO 1.
02581 M00S02489.acpd +++|#
02582 M00S02490.acpd +++|
02583 M00S02491.acpd +++| FASTFOR L=1 STEP 1 UNTIL IC
02584 M00S02492.acpd +++| DO
02585 M00S02493.acpd +++| BEGIN # COLLECT ONE ENTRY OF REPEAT GROUP #
02586 M00S02494.acpd +++| NM=MPAR$NM[J]; # NAME #
02587 M00S02495.acpd +++| TP=MPAR$TP[J]; # TYPE #
02588 M00S02496.acpd +++| LN=MPAR$LN[J]; # LENGTH #
02589 M00S02497.acpd +++| PR=MPAR$PR[J]; # PRECISION #
02590 M00S02498.acpd +++| IF (PR GR CPWC)
02591 M00S02499.acpd +++| THEN
02592 M00S02500.acpd +++| BEGIN
02593 M00S02501.acpd +++| LN=(PR/CPWC)*LN;
02594 M00S02502.acpd +++| PR=CPWC;
02595 M00S02503.acpd +++| END
02596 M00S02504.acpd +++|
02597 M00S02505.acpd +++|#
02598 M00S02506.acpd +++|* *LN* IS GREATER THAN 1 IF THE ELEMENT HAS MULTIPLE
02599 M00S02507.acpd +++|* ENTRIES.
02600 M00S02508.acpd +++|#
02601 M00S02509.acpd +++|
02602 M00S02510.acpd +++| FASTFOR I=1 STEP 1 UNTIL LN
02603 M00S02511.acpd +++| DO
02604 M00S02512.acpd +++| BEGIN # COLLECT VALUE OF ONE ENTRY #
02605 M00S02513.acpd +++| CQ=C + OF; # ADDRESS OF SQUARED AVERAGE #
02606 M00S02514.acpd +++| VL=GETVAL(BA,PR); # GET VALUE FROM *CIO* BUFFER #
02607 M00S02515.acpd +++|
02608 M00S02516.acpd +++| IF (TP EQ HDLC) # HEADER BLOCK #
02609 M00S02517.acpd +++| OR (TP EQ SNLC) # SNAPSHOT LOOP #
02610 M00S02518.acpd +++| THEN
02611 M00S02519.acpd +++| BEGIN # COLLECT VALUES #
02612 M00S02520.acpd +++|
02613 M00S02521.acpd +++|#
02614 M00S02522.acpd +++|* HEADER BLOCK AND SNAPSHOT LOOP DATA ELEMENTS ARE NOT CUMULATIVE
02615 M00S02523.acpd +++|* VALUES.
02616 M00S02524.acpd +++|#
02617 M00S02525.acpd +++|
02618 M00S02526.acpd +++| IF (NM EQ PDTC) # PACKED DATE AND TIME #
02619 M00S02527.acpd +++| THEN
02620 M00S02528.acpd +++| BEGIN # GET TIME #
02621 M00S02529.acpd +++| BUF$ET[CQ]=VL-(VL/SHFC)*SHFC; # INTERVAL END TIME #
02622 M00S02530.acpd +++| IF (DDSM$BT[C] EQ 0) # TOTAL *BT* NOT COLLECTED #
02623 M00S02531.acpd +++| THEN
02624 M00S02532.acpd +++| BEGIN
02625 M00S02533.acpd +++| DDSM$BT[C]=VL; # TOTAL BEGIN TIME #
02626 M00S02534.acpd +++| END
02627 M00S02535.acpd +++|
02628 M00S02536.acpd +++| IF (BUF$BT[CQ] EQ 0) # INTERVAL *BT* NOT COLLECTED #
02629 M00S02537.acpd +++| THEN
02630 M00S02538.acpd +++| BEGIN
02631 M00S02539.acpd +++| BUF$BT[CQ]=BUF$ET[CQ]; # INTERVAL BEGIN TIME #
02632 M00S02540.acpd +++| END
02633 M00S02541.acpd +++|
02634 M00S02542.acpd +++| END # GET TIME #
02635 M00S02543.acpd +++|
02636 M00S02544.acpd +++| BUF$WD[C]=VL;
02637 M00S02545.acpd +++| IF (TP EQ SNLC) # SNAPSHOT LOOP #
02638 M00S02546.acpd +++| THEN
02639 M00S02547.acpd +++| BEGIN
02640 M00S02548.acpd +++| DDSM$IM[C]=VL;
02641 M00S02549.acpd +++| END
02642 M00S02550.acpd +++|
02643 M00S02551.acpd +++| END # COLLECT VALUES #
02644 M00S02552.acpd +++|
02645 M00S02553.acpd +++| ELSE # FAST, MEDIUM, SLOW LOOP #
02646 M00S02554.acpd +++| BEGIN # DECODE DATA BLOCK VALUES #
02647 M00S02555.acpd +++|
02648 M00S02556.acpd +++|#
02649 M00S02557.acpd +++|* THE FAST, MEDIUM, AND SLOW LOOP DATA ELEMENTS ARE CUMULATIVE
02650 M00S02558.acpd +++|* VALUES. THE VALUES SAVED IN THE DECODED BUFFER ARE CUMULATIVE
02651 M00S02559.acpd +++|* AVERAGE VALUES. THE AVERAGE VALUE IS COMPUTED BY TAKING THE
02652 M00S02560.acpd +++|* VALUE DECODED FROM THE INPUT BUFFER (READ IN FROM THE DATA
02653 M00S02561.acpd +++|* FILE) AND DEVIDE IT BY THE RESPECTIVE LOOP SAMPLE TIME.
02654 M00S02562.acpd +++|* THE AVERAGE SQUARE IS ALSO COMPUTED AND SAVED IN THE DECODED
02655 M00S02563.acpd +++|* BUFFER FOR EACH DATA BLOCK ELEMENTS.
02656 M00S02564.acpd +++|#
02657 M00S02565.acpd +++|
02658 M00S02566.acpd +++| IF (NM EQ CNIC)
02659 M00S02567.acpd +++| OR (NM EQ CTMC)
02660 M00S02568.acpd +++| OR (NM EQ CTOC) # LOOP SAMPLE TIMES #
02661 M00S02569.acpd +++| THEN # ACCUMULATE SAMPLE TIMES #
02662 M00S02570.acpd +++| BEGIN
02663 M00S02571.acpd +++| BUF$WD[C]=BUF$WD[C] + VL;
02664 M00S02572.acpd +++| DDSM$IM[C]=DDSM$IM[C] + VL;
02665 M00S02573.acpd +++| END
02666 M00S02574.acpd +++|
02667 M00S02575.acpd +++| ELSE
02668 M00S02576.acpd +++| BEGIN # COMPUTE CUMULATIVE *AV* AND SQUARED *AV* #
02669 M00S02577.acpd +++| IF (SPT$WD[TP] NQ 0) # NUMBER OF SAMPLES .NE. 0 #
02670 M00S02578.acpd +++| THEN
02671 M00S02579.acpd +++| BEGIN
02672 M00S02580.acpd +++| VLR=VL;
02673 M00S02581.acpd +++| AV=VLR/SPT$WD[TP];
02674 M00S02582.acpd +++| BUF$SM[C]=BUF$SM[C] + AV;
02675 M00S02583.acpd +++| BUF$SQ[CQ]=BUF$SQ[CQ] + AV*AV;
02676 M00S02584.acpd +++| DDSM$SM[C]=DDSM$SM[C] + AV;
02677 M00S02585.acpd +++| DDSM$SQ[C]=DDSM$SQ[C] + AV*AV;
02678 M00S02586.acpd +++| END
02679 M00S02587.acpd +++|
02680 M00S02588.acpd +++| END # COMPUTE CUMULATIVE *AV* AND SQUARED *AV* #
02681 M00S02589.acpd +++|
02682 M00S02590.acpd +++| END # DECODE DATA BLOCK VALUES #
02683 M00S02591.acpd +++|
02684 M00S02592.acpd +++| C=C+1; # NEXT DECODED BUFFER ADDRESS #
02685 M00S02593.acpd +++| BA=BA+PR; # NEXT *CIO* BUFFER BYTE ADDRESS #
02686 M00S02594.acpd +++| END # COLLECT VALUE OF ONE ENTRY #
02687 M00S02595.acpd +++|
02688 M00S02596.acpd +++| J=J+1;
02689 M00S02597.acpd +++| END # COLLECT ONE ENTRY OF REPEAT GROUP #
02690 M00S02598.acpd +++|
02691 M00S02599.acpd +++| END # COLLECT REPEAT GROUP VALUES #
02692 M00S02600.acpd +++|
02693 M00S02601.acpd +++| END # FOLLOW TABLE *MPAR* #
02694 M00S02602.acpd +++|
02695 M00S02603.acpd +++|#
02696 M00S02604.acpd +++|* CHECK IF THERE IS ANY MISSING ELEMENTS. THE VALUE OF
02697 M00S02605.acpd +++|* *IBWA* HAS TO BE A MULTIPLE OF *IBNW*, FOR THE *CIO* BUFFER
02698 M00S02606.acpd +++|* HAS TO CONTAIN A MULTIPLE NUMBER OF DATA BLOCKS OR
02699 M00S02607.acpd +++|* HEADER BLOCK.
02700 M00S02608.acpd +++|#
02701 M00S02609.acpd +++|
02702 M00S02610.acpd +++| C=BA/CPWC;
02703 M00S02611.acpd +++| IBWA=C+1; # NEXT *CIO* BUFFER ADDRESS #
02704 M00S02612.acpd +++| J=BA - (C*CPWC);
02705 M00S02613.acpd +++| IF (J NQ 0)
02706 M00S02614.acpd +++| THEN
02707 M00S02615.acpd +++| BEGIN
02708 M00S02616.acpd +++| C=C+1;
02709 M00S02617.acpd +++| END
02710 M00S02618.acpd +++|
02711 M00S02619.acpd +++| I=IBNW - (IBNW/C)*C;
02712 M00S02620.acpd +++| IF (I NQ 0) # NOT A MULTIPLE OF *IBNW* #
02713 M00S02621.acpd +++| THEN
02714 M00S02622.acpd +++| BEGIN
02715 M00S02623.acpd +++| PERROR(ERM6,FATAL,NULL); # DATA FILE CONTENT ERROR #
02716 M00S02624.acpd +++| END
02717 M00S02625.acpd +++|
02718 M00S02626.acpd +++| RETURN;
02719 M00S02627.acpd +++| END # DECODE #
02720 M00S02628.acpd +++|
02721 M00S02629.acpd +++| TERM
02722 M00S02630.acpd +++|PROC DETMXM(MXP,MNP,(MXI),(MNI),(DTY));
02723 M00S02631.acpd +++|# TITLE DETMXM - DETERMINE MAXIMUM AND MINIMUM VALUES. #
02724 M00S02632.acpd +++|
02725 M00S02633.acpd +++| BEGIN # DETMXM #
02726 M00S02634.acpd +++|
02727 M00S02635.acpd +++|#
02728 M00S02636.acpd +++|** DETMXM - DETERMINE MAXIMUM AND MINIMUM VALUES.
02729 M00S02637.acpd +++|*
02730 M00S02638.acpd +++|* DETERMINE THE MINIMUM AND MAXIMUM VALUES OF ONE
02731 M00S02639.acpd +++|* REPORT LINE. THE MAXIMUM VALUE IS INDICATED BY BRACKETS,
02732 M00S02640.acpd +++|* THE MINIMUM VALUE IS INDICATED BY PARENTHESES.
02733 M00S02641.acpd +++|*
02734 M00S02642.acpd +++|* PROC DETMXM(MXP,MNP,(MXI),(MNI),(DTY))
02735 M00S02643.acpd +++|*
02736 M00S02644.acpd +++|* ENTRY MXP = MAXIMUM VALUE ADDRESS.
02737 M00S02645.acpd +++|* MNP = MINIMUM VALUE ADDRESS.
02738 M00S02646.acpd +++|* MXI = INTERVAL CONTAINING MAXIMUM VALUE.
02739 M00S02647.acpd +++|* MNI = INTERVAL CONTAINING MINIMUM VALUE.
02740 M00S02648.acpd +++|* DTY = DATA TYPE.
02741 M00S02649.acpd +++|*
02742 M00S02650.acpd +++|* EXIT MAXIMUM AND MINIMUM VALUES ARE INDICATED BY
02743 M00S02651.acpd +++|* BRACKETS AND PARENTHESES, RESPECTIVELY.
02744 M00S02652.acpd +++|#
02745 M00S02653.acpd +++|
02746 M00S02654.acpd +++|#
02747 M00S02655.acpd +++|* PARAMETER LIST.
02748 M00S02656.acpd +++|#
02749 M00S02657.acpd +++|
02750 M00S02658.acpd +++| ITEM MXP U; # ADDRESS OF MAXIMUM VALUE #
02751 M00S02659.acpd +++| ITEM MNP U; # ADDRESS OF MINIMUM VALUE #
02752 M00S02660.acpd +++| ITEM MXI I; # COLUMN OF MAXIMUM VALUE #
02753 M00S02661.acpd +++| ITEM MNI I; # COLUMN OF MINIMUM VALUE #
02754 M00S02662.acpd +++| ITEM DTY U; # DATA TYPE #
02755 M00S02663.acpd +++|
02756 M00S02664.acpd +++|#
02757 M00S02665.acpd +++|**** PROC DETMXM - XREF LIST BEGIN.
02758 M00S02666.acpd +++|#
02759 M00S02667.acpd +++|
02760 M00S02668.acpd +++| XREF
02761 M00S02669.acpd +++| BEGIN
02762 M00S02670.acpd +++| FUNC XCDD C(10); # BINARY TO DISPLAY DECIMAL #
02763 M00S02671.acpd +++| FUNC XCED C(10); # BINARY TO *E* FORMAT #
02764 M00S02672.acpd +++| FUNC XCOD C(10); # BINARY TO DISPLAY OCTAL #
02765 M00S02673.acpd +++| FUNC XCFD C(10); # BINARY TO DISPLAY REAL #
02766 M00S02674.acpd +++| PROC WRITEV; # WRITE DATA ELEMENT #
02767 M00S02675.acpd +++| END
02768 M00S02676.acpd +++|
02769 M00S02677.acpd +++|#
02770 M00S02678.acpd +++|**** PROC DETMXM - XREF LIST END.
02771 M00S02679.acpd +++|#
02772 M00S02680.acpd +++|
02773 M00S02681.acpd +++| DEF BLKC #" "#; # BLANK #
02774 M00S02682.acpd +++| DEF LBKC #"["#; # LEFT BRACKET #
02775 M00S02683.acpd +++| DEF LPRC #"("#; # LEFT PARENTHESIS #
02776 M00S02684.acpd +++| DEF MAXF #1.0E4#; # MAXIMUM VALUE OF *F* FORMAT #
02777 M00S02685.acpd +++| DEF RBKC #"]"#; # RIGHT BRACKET #
02778 M00S02686.acpd +++| DEF RPRC #")"#; # RIGHT PARENTHESIS #
02779 M00S02687.acpd +++|
02780 M00S02688.acpd +++| DEF LISTCON #0#; # TURN OFF COMMON DECK LISTING #
02781 M00S02689.acpd +++|
02782 M00S02690.acpd +++|*CALL COMUCPD
02783 M00S02691.acpd +++|
02784 M00S02692.acpd +++|#
02785 M00S02693.acpd +++|* LOCAL VARIABLES.
02786 M00S02694.acpd +++|#
02787 M00S02695.acpd +++|
02788 M00S02696.acpd +++| ITEM I I; # FOR LOOP CONTROL #
02789 M00S02697.acpd +++| ITEM MN I; # TEMPORARY VALUE #
02790 M00S02698.acpd +++| ITEM MNF R; # TEMPORARY VALUE #
02791 M00S02699.acpd +++| ITEM MX I; # TEMPORARY VALUE #
02792 M00S02700.acpd +++| ITEM MXF R; # TEMPORARY VALUE #
02793 M00S02701.acpd +++|
02794 M00S02702.acpd +++| ARRAY OCV [0:0] P(1); # OCTAL VALUE #
02795 M00S02703.acpd +++| BEGIN # ARRAY OCV #
02796 M00S02704.acpd +++| ITEM OC$WD C(00,00,10); # VALUE #
02797 M00S02705.acpd +++| ITEM OC$NP C(00,06,09); # NO POSTFIX #
02798 M00S02706.acpd +++| END # ARRAY OCV #
02799 M00S02707.acpd +++|
02800 M00S02708.acpd +++| ARRAY TM [0:0] P(1); # TEMPORARY BUFFER #
02801 M00S02709.acpd +++| BEGIN # ARRAY TM #
02802 M00S02710.acpd +++| ITEM TM$WD C(00,00,10); # DISPLAY CODE MINIMUM VALUE #
02803 M00S02711.acpd +++| ITEM TM$W1 C(00,00,09); # VALUE WITH NO POSTFIX #
02804 M00S02712.acpd +++| END # ARRAY TM #
02805 M00S02713.acpd +++|
02806 M00S02714.acpd +++| ARRAY TX [0:0] P(1); # TEMPORARY BUFFER #
02807 M00S02715.acpd +++| BEGIN # ARRAY TX #
02808 M00S02716.acpd +++| ITEM TX$WD C(00,00,10); # DISPLAY CODE MAXIMUM VALUE #
02809 M00S02717.acpd +++| ITEM TX$W1 C(00,00,09); # VALUE WITH NO POSTFIX #
02810 M00S02718.acpd +++| END # ARRAY TX #
02811 M00S02719.acpd +++|
02812 M00S02720.acpd +++| BASED
02813 M00S02721.acpd +++| ARRAY VLMN [0:0] P(1); # MINIMUM VALUE #
02814 M00S02722.acpd +++| BEGIN # ARRAY VLMN #
02815 M00S02723.acpd +++| ITEM VLMN$F R(00,00,60); # REAL VALUE #
02816 M00S02724.acpd +++| ITEM VLMN$N I(00,00,60); # INTEGER VALUE #
02817 M00S02725.acpd +++| END # ARRAY VLMN #
02818 M00S02726.acpd +++|
02819 M00S02727.acpd +++| BASED
02820 M00S02728.acpd +++| ARRAY VLMX [0:0] P(1); # MAXIMUM VALUE #
02821 M00S02729.acpd +++| BEGIN # ARRAY VLMX #
02822 M00S02730.acpd +++| ITEM VLMX$F R(00,00,60); # REAL VALUE #
02823 M00S02731.acpd +++| ITEM VLMX$N I(00,00,60); # INTEGER VALUE #
02824 M00S02732.acpd +++| END # ARRAY VLMX #
02825 M00S02733.acpd +++|
02826 M00S02734.acpd +++|
02827 M00S02735.acpd +++|
02828 M00S02736.acpd +++|
02829 M00S02737.acpd +++|
02830 M00S02738.acpd +++|#
02831 M00S02739.acpd +++|* BEGIN DETMXM PROC.
02832 M00S02740.acpd +++|#
02833 M00S02741.acpd +++|
02834 M00S02742.acpd +++| IF (P$L EQ NULL) # NO REPORT FILE #
02835 M00S02743.acpd +++| THEN
02836 M00S02744.acpd +++| BEGIN
02837 M00S02745.acpd +++| RETURN;
02838 M00S02746.acpd +++| END
02839 M00S02747.acpd +++|
02840 M00S02748.acpd +++|#
02841 M00S02749.acpd +++|* CONVERT MAXIMUM AND MINIMUM VALUES TO DISPLAY CODE.
02842 M00S02750.acpd +++|#
02843 M00S02751.acpd +++|
02844 M00S02752.acpd +++| P<VLMX>=LOC(MXP);
02845 M00S02753.acpd +++| P<VLMN>=LOC(MNP);
02846 M00S02754.acpd +++| IF (DTY EQ FLPC) # REAL VALUE #
02847 M00S02755.acpd +++| THEN
02848 M00S02756.acpd +++| BEGIN
02849 M00S02757.acpd +++| IF (VLMX$F[0] GQ MAXF)
02850 M00S02758.acpd +++| THEN
02851 M00S02759.acpd +++| BEGIN # CONVERT TO *E* FORMAT #
02852 M00S02760.acpd +++| MXF=VLMX$F[0];
02853 M00S02761.acpd +++| TX$WD[0]=XCED(MXF);
02854 M00S02762.acpd +++| END # CONVERT TO *E* FORMAT #
02855 M00S02763.acpd +++|
02856 M00S02764.acpd +++| ELSE
02857 M00S02765.acpd +++| BEGIN # CONVERT TO *F* FORMAT #
02858 M00S02766.acpd +++| MX=VLMX$F[0]*1000.0 + 0.5;
02859 M00S02767.acpd +++| TX$WD[0]=XCFD(MX);
02860 M00S02768.acpd +++| END # CONVERT TO *F* FORMAT #
02861 M00S02769.acpd +++|
02862 M00S02770.acpd +++| IF (VLMN$F[0] GQ MAXF)
02863 M00S02771.acpd +++| THEN
02864 M00S02772.acpd +++| BEGIN # CONVERT TO *E* FORMAT #
02865 M00S02773.acpd +++| MNF=VLMN$F[0];
02866 M00S02774.acpd +++| TM$WD[0]=XCED(MNF);
02867 M00S02775.acpd +++| END # CONVERT TO *E* FORMAT #
02868 M00S02776.acpd +++|
02869 M00S02777.acpd +++| ELSE
02870 M00S02778.acpd +++| BEGIN # CONVERT TO *F* FORMAT #
02871 M00S02779.acpd +++| MN=VLMN$F[0]*1000.0 + 0.5;
02872 M00S02780.acpd +++| TM$WD[0]=XCFD(MN);
02873 M00S02781.acpd +++| END # CONVERT TO *F* FORMAT #
02874 M00S02782.acpd +++|
02875 M00S02783.acpd +++| END
02876 M00S02784.acpd +++|
02877 M00S02785.acpd +++| ELSE
02878 M00S02786.acpd +++| BEGIN
02879 M00S02787.acpd +++| IF (DTY EQ INTC) # INTEGER VALUE #
02880 M00S02788.acpd +++| THEN
02881 M00S02789.acpd +++| BEGIN
02882 M00S02790.acpd +++| TX$WD[0]=XCDD(VLMX$N[0]);
02883 M00S02791.acpd +++| TM$WD[0]=XCDD(VLMN$N[0]);
02884 M00S02792.acpd +++| END
02885 M00S02793.acpd +++|
02886 M00S02794.acpd +++| ELSE # OCTAL VALUE #
02887 M00S02795.acpd +++| BEGIN
02888 M00S02796.acpd +++| OC$WD[0]=XCOD(VLMX$N[0]);
02889 M00S02797.acpd +++| TX$W1[0]=OC$NP[0];
02890 M00S02798.acpd +++| OC$WD[0]=XCOD(VLMN$N[0]);
02891 M00S02799.acpd +++| TM$W1[0]=OC$NP[0];
02892 M00S02800.acpd +++| END
02893 M00S02801.acpd +++|
02894 M00S02802.acpd +++| END
02895 M00S02803.acpd +++|
02896 M00S02804.acpd +++|#
02897 M00S02805.acpd +++|* ENCLOSE THE MAXIMUM AND MINIMUM VALUES BY BRACKETS AND
02898 M00S02806.acpd +++|* PARENTHESES, RESPECTIVELY.
02899 M00S02807.acpd +++|#
02900 M00S02808.acpd +++|
02901 M00S02809.acpd +++| SLOWFOR I=0 STEP 1 WHILE (C<I,1>TX$WD[0] EQ BLKC) DO;
02902 M00S02810.acpd +++| MX=MXI*10 + I + 14;
02903 M00S02811.acpd +++| WRITEV(LBKC,CHRC,MX,1,NLFC);
02904 M00S02812.acpd +++| MX=BCLC + MXI*10;
02905 M00S02813.acpd +++| WRITEV(RBKC,CHRC,MX,1,NLFC);
02906 M00S02814.acpd +++|
02907 M00S02815.acpd +++| SLOWFOR I=0 STEP 1 WHILE (C<I,1>TM$WD[0] EQ BLKC) DO;
02908 M00S02816.acpd +++| MN=MNI*10 + I + 14;
02909 M00S02817.acpd +++| WRITEV(LPRC,CHRC,MN,1,NLFC);
02910 M00S02818.acpd +++| MN=BCLC + MNI*10;
02911 M00S02819.acpd +++| WRITEV(RPRC,CHRC,MN,1,NLFC);
02912 M00S02820.acpd +++| RETURN;
02913 M00S02821.acpd +++| END # DETMXM #
02914 M00S02822.acpd +++|
02915 M00S02823.acpd +++| TERM
Line S02824 Modification History |
M01 (Removed by) | ns2786 |
Seq # *Modification Id* Act
----------------------------+
02916 M01S02824.ns2786 ---|FUNC DTMNUM((VALUE),(FORM)) I;
Line S00009 Modification History |
M01 (Added by) | ns2786 |
Seq # *Modification Id* Act
----------------------------+
02917 M01S00009.ns2786 +++|FUNC DTMNUM((VALUE),(FORM),(PDOS)) I;
02918 M00S02825.acpd +++|# TITLE DTMNUM - CONVERT DATE/TIME TO NUMBER. #
02919 M00S02826.acpd +++|
02920 M00S02827.acpd +++| BEGIN # DTMNUM #
02921 M00S02828.acpd +++|
02922 M00S02829.acpd +++|#
02923 M00S02830.acpd +++|** DTMNUM - CONVERT DATE/TIME TO NUMBER.
02924 M00S02831.acpd +++|*
02925 M00S02832.acpd +++|* CONVERT DISPLAY DATE/TIME TO THE PACKED FORMAT.
02926 M00S02833.acpd +++|*
Line S02834 Modification History |
M01 (Removed by) | ns2786 |
Seq # *Modification Id* Act
----------------------------+
02927 M01S02834.ns2786 ---|* FUNC DTMNUM((VALUE),(FORM))
Line S00010 Modification History |
M01 (Added by) | ns2786 |
Seq # *Modification Id* Act
----------------------------+
02928 M01S00010.ns2786 +++|* FUNC DTMNUM((VALUE),(FORM),(PDOS))
02929 M00S02835.acpd +++|*
02930 M00S02836.acpd +++|* ENTRY VALUE = VALUE TO BE CONVERTED.
02931 M00S02837.acpd +++|* FORM = IF TRUE, THE VALUE IS IN FORMAT
02932 M00S02838.acpd +++|* XX.YY.ZZ.
02933 M00S02839.acpd +++|* IF FALSE, THE VALUE IS IN FORMAT
02934 M00S02840.acpd +++|* XXYYZZ.
Line S00011 Modification History |
M01 (Added by) | ns2786 |
Seq # *Modification Id* Act
----------------------------+
02935 M01S00011.ns2786 +++|* PDOS = IF TRUE, THE PACKED DATE 1970 OFFSET APPLIES.
02936 M01S00012.ns2786 +++|* IF FALSE, NO OFFSET IS APPLIED.
02937 M00S02841.acpd +++|*
02938 M00S02842.acpd +++|* EXIT VALUE IS CONVERTED TO PACKED FORMAT, AS IN
02939 M00S02843.acpd +++|* THE PACKED DATE AND TIME FORMAT.
02940 M00S02844.acpd +++|#
02941 M00S02845.acpd +++|
02942 M00S02846.acpd +++|#
02943 M00S02847.acpd +++|* PARAMETER LIST.
02944 M00S02848.acpd +++|#
02945 M00S02849.acpd +++|
02946 M00S02850.acpd +++| ITEM VALUE C(10); # VALUE TO BE CONVERTED #
Line S02851 Modification History |
M01 (Removed by) | ns2786 |
Seq # *Modification Id* Act
----------------------------+
02947 M01S02851.ns2786 ---| ITEM FORM B; # FORMAT, DATE OR TIME #
Line S00013 Modification History |
M01 (Added by) | ns2786 |
Seq # *Modification Id* Act
----------------------------+
02948 M01S00013.ns2786 +++| ITEM FORM B; # FORMAT OF DATE OR TIME #
02949 M01S00014.ns2786 +++| ITEM PDOS B; # APPLY PACKED DATE OFFSET #
02950 M00S02852.acpd +++|
02951 M00S02853.acpd +++|#
02952 M00S02854.acpd +++|**** FUNC DTMNUM - XREF LIST BEGIN.
02953 M00S02855.acpd +++|#
02954 M00S02856.acpd +++|
02955 M00S02857.acpd +++| XREF
02956 M00S02858.acpd +++| BEGIN
02957 M00S02859.acpd +++| PROC PERROR; # PROCESS ERROR #
02958 M00S02860.acpd +++| END
02959 M00S02861.acpd +++|
02960 M00S02862.acpd +++|#
02961 M00S02863.acpd +++|**** FUNC DTMNUM - XREF LIST END.
02962 M00S02864.acpd +++|#
02963 M00S02865.acpd +++|
02964 M00S02866.acpd +++| DEF ZERC #"0"#; # CHARACTER 0 #
02965 M00S02867.acpd +++|
02966 M00S02868.acpd +++| DEF LISTCON #0#; # TURN OFF COMMON DECK LISTING #
02967 M00S02869.acpd +++|
02968 M00S02870.acpd +++|*CALL COMUCPD
02969 M00S02871.acpd +++|
02970 M00S02872.acpd +++|#
02971 M00S02873.acpd +++|* LOCAL VARIABLES.
02972 M00S02874.acpd +++|#
02973 M00S02875.acpd +++|
02974 M00S02876.acpd +++| ITEM E I; # EXPONENTIAL #
02975 M00S02877.acpd +++| ITEM I I; # FOR LOOP CONTROL #
02976 M00S02878.acpd +++| ITEM N I; # TEMPORARY VARIABLE #
02977 M00S02879.acpd +++| ITEM T U; # TIME #
02978 M00S02880.acpd +++|
02979 M00S02881.acpd +++| ARRAY TM [0:0] P(1); # VALUE TO BE CONVERTED #
02980 M00S02882.acpd +++| BEGIN # ARRAY TM #
02981 M00S02883.acpd +++| ITEM TM$WD C(00,00,10); # VALUE #
02982 M00S02884.acpd +++| ITEM TM$XX C(00,00,02); # XX OF XXYYZZ #
02983 M00S02885.acpd +++| ITEM TM$YY C(00,12,02); # YY OF XXYYZZ #
02984 M00S02886.acpd +++| ITEM TM$ZZ C(00,24,02); # ZZ OF XXYYZZ #
02985 M00S02887.acpd +++|
02986 M00S02888.acpd +++| ITEM TM$X1 C(00,06,02); # XX OF XX.YY.ZZ #
02987 M00S02889.acpd +++| ITEM TM$D1 C(00,18,01); # DELIMITER #
02988 M00S02890.acpd +++| ITEM TM$Y1 C(00,24,02); # YY OF XX.YY.ZZ #
02989 M00S02891.acpd +++| ITEM TM$D2 C(00,36,01); # DELIMITER #
02990 M00S02892.acpd +++| ITEM TM$Z1 C(00,42,02); # ZZ OF XX.YY.ZZ #
02991 M00S02893.acpd +++| END # ARRAY TM #
02992 M00S02894.acpd +++|
02993 M00S02895.acpd +++|
02994 M00S02896.acpd +++|
02995 M00S02897.acpd +++|
02996 M00S02898.acpd +++|
02997 M00S02899.acpd +++|#
02998 M00S02900.acpd +++|* BEGIN DTMNUM FUNC.
02999 M00S02901.acpd +++|#
03000 M00S02902.acpd +++|
03001 M00S02903.acpd +++| TM$WD[0]=VALUE;
03002 M00S02904.acpd +++|
03003 M00S02905.acpd +++| IF (FORM) # FORMAT XX.YY.ZZ #
03004 M00S02906.acpd +++| THEN # CONVERT TO FORMAT XXYYZZ #
03005 M00S02907.acpd +++| BEGIN
03006 M00S02908.acpd +++| TM$XX[0]=TM$X1[0];
03007 M00S02909.acpd +++| TM$YY[0]=TM$Y1[0];
03008 M00S02910.acpd +++| TM$ZZ[0]=TM$Z1[0];
03009 M00S02911.acpd +++| END
03010 M00S02912.acpd +++|
03011 M00S02913.acpd +++| IF (TM$WD[0] EQ 0)
03012 M00S02914.acpd +++| THEN
03013 M00S02915.acpd +++| BEGIN
03014 M00S02916.acpd +++| DTMNUM=0;
03015 M00S02917.acpd +++| RETURN;
03016 M00S02918.acpd +++| END
03017 M00S02919.acpd +++|
03018 M00S02920.acpd +++|#
03019 M00S02921.acpd +++|* CONVERT TO THE PACKED FORMAT.
03020 M00S02922.acpd +++|#
03021 M00S02923.acpd +++|
03022 M00S02924.acpd +++| N=0;
03023 M00S02925.acpd +++| E=1;
03024 M00S02926.acpd +++| FASTFOR I=0 STEP 2 UNTIL 5
03025 M00S02927.acpd +++| DO
03026 M00S02928.acpd +++| BEGIN
03027 M00S02929.acpd +++| T=C<5-I,1>TM$WD[0] - ZERC;
03028 M00S02930.acpd +++| T=(C<4-I>TM$WD[0] - ZERC)*10 + T;
03029 M00S02931.acpd +++| N=N+T*E;
03030 M00S02932.acpd +++| E=E*64;
03031 M00S02933.acpd +++| END
03032 M00S02934.acpd +++|
Line S00015 Modification History |
M01 (Added by) | ns2786 |
Seq # *Modification Id* Act
----------------------------+
03033 M01S00015.ns2786 +++| IF (PDOS) # CONVERTING DATE #
03034 M01S00016.ns2786 +++| THEN # CHECK DATE RANGE #
03035 M01S00017.ns2786 +++| BEGIN
03036 M01S00018.ns2786 +++| IF (N LS Y70C) # DATE IN 21ST CENTURY #
03037 M01S00019.ns2786 +++| THEN
03038 M01S00020.ns2786 +++| BEGIN
03039 M01S00021.ns2786 +++| N=N+Y30C; # BIAS 21ST CENTURY DATES #
03040 M01S00022.ns2786 +++| END
03041 M01S00023.ns2786 +++| ELSE # DATE IN 20TH CENTURY #
03042 M01S00024.ns2786 +++| BEGIN
03043 M01S00025.ns2786 +++| N=N-Y70C; # BIAS 20TH CENTURY DATES #
03044 M01S00026.ns2786 +++| END
03045 M01S00027.ns2786 +++| END
03046 M01S00028.ns2786 +++|
03047 M00S02935.acpd +++| DTMNUM=N;
03048 M00S02936.acpd +++| RETURN;
03049 M00S02937.acpd +++| END # DTMNUM #
03050 M00S02938.acpd +++|
03051 M00S02939.acpd +++| TERM
03052 M00S02940.acpd +++|PROC GETMSG((ENT),MSG);
03053 M00S02941.acpd +++|# TITLE GETMSG - GET REPORT MESSAGE. #
03054 M00S02942.acpd +++|
03055 M00S02943.acpd +++| BEGIN # GETMSG #
03056 M00S02944.acpd +++|
03057 M00S02945.acpd +++|#
03058 M00S02946.acpd +++|** GETMSG - GET REPORT MESSAGE.
03059 M00S02947.acpd +++|*
03060 M00S02948.acpd +++|* GET MESSAGES FROM COMMON BLOCK *DSPTTXT*.
03061 M00S02949.acpd +++|*
03062 M00S02950.acpd +++|* PROC GETMSG((ENT),MSG)
03063 M00S02951.acpd +++|*
03064 M00S02952.acpd +++|* ENTRY ENT = INDEX OF TABLE *DSPT* ENTRY.
03065 M00S02953.acpd +++|*
03066 M00S02954.acpd +++|* EXIT MSG = MESSAGE EXTRACTED FROM COMMON BLOCK *DSPTTXT*.
03067 M00S02955.acpd +++|#
03068 M00S02956.acpd +++|
03069 M00S02957.acpd +++|#
03070 M00S02958.acpd +++|* PARAMETER LIST.
03071 M00S02959.acpd +++|#
03072 M00S02960.acpd +++|
03073 M00S02961.acpd +++| ITEM ENT I; # INDEX OF TABLE *DSPT* #
03074 M00S02962.acpd +++| ITEM MSG C(50); # REPORT TITLES #
03075 M00S02963.acpd +++|
03076 M00S02964.acpd +++| DEF LISTCON #0#; # TURN OFF COMMON DECK LISTING #
03077 M00S02965.acpd +++|
03078 M00S02966.acpd +++|*CALL COMUCPD
03079 M00S02967.acpd +++|
03080 M00S02968.acpd +++|#
03081 M00S02969.acpd +++|* LOCAL VARIABLES.
03082 M00S02970.acpd +++|#
03083 M00S02971.acpd +++|
03084 M00S02972.acpd +++| ITEM BA I; # BYTE ADDRESS #
03085 M00S02973.acpd +++| ITEM BC I; # BEGINNING CHARACTER POSITION #
03086 M00S02974.acpd +++| ITEM LN I; # MESSAGE LENGTH IN CHARACTER #
03087 M00S02975.acpd +++|
03088 M00S02976.acpd +++| BASED
03089 M00S02977.acpd +++| ARRAY TXT [0:0] P(1); # MESSAGE BUFFER #
03090 M00S02978.acpd +++| BEGIN # ARRAY TXT #
03091 M00S02979.acpd +++| ITEM TXT$MS C(00,00,60); # MESSAGE #
03092 M00S02980.acpd +++| END # ARRAY TXT #
03093 M00S02981.acpd +++|
03094 M00S02982.acpd +++|
03095 M00S02983.acpd +++|
03096 M00S02984.acpd +++|
03097 M00S02985.acpd +++|
03098 M00S02986.acpd +++|#
03099 M00S02987.acpd +++|* BEGIN GETMSG PROC.
03100 M00S02988.acpd +++|#
03101 M00S02989.acpd +++|
03102 M00S02990.acpd +++| LN=DSPT$LN[ENT]; # NUMBER OF CHARACTERS #
03103 M00S02991.acpd +++| BC=DSPT$BC[ENT]; # BEGINNING CHARACTER POSITION #
03104 M00S02992.acpd +++| BA=BC - (BC/10)*10;
03105 M00S02993.acpd +++| P<TXT>=LOC(DSTX$TX[BC/10]);
03106 M00S02994.acpd +++| MSG=C<BA,LN>TXT$MS[0];
03107 M00S02995.acpd +++| RETURN;
03108 M00S02996.acpd +++| END # GETMSG #
03109 M00S02997.acpd +++|
03110 M00S02998.acpd +++| TERM
03111 M00S02999.acpd +++|FUNC GETVAL((BA),(PR)) I;
03112 M00S03000.acpd +++|# TITLE GETVAL - GET VALUE FROM *CIO* BUFFER. #
03113 M00S03001.acpd +++|
03114 M00S03002.acpd +++| BEGIN # GETVAL #
03115 M00S03003.acpd +++|
03116 M00S03004.acpd +++|#
03117 M00S03005.acpd +++|** GETVAL - GET VALUE FROM *CIO* BUFFER.
03118 M00S03006.acpd +++|*
03119 M00S03007.acpd +++|* EXTRACT VALUES FROM THE *CIO* BUFFER OF THE DATA FILE.
03120 M00S03008.acpd +++|*
03121 M00S03009.acpd +++|* FUNC GETVAL((BA),(PR)) I
03122 M00S03010.acpd +++|*
03123 M00S03011.acpd +++|* ENTRY BA = BYTE ADDRESS OF THE VALUE TO BE EXTRACTED.
03124 M00S03012.acpd +++|* PR = NUMBER OF BYTES TO BE EXTRACTED.
03125 M00S03013.acpd +++|*
03126 M00S03014.acpd +++|* EXIT THE VALUE IS EXTRACTED FROM BUFFER *WSAI*.
03127 M00S03015.acpd +++|#
03128 M00S03016.acpd +++|
03129 M00S03017.acpd +++|#
03130 M00S03018.acpd +++|* PARAMETER LIST.
03131 M00S03019.acpd +++|#
03132 M00S03020.acpd +++|
03133 M00S03021.acpd +++| ITEM BA I; # BYTE ADDRESS #
03134 M00S03022.acpd +++| ITEM PR I; # PRECISION #
03135 M00S03023.acpd +++|
03136 M00S03024.acpd +++| DEF LISTCON #0#; # TURN OFF COMMON DECK LISTING #
03137 M00S03025.acpd +++|
03138 M00S03026.acpd +++|*CALL COMUCPD
03139 M00S03027.acpd +++|
03140 M00S03028.acpd +++|#
03141 M00S03029.acpd +++|* LOCAL VARIABLES.
03142 M00S03030.acpd +++|#
03143 M00S03031.acpd +++|
03144 M00S03032.acpd +++| ITEM BC I; # BYTE ADDRESS #
03145 M00S03033.acpd +++| ITEM T I; # TEMPORARY VALUE #
03146 M00S03034.acpd +++| ITEM WA I; # *CIO* BUFFER WORD ADDRESS #
03147 M00S03035.acpd +++|
03148 M00S03036.acpd +++| BASED
03149 M00S03037.acpd +++| ARRAY WSA [0:0] P(1); # WORKING BUFFER #
03150 M00S03038.acpd +++| BEGIN # ARRAY WSA #
03151 M00S03039.acpd +++| ITEM WSA$C C(00,00,20); # BUFFER ENTRY #
03152 M00S03040.acpd +++| END # ARRAY WSA #
03153 M00S03041.acpd +++|
03154 M00S03042.acpd +++|
03155 M00S03043.acpd +++|
03156 M00S03044.acpd +++|
03157 M00S03045.acpd +++|
03158 M00S03046.acpd +++|#
03159 M00S03047.acpd +++|* BEGIN GETVAL FUNC.
03160 M00S03048.acpd +++|#
03161 M00S03049.acpd +++|
03162 M00S03050.acpd +++| WA=BA/5; # ADDRESS TO EXTRACT THE VALUE #
03163 M00S03051.acpd +++| P<WSA>=LOC(WSAI$WD[WA]);
03164 M00S03052.acpd +++| T=BA*2; # NUMBER OF CHARACTERS #
03165 M00S03053.acpd +++| BC=T - (T/10)*10; # BEGIN CHARACTER POSITION #
03166 M00S03054.acpd +++| GETVAL=C<BC,PR*2>WSA$C[0];
03167 M00S03055.acpd +++| RETURN;
03168 M00S03056.acpd +++| END # GETVAL #
03169 M00S03057.acpd +++|
03170 M00S03058.acpd +++| TERM
03171 M00S03059.acpd +++|PROC HDRELM((ENP),(FCL),(LCL));
03172 M00S03060.acpd +++|# TITLE HDRELM - PRINT HEADER BLOCK ELEMENT. #
03173 M00S03061.acpd +++|
03174 M00S03062.acpd +++| BEGIN # HDRELM #
03175 M00S03063.acpd +++|
03176 M00S03064.acpd +++|#
03177 M00S03065.acpd +++|** HDRELM - PRINT HEADER BLOCK ELEMENT.
03178 M00S03066.acpd +++|*
03179 M00S03067.acpd +++|* PRINT ONE ELEMENT OF HEADER BLOCK.
03180 M00S03068.acpd +++|*
03181 M00S03069.acpd +++|* PROC HDRELM((ENP),(FCL),(LCL))
03182 M00S03070.acpd +++|*
03183 M00S03071.acpd +++|* ENTRY ENP = INDEX OF THE *DSPT* ENTRY POINTING TO
03184 M00S03072.acpd +++|* THE HEADER BLOCK ELEMENT BEING PROCESSED.
03185 M00S03073.acpd +++|* FCL = BEGINNING COLUMN TO PRINT THE HEADER BLOCK
03186 M00S03074.acpd +++|* ELEMENT NAME.
03187 M00S03075.acpd +++|* LCL = BEGINNING COLUMN TO PRINT THE HEADER BLOCK
03188 M00S03076.acpd +++|* ELEMENT VALUE.
03189 M00S03077.acpd +++|*
03190 M00S03078.acpd +++|* EXIT THE HEADER BLOCK ELEMENT IS PRINTED TO THE REPORT
03191 M00S03079.acpd +++|* FILE.
03192 M00S03080.acpd +++|#
03193 M00S03081.acpd +++|
03194 M00S03082.acpd +++|#
03195 M00S03083.acpd +++|* PARAMETER LIST.
03196 M00S03084.acpd +++|#
03197 M00S03085.acpd +++|
03198 M00S03086.acpd +++| ITEM ENP I; # INDEX OF DSPT ENTRY #
03199 M00S03087.acpd +++| ITEM FCL I; # BEGIN COLUMN TO PRINT NAME #
03200 M00S03088.acpd +++| ITEM LCL I; # BEGIN COLUMN TO PRINT VALUE #
03201 M00S03089.acpd +++|
03202 M00S03090.acpd +++|#
03203 M00S03091.acpd +++|**** PROC HDRELM - XREF LIST BEGIN.
03204 M00S03092.acpd +++|#
03205 M00S03093.acpd +++|
03206 M00S03094.acpd +++| XREF
03207 M00S03095.acpd +++| BEGIN
03208 M00S03096.acpd +++| PROC GETMSG; # GET TITLE FROM TABLE *DSPTTXT* #
03209 M00S03097.acpd +++| PROC WRITEV; # WRITE DATA ELEMENT #
03210 M00S03098.acpd +++| END
03211 M00S03099.acpd +++|
03212 M00S03100.acpd +++|#
03213 M00S03101.acpd +++|**** PROC HDRELM - XREF LIST END.
03214 M00S03102.acpd +++|#
03215 M00S03103.acpd +++|
03216 M00S03104.acpd +++| DEF LISTCON #0#; # TURN OFF COMMON DECK LISTING #
03217 M00S03105.acpd +++|
03218 M00S03106.acpd +++|*CALL COMUCPD
03219 M00S03107.acpd +++|
03220 M00S03108.acpd +++|#
03221 M00S03109.acpd +++|* LOCAL VARIABLES.
03222 M00S03110.acpd +++|#
03223 M00S03111.acpd +++|
03224 M00S03112.acpd +++| ITEM BL I; # BIT LENGTH #
03225 M00S03113.acpd +++| ITEM BT I; # BIT POSITION #
03226 M00S03114.acpd +++| ITEM D I; # DATA TYPE #
03227 M00S03115.acpd +++| ITEM J I; # POINTER TO *DDHD* TABLE #
03228 M00S03116.acpd +++| ITEM L I; # TITLE LENGTH IN CHARACTERS #
03229 M00S03117.acpd +++| ITEM MSG C(50); # TEMPORARY BUFFER #
03230 M00S03118.acpd +++| ITEM T I; # POINTER TO *DCHD* TABLE #
03231 M00S03119.acpd +++| ITEM VALUE I; # TEMPORARY VALUE #
03232 M00S03120.acpd +++| ITEM WC I; # WORD COUNT #
03233 M00S03121.acpd +++|
03234 M00S03122.acpd +++|
03235 M00S03123.acpd +++|
03236 M00S03124.acpd +++|
03237 M00S03125.acpd +++|
03238 M00S03126.acpd +++|#
03239 M00S03127.acpd +++|* BEGIN HDRELM PROC.
03240 M00S03128.acpd +++|#
03241 M00S03129.acpd +++|
03242 M00S03130.acpd +++| P<DCHD>=LOC(DBUF);
03243 M00S03131.acpd +++| P<DDSC>=LOC(DDHD);
03244 M00S03132.acpd +++| J=DSPT$PT[ENP]; # INDEX OF TABLE *DDSC* #
03245 M00S03133.acpd +++| L=DSPT$LN[ENP];
03246 M00S03134.acpd +++| T=DDSC$FW[J]; # INDEX OF TABLE *DCHD* #
03247 M00S03135.acpd +++| D=DDSC$TY[J]; # DATA TYPE #
03248 M00S03136.acpd +++| GETMSG(ENP,MSG);
03249 M00S03137.acpd +++| WRITEV(MSG,CHRC,FCL,L,NLFC);
03250 M00S03138.acpd +++| BL=DSPT$BL[ENP]; # GET BIT LENGTH #
03251 M00S03139.acpd +++| WC=DSPT$WC[ENP]; # WORD COUNT #
03252 M00S03140.acpd +++| IF (BL EQ 0) # ACCESS FULL WORD #
03253 M00S03141.acpd +++| THEN
03254 M00S03142.acpd +++| BEGIN
03255 M00S03143.acpd +++| VALUE=DCHD$WD[T+WC];
03256 M00S03144.acpd +++| END
03257 M00S03145.acpd +++|
03258 M00S03146.acpd +++| ELSE # ACCESS PARTIAL WORD #
03259 M00S03147.acpd +++| BEGIN
03260 M00S03148.acpd +++| BT=DSPT$BT[ENP];
03261 M00S03149.acpd +++| VALUE=B<BT,BL>DCHD$WD[T+WC];
03262 M00S03150.acpd +++| END
03263 M00S03151.acpd +++|
03264 M00S03152.acpd +++| WRITEV(VALUE,D,LCL,10,LFDC);
03265 M00S03153.acpd +++| RETURN;
03266 M00S03154.acpd +++| END # HDRELM #
03267 M00S03155.acpd +++| TERM
03268 M00S03156.acpd +++|PROC HEADER(TMED,HDDC,(LSTM));
03269 M00S03157.acpd +++|# TITLE HEADER - PROCESS HEADER BLOCK. #
03270 M00S03158.acpd +++|
03271 M00S03159.acpd +++| BEGIN # HEADER #
03272 M00S03160.acpd +++|
03273 M00S03161.acpd +++|#
03274 M00S03162.acpd +++|** HEADER - PROCESS HEADER BLOCK.
03275 M00S03163.acpd +++|*
03276 M00S03164.acpd +++|* *HEADER* BUILDS THE REPORT TITLE AND PROCESSES THE HEADER BLOCK
03277 M00S03165.acpd +++|* OF EACH FILE IN THE DATA FILE.
03278 M00S03166.acpd +++|*
03279 M00S03167.acpd +++|* PROC HEADER(TMED,HDDC,(LSTM))
03280 M00S03168.acpd +++|*
03281 M00S03169.acpd +++|* ENTRY HDDC = TRUE IF HEADER BLOCK HAS BEEN DECODED.
03282 M00S03170.acpd +++|* LSTM = TIME OF LAST RECORD.
03283 M00S03171.acpd +++|*
03284 M00S03172.acpd +++|* EXIT TMED = TRUE IF *N* PARAMETER EXCEEDS NUMBER OF FILES.
03285 M00S03173.acpd +++|* HDDC = FALSE
03286 M00S03174.acpd +++|* ELEMENTS IN HEADER BLOCK ARE PRINTED TO THE
03287 M00S03175.acpd +++|* REPORT FILE.
03288 M00S03176.acpd +++|#
03289 M00S03177.acpd +++|
03290 M00S03178.acpd +++|#
03291 M00S03179.acpd +++|* PARAMETER LIST.
03292 M00S03180.acpd +++|#
03293 M00S03181.acpd +++|
03294 M00S03182.acpd +++| ITEM TMED B; # EOI FLAG #
03295 M00S03183.acpd +++| ITEM HDDC B; # DECODE HEADER BLOCK FLAG #
03296 M00S03184.acpd +++| ITEM LSTM U; # ENDING TIME OF PREVIOUS FILE #
03297 M00S03185.acpd +++|
03298 M00S03186.acpd +++|#
03299 M00S03187.acpd +++|**** PROC HEADER - XREF LIST BEGIN.
03300 M00S03188.acpd +++|#
03301 M00S03189.acpd +++|
03302 M00S03190.acpd +++| XREF
03303 M00S03191.acpd +++| BEGIN
03304 M00S03192.acpd +++| PROC ADJUST; # ADJUST TABLES AND FIELD LENGTH #
03305 M00S03193.acpd +++| PROC BZFILL; # BLANK/ZERO FILL ITEM #
03306 M00S03194.acpd +++| PROC DECODE; # DECODE *CIO* INPUT BUFFER DATA #
03307 M00S03195.acpd +++| FUNC DTMNUM U; # CONVERT DATE/TIME TO BINARY #
03308 M00S03196.acpd +++| PROC PERROR; # PROCESS ERROR #
03309 M00S03197.acpd +++| PROC PUTEST; # PRINT EST #
03310 M00S03198.acpd +++| PROC PUTHDR; # PRINT HEADER ELEMENTS #
03311 M00S03199.acpd +++| PROC PUTSCI; # PRINT JOB CONTROL BLOCK #
03312 M00S03200.acpd +++| PROC READRC; # READ AND SKIP #
03313 M00S03201.acpd +++| PROC RPHEAD; # PRINT *ACPD* TITLE #
03314 M00S03202.acpd +++| PROC WRITER; # *CIO* WRITER #
03315 M00S03203.acpd +++| PROC WRITEW; # *CIO* WRITEW #
03316 M00S03204.acpd +++| END
03317 M00S03205.acpd +++|
03318 M00S03206.acpd +++|#
03319 M00S03207.acpd +++|**** PROC HEADER - XREF LIST END.
03320 M00S03208.acpd +++|#
03321 M00S03209.acpd +++|
03322 M00S03210.acpd +++| DEF LISTCON #0#; # TURN OFF COMMON DECK LISTING #
03323 M00S03211.acpd +++|
03324 M00S03212.acpd +++|*CALL COMUCPD
03325 M00S03213.acpd +++|*CALL COMABZF
03326 M00S03214.acpd +++|
03327 M00S03215.acpd +++|#
03328 M00S03216.acpd +++|* LOCAL VARIABLES.
03329 M00S03217.acpd +++|#
03330 M00S03218.acpd +++|
03331 M00S03219.acpd +++| ITEM D I; # TEMPORARY VARIABLE #
03332 M00S03220.acpd +++| ITEM L I; # TEMPORARY VARIABLE #
03333 M00S03221.acpd +++| ITEM STAT I; # I/O STATUS #
03334 M00S03222.acpd +++| ITEM T I; # TEMPORARY VARIABLE #
03335 M00S03223.acpd +++|
03336 M00S03224.acpd +++| BASED
03337 M00S03225.acpd +++| ARRAY HEAD [0:0] P(1); # HEADER SYSTEM DESIGNATOR #
03338 M00S03226.acpd +++| BEGIN # ARRAY HEAD #
03339 M00S03227.acpd +++| ITEM HEAD$SD C(00,00,70); # SYSTEM DESIGNATOR #
03340 M00S03228.acpd +++| END # ARRAY HEAD #
03341 M00S03229.acpd +++|
03342 M00S03230.acpd +++| ARRAY TEXT [0:0] S(10); # HEADER TEXT #
03343 M00S03231.acpd +++| BEGIN # ARRAY TEXT #
03344 M00S03232.acpd +++| ITEM TXT$H1 C(00,00,16); # *ACPD* VERSION #
03345 M00S03233.acpd +++| ITEM TXT$VR C(01,00,10); # VERSION NUMBER #
03346 M00S03234.acpd +++| ITEM TXT$H2 C(02,00,10)=[" "]; # BLANK FILL #
03347 M00S03235.acpd +++| ITEM TXT$SD C(03,00,70); # SYSTEM DESIGNATOR #
03348 M00S03236.acpd +++| END # ARRAY TEXT #
03349 M00S03237.acpd +++|
03350 M00S03238.acpd +++|
03351 M00S03239.acpd +++|
03352 M00S03240.acpd +++|
03353 M00S03241.acpd +++|
03354 M00S03242.acpd +++|#
03355 M00S03243.acpd +++|* BEGIN HEADER PROC.
03356 M00S03244.acpd +++|#
03357 M00S03245.acpd +++|
03358 M00S03246.acpd +++| P<MPAR>=LOC(HDTR);
03359 M00S03247.acpd +++| P<DDSC>=LOC(DDHD);
03360 M00S03248.acpd +++| P<DCHD>=LOC(DBUF);
03361 M00S03249.acpd +++|
03362 M00S03250.acpd +++|#
03363 M00S03251.acpd +++|* *HDDC* IS NOT TRUE IF *HEADER* IS CALLED TO PROCESS THE NEXT
03364 M00S03252.acpd +++|* DATA FILE. *HDDC* IS TRUE IF THE FIRST FILE IS BEING PROCESSED.
03365 M00S03253.acpd +++|* IF THE LATER IS TRUE, ALL THE ERROR CHECKING HAS BEEN DONE BY
03366 M00S03254.acpd +++|* *INITLZ*.
03367 M00S03255.acpd +++|#
03368 M00S03256.acpd +++|
03369 M00S03257.acpd +++| IF (NOT HDDC) # HEADER BLOCK NOT DECODED #
03370 M00S03258.acpd +++| THEN
03371 M00S03259.acpd +++| BEGIN # READ HEADER BLOCK OF NEXT FILE #
03372 M00S03260.acpd +++| READRC(STAT); # READ HEADER BLOCK #
03373 M00S03261.acpd +++| IF (STAT NQ EORC) # EOF OR EOI ENCOUNTERED #
03374 M00S03262.acpd +++| THEN
03375 M00S03263.acpd +++| BEGIN
03376 M00S03264.acpd +++| IF (IBNW GR 0) # INPUT BUFFER NOT EMPTY #
03377 M00S03265.acpd +++| THEN
03378 M00S03266.acpd +++| BEGIN
03379 M00S03267.acpd +++| PERROR(ERM4,FATAL,NULL); # DATA BLOCKS MISSING #
03380 M00S03268.acpd +++| END
03381 M00S03269.acpd +++|
Line S03270 Modification History |
M01 (Removed by) | v23l617 |
Seq # *Modification Id* Act
----------------------------+
03382 M01S03270.v23l617 ---| IF (P$N LS MXFC) # NOT *N* WITH NO EQUIVALENCE #
Line S00070 Modification History |
M01 (Added by) | v23l617 |
Seq # *Modification Id* Act
----------------------------+
03383 M01S00070.v23l617 +++| IF (P$N LS 9999999) # EQUIVALENCED *N* PARAMETER #
03384 M00S03271.acpd +++| THEN
03385 M00S03272.acpd +++| BEGIN
03386 M00S03273.acpd +++| PERROR(ERM9,INFOM,NULL); # *N* EXCEEDS NUMBER OF FILES #
03387 M00S03274.acpd +++| END
03388 M00S03275.acpd +++|
03389 M00S03276.acpd +++| TMED=TRUE;
03390 M00S03277.acpd +++| RETURN;
03391 M00S03278.acpd +++| END
03392 M00S03279.acpd +++|
03393 M00S03280.acpd +++| IF (P$VERS NQ WSAI$VS[0]) # *CPD* AND *ACPD* INCOMPATBLE #
03394 M00S03281.acpd +++| THEN
03395 M00S03282.acpd +++| BEGIN
03396 M00S03283.acpd +++| PERROR(ERM13,FATAL,NULL); # CPD/ACPD VERSIONS MISMATCH #
03397 M00S03284.acpd +++| END
03398 M00S03285.acpd +++|
03399 M00S03286.acpd +++| IBWA=0;
03400 M00S03287.acpd +++| DECODE(LOC(HDTR),LOC(DCHD)); # DECODE HEADER BLOCK #
03401 M00S03288.acpd +++| ADJUST; # ADJUST TABLES AND FIELD LENGTH #
03402 M00S03289.acpd +++|
03403 M00S03290.acpd +++|#
03404 M00S03291.acpd +++|* CHECK IF FILES IN CHRONOLOGICAL ORDER.
03405 M00S03292.acpd +++|#
03406 M00S03293.acpd +++|
Line S03294 Modification History |
M01 (Removed by) | ns2786 |
Seq # *Modification Id* Act
----------------------------+
03407 M01S03294.ns2786 ---| T=DTMNUM(DCHD$WD[DDSC$FW[TIME]],TRUE);
03408 M01S03295.ns2786 ---| D=(DTMNUM(DCHD$WD[DDSC$FW[DATE]],TRUE) - Y70C)*SHFC;
Line S00029 Modification History |
M01 (Added by) | ns2786 |
Seq # *Modification Id* Act
----------------------------+
03409 M01S00029.ns2786 +++| T=DTMNUM(DCHD$WD[DDSC$FW[TIME]],TRUE,FALSE);
03410 M01S00030.ns2786 +++| D=DTMNUM(DCHD$WD[DDSC$FW[DATE]],TRUE,TRUE)*SHFC;
03411 M00S03296.acpd +++| IF (LSTM GR (D+T)) # DATA FILE NOT IN ORDER #
03412 M00S03297.acpd +++| THEN
03413 M00S03298.acpd +++| BEGIN
03414 M00S03299.acpd +++| PERROR(ERM8,FATAL,NULL);
03415 M00S03300.acpd +++| END
03416 M00S03301.acpd +++|
03417 M00S03302.acpd +++| END # READ HEADER BLOCK OF NEXT FILE #
03418 M00S03303.acpd +++|
03419 M00S03304.acpd +++| ELSE # HEADER BLOCK HAS BEEN DECODED #
03420 M00S03305.acpd +++| BEGIN
03421 M00S03306.acpd +++| HDDC=FALSE;
03422 M00S03307.acpd +++| END
03423 M00S03308.acpd +++|
03424 M00S03309.acpd +++|#
03425 M00S03310.acpd +++|* BUILD THE REPORT TITLE.
03426 M00S03311.acpd +++|#
03427 M00S03312.acpd +++|
03428 M00S03313.acpd +++| T=DDSC$FW[CPDV]; # *ACPD* VERSION POINTER #
03429 M00S03314.acpd +++| TXT$VR[0]=DCHD$CW[T];
03430 M00S03315.acpd +++| TXT$H1[0]=" A C P D - VER ";
03431 M00S03316.acpd +++|
03432 M00S03317.acpd +++| T=DDSC$FW[SYSV]; # SYSTEM DESIGNATOR POINTER #
03433 M00S03318.acpd +++| P<HEAD>=LOC(DCHD$CW[T]);
03434 M00S03319.acpd +++| T=MPAR$PR[SYSV]*2;
03435 M00S03320.acpd +++| BZFILL(HEAD,TYPFILL"BFILL",T);
03436 M00S03321.acpd +++| TXT$SD[0]=HEAD$SD[0];
03437 M00S03322.acpd +++|
03438 M00S03323.acpd +++| IF (P$L NQ NULL) # REPORT FILE SPECIFIED #
03439 M00S03324.acpd +++| THEN
03440 M00S03325.acpd +++| BEGIN
03441 M00S03326.acpd +++| L=30 + T; # LENGTH OF HEADER TEXT #
03442 M00S03327.acpd +++| RPHEAD(OFFA,TEXT,2,L); # SET UP *ACPD* TITLE #
03443 M00S03328.acpd +++| PUTHDR; # PRINT HEADER BLOCK ELEMENTS #
03444 M00S03329.acpd +++| PUTEST; # PRINT EST #
03445 M00S03330.acpd +++| PUTSCI; # PRINT JOB CONTROL BLOCK #
03446 M00S03331.acpd +++| END
03447 M00S03332.acpd +++|
03448 M00S03333.acpd +++| IF (P$S NQ NULL) # SUMMARY FILE SPECIFIED #
03449 M00S03334.acpd +++| THEN # WRITE SUMMARY FILE #
03450 M00S03335.acpd +++| BEGIN
03451 M00S03336.acpd +++| WRITEW(FETS,DCHD,DCHL,0);
03452 M00S03337.acpd +++| WRITER(FETS,1);
03453 M00S03338.acpd +++| END
03454 M00S03339.acpd +++|
03455 M00S03340.acpd +++| RETURN;
03456 M00S03341.acpd +++| END # HEADER #
03457 M00S03342.acpd +++|
03458 M00S03343.acpd +++| TERM
03459 M00S03344.acpd +++|PROC INITLZ(HDDC,DTDC,EDTM);
03460 M00S03345.acpd +++|# TITLE INITLZ - INITIALIZE PARAMETERS AND OPEN FILES. #
03461 M00S03346.acpd +++|
03462 M00S03347.acpd +++| BEGIN # INITLZ #
03463 M00S03348.acpd +++|
03464 M00S03349.acpd +++|#
03465 M00S03350.acpd +++|** INITLZ - INITIALIZE PARAMETERS AND OPEN FILES.
03466 M00S03351.acpd +++|*
Line S03352 Modification History |
M01 (Removed by) | v23l617 |
Seq # *Modification Id* Act
----------------------------+
03467 M01S03352.v23l617 ---|* PROCESS *ACPD* CONTROL STATEMENT PARAMETERS, INITIALIZE *ACPD*,
Line S00071 Modification History |
M01 (Added by) | v23l617 |
Seq # *Modification Id* Act
----------------------------+
03468 M01S00071.v23l617 +++|* PROCESS *ACPD* COMMAND PARAMETERS, INITIALIZE *ACPD*,
03469 M00S03353.acpd +++|* AND OPEN FILES.
03470 M00S03354.acpd +++|*
03471 M00S03355.acpd +++|* PROC INITLZ(HDDC,DTDC,EDTM)
03472 M00S03356.acpd +++|*
03473 M00S03357.acpd +++|* ENTRY NONE.
03474 M00S03358.acpd +++|*
03475 M00S03359.acpd +++|* EXIT HDDC = INDICATE IF HEADER BLOCK HAS BEEN DECODED.
03476 M00S03360.acpd +++|* DTDC = INDICATE IF DATA BLOCK HAS BEEN DECODED.
03477 M00S03361.acpd +++|* TIME = TRUE IF BEGINNING TIME GREATER THAN
03478 M00S03362.acpd +++|* ENDING TIME.
03479 M00S03363.acpd +++|#
03480 M00S03364.acpd +++|
03481 M00S03365.acpd +++|#
03482 M00S03366.acpd +++|* PARAMETER LIST.
03483 M00S03367.acpd +++|#
03484 M00S03368.acpd +++|
03485 M00S03369.acpd +++| ITEM HDDC B; # DECODED HEADER BLOCK FLAG #
03486 M00S03370.acpd +++| ITEM DTDC B; # DECODED DATA BLOCK FLAG #
03487 M00S03371.acpd +++| ITEM EDTM B; # ENDING TIME FLAG #
03488 M00S03372.acpd +++|
03489 M00S03373.acpd +++|#
03490 M00S03374.acpd +++|**** PROC INITLZ - XREF LIST BEGIN.
03491 M00S03375.acpd +++|#
03492 M00S03376.acpd +++|
03493 M00S03377.acpd +++| XREF
03494 M00S03378.acpd +++| BEGIN
03495 M00S03379.acpd +++| PROC ADJUST; # ADJUST TABLES AND FIELD LENGTH #
03496 M00S03380.acpd +++| PROC DECODE; # DECODE *CIO* INPUT BUFFER DATA #
03497 M00S03381.acpd +++| FUNC DTMNUM I; # CONVERT TIME/DATE TO BINARY #
03498 M00S03382.acpd +++| PROC FILINFO; # GET FILE INFORMATION #
03499 M00S03383.acpd +++| PROC MEMORY; # REQUEST MEMORY #
03500 M00S03384.acpd +++| PROC PAP; # PROCESS *ACPD* PARAMETER #
03501 M00S03385.acpd +++| PROC PERROR; # PROCESS ERROR #
03502 M00S03386.acpd +++| PROC READRC; # READ ONE RECORD FROM DATA FILE #
03503 M00S03387.acpd +++| PROC REPTLE; # PRINT REPORT SUBTITLE #
03504 M00S03388.acpd +++| PROC RPOPEN; # OPEN FILES #
03505 M00S03389.acpd +++| PROC ZSETFET; # INITIALIZE *CIO* FET #
03506 M00S03390.acpd +++| END
03507 M00S03391.acpd +++|
03508 M00S03392.acpd +++|#
03509 M00S03393.acpd +++|**** PROC INITLZ - XREF LIST END.
03510 M00S03394.acpd +++|#
03511 M00S03395.acpd +++|
03512 M00S03396.acpd +++| DEF CNIC #"CNIL"#; # FAST LOOP SAMPLE #
03513 M00S03397.acpd +++| DEF CTMC #"CTML"#; # MEDIUM LOOP SAMPLE #
03514 M00S03398.acpd +++| DEF CTOC #"CTOL"#; # SLOW LOOP SAMPLE #
03515 M00S03399.acpd +++| DEF MXVC #1.0E20#; # MAXIMUM VALUE #
03516 M00S03400.acpd +++| DEF NA #"NA"#; # NO ABORT FLAG #
03517 M00S03401.acpd +++| DEF RECALL #1#; # RECALL FLAG #
03518 M00S03402.acpd +++|
03519 M00S03403.acpd +++| DEF LISTCON #0#; # TURN OFF COMMON DECK LISTING #
03520 M00S03404.acpd +++|
03521 M00S03405.acpd +++|*CALL COMUCPD
03522 M00S03406.acpd +++|
03523 M00S03407.acpd +++|#
03524 M00S03408.acpd +++|* LOCAL VARIABLES.
03525 M00S03409.acpd +++|#
03526 M00S03410.acpd +++|
03527 M00S03411.acpd +++| ITEM BA I; # BYTE ADDRESS #
03528 M00S03412.acpd +++| ITEM CM C(10)="CM"; # REQUEST CM FLAG #
03529 M00S03413.acpd +++| ITEM D I; # TEMPORARY VARIABLE #
03530 M00S03414.acpd +++| ITEM DM I; # TEMPORARY VARIABLE #
03531 M00S03415.acpd +++| ITEM I I; # FOR LOOP CONTROL #
03532 M00S03416.acpd +++| ITEM J I; # FOR LOOP CONTROL #
03533 M00S03417.acpd +++| ITEM STAT I; # I/O STATUS #
03534 M00S03418.acpd +++| ITEM T I; # TEMPORARY VARIABLE #
03535 M00S03419.acpd +++| ITEM TM I; # TIME #
03536 M00S03420.acpd +++|
03537 M00S03421.acpd +++| ARRAY FINFO [0:0] P(5); # *FILINFO* PARAMETER BLOCK #
03538 M00S03422.acpd +++| BEGIN # ARRAY FINFO #
03539 M00S03423.acpd +++| ITEM FIN$FN C(00,00,07); # FILE NAME #
03540 M00S03424.acpd +++| ITEM FIN$LN U(00,42,06)=[5]; # PARAMETER BLOCK LENGTH #
03541 M00S03425.acpd +++| ITEM FIN$US U(00,48,12)=[1]; # COMPLETION STATUS #
03542 M00S03426.acpd +++| ITEM FIN$WD U(01,00,60); # PARAMETER BLOCK WORD #
03543 M00S03427.acpd +++| ITEM FIN$EI B(01,36,01); # EOI STATUS #
03544 M00S03428.acpd +++| ITEM FIN$EF B(01,37,01); # EOF STATUS #
03545 M00S03429.acpd +++| ITEM FIN$BI B(01,38,01); # BOI STATUS #
03546 M00S03430.acpd +++| END # ARRAY FINFO #
03547 M00S03431.acpd +++|
03548 M00S03432.acpd +++| ARRAY STT [0:0] P(1); # MEMORY ARGUMENT #
03549 M00S03433.acpd +++| BEGIN # ARRAY STT #
03550 M00S03434.acpd +++| ITEM STT$RFL U(00,00,30); # REQUEST FIELD LENGTH #
03551 M00S03435.acpd +++| END # ARRARY STT #
03552 M00S03436.acpd +++|
03553 M00S03437.acpd +++|
03554 M00S03438.acpd +++|
03555 M00S03439.acpd +++|
03556 M00S03440.acpd +++|
03557 M00S03441.acpd +++|
03558 M00S03442.acpd +++|
03559 M00S03443.acpd +++|#
03560 M00S03444.acpd +++|* BEGIN INITLZ PROC.
03561 M00S03445.acpd +++|#
03562 M00S03446.acpd +++|
03563 M00S03447.acpd +++| PAP; # PROCESS *ACPD* PARAMETERS #
03564 M00S03448.acpd +++|
03565 M00S03449.acpd +++|#
03566 M00S03450.acpd +++|* OPEN FILES.
03567 M00S03451.acpd +++|#
03568 M00S03452.acpd +++|
03569 M00S03453.acpd +++| ZSETFET(LOC(FETI),P$FN,LOC(WSAI),WSAL+1,FENL+1);
03570 M00S03454.acpd +++| FIN$FN[0]=P$FN;
03571 M00S03455.acpd +++| FILINFO(FINFO); # CHECK STATUS OF INPUT FILE #
03572 M00S03456.acpd +++| IF (FIN$WD[0] EQ NULL) # NO STATUS #
03573 M00S03457.acpd +++| THEN
03574 M00S03458.acpd +++| BEGIN
03575 M00S03459.acpd +++| PERROR(ERM11,FATAL,P$FN); # DATA FILE NOT FOUND #
03576 M00S03460.acpd +++| END
03577 M00S03461.acpd +++|
03578 M00S03462.acpd +++| IF (FIN$EI[0]) # EOI #
03579 M00S03463.acpd +++| THEN
03580 M00S03464.acpd +++| BEGIN
03581 M00S03465.acpd +++| PERROR(ERM12,FATAL,NULL); # DATA FILE POSITIONED AT EOI #
03582 M00S03466.acpd +++| END
03583 M00S03467.acpd +++|
03584 M00S03468.acpd +++| IF (NOT (FIN$EF[0] OR FIN$BI[0])) # NOT AT EOF NOR BOI #
03585 M00S03469.acpd +++| THEN
03586 M00S03470.acpd +++| BEGIN
03587 M00S03471.acpd +++| PERROR(ERM7,FATAL,NULL);
03588 M00S03472.acpd +++| END
03589 M00S03473.acpd +++|
03590 M00S03474.acpd +++| OFFA=LOC(FETO);
03591 M00S03475.acpd +++| IF (P$L NQ NULL) # REPORT FILE SPECIFIED #
03592 M00S03476.acpd +++| THEN # OPEN REPORT FILE #
03593 M00S03477.acpd +++| BEGIN
03594 M00S03478.acpd +++| RPOPEN(P$L,OFFA,REPTLE);
03595 M00S03479.acpd +++| END
03596 M00S03480.acpd +++|
03597 M00S03481.acpd +++| IF (P$S NQ NULL) # SUMMARY FILE SPECIFIED #
03598 M00S03482.acpd +++| THEN # OPEN SUMMARY FILE #
03599 M00S03483.acpd +++| BEGIN
03600 M00S03484.acpd +++| ZSETFET(LOC(FETS),P$S,LOC(WSAS),WSAL+1,FENL+1);
03601 M00S03485.acpd +++| END
03602 M00S03486.acpd +++|
03603 M00S03487.acpd +++|#
03604 M00S03488.acpd +++|* REQUEST CURRENT FIELD LENGTH.
03605 M00S03489.acpd +++|#
03606 M00S03490.acpd +++|
03607 M00S03491.acpd +++| MEMORY(CM,STT,RECALL,NA);
03608 M00S03492.acpd +++| CRFL=STT$RFL[0]; # CURRENT FIELD LENGTH #
03609 M00S03493.acpd +++| HGAD=CRFL; # HIGHEST ADDRESS #
03610 M00S03494.acpd +++|
03611 M00S03495.acpd +++|#
03612 M00S03496.acpd +++|* CHECK IF *CPD* AND *ACPD* VERSIONS ARE THE SAME.
03613 M00S03497.acpd +++|#
03614 M00S03498.acpd +++|
03615 M00S03499.acpd +++| READRC(STAT); # READ HEADER BLOCK #
03616 M00S03500.acpd +++| IF (STAT NQ EORC) # EOF OR EOI ENCOUNTERED #
03617 M00S03501.acpd +++| THEN
03618 M00S03502.acpd +++| BEGIN
03619 M00S03503.acpd +++| PERROR(ERM5,FATAL,NULL); # DATA FILE EMPTY #
03620 M00S03504.acpd +++| END
03621 M00S03505.acpd +++|
03622 M00S03506.acpd +++| IF (P$VERS NQ WSAI$VS[0]) # *CPD* AND *ACPD* INCOMPATBLE #
03623 M00S03507.acpd +++| THEN
03624 M00S03508.acpd +++| BEGIN
03625 M00S03509.acpd +++| PERROR(ERM13,FATAL,NULL); # CPD/ACPD VERSIONS MISMATCH #
03626 M00S03510.acpd +++| END
03627 M00S03511.acpd +++|
03628 M00S03512.acpd +++|#
03629 M00S03513.acpd +++|* VALIDATE BEGIN AND END TIMES.
03630 M00S03514.acpd +++|* IF NO *BD* SPECIFIED, BEGIN DATE IS THE DATE OF THE
03631 M00S03515.acpd +++|* HEADER RECORD OF THE CURRENT FILE.
03632 M00S03516.acpd +++|* IF NO *ED* SPECIFIED, END DATE IS THE SAME AS BEGIN DATE.
03633 M00S03517.acpd +++|* IF NO *ET*/*ED* SPECIFIED, END DATE IS SET TO MAXIMUM.
03634 M00S03518.acpd +++|#
03635 M00S03519.acpd +++|
03636 M00S03520.acpd +++| P<DCHD>=LOC(DBUF);
03637 M00S03521.acpd +++| P<DDSC>=LOC(DDHD);
03638 M00S03522.acpd +++|
03639 M00S03523.acpd +++| IBWA=0;
03640 M00S03524.acpd +++| DECODE(LOC(HDTR),LOC(DCHD)); # DECODE HEADER BLOCK #
03641 M00S03525.acpd +++| ADJUST; # ADJUST TABLES AND FIELD LENGTH #
03642 M00S03526.acpd +++| HDDC=TRUE; # HEADER BLOCK HAS BEEN DECODED #
03643 M00S03527.acpd +++|
03644 M00S03528.acpd +++| IF (P$BD EQ NULL) # NO BEGINNING DATE #
03645 M00S03529.acpd +++| THEN
03646 M00S03530.acpd +++| BEGIN
Line S03531 Modification History |
M01 (Removed by) | ns2786 |
Seq # *Modification Id* Act
----------------------------+
03647 M01S03531.ns2786 ---| DM=(DTMNUM(DCHD$WD[DDSC$FW[DATE]],TRUE) - Y70C)*SHFC;
Line S00031 Modification History |
M01 (Added by) | ns2786 |
Seq # *Modification Id* Act
----------------------------+
03648 M01S00031.ns2786 +++| DM=DTMNUM(DCHD$WD[DDSC$FW[DATE]],TRUE,TRUE)*SHFC;
03649 M00S03532.acpd +++| END
03650 M00S03533.acpd +++|
03651 M00S03534.acpd +++| ELSE # *BD* SPECIFIED #
03652 M00S03535.acpd +++| BEGIN
Line S03536 Modification History |
M01 (Removed by) | ns2786 |
Seq # *Modification Id* Act
----------------------------+
03653 M01S03536.ns2786 ---| DM=(DTMNUM(P$BD,FALSE) - Y70C)*SHFC;
Line S00032 Modification History |
M01 (Added by) | ns2786 |
Seq # *Modification Id* Act
----------------------------+
03654 M01S00032.ns2786 +++| DM=DTMNUM(P$BD,FALSE,TRUE)*SHFC;
03655 M00S03537.acpd +++| END
03656 M00S03538.acpd +++|
Line S03539 Modification History |
M01 (Removed by) | ns2786 |
Seq # *Modification Id* Act
----------------------------+
03657 M01S03539.ns2786 ---| P$BT=DM + DTMNUM(P$BT,FALSE);
Line S00033 Modification History |
M01 (Added by) | ns2786 |
Seq # *Modification Id* Act
----------------------------+
03658 M01S00033.ns2786 +++| P$BT=DM + DTMNUM(P$BT,FALSE,FALSE);
03659 M00S03540.acpd +++|
03660 M00S03541.acpd +++| IF (P$ED NQ NULL) # END DATE SPECIFIED #
03661 M00S03542.acpd +++| THEN
03662 M00S03543.acpd +++| BEGIN
Line S03544 Modification History |
M01 (Removed by) | ns2786 |
Seq # *Modification Id* Act
----------------------------+
03663 M01S03544.ns2786 ---| P$ET=((DTMNUM(P$ED,FALSE) - Y70C)*SHFC) + DTMNUM(P$ET,FALSE);
Line S00034 Modification History |
M01 (Added by) | ns2786 |
Seq # *Modification Id* Act
----------------------------+
03664 M01S00034.ns2786 +++| P$ET=(DTMNUM(P$ED,FALSE,TRUE)*SHFC) + DTMNUM(P$ET,FALSE,FALSE);
03665 M00S03545.acpd +++| END
03666 M00S03546.acpd +++|
03667 M00S03547.acpd +++| ELSE # NO END DATE #
03668 M00S03548.acpd +++| BEGIN
03669 M00S03549.acpd +++| IF (P$ET NQ NULL) # END TIME SPECIFIED #
03670 M00S03550.acpd +++| THEN
03671 M00S03551.acpd +++| BEGIN
Line S03552 Modification History |
M01 (Removed by) | ns2786 |
Seq # *Modification Id* Act
----------------------------+
03672 M01S03552.ns2786 ---| P$ET=DM + DTMNUM(P$ET,FALSE);
Line S00035 Modification History |
M01 (Added by) | ns2786 |
Seq # *Modification Id* Act
----------------------------+
03673 M01S00035.ns2786 +++| P$ET=DM + DTMNUM(P$ET,FALSE,FALSE);
03674 M00S03553.acpd +++| END
03675 M00S03554.acpd +++|
03676 M00S03555.acpd +++| ELSE # *ET*/*ED* ARE NOT SPECIFIED #
03677 M00S03556.acpd +++| BEGIN
Line S03557 Modification History |
M01 (Removed by) | ns2786 |
Seq # *Modification Id* Act
----------------------------+
03678 M01S03557.ns2786 ---| P$ET=MXDC*SHFC + MXTC; # 99/12/31 23.59.59 #
Line S00036 Modification History |
M01 (Added by) | ns2786 |
Seq # *Modification Id* Act
----------------------------+
03679 M01S00036.ns2786 +++| P$ET=MXDC*SHFC + MXTC; # 33/12/31 23.59.59 #
03680 M00S03558.acpd +++| END
03681 M00S03559.acpd +++|
03682 M00S03560.acpd +++| END
03683 M00S03561.acpd +++|
03684 M00S03562.acpd +++| IF (P$BT GQ P$ET) # BEGIN TIME .GE. END TIME #
03685 M00S03563.acpd +++| THEN
03686 M00S03564.acpd +++| BEGIN
03687 M00S03565.acpd +++| EDTM=TRUE; # ENDING TIME REACHED #
03688 M00S03566.acpd +++| RETURN;
03689 M00S03567.acpd +++| END
03690 M00S03568.acpd +++|
Line S03569 Modification History |
M01 (Removed by) | ns2786 |
Seq # *Modification Id* Act
----------------------------+
03691 M01S03569.ns2786 ---| TM=(DTMNUM(DCHD$WD[DDSC$FW[DATE]],TRUE) - Y70C)*SHFC;
03692 M01S03570.ns2786 ---| TM=TM + DTMNUM(DCHD$WD[DDSC$FW[TIME]],TRUE);
Line S00037 Modification History |
M01 (Added by) | ns2786 |
Seq # *Modification Id* Act
----------------------------+
03693 M01S00037.ns2786 +++| TM=DTMNUM(DCHD$WD[DDSC$FW[DATE]],TRUE,TRUE)*SHFC;
03694 M01S00038.ns2786 +++| TM=TM + DTMNUM(DCHD$WD[DDSC$FW[TIME]],TRUE,FALSE);
03695 M00S03571.acpd +++| IF (P$BT GR TM) # *BT* .GT. TIME OF FIRST
03696 M00S03572.acpd +++| DATA RECORD #
03697 M00S03573.acpd +++| THEN
03698 M00S03574.acpd +++| BEGIN
03699 M00S03575.acpd +++| DTDC=TRUE; # DECODE DATA BLOCK #
03700 M00S03576.acpd +++| END
03701 M00S03577.acpd +++|
03702 M00S03578.acpd +++| ELSE
03703 M00S03579.acpd +++| BEGIN
03704 M00S03580.acpd +++| DTDC=FALSE; # NOT DECODE DATA BLOCK #
03705 M00S03581.acpd +++| END
03706 M00S03582.acpd +++|
03707 M00S03583.acpd +++|#
03708 M00S03584.acpd +++|* COMPUTE BYTE ADDRESSES OF SAMPLE TIMES IN
03709 M00S03585.acpd +++|* INPUT FILE-S WORKING STORAGE AREA.
03710 M00S03586.acpd +++|#
03711 M00S03587.acpd +++|
03712 M00S03588.acpd +++| BA=0;
03713 M00S03589.acpd +++| P<MPAR>=LOC(DATT);
03714 M00S03590.acpd +++| SLOWFOR I=0 STEP 1 WHILE (MPAR$NM[I] NQ CTOC)
03715 M00S03591.acpd +++| DO
03716 M00S03592.acpd +++| BEGIN # COMPUTE SAMPLE TIME BYTE ADDRESS #
03717 M00S03593.acpd +++| IF (MPAR$NM[I] EQ CNIC) # FAST LOOP SAMPLE #
03718 M00S03594.acpd +++| THEN
03719 M00S03595.acpd +++| BEGIN
03720 M00S03596.acpd +++| SPLA$WD[MPAR$TP[I]]=BA;
03721 M00S03597.acpd +++| END
03722 M00S03598.acpd +++|
03723 M00S03599.acpd +++| ELSE
03724 M00S03600.acpd +++| BEGIN
03725 M00S03601.acpd +++| IF (MPAR$NM[I] EQ CTMC) # MEDIUM LOOP SAMPLE #
03726 M00S03602.acpd +++| THEN
03727 M00S03603.acpd +++| BEGIN
03728 M00S03604.acpd +++| SPLA$WD[MPAR$TP[I]]=BA;
03729 M00S03605.acpd +++| END
03730 M00S03606.acpd +++|
03731 M00S03607.acpd +++| END
03732 M00S03608.acpd +++|
03733 M00S03609.acpd +++| BA=MPAR$LN[I]*MPAR$PR[I] + BA;
03734 M00S03610.acpd +++| END # COMPUTE SAMPLE TIME BYTE ADDRESS #
03735 M00S03611.acpd +++|
03736 M00S03612.acpd +++| SPLA$WD[MPAR$TP[I]]=BA; # SLOW LOOP SAMPLE #
03737 M00S03613.acpd +++|
03738 M00S03614.acpd +++| READRC(STAT); # READ FIRST DATA BLOCK #
03739 M00S03615.acpd +++| IF (STAT NQ EORC) # NO DATA BLOCKS #
03740 M00S03616.acpd +++| THEN
03741 M00S03617.acpd +++| BEGIN
03742 M00S03618.acpd +++| PERROR(ERM4,FATAL,NULL); # DATA BLOCKS MISSING #
03743 M00S03619.acpd +++| END
03744 M00S03620.acpd +++|
03745 M00S03621.acpd +++| P<DCDT>=LOC(DBUF[DCHL]);
03746 M00S03622.acpd +++| P<DDSM>=LOC(DBUF[DCHL + DCDC*DCDL*2]);
03747 M00S03623.acpd +++|
03748 M00S03624.acpd +++|#
03749 M00S03625.acpd +++|* POSITION FILE AT CORRECT RECORD.
03750 M00S03626.acpd +++|#
03751 M00S03627.acpd +++|
03752 M00S03628.acpd +++| STAT=0;
03753 M00S03629.acpd +++| IBWA=0;
03754 M00S03630.acpd +++|
03755 M00S03631.acpd +++| SLOWFOR J=0 WHILE (P$BT GR TM) AND (STAT NQ EOIC)
03756 M00S03632.acpd +++| DO
03757 M00S03633.acpd +++| BEGIN # READ FILE #
03758 M00S03634.acpd +++| IF (IBWA GQ IBNW) # INPUT BUFFER EXHAUSTED #
03759 M00S03635.acpd +++| THEN
03760 M00S03636.acpd +++| BEGIN # GET NEXT BUFFER #
03761 M00S03637.acpd +++| READRC(STAT); # READ NEXT RECORD #
03762 M00S03638.acpd +++| IBWA=0;
03763 M00S03639.acpd +++| IF (STAT NQ EORC) # END OF CURRENT FILE #
03764 M00S03640.acpd +++| THEN
03765 M00S03641.acpd +++| BEGIN # CHECK IF EOF OR EOI #
03766 M00S03642.acpd +++| IF (STAT EQ EOFC) # PREVIOUS READ ENCOUNTERED EOF #
03767 M00S03643.acpd +++| THEN
03768 M00S03644.acpd +++| BEGIN # GET NEXT FILE #
03769 M00S03645.acpd +++| READRC(STAT); # READ HEADER BLOCK OF NEXT FILE #
03770 M00S03646.acpd +++| IF (STAT NQ EORC) # NO DATA BLOCKS FOLLOW #
03771 M00S03647.acpd +++| THEN
03772 M00S03648.acpd +++| BEGIN
03773 M00S03649.acpd +++| PERROR(ERM4,FATAL,NULL); # DATA BLOCKS MISSING #
03774 M00S03650.acpd +++| END
03775 M00S03651.acpd +++|
03776 M00S03652.acpd +++| DECODE(LOC(HDTR),LOC(DCHD)); # DECODE HEADER BLOCK #
03777 M00S03653.acpd +++| ADJUST; # ADJUST TABLES AND FIELD LENGTH #
03778 M00S03654.acpd +++| P<DCDT>=LOC(DBUF[DCHL]);
03779 M00S03655.acpd +++| P<DDSM>=LOC(DBUF[DCHL + DCDC*DCDL*2]);
03780 M00S03656.acpd +++| P<DDSC>=LOC(DDHD);
03781 M00S03657.acpd +++|
Line S03658 Modification History |
M01 (Removed by) | ns2786 |
Seq # *Modification Id* Act
----------------------------+
03782 M01S03658.ns2786 ---| D=(DTMNUM(DCHD$WD[DDSC$FW[DATE]],TRUE) - Y70C)*SHFC;
Line S00039 Modification History |
M01 (Added by) | ns2786 |
Seq # *Modification Id* Act
----------------------------+
03783 M01S00039.ns2786 +++| D=DTMNUM(DCHD$WD[DDSC$FW[DATE]],TRUE,TRUE)*SHFC;
03784 M00S03659.acpd +++| # GET DATE ON RECORD #
Line S03660 Modification History |
M01 (Removed by) | ns2786 |
Seq # *Modification Id* Act
----------------------------+
03785 M01S03660.ns2786 ---| T=DTMNUM(DCHD$WD[DDSC$FW[TIME]],TRUE);
Line S00040 Modification History |
M01 (Added by) | ns2786 |
Seq # *Modification Id* Act
----------------------------+
03786 M01S00040.ns2786 +++| T=DTMNUM(DCHD$WD[DDSC$FW[TIME]],TRUE,FALSE);
03787 M00S03661.acpd +++| # GET TIME ON RECORD #
03788 M00S03662.acpd +++| IF (TM GR (D+T)) # PREVIOUS TIME .GT.
03789 M00S03663.acpd +++| CURRENT TIME #
03790 M00S03664.acpd +++| THEN
03791 M00S03665.acpd +++| BEGIN
03792 M00S03666.acpd +++| PERROR(ERM8,FATAL,NULL);
03793 M00S03667.acpd +++| END
03794 M00S03668.acpd +++|
03795 M00S03669.acpd +++| TM=D + T; # SET TO CURRENT TIME #
03796 M00S03670.acpd +++| TEST J; # GO PROCESS DATA BLOCKS #
03797 M00S03671.acpd +++| END # GET NEXT FILE #
03798 M00S03672.acpd +++|
03799 M00S03673.acpd +++| ELSE # PREVIOUS READ ENCOUNTERD *EOI* #
03800 M00S03674.acpd +++| BEGIN
03801 M00S03675.acpd +++| PERROR(ERM3,FATAL,NULL); # BT/BD NOT FOUND #
03802 M00S03676.acpd +++| END
03803 M00S03677.acpd +++|
03804 M00S03678.acpd +++| END # CHECK IF EOF OR EOI #
03805 M00S03679.acpd +++|
03806 M00S03680.acpd +++| END # GET NEXT BUFFER #
03807 M00S03681.acpd +++|
03808 M00S03682.acpd +++| DECODE(LOC(DATT),LOC(DCDT));
03809 M00S03683.acpd +++| P<DDSC>=LOC(DDDT);
03810 M00S03684.acpd +++| TM=DCDT$WD[DDSC$FW[PDTM]]; # GET TIME #
03811 M00S03685.acpd +++|
03812 M00S03686.acpd +++|#
03813 M00S03687.acpd +++|* REINITIALIZE BUFFER OF FIRST COLUMN.
03814 M00S03688.acpd +++|#
03815 M00S03689.acpd +++|
03816 M00S03690.acpd +++| FASTFOR I=0 STEP 1 UNTIL DCDL - 1
03817 M00S03691.acpd +++| DO
03818 M00S03692.acpd +++| BEGIN
03819 M00S03693.acpd +++| DCDT$WD[I]=0;
03820 M00S03694.acpd +++| DCDT$WD[I + DCDL*DCDC]=0;
03821 M00S03695.acpd +++| DDSM$IM[I]=0;
03822 M00S03696.acpd +++| DDSM$IQ[I]=0;
03823 M00S03697.acpd +++| END
03824 M00S03698.acpd +++|
03825 M00S03699.acpd +++| END # READ FILE #
03826 M00S03700.acpd +++|
03827 M00S03701.acpd +++| IF (P$ET LQ TM) # READ PAST ENDING TIME #
03828 M00S03702.acpd +++| THEN
03829 M00S03703.acpd +++| BEGIN
03830 M00S03704.acpd +++| EDTM=TRUE;
03831 M00S03705.acpd +++| END
03832 M00S03706.acpd +++|
03833 M00S03707.acpd +++| RETURN;
03834 M00S03708.acpd +++| END # INITLZ #
03835 M00S03709.acpd +++|
03836 M00S03710.acpd +++| TERM
03837 M00S03711.acpd +++|PROC PERROR((ERCD),(EROR),(ERNM));
03838 M00S03712.acpd +++|# TITLE PERROR - ISSUE ERROR MESSAGE. #
03839 M00S03713.acpd +++|
03840 M00S03714.acpd +++| BEGIN # PERROR #
03841 M00S03715.acpd +++|
03842 M00S03716.acpd +++|#
03843 M00S03717.acpd +++|** PERROR - ISSUE ERROR MESSAGE.
03844 M00S03718.acpd +++|*
03845 M00S03719.acpd +++|* ISSUE ERROR MESSAGE TO THE USER DAYFILE AND ABORT
03846 M00S03720.acpd +++|* THE JOB IF THE ERROR IS FATAL.
03847 M00S03721.acpd +++|*
03848 M00S03722.acpd +++|* PROC PERROR(ERCD,EROR,ERNM)
03849 M00S03723.acpd +++|*
03850 M00S03724.acpd +++|* ENTRY ERCD = ERROR CODE.
03851 M00S03725.acpd +++|* EROR = ERROR LEVEL.
03852 M00S03726.acpd +++|* ERNM = ERROR NAME.
03853 M00S03727.acpd +++|*
03854 M00S03728.acpd +++|* EXIT JOB ABORTED IF *EROR*=FATAL.
03855 M00S03729.acpd +++|* OTHERWISE, RETURN TO CALLING PROGRAM.
03856 M00S03730.acpd +++|*
03857 M00S03731.acpd +++|* MESSAGES
03858 M00S03732.acpd +++|*
03859 M00S03733.acpd +++|* 1. ACPD ARGUMENT ERROR - XX.
03860 M00S03734.acpd +++|* 2. ACPD/CPD VERSIONS MISMATCH.
03861 M00S03735.acpd +++|* 3. BT/BD NOT FOUND.
03862 M00S03736.acpd +++|* 4. DATA BLOCKS MISSING.
03863 M00S03737.acpd +++|* 5. DATA ELEMENT NAME UNDEFINED - XXXX.
03864 M00S03738.acpd +++|* 6. DATA FILE CONTENT ERROR.
03865 M00S03739.acpd +++|* 7. DATA FILE EMPTY.
03866 M00S03740.acpd +++|* 8. DATA FILE NOT AT BEGINNING OF FILE.
03867 M00S03741.acpd +++|* 9. DATA FILE NOT FOUND - XXXXXXX.
03868 M00S03742.acpd +++|* 10. DATA FILE NOT IN CHRONOLOGICAL ORDER.
03869 M00S03743.acpd +++|* 11. DATA FILE POSITIONED AT EOI.
Line S03744 Modification History |
M01 (Removed by) | v23l617 |
Seq # *Modification Id* Act
----------------------------+
03870 M01S03744.v23l617 ---|* 12. IN LESS THAN FILE WRITE TIME.
03871 M01S03745.v23l617 ---|* 13. N EXCEEDS NUMBER OF FILES.
Line S00072 Modification History |
M01 (Added by) | v23l617 |
Seq # *Modification Id* Act
----------------------------+
03872 M01S00072.v23l617 +++|* 12. IN AND IC PARAMETER CONFLICT.
03873 M01S00073.v23l617 +++|* 13. IN LESS THAN FILE WRITE TIME.
03874 M01S00074.v23l617 +++|* 14. N EXCEEDS NUMBER OF FILES.
03875 M00S03746.acpd +++|#
03876 M00S03747.acpd +++|
03877 M00S03748.acpd +++|#
03878 M00S03749.acpd +++|* PARAMETER LIST.
03879 M00S03750.acpd +++|#
03880 M00S03751.acpd +++|
03881 M00S03752.acpd +++| ITEM ERCD I; # ERROR CODE #
03882 M00S03753.acpd +++| ITEM EROR I; # ERROR LEVEL #
03883 M00S03754.acpd +++| ITEM ERNM C(10); # ERROR NAME #
03884 M00S03755.acpd +++|
03885 M00S03756.acpd +++|#
03886 M00S03757.acpd +++|**** PROC PERROR - XREF LIST BEGIN.
03887 M00S03758.acpd +++|#
03888 M00S03759.acpd +++|
03889 M00S03760.acpd +++| XREF
03890 M00S03761.acpd +++| BEGIN
03891 M00S03762.acpd +++| PROC ABORT; # ABORT JOB #
03892 M00S03763.acpd +++| PROC MESSAGE; # ISSUE DAYFILE MESSAGES #
03893 M00S03764.acpd +++| END
03894 M00S03765.acpd +++|
03895 M00S03766.acpd +++|#
03896 M00S03767.acpd +++|**** PROC PERROR - XREF LIST END.
03897 M00S03768.acpd +++|#
03898 M00S03769.acpd +++|
03899 M00S03770.acpd +++| DEF BLKC #" "#; # BLANK #
03900 M00S03771.acpd +++| DEF DOLC #"$"#; # DOLLAR SIGN #
03901 M00S03772.acpd +++| DEF PRDC #"."#; # PERIOD #
03902 M00S03773.acpd +++|
03903 M00S03774.acpd +++| DEF LISTCON #0#; # TURN OFF COMMON DECK LISTING #
03904 M00S03775.acpd +++|
03905 M00S03776.acpd +++|*CALL COMUCPD
03906 M00S03777.acpd +++|
03907 M00S03778.acpd +++|#
03908 M00S03779.acpd +++|* LOCAL VARIABLES.
03909 M00S03780.acpd +++|#
03910 M00S03781.acpd +++|
03911 M00S03782.acpd +++| ITEM J I; # FOR LOOP CONTROL #
03912 M00S03783.acpd +++| ITEM L I; # FOR LOOP CONTROL #
03913 M00S03784.acpd +++|
03914 M00S03785.acpd +++| ARRAY ERMS [1:ERMSC] S(4); # ERROR MESSSAGES #
03915 M00S03786.acpd +++| BEGIN # ARRAY ERMS #
03916 M00S03787.acpd +++| ITEM ER$MS C(00,00,38) = # ERROR MESSAGES #
03917 M00S03788.acpd +++|
03918 M00S03789.acpd +++| [" ACPD ARGUMENT ERROR - $.",
03919 M00S03790.acpd +++| " DATA ELEMENT NAME UNDEFINED - $.",
03920 M00S03791.acpd +++| " BT/BD NOT FOUND.",
03921 M00S03792.acpd +++| " DATA BLOCKS MISSING.",
03922 M00S03793.acpd +++| " DATA FILE EMPTY.",
03923 M00S03794.acpd +++| " DATA FILE CONTENT ERROR.",
03924 M00S03795.acpd +++| " DATA FILE NOT AT BEGINNING OF FILE.",
03925 M00S03796.acpd +++| " DATA FILE NOT IN CHRONOLOGICAL ORDER.",
03926 M00S03797.acpd +++| " N EXCEEDS NUMBER OF FILES.",
03927 M00S03798.acpd +++| " IN LESS THAN FILE WRITE TIME.",
03928 M00S03799.acpd +++| " DATA FILE NOT FOUND - $.",
03929 M00S03800.acpd +++| " DATA FILE POSITIONED AT EOI.",
Line S03801 Modification History |
M01 (Removed by) | v23l617 |
Seq # *Modification Id* Act
----------------------------+
03930 M01S03801.v23l617 ---| " ACPD/CPD VERSIONS MISMATCH."];
Line S00075 Modification History |
M01 (Added by) | v23l617 |
Seq # *Modification Id* Act
----------------------------+
03931 M01S00075.v23l617 +++| " ACPD/CPD VERSIONS MISMATCH.",
03932 M01S00076.v23l617 +++| " IN AND IC PARAMETER CONFLICT."];
03933 M00S03802.acpd +++|
Line S03803 Modification History |
M01 (Removed by) | v23l617 |
Seq # *Modification Id* Act
----------------------------+
03934 M01S03803.v23l617 ---| ITEM ER$ZR C(03,48,02) = [0,0,0,0,0,0,0,0,0,0,0,0,0];
Line S00077 Modification History |
M01 (Added by) | v23l617 |
Seq # *Modification Id* Act
----------------------------+
03935 M01S00077.v23l617 +++| ITEM ER$ZR C(03,48,02) = [0,0,0,0,0,0,0,0,0,0,0,0,0,0];
03936 M00S03804.acpd +++| # ZERO FILLED LAST BYTE #
03937 M00S03805.acpd +++| END # ARRAY ERMS #
03938 M00S03806.acpd +++|
03939 M00S03807.acpd +++|
03940 M00S03808.acpd +++|
03941 M00S03809.acpd +++|
03942 M00S03810.acpd +++|
03943 M00S03811.acpd +++|#
03944 M00S03812.acpd +++|* BEGIN PERROR PROC.
03945 M00S03813.acpd +++|#
03946 M00S03814.acpd +++|
03947 M00S03815.acpd +++| IF (ERNM NQ 0) # NAME SPECIFIED #
03948 M00S03816.acpd +++| THEN
03949 M00S03817.acpd +++| BEGIN # FILL IN ERROR NAME #
03950 M00S03818.acpd +++| SLOWFOR J=2 STEP 1 WHILE (C<J,1>ER$MS[ERCD] NQ DOLC)
03951 M00S03819.acpd +++| DO; # LOOK FOR DOLLAR SIGN #
03952 M00S03820.acpd +++|
03953 M00S03821.acpd +++| SLOWFOR L=0 STEP 1 WHILE (C<L,1>ERNM NQ 0)
03954 M00S03822.acpd +++| AND (C<L,1>ERNM NQ BLKC)
03955 M00S03823.acpd +++| DO
03956 M00S03824.acpd +++| BEGIN
03957 M00S03825.acpd +++| C<J,1>ER$MS[ERCD]=C<L,1>ERNM;
03958 M00S03826.acpd +++| J=J+1;
03959 M00S03827.acpd +++| END
03960 M00S03828.acpd +++|
03961 M00S03829.acpd +++| C<J,1>ER$MS[ERCD]=PRDC;
03962 M00S03830.acpd +++| END # FILL IN ERROR NAME #
03963 M00S03831.acpd +++|
03964 M00S03832.acpd +++| MESSAGE(ER$MS[ERCD],3); # ISSUE ERROR MESSAGE #
03965 M00S03833.acpd +++| IF (EROR NQ FATAL)
03966 M00S03834.acpd +++| THEN
03967 M00S03835.acpd +++| BEGIN
03968 M00S03836.acpd +++| RETURN; # TO CALLING PROGRAM #
03969 M00S03837.acpd +++| END
03970 M00S03838.acpd +++|
03971 M00S03839.acpd +++| ABORT;
03972 M00S03840.acpd +++| END # PERROR #
03973 M00S03841.acpd +++|
03974 M00S03842.acpd +++| TERM
03975 M00S03843.acpd +++|PROC PRDTEL((PVL),(DTY),(TMX));
03976 M00S03844.acpd +++|# TITLE PRDTEL - PRINT ONE LINE OF DATA ELEMENT. #
03977 M00S03845.acpd +++|
03978 M00S03846.acpd +++| BEGIN # PRDTEL #
03979 M00S03847.acpd +++|
03980 M00S03848.acpd +++|#
03981 M00S03849.acpd +++|** PRDTEL - PRINT ONE LINE OF DATA ELEMENT.
03982 M00S03850.acpd +++|*
03983 M00S03851.acpd +++|* PRINT VALUES IN ONE LINE OF ONE DATA ELEMENT.
03984 M00S03852.acpd +++|*
03985 M00S03853.acpd +++|* PROC PRDTEL((PVL),(DTY),(TMX))
03986 M00S03854.acpd +++|*
03987 M00S03855.acpd +++|* ENTRY PVL = POINTER TO VALUES.
03988 M00S03856.acpd +++|* DTY = DATA TYPE.
03989 M00S03857.acpd +++|* TMX = POINTER TO CURRENT TOTAL MAXIMUM AND
03990 M00S03858.acpd +++|* MINIMUM VALUES.
03991 M00S03859.acpd +++|*
03992 M00S03860.acpd +++|* EXIT ONE ROW OF THE DATA ELEMENT-S VALUES ARE PRINTED.
03993 M00S03861.acpd +++|* THE SUBTOTAL IS ALSO PRINTED, ALONG WITH THE
03994 M00S03862.acpd +++|* MAXIMUM AND MIN VALUES OF THAT ROW.
03995 M00S03863.acpd +++|#
03996 M00S03864.acpd +++|
03997 M00S03865.acpd +++|#
03998 M00S03866.acpd +++|* PARAMETER LIST.
03999 M00S03867.acpd +++|#
04000 M00S03868.acpd +++|
04001 M00S03869.acpd +++| ITEM PVL U; # POINTER TO VALUES #
04002 M00S03870.acpd +++| ITEM DTY I; # DATA TYPE #
04003 M00S03871.acpd +++| ITEM TMX U; # POINTER TO TOTAL MAXIMUM VALUE #
04004 M00S03872.acpd +++|
04005 M00S03873.acpd +++|#
04006 M00S03874.acpd +++|**** PROC PRDTEL - XREF LIST BEGIN.
04007 M00S03875.acpd +++|#
04008 M00S03876.acpd +++|
04009 M00S03877.acpd +++| XREF
04010 M00S03878.acpd +++| BEGIN
04011 M00S03879.acpd +++| PROC DETMXM; # DETERMINE MAXIMUM AND MINIMUM #
04012 M00S03880.acpd +++| PROC WRITEV; # WRITE VALUE #
04013 M00S03881.acpd +++| END
04014 M00S03882.acpd +++|
04015 M00S03883.acpd +++|#
04016 M00S03884.acpd +++|**** PROC PRDTEL - XREF LIST END.
04017 M00S03885.acpd +++|#
04018 M00S03886.acpd +++|
04019 M00S03887.acpd +++| DEF LISTCON #0#; # TURN OFF COMMON DECK LISTING #
04020 M00S03888.acpd +++|
04021 M00S03889.acpd +++|*CALL COMUCPD
04022 M00S03890.acpd +++|
04023 M00S03891.acpd +++|#
04024 M00S03892.acpd +++|* LOCAL VARIABLES.
04025 M00S03893.acpd +++|#
04026 M00S03894.acpd +++|
04027 M00S03895.acpd +++| ITEM CL I; # COLUMN #
04028 M00S03896.acpd +++| ITEM CR I; # CARRIAGE CONTROL #
04029 M00S03897.acpd +++| ITEM I I; # FOR LOOP CONTROL #
04030 M00S03898.acpd +++| ITEM IC I; # INCREMENTOR #
04031 M00S03899.acpd +++| ITEM MN I; # MINIMUM INTERVAL #
04032 M00S03900.acpd +++| ITEM MX I; # MAXIMUM INTERVAL #
04033 M00S03901.acpd +++| ITEM X R; # TEMPORARY VARIABLE #
04034 M00S03902.acpd +++|
04035 M00S03903.acpd +++| BASED
04036 M00S03904.acpd +++| ARRAY MXN [0:0] S(2); # TOTAL MAXIMUM/MINIMUM VALUES #
04037 M00S03905.acpd +++| BEGIN # ARRAY MXN #
04038 M00S03906.acpd +++| ITEM MXN$MX R(00,00,60); # TOTAL MAXIMUM VALUE #
04039 M00S03907.acpd +++| ITEM MXN$MN R(01,00,60); # TOTAL MINIMUM VALUE #
04040 M00S03908.acpd +++| END # ARRAY MXN #
04041 M00S03909.acpd +++|
04042 M00S03910.acpd +++| BASED
04043 M00S03911.acpd +++| ARRAY VAL [1:11] P(1); # VALUES TO BE PRINTED #
04044 M00S03912.acpd +++| BEGIN # ARRAY VAL #
04045 M00S03913.acpd +++| ITEM VL$F R(00,00,60); # REAL VALUE #
04046 M00S03914.acpd +++| ITEM VL$N I(00,00,60); # INTEGER VALUE #
04047 M00S03915.acpd +++| END # ARRAY VAL #
04048 M00S03916.acpd +++|
04049 M00S03917.acpd +++|
04050 M00S03918.acpd +++|
04051 M00S03919.acpd +++|
04052 M00S03920.acpd +++|
04053 M00S03921.acpd +++|#
04054 M00S03922.acpd +++|* BEGIN PRDTEL PROC.
04055 M00S03923.acpd +++|#
04056 M00S03924.acpd +++|
04057 M00S03925.acpd +++| IF (NIPP LQ (DCDC-3)) # PRINT TOTAL ON SAME LINE #
04058 M00S03926.acpd +++| THEN # DO NOT LINE FEED #
04059 M00S03927.acpd +++| BEGIN
04060 M00S03928.acpd +++| CR=NLFC;
04061 M00S03929.acpd +++| END
04062 M00S03930.acpd +++|
04063 M00S03931.acpd +++| ELSE
04064 M00S03932.acpd +++| BEGIN
04065 M00S03933.acpd +++| CR=LFDC; # LINE FEED #
04066 M00S03934.acpd +++| END
04067 M00S03935.acpd +++|
04068 M00S03936.acpd +++|#
04069 M00S03937.acpd +++|* DETERMINE MINIMUM AND MAXIMUM INTERVALS.
04070 M00S03938.acpd +++|#
04071 M00S03939.acpd +++|
04072 M00S03940.acpd +++| P<VAL>=PVL;
04073 M00S03941.acpd +++| P<MXN>=TMX;
04074 M00S03942.acpd +++| MX=1;
04075 M00S03943.acpd +++| MN=1;
04076 M00S03944.acpd +++| FASTFOR I=1 STEP 1 UNTIL NIPP
04077 M00S03945.acpd +++| DO
04078 M00S03946.acpd +++| BEGIN # FIND MAXIMUM AND MINIMUM COLUMNS #
04079 M00S03947.acpd +++| IF (VL$F[I] GR VL$F[MX])
04080 M00S03948.acpd +++| THEN
04081 M00S03949.acpd +++| BEGIN
04082 M00S03950.acpd +++| MX=I; # CURRENT MAXIMUM POSITION #
04083 M00S03951.acpd +++| END
04084 M00S03952.acpd +++|
04085 M00S03953.acpd +++| IF (VL$F[I] LS VL$F[MN])
04086 M00S03954.acpd +++| THEN
04087 M00S03955.acpd +++| BEGIN
04088 M00S03956.acpd +++| MN=I; # CURRENT MINIMUM POSITION #
04089 M00S03957.acpd +++| END
04090 M00S03958.acpd +++|
04091 M00S03959.acpd +++| END # FIND MAXIMUM AND MINIMUM COLUMNS #
04092 M00S03960.acpd +++|
04093 M00S03961.acpd +++|#
04094 M00S03962.acpd +++|* UPDATE CURRENT VALUES OF TOTAL MAXIMUM AND MINIMUM.
04095 M00S03963.acpd +++|#
04096 M00S03964.acpd +++|
04097 M00S03965.acpd +++| IF (VL$F[MX] GR MXN$MX[0]) # INTERVAL MAXIMUM .GT.
04098 M00S03966.acpd +++| TOTAL MAXIMUM #
04099 M00S03967.acpd +++| THEN
04100 M00S03968.acpd +++| BEGIN
04101 M00S03969.acpd +++| MXN$MX[0]=VL$F[MX]; # UPDATE TOTAL MAXIMUM #
04102 M00S03970.acpd +++| END
04103 M00S03971.acpd +++|
04104 M00S03972.acpd +++| IF (VL$F[MN] LS MXN$MN[0]) # INTERVAL MINIMUM .LT.
04105 M00S03973.acpd +++| TOTAL MINIMUM #
04106 M00S03974.acpd +++| THEN
04107 M00S03975.acpd +++| BEGIN
04108 M00S03976.acpd +++| MXN$MN[0]=VL$F[MN]; # UPDATE TOTAL MINIMUM #
04109 M00S03977.acpd +++| END
04110 M00S03978.acpd +++|
04111 M00S03979.acpd +++| IF (DTY NQ FLPC) # NOT FLOATING POINT #
04112 M00S03980.acpd +++| THEN # CONVERT VALUES TO INTEGER #
04113 M00S03981.acpd +++| BEGIN
04114 M00S03982.acpd +++| FASTFOR I=1 STEP 1 UNTIL NIPP+1
04115 M00S03983.acpd +++| DO
04116 M00S03984.acpd +++| BEGIN
04117 M00S03985.acpd +++| X=VL$F[I];
04118 M00S03986.acpd +++| VL$N[I]=X;
04119 M00S03987.acpd +++| END
04120 M00S03988.acpd +++|
04121 M00S03989.acpd +++| END
04122 M00S03990.acpd +++|
04123 M00S03991.acpd +++|#
04124 M00S03992.acpd +++|* NOW PRINT THE VALUES IN ONE LINE STARTING FROM
04125 M00S03993.acpd +++|* COLUMN *BCLC*.
04126 M00S03994.acpd +++|#
04127 M00S03995.acpd +++|
04128 M00S03996.acpd +++| CL=BCLC;
04129 M00S03997.acpd +++| FASTFOR I=1 STEP 1 UNTIL NIPP
04130 M00S03998.acpd +++| DO
04131 M00S03999.acpd +++| BEGIN
04132 M00S04000.acpd +++| WRITEV(VL$F[I],DTY,CL,10,NLFC);
04133 M00S04001.acpd +++| CL=CL+10;
04134 M00S04002.acpd +++| END
04135 M00S04003.acpd +++|
04136 M00S04004.acpd +++|#
04137 M00S04005.acpd +++|* INDICATE MINIMUM AND MAXIMUM INTERVAL VALUES BY ENCLOSING
04138 M00S04006.acpd +++|* THEM IN PARENTHESES AND BRACKETS, RESPECTIVELY.
04139 M00S04007.acpd +++|#
04140 M00S04008.acpd +++|
04141 M00S04009.acpd +++| IF (MX NQ MN)
04142 M00S04010.acpd +++| THEN
04143 M00S04011.acpd +++| BEGIN
04144 M00S04012.acpd +++| DETMXM(VL$F[MX],VL$F[MN],MX,MN,DTY);
04145 M00S04013.acpd +++| END
04146 M00S04014.acpd +++|
04147 M00S04015.acpd +++| IF (TCOL GR (DCDC-3))
04148 M00S04016.acpd +++| THEN
04149 M00S04017.acpd +++| BEGIN
04150 M00S04018.acpd +++| WRITEV(VL$F[NIPP+1],DTY,CL+1,9,CR); # WRITE SUBTOTAL #
04151 M00S04019.acpd +++| END
04152 M00S04020.acpd +++|
04153 M00S04021.acpd +++| RETURN;
04154 M00S04022.acpd +++| END # PRDTEL #
04155 M00S04023.acpd +++|
04156 M00S04024.acpd +++| TERM
04157 M00S04025.acpd +++|PROC PUTBLK((NSF),(FWA),(LWA));
04158 M00S04026.acpd +++|# TITLE PUTBLK - PRINT ELEMENTS OF ONE LOOP OF DATA BLOCK. #
04159 M00S04027.acpd +++|
04160 M00S04028.acpd +++| BEGIN # PUTBLK #
04161 M00S04029.acpd +++|
04162 M00S04030.acpd +++|#
04163 M00S04031.acpd +++|** PUTBLK - PRINT ELEMENTS OF ONE LOOP OF DATA BLOCK.
04164 M00S04032.acpd +++|*
04165 M00S04033.acpd +++|* PUTBLK IS THE DRIVER IN PRINTING THE DATA BLOCK ELMENTS
04166 M00S04034.acpd +++|* (FAST LOOP, MEDIUM LOOP, SLOW LOOP).
04167 M00S04035.acpd +++|*
04168 M00S04036.acpd +++|* PROC PUTBLK((NSF),(FWA),(LWA))
04169 M00S04037.acpd +++|*
04170 M00S04038.acpd +++|* ENTRY NSF = NUMBER OF RECORDS PER INTERVAL.
04171 M00S04039.acpd +++|* FWA = FIRST WORD ADDRESS OF LOOP IN TABLE *DSPT*.
04172 M00S04040.acpd +++|* LWA = LAST WORD ADDRESS OF LOOP IN TABLE *DSPT*.
04173 M00S04041.acpd +++|*
04174 M00S04042.acpd +++|* EXIT DATA ELEMENTS OF ONE LOOP ARE PRINTED BY THE
04175 M00S04043.acpd +++|* ORDER SPECIFIED IN TABLE *DSPT*.
04176 M00S04044.acpd +++|#
04177 M00S04045.acpd +++|
04178 M00S04046.acpd +++|#
04179 M00S04047.acpd +++|* PARAMETER LIST.
04180 M00S04048.acpd +++|#
04181 M00S04049.acpd +++|
04182 M00S04050.acpd +++| ITEM NSF I; # NUMBER OF RECORDS PER INTERVAL #
04183 M00S04051.acpd +++| ITEM FWA I; # *FWA* OF BLOCK IN *DSPT* TABLE #
04184 M00S04052.acpd +++| ITEM LWA I; # *LWA* OF BLOCK IN *DSPT* TABLE #
04185 M00S04053.acpd +++|
04186 M00S04054.acpd +++|#
04187 M00S04055.acpd +++|**** PROC PUTBLK - XREF LIST BEGIN.