C
C     PROGRAM FRESAN
C     **************
C
      CHARACTER*80 MTEXT,PSTEXT,ITEXT,FILEIN,FILEOU,FILE1,FILE2,FILE3
      COMPLEX IMAG,CTIME,CAUX,CAX,CAY,CAZ,CAX1,CAY1,CAZ1,CSOUR,AAUX
      DIMENSION ISEL(100),IEP(100),III(100),AMFR(1000),AMFI(1000),
     1AAUX(3),P(3),POL(3),POL1(3)
      COMMON/PLOT1/RESP(30000),IFREQ(100),AMPL(100),DST(100),MCOMP
      COMMON/SOUR/ROS
      COMMON/SH/MSH,NSH
C
C
C**************************************************
C
      LIN=5
      LOU=6
      LU2=1
      LU7=2
      LU6=3
      FILEIN='fres.dat'
      FILEOU='fres.out'
      FILE1='lu2.dat'
      FILE2='lu7.dat'
      FILE3='lu6.dat'
      WRITE(*,'(2A)') ' (FRESAN) SPECIFY NAMES OF INPUT AND OUTPUT',
     1' FILES LIN, LOU, LU2, LU7, LU6: '
      READ(*,*) FILEIN,FILEOU,FILE1,FILE2,FILE3
      IF(FILE1.EQ.' ') GO TO 99
      IF(FILE2.EQ.' ') LU7=0
      IF(FILE3.EQ.' ') LU6=0
      OPEN(LIN,FILE=FILEIN,FORM='FORMATTED',STATUS='OLD')
      OPEN(LOU,FILE=FILEOU,FORM='FORMATTED')
      OPEN(LU2,FILE=FILE1,FORM='FORMATTED',STATUS='OLD')
      IF(LU7.NE.0)OPEN(LU7,FILE=FILE2,FORM='FORMATTED')
      IF(LU6.NE.0)OPEN(LU6,FILE=FILE3,FORM='FORMATTED',STATUS='OLD')
C
C**************************************************
C
      ITEXT='FRESAN'
      PSTEXT=' '
      IPRINT=0
      JPRINT=0
      XSHIFT=3.
      YSHIFT=6.
      READ(LIN,*)ITEXT
      READ(LIN,*)IPRINT,JPRINT,PSTEXT
      WRITE(LOU,105)ITEXT
      WRITE(LOU,111)IPRINT,JPRINT,PSTEXT
      REWIND LU2
      IF(LU7.NE.0)REWIND LU7
C
      NEPIC=0
      NSPR=30000
      IMAG=(0.,1.)
      PI=4.*ATAN(1.)
C
C     READ INPUT PARAMETERS
C
      MCOMP=0
      MABS=0
      MSOUR=0
      MSELEC=0
      MEPIC=0
      MFR=0
      MPLOT=0
      READ(LIN,*)MCOMP,MABS,MSOUR,MSELEC,MEPIC,MFR,MPLOT
      WRITE(LOU,101)MCOMP,MABS,MSOUR,MSELEC,MEPIC,MFR,MPLOT
C
      IF(MPLOT.NE.0)THEN
        IF(IPRINT.LT.0)THEN
          CALL PLOTN(PSTEXT,0)
          IPRINT=-IPRINT
        END IF
        CALL PLOTS(LDUM1,LDUM2,7)
      END IF
C
      AROT=0.
      READ(LIN,*)RFR,GM,QRED,FREQM,AROT
      WRITE(LOU,100)RFR,GM,QRED,FREQM,AROT
      CSRT=COS(AROT)
      SNRT=SIN(AROT)
      IF(ABS(RFR).LT.0.00001)RFR=1.
      IF(ABS(QRED).LT.0.00001)QRED=1.
