CTITLESARAMS -- MEAN COMPUTATION OR MAXIMUM ABSOLUTE VALUE 00000100 C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CA AUTHOR W. J. BROWN 00000200 CA DESIGNER W. J. BROWN 00000300 CA LANGUAGE S/370 FORTRAN H 00000400 CA SYSTEM IBM AND CRAY 00000500 CA WRITTEN 01-15-75 00000600 C REVISED 06-18-85 DCB. CONVERTED CODE TO A SINGLE 00000700 C SOURCE FOR EXECUTION ON BOTH THE 00000800 C IBM AND CRAY SYSTEMS. 00000900 C REVISED 11-13-89 RDK. CRAY CFT77 COMPATIBILITY. 00001002 C REVISED MO-DA-YR 00001100 CA 00001200 CA 00001300 CA CALL SARAMS (INTR, TYPE, RLENG, SAMPR, WSTART, WEND, VAL) 00001400 CA INPUT INTR = INPUT TRACE R4 00001500 CA INPUT TYPE = INPUT FOR TYPE OF COMPUTATION A4 00001600 CA INPUT RLENG = TRACE LENGTH (MS) I4 00001700 CA INPUT SAMPR = SAMPLE INTERVAL (MS) I4 00001800 CA INPUT WSTART= WINDOW START (MS) I4 00001900 CA INPUT WEND = WINDOW END (MS) I4 00002000 CA OUTPUT VAL = COMPUTED VALUE THAT'S RETURNED R4 00002100 CA 00002200 CA 00002300 CA THE FUNCTION OF 'SARAMS' IS TO COMPUTE ONE OF THE 00002400 CA FOLLOWING THREE VALUES FOR A TIME WINDOW: 00002500 CA 00002600 CA MAXIMUM ABSOLUTE VALUE TYPE = ' MAX' 00002700 CA MEAN OF ABSOLUTE VALUE TYPE = ' ABS' 00002800 CA ROOT MEAN SQUARE TYPE = ' RMS' 00002900 CA 00003000 CA ZERO SAMPLE VALUES ARE NOT INCLUDED IN THE AVERAGES 00003100 CA FOR TYPES ' ABS' AND ' RMS'. ZERO SAMPLE VALUES ARE 00003200 CA ASSUMED TO BE IN A MUTE ZONE. 00003300 CA 00003400 CA SDRAMS USES THE VARIABLE VAL TO COMPUTE A SCALE FACTOR. 00003500 CA 00003600 CA OPERATIONS APPLIED ARE: 00003700 CA 00003800 CA 1. FIRST FIND THE NUMBER OF LIVE SAMPLES IN THE 00003900 CA WINDOW , IF THERE ARE NO LIVE SAMPLES RETURN 00004000 CA WITH THE VARIABLE 'VAL' SET TO ZERO. 00004100 CA 00004200 CA 2. VAL IS COMPUTED BY THE METHOD SPECIFIED BY TYPE: 00004300 CA A. TYPE ' MAX'. THE MAXIMUM ABSOLUTE VALUE IN 00004400 CA THE SPECIFIED WINDOW. 00004500 CA B. TYPE ' ABS'. THE MEAN OF THE NON-ZERO ABSOLUTE 00004600 CA VALUES. 00004700 CA C. TYPE ' RMS'. THE ROOT MEAN SQUARE OF NON-ZERO 00004800 CA SAMPLE VALUES. 00004900 CA 00005000 C EJECT 00005100 C 00005200 C LOCAL OR INTERNAL ARRAYS. 00005300 C 00005400 C INTR ( 1) = INPUT TRACE AREA R4 00005500 C 00005600 C LOCAL OR INTERNAL VARIABLES AND CONSTANTS. 00005700 C 00005800 C MAX = TYPE MAXIMUM VALUE I4 00005900 C ABS = TYPE ABSOLUTE VALUE MEAN I4 00006000 C RMS = TYPE ROOT MEAN SQUARE I4 00006100 C VAL = VALUE COMPUTED BY ONE OF THE ABOVE TYPES R4 00006200 C ARV = MEASURE OF THE WINDOWS POWER OR MAX VALUE R4 00006300 C SUM = SUM OF THE ABSOLUTE OR SQARES OF VALUES IN WINDOW R4 00006400 C AMAX = MAXIMUM VALUE IN WINDOW R4 00006500 C TYPE = TYPE OF COMPUTATION I4 00006600 C NOSAMP = NUMBER OF SAMPLES I4 00006700 C WS = WINDOW START I4 00006800 C WL = WINDOW LENGTH I4 00006900 C WE = WINDOW END I4 00007000 C IKT = COUNT OF THE NUMBER OF LIVE VALUES I4 00007100 C 00007200 C EJECT 00007300 C 00007400 SUBROUTINE SARAMS(INTR,TYPE,RLENG,SAMPR,WSTART,WEND,VAL) 00007500 C 00007600 C 00007700 IMPLICIT INTEGER (A-Z) 00007800 C EXTERNAL S1ATP 00007901 REAL INTR (1) 00008000 REAL ARV 00008100 REAL SUM 00008200 REAL VAL 00008300 REAL AMAX 00008400 INTEGER MAX 00008500 INTEGER EABS 00008600 INTEGER RMS 00008700 C 00008800 DATA MAX /' MAX'/ 00008900 DATA EABS /' ABS'/ 00009000 DATA RMS /' RMS'/ 00009100 C 00009200 IF (1.EQ.2) CALL S1ATP 00009301 C 00009401 NOSAMP = RLENG / SAMPR 00009500 WS = WSTART / SAMPR + 1 00009600 WE = WEND / SAMPR + 1 00009700 IF ( WE .GT. NOSAMP ) WE = NOSAMP 00009800 WL = WE - WS + 1 00009900 C 00010000 C FIND THE NUMBER OF LIVE VALUES IN THE WINDOW 00010100 C 00010200 VAL = 0. 00010300 IKT = 0 00010400 C 00010500 DO 10 00010600 * I = WS , WE 00010700 IF ( INTR (I) .NE. 0. ) IKT = IKT + 1 00010800 C 00010900 10 CONTINUE 00011000 C 00011100 C RETURN IF THERE ARE NO LIVE 00011200 C VALUES IN THE WINDOW. 00011300 C 00011400 IF ( IKT .EQ. 0 ) GO TO 60 00011500 C 00011600 C CHECK FOR SCALING TYPE 00011700 C 00011800 IF ( TYPE .EQ. MAX ) GO TO 20 00011900 IF ( TYPE .EQ. EABS ) GO TO 40 00012000 IF ( TYPE .EQ. RMS ) GO TO 50 00012100 C 00012200 C FIND THE MAXIMUM VALUE FOR SCALING 00012300 C 00012400 20 AMAX = 0 00012500 C 00012600 DO 30 00012700 * I = WS , WE 00012800 IF ( ABS (INTR(I)) .GT. AMAX ) AMAX = ABS (INTR(I)) 00012900 C 00013000 30 CONTINUE 00013100 C 00013200 VAL = AMAX 00013300 GO TO 60 00013400 C 00013500 C FIND THE ABSOLUTE VALUE MEAN FOR SCALING 00013600 C 00013700 40 CONTINUE 00013800 CALL ARSMFA ( INTR(WS) , WL , SUM ) 00013900 VAL = SUM / IKT 00014000 GO TO 60 00014100 C 00014200 C FIND THE ROOT MEAN SQUARE FOR SCALING 00014300 C 00014400 50 CONTINUE 00014500 CALL ARSMFS ( INTR (WS) , WL , SUM ) 00014600 ARV = SUM / IKT 00014700 VAL = SQRT (ARV) 00014800 C 00014900 C RETURN CODE 00015000 C 00015100 60 CONTINUE 00015200 C 00015300 RETURN 00015400 END 00015500