Earthworm 7.10 Released!

Skip to first unread message

Stefan Lisowski

Aug 20, 2019, 7:58:31 PM8/20/19
to Earthworm Community Forum
Hi Earthworm folks,

After a long beta test period we are releasing Earthworm version 7.10!!

64 bit compilation now is the default, and no longer experimental. Many
modules now support IPv6 TCP/IP networking; important as some cell
modems no longer provide an IPv4 address. We've got an .rpm file as
well, so Earthworm can be installed as a package on Fedora systems. But
read the included release file below, because there are many more
changes, fixes, additions and improvements.

The number of warnings and compilation issues are dramatically reduced
thanks to the continued persistence of Larry Baker at the USGS, and the
makefiles have been streamlined and are much more consistent now. There
are also new convenience upgrade versions of Winston and SWARM thanks to

You can grab the latest distro from for your OS here:

If you don't see one that works for your particular operating system,
let us know and we may be able to build one for you.

As with any release, if you find issues, and you will, make sure to
provide detailed bug reports so we can duplicate it and squash it. We
will put any new binaries that we think are critical in the v7.10_fixes
directory before 7.11 goes live.

Finally, a big thank you to anyone whom we have not mentioned directly
by name who contributed to this release. This is a community tool and
supported by a community of developers. Thanks to all who made this a
better open source tool for seismology.

Best regards,
Paul & Stefan

Here's what's happened in the last few years, from the
release_notes.v7.10 file. If you made contributions to 7.10 that aren't
listed, please feel free to reply and list them so everyone will know!


eqmaxel - MAXEL Maximum Likelihood Estimator (MLE) from Dong Hoon Sheen
integrated as an earthworm module that can be bolted on as another
locator in the megamodule.
I listed this here because we made mods in 2018 to this module.
Paul Friberg and Dong Hoon Sheen July 20, 2017

pick_ffp - eBEAR tauC and Pd picker based off of Pick_FP instead of pick_ew.
Jin Koo Lee February 25, 2018

pick_gm - eBEAR tauC and Pd ground motion packet generator in a
real-time sense (not pick based).
Jin Koo Lee February 25, 2018

buildinfo - not really a module, but a command that will print out the
build information, including the data and time of the build, and the
EW_BITS, 32 or 64, of the build. For example:

buildinfo: Linux EARTHWORM-64 build of Mar 16 2019 16:44:24

On Windows systems, the MSVC compiler version, the target Windows
release,and the Windows SDK for the build are printed. On *nix systems,
no additional information is printed.
Larry Baker January 12, 2019


Check library changes at the bottom for a more complete picture as
applications that used these libraries were changed accordingly

Added output of TYPE_EVENT_SCNL message to the Debug flag (for use as
input testing to eqmaxel).
Paul Friberg July 18, 2017

Fixed a number of edge cases dealing with quake_id.d (thanks to Jin Koo
Lee) and also changed the travel time lookup to allow for finer grained
station locations relative to the earthquake. The prior system dealt in
converging travel times to an integer in tenths of a second and that is
not enough resolution for mines or small scale networks less than a
kilometer on an edge.
Paul Friberg, version 1.0.38 2019.02.14

NonLinLoc manager had Debug flag added in for review of actions and a
version number was added for tracking.
Paul Friberg, October 23, 2018

Major modifications to using Google Earth maps, there are new GoogleMap
key and secret settings in the .d
Paul Friberg July 2018

Many modifications for USBR for the dam safety division
Paul Friberg & Scott Hunter Jan to May 2018

Ticket #683
Removed 'TypeRestart' from types copystatus is to copy. Rewrote
'restart' to look up statmgr ring and write to that directly, if it exists
Alexander Schnackenberg February 13, 2019

Modifications to ensure a safe crossing of the Greenwich Meridian (lon =
0°) (bug present in the original version of Hypo71, revealed in the
Pyrenees where the pathological case "lon(closest station) x
lon(epicenter) < 0 is not uncommon)
M. Sylvander (Toulouse, France) November 30, 2018

Upgraded to version 1.42 which cleaned up a CRE bug and a licensing
issue with some sorting routines. (CRE bug fix reported by Jim Pechmann)
Fred Klein & Paul Friberg April 23, 2018
Upgraded to version 1.43 which fixed some infinite loop cases found at AVO
Larry Baker & Paul Friberg December 2018

Added out-of-order packet message to the previous gap and overlap checks
(gap and overlap)
Paul Friberg March 15, 2018

Now echo's back the MINISEED encoding format in the file if it is not
compatible with the program. Previously it just said that the encoding
format was not one of the allowed ones, but that is not enough
information. For instance IEEE Double's are not handled yet, since
TRACEBUF2 only allows integer counts.
Paul Friberg October 11, 2017

Changed computation of bias to a rolling average; added gap detection &
resetting of various timers & bias computation when gap detected. Added
gap threshold & window size paramaters to config file (optional).
Scott Hunter September 20, 2017