C
C     FREQUENCY FILTERING DATA
C
      NFREQ=0
      READ(LIN,*)NFREQ,FL,FR,FD
      WRITE(LOU,107)NFREQ,FL,FR,FD
      IF(NFREQ.GT.0)FD=1./FD/FLOAT(NFREQ)
      NF1=INT(FL/FD-0.5)
      NF=INT(FR/FD+0.5)-NF1
      FL=FD*FLOAT(NF1)+FD
      FR=FL+FD*FLOAT(NF)-FD
      FDA=6.2831853*FD
C
C     SELECTION OF RECEIVERS AND ELEMENTARY WAVES
C
      IF(MEPIC.EQ.0)GO TO 1
      READ(LIN,*)NEPIC,(IEP(I),I=1,NEPIC)
      WRITE(LOU,101)NEPIC,(IEP(I),I=1,NEPIC)
    1 IF(MSELEC.EQ.0)GO TO 2
      READ(LIN,*)NSELEC,(ISEL(I),I=1,NSELEC)
      WRITE(LOU,101)NSELEC,(ISEL(I),I=1,NSELEC)
    2 CONTINUE
C
C     READING FROM LU2,GENERAL QUANTITIES
C
      READ(LU2,104)MTEXT
      READ(LU2,106)NDST,KSH,ILOC
      READ(LU2,100)XSOUR,YSOUR,ZSOUR,TSOUR,RSTEP,ROS
      IF(NDST.NE.1)READ(LU2,100)(DST(I),I=1,NDST)
      IF(NDST.EQ.1)READ(LU2,100)XREC,YREC,XPRF,XATAN
      WRITE(LOU,104)MTEXT
      WRITE(LOU,101)NDST,KSH,ILOC
      WRITE(LOU,100)XSOUR,YSOUR,ZSOUR,TSOUR,RSTEP,ROS
      IF(NDST.NE.1)WRITE(LOU,100)(DST(I),I=1,NDST)
      IF(NDST.EQ.1)WRITE(LOU,100)XREC,YREC,XPRF,XATAN
      IF(NDST.EQ.1)DST(1)=XPRF
      NRDST=NDST-NEPIC
C
C     INITIAL PARAMETERS FOR RADIATION PATTERNS
C     AND FOR FREQUENCY DEPENDENT FACTORS
C
      IF(MSOUR.NE.0)CALL SOURCE(LIN,LOU,0,0,MSOUR,P,POL,AMSOUR,PHSOUR)
      IF(MFR.NE.0)CALL FDEP(0,G,FL,FD,NF,AMFR,AMFI)
      IF(LU6.NE.0)CALL FDQI(LU6,LOU,0,MCOMP,FL,FD,NF,AROT,AMFR,AMFI)
      IF(LU6.NE.0)THEN
        NFREQ=0
        NF1=INT(FL/FD-0.5)
        FR=FL+FD*FLOAT(NF)-FD
        FDA=6.2831853*FD
      END IF
C
C
C     WRITING ON LU7
C
      WRITE(LU7,104)MTEXT
      WRITE(LU7,104)ITEXT
      WRITE(LU7,152)XSOUR,YSOUR,ZSOUR,TSOUR,RSTEP,FL,FD
      WRITE(LU7,106)NRDST,NF,NF1,MCOMP,ILOC
C
C     CHECK OF THE DIMENSIONS OF THE RESP FIELD
C     INITIAL SPECIFICATION OF THE RESP FIELD
C
      NSUM=2*NDST*NF
      IF(NSUM.GT.NSPR)WRITE(LOU,153)
      IF(NSUM.GT.NSPR)GO TO 99
      DO 4 I=1,NSUM
    4 RESP(I)=0.
