CWP Software Update: 15 August 1995  (27th edition)

The new compressed tars are available at our anonymous ftp
Internet address:  hilbert.mines.edu
or
138.67.12.63
The directory path is: pub/cwpcodes	

The files you will need are (xx stands for the number of
the current release):
README_BEFORE_UNTARRING
untar_me_first.xx.tar.Z    --- contains README and Portability information
cwp.su.all.xx.tar.Z        --- contains the source code for the release

For incremental updating, instead take:
README_TO_UPDATE
update.yy.to.xx.tar.Z
update.list

For detailed information on the free materials currently
available from CWP (Center for Wave Phenomena), send e-mail
to:
cwpinfo@dix.mines.edu
and
samizdat@dix.mines.edu

Acknowledgements:
================================================================
We thank the Gas Research Institute and the Consortium Project
on Seismic Inverse Methods for Complex Structures for their
financial support of the SU project.
================================================================

Featuring:
================================================================
Stewart A. Levin of Mobil Oil -- At Stanford Stew was an important
contributer to the software that eventually became SU.  In the
years since, he made many additional contributions to SU.
You will note many references to Stew in the release notes
below and there are still more of his contributions in the wings
that we couldn't get installed for this release.

Zhenyue Liu -- Zhen has just finished his PhD at CWP and has
joined EXXON.  We are pleased to present several of codes in
this release.
================================================================

On line SU Demonstrations:
================================================================
demos/
This directory has been updated extensively.  Almost all the demos
are either new or significantly modified.   The X versions are
now much more likely to run ;-) and the PS versions do not assume
that your PostScript previewer can read from a pipe.  This
directory supplements "The SU User's Manual."  The following
demo subdirectories comprise an introduction to using SU: 
	Making_Data		(new)
	Filtering/Sufilter	(new)
	Deconvolution
	Sorting_Traces/Tutorial
	Sorting_Traces/Demo
	Selecting_Traces
	NMO

Also, the remaining directories illustrate a number of important
seismic utilities:
	Synthetic		sufdmod2, suimp2d, susynlv, susynvxz
	Time_Freq_Analysis	sugabor, sutvband, 
	Velocity_Profiles	smooth2, smooth3d, smoothint2, unif2
	Vibroseis_Sweeps	suvibro
	Migration		sugazmig, sumigps, sukdmig2d

Comments about the existing demos and suggestions for additional ones
are most welcome.

================================================================

Geometry Setting:
================================================================
Setting geometry for non-uniform fields has been a long-standing
deficiency.  The new version of su/main/sushw accepts a binary file
containing the desired header information.  Typically, users will
have the data in an ascii file and use editors to transform this
file into an ascii version of the form that sushw requires.  The
final step is then a conversion to a binary file with
cwp/main/a2b.

Another common scenario is changing a few entries in an existing
header field.  Here, the new version of su/main/sugethw can be of
assistance.  Also, sugethw can be used to supply an ascii template
with the correct file format.

See the sushw and sugethw self-docs for full information.
================================================================

WWW Home Pages of Interest and other Creative Uses of SU
================================================================
CWP Home Page:

http://cwp.mines.edu:3852/1/
=====
The CWP home page was designed by: John Scales, Geophysics, CSM
(jscales@mines.edu) John is a principal editor of Samizdat
Press, a project to create and distribute free text books over the
Internet.  In particular, he is the author of Samzidat's "Theory of
Seismic Imaging," a text whose computer exercises use SU extensively.
John's own home page:

http://vita.mines.edu:3857/1s/jscales

points to sites of interest to geoscientists, physicists
and mathematicians among others.  John has recently installed
a new home page for Samizdat Press:

http://landau.mines.edu/~samizdat/
=====
Edo Nyland, Geophysics, U. Alberta (edo@phys.ualberta.ca)
has made creative use of SU in his courses.  His home page is:

http://geonext.phys.ualberta.ca/

In particular, check out

http://uglab.phys.ualberta.ca/web/Geophysics428/webPage.html#Term2

for exercises involving SU.
=====
The article, "Ground-penetrating radar: A near-face experience from
Washington County, Arkansas" by Christopher L. Liner and Jeffrey
L. Liner refers extensively to SU processing and was the cover story
of the January 1995 issue of The Leading Edge, a publication of the
SEG.
================================================================

Installation Notes:
================================================================
Simplified installation on little endian platforms by putting an
ENDIANFLAG in Makefile.config.  The codes will no longer have to
be hacked for installation on little endian platforms.  Affected
codes: cwp/lib/rfwtva.c xplot/main/xwigb.c

If you are installing on an "older" model SUNs with the GCC
compiler, but are not using the glibc libraries" you now need only
set the compile time flag -DSUN_A to get the codes to install.

Changes to Makefile.config: PRELFLAGS and POSTLFLAGS are defined
to permit users to prepend or append additional flags to the
LDFLAGS lines in the Makefiles.  This permits the user to do
static compilation for example.
	==> Thanks to Joe Dellinger, Amoco, for this idea.

Change to par.h to declare instead of define xargc and xargv
makes Silicon Graphics installs (and probably others) much
quieter.
	==> Thanks to Craig Artley, Golden Geophysical
================================================================

New Software:
================================================================
su/main/sukdsyn2d.c - Kirchhoff Depth SYNthesis of 2D seismic data
	from a migrated seismic section
	Note: Companion demo in demos/Synthetic/Kirchhoff/Sukdsyn2d

	This program takes a migrated seismic section and a set of
	travel time tables generated using rayt2d for a specific
	background velocity model and generates synthetic seismic
	data in the form of common shot gathers. (Common offset
	gathers may be generated by using nxo=1.)  This program
	may be used for the migration residual statics estimation
	technique of Tjan, Audebert, and Larner 1994.
	==> Author: Zhenyue Liu

su/main/sukdmig2d.c - Kirchhoff Depth Migration of 2D poststack/prestack data
	sukdmig2d depends on the traveltime tables computed by rayt2d
	(see below).  The amplitudes of sukdmig2d are not exact, but are
	computed assuming a linear V(z) velocity profile.
	==> Author: Zhenyue Liu

su/main/suresstat.c -- Surface consistent source and receiver statics
	calculation (based on the method of Ronen and Claerbout,1985)
	This is a fresh rewrite of the previous (non-functioning)
	version of suresstat.
	==> Author: Timo Tjan
	==> Thanks to Bob Harms of the Australian Geological
	Survey Organisation for alerting us to the serious
	problems with the old version of this code (written by a
	committee of undergraduates)

su/main/suspeck1k2.c - 2D (K1,K2) Fourier SPECtrum of (x1,x2) data set
	Alternate to suspecfk, when you want a centered 2D transform
	that is really k1, k2, instead of f-k.  Remark: Probably
	should just be an option in suspecfk.
	==> Author: John Stockwell

par/main/rayt2d.c -- traveltime Tables calculated by 2D paraxial RAY tracing
	==> Author: Zhenyue Liu

cwp/lib/complexd.c -- functions to manipulate double-precision complex numbers
	dcadd, dcsub, dcmul, dcdiv, dcmplx, dconjg, dcneg, dcinv,
	dcsqrt, dcexp, dcrmul, drcabs

cwp/shell/Grep.sh -- recursive form of grep (actually egrep)
	E.g., to search for all occurances of sugethw in files
	on the current directory tree:
		Grep sugethw
	Caveats: It is confusing to redirect the output into
		a file in the current directory tree.  Recursive
		shells are inherently dangerous. 
	==> Author: Jack Cohen

cwp/shell/zap.sh -- destroy processes by name (including patterns)
	E.g. when finished running a demo that puts up numerous
	xmovie windows:
		zap xmovie
	Similarly:
		zap 'xmovie|xgraph'
	Caveats:  All processes with the given name(s) will be
		terminated (e.g. emacs xmovie.c &).  Shells
		that destroy processes are inherently dangerous.
	==> Author: Jack Cohen (after Kernighan and Ritchie)

psplot/main/pslabel.c -- output PostScript file consisting of a single TEXT
	string on a specified background. (Use with psmerge to label plots.)
	==> Author: John E. Anderson, Mobil
================================================================

New Third Party Software:
================================================================
================================================================

Changes:
================================================================
User's Manual -- added acknowledgements for off-site contributers,
	updated discussion of the demos

su/main/xxxx -- better cast of tr.dt before conversion to seconds.
	==> Thanks to Stew Levin, Mobil

su/main/segyclean.c -- cleared ntr field
	==> Thanks to Stew Levin, Mobil

su/main/suaddhead.c -- neat simplification of code
	==> Thanks to Stew Levin, Mobil

su/main/suaddnoise.c -- better cast in signal() calls
	==> Thanks to Stew Levin, Mobil

su/main/suchw.c -- now allows setting multiple values for each of
	the key1, key2, key3, a,b,c,d   getparred fields.

su/main/sugain.c -- fixed round off error bug in agc
	==> Thanks to Toralf Foerster, Germany

su/main/sugain.c -- fixed bug in do_clip that reversed polarity
	of large negatives.
	==> Thanks to Timo Tjan

su/main/sugethw.c -- accepts the key= syntax (see par/lib/getpars.c
	entry below).  Option added to produce data in the
	 multicolumn format used in setting geometry.

su/main/sumute.c -- permit muting parameters to be input as binary files.
	==> Thanks to Hakan Karazincir (CSM) for the suggestion.

su/main/suop.c -- fixed to return 0 for operations slog and slog10
	when the input contains 0 values instead of aborting.

su/main/supack2.c -- made portable to machines where shorts are not 2 bytes
	==> Thanks to Stew Levin, Mobil

su/main/supaste.c -- more robust use of fread
	==> Thanks to Stew Levin, Mobil

su/main/supgc.c -- corrected conversion of tr.dt to seconds

su/main/suradon.c -- supplied missing static declarations.
	==> Thanks to Stew Levin, Mobil

su/main/surange.c -- better cast in signal() calls
	==> Thanks to Stew Levin, Mobil

su/main/sureduce.c -- removed redundant declarations

su/main/sushw.c -- now allows setting multiple key fields either
	from commandline arguments or from data in a binary file.
	==> Thanks to Stew Levin, Mobil, for a first draft of the
	    multiple commandline code
 
su/main/susynlv.c,susynlvcw.c,susynlvxz.c,susynlvxzcs.c -- changed
	verbose default to false; corrected verbose info output

su/main/sustatic.c -- added the capability for inputting the
	receiver and source static corrections from files.
	==> Thanks to Timo Tjan

su/main/sutsq.c -- fixed munged tmin getpar.
	==> Thanks to Stew Levin, Mobil

su/main/suunpack2.c -- made portable to machines where shorts are not 2 bytes
	==> Thanks to Stew Levin, Mobil

su/main/suxcor.c -- extended to permit the cross correlation of
	panels, permitting both spatially and temporally
	varying cross correlation.
	==> Thanks to Timo Tjan

su/main/suxwigb.c, suximage.c, suxmovie.c, suxgraph.c -- windows close on
	keyboard q or Q.  See notes below on xwigb/ximage, and
	xmovie/xgraph for further caveats and credits.

su/lib/fgettr.c -- fvgettr tried to access an empty trace structure
	the first time it was called.
	==> Thanks to James C. Childress, Cray, Houston

su/shell/sukeyword.sh -- now finds the new 'ntr' keyword; pager
	now hard-wired as 'more'. Much redundancy removed.
	==> Thanks to Toralf Foerster, Germany

par/main/farith.c -- Fixed bug in slowp and slothp options.
	==> Thanks to Zhenyue Liu.

par/main/b2a.c -- printf statement allowed inadvertent concatenation
	of the two numbers.
	==> Thanks to Alexander Koek, Delft University of Technology

par/main/unisam2.c -- now allows specification of uniform input
	samples without listing each sample on the command line.

par/lib/getpars.c -- added getnparstringarray and getparstringarray
	to permit arrays of strings delimited by commas (so no
	commas permitted as parts of an individual string).  This
	allows command line syntax like "key=tracl,dt,ns" in
	appropriate programs (sushw.c, suchw.c, ...).  Of course,
	the old getnparstring and getparstring remain for
	getparring general strings.

par/lib/modeling.c -- added portability casts
	==> Thanks to Stew Levin, Mobil

cwp/include/cwp.h -- protect complex and dcomplex defs with #ifndef
	==> Thanks to Stew Levin, Mobil

psplot/main/pswigb.c -- updated endian handling

psplot/main/pswigb.c -- added portability casts
	==> Thanks to Stew Levin, Mobil

psplot/lib/psAxesbox3.c, psContour.c -- added portability casts
	==> Thanks to Stew Levin, Mobil

xplot/main/xwigb.c -- now automatically senses the endian of the display
	machine to prevent the endian mismatch problem formerly
	seen when xwigb was run on a machine with a different endian
	than the machine where the Xwindows graphics is displayed.
	==> Thanks to Morten Pedersen, CSM

xplot/main/xwigb.c -- if you redirect output to a file, then keypress
	p or P produces a PostScript file of the current view in that
	file.
	==> Thanks to Stew Levin, Mobil

xplot/main/xwigb.c, ximage.c -- now windows close on keyboard q (as well
	as on keyboard Q).

Xtcwp/main/xmovie.c, xgraph.c -- windows close on keyboard q or Q
	Note: this doesn't work under the linux fvwm window manager.
	==> Thanks to William Wingle, CSM, for the keyboard code

Xtcwp/main/xgraph.c -- added portability casts
	==> Thanks to Stew Levin, Mobil

Xtcwp/lib/Axes.c -- added portability casts and inserted missing static
	keywords
	==> Thanks to Stew Levin, Mobil
================================================================

Unresolved Issues
================================================================
-Xtcwp/main/xmovie
The grid1=, grid2= options cause an abort under linux/XFree86 and
possibly other platforms.  Message is:
	Error: Cannot perform malloc
This seems like a compiler error since innocuous changes in the code
or compiling without optimization makes the problem go away.  We
distributed the current version (27) with such an innocuous change
to accomodate this: we changed the dimension of args[] from 100 to 98.

-Support for the alternate data formats in SEG-Y
Remco Romyn of Delft University of Technology and others
have suggested support for other formats such as
(2 bytes fixed point).  The bit manipulations needed
to convert such data to IEEE are not known to us.

-Ability to print PostScript from xwigb, donated
by Stew Levin of Mobil, will probably be in version 28

-Improvements for su/include trace header handing
Donated by Stew Levin of Mobil, still under study here.

-xdr external data representation
Routines for xdr have been donated by Stew Levin of Mobil,
still under study here.
================================================================