Cleaned up some compilation issues on newer versions of ubuntu (16).
Paul Friberg September 7, 2017

Added slicing the input data packets into 1 second packets before
processing them. Processing code which assumes 1s data packets has not
been modified. This allow the rsam computation to work as expected with
variable length TraceBuf packets (as produced by slink_srv)
Jean-Marie Saurel July 18, 2017

Fixed a bug in offline mode. Thanks to Jin Koo Lee from KITValley Co LTD
for reporting this bug. new version v0.0.6
Paul Friberg June 5, 2017
Fixed a bug in windows mode. Thanks to Jin Koo Lee from KITValley Co LTD
for reporting this bug. new version v0.0.7
Paul Friberg Dec 21, 2017

Modified output format for CSS wfdisc data at request of the current
only user:
Ilya Dricker February 23 2017

Ticket #565.
Add MseedRing command to echo/redirect output in miniSEED format to
a different ring.
Scott Hunter January 25, 2017

Update nmxptool version 2.1.4
Matteo Quintiliani January 4, 2017

Add parameter searchTimesTauSFunc, alternative for searchTimes
The end time of window for searching for peak amplitudes is defined by
Estimated_S_Times + ( K1 * ( 1 - exp( - TauS / K2 ) ) )
where TauS = Estimated_S_Times - Origin_Time
Read details in localmag.d or next section "CHANGES to CONFIGURATION FILES"
Matteo Quintiliani and Franco Mele December 7, 2016

scream2ew - added in 250Hz srate handling capability
Richard Luckett and Murray McGowan - Dec 6, 2016

Extend use of parameter SkipStationsNotInArc also for S phase
Matteo Quintiliani December 1, 2016

Ticket #559.
Fix call to logit().
Add to gmew the error handle for WS_ERR_PARSE. Copy source from localmag.
Matteo Quintiliani November 11, 2016

Ticket #534.
Add help description for data and feed latency.
Matteo Quintiliani November 11, 2016

Ticket #555.
Fix for max number of stations maxSta.
Matteo Quintiliani November 4, 2016

maketrace is used to inject data into Earthworm, e.g., as a stress test.
V2 is pretty much a complete rewrite. The Windows specific code has
been removed. Support was added for TRACEBUF2 SCNLS and heartbeats.
Only the Location Code part of the SCNL is sequenced. The user can
specify a SCNL template and the start time. Data rate statistics can be
disabled or the update interval changed by the user. The code is now so
fast that statmgr cannot keep up. An example stress_test subdirectory is
included, similar to the Memphis test suite.
Larry Baker December 21, 2018

Ticket #695
Fixed the SPARC 64-bit alignment traps.
Larry Baker March 1, 2019

now supports writing out to COSMOS1.2 v0 format if there's a library of
template files with station info to start from.
Stefan Lisowski 2019

Add new default data encoding that tries Steim-2 and falls back to Steim-1.
This allows for a graceful mechanism to deal with input data series that
are not compatible with Steim-2 compression, specifically differences
between samples that cannot be represented with 30 bits or less.
Chad Trabant March 14, 2019

* preserve query when error "Lost connection to MySQL server during
query" occurs. (Error code: 2013)
* preserve query when error "MySQL server has gone away" occurs. (Error
code: 2006)
* fix precision to millisecond in datetime fields
Matteo Quintiliani - May 28, 2019


Add parameter searchTimesTauSFunc, alternative for searchTimes
searchTimesTauSFunc K1 K2 A B deltaA deltaB
The time window for searching for peak amplitudes is:
<searchStartTime> A seconds before the Estimated_P_Times
<searchEndTime> B seconds after
Estimated_S_Times + ( K1 * ( 1 - exp( - TauS / K2
) ) )
where TauS = Estimated_S_Times - Origin_Time
The time window for cutting traces is:
<traceStartTime> deltaA seconds before <searchStartTime>
<traceEndTime> deltaB seconds after <searchEndTime>
example: searchTimesTauSFunc 40.0 30.0 1.0 1.0 19.0 9.0
WARNING: searchTimesTauSFunc conflicts with searchTimes
WARNING: traceTimes is ignored if searchTimesTauSFunc is used
Matteo Quintiliani and Franco Mele December 7, 2016

Add option to log HYPINV commands:
LogFile 2 # 0 no log, >=1 errors, >=2 hypocenters, >=3
HYPINV commands
Larry Baker February 20, 2019




massive makefile.nt and makefile.unix clean up by Larry Baker. Thanks

encode64/decode64 via SHA-1 added for ewhtmemail use of Google Maps and
This uses a GNU licensed version of codes from the Free Software Foundation
Paul Friberg July 2018

Added wrapper functions setuptcpclient_ew() and setuptcpserver_ew()
which eliminate boilerplate socket code and allow applications to
be agnostic as to whether addresses are IPv4 or IPv6
Alexander Schnackenberg November 26, 2018

