      PROGRAM CALIM
      PARAMETER (MAXNUM=70)
      PARAMETER (BIG=9999.0)
      REAL GENPOW(MAXNUM,3),SREF(MAXNUM),SIM(MAXNUM)
      REAL THIRDIM(MAXNUM),ATTPOW(3),ATT(3)
      INTEGER NOM(MAXNUM),NOMREF(MAXNUM)
c      OPEN ( UNIT=7,FILE='ft1000_20.txt')
c      OPEN ( UNIT=7,FILE='ft1000_20d.txt')
      OPEN ( UNIT=7,FILE='rxhfa_100.txt')
c      OPEN ( UNIT=7,FILE='ic706_20.txt')
      OPEN ( UNIT=8,FILE='cal.txt')
c      OPEN ( UNIT=9,FILE='ft1000d20.txt')
      OPEN ( UNIT=9,FILE='rxhfa100.txt')
c      OPEN ( UNIT=9,FILE='ic706a20.txt')
      I=0
  10  I=I+1
      READ(8,510)NOM(I),(GENPOW(I,J),J=1,3),THIRDIM(I)
 510  FORMAT(I4,2X,3F7.2,1X,F7.2)
      IF(NOM(I).NE.9999)GOTO 10
      MAXNOM=NOM(1)
      NUM=I-1
      MINNOM=NOM(NUM)
      WRITE(*,*)NUM,MAXNOM,MINNOM
      DO 20 I=1,MAXNUM
      NOMREF(I)=9999
      SREF(I)=BIG
 20   SIM(I)=BIG
      READ(7,530)NOM_ATTPOW,(ATTPOW(j),j=1,3)
 530  FORMAT(I4,3F7.2)
      WRITE(*,*)'Levels at test object input for ',NOM_ATTPOW,
     &' dBm (nominal) generator power'
      DO 30 K=1,NUM
      IF(NOM(K).EQ.NOM_ATTPOW)GOTO 35
 30   CONTINUE
      WRITE(*,*)'ERROR: LEVEL FOR ATTENUATOR EVALUATION NOT FOUND'
     &,NOM_ATTPOW
      STOP
 35   CONTINUE
      WRITE(9,*)'Levels at test object input for ',NOM_ATTPOW,
     &' dBm (nominal) generator power'
      WRITE(9,*)'  Gen  Calibrated  Measured    Att.'
      WRITE(9,*)'   No   (dBm)       (dBm)      dB'   
      DO 22 I=1,3
      ATT(I)=GENPOW(K,I)-ATTPOW(I)
      WRITE(9,630)I,GENPOW(K,I),ATTPOW(I),ATT(I)
 630  FORMAT(I5,3F10.2)
  22  WRITE(*,630)I,GENPOW(K,I),ATTPOW(I),ATT(I)
      WRITE(9,*)'-----------------------------------------'
      WRITE(9,*)
     &'  Nom.  Nom.   Linrad    Linrad      Cal.    Theor.     Diff'
      WRITE(9,*)
     &'  Two-  Ref-   S-meter   S-meter    level    level'
      WRITE(9,*)
     &'  tone  tone  Ref-tone    IM3        IM3      IM3'
      WRITE(9,*)
     &' (dBm) (dBm)    (dB)      (dB)      (dBm)    (dBm)      (dB)'
      WRITE(*,*)
     &'  Nom.  Nom.   Linrad    Linrad      Cal.    Theor.     Diff'
      WRITE(*,*)
     &'  Two-  Ref-   S-meter   S-meter    level    level'
      WRITE(*,*)
     &'  tone  tone  Ref-tone    IM3        IM3      IM3'
      WRITE(*,*)
     &' (dBm) (dBm)    (dB)      (dB)      (dBm)    (dBm)      (dB)'
 100  READ(7,520)I,J,A,B
 520  FORMAT(2I4,2F7.2)
      IF(I.GT.MAXNOM.OR.I.LT.MINNOM)GOTO 200
      DO 110 K=1,NUM
      IF(NOM(K).EQ.I)GOTO 115
 110  CONTINUE
      WRITE(*,*)'ERROR: LEVEL FOR TWO-TONE NOT FOUND',I
      STOP
 115  DO 120 M=1,NUM
      IF(NOM(M).EQ.J)GOTO 125
 120  CONTINUE
      WRITE(*,*)'ERROR: LEVEL FOR REF NOT FOUND',J
      STOP
 125  CONTINUE 
      S=B-A+GENPOW(M,1)-ATT(1)
      T=THIRDIM(K)-2*ATT(2)-ATT(3)
      WRITE(*,610)I,J,A,B,S,T,T-S
      WRITE(9,610)I,J,A,B,S,T,T-S
 610  FORMAT(2I6,6F10.2)
      GOTO 100
 200  CONTINUE
      STOP
      END
