SUBROUTINE SETWINDOW(LINE) C C SETS WINDOW PARAMETERS C REAL*8 FQLOW,FQHI,FQ,FQDEL,FQIN CHARACTER*80 LINE INTEGER Q(9) COMMON /WINDEX/ FQLOW,FQHI,FQIN,RSTR SAVE NEW,FQDEL,/WINDEX/ DATA NEW/0/ IF(NEW.EQ.0) THEN WRITE(*,*) ' ENTER Freq window for blends ' FQDEL=0.001 READ(*,*) FQDEL WRITE(*,*) ' ENTER Freq window for match ' FQIN=0.001 READ(*,*) FQIN WRITE(*,*) ' ENTER Minimum Log Str diff. ' RSTR=1.0 READ(*,*) RSTR NEW=1 ENDIF READ(LINE,*) Q,FQ FQLOW=FQ-FQDEL FQHI =FQ+FQDEL RETURN END INTEGER FUNCTION ISWINDOW(LINE) C C TESTS WINDOW PARAMETERS C REAL*8 FQLOW,FQHI,FQ,FQIN CHARACTER*80 LINE COMMON /WINDEX/ FQLOW,FQHI,FQIN,RSTR SAVE /WINDEX/ READ(LINE,'(F13.4)') FQ FQ=FQ/29979.2458D0 IF( FQ.LT.FQLOW ) THEN ISWINDOW=-1 ELSE IF( FQ.GT.FQHI ) THEN ISWINDOW=1 ELSE ISWINDOW=0 ENDIF RETURN END SUBROUTINE FMTLINE(LINE,AUXLINE,MATCH) C C FORMATS LINE FROM AUXLINE C REAL*8 FQLOW,FQHI,FQ,FQDEL,FQIN COMMON /WINDEX/ FQLOW,FQHI,FQIN,RSTR SAVE /WINDEX/ CHARACTER*80 LINE,AUXLINE(*) INTEGER IQN(9) IF(MATCH.EQ.0) RETURN READ(LINE,*) IQN,FQ,STX K=1 IF(MATCH.GT.1) THEN STR1=-100. STR2=-100. DO 10 I=1,MATCH READ(AUXLINE(I),'(21X,F8.4,X,F10.4)') STR IF(STR.GT.STR2) THEN IF(STR.GT.STR1) THEN STR2=STR1 STR1=STR K=I ELSE STR2=STR ENDIF ENDIF 10 CONTINUE IF(STR1.LT.STR2+RSTR) RETURN MATCH=1 ENDIF READ(AUXLINE(K),'(F13.4,8X,F8.4,2X,F10.4,14X,4I2,4X,4I2)') 1 FQDEL,STR,EGY IF(ABS(FQDEL/29979.2458D0-FQ).GT.FQIN) THEN MATCH=0 RETURN ENDIF CONVERT TO 296 K STR=STR-2.81458E-05*EGY+0.9262606 QSTR=10.**STR WRITE(LINE,'(I1,4I3,2X,4I3,F15.5,E15.4,3H 1.,E15.4,2H 0)') + IQN,FQ,STX,QSTR RETURN END