Resources
- Want to run SAC 10.6f on your MacOS X computer?
Download compiled binaries for MacOS X systems from 10.2 onwards from
here..
version grh-107 (built 17 June 2011).
-
Want to use the Buland and Kennett Tau-P travel time calculation
routines? Look
here..
-
Want to listen to earthquakes?
Here's a program that will create AIFF files from SAC seismograms (play with
Quicktime on MacOS systems).
Code...
Here's another (older) program that will play a SAC file to your computer's
speakers.
Code...
-
Want to convert SAC data files between
little-endian (Intel/PC/DEC) and
big-endian (Sun/SGI/PowerPC) forms?
Here's a C program that does it, based on G. A. Ichinose's version
Code...
(updated 2 Sep. 2008 - it also comes packaged with MacSAC).
SAC on MacOS X 10.3-10.6
MacSAC runs on 10.3 (Panther), 10.4 and later systems.
When installing on a 10.3 system (click on SAC.pkg), the Installer reports
that SAC cannot be installed on your system.
Ignore the warning by clicking "OK" in the
dialog box, and then clicking on "Continue" in the Installer. The rest
of the installation will proceed OK.
When installing on a 10.4 or later system, download the package for
PPC or Intel installs.
If you do a default install of SAC for the first time, you'll get a warning
about the Installer needing to create the /usr/local directory.
This is not an error, only information about a change to be made to the system.
Acknowledge it and continue.
If you have other problems with installs, I would be interested to see the
Installer log file to understand how to fix it. While in the Installer,
choose File -- Show Log (10.2 & 10.3) or Window - Installer Log (10.4 & higher),
and then Save or Print the result and send it to me (address at bottom of page).
MacSAC, XML and gfortran/Fortran 90
MacSAC is built with either the g77 or gfortran compilers, depending on the
release.
Unless you use the SAC I/O library routines to read and write SAC files,
you don't need to worry about this.
If you do write programs that manipulate SAC files, read on.
MacSAC includes the SAC library, libsacio.a (originally just called sac.a),
which you can link to your programs.
There are 32- and 64-bit versions of the SAC library routines provided with
SAC.
gfortran, a free software replacement for the g77 compiler, is evolving to
generating 64-bit code by default, so you need to be alert to this detail.
Problems will show up when you try to link your files into an executable
version of the program (when you use the -o option to create the executable),
so there is never any danger of creating incorrect code, just puzzlement.
If you use the default install, a command like this will make the SAC libraries
available to your program:
gfortran -m32 -o prog prog.f /usr/local/lib/libsacio-32.a (32-bit compiles)
or
gfortran -m64 -o prog prog.f /usr/local/lib/libsacio-64.a (64-bit compiles)
or
g77 -o prog prog.f /usr/local/lib/libg77-sacio.a (g77 is a 32-bit only compiler)
.
If you use the subroutine interface in the SAC library to handle SAC XML
datasets, you must also include the MacOS CoreServices framework (one of the
system libraries) for parsing the markup language. Link them with your
program like so:
gfortran -o prog prog.f /usr/local/lib/libsacio-32.a -framework CoreServices
or
g77 -o prog prog.f /usr/local/lib/sacio.a -Wl,-framework -Wl,CoreServices
gfortran is now almost a replacement to g77. If MacSAC is built with gfortran,
a g77 version of the library will be available as /usr/local/lib/libg77-sacio.a
for support of the older compiler. If there is no file called libg77-sacio.a,
then libsacio.a is built with g77.
If you prefer, you can use the -L compiler directive to indicate the SAC
library search path (-L/usr/local/lib is usually what you want)
and refer to the libraries by -lsacio-32 or -lsacio-64
or -lg77-sacio as appropriate.
A gfortran example:
gfortran -m64 -o prog prog.f -L/usr/local/lib -lsacio-64
The Buland and Kennett tau-p routines are a suite of programs that calculate
seismic wave travel times through a radial earth model specified as velocity
as a function of depth.
They use the methods described in Buland and Chapman (1983), BSSA 73, 1271-1302
to calculate tables of tau to quickly determine all arrivals at a particular
range for an earthquake at a particular depth.
The original package provided a command line interface to the tables, and
tables for one model, iasp91 by Kennett and Engdahl (1991), GJI 105,
429-465.
The package is useful and versatile, but lacked tables for other wavespeed
models and a simple, well-documented subroutine interface to the tables so
that programs could take advantage of the rapid calculations the method
affords.
Consequently, I extended the package to include other earth models,
defined a simple subroutine interface to it, and built a configuration-based
compilation method that makes the program, subroutines and tables easy to
build and install.
The general changes are:
- do automatic source configuration;
- remove Fortran language constructs that prevent it from compiling
on the GCC Fortran compilers;
- to write table formats that are self describing (in size) and do
not require recompilation of previously-built travel time tables if
the table storage size changes;
- adds additional phases to the set that is computed in the tables,
viz. depth phases for ScS and PcP and diffracted phases for PKP branches;
- adds a subroutine-callable interface to the tables;
- adds tables for different models:
iasp91, ak135, fakeprem, fakeprem20s, sp6, kghj, pemc
- optionally, under configuration control, adds more depth phases
and core phases.
The current version's code may be downloaded
here...
(version 6, updated 23 Jan. 2010).
See the INSTALL file for installation instructions.
SAC Bug list and patches
This is a list of the bugs I have fixed in SAC.
These fixes apply to version number 10.6f.
Most of these were forwarded to the group at LLNL working on SAC, but at some
point, the original Fortran code was automatically translated into the C version
of SAC that LLNL and IRIS now distribute, SAC2000.
Consequently, most bugs reported and fixed here also exist in IRIS's SAC.
Check the log of changes to SAC2000 to see whether they've been fixed there.
I'm no longer distributing individual patches.
A list of all the fixes is here.
Some previous releases are available through the release name in the list
below.
Changes potentially incompatible with previously-working SAC macros
indicated in italics.
-
grh-108
- Macro variables can be expanded inside of a blackboard variable name. This
makes it easier to create temporary variables in SAC macros. For example,
expressions like "%$n$xxx%" will expand to a BB var called "5xxx" and its
value will be retrieved, if macro variable n is 5. See HELP EXPRESSIONS
for further info.
- Fixed bug in 64-bit SAC I/O library. Use of rsac1, wsac0, etc. would result
in undefined symbols (but 32 bit libraries were OK).
- Added surpport for EVALRESP version 3.3.3.
- BEGINWINDOW n will explicitly display window n on the screen if it is not
yet open.
- Fixed PLOTRECORDSECTION documentation, clarifying REDUCED and ORIGIN.
-
grh-107
- WRITE command option FILE N added to write out a single file in a collection
of files in SAC memory. See HELP WRITE for details.
- IMAGE command implemented for compatibility with SAC2000.
- HELP and SYNTAX command descriptions given in a uniform Unix-like syntax.
See HELP SYNTAX for a description.
- CHNHDR accepts dates in year-month-day format rather than only in
year-julian day format. See HELP CHNHDR for details.
- APK bug fixed which led to corrupted output in HPF file.
- Filtering bug fixed whereby some filter parameter combinations would lead
to corrupt data traces. This generally involved long time series with
high sample rates.
- PLORECORDSECTION plotting in portrait mode implemented.
- EVALUATE AS {FLOAT|INTEGER} documented. This is an original feature of
SAC, but undocumented.
- KSTCMP option on WRITE implemented for SAC2000 compatibility.
- New functions implemented: CHANGECASE, EXISTBB, EXISTMV, QUOTEHV and
QUOTEMV. See HELP EXPRESSIONS for details.
- Travel time curves labeled on margin of record section plots in the SSS
subprocess.
- X- and Y-axis grids properly implemented; in some cases grid requests were
ignored, or provided when not requested.
- sgftoeps, sgftopdf and sgftops default to RGB colors. CMYK output available
by command line option. Bounding box calculation also improved. See
HELP UTILITIES.
- 64-bit library provided for SAC file and dataset I/O. Alternative versions
available in lib/libsacio-64.a and lib/libsacio-32.a.
-
grh-106
- HELP APROPOS will provide information about commands in other subprocesses,
not just the current one.
- MACRO command documentation improved to describe keyword and positional
argument processing.
- Restrictions on FFT sizes removed from many commands.
- SYMBOL command documentation improved with graphical demo.
- READCOR command implemented for compatibility with SAC2000.
- SETDEVICE now reliably opens your default graphics device if used in
startup file.
- New line ornamentation options added to PLOTC: symbol choice, size,
and spacing. See HELP PLOTC for table.
- Reversed moveout curves now handled properly with SSS's TRAVELTIME TAUP
command.
-
grh-105
- CONVOLVE command implemented for compatibility with SAC2000.
- TRAVELTIME TAUP command option implemented for compatibility with SAC2000.
- New command option PREVIOUS implemented for ZCOLORS, ZLABELS, ZLINES and
ZTICKS commands. For details, see online documentation for relevant
commands.
- Color output now possible from GRAYSCALE and SPECTROGRAM
commands into SGF files for plotting as EPS, PDF and PS files. If
the SGF device is active, the raster images for the displays will be
placed there. Use the utility programs sgftoeps, stftopdf, etc. to
print them or incorporate them into plots for publication.
- SAC's utility programs (sgftoeps, sgftopdf, etc.) are also documented
in the online help. See HELP UTILITIES for info.
- New command line utility program provided: sachdrinfo. This extracts
information from SAC file headers to be used in shell scripts. See
online documentation for HELP UTILITIES.
- Improved documentation for WINDOW and CONTOUR commands. Now supplied with
graphical demos. See HELP WINDOW and HELP CONTOUR for details.
- You don't need gfortran for parallel operation use, which was a restriction
in the previous release (and grh-105 versions downloaded before 09:00 22
Mar 2010 GMT).
-
grh-104
- Parallel SAC. MacSAC will use all N available CPUs on your
multi-processor machine to operate on files in memory, leading to a
factor of N reduction in processing of large datasets. Commands
affected: INTERPOLATE, DECIMATE, RMEAN, RTREND, TAPER, ROTATE,
REVERSE, STRETCH, SMOOTH, QUANTIZE, RGLITCHES, RQ.
You must have gfortran installed on your computer for SAC to work.
If not, use the previous version. This requirement will be removed in
a future distribution.
- Minor bug fixes in ROTATE, QUANTIZE and SMOOTH commands. ROTATE would not
work properly if vertical component rotations were larger than 180
degrees. QUANTIZE would not recognize the gain list provided. SMOOTH
did not set data bounds after smoothing, leading to incorrectly framed
plots.
-
grh-103
- Major feature additions to SSS subprocess: phase weighted stacking,
Nth root stacking, and jackknife stack uncertainty estimation.
Also facility for selective trace stacking: traces may individually be
left out of a stack. See HELP SUMSTACK for information.
- New expression functions: (STATUS GRAPHICS), (HDRVAL VV AZ x PM y),
(HDRNUM VV AZ x PM y). The first queries presence of open graphics window.
Remaining two query whether value of header variable VV is an azimuth of x
+/- y for all files in memory. The comparisons work across arbitrary
azimuth branch cuts. HDRVAL returns all VV values satisfying the criterion;
HDRNUM returns the file numbers. Intended for use with selective stacking
in SSS.
- Graphical demonstrations for various commands added: TAPER, SYMBOL, GTEXT,
BEGINFRAME/ENDFRAME, PLOT1, PLOT2, BANDPASS, HILBERT, XVPORT, YVPORT,
PLOTC. See HELP for individual commands for activating the demo.
- New suite of commands to query SAC internal state:
REPORT TO xxx fff ggg ... transfers REPORT output to blackboard
variable "xxx" of fff and ggg facilities so that SAC settings can be
interrogated and reset.
Principally for use in macro scripts. See HELP REPORT for information.
- WIDTH command documented -- affects widths of lines drawn in graphics
displays.
- PREVIOUS options added to many more commands: COLOR, WIDTH, SYMBOL,
TITLE, QDP, XLABEL, YLABEL, VSPACE, XVP, YVP. See individual command
documentation for details.
- TRANSFER command options to yield velocity or acceleration rather than
displacement. TRANSFER documentation also improved. See HELP TRANSFER.
- Explicit comment command "*". This may be used at the command-line level
(unlike the previous limitation to inside macros). Also allows comments
to be introduced following each line for better macro/command documentation.
Example:
message "Azimuth &1,az&" ;* Report trace azimuth
Here, the text following the semicolon is a comment.
-
grh-102
- READ GCF implemented to read GCF data; see HELP READ for information.
- RTREND TERSE implemented to control output verbosity; BB variables set.
See HELP RTREND for information.
Junk at the end of the RTREND command was ignored previously, whereas
now it is parsed for content. This may cause some previously functioning,
but incorrectly written macros to fail.
- READ MSEED implemented to read MSEED data; see HELP READ for information.
- FILEID PREVIOUS implemented; see HELP FILEID for information.
- Bug fixed in PLOTRECORDSECTION using the M pick option.
- Bug fixed in color incrementing that led to invisible traces.
- Uninstaller made into proper application to prevent varying behavior with
AppleScript.
-
grh-101
- SAC file write list syntax extended to allow catenations/alternations.
Thus, if three files are in memory, WRITE /tmp/hold.[e,n,z] will write
them all.
- Window resizing bugs for native Mac windows fixed; now behaves like X.
- Reading of GSE 2.0 format files implemented. See HELP READGSE for
information.
- Reading of SEG-Y format files implemented. See HELP READ for information.
- Long command names parsed incorrectly. SAC used to only use the
first 8 characters of a command to determine a command name. Some SSS
commands are not unique in this length; possibly some macros will fail if
long command names were used in them.
- SSS TRAVELTIME command provides iasp91, ak135 and sp6 travel times;
PLOTRECORDSECTION TTIME ON implemented. See HELP TRAVELTIME and HELP
PLOTRECORDSECTION in the SSS subprocess.
- Automatic picks with APK will have '*' added to the pick name in KA
or KT0. Pick file format unchanged, however.
-
grh-100
- SAC help information is searchable. Use HELP APROPOS xxx to find any
command name or description that contains the string xxx. See 'help help'
for more information.
- Faster drawing on native Mac windows. Many efficiency improvements to speed
up plots to the native Mac device.
- New command ENDWINDOW will close an open window under user control.
BEGINWINDOW and ENDWINDOW provide the symmetric functionality of opening
and closing windows under user control.
- Wild card file name matching made reliable. Previously, matches in
directories with many files would fail.
- GSE format file writing implemented (reading -- not yet).
See 'help writegse'.
- REPORT EVALRESP reports EVALRESP version used for instrument correction.
- Fixed problems with the SAC Uninstall script in the distribution package.
- Note: Downloads before 19:30 GMT 2 Dec. 2008 contain a cursor position bug;
download again and re-install for fix. Thanks to James Wookey for reporting
it.
-
grh-99
- SAC help information documents user-callable library routines: rsac1,
rsac2, wsac0, wsac1, wsac2, setfhv, setihv, setkhv, setlhv, setnhv,
getfhv, getihv, getkhv, getlhv, getnhv. See 'help', 'help library'
and help for individual routine names.
- New library routines for interrogating, reading and writing SAC XML
datasets: qsacxml, rsacxml, wsacxml.
- SAC library is now sacio.a; it used to be called sac.a. It is
located in /usr/local/lib/sacio.a (by default). gfortran and g77
versions available; g77 version is g77-sacio.a.
- Bug report: QDP OFF hangs SAC in this version; temporary
workaround is to use QDP 10000 (or some other big number). Will be fixed
in the next release.
-
grh-98
- Restored functionality of some of the sgf utilities (sgfmerge, sgflist,
sgfplot, etc.) which would crash with a "Bus error" on startup (problem
reported by Y. Park, Penn State).
- Implement PREVIOUS option for more commands: AXES PREVIOUS, TICKS PREVIOUS,
LINE PREVIOUS, YLIM PREVIOUS. Restores previous setting before last
previous change; useful inside of macros to temporarily change behavior.
See 'help axes' etc. for full documentation.
- Allow END to be first argument to SUBSTRING macro function. See
'help expressions'.
- Fix bug in function processing that introduced a blank after every
function expansion. This meant that, for example,
message "(CONCATENATE A B)(CONCATENATE C D)"
would print "AB CD " whereas now it will print "ABCD".
- Fix bugs in line color list handling: 1) first color ignored; 2) first
color skipped, second color repeated.
- Updated punctuation in various command descriptions provided by the
'help xxx' command.
-
grh-97
- Now can handle EVALRESP instrument responses -- see 'help transfer'.
Multi-trace SAC datasets can be placed into and retrieved from a single
file (in XML format). The datasets can even be located on remote
servers, accessible via a URL. See the dataset options documented in
'help read' and 'help write'.
(For a demonstration of XML dataset capabilities, try:
- Copy (with `curl' or `wget') http://www1.gly.bris.ac.uk/MacSAC/korea.mac to your local machine and save it as e.g. /tmp/korea.mac:
curl http://www1.gly.bris.ac.uk/MacSAC/korea.mac > /tmp/korea.mac
- Start SAC and open a graphics device, then issue these commands:
- read ds http://www1.gly.bris.ac.uk/MacSAC/korea.sds
- macro /tmp/korea.mac
which will show you all 753 HiNet stations that recorded the 9 Oct. 2006
North Korean nuclear test.)
READ ALPHA option implemented -- see 'help read'.
WINDOW command now places native mac windows in correct place on desktop
when opened.
Added new option to the SAC file byte-swapping utility sactosac to force
conversion to MacSAC format (-m; type 'sactosac -help' for usage).
-
grh-96
- Fix bug in GRAYSCALE plots using X11 (resulted in crash).
MORE synonym for ACTIVE in BEGINDEVICES. See 'help begindevices'.
RMEAN now works for files with many data points and a large DC offset.
Fully document BEAM and BBFK commands; fix bug in BEAM leaving BEAM in
memory; annotate BBFK polar plot with radial values.
Check XYZ file structure correct while reading.
Relax MERGE command checks to ignore gaps less than DELTA/2.
Document FIR file format ('help FIR').
Implement NEWHDR options for ADDF, SUBF, MULF and DIVF.
-
grh-95
- XYZ files are now viewable as raster images (as opposed to contour plots).
You can also define your own color maps to plot XYZ colors. See 'help
color' and 'report color' for the rastered data options reported there.

(The commands to create this plot were:
fg seismogram; spectrogram xyz; ylim 0 20
beginframe; grayscale color; contour; endframe
The plot is a XYZ rendering of spectrogram overlaid by a contouring of the
same data.)
- LINEFIT command implemented for compatibility with SAC2000.
- FILTERDESIGN FILE output option implemented, infinities removed in computed
group delays at zero frequency.
- ROTATE bug fixed causing horizontal components not to be recognized as
horizontals (only on Intel machines; a compiler problem).
-
grh-94
- (Intel versions downloaded before 5 Nov. 2006 might not run unless you
have g77 working on your system; present version avoids this requirement.
PPC installs are OK in all versions.)
- Tiger installs simplified by using the Installer. PPC and Intel downloads
available.
- Native Mac graphics does not require X11: type 'bd mac'. Gets you
high-quality anti-alias graphics rendering. Active window shown in title
bar. See 'help begindevices'.
- Command line history saved when you quit SAC, restored when you restart.
See 'help transcript'.
- New macro functions: GETVAL, ITEMS. Gets value in trace at particular
time, and gets a range of blank-delimited items from input line. See
'help expressions' for more details.
- LISTHEADER prompt changed for multi-page output. Shows possible choices.
-
grh-93
- Native Mac graphics ('help begindevices'), though still slow.
- PDF files directly from SAC graphics (.sgf) files; see the sgftopdf program:
Usage: sgftopdf [-t|-d|-w n|-v] sgffile [pdffile]
-t - interpret line style as thickness
-d - interpret line style as dash type
-w n - multiply line widths by n
-v - report version information
sgffile - SGF file name with or without .sgf suffix
pdffile - optional PDF file, sgf file with .pdf suffix if omitted
- Smaller payload for use of library routines (rsac1, wsac1, etc.) Code
condensed to achieve this results in smaller programs if you include them
from lib/sac.a and call those routines from your own programs.
- SAC window number now in title bar of X graphic window; windows condensed.
- New macro line functions to query header variables based on range, to
parse blank-delimited tokens from a string, and to retrieve the number of
files in active memory:
(HDRVAR H OP X ...) (ITEM N A B C ...) (STATUS NFILES)
See 'help expressions' for details.
- Bounding boxes calculated properly for all files produced by sgftoeps.
-
grh-93beta (never a default download)
- Beta release - uses Mac windows, not X11. Type "BEGINDEVICE MAC" and you
have a MacOS graphics window. (Graphics is not as fast as X11, but looks
better; performance remedies under study). Feedback welcome; bugs likely.
-
grh-92
- Mostly maintenance release. Fixes help info, adds new FUNCGEN IMPSTRING
options; see 'help funcgen'.
-
grh-91
- PREVIOUS option added to following commands for ease of use in macros, to
temporarily set and then reset parameters: CUT, XLIM, WIENER, RGLITCHES,
RMS, MTW. See help for each command.
SGFTOPS line width setting sometimes ignored by printers; now fixed.
Document GETTIME and SUBSTRING functions; see 'help expressions'.
Minor bug fixes in input processing, memory release, GETTIME function.
-
grh-90
- Click on red go-away display window button no longer terminates SAC.
PRINT option for some commands broken since grh-88; now operational.
PLOTRECORDSECTION graphical interaction improvements:
- Improved pick algorithms to handle stair-step data.
- V during moveout curve definition prints apparent velocity of
segment.
- R redraws screen, erasing error messages.
- Picks marked on traces.
Numerical instability in DIST/GCARC calculation for latitudes near zero
fixed.
REPORT reports CUTERR; CUTERR PREVIOUS implemented.
Wrong file name reported if file header bad.
User callable routines in sac library RSACH(file,nerr) WSACH(file,nerr)
to read and write file headers.
-
grh-89
- Improved PLOTRECORDSECTION graphical interaction to define moveout
curve; otherwise only invisible, internal, maintenance-related changes
to grh-88.
- grh-88
- Major improvements to graphical interactions with record sections in
PLOTRECORDSECTION: magnify traces and narrow trace display ranges; select
traces for further processing; automatic picking of traces along
graphically-defined moveout curves.
WHILE READ bbvar x y z ... - new syntactical construct to parse
blank-separated strings broken up into input lines (Unix commands, or
record section graphical interactions).
SYSTEMCOMMAND TO bbvar - places output of system command in blackboard
variable for processing by SAC macro (with WHILE READ, notably).
BEGINDEVICES ACTIVE/BEGINDEVICES PREVIOUS - to push and pop active
devices for use in macros.
SSS remembers static delays upon reentry to SSS subsystem.
Stricter checking of expression syntax in IF commands - may cause
previously-working SAC macros to fail with syntax errors.
FUNCGEN IMPSTRING implemented.
Added help for SAC expressions: help expressions.
-
grh-87
- Improved parsing of SAC macro text: $..$ and %..% variables may be nested
inside &...& variables which may be nested inside functions (xxx ...).
Function brackets recognized as delimiters for $..$, %..%, &..& variables
too, meaning that (abs &1,depmax) is no longer a syntax error.
(Yet another) DELETECHANNEL bug that crashed SAC fixed.
Help/news text knows about actual window size for paging.
YLIM syntax errors reported instead of silently ignored.
WIENER MU [ON|OFF|v] implemented.
Syntax errors in &...& variables reported better.
-
grh-86
- Maintenance release. Most changes internal to simplify distributing future
versions.
Formal release of new SGF file translation tool: sgftoxfig.
Converts SGF files to Xfig for making publication-quality seismogram
displays.
Usage: sgftoxfig [-t|-d|-w n|-v] sgffile [xfigfile]
-t - interpret line style as thickness
-d - interpret line style as dash type
-w n - multiply line widths by n
-v - report version information
sgffile - SGF file name with or without .sgf suffix
xfigfile - optional Xfig file, sgf file with .fig suffix if omitted
-
grh-85
- Bug fixes to grh-84, and provide for MacOS X 10.4 (Tiger) installs.
sgftoxfig provided.
Another bug fixed in $RUN command processing.
Filled traces not properly drawn if clipped at left and right sides of
the window (e.g. some traces displayed with LINE FILL x/y used).
DELETECHANNEL sometimes crashed SAC; now it won't.
sgftoeps/sgftops produced wrong PostScript for very long traces.
sgfplot reports its version and behaves responsibly if EOF given.
separate install script for MacOS X 10.4 (Tiger) because 10.2
packages are not compatible with the 10.4 installer.
-
grh-84
- Bug fixes to grh-83.
$RUN command expansion of $-, %-, &-variables sometimes wrong.
Delimited string macro arguments not passed correctly into macro
(missing trailing delimiter).
Warning: This fix might reveal latent bugs in string manipulation
inside macros (using reply, concatenate, etc.). SAC does not make
thorough checks that delimited strings end with a delimiter - the
end of a function ("(xxx ...)") will usually terminate an
unterminated string which may hide a potential syntax problem.
- grh-83
- Implement PRINT option for CONTOUR, PLOT, PLOT1, PLOT2, PLOTPM, BEGINFRAME,
PLOTRECORDSECTION commands.
Many commands with logical ON|OFF selections now accept ON|OFF|PREVIOUS
to restore previous state of option, which provides for a way for
SAC macros to set and restore features for specialized
processing/display in a macro. See help for BORDER, COMCOR, LINE,
LOGLAB, PRODUCTION, SPEID, XFULL, YFULL.
PLOTDY help.
Bugs fixed in sgftops and sgftoeps that led to invalid or incorrect
PostScript to be produced for some SGF files.
sgftops usable as a filter (SGF read from standard input, PostScript
written to standard output). Type sgftops for info (in usage report).
Fixed ARRAYMAP scale occasionally being wrong or not plotting stations.
Smaller memory use (static tables eliminated).
-
grh-82
- Full help for SPE and SSS (some commands omitted previously).
DELETECHANNEL command added (see 'help deletechannel' for info).
Faster pattern matches (of type xxxx[r,t,z]) in large directories.
$RUN command can safely include pipes.
Stricter syntax checking on ELSE, ENDIF, ENDDO commands.
Macro aborts inside IF and DO structures won't lead to further errors.
-
grh-81
- Hardware text improvements.
SPE and SSS subprocess help, documentation for BANDPASS.
Changeable color tables - see `help color' for info.
-
grh-80
- New feature: Area-filled traces. See images below and type `help line'
in SAC for more info.
Expand $-, %-, &-variables in $RUN command text.
Warning: This may cause some macros using $RUN to fail if @ isn't used to escape those characters.
Improve line clipping at edges of plot window.
Fix formatting in online documentation for XVPORT, YVPORT, FILTERDESIGN,
READSP.
-
grh-79
- Bug fix to grh-78 - use of pattern match for a file in an alternate
directory (e.g. READ /tmp/A12*BHZ) left you in that directory afterwards.
Fix online documentation for RQ, QUANTIZE and TRANSFER commands.
- grh-78
- MTW bug - if window extends beyond trace, crash.
Fixed obscure problems with escaped % and & symbols in text.
Use of hardware text in SGF files improved.
Upside-down text problems on Linux/PC platforms fixed.
Add PLOTC text file parameter-setting commands to documentation.
SGF file format compatibly extended to support hardware text alignment.
sgftoeps - bug occasionally causing bad EPS files fixed.
-
grh-77
- Fixed upgrade problems when using Installer.
Added help text for IF command.
-
grh-76
- Bug fix to sgftops, inadvertently broken in grh-75 by hardware text change.
- grh-75
- BBFK bug fixes, TRANSFER command modified to allow 2**32 point trace manipulation,
GTEXT state reported properly by REPORT command.
Merged sgftoadobe and sgftoeps; sgftoadobe retired to code heaven.
Selection of ``hardware text'' for SGF files results in PostScript font use,
handy for producing production-quality figures of SAC seismograms.
- grh-74
- Bug fix in calculating CORRELATE cmd max window length.
Make space and tab equivalent characters to prevent SAC choking on macros
modified by editors that change multiple spaces to tabs.
Fix error reporting in CUTIM command, and bugs:
1) did not set file count in dataset right when making multiple cuts;
2) cut began one point too late in data;
3) zero filling before/after data didn't work right if CUTERR FILLZ on.
- grh-73
- Fix fatal bug in DECIMATE command; implement TRANSFER FAP subtype.
- grh-71
- CUTIM command implemented. READCSS command implemented in bug-free form.
- grh-69
- Rest of command line not ignored any more following a macro invocation.
- grh-67
- Wild card file name matches work better (but not perfectly).
- grh-63
- Max 1000 files in memory simultaneously.
- grh-61
- No limit on file size (other than your computer's memory).
- grh-60
- SPECTROGRAM command implemented with color output.
- grh-58
- Online help (start with "help commands")
- grh-33
- Line editing/re-entry like modern Unix shell input (bash/tcsh),
meaning that left-, up-, down- and right-arrows move cursor for typing
over commands or retrieving old commands from your scrolling buffer.
Comments or complaints to
George Helffrich