FreeUSP Release 1.03 Patch 2
    This patch contains program fixes and enhancements as follows:

    • Intel 8.0 Compiler Mods -
      • Changed some gmake rules and Makefile commands to accomodate the new Intel compiler.

    • Program vsm3d -
      • Bug fix in call to cmdln(). (Mike O'Brien)

    • Program apend -
      • Added command line argument -f telling apend to force the append function even when input and output line headers show discrepancies. Use -f with caution. It can be VERY DANGEROUS. (Mike O 'Brien)

    • Program rwspec -
      • Added code to trap zero length windows. This was happening when SmpInt had different units than -s[], -e[], and -win[]. rwspec would report a 'Norml Termination' but barf out NaNs. Command line help and man page also modified to clarify the need for consistency in time units. (Mike O 'Brien)

    • Program weqfl -
      • This is a new Q compensation program based on a phase shift migration kernel modified to include dispersion.

    • Programs radonf/radonr -
      • Changed starting frequency line header word from TmMsFS to VlFnRF to avoid clobbering the start time of the original data. Also changed the tpad word from TmMsSl to FreQst to avoid internal conflicts. NOTE: if you have old radonf data you will have to use utop to switch the above two words before running the new radonr.

      PLEASE NOTE: if you are users of radonf/r or fradonf/r we have recently had a conflict involving line header word TmMsFS (time in ms of first sample) which in the past has been used to store the starting frequency of the radon transform. Clearly if you make use of the original purpose of the start time (other than zero time and zero frequency) you have a problem. I have changed all four codes to use the new FreQst word (starting frequency). If you have old radonf or fradonf data and wish to re-do the inverse transform you will need to copy TmMsFS in your old data to FreQst: ufh or trched can do this, e.g.

      trched ... -e:'<,TmMsFS,>,FreQst' ...

    • Program spike -
      • Corrected cmd line problem reading in the time scaler -us[]. It tried to read in a float as an integer

    • Program segy2usp -
      • Fixed a bug that affected incoming SEGY format 3 data (2-byte integer) on machines that use little-endian format. (ie. Intel/Linux)
      • Added code to check for command line validity.
      • Fixed code dealing with format 2 SEGY data (4 byte integer)
      • Corrected a bug in the format 3 code that could leave the last 4 samples of each dataset trace incorrect.
      • Fixed a problem wherein SEGY datasets with NumTrc set to zero would produce USO datasets that caused program scan to go into an endless loop. The program will now check for a zero value in the USP line header before writing it out and set it to a value of 1 if no user override is specified.

    • Program vomit -
      • Added -tdqqc option. If this option is included when the output format is TDQ then the function number will no longer be sequential but instead will be the sum of RecNum + TrcNum on the input dataset. Added -pgs3d, -western3d2, -wgc3d, -tdqin read formats.

    • Program ttds3d -
      • Moved from usp/Mig structure to usp/src/cmd to correspond to in-house location.
      • Fix for files over 2 gig on Linux.

    • Program bgrid -
      • New program to convert Earth Vision ascii files to USP.

    • Program man -
      • Modified script to also access man pages for xaprtools utility programs. (ie. xcat, xbuttonpanel, xpanel, xalert, etc.)

    • Program maip2 -
      • Modification to make use of trace header word DpPtLn rather than SGRDat to match changes to maip and prepmig. Also cleaned up the code quite a bit.
      • Corrected problem on the SGIs caused by an argument mismatch in a subroutine.

    • Program vttd -
      • Moved from usp/Mig structure to usp/src/cmd to correspond to in-house relocation.
      • A myriad of changes aimed at depricating the old MBS heritage header requirements for this code. It no longer reads or honours in any way DX1000 or DZ1000 MBS header words.
      • All -dz[] and -dt[] specification now come in only on the command line.
      • There is no longer any attempt to enforce spatial sampling constraints.
      • Fixed bug in call to cmdlin[] subroutine which missed the name*(*) variable. This caused gibberish to be reported to the command line should the user enter an erroneous or non-existent command line argument.
      • Also the UnitSc entries in all dataset MUST be correct.
      • The -dz and -dt entries are used to determine the sample interval of depth and time datasets.
      • Added verbosity to the FATAL error message caused by zeroes in the control velocity file.

    • Program auto -
      • Added -norm option for normalized output.

    • Program upsummer -
      • This is a new script to replace upsum, designed to analyze seismic resolution.
      • It has more a more logical cmd line arg for specifying the starting frequency -fmin[]
      • It also allows the user to specify the frequency increment of the 4-cornered trapezoidal filter, -finc[] with a 10Hz default, and also allows specification of the frequency separation of the trapezoidal corners, -df[] with 5Hz default.
      • Usage is upsummer -N[] -rs[] -re[] -fmin[] -fmax[] -finc[] -df[]

    • Program fft2da -
      • Fixed a logical variable initization problem on the SGIs that resulted in the program shutting down because it thought an end of data had been encountered.

    • Programs xbuttonpanel,xshowras,xaprdpychk,xcat,& xpanel -
      • Modified code to eliminate compiler warning message referring to usage of errno.

    • Program downsummer -
      • Reworked downsum script that has more intuitive minimum frequency cmd line input -fmin[] and allows user cmd line input of both the bandpass increment -finc[], default=10, and corner frequency separation -df[], default=5.
      • To avoid conflict the script has a new name: downsummer Companion to upsummer.

    • Program feedback -
      • Modified code for architecture portabilty.

    • Program killtr -
      • Added record option -rec which will kill each input record if the number of live traces is less than or equal to -nlive[] specified on the cmd line (default is 1 trace). As is in keeping with standard killtr functionality the gather will be zeroed out but if you want it flagged as dead (30000 StaCor) you must still also include -D on the cmd line.

    • Program fbpicker -
      • New routine to auto pick first breaks.

    • Program pad_lidi -
      • Fixed a program bug resulting from a failure to properly define some variables via inclusion of the header file for the save() routines.
      • Corrected bug that could cause the output DI's to get out of sync.

    • Program hdrdesc -
      • Fixed a bug where the SGI would give an errant location for header words defined as longs. These words are more accurately described as ints, since an SGI long is 8 bytes and there are no 8 byte header variables.

    • Program rnmo -
      • Added -A option to signify input of angle traces.

    • Program fxbl -
      • Found an error in the check for output file/pipe detection that could cause problems.

    • Program usp2segy -
      • Added check for command line validity of mapping arguments.

    • Program prepmig -
      • Found an error in the code which prevented the -use_SGRDat flag from ever being used.

    • Script usp-generic-set-path -
      • Added some rules for new architectures and modified setting of LD_LIBRARY_PATH when running binaries in compatability mode.

    • Program velint -
      • Added policeman to guard against single trace records going into default 3D option.
      • Also flushed out a couple of error messages and updated the man page.

    • Script file -
      • Distribute modified script and magic file to allow the "usp file" functionality on the Linux architecture. This command is used to get basic info about a USP format file. It is also used to identify those files for the rmprint script.

    • Program modsel -
      • New routine which basically uses predicted amplitudes from CDP data to output selected modes.
      • As covered in the FreeUSP license, release of this routine is not tantamount to the granting of a patent license. Should you wish to make commercial use of this routine please contact us for permission.

    • Programs cdpstk3d, horvel3d, horzn_limit, scope3d, sr3d1, tim2hed3d, vi3din, zmapvel2sis, stolt, mctshift, mctsqueeze, slvr, arcsum, crossfilt, dafd, fkshape, genfu, gqhorizon, horvel, las2sup, mute, picker, polymute, recshift, sempik, sis_xy, tvdafd, tvfilt, velin, vomit, vspstk, wrdt -
      • Solved a list formatting problem for the text string handler fsscnf in the ut library which could result in bogus values being extracted.

    • Program scanvol -
      • Fixed many bugs and memory faults not the least of which resulted in the dataset array being mis-allocated.
      • Fixed a serious bug in the histogram logic that resulted in "flexible" bins being generated through the analysis.

    • Program ampspec -
      • Added an additional normalization option -a[] to supply an amplitude/power spectral maximum other than normalization by computed spectral max. If -a[] is supplied there is no need to also include -P on the cmd line.

    • Script rmprint -
      • Modified check for files of type text to allow for SGI file return value of type text that somehow slipped by.
      • Also made a modification regarding case sensitivity.

    • Program fkterp -
      • Fixed a bug regarding unset variables which exposed itself at random.

    • Program navmerge -
      • Updated navmerge to use UKOOA SEG-P1 1990 format.
      • Depricated the automatic install of water vel into WatVel header word.
      • Installed -autoshotpad option to automatically pad dataset for missing nav records.
      • Now maps source and receiver depths into WDepDP and GrpElv.
      • Now maps field trace number to TrcNum.

    • Program sr3d2 -
      • Made it possible to run sr3d1 -mode 3 followed by sr3d2 -stop, followed by sr3d2 -go -mode 5 so that bin centers [rather than centroids] end up in CDPBCX,CDPBCY for shot sorted data.

    • Program qifl -
      • Corrected an error that could cause the historical line header to be different from the input data.
      • Corrected several coding bugs reported by the FreeUSP community.

    • Program xaprdpychk -
      • Made a minor change to this utility program used within USP for determining whether an X display may be done. Program previously aborted if no command line option was passed and DISPLAY was not set. Program will now error out with a message.

    • Program apend -
      • Fixed a typo related to verbose printout.

    • Program vi3d -
      • Fixed bug in nearest neighbor subroutine that would let the weights go to zero when the only traces found landed right on the search radius.

    • Program attin -
      • Remove requirement for depth interval entry in the line header for depth domain input.
      • Correct a problem related to short velocity traces relative to = the data traces
      • Increase the number of output traces per ensemble from 13 to = 15
      • Remove the 3-term solution for fractional change in Vp and = Vs
      • Remove the fractional change in bulk and shear modulus = traces
      • Add traces for R^2 for 2-term and 3-term solutions
      • Add traces for Sum of Squared Residuals for 2-term and 3-term = solutions
      • Add traces for Runs Statistics for 2-term and 3-term = solutions
      • Add trace for F-Statistic for 2-term v 3-term solution
      • Inserted a check to prevent instability in runs statistic computation.
      • Add a new option to output the attributes as components of the full stack. This is not a new method for computing attributes, only a new way of presenting them with accurate relative scaling.

    • Program qest -
      • Fixed problem with the maximum entropy option caused by an extra argument in a subroutine call list


    • Program gather -
      • Corrected a problem with -m option on SGI's caused by calls to trace/rec skips even though trace/rec selection was not asked for. This resulted in very slow run times.


    • Program mvstak -
      • The online help had -m flag mislabelled: should trigger trace oriented (default is record oriented).


    • Program filt -
      • Added -no flag to cmd line to turn off pre-filtering prior to decimation.
      • Added option to compute the minimum delay version of the filtered traces (note: useful only for wavelet-type traces).


    • Program esize -
      • This is a simple utility script that can be used to obtain the estimated size of a USP dataset on disk vs. the actual size based on information in the line header. The format for execution is "usp esize USP-dataset-name".


    • Program scan -
      • Added a check for disk datasets and a warning will now be issued if the size of the dataset differs from that expected based on the entries in the USP line header. This is a warning only and is issued before the traces are scanned.


    • Program pred -
      • The prewhitening in pred is specified as a percent. This was erroneously specified as a fraction in the man pages, pattern files and online help.

    • Program fitter -
      • Corrected confusing typo in online help: -L triggers least squares fit but the default is the L1 robust fit.


    • Program vfilt3da -
      • Fixed -pass option to work when ONLY azimuthal constraints are supplied on the command line.
      • Made other improvements as regards tapers that were suggested through FreeUSP.


    • Program filestat -
      • This is a utility program used by rmprint. It takes a command line flag specifying the attribute of a particular file to be printed out and is designed to be used by scripts within the USP system.


    • Program detmute -
      • Added -threshold capability to detect first time amp rises above -val[] from top and bottom.


    • Program phzrot -
      • The restore mute flag -M now will restore top and bottom mutes.


    • Programs angst3d, dmoangst3d, angst, angsyn, attin, attsel, avaws -
      • Fixed memory leaks in common subroutine which has been relocated to the ut library and removed from each source file directory.


    • Program sldk -
      • Bug fix to prevent division by zero (and introduction of NaNs into data) when amplitude envelope is zero.


    • Program putval -
      • Added option to output values as integers into integer trace header words (all three words chosen must be integer). The -I option also includes -a[] so that the user can globally scale the values to fit in I2 short integer words.


    • Program replace -
      • Fixed -DO option to leave data sample values unchanged.
      • Repaired a feature in -DO that resulted in a dump of error messages to the screen if you only choose one of -top or -bot with the option.


    • Program xbuttonpanel -
      • Modified code to remove reference to obsolete sys_nerr system variable.


    • Program vfilt3da -
      • Changed behaviour of velocity filter with respect to DC. If -pass then DC set to zero, if not -pass then DC left alone. Updated the man page to reference the fact that these routines used MathAdv FFT packed format where Nyquist is loaded to the imaginary component of DC.



    • Program XIKP -
      • Added a new client<->server negotiation that enables the client to pick the machines with the lowest load of the machines listed in user's ikp_hosts file for remote execution. The client previously checked load levels via rstat() calls, but that was unsupported under Linux. For those unfamiliar with the automated machine selection, a list of useable hosts is specified in the .ikp_hosts file with some comparative weighting value. Then in each process box which is to select the remote host automatically, a '*' value is specified for the remote host. Adding the verbose option ( '-v' ) to the XIKP command line will cause info concerning the host selection to be printed to the terminal where XIKP was started.

      • Diagnostic info was also added on the server side to show the name by which the client machine is being looked for in the user's .rhosts file. This was often confusing due to the inconsistency in the lookup tables. Debugging of host authentication can be done by specifying the host as "host:debug" and checking the remote machine for an ikpd log file in the /tmp directory to diagnose problems.


    • Program ufh -
      • Code modifications for platform compilation portability.
      • Bug fix to correct invalid variable addressing.

    • Program kmpw -
      • Fixes and cleanup provided by Mike O'Brien.

    • Programs kmcmusp, fxpwmig, and slnt -
      • Man page contributions by Mike O'Brien.

    • File ${DEPTROOT}/etc/gmake.init -
      • Modified Fortran 90 rules to try and accomodate the lack of any kind of standard in reference to source file suffixes.

    • Program spec -
      • Source was out-of-date. Modifications made which store max freq, min freq and freq interval in header words in FreQnd, FreQst, and SmpFlt header words.


    To apply this update to FreeUSP:

      
      
      1. download the compressed tar file FreeUSP-1.03-2.tgz
      NOTE: Steps 2 and 3 may be performed in a single step on some systems
      by the use of the decompress option of the tar command ('z')
      1. decompress that file onto disk:
        gunzip -c < FreeUSP-1.03-2.tgz > FreeUSP-1.03-2.tar

      2. extract the tar files to the source structure:
        cd ${FreeUSP}
        tar xvf FreeUSP-1.03-2.tar
      3. run the update script:
        ./run-update-1.03-2

      4. build & install the updated structure as specified in the original install instructions:
        cd ${DEPTROOT} gmake targets gmake install

    Back