Description of the program  S Y N F A N

    Program  SYNFAN  is  designed  for  the  computation  of  ray
synthetic seismograms at a system of receivers situated along the
Earth's surface, an internal interface or vertical profile.

Short description of the program SYNFAN

    Program  SYNFAN is  a modification  of the  program SYNT from
program package BEAM87 written  by V.Cerveny. The seismograms are
computed  from the  frequency responses  stored in  the file LU8,
generated in  the program FRESAN.  Program SYNFAN generates  file
LU9  containing tables  of  synthetic  seismograms  which  can be
plotted in the form of seismograms in the program BPLOT or in the
form of  particle motion diagrams in  the program POLARPLOT. Both
programs are included in the program package ANRAY.

    The fast  Fourier transform algorithm is  used to compute the
synthetic seismograms  corresponding to individual  components of
the  displacement  vector  (vertical,  radial,  transverse)  from
frequency   responses.  Various   source-time  functions   (input
signals)  can be  optionally used  in the  program SYNFAN:  Gabor
signal,  Ricker signal,  Berlage signal,  Muller signal,etc.  Any
other signal  may be easily  introduced in a  discrete form by  a
table of points. The input signal may be filtered in various ways
to  introduce some  required frequency  domain effects (recording
instruments,  etc.). Moreover,  filterring should  be applied  to
exclude  very  low  frequencies  from  the source-time functions,
since  the ray  method is  a high-frequency  method and  does not
yield  sufficiently accurate  results for  very low  frequencies.
Such filtration  can be suitably  performed by the  double cosine
filter,  see  input  data  No.11.  The  application of the double
cosine filter is also suitable to select only the frequency range
of interest and to increase the numerical efficiency and speed of
computations. Positive  polarity of pulses  in seismograms is  to
the left of vertical time axis.

    Some  plotting  possibilities  are  available  in the program
SYNFAN.  For  each  receiver  under  consideration  the  computed
synthetic seismogram may be optionally plotted in a single frame.
Moreover, it is  also possible to plot optionally  the modulus of
the  frequency  response  and/or  the  amplitude  spectrum of the
synthetic seismograms. All these curves are plotted individually,
one curve  in one frame.  Such figures may  serve for a  detailed
investigation of the wave field at selected receiver positions.

    Several figures may be also  plotted to investigate in detail
the properties of the source-time function: the input signal, its
amplitude spectrum,  the amplitude spectrum  after filtering, and
the  input  signal  after  filtering.  The  last  figure  is very
important since it  enables to see the actual  shape of the input
signal  used  to  construct  synthetic  seismograms.  The program
SYNFAN  also offers  a possibility  to investigate systematically
the  properties  of  various  input  signals  and  the effects of
frequency  filtration of  these signals  on their  shape, without
computation of synthetic seismograms.

    Note that  the program SYNFAN does  not depend on the  way in
which  the frequency  response was  obtained. Thus  any frequency
response stored in  the prescribed way can be  used for computing
synthetic seismograms. As the program  synt uses the fast Fourier
transform  algorithm,  attention  should   be  paid  to  possible
aliasing effects.

***
    Positive polarity of impulses is to the left of vertical
time axis.

    The components of the displacement vector into the x and y
coordinates of the model coordinate system are formally called
"radial" and "transverse" components, respectively. They are
truly radial and transverse if the profile of receivers lies
along the x-axis. By use of the angle AROT, see program FRESAN,
horizontal components can be transformed into a rotated coordinate
system.
***

                                                     
Description of input and output files

    Main input data are read from the standard input by list-directed
input (free format) and consist of a single line containing following
data:
    'LIN' 'LOU' 'LU8' 'LU9'/
Here:
    'LIN' is the name of the input data file LIN.
    'LOU' is the name of the output log file LOU.
    'LU8' is the name of the input data file LU8,
          generated by program FRESAN.
    'LU9' is the name of the output data file LU9.
    / is a slash recomended in batch and script files to enable future
        extensions.
Defaults:
    'LIN'='synfan.dat'
    'LOU'='synfan.out'
    'LU8'='lu8.in'
    'LU9'='lu9.out'
Example of the main input data:
    'synfan.sch' /

    Input  data consist  partially of  the data  generated by the