New library routines to properly parse IPv4 and IPv6 address strings
Includes rewritten 'ip_in_same_subnet()' function to determine whether
two addresses are in the same subnet
Larry Baker March 16, 2018

Updated threading functions to use ew_thread_t types that correctly
resolve to underlying opaque types, vs assuming the use of unsigned
integers is correct across 32 bit and 64 bit systems
Alexander Schnackenberg February 6, 2019


The Earthworm build has been tested on several versions of Linux, MacOS,
Solaris, and Windows. The Memphis test suite has been run to validate
the results.

The minimum system requirements are:

A C90 compiler and a Fortran 90 compiler (optional on Windows)

MacOS: Apple gcc (clang), GNU gcc (probably works), GNU gfortran
No known restrictions
Linux: GNU gcc, GNU gfortran
No known restrictions
Solaris: SunOS 5.10 or newer
Sun C 5.9 or newer, Sun Fortran 90 5.9 or newer
Windows: Windows 7 or newer
Microsoft Visual Studio 2015, Update 3, or newer
Optional Intel Parallel Studio Fortran 2015, Update 4, or newer

Aug 2, 2022, 12:08:18 AMAug 2
to Earthworm Community Forum
Hi EW community,
Has anyone tried an installation on Redhat 8.5?

Attempted to install but failed. The installation stopped with this error:
Making util in: /opt/Earthworm/earthworm_7.10/src/libsrc/util
make[2]: Entering directory '/opt/Earthworm/earthworm_7.10/src/libsrc/util'
gcc  -g -pthread -Wall -Wextra -Wno-sign-compare -Wno-unused-parameter -Wno-unknown-pragmas -Wno-pragmas -Wformat -Wdeclaration-after-statement -D_LINUX -Dlinux -D_INTEL -D_USE_SCHED -D_USE_PTHREADS -D_USE_TERMIOS -D_FILE_OFFSET_BITS=64 -I/opt/Earthworm/earthworm_7.10/include -D_LINUX -Dlinux -D_INTEL -D_USE_SCHED -D_USE_PTHREADS -D_USE_TERMIOS -D_FILE_OFFSET_BITS=64 -I/opt/Earthworm/earthworm_7.10/include  -c -o ahputaway.o ahputaway.c
ahputaway.c:79:10: fatal error: rpc/types.h: No such file or directory
 #include <rpc/types.h>
compilation terminated.
make[2]: *** [<builtin>: ahputaway.o] Error 1
make[2]: Leaving directory '/opt/Earthworm/earthworm_7.10/src/libsrc/util'
make[1]: *** [makefile.unix:56: util] Error 2
make[1]: Leaving directory '/opt/Earthworm/earthworm_7.10/src/libsrc'
make: *** [Makefile:120: unix_libs] Error 2

I searched RH 8 package and saw this comment related to rpc/types.h dated 2020: Unfortunately I cannot provide you with a solution which lets you safely install /usr/include/rpc/rpc.h on RHEL 8. The file was included in the glibc-headers package on RHEL 7 - but it's not included in that package on RHEL 8.
Is there any workaround for this at the moment?

Also tried the line
   # For RHEL 8 or recent Fedora, use tirpc
 export CPPFLAGS="-D_LINUX -Dlinux -D_INTEL -D_USE_SCHED -D_USE_PTHREADS -D_USE_TERMIOS -D_FILE_OFFSET_BITS=64 -libtirpc -I${EW_HOME}/${EW_VERSION}/include -I/usr/include"

This also failed.

Any advice would be appreciated. Thanks in advance!
Cheers! Glenda

Stefan Lisowski

Aug 2, 2022, 8:59:57 AMAug 2
I'd suggest trying a compile from the latest Earthworm from the repository:

git clone earthworm_git

If that still doesn't work please do share your error logs.

> <>
> only user: <>
> --
> --
> You received this message because you are subscribed to the Google
> Groups "Earthworm Community Forum" group.
> To post to this group, send an email to
> To unsubscribe from this group, send an email to
> For more options, visit this group at
> <>
> ---
> You received this message because you are subscribed to the Google
> Groups "Earthworm Community Forum" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to
> <>.
> To view this discussion on the web visit
> <>.


*To follow ISTI news and updates please subscribe to our newsletter
"the isti letter" at

Paul Friberg

Aug 2, 2022, 11:29:47 AMAug 2
to Earthworm Community Forum

We have had to add the libtirpc-devel package to get Earthworm to compile on newer Linux installations too....

For centos the command to add that was:  yum install libtirpc-devel

I think RHEL has yet another package management system that is needed to install that package.


To unsubscribe from this group and stop receiving emails from it, send an email to
To view this discussion on the web visit

Paul Friberg
ISTI==Instrumental Software Technologies, Inc.
Phone +1.518.602.0001

Aug 2, 2022, 1:00:29 PMAug 2
to Earthworm Community Forum
The yum install libtirpc-devel and installing of all gcc compilers (g++ particularly) fixed the problem!!! Thanks a bunch!!!
Reply all
Reply to author
0 new messages