CTITLESAPK16 - SUBROUTINE USED BY SDPICK 00010000 C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CA 00020000 CA DESIGNER HERB SWAN 00030000 CA AUTHOR HERB SWAN 00040000 CA LANGUAGE FORTRAN 00050000 CA SYSTEM IBM ONLY 00060000 CA DATE MM/DD/YY 00070000 C REVISED 03/06/86 LBL OLD NAME = PICKA 00080000 C REVISED 08/29/86 ESN SET SNR=0 IF DIVISOR IS 0. 00090001 C 00100000 C 00110000 C----- AUTHOR: HERB SWAN 00120000 C SUBROUTINEPICKA(OTR,NS,OH,ISTRT,ISTOP,ITRAIN,THRESH,POS,SNR,IER,T)00130000 C 00140000 SUBROUTINE SAPK16 (OTR,NS,OH,ISTRT,ISTOP,ITRAIN, 00150000 * THRESH,POS,SNR,IER,T) 00160000 C 00170000 DIMENSION OTR(NS),THRESH(2),OH(190) 00180000 C 00190000 ISSMP=MAX0(ISTRT-ITRAIN,1) 00200000 ISSMP=MIN0(ISSMP,NS) 00210000 IESMP=MIN0(ISTOP,NS) 00220000 CALL USRTHV (OH,'THFLV ',IFLV) 00230000 ISSMP=MAX0(ISSMP,IFLV) 00240000 CONTINUE 00250000 23000 IF(.NOT.(ISSMP.LT.IESMP-ITRAIN.AND.OTR(ISSMP).EQ.0))GOTO 23001 00260000 ISSMP=ISSMP+1 00270000 GOTO 23000 00280000 C 00290000 23001 CONTINUE 00300000 SUM=ABS(OTR(ISSMP)) 00310000 SMALL=0 00320000 ISP1=ISTRT 00330000 C 00340000 DO 23002I=ISSMP,ISP1 00350000 SUM=SUM+ABS(OTR(I)) 00360000 23002 CONTINUE 00370000 23003 CONTINUE 00380000 IF(.NOT.(SUM.EQ.0.0))GOTO 23004 00390000 RETURN 00400000 23004 CONTINUE 00410000 C 00420000 IER=0 00430000 IF(ABS(SUM).LT.1.E75) GO TO 10 00440000 IER=1 00450000 RETURN 00460000 10 CONTINUE 00470000 C 00480000 C-11/24/85SUM/(ISP1-ISSMP) 00490000 C-08/29/86SUM/(ISP1-ISSMP+1) 00500001 SNR=0.0 00510001 IF ((ISP1-ISSMP+1) .NE. 0) 00520001 * SNR=SUM/(ISP1-ISSMP+1) 00530001 C 00540000 IPOS=ISP1 00550000 ISP1=IPOS+1 00560000 C 00570000 DO 23006I=ISP1,IESMP 00580000 C TEMP=ABS(OTR(I)) 00590000 C TEMP=OTR(I) 00600000 TEMP=OTR(I)*T 00610000 C-11/24/85E=TEMP*(I-ISSMP)/SUM 00620000 VALUE=TEMP*(I-ISSMP+1)/SUM 00630000 IF(.NOT.(VALUE.GT.SMALL))GOTO 23008 00640000 IPOS=I 00650000 SMALL=VALUE 00660000 23008 CONTINUE 00670000 C SUM=SUM+TEMP 00680000 SUM=SUM+ABS(TEMP) 00690000 IF(.NOT.(SMALL.GT.THRESH(1)))GOTO 23010 00700000 GOTO 23007 00710000 23010 CONTINUE 00720000 23006 CONTINUE 00730000 C 00740000 23007 CONTINUE 00750000 SN=SIGN(1.0,OTR(IPOS)) 00760000 TRIG=ABS(OTR(IPOS))/THRESH(2) 00770000 CONTINUE 00780000 I=IPOS 00790000 23012 IF(.NOT.(I.GE.ISSMP))GOTO 23014 00800000 IF(.NOT.(OTR(I)*SN.LE.TRIG))GOTO 23015 00810000 GOTO 23014 00820000 23015 CONTINUE 00830000 23013 I=I-1 00840000 GOTO 23012 00850000 23014 CONTINUE 00860000 POS=IPOS 00870000 IF(.NOT.(I.LT.IPOS))GOTO 23017 00880000 POS=I+(TRIG-SN*OTR(I))/(OTR(I+1)-OTR(I))/SN 00890000 23017 CONTINUE 00900000 C 00910000 RETURN 00920000 C 00930000 END 00940000