CTITLESAFAN2 -- F-K SPECTRAL SHAPING APPLICATION ROUTINE 00010000 C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CA 00020000 CA AUTHOR R. D. KNIGHT 00030000 CA DESIGNER R. D. KNIGHT 00040000 CA LANGUAGE FORTRAN 00050000 CA SYSTEM IBM AND CRAY 00060000 CA DATE WRITTEN 1981 00070000 C REVISED 11-25-86 ESN. FOR CONVERSION TO THE CRAY. 00080000 C REVISED 11-13-89 RDK. FOR CRAY CFT77 COMPATIBILITY. 00081002 CA 00090000 CA 00100000 CA CALL SAFAN2 ( X, NX, NY, X0, DX, Y0, DY, S, N ) 00110000 CA 00120000 CA 00130000 CA IN/OUT ARG TYPE DESCRIPTION 00140000 CA 00150000 CA IN/OUT X R4 INPUT/OUTPUT ARRAY TO BE FILTERED 00160000 CA IN NX I4 INPUT/OUTPUT ROW DIMENSION OF X 00170000 CA IN NY I4 INPUT/OUTPUT COLUMN DIMENSION OF X 00180000 CA IN X0 R4 ABCISSA CORRESPONDING TO FIRST ROW OF X 00190000 CA IN DX R4 INCREMENT BETWEEN ROWS OF X 00200000 CA IN Y0 R4 ORDINATE CORRESPONDING TO FIRST COL OF X 00210000 CA IN DY R4 INCREMENT BETWEEN COLUMNS OF X 00220000 CA IN S R4 ARRAY OF FILTER SPECIFICATION PARAMETERS 00230000 CA IN N I4 NUMBER OF FILTER SPECIFICATION PARAMETERS 00240000 CA 00250000 CA THIS PROGRAM FILTERS DATA WITHIN A 2-DIMENSIONAL ARRAY THROUGH 00260000 CA A SET OF FILTER COEFFICIENT SPECIFICATIONS. EACH SPECIFICATION 00270000 CA IS A 5-VALUE SET OF VALUES SPECIFYING THE UPPER AND LOWER LIMITS 00280000 CA ALONG THE HORIZONTAL AXIS, AND THE UPPER AND LOWER LIMITS ALONG 00290000 CA THE VERTICAL AXIS WITHIN WHICH THE FILTER WILL BE APPLIED, AND A 00300000 CA SCALAR MULTIPLIER WHICH IS USED TO MODIFY THE SPECTRAL RESPONSE 00310000 CA WITHIN THESE LIMITS. 00320000 CA 00330000 SUBROUTINE SAFAN2 ( X, NX, NY, X0, DX, Y0, DY, S, N ) 00340000 C 00350000 C REAL ARRAYS--CALL LIST 00360000 C 00370000 DIMENSION S ( N ) 00380000 DIMENSION X ( NX, NY) 00390000 C 00400000 C DETERMINE TYPE OR RESAMPLING 00410000 C 00420000 XINC = DX 00430000 YINC = DY 00440000 C 00450000 DO 30 I = 1,N,5 00460000 C 00470000 I1 = INT((S(I )-X0)/XINC + 1.5) 00480001 I2 = INT((S(I+1)-X0)/XINC + 1.5) 00490001 I3 = INT((S(I+2)-Y0)/YINC + 1.5) 00500001 I4 = INT((S(I+3)-Y0)/YINC + 1.5) 00510001 C 00520000 I1 = MAX0(I1, 1) 00530000 I1 = MIN0(I1,NX) 00540000 I2 = MAX0(I2, 1) 00550000 I2 = MIN0(I2,NX) 00560000 I3 = MAX0(I3, 1) 00570000 I3 = MIN0(I3,NY) 00580000 I4 = MAX0(I4, 1) 00590000 I4 = MIN0(I4,NY) 00600000 C 00610000 SCF= S(I+4)*S(I+4) 00620000 C 00630000 DO 20 L=I3,I4 00640000 DO 10 K=I1,I2 00650000 X(K,L) = X(K,L)*SCF 00660000 10 CONTINUE 00670000 20 CONTINUE 00680000 C 00690000 30 CONTINUE 00700000 C 00710000 C 00720000 RETURN 00730000 END 00740000