CTITLEMNRML -- COMPUTES SYSTEM NORMALIZATION TRANSFORM 00000010 C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CA AUTHOR D. D. THOMPSON 00000020 CA DESIGNER D. D. THOMPSON 00000030 CA LANGUAGE FORTRAN 77 00000040 CA SYSTEM IBM & CRAY 00000041 CA WRITTEN 1972 00000050 C REVISED MO-DA-YR 00000060 C REVISED 05-20-85 TWH. ADAPTED TO IBM & CRAY. 00000061 C 00000070 CA 00000080 CA 00000090 CA CALL MNRML (Z, KR, KW, KX, V, KEY) 00000100 CA INPUT Z = WAVELET AND REFLECTION COEFFICIENT R4 00000110 CA (RC'S) VECTOR 00000120 CA INPUT KR = NUMBER OF RC'S IN TOP OF Z I4 00000130 CA INPUT KW = NUMBER OF WAVLET SAMPLES IN BOTTOM I4 00000140 CA OF Z 00000150 CA INPUT KX = NUMBER OF TRACE SAMPLES I4 00000160 CA OUTPUT V = OUTPUT DIAGONAL MATRIX LENGTH KR+KW R4 00000170 CA INPUT KEY = INPUT FLAG I4 00000180 CA 1 - COMPUTE RC'S ONLY 00000190 CA 2 - COMPUTE WAVELET ONLY 00000200 CA 3 - COMPUTE BOTH 00000210 CA 00000220 CA 00000230 CA THIS ROUTINE COMPUTES A DIAGONAL MATRIX TRANSFORM 00000240 CA WHICH WHEN APPLIED BEFORE AND AFTER THE LINEAR SYSTEM 00000250 CA MATRIX PRODUCES ONES ON THE MAIN DIAGONAL. 00000260 CA 00000270 C 00000280 C SUBROUTINES CALLED: NONE 00000290 C 00000300 C EJECT 00000310 C 00000320 SUBROUTINE MNRML (Z, KR, KW, KX, V, KEY) 00000330 CAEND 00000340 C 00000350 DIMENSION Z(1),V(1) 00000360 IA=KW+1 00000370 IF((KW/2)*2.NE.KW) IA=KW 00000380 IF(KEY.EQ.2) GO TO 30 00000390 C 00000400 DO 20 00000410 * J=1,KR 00000420 J2=2*J 00000430 IL=J2-IA+1 00000440 IH=KW+J2-IA 00000450 IF(IL.LT.1) IL=1 00000460 IF(IH.GT.KX) IH=KX 00000470 A=0. 00000480 INDX=IA-J2+KR 00000490 C 00000500 DO 10 00000510 * I=IL,IH 00000520 B=Z(I+INDX) 00000530 C 00000540 10 A=A+B*B 00000550 C 00000560 IF(A.EQ.0.) A=1. 00000570 C 00000580 20 V(J)=1./SQRT(A) 00000590 C 00000600 IF(KEY.EQ.1) RETURN 00000610 C 00000620 30 DO 50 00000630 * J=1,KW 00000640 INDX=IA-J 00000650 IL=1 00000660 IF((INDX/2)*2.EQ.INDX) IL=2 00000670 A=0. 00000680 C 00000690 DO 40 00000700 * I=IL,KX,2 00000710 B=Z((I+INDX)/2) 00000720 C 00000730 40 A=A+B*B 00000740 C 00000750 IF(A.EQ.0.) A=1. 00000760 C 00000770 50 V(J+KR)=1./SQRT(A) 00000780 C 00000790 RETURN 00000800 END 00000810