CTITLESAPDCF -- GENERATES PREDICION DECON OPERATOR COEFFICIENTS 00000010 C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CA AUTHOR D. NYMAN 00000020 CA DESIGNER D. NYMAN 00000030 CA LANGUAGE S/370 FORTRAN H 00000040 CA SYSTEM IBM AND CRAY CA WRITTEN 05/16/78 00000050 C REVISED 10/15/90 MAA. MODIFIED FOR CRAY USE. 00000060 C REVISED 00000070 CA 00000080 CA 00000090 CA CALL SAPDCF (PCC, PRED, OPL, OP, D) 00000100 CA 00000110 CA INPUT PCC = PARTIAL CORRELATION COEFFICIENT ARRAY R8 00000120 CA PRED = PREDICTION DISTANCE I4 00000130 CA OPL = OPERATOR LENGTH I4 00000140 CA 00000150 CA OUTPUT OP = OPERATOR COEFFICIENT ARRAY R4 00000160 CA 00000170 CA D = TEMPORARY STORAGE ARRAY, AT LEAST OF R8 00000180 CA LENGTH OPL+PRED 00000190 CA 00000200 CA 00000210 CA SAPDCF CALCULATES THE PREDICTION DECON OPERATOR COEFFICIENTS FROM 00000220 CA THE PARTIAL CORRELATION COEFFICIENTS IN ARRAY PCC. THE ARRAY PCC 00000230 CA IS GENERATED BY THE MINIMUM VARIANCE PREDICTION DECON SUBROUTINE 00000240 CA 'SAPDDN'. 00000250 CAEND 00000260 C=======================================================================00000280 C EJECT 00000290 C=======================================================================00000300 C 00000310 C THE OPERATOR COEFFICIENTS ARE CALCULATED RECURSIVELY FROM THE 00000320 C PARTIAL CORRELATION COEFFICIENTS (OR NORMALIZED VECTOR INNER 00000330 C PRODUCTS) FOUND DURING PREDICTION DECON IN SUBROUTINE 'SAPDDN'. 00000340 C FOR MORE DETAILS SEE THE REFERENCE IN SUBROUTINE 'SAPDDN'. 00000350 C 00000360 C THE ARRAY D CONTAINS THE FORWARD (AND BACKWARD, IN REVERSE 00000370 C ORDER) OPERATOR COEFFICIENTS CORRESPONDING TO THE 'FORWARD 00000380 C (BACKWARD) PREDICTION ERROR'. 00000390 C 00000400 C LOCAL VARIABLES AND CONSTANTS 00000410 C 00000420 C RO = RHO 00000430 C RX = RHO(X) 00000440 C 00000450 C 00000460 C=======================================================================00000470 C EJECT 00000480 C 00000490 SUBROUTINE SAPDCF (PCC, PRED, OPL, OP, D) 00000500 C 00000510 C IMPLICIT REAL*8 (A-H,O-Z) 00000520 IMPLICIT DOUBLE PRECISION (A-H,O-Z) 00000520 DIMENSION PCC(2,1), OP(1), D(1) 00000530 REAL OP 00000540 INTEGER PRED, OPL 00000550 C 00000560 C CONSTRUCT OPERATORS OF ORDER 1 00000570 C 00000580 OP(1)=1. 00000590 DO 10 I=2,PRED 00000600 10 OP(I)=0. 00000610 C 00000620 OP(PRED+1)=PCC(2,1) 00000630 IF (OPL.EQ.1) RETURN 00000640 D(1)=-PCC(1,1) 00000650 C 00000660 C RECURSIVELY GENERATE OPERATORS OF 00000670 C ORDER I FORM THOSE OF ORDER I-1 00000680 C 00000690 DO 50 I=2,OPL 00000700 RO=PCC(1,I) 00000710 RX=PCC(2,I) 00000720 IF (I.EQ.2) GO TO 30 00000730 K=(I-1)/2 00000740 C 00000750 DO 20 J=1,K 00000760 L=I-J 00000770 OP(PRED+J)=OP(PRED+J)-RX*D(L) 00000780 OP(PRED+L)=OP(PRED+L)-RX*D(J) 00000790 DJ=D(J)+RO*D(L) 00000800 D(L)=D(L)+RO*D(J) 00000810 20 D(J)=DJ 00000820 C 00000830 IF (MOD(I,2).EQ.1) GO TO 40 00000840 C 00000850 30 K=I/2 00000860 OP(PRED+K)=OP(PRED+K)-RX*D(K) 00000870 D(K)=D(K)+RO*D(K) 00000880 C 00000890 40 OP(PRED+I)=RX 00000900 50 D(I)=-RO 00000910 C 00000920 RETURN 00000930 C 00000940 END 00000950