C
C     S T A R T   O F   S U M M A T I O N
C     O F   F R E Q U E N C Y  R E S P O N S E
C     ****************************************
C
C     LOOP OVER TERMINATION POINTS OF ALL ELEMENTARY WAVES
C     AT ALL RECEIVERS
C
    6 CONTINUE
      READ(LU2,103,END=84)NC,IDIST,TIME,CAX,CAY,CAZ,TAST
      IF(NC.LT.0)READ(LU2,109)CAX1,CAY1,CAZ1
      READ(LU2,110)(P(I),I=1,3)
      READ(LU2,110)(POL(I),I=1,3)
      IF(NC.LT.0)READ(LU2,110)(POL1(I),I=1,3)
      CAUX=CAX*CSRT+CAY*SNRT
      CAY=-CAX*SNRT+CAY*CSRT
      CAX=CAUX
      CAUX=CAX1*CSRT+CAY1*SNRT
      CAY1=-CAX1*SNRT+CAY1*CSRT
      CAX1=CAUX
      NC1=IABS(NC)
      IF(MSELEC.EQ.0)GO TO 8
C
C     SELECTION OF WAVES
C
      DO 7 J=1,NSELEC
      IF(ISEL(J).EQ.NC1)GO TO 6
    7 CONTINUE
    8 IF(MEPIC.EQ.0)GO TO 10
C
C     SELECTION OF RECEIVERS
C
      DO 9 J=1,NEPIC
      IF(IEP(J).EQ.IDIST)GO TO 6
    9 CONTINUE
   10 CONTINUE
C
C
      IF(MSOUR.NE.0)THEN
        CALL SOURCE(LIN,LOU,1,1,MSOUR,P,POL,AMDIR,PHDIR)
        CSOUR=AMDIR*CEXP(IMAG*PHDIR)
      END IF
      IF(MSOUR.EQ.0)CSOUR=(1.,0.)
      AAUX(1)=CAX*CSOUR
      AAUX(2)=CAY*CSOUR
      AAUX(3)=CAZ*CSOUR
      IF(NC.LT.0)THEN
        IF(MSOUR.NE.0)THEN
          CALL SOURCE(LIN,LOU,1,1,MSOUR,P,POL1,AMDIR,PHDIR)
          CSOUR=AMDIR*CEXP(IMAG*PHDIR)
        END IF
        IF(MSOUR.EQ.0)CSOUR=(1.,0.)
        AAUX(1)=AAUX(1)+CAX1*CSOUR
        AAUX(2)=AAUX(2)+CAY1*CSOUR
        AAUX(3)=AAUX(3)+CAZ1*CSOUR
      END IF
      IF(MCOMP.EQ.0)K=3
      IF(MCOMP.EQ.1)K=1
      IF(MCOMP.EQ.2)K=2
      RW=REAL(AAUX(K))
      CW=AIMAG(AAUX(K))
      IF(MFR.NE.0)THEN
        CSOUR=CSQRT(CAX*CAX+CAY*CAY+CAZ*CAZ)
        RW=REAL(CSOUR)
        CW=AIMAG(CSOUR)
      END IF
      AR=SQRT(RW*RW+CW*CW)
      IF(ABS(RW).LT..000001.AND.ABS(CW).LT..000001)THEN
        PH=0.
      ELSE
        PH=ATAN2(CW,RW)
      END IF
      IF(IPRINT.EQ.1)WRITE(LOU,102)NC,IDIST,TIME,AR,PH,AMDIR,TAST
C
C     ABSORPTION EFFECTS
C
      IF(MABS.EQ.0)GO TO 67
      AUX=QRED*TAST
      ABS1=.5*AUX
      IF(MABS.LE.2)GO TO 67
      ABS2=1.+ALOG(FREQM/RFR)
      PH=PH+2.*AUX*FREQM
   67 CONTINUE
C
C     FREQUENCY DEPENDENT EFFECTS
C
      KFR=0
      IF(MABS.LE.1.AND.MFR.EQ.0)GO TO 74
      KFR=1
      DO 73 JF=1,NF
      AMFR(JF)=1.
   73 AMFI(JF)=0.
C
C     FREQUENCY DEPENDENT EFFECTS: SUBROUTINE FDEP
C
      IF(MFR.NE.0)CALL FDEP(1,G,FL,FD,NF,AMFR,AMFI)
