CTITLESARARS -- MEAN COMPUTATION OR MAXIMUM ABSOLUTE VALUE 00010000 C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CA AUTHOR W. J. BROWN 00020000 CA DESIGNER W. J. BROWN 00030000 CA LANGUAGE S/370 FORTRAN H 00040000 CA SYSTEM IBM AND CRAY 00050000 CA WRITTEN 01-15-75 00060000 C REVISED 06-18-85 DCB. CONVERTED CODE TO A SINGLE 00070000 C SOURCE FOR EXECUTION ON BOTH THE 00080000 C IBM AND CRAY SYSTEMS. 00090000 C REVISED 11-13-89 RDK. CRAY CFT77 COMPATIBILITY. 00100000 C REVISED 12-10-90 ESN. COPIED FROM SARAMS TO OUTPUT PERCENT OF 00110000 C WINDOW LIVE. 00120000 CA 00130000 CA 00140000 CA CALL SARARS (INTR, TYPE, RLENG, SAMPR, WSTART, WEND, VAL, PCLIV) 00150000 CA INPUT INTR = INPUT TRACE R4 00160000 CA INPUT TYPE = INPUT FOR TYPE OF COMPUTATION A4 00170000 CA INPUT RLENG = TRACE LENGTH (MS) I4 00180000 CA INPUT SAMPR = SAMPLE INTERVAL (MS) I4 00190000 CA INPUT WSTART= WINDOW START (MS) I4 00200000 CA INPUT WEND = WINDOW END (MS) I4 00210000 CA OUTPUT VAL = COMPUTED VALUE THAT'S RETURNED R4 00220000 CA OUTPUT PCLIV= PERCENT OF WINDOW LIVE R4 00230000 CA 00240000 CA 00250000 CA THE FUNCTION OF 'SARARS' IS TO COMPUTE ONE OF THE 00260000 CA FOLLOWING THREE VALUES FOR A TIME WINDOW: 00270000 CA 00280000 CA MAXIMUM ABSOLUTE VALUE TYPE = ' MAX' 00290000 CA MEAN OF ABSOLUTE VALUE TYPE = ' ABS' 00300000 CA ROOT MEAN SQUARE TYPE = ' RMS' 00310000 CA 00320000 CA ZERO SAMPLE VALUES ARE NOT INCLUDED IN THE AVERAGES 00330000 CA FOR TYPES ' ABS' AND ' RMS'. ZERO SAMPLE VALUES ARE 00340000 CA ASSUMED TO BE IN A MUTE ZONE. 00350000 CA 00360000 CA SDRAMS USES THE VARIABLE VAL TO COMPUTE A SCALE FACTOR. 00370000 CA 00380000 CA OPERATIONS APPLIED ARE: 00390000 CA 00400000 CA 1. FIRST FIND THE NUMBER OF LIVE SAMPLES IN THE 00410000 CA WINDOW , IF THERE ARE NO LIVE SAMPLES RETURN 00420000 CA WITH THE VARIABLE 'VAL' SET TO ZERO. 00430000 CA 00440000 CA 2. VAL IS COMPUTED BY THE METHOD SPECIFIED BY TYPE: 00450000 CA A. TYPE ' MAX'. THE MAXIMUM ABSOLUTE VALUE IN 00460000 CA THE SPECIFIED WINDOW. 00470000 CA B. TYPE ' ABS'. THE MEAN OF THE NON-ZERO ABSOLUTE 00480000 CA VALUES. 00490000 CA C. TYPE ' RMS'. THE ROOT MEAN SQUARE OF NON-ZERO 00500000 CA SAMPLE VALUES. 00510000 CA 00520000 C EJECT 00530000 C 00540000 C LOCAL OR INTERNAL ARRAYS. 00550000 C 00560000 C INTR ( 1) = INPUT TRACE AREA R4 00570000 C 00580000 C LOCAL OR INTERNAL VARIABLES AND CONSTANTS. 00590000 C 00600000 C MAX = TYPE MAXIMUM VALUE I4 00610000 C ABS = TYPE ABSOLUTE VALUE MEAN I4 00620000 C RMS = TYPE ROOT MEAN SQUARE I4 00630000 C VAL = VALUE COMPUTED BY ONE OF THE ABOVE TYPES R4 00640000 C ARV = MEASURE OF THE WINDOWS POWER OR MAX VALUE R4 00650000 C SUM = SUM OF THE ABSOLUTE OR SQARES OF VALUES IN WINDOW R4 00660000 C AMAX = MAXIMUM VALUE IN WINDOW R4 00670000 C TYPE = TYPE OF COMPUTATION I4 00680000 C NOSAMP = NUMBER OF SAMPLES I4 00690000 C WS = WINDOW START I4 00700000 C WL = WINDOW LENGTH I4 00710000 C WE = WINDOW END I4 00720000 C IKT = COUNT OF THE NUMBER OF LIVE VALUES I4 00730000 C 00740000 C EJECT 00750000 C 00760000 SUBROUTINE SARARS(INTR,TYPE,RLENG,SAMPR,WSTART,WEND,VAL,PCLIV) 00770000 C 00780000 IMPLICIT INTEGER (A-Z) 00790000 C 00800000 REAL AMAX 00810000 REAL ARV 00820000 REAL INTR (1) 00830000 REAL PCLIV 00840000 REAL SUM 00850000 REAL VAL 00860000 C 00870000 INTEGER MAX 00880000 INTEGER EABS 00890000 INTEGER RMS 00900000 C 00910000 DATA MAX /' MAX'/ 00920000 DATA EABS /' ABS'/ 00930000 DATA RMS /' RMS'/ 00940000 C 00950000 IF (1.EQ.2) CALL S1ATP 00960000 C 00970000 NOSAMP = RLENG / SAMPR 00980000 WS = WSTART / SAMPR + 1 00990000 WE = WEND / SAMPR + 1 01000000 IF ( WE .GT. NOSAMP ) WE = NOSAMP 01010000 WL = WE - WS + 1 01020000 C 01030000 C FIND THE NUMBER OF LIVE VALUES IN THE WINDOW 01040000 C 01050000 VAL = 0. 01060000 IKT = 0 01070000 C 01080000 DO 10 01090000 * I = WS , WE 01100000 IF ( INTR (I) .NE. 0. ) IKT = IKT + 1 01110000 C 01120000 10 CONTINUE 01130000 C 01140000 IF (WL .GT. 0) THEN 01150001 PCLIV = 100.0*IKT / WL 01160001 ELSE 01170001 PCLIV = 0.0 01180001 ENDIF 01190001 C 01200000 C RETURN IF THERE ARE NO LIVE 01210000 C VALUES IN THE WINDOW. 01220000 C 01230000 IF ( IKT .EQ. 0 ) GO TO 60 01240000 C 01250000 C CHECK FOR SCALING TYPE 01260000 C 01270000 IF ( TYPE .EQ. MAX ) GO TO 20 01280000 IF ( TYPE .EQ. EABS ) GO TO 40 01290000 IF ( TYPE .EQ. RMS ) GO TO 50 01300000 C 01310000 C FIND THE MAXIMUM VALUE FOR SCALING 01320000 C 01330000 20 AMAX = 0 01340000 C 01350000 DO 30 01360000 * I = WS , WE 01370000 IF ( ABS (INTR(I)) .GT. AMAX ) AMAX = ABS (INTR(I)) 01380000 C 01390000 30 CONTINUE 01400000 C 01410000 VAL = AMAX 01420000 GO TO 60 01430000 C 01440000 C FIND THE ABSOLUTE VALUE MEAN FOR SCALING 01450000 C 01460000 40 CONTINUE 01470000 CALL ARSMFA ( INTR(WS) , WL , SUM ) 01480000 VAL = SUM / IKT 01490000 GO TO 60 01500000 C 01510000 C FIND THE ROOT MEAN SQUARE FOR SCALING 01520000 C 01530000 50 CONTINUE 01540000 CALL ARSMFS ( INTR (WS) , WL , SUM ) 01550000 ARV = SUM / IKT 01560000 VAL = SQRT (ARV) 01570000 C 01580000 C RETURN CODE 01590000 C 01600000 60 CONTINUE 01610000 C 01620000 RETURN 01630000 END 01640000