Comments from FORTRAN code
cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
c                                                                      c
c                  Program: PRONTO                                     c 
c                  Programmer:  D.F. Aldridge                          c
c                  Last Revision Date:  5 May 1998                     c
c                                                                      c
cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
c
c  Program PRONTO performs a tomographic inversion of first arrival
c  traveltimes to obtain two-dimensional velocity model.
c
c  Run Parameters:
c
c    dxz:  grid interval (m). 
c
c    xmin_xtend: slowness model expansion distance in -x direction (m).
c    xmax_xtend: slowness model expansion distance in +x direction (m).
c    zmin_xtend: slowness model expansion distance in -z direction (m).
c    zmax_xtend: slowness model expansion distance in +z direction (m).
c
c    tmin: minimum observed traveltime to use in inversion (s).
c    tmax: maximum observed traveltime to use in inversion (s).
c
c    Parameter defining `zeroth derivative' constraints:
c
c    mu0: weight.
c
c
c    Parameters defining first derivative constraints:
c
c    mu1_h:  horizontal derivative weight.
c    mu1_v:  vertical derivative weight.
c    mu1_d:  directional derivative weight. 
c    theta1: angle (rel to +x) of directonal derivative (deg).
c
c
c    Parameters defining second derivative constraints:
c
c    mu2_h:  horizontal derivative weight.
c    mu2_v:  vertical derivative weight.
c    mu2_d:  directional derivative weight.
c    theta2: angle, rel to +x, of directional derivative (deg).
c    mu2_m:  mixed derivative weight.
c
c
c    xwidth: horizontal width of smoothing filter (m).
c    zwidth: vertical width of smoothing filter (m).
c    cwait:  center value of `tent-shaped' weight distribution.
c
c    iop_vin: option flag for initial velocity model:
c             1=generate internally from linear velocity formula.
c             2=read from external file #12.
c
c    Parameters defining linear initial velocity model (only used
c    if iop_vin=1):
c
c    xo_in:  horizontal coordinate of reference point (m).
c    zo_in:  vertical coordinate of reference point (m).
c    vo_in:  velocity at reference point (m/s).
c    a_in:   magnitude of velocity gradient (1/m).
c    phi_in: direction angle, rel to +x, of velocity gradient (deg). 
c
c
c    iop_vref: option flag for reference velocity model:
c              0=same as initial velocity model.
c              1=generate internally from linear velocity formula.
c              2=read from external file #13.
c
c    Parameters defining linear reference velocity model (only used
c    if iop_vref=1):
c
c    xo_ref:  horizontal coordinate of reference point (m).
c    zo_ref:  vertical coordinate of reference point (m).
c    vo_ref:  velocity at reference point (m/s).
c    a_ref:   magnitude of velocity gradient (1/m).
c    phi_ref: direction angle, rel to +x, of velocity gradient (deg).
c
c    iop_topo: surface topography option flag: 
c              0=ignore.
c              1=horizontal surface with fixed vertical coordinate.
c              2=read surface topography function from file #14.
c    z_topo:   z-coordinate of a horizontal surface (m).
c    v_reduce: velocity reduction factor above topographic surface.
c    airspeed: speed of sound in air (m/s).
c
c    iop_tout: option flag for traveltime/residual output:
c              0=no output.
c              1=write final predicted traveltimes to file #16.
c              2=write final predicted traveltime residuals to file #16.
c
c    errlim: rms traveltime residual for terminating iterations (s).
c    tcutoff: upper limit for including residuals in inversion (s).
c
c    niter:  maximum number of tomographic iterations.
c    itmax:  maximum number of LSQR iterations.
c
cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
c
c  Input/Output:
c
c    1) Run parameters are read from file #10.
c
c    2) Observed data is read from file #11.
c
c       Source and receiver coordinates, observed traveltimes, and
c       data weights are organized in a `source gather' format within
c       input file #11.  Data are read with the fortran code:
c       
c           read (11,*) nshots
c           do 1 i=1,nshots
c           read (11,*) xs,zs,nrecs(ishot)
c           do 1 j=1,nrecs(ishot)
c         1 read (11,*) xr,zr,tobs,wait
c
c       where
c
c       nshots   = total number of source gathers.
c       (xs,zs)  = source x and z coordinates (m).
c       nrecs(ishots) = number of receivers in current source gather.
c       (xr,zr)  = receiver x and z coordinates (m).
c       tobs     = observed traveltime (s).
c       wait     = datum weight (dimensionless).
c        
c    3) Initial velocity model is read from file #12.
c
c       Three columns of values are read from input file #12 with
c       the fortran code:
c
c           do 1 j=1,nz
c           do 1 i=1,nx
c         1 read (12,*) x,z,v(i,j)
c
c       where
c
c       v(i,j) = velocity value associated with coordinates
c
c          x=xmin+(i-1)*dx     z=zmin+(j-1)*dz.
c
c    4) Reference velocity model is read from file #13. 
c
c       Format of input velocity file #13 is identical to input
c       velocity file #12.
c
c    5) Surface topography function is read from file #14.
c
c       Format of input topography file #14 is a list of coordinate
c       pairs defining the surface topography.  File #14 is read
c       read with the fortran code:
c     
c           read (14,*) nsurf
c           do 1 i=1,nsurf
c         1 read (14,*) xsurf(i),zsurf(i)
c
c       where
c
c       xsurf(i) and zsurf(i) are horizontal and vertical 
c       coordinates of a point on the topographic surface.
c
c    6) Final velocity model is written to file #15.
c
c       Format of output velocity file #15 is identical to input
c       velocity file #12.
c
c    7) Final raypath density map is written to file #16.
c
c       Three columns of values are wriiten to output file #16 with
c       the fortran code:
c
c           do 1 j=1,nz-1
c           z=zmin+(j-0.5)*dz
c           do 1 i=1,nx-1
c           x=xmin+(i-0.5)*dx
c         1 write (16,*) x,z,rayden(i,j)
c
c       where
c
c       rayden(i,j) = raypath density value associated with
c       coordinates x and z.
c
c    8) Final predicted traveltimes (or traveltime residuals) are
c       written to file #17.
c
c       Format of data output file #17 is identical to data input
c       file #11.
c
c    9) Diagnostic information is written to standard output (file #6)
c       during run time.  To store this info in an external file,
c       redirect standard output to a named file name via the UNIX
c       command `pronto.exe > filename'.
c
cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
c    
c  Fortran Code Compilation:
c
c    UNIX command `f77 pronto.f -o pronto.exe' generates a compiled
c    code file named `pronto.exe' from source code file `pronto.f'.
c
cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
c
c  Array Size Specification:  
c
c    The following parameters, all suffixed by _dim, limit the size of
c    the problem that can be handled.
c
c    1) Max dimensions of slowness grid: nx_dim horizontal points 
c             by nz_dim vertical points.  nxzmax_dim should be
c             set equal to the larger of nx_dim and nz_dim.
c    2) Max no. of traveltimes: ndata_dim.
c    3) Max no. of equations to solve: neqats_dim.
c    4) Max no. of square cells in slowness model: ncells_dim.
c    5) Max no. of nonzero elements in Jacobian matrix: njaco_dim.
c    6) Max no. of traveltimes per shot gather: nrecmax_dim.
c    7) Max no. of sources: nshots_dim.
c    8) Max no. of horizontal points in smoother: nxw_dim.
c    9) Max no. of vertical points in smoother: nzw_dim.
c
c    Array dimensions should be increased with the fortran `parameter' 
c    statements below in order to treat larger sized problems.
c
cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc

      parameter (nx_dim     =1001)
      parameter (nz_dim     =501)
      parameter (nxzmax_dim =1001)
      parameter (ndata_dim  =100000)
      parameter (neqats_dim =500000)
      parameter (ncells_dim =300000)
      parameter (njaco_dim  =3000000)
      parameter (nrecmax_dim=1000)
      parameter (nshots_dim =1000)
      parameter (nxw_dim    =100)
      parameter (nzw_dim    =100)
Return to PRONTO documentation.