C
C     PROCESSING OF FREQUENCY-DEPENDENT QI AMPLITUDES
C
      IF(LU6.NE.0)CALL FDQI(LU6,LOU,1,MCOMP,FL,FD,NF,AROT,AMFR,AMFI)
C
C     FREQUENCY DEPENDENT EFFECTS:CAUSAL ABSORPTION
C
      IF(MABS.LE.1.OR.MABS.EQ.3)GO TO 74
      DO 75 JF=1,NF
      FRJ=FD*FLOAT(JF+NF1)
      ABS4=2.*AUX*FRJ*ALOG(FRJ/RFR)
      CAUX=(0.,0.)
      IF(MABS.EQ.2)CAUX=CEXP(-IMAG*ABS4)
      AUXR=REAL(CAUX)
      AUXI=AIMAG(CAUX)
      AUX1=AMFR(JF)*AUXR-AMFI(JF)*AUXI
      AUX2=AMFR(JF)*AUXI+AMFI(JF)*AUXR
      AMFR(JF)=AUX1
      AMFI(JF)=AUX2
   75 CONTINUE
C
C     FFR COMPUTATION
C
   74 CONTINUE
      SPH=SIN(PH)
      CPH=COS(PH)
      ARE=AR*CPH
      AIM=AR*SPH
C
C     PRINT OF REAL AND IMAGINARY PARTS OF THE COMPLEX AMPLITUDE
C
      IF(IPRINT.EQ.2)WRITE(LOU,154)ARE,AIM
      CTIME=TIME
      IF(MABS.EQ.0)GO TO 83
      CTIME=CTIME+ABS1*IMAG
      IF(MABS.EQ.3)CTIME=CTIME-ABS2*AUX/PI
   83 TR=REAL(CTIME)
      TI=AIMAG(CTIME)
      TID=TI*FDA
      TRD=TR*FDA
      TIE=TID*FLOAT(NF1)
      TRE=TRD*FLOAT(NF1)
      AUX=EXP(-TIE)
      ARC=AUX*COS(TRE)
      ARS=AUX*SIN(TRE)
      AA1=ARC*ARE-ARS*AIM
      AA2=ARC*AIM+ARS*ARE
      AUX=EXP(-TID)
      AR=AUX*COS(TRD)
      AI=AUX*SIN(TRD)
C
C     AR, AI - CONSTANT FACTORS FOR RECURENT RESPONSE COMPUTATION
C     AA1, AA2 - REAL AND IMAGINARY PARTS OF THE AMPLITUDE
C     CORRESPONDING TO THE LOWEST CONSIDERED FREQUENCY
C
      IF(IPRINT.EQ.3)WRITE(LOU,100)TR,TI,AR,AI,AA1,AA2
C
C     LOOP FOR FREQUENCIES
C
      N=2*(IDIST-1)*NF-1
      DO 82 JF=1,NF
      IF(JF.NE.1)THEN
        A11=AR*AA1-AI*AA2
        AA2=AR*AA2+AI*AA1
        AA1=A11
      END IF
      AUX=AA1
      AUXX=AA2
      IF(KFR.EQ.0)GO TO 81
      AUX=AA1*AMFR(JF)-AA2*AMFI(JF)
      Auxx=AA1*AMFI(JF)+AA2*AMFR(JF)
   81 CONTINUE
      N=N+2
      RESP(N)=RESP(N)+AUX
      RESP(N+1)=RESP(N+1)+AUXX
   82 CONTINUE
C
C     END OF LOOP FOR FREQUENCIES
C
      GO TO 6