program FRESAN, stored in the formatted form in the file LU8, and
partially of the  additional input data prepared by  the user and
stored in  the file LIN. Output  data describing the computations
are stored  in the file  LOU. Output data  for plotting synthetic
seismograms  are stored  in the  file LU9. The program  generates
a postscript file with the desired plot.

                                                      
The data stored in LU8

    The data are  stored in LU8 in a  formatted form. For details
see the  description of the  content of the  file LU8 in  program
FRESAN.

1) MPRINT                                   FORMAT(A)
2) IPRINT                                   FORMAT(A)
3) XSOUR,YSOUR,ZSOUR,TSOUR,RSTEP,FL,FD      FORMAT(5F10.5,2E15.7)
4) NDST,NFS,ILS,MCOMP,ILOC                  FORMAT(26I3)
5) DST,AA                                   FORMAT(F10.3,E12.5)
6) (IS(I),I=1,2*NFS)                        FORMAT(12I6)

                                                      
The additional input data

    These data  are specified by  the user. The  data control the
computation of synthetic seismiograms. The places, where the data
from LU8 are read in are denoted by **LU8/1, **LU8/2, etc.

1) Arbitrary alphanumeric text describing the data set.

   TITLE                                    FORMAT(A)

2)  Switches controlling  the output  of results  into the output
file LOU and specifying the input and output files LU2 and LU8.

   IPR1,IPR2                                FORMAT(16I5)

    IPR1...   controls the storage of a general information.
              IPR1=0... input data are stored.
              IPR1=1... tables   of  input  signal, its amplitude
              spectrum, filtered amplitude spectrum, and filtered
              input signal are stored.
    IPR2...   controls storage of synthetic  frequency responses,
              spectrum  of  synthetic  seismograms  and synthetic
              seismograms.
              IPR2=0... no data are stored.
              IPR2=1... synthetic seismograms are stored.
              IPR2=2... synthetic   seismograms   and   frequency
                        responses are stored.
              IPR2=3... synthetic seismograms,frequency responses
                        and spectra of  synthetic seismograms are
                        stored.
              Warning: The  above tables for  IPR.NE.0 are stored
              for  all  epicentral  distances.  Print  is  heavy,
              particullarly for IPR1=1 or IPR2=3.

3) Various switches controlling the computations.

   NSIG,NPTS,NT,NWIN,NFILT,NPLOT,NSTOP,NSH,NDER,NINT
                                            FORMAT(16I5)

    NSIG...   controls the input of the source-time function.
              NSIG=0... analytical signal.
              NSIG.GT.0... source-time  function  introduced by a
              table, see input data No.10.
    NPTS...   number of  points  in the definition of the signal.
              Use NPTS.LE.2048.
    NT...     number of points in the FFT.  Use 2048,1024,512,256
              or 128. Default value, NT=1024.
    NWIN...   controls the filtration of the input signal.
              NWIN=0... no filtration.
              NWIN=1... Fuchs'   double    cosine   filter,   see
              additional input data No.11.
    NFILT...  controls  an  additional  filtering  in the routine
              FILTER.
              NFILT=0... no filtration.
              NFILT=1... filtration.
    NPLOT...  controls the plotting of results.
              NPLOT=0... no plotting.
              NPLOT.GT.0... plotting required.
    NSTOP...  NSTOP=0... standard    computation   of   synthetic
              seismograms.
              NSTOP=1... investigation   and  plotting  of  input
              signal,  its amplitude  spectrum, filtered spectrum
              and  filtered  input   signal.  No  computation  of
              synthetic seismograms.
    NSH...    shift  between  individual  figures, in cm. Default
              value NSH=5.
    NDER...   derivative of the input signal.
    NINT...   integral of the input signal.

4) Specifies the receivers for which plots of frequency response,
   amplitude  spectrum   and  synthetic  seismogram   are  to  be
   performed. Specified only for NPLOT.NE.0.

   NNPLOT,(NDIS(I),I=1,NNPLOT)              FORMAT(16I5)

    NNPLOT... number of receivers for which plots are to be made.
    NDIS(I)... successive number of the receiver, for which plots
              are to be made.

**LU8/1
**LU8/2
**LU8/3
**LU8/4

