CTITLESAVFFK -- COMPUTE INSTANTANEOUS AMPLITUDE C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CA AUTHOR BRUCE VER WEST CA DESIGNER BRUCE VER WEST CA LANGUAGE FORTRAN 77 CA SYSTEM CRAY / IBM CA WRITTEN 07/01/87 C REVISED MM-DD-YY 00070009 CA 00080009 CA THE PURPOSE OF THIS SUBROUTINE IS TO COMPUTE THE INSTANTANEOUS 00080009 CA AMPLITUDE OF THE SEMBLENCE TRACE IN THE PROCESS VFFK. 00080009 CA 00080009 CA 00080009 CA SUBROUTINE SAVFFK(OTR,A,MAG,NT,NW,NWD2,NWD21,IPR,IABORT) 00080009 CA 00080009 CA ARGUMENTS: 00080009 CA 00080009 CA OTR INPUT/ REAL ARRARY CONTAINING THE INSTAN- 00080009 CA OUTPUT TANEOUS AMPLITUDE 00080009 CA 00080009 CA A OUTPUT COMPLEX ARRAY USED IN COMPUTING 00080009 CA THE FFT 00080009 CA 00080009 CA MAG INPUT THE POWER OF TWO LENGTH FOR THE 00080009 CA FFT ROUTINE S2FFT2 00080009 CA 00080009 CA NT INPUT THE NUMBER OF TRACE SAMPLES 00080009 CA 00080009 CA NW INPUT THE NUMBER OF FREQUENCIES RESULTING 00080009 CA FROM THE FFT INCLUDING POSITIVE AND 00080009 CA NEGATIVE VALUES 00080009 CA 00080009 CA NWD2 INPUT THE NUMBER OF NON-NEGATIVE FREQUENCIES00080009 CA 00080009 CA NWD21 INPUT THE INDEX POSITIVE OF THE NYQUIST FRE-00080009 CA QUENCY 00080009 CA 00080009 CA IPR INPUT SPARC LOGICAL UNIT NUMBER FOR PRINT 00080009 CA 00080009 CA IABORT OUTPUT FLAG WHICH IF SET TO YES WILL ABORT 00080009 CA THE PROCESS UPON EXIT FROM THE SUB- 00080009 CA ROUTINE 00080009 CA 00080009 C*********************************************************************** SUBROUTINE SAVFFK(OTR,A,MAG,NT,NW,NWD2,NWD21,IPR,IABORT) DIMENSION OTR(*) COMPLEX A(*) INTEGER YES,NO DATA YES /0/ DATA NO /1/ C DO 10 IW=1,NW 10 A(IW)=0. CALL SCOPY(NT,OTR,1,A,2) C C CALL CFFT2(0,+1,NW,A,WORKT,A) CALL S2FFT2(MAG,A, *999) C DO 100 IW=NWD21,NW 100 A(IW)=0. CALL CSSCAL(NWD2,2.,A(2),1) C C CALL CFFT2(0,-1,NW,A,WORKT,A) CALL S2FFI2(MAG,A, *999) DO 200 IT=1,NT 200 OTR(IT)=SQRT(REAL(A(IT))**2+AIMAG(A(IT))**2) C 200 OTR(IT)=SQRT(REAL(A(IT))**2+AIMAG(A(IT))**2)/FLOAT(NW) C GO TO 300 999 IABORT = YES WRITE (IPR,998) 998 FORMAT(' ***** FFT TABLE LENGTH EXCEEDED IN S2FFT2 *****') 300 RETURN END