CTITLESAERR3 -- PERFORM ERROR CALCULATIONS FOR TRAC 00000010 C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CA AUTHOR D.D. REED 00000020 CA DESIGNER D.D. REED 00000030 CA LANGUAGE FORTRANH EXTENDED 00000040 CA SYSTEM IBM OR CRAY CA WRITTEN 2/18/76 00000060 C REVISED 10-31-79 H JULIAN - ADAPTED FOR 3D TRAC. 00000070 C REVISED 03-02-80 R DECKER - ELIMINATED WEIGHT AND ERR ARRAYS 00000080 C ADDED CDPP AND KCDP ARRAYS. 00000090 C REVISED 07-07-86 M PONTON - DUAL IBM/CRAY VERSION. CA 00000100 CA CALL SAERR3 (X, XCDP, XRNMO, IND, OFF, CDPP, KCDP, Y, DIF1, 00000110 CA ITCNT, NOITER, LD, LINE, NLINE, KPBUGF, IPRT) 00000120 CA 00000130 CA IN/OUT ARGUMENT TYPE DESCRIPTION 00000140 CA 00000150 CA IN X R8 COMPONENTS OF PREDICTED VALUES 00000160 CA IN XCDP R8 NEGATIVE OF THE PILOT STATIC 00000170 CA IN XRNMO R8 RNMO FOR EACH CDP AT OFFSET = 1 00000180 CA IN IND I4 INDEX ARRAY (-> X FOR PREDICTED VALUES) 00000190 CA IN OFF R4 SQUARED NORMALIZED OFFSET DISTANCES 00000200 CA IN CDPP I4 POINTER TO THE END OF EACH CDP 00000210 CA IN KCDP I4 STARTING CDP FOR EACH LINE 00000220 CA IN Y R4 OBSERVED VALUES 00000230 CA IN DIF1 I4 CDP BIAS TO CONVERT IND VALUES. 00000240 CA IN ITCNT I4 ITERATON COUNTER, 1 = LAST ITERATION 00000250 CA IN NOITER I4 NUMBER OF ITERATIONS TO BE PERFORMED 00000260 CA IN LD I4 NUMBER OF DEPTH POINTS 00000270 CA IN LINE I4 ARRAY OF LINE END POINTERS 00000280 CA IN NLINE I4 NUMBER OF LINES 00000290 CA IN KPBUGF I4 DEBUG FLAG 00000300 CA IN IPRT I4 PRINTER UNIT FOR OUTPUT 00000310 CA 00000320 CA 00000330 CA SAERR3 PRINTS A TABLE OF PREDICTED (A SUM OF 3 X VALUES FOUND 00000340 CA BY THE INDICES IN THE IND ARRAY) VS THE OBSERVED VALUES (Y) 00000350 CA AND THE ERROR (OBSERVED - PREDICTED) FOR EACH. THE RMS ERROR 00000360 CA IS ALSO COMPUTED AND PRINTED. 00000370 CA 00000380 C 00000390 SUBROUTINE SAERR3 (X, XCDP, XRNMO, IND, OFF, CDPP, KCDP, Y, 00000400 * DIF1, ITCNT, NOITER, LD, LINE, NLINE, KPBUGF, IPRT) 00000410 C 00000420 C REAL ARRAYS IN PARAMETER LIST 00000430 C 00000440 DOUBLE PRECISION X (1) 00000450 DOUBLE PRECISION XCDP (1) 00000460 DOUBLE PRECISION XRNMO (1) 00000470 REAL OFF (1) 00000480 REAL Y (1) 00000490 C 00000500 C INTEGER ARRAYS IN PARAMETER LIST 00000510 C 00000520 INTEGER CDPP (1) 00000530 INTEGER IND (2,1) 00000540 INTEGER KCDP (1) 00000550 INTEGER LINE (1) 00000560 C 00000570 C INTEGER ARRAY -- LOCAL 00000580 C 00000590 INTEGER INDORG (3) 00000600 C 00000610 C INTEGER VARIABLE -- LOCAL 00000620 C 00000630 INTEGER DIF1 00000640 C 00000650 N = NOITER - ITCNT + 1 00000660 WRITE (IPRT, 9040) N 00000670 IF (KPBUGF .GT. 1 .AND. ITCNT .EQ. 1) WRITE (IPRT, 9000) 00000680 C 00000690 C INITIALIZE 00000700 C 00000710 KK = 0 00000720 SUM = 0.0 00000730 SUM2 = 0.0 00000740 C 00000750 C PRINT LINES OF PREDICTED VS OBSERVED VALUES AND ERROR 00000760 C 00000770 NT = 0 00000780 IA = 1 00000790 KP = 1 00000800 C 00000810 DO 40 II = 1, NLINE 00000820 IB = LINE(II) 00000830 KKCDP = KCDP(II) 00000840 C 00000850 DO 30 I1 = IA, IB 00000860 IF (Y(I1) .GT. 1000000.) GO TO 20 00000990 PRED = XCDP((II-1)*LD+KKCDP) + X(IND(1,I1)) + X(IND(2,I1)) 00000870 PRED2 = PRED + XRNMO((II-1) * LD + KKCDP) * OFF(I1) 00000880 ER = Y(I1) - PRED 00000890 ER2 = Y(I1) - PRED2 00000900 C 00000910 IF (ITCNT .GT. 1) GO TO 10 00000950 IF (KPBUGF .GT. 1) THEN INDORG(1) = KKCDP - DIF1 INDORG(2) = IND(1,I1) INDORG(3) = IND(2,I1) WRITE (IPRT, 9010) INDORG,Y(I1),PRED,ER,PRED2,ER2 ENDIF C 00000980 10 CONTINUE SUM = SUM + ER * ER 00001000 SUM2 = SUM2 + ER2 * ER2 00001010 NT = NT + 1 00001020 C 00001030 20 IF(I1 .LT. CDPP(KP)) GO TO 30 00001040 KP = KP + 1 00001050 KKCDP = KKCDP + 1 00001060 C 00001070 30 CONTINUE 00001080 IA = IB + 1 00001090 40 CONTINUE 00001100 C 00001110 C COMPUTE AND PRINT RMS ERROR 00001120 C 00001130 RMS = SQRT (SUM / FLOAT(NT)) 00001140 RMS2 = SQRT (SUM2 / FLOAT(NT)) 00001150 WRITE (IPRT, 9020) RMS 00001160 WRITE (IPRT, 9030) RMS2 00001170 C 00001180 RETURN 00001190 C 00001200 C FORMATS 00001210 C 00001220 9000 FORMAT(' ORIG.',6X,'REN.',6X,'REN.',24X,'PRED.',13X,'ERROR',11X, 00001230 1 'PRED.',12X,'ERROR', 00001240 2 /' DEPTH',6X,'REC.',6X,'SHOT',6X,'OBS.',10X,'(NO RNMO)',9X, 00001250 3 '(NO RNMO)',10X,'(RNMO)',11X,'(RNMO)') 00001260 C 00001270 9010 FORMAT (1H ,I5, 2X, 2(I8,2X),5(E14.7,3X)) 00001280 C 00001290 9020 FORMAT(/// ' RMS ERROR IN SATISFYING SURFACE CONSISTENT ', 00001300 * 'EQUATIONS = ', F12.7, ' MS.') 00001310 C 00001320 9030 FORMAT(/ ' RMS ERROR IN SATISFYING SURFACE CONSISTENT ', 00001330 * 'EQUATIONS (INCLUDING RNMO SOLUTION) = ',F12.7,' MS.') 00001340 C 00001350 9040 FORMAT(/// ' RESULTS OF ITERATION NUMBER ', I2, 00001360 * / ' ======= == ========= ====== ==') 00001370 C 00001380 END 00001390