5)  Data for  plots of  frequency responses.  Under the frequency
    response, the modulus of the frequency response is understood
    here. The phase of the frequency response is not plotted.

   ARESP(1)-ARESP(6),JRESP(1)-JRESP(4)      FORMAT(6F10.5,4I5)

    ARESP(1)... horizontal  (frequency)  axis: minimum frequency,
              in Hz.
    ARESP(2)... horizontal  (frequency)  axis: maximum frequency,
              in Hz..
    ARESP(3)... length of the horizontal axis, in cm.
    ARESP(4)... vertical  (frequency   response)  axis:   minimum
              value.
    ARESP(5)...  vertical  (frequency   response)  axis:  maximum
              value.
    ARESP(6)... length of the vertical axis, in cm.
    JRESP(1)... number of intervals along the horizontal axis.
    JRESP(2)... number of intervals along the vertical axis.
    JRESP(3),JRESP(4)... control   the   precision   of   numbers
              describing  the  coordinate   axes  in  the  plots.
              JRESP(3)   corresponds  to   the  horizontal  axis,
              JRESP(4) to the vertical axis.
              JRESP.GT.0... the number of  digits to the right of
              the decimal point.
              JRESP=0...  only  integer  portions  of the numbers
              with decimal points.
              JRESP.LT.0... integers.

6) Data  for  plots of  amplitude spectra  of input signal and/or
   synthetic seismograms. Phase spectra are not plotted.

    ASPECT(1)-ASPECT(6),JSPECT(1)-JSPECT(4) FORMAT(6F10.5,4I5)

              The meaning  of the parameters is  analogous to the
              parameters specified in additional input data No.5,
              horizontal axis corresponds  to frequency, vertical
              axis to spectral values.

7) Data for plots of synthetic seismograms and/or input signals.

   ASYNT(1)-ASYNT(6),JSYNT(1)-JSYNT(4)      FORMAT(6F10.5,4I5)

              The meaning  of the parameters is  analogous to the
              parameters specified in additional input data No.5,
              horizontal axis corresponds  to time, vertical axis
              to values in which seismogram (impulse) is measured.

8) Controls  the   plotting  of  the  input  signal  (source-time
   function) and related functions.

   NPL1,NPL2,NPL3,NPL4                      FORMAT(16I5)

    NPL1...   controls input signal (source-time function).
    NPL2...   amplitude spectrum of the input signal.
    NPL3...   amplitude spectrum of the  filtered and/or windowed
              input signal.
    NPL4...   filtered and/or windowed input signal.
              NPL=0... no plot.
              NPL=1... reduced plot, with unit maximum.
              NPL=2... non-reduced plot.

9) Data for  input signal  given analytically.  Included only for
   NSIG=0. The computations  are  performed in the  routine SFUN.
   The user is free to add to the routine SFUN its own analytical
   signals.

   IAUX(1)-IAUX(4),AUX(1)-AUX(4),TO   FORMAT(4I5,5F10.5)

    IAUX(1)... specifies the type of the input signal.
           IAUX(1)=1... Gabor signal:

              F(T)=EXP(-(2*PI*FM*(T-TI)/GAMMA)**2)
                   *COS(2*PI*FM*(T-TI)+VNI)

              IAUX(2)-IAUX(4)... no meaning.
              AUX(1)=FM   (prevailing frequency)
              AUX(2)=GAMMA
              AUX(3)=VNI
              AUX(4)=TI

           IAUX(1)=2... Berlage signal:

              F(T)=EXP(-BETA*(T-TI))*SIN(2*PI*FM*(T-TI))*
                                                  *(T-TI)**VNI

              IAUX(2)-IAUX(4)... no meaning.
              AUX(1)=FM
              AUX(2)=BETA
              AUX(3)=VNI
              AUX(4)=TI

           IAUX(1)=3... Muller signal:

              F(T)=SIN(N*PI*(T-TI)/TP)-(N/(N+2))*SIN((N+2)*PI*(T-TI)/TP)

                                 for  0.LE.T.LE.TP,
              F(T)=0             for  T.LT.0 AND FOR T.GT.TP

              IAUX(2)=N
              IAUX(3),IAUX(4)... no meaning.
              AUX(1)=TP
              AUX(2)=TI

           IAUX(1)=4... Ricker signal:

              F(T)=(1-2*((T-TI)*BETA)**2)*EXP(-(BETA*(T-TI))**2)

              F(T) is the normalized second time derivative
              of the Gaussian signal EXP(-(BETA*(T-TI))**2)

              IAUX(2)-IAUX(4)... no meaning.
              AUX(1)=BETA
              AUX(2)=TI

           IAUX(1)=5... Box-car signal:

              F(T)=0           for T.LT.AUX(1) and T.GT.AUX(2)
              F(T)=AUX(3)      for AUX(1).LE.T.LE.AUX(2)

           IAUX(1)=6... Ramp function:

              F(T)=0           for T.LE.AUX(1) and T.GT.AUX(3)
              F(T)=AUX(4)      for AUX(2).LE.T.LE.AUX(3)
              F(T)             is  linear   between   AUX(1)  and
                               AUX(2)

           IAUX(1)=7... Triagonal function:

              F(T)=0           for T.LE.AUX(1) and T.GE.AUX(3)
              F(T)=AUX(4)      for T=AUX(2)
              F(T)             is  linear   between   AUX(1)  and
                               AUX(2)  and  between   AUX(2)  and
                               AUX(3).

           IAUX(1)=8... One sample function:

              F(I)=AUX(1)         for I=IAUX(2)
              F(I)=0              for I.NE.IAUX(2).

    TO... initial time in the plot.

