# Earthworm Release Notes V7.2

(December 28, 2007)

New Modules
Modifications/ Bug Fixes to Existing Modules
Changes To Configuration Files And Descriptor Files
Known Bugs
Known Deficiencies

    NEW MODULES:
    ***********
    data_sources/nmxptool
    Version 1.1.7 of Matteo Quintiliani of INGV contributed this very
    useful module which can talk directly to NAQS and produce gap
    free nanometrics data (provided there are no gaps at the source)
    into Earthworm rings.
    Paul Friberg 2007/12/15

    seismic_processing/eqassemble
    Contributed by Peter Lombard of UCB. This module is an alternate head
    of the EW megamodule pipeline for doing hypocentral locations. Its a
    new variant that can mimic how earthquake processing is handled in
    the CISN codes.
    Paul Friberg 2007/10/12

    tankplayer_tools/tanksniff - show a sniffwave output of a tanks contents.
    Saves you having to run tankplayer just to view the content.
    Paul Friberg 2007/08/28

    tankplayer_tools/tankcut - a way to cut out a section of a tankplayer
    tank using a start time and end time or duration.
    Paul Friberg 2007/08/28

    tankplayer_tools/dc2tank - a way to pull data from the DMC data center using
    DHI (requires Java to be installed and DHI2mseed.jar with accompanying files).
    Builds a tank file given a SCNL list and a start time and or end time.
    Paul Friberg 2007/08/28

    tankplayer_tools/tr2dump - dump tankplayer tank as ASCII info to stdout
    (only in makefile.nt and makefile.ux currently)
    Ron Bakerian 2007/07/18

    tankplayer_tools/ms2tank - new miniseed tank writer that works on Windows,
    Mac OS X, Linux, Solaris.
    Paul Friberg 2007/07/17

    tankplayer_tools/ring2tank - suck tracebufs out of a ring and write them
    directly to a tank for later playback. Tested on Solaris, Windows and Mac OS X.
    Paul Friberg 2007/05/20

    tankplayer_tools/smb2tb - take SMB format and convert to tanks. SMB format
    is from the Trinidad Soufrier system (part of the Carribean Tsunami work).
    Ron Bakerian 2007/06/15

    MODIFICATIONS/BUG FIXES TO EXISTING MODULES:

    ********************************************
    glass/rayloc_ew upgraded from hydra_proj by Paul Friberg and Mitch Withers
    respectively. This upgrades these modules to the latest versions
    December 2007

    hyp2000/hyp2000_mgr - Fred Klein upgraded all of the hyp2000 to be compilable
    using the GNU fortran 77 compiler. This allows hyp2000 to work on Linux and
    Mac OS X.
    Paul Friberg integrated the new hyp2000 into hyp2000_mgr for Linux.
    2007/12/17

    k2ew_tcp v2.43
    Modified the code to handle a dual modem and serial data stream case
    better when the ForceBlockMode is turned on. This mode also requires
    that status requests be turned off and a new k2 firmware version be
    installed for it to work.
    Paul Friberg 2007/12/17

    sniffwave
    Modified the output to show the TRUE datatype (s2,i2,i4,s4) rather than
    the one converted to by WaveMsg2MakeLocal().
    Paul Friberg 2007/12/14

    WaveMsg2MakeLocal() in libsrc/util/swap.c was improperly using a long
    and assuming it was 4 bytes in length. On some operating systems
    a long can be 8 bytes. I patched the function to use int's instead.
    Paul Friberg 2007/12/14

    pick_ew
    Fixed a bad use of long (where int should have been used) that caused
    long ints to be 8 bytes for the data samples on Linux OS. At the same
    time I put an assertion error inside SwapLong() of swap.c to throw
    a fatal error message to stderr if the sizeof(long)=4 bytes assumption
    is violated.
    Paul Friberg 2007/12/14

    wave_serverV
    Added in Ron Bakerian's sqlite3 implementation for managing gaps and overlapping
    data that previously got dropped by wave_serverV. This feature needs .d entries
    to be activated. See the updated docs.
    Paul Friberg 2007/11/30

    sac2tb (in archiving/tankplayer_tools)
    Fixed a bug where a location code of "" was not being
    converted to "--", the default blank location code.
    Paul Friberg 2007/11/13

    q3302ew
    lib330 was updated by Quanterra to solve some issues. The earthworm
    copy of this was updated and q3302ew uses this new version.
    Paul Friberg 2007/10/24

    display/heli_ewII
    Jean-Michel Douchain pointed out that the IndexFile config setting was
    not working. I fixed it in this new version.
    Paul Friberg 2007/10/24

    archiving/tankplayer_tools/sac2tb
    Matteo Quintiliani of INGV modified sac2tb so that it will read both SAC
    files written in Sparc and Intel byteorder. Previously it only handled
    SPARC (motorola byte order).
    Paul Friberg 2007/10/22

    Fixes to many export modules as per Alex Nercessian recommendation:
    This short variable is found in the files:
    export_actv/export_actv.c:      char     processor[15];
    export/export.c:                char     processor[15];
    export/export_scn_pri.c:        char     processor[15];
    ringdup/ringdup.c:              char     processor[15];
    Made them all 17 or in some cases 20 to be safe.
    Paul Friberg 2007/09/20

    import_gen_pasv: was using a bad way to strncpy the module ID such that
    errors could happen and the module could fail at startup.
    Paul Friberg 2007/09/18

    remux_tbuf:
    modified to use a common code base for the remuxing since I reused it
    in a number of tankpayer_tools modules.
    Paul Friberg 2007/08/28

    localmag:
    space for saveXMLdir not malloc'ed.  Fixed using strdup.
    Mitch Withers 2007/07/20

    wave_serverV:
    data_type's in tanks were turning up with blank values!
    There was a serious memory alignment bug in calls to WaveMsg2MakeLocal() - fixed,
    and the return of WaveMsg2MakeLocal() was checked for bad values, but the
    return which was being reported was the previous packet, not the bad one - fixed,
    Added more details about datatype to the error warnings for bad packets.
    Paul Friberg 2007/05/28

    gmew:
    Fixed a bug reported by Ali Moeinvaziri of Utah.A qsort() call
    had some args switched! This caused some segfaults and was seen
    as far back as v6.2! Thanks to Ali for this catch.
    Fixed by Paul Friberg 2007/05/15

    sgram:
    sgram.c had a number of fgets() calls that had
    a bad specification of the size of the char * array. This
    has been fixed. A new version is available.
    Bug reported by Alex Nercessian, Fixed by Paul Friberg 2007/05/15

    k2ew_com,k2ew_tcp:
    Added a CtrlHandler (Windows only) to catch/ignore user logoff events
    so that k2ew console windows will survive user logouts when Earthworm
    is started with startstop_service. Also modified to log a descriptive
    message instead of a numeric value for handled signals.
    Changed version to v2.42.  2007/05/09 Lynn Dietz

    file2ring:
    Added optional command-line argument  to be supplied as
    any positive integer. File2ring does sequence%256 before handing the
    sequence to transport, so an ever-increasing integer can be used as
    the sequence# argument for repeated invocations of file2ring.
    This feature can be used to implement Earthworm-style messages and
    heartbeats from non-Earthworm scripts. Remember to keep a seperate
    sequence counter for each  used within each
    script. If the sequence# argument is ommitted, file2ring will load
    the message in transport with sequence=0.  2007/08/02 Lynn Dietz

    naqs2ew:
    Added three new Nanometrics instrument types: Taurus,Apollo,Trident305.
    These instruments will now be properly identified in log messages.
    2007/10/02 Lynn Dietz

    eqprelim:
    Added new config command "ReportCoda" to control whether coda information
    is written to output. If ReportCoda=0, no coda info will be written,
    even if some exists at the time the event is reported. If ReportCoda is
    non-zero, coda information that exists at the time of report will be
    included. Default is ReportCoda=1 which is the previous default behavior.
    The new command is optional.  2007/11/29 Lynn Dietz

    CHANGES TO CONFIGURATION FILES and DESCRIPTOR FILES:
    ****************************************************

    KNOWN BUGS:
    ***********

    liss2ew:
    liss2ew has been observed intermittantly producing malformed
    TRACE_BUF messages.  Currently the conditions for causing this problem
    are unknown.  Due to this, liss2ew should be treated as suspect.  Use at
    your own risk.  JMP 6-18-2003

    wave_serverV:
    appears not to reply to requests for a single sample of data. I noticed
    when testing wave_viewer, that if the start time and end time of a request were
    equal (in which case there should be one sample of data) then wave_serverV did
    not reply to the request (ASCII request) at all. No Data, No Flags, No Reply,
    No Nothing.  It needs to issue a reply to every request.
    DavidK 09/25/01

    Automatic restarts of adsend (using the "restartMe" line in the descriptor
    file) can cause an NT system to hang. Therefore, you should never
    use the autorestart feature with adsend, but you should bring down
    the entire Earthworm system if adsend needs to be restarted.
    LDD 5/31/2000 Comments added to adsend.desc, but leave this warning here!

    libsrc/utils/site.c: The strings used for station, channel and network are
    required to be fixed length with trailing spaces added to short names. If
    the strings given to site_index do not have these trailing blanks, SCN names
    will not match. This is not documented anywhere.  PNL 10/15/00

    KNOWN DEFICIENCIES:
    *******************

    ringtocoax:
    In Windows NT, the time resolution of sleep_ew() is about 16 msec (one clock
    tick).  On Solaris, the resolution is about 10 msec.  This is a problem for
    ringtocoax, since packet delays need to be set to a few milliseconds.

    threads functions: The KillThread function on WindowsNT and Solaris
    terminate the thread without ensuring that no mutexes are held. If a thread
    holds a mutex when it dies, no other thread can get that mutex. PNL 1/12/2000

    carlsubtrig:
    The system time must be set to GMT and ew_nt.cmd must have
    TZ=GMT for carlsubtrig to work.  Comments in ew_nt.cmd done 5/25/00. Barbara

    localmag:
    needs GMT set on the system

    ew2seisvole:
    on NT, exits with horrible crash when system is stopped.

    NUMBER OF RINGS LIMITED ON SOLARIS:
    Under Solaris 2.6 (and probably other versions as well), the maximum number
    of shared memory segments is six. This means that on an out-of-the-box machine
    you can only configure six rings. If you try to configure more than that, you
    will see a cryptic message from tport_create about too many open files.  The
    fix to this problem is to add the following lines to the /etc/system
    file, and then reboot the system.

     set shmsys:shminfo_shmmax = 4294967295
     set shmsys:shminfo_shmmin = 1
     set shmsys:shminfo_shmmni = 100
     set shmsys:shminfo_shmseg = 20
     set semsys:seminfo_semmns = 200
     set semsys:seminfo_semmni = 70

    This allows for 20 rings.

         Lucky Vidmar (7/6/2000)

    TRACEBUF messages.
    The definition of `endtime' of the TRACEBUF message is not documented.
    Some programmers are taking it as the "expected start time of the next
    TRACEBUF packet (if the sample interval is uniform.)" The more accepted
    practice is that `endtime' is the time of the last sample of the current
    TRACEBUF packet; that is, one sample interval less than the expected
    start time of the next TRACEBUF messsage. Using this last definition, if a
    TRACEBUF packet has exactly one sample, then its starttime and endtime are
    the identical. Clearly this distinction needs to be documented. The file
    waveform_format (in the /home/earthworm/DOC directory) gives no specifics
    about start or end times.  PNL 1/24/01