CTITLEMTAPRX -- APPLYING TAPER TO A DATA ARRAY 00000100 C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CA AUTHOR S. H. BICKEL 00000300 CA DESIGNER S. H. BICKEL 00000400 CA LANGUAGE FORTRAN 00000500 CA SYSTEM IBM AND CRAY 00000600 CA WRITTEN 00000700 CA REVISED 00000800 CA 00000900 CA 00001000 CA CALL MTAPRX (LX, X, NF, NB) 00001100 CA 00001200 CA LX -LENGTH OF INPUT DATA ARRAY 00003300 CA X -INPUT DATA ARRAY 00003400 CA NF -NUMBER OF POINTS TO BE INCLUDED IN THE FRONT TAPER 00003500 CA NB -NUMBER OF POINTS TO BE INCLUDED IN THE BACK TAPER 00003600 CA 00003700 CA REMARKS 00003800 CA CALL MTAPRX(LX,X,LX/2,LX/2) WILL PROVIDE A HANNING TAPER 00003900 CA CALL MTAPRX(LX,X,-1,-1) WILL PROVIDE A HANNING TAPER 00004000 CA CALL TAPERC(LY,Y,NF,NB) WILL TAPER A COMPLEX ARRAY 'Y' 00004100 C 00004110 SUBROUTINE MTAPRX (LX, X, N, M) 00004200 COMPLEX Y(1) 00004300 REAL X(1) 00004400 NF=N 00004500 NB=M 00004600 IF(N .EQ. -1) NF=LX/2 00004700 IF(M .EQ. -1) NB=LX/2 00004800 IF(NF .LT. 1) GO TO 10 00004900 DT=3.1415926/2./(NF+1) 00005000 DO 1 I=1,NF 00005100 1 X(I)=X(I)*SIN(I*DT)**2 00005200 10 IF(NB .LT. 1) RETURN 00005300 L1=LX+1-NB 00005400 DT=3.1415926/2./(NB+1) 00005500 DO 2 I=L1,LX 00005600 2 X(I)=X(I)*SIN((LX+1-I)*DT)**2 00005700 RETURN 00005800 ENTRY TAPERC(LX,Y,N,M) 00005900 NF=N 00006000 NB=M 00006100 IF(N .EQ. -1) NF=LX/2 00006200 IF(M .EQ. -1) NB=LX/2 00006300 IF(NF .LT. 1) GO TO 20 00006400 DT=3.1415926/2./(NF+1) 00006500 DO 3 I=1,NF 00006600 3 Y(I)=Y(I)*SIN(I*DT)**2 00006700 20 IF(NB .LT. 1) RETURN 00006800 L1=LX+1-NB 00006900 DT=3.1415926/2./(NB+1) 00007000 DO 4 I=L1,LX 00007100 4 Y(I)=Y(I)*SIN((LX+1-I)*DT)**2 00007200 RETURN 00007300 END 00009300