The last four signals serve only for special purposes. Please, do
not use them without a suitably chosen frequency window.

10) Data for input signal given  discretly by  a table.  Included
    only for NSIG.GT.0

   IS(I),I=1,NPTS                           FORMAT(16I5)

    IS(I)...  I-th sample of the discretly specified  source-time
              function (input signal). The actual signal is given
              by the relation:
              F(I)=IS(I)*10**(-NSIG),
              where F(I) corresponds to the time
              T=T0+DT*FLOAT(I-1).

11) Data for the frequency  filter  (double cosine Fuchs filter).
    Included only if NWIN=1.

   FLO,FLEFT,FRIGHT,FRO,FEXP                FORMAT(8F10.5)

    FLO,FLEFT,FRIGHT,FRO,FEXP... parameters of the filter.
              FLO.LE.FLEFT.LE.FRIGHT.LE.FRO.
              Outside the interval , the filter is zero.
              Inside the interval ,  the filter is
              equal one. Within  the  intervals   and
              , cosine smoothing  with  the exponent
              FEXP is applied.
              For example, for FLO.LT.F.LT.FLEFT:
              W(F)=(0.5+0.5*COS(PI*(F-FLO))/(FLEFT-FLO))**FEXP,
              with PI=3.14159.
              Choose FLO.GE.FL and FRO.LE.FR, where FL and FR are
              lower and upper limit  of frequency  range in which
              frequency response was computed.

**LU8/5
**LU8/6

Data LU8/6 and LU8/7 are  successively  read in  from LU8 for all
receivers (NDST times).

12) Data for plots of frequency responses, synthetic seismograms,
    etc., for individual receivers.

   NPR1,NPR2,NPR3,TMIN,TMAX,TLEN            FORMAT(3I5,3F10.5)

    NPR1...   index controlling frequency response (modulus).
    NPR2...   index  controlling   amplitude   spectrum  of   the
              synthetic seismogram.
    NPR3...   index controlling synthetic seismogram.
              NPR=0... no plot.
              NPR=1... reduced plot,maximum=1.
              NPR=2... non-reduced plot.
    TMIN...   specifies initial time for the plot of synthetic
              seismogram.
    TMAX...   specifies maximum time for the plot of synthetic
              seismogram.
    TLEN...   length of the time axis in the synthetic seismogram
              plot, in cm.

Example of data LIN

Termination of computations.

    The input  data sub 12 are repeated  NNPLOT times,  see input
data sub 4 for  NNPLOT, for each receiver for which plots are re-
quired. The selection of receivers is performed  as follows:  The
data  LU8/7 are  read  successively for  all receivers. For  each
reading, it is checked whether DST from LU8/7 corresponds to some
NDIS(I). If yes,  input data  sub 12 are  read in and plotting is
performed. Thus, the order of readings 12 must  correspond to the
order of receivers  NDIS(I). After   reading  the  data  for  all
selected receivers, the computations terminate.


OUTPUT TABLES

                                                      
Output to the file LOU (information about computations)

All the input data  are  automatically  stored  in  the file LOU.
In addition the data LU8/1-LU8/5 are  also  automatically stored.

The additional print is controlled by the input parameters IPR1
and IPR2:
    If IPR1.NE.0, four tables relevant to the input signal are
printed, with the following headings and quantities:
    A) INPUT SIGNAL   TO,DT,AREDUC,NPTS
    B) AMPLITUDE SPECTRUM OF THE INPUT SIGNAL   DF,AREDUC,IRS
    C) AMPLITUDE SPECTRUM OF THE INPUT SIGNAL, WINDOW APPLIED
       DF,AREDUC,IRS
    D) INPUT SIGNAL,FREQUENCY WINDOW APPLIED  TO DT,AREDUC,NPTS

    If IPR2.ne.0, one or two or three tables are printed for each
receiver position:
    A) For IPR2=1, synthetic seismograms are printed. Heading
shows the quantities DST,TO,DT,AREDUC,NT
    B) For IPR2=2, modulus of the frequency response is printed
in addition to the table of synthetic seismograms. Heading shows
DST,DF,AREDUC,IRSS.
    C) For IPR2=3, amplitude spectrum of the synthetic seismograms
are printed, in addition to A and B. Heading also shows the quantities
DST,DF,AREDUC,IRSS.


                                                      
OUTPUT TO THE FILE LU9

To plot the synthetic seismogram section in the program BPLOT and/or
the particle motion diagrams in the program POLAR, the synthetic
seismograms calculated in the program SYNFAN are stored in the file
LU9, together with some other necessary or informative data. The
data in LU9 are stored in the following order:

1) MPRINT                                   FORMAT(A)
   alphanumeric text, describing the input data file in the program
ANRAY.

2) IPRINT                                   FORMAT(A)
   alphanumeric text, describing the input data file from the
program FRESAN.

3) STEXT                                    FORMAT(A)
   alphanumeric text, describing the input data file from the
program SYNTAN.

4) XSOUR,YSOUR,ZSOUR,TSOUR,RSTEP,DT,DF      FORMAT(5F10.5,2E15.7)

    XSOUR,YSOUR,ZSOUR... coordinates of the source.
    TSOUR...  initial time.
    RSTEP...  the distance between recievers for a regularly
              distributed system of receivers. The average
              distance between recievers for an irregularly
              distributed system of receivers.
    DT...     time step.
    DF...     frequency step.

5) NDST,NT,MCOMP,ILOC                       FORMAT(16I5)

    NDST...   number of receivers.
    NT...     number of points in the Fast Fourier Transform
              algorithm (2048,1024,512... ).
    MCOMP...  MCOMP=0...  vertical component.
              MCOMP=1...  radial component.
              MCOMP=2...  transverse component.
    ILOC...   controls the orientation and position of the profile,
              on which receivers are situated.
              ILOC=0:  Receivers along a surface profile.
              ILOC=1:  Receivers along a vertical profile.
              ILOC.GT.1:  Receivers along the ILOC-th interface.

6) DIST,TO,AREDUC,NT              FORMAT(2F10.3,1E12.5,I5)

    DST...    x-coordinate of the receiver.
    TO...     initial time corresponding to the first point
              of synthetic seismogram.
    AREDUC... maximum amplitude in the synthetic seismograms
              corresponds to NT given in LU9/5.
    NT...     number of points of the synthetic seismograms.

7) IS(I),I=1,NT                             FORMAT(20I4)

    Synthetic seismogram corresponding to the reciever situated
at the x-coordinate given by DST, see LU9/6, in a reduced form.
Note that the quantities XSOUR, YSOUR, ZSOUR, TSOUR have only
informative meaning and are not used in the computations in the
programs BPLOT and POLAR.


GRAPHICAL OUTPUT

The graphical output has many options which are well described in
this documentation, see above. In fact, most of the computed
quantities can be plotted. In addition to four pictures for the
input signal, three pictures can be optionally plotted for each
receiver position. Thus the maximum number of generated figures is
3*NDST+4.