C
C     E N D   O F   C O M P U T A T I O N   O F
C     F R E Q U E N C Y   R E S P O N S E
C     *****************************************
C
C     PRINTING AND STORING THE FREQUENCY RESPONSE
C
   84 CONTINUE
      DO 95 IR=1,NDST
      K=2*IR*NF
      J=K-2*NF+1
      A=0.1E-20
      DO 91 I=J,K
   91 A=AMAX1(A,ABS(RESP(I)))
      WRITE(LU7,160)DST(IR),A
      IF(IPRINT.EQ.1)WRITE(LOU,108)DST(IR),A
      A=A/99999.1
   92 DO 93 I=1,12
      III(I)=RESP(J)/A
      IF(J.GE.K)GO TO 94
   93 J=J+1
      WRITE(LU7,161)(III(I),I=1,12)
      IF(IPRINT.EQ.2)WRITE(LOU,161)(III(I),I=1,12)
      GO TO 92
   94 WRITE(LU7,161)(III(K),K=1,I)
      IF(IPRINT.EQ.2)WRITE(LOU,161)(III(K),K=1,I)
   95 CONTINUE
      REWIND LU7
      REWIND LU2
C
C     PRINTING OF FREQUENCY DEPENDENT AMPLITUDE CURVES
C
      IF(JPRINT.EQ.0)GO TO 350
      READ(LIN,*)MTAB,(IFREQ(I),I=1,MTAB)
      WRITE(LOU,101)MTAB,(IFREQ(I),I=1,MTAB)
      DO 310 I=1,MTAB
      IFF=IFREQ(I)
      AMAX=0.
      IF(IFF.GT.NF)GO TO 310
      FREQ=FD*FLOAT(NF1+IFF)
      DO 305 IR=1,NDST
      A=RESP(2*(IR-1)*NF+2*IFF-1)
      B=RESP(2*(IR-1)*NF+2*IFF)
      AMPL(IR)=SQRT(A*A+B*B)
      IF(AMPL(IR).GT.AMAX)AMAX=AMPL(IR)
  305 CONTINUE
      B=AMAX/999.1
      DO 306 IJ=1,NDST
      IF(ABS(B).GT..0000001)III(IJ)=AMPL(IJ)/B
      IF(ABS(B).LT..0000001)III(IJ)=0
  306 CONTINUE
      WRITE(LOU,170)FREQ,AMAX
      WRITE(LOU,171)(III(K),K=1,NDST)
  310 CONTINUE
  350 CONTINUE
C
C     PLOTTING OF FREQUENCY DEPENDENT AMPLITUDE CURVES
C
      IF(MPLOT.EQ.0)GO TO 99
      CALL ZPLOT(NF1,NF,FD,NDST,MPLOT,LIN,LOU)
      CALL PLOT(0.,0.,999)
C
C
  100 FORMAT(8F10.5)
  101 FORMAT(16I5)
  102 FORMAT(2I3,F10.5,1X,2(1X,E12.6),3F10.6)
  103 FORMAT(2I3,F12.7,6E12.6,F10.6)
  104 FORMAT(A)
  105 FORMAT(1X,A)
  106 FORMAT(26I3)
  107 FORMAT(I5,6F10.5)
  108 FORMAT(F10.3,E12.5)
  109 FORMAT(6E12.6)
  110 FORMAT(3F10.5)
  111 FORMAT(2I5,1X,A)
  152 FORMAT(5F10.5,2E15.7)
  153 FORMAT(1X,'DIMENSION OF RESP EXCEEDED')
  154 FORMAT(3E16.8)
  160 FORMAT(F10.3,E12.5)
  161 FORMAT(12I6)
  170 FORMAT(/,1X,'FREQUENCY=',F10.5,2X,'(HZ),  MAXIMUM AMPLITUDE=',
     11E15.6)
  171 FORMAT(20I4)
C
C
   99 CONTINUE
      STOP
      END
C
C
      SUBROUTINE FDQI(LU6,LOU,NREAD,MCOMP,FL,FD,NF,AROT,AMFR,AMFI)
C
      COMPLEX W(2)
      DIMENSION AMFR(1000),AMFI(1000),E1(3),E2(3)
C
      IF(NREAD.EQ.0)READ(LU6,101)FL,FD,NF
      IF(NREAD.EQ.0)RETURN
C
      IF(MCOMP.EQ.0)M=3
      IF(MCOMP.EQ.1)M=1
      IF(MCOMP.EQ.2)M=2
      READ(LU6,100)(E1(K),K=1,3),(E2(K),K=1,3)
      IF(M.NE.3.AND.AROT.NE.0.)THEN
        CSRT=COS(AROT)
        SNRT=SIN(AROT)
        EAUX=E1(1)*CSRT+E1(2)*SNRT
        E1(2)=-E1(1)*SNRT+E1(2)*CSRT
        E1(1)=EAUX
        EAUX=E2(1)*CSRT+E2(2)*SNRT
        E2(2)=-E2(1)*SNRT+E2(2)*CSRT
        E2(1)=EAUX
      END IF
      E1M=E1(M)
      E2M=E2(M)
      DO 1 I=1,NF
      READ(LU6,100)FF,W
      AMFR(I)=REAL(W(1)*E1M+W(2)*E2M)
      AMFI(I)=AIMAG(W(1)*E1M+W(2)*E2M)
    1 CONTINUE
C
  100 FORMAT(16E15.5)
  101 FORMAT(2F10.5,I5)
C
      RETURN
      END
C
C
      SUBROUTINE FDEP(N,G,FL,DF,NF,AMFR,AMFI)
      DIMENSION AMFR(1000),AMFI(1000)
      IF(N.EQ.0)RETURN
      DO 1 I=1,NF
      AMFR(I)=1.
      AMFI(I)=0.
    1 CONTINUE
      RETURN
      END
C
C
      SUBROUTINE ZPLOT(NF1,NF,FD,NDST,MPLOT,lin,lou)
      CHARACTER*80 MTEXT
      COMMON/PLOT1/RESP(30000),IFREQ(100),AMPL(100),DST(100),MCOMP
C
      IRUN=0
      SHIFT=5.
C
    2 READ(LIN,*)MTEXT
      WRITE(LOU,105)MTEXT
      SC=1.
      READ(LIN,*)XMIN,XMAX,XLEN,DTICX,SC
      WRITE(LOU,100)XMIN,XMAX,XLEN,DTICX,SC
      IF(ABS(XLEN).LT..00001)GO TO 99
      READ(LIN,*)AMIN,AMAX,ALEN,DTICA
      WRITE(LOU,100)AMIN,AMAX,ALEN,DTICA
      NLOG=0
      NTICX=1
      NTICA=1
      NDX=0
      NDA=0
      READ(LIN,*)NLOG,NTICX,NTICA,NDX,NDA
      WRITE(LOU,101)NLOG,NTICX,NTICA,NDX,NDA
      XMER=XLEN/(XMAX-XMIN)
      AMER=ALEN/(AMAX-AMIN)
      CALL PLOT(5.,5.,-3)
C
C     LOOP FOR PLOTS
C
    1 READ(LIN,*) MTAB,(IFREQ(I),I=1,MTAB)
      WRITE(LOU,101)MTAB,(IFREQ(I),I=1,MTAB)
      IF(MTAB.EQ.0)GO TO 2
      IF(IRUN.EQ.1)CALL PLOT(XLEN+SHIFT,0.,-3)
      IRUN=1
      CALL BORDER(XLEN,DTICX,ALEN,DTICA,SC,MTEXT,0,XMIN,XMAX,
     1AMIN,AMAX,NTICX,NTICA,NDX,NDA)
C
C     LOOP FOR FREQUENCIES
C
      DO 10 I=1,MTAB
      IFF=IFREQ(I)
      AMAXIM=0.
      IF(IFF.GT.NF)GO TO 10
      FREQ=FD*FLOAT(NF1+IFF)
      DO 5 IR=1,NDST
      A=RESP(2*(IR-1)*NF+2*IFF-1)
      B=RESP(2*(IR-1)*NF+2*IFF)
      AMPL(IR)=SQRT(A*A+B*B)
      IF(AMPL(IR).GT.AMAXIM)AMAXIM=AMPL(IR)
      IF(NLOG.EQ.1)AMPL(IR)=ALOG10(AMPL(IR))
    5 CONTINUE
      IF(NLOG.EQ.1)AMAXIM=ALOG10(AMAXIM)
      IEXP=3
      DO 8 IR=1,NDST
      XNEW=(DST(IR)-XMIN)*XMER
      IF(XNEW.LT.0..OR.XNEW.GT.XLEN)GO TO 8
      A=AMPL(IR)
      IF(MPLOT.EQ.2)A=A/AMAXIM
      YNEW=(A-AMIN)*AMER
      IF(IR.EQ.1)GO TO 11
      IF(YNEW.LT.0..OR.YNEW.GT.ALEN)GO TO 6
      IF(YOLD.GE.0..AND.YOLD.LE.ALEN)GO TO 7
      IF(YOLD.LT.0.)YB=0.
      IF(YOLD.GT.ALEN)YB=ALEN
      IEXP=2
    4 AUX1=(DST(IR)-DST(IR-1))*XMER
      AUX2=YNEW-YOLD
      XOLD=XNEW-(YNEW-YB)*AUX1/AUX2
      CALL PLOT(XOLD,YB,IEXP)
      IF(IEXP.EQ.3)GO TO 12
      IEXP=3
      GO TO 7
    6 IF(YOLD.GT.ALEN)GO TO 12
      IF(YNEW.LT.0.)YB=0.
      IF(YNEW.GT.ALEN)YB=ALEN
      IEXP=3
      GO TO 4
   11 IF(YNEW.LT.0..OR.YNEW.GT.ALEN)GO TO 12
    7 CALL PLOT(XNEW,YNEW,IEXP)
   12 YOLD=YNEW
      IEXP=2
    8 CONTINUE
      U=(4.5+1.2*FLOAT(I))*SC
      UU=(4.5+1.8*FLOAT(I))*SC
      CALL NUMBER(U,ALEN+.2*SC,.3*SC,FREQ,0.,1)
      IF(MPLOT.EQ.2)CALL NUMBER(UU,ALEN+.7*SC,.3*SC,AMAXIM,0.,5)
   10 CONTINUE
      CALL SYMBOL(.2*SC,ALEN+.2*SC,.3*SC,'FREQUENCIES(HZ)=',0.,16)
      ELM=.45*SC
      T=.5*(XLEN-6.3*SC)
      CALL SYMBOL(T,-1.6*SC,ELM,'DISTANCE IN KM',0.,14)
      T=.5*(ALEN-7.65*SC)
      U=-(1.6+.4*NDA)*SC
      CALL SYMBOL(U,T,ELM,'A M P L I T U D E',90.,17)
      IF(MCOMP.EQ.0)
     1CALL SYMBOL(.2*SC,ALEN+1.5*SC,ELM,'VERTICAL',0.,8)
      IF(MCOMP.EQ.1)
     1CALL SYMBOL(.2*SC,ALEN+1.5*SC,ELM,'X-COMPONENT',0.,11)
      IF(MCOMP.EQ.2)
     1CALL SYMBOL(.2*SC,ALEN+1.5*SC,ELM,'Y-COMPONENT',0.,11)
      IF(MPLOT.EQ.2)
     1CALL SYMBOL(.2*SC,ALEN+.7*SC,.3*SC,'REDUCTION FACTOR=',0.,17)
      GO TO 1
C
C     THE END OF THE LOOP FOR FREQUENCIES
C
  100 FORMAT(8F10.5)
  101 FORMAT(16I5)
  104 FORMAT(A)
  105 FORMAT(1X,A)
   99 CONTINUE
      RETURN
      END
C
C=======================================================================
C
      INCLUDE 'source.for'
C     source.for
      INCLUDE 'border.for'
C     border.for
      INCLUDE 'error.for'
C     error.for
      INCLUDE 'length.for'
C     length.for
      INCLUDE 'sep.for'
C     sep.for
      INCLUDE 'calcops.for'
C     calcops.for
C
C=======================================================================
C