Description of BSU

Basic Seismic Utilities (BSU) is a collection of seismic signal processing programs. Also included in BSU are some modeling programs (computation of the near-field, and solution to Lamb's problem). These programs are written in Fortran 77 and the C-language. At the time of this writing, the software community is moving from Fortran77 to “gfortran”. The g77 codes compile well under gfortran, and the only major issue is linking to the correct versions of libraries like “lapack” and “gsl”. Libraries must be compiled with the same compiler that you will be using for compiling BSU. Since PLPLOT no longer supports g77, some codes have been converted to Fortran 90. When looking at source code, if the file name ends in *.F90, it is Fortran 90, and if it ends in *.f, the code format will be the older style. The configuration script should handle most situations. Tips for different Linux distributions can also be found in the README_* files included in the TAR archive (the * represents your operating system distribution or environment, like Debian, Ubuntu, CentOS, Mingw32, etc).

The binary data file format of BSU (BSEGY) is derived from SEG-Y (omit the reel header, 240 byte trace header, floating point data, 4 bytes per sample value). This format is compatible with the Seismic Unix (SU) (Cohen (3) ) package (Colorado School of Mines, CWP), but differs in some optional header definitions. While SU is designed primarily for CDP reflection data, BSU is designed for engineering geophysical surveys (down-hole, refraction, near field, and surface waves). The BSU package is well suited for 3-component data collection (headers include source and geophone polarization information). Crooked line and data acquisition in irregular patterns are easily handled by geometry setting procedures which integrate electronic distance measuring survey files (NEZ) with the file formats from common engineering seismographs (SEG-2 and BISON). The BSU package also includes Octave|Matlab procedures for reading the BSU binary file format, BSEGY.

These codes were written over a number of years, some as early as 1967 (26 keypunch, BCD, later 29 keypunch, EBCD, up to the present state of affairs). Do not be surprised that the code is a bit patch worked and mixed language. It was not designed, but evolved. As I look backward, a lot has changed since my first connection between two computers in the military and the present day Internet with the WWW.

Finally, BSU evolved to fill needs I have had as a practicing engineering geophysicist, and to serve my needs in research and education. Like SU, it is meant to be compiled, modified, and extended. If you read further, you will find that the Fortran and C-language masters (bmst.f and cmst.c) provide enough of an example to have one programming in BSU within a day. There are usually 3 steps:

  1. Read a trace (bsegin.f or c_bsegin.c)
  2. Do some computations.
  3. Write a trace (bsegout.f or c_bsegout.c)



Subsections