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.