CTITLESAHCSC _ PERFORM OPTIONAL FIRST-TRACE SCALING FOR PROCESS AVEL. C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** C@PROCESS VECTOR(LEVEL(2) REPORT(XLIST)) C CA AUTHOR H. W. SWAN CA DESIGNER H. W. SWAN CA SYSTEM IBM/CRAY CA LANGUAGE VS FORTRAN VERSION 2.2 CA WRITTEN 12-03-87 CA LAST REVISED 07-13-88 C C REVISED 07-13-88 HWS INITIALIZED SUM TO 0. C REVISED 05-23-91 JJC CHANGED IMPLICIT NONE TO (A-Z). C REVISED 12-17-91 JJC MODIFIED TO MEET SPARC STANDARDS C CA CA CALLING SEQUENCE: CA CALL HCSCL(TRIN, NSIN, IFLV, SCALE, IFRST) CA CA IN/OUT ARGUMENT TYPE DESCRIPTION CA ______ ________ ____ ___________ CA CA IN TRIN (R4) THE INPUT TRACE CA IN NSIN I4 THE NUMBER OF SAMPLES IN THE INPUT TRACE CA IN IFLV I4 THE INDEX OF THE FIRST LIVE VALUE CA IN/OUT SCALE R4 THE SCALE FACTOR TO APPLY TO THE TRACE CA IN/OUT IFRST I4 A FLAG DENOTING WHETHER THIS IS THE CA FIRST TRACE CA CA CA CA PURPOSE: CA CA IF IFRST .EQ. 0, THIS SUBROUTINE SCALES THE TRACE TO HAVE CA A UNITY R.M.S. VALUE. IT THEN SETS IFRST = 1 FOR THE NEXT PASS, CA AND RETURNS THE SCALE FACTOR IT USED IN SCALE. OTHERWISE, CA IT SCALES THE TRACE, BASED UPON THE SAME SCALE FACTOR PASSED CA IN SCALE. CA CA CA SUBROUTINES CALLED: NONE CA CA SUBROUTINE SAHCSC(TRIN, NSIN, IFLV, SCALE, IFRST) C CJJ IMPLICIT NONE IMPLICIT INTEGER (A-Z) C INTEGER NSIN, IFLV, IFRST, I REAL TRIN, SCALE DIMENSION TRIN(NSIN) DOUBLE PRECISION SUM IF(IFRST .EQ. 0) THEN IF(IFLV .GE. NSIN) RETURN SUM = 0.0 DO 100 I=IFLV, NSIN SUM = SUM + TRIN(I)**2 100 CONTINUE SCALE = 1.0 / DSQRT(SUM) C WRITE (*,*) ' SCALE = ', SCALE IFRST = 1 ENDIF DO 200 I=IFLV, NSIN 200 TRIN(I) = TRIN(I) * SCALE RETURN END