NonLinLoc Updates: New Releases, Updates, Bug fixes




27 Sep 2017

New Release v7.00

NonLinLoc software v7.00 released (Updated release of the NonLinLoc software and documentation.)

New Features:

  1. NLL: Added utilities Vel2Grid3D, interface2fmm, fmm2grid to support creating NLL travel time grids using ANU-FMM multi-stage 3D fast marching code (

  2. NLL: Added new utility Time2Angles to convert NLL travel time grids to NLL angles grids.

  3. NLLoc: Added use of spherical oct-tree structure in GLOBAL mode if SAVE_NLLOC_OCTREE not used (does not yet support spherical trees). Spherical oct-tree structure uses fewer cell in longitude towards the poles to preserve average cell volume. Number of cells in longitude is proportional to cos(latitude).

  4. NLL: Added NLL cascading, multi-scale, 3D grid structure. A NLL cascading grid has a doubling of cell size at specified depths. This reduces greatly the storage and memory requirement for large, 3D grids. A NLL grid can be converted from a regular grid to cascading grid with new tool GridCascadingDecimate. Typically, a 3D velocity model and travel times will be constructed using a regular grid to maintain precision; as a last step, the travel-time grids are converted to cascading grids for storage and location.

  5. NLLoc: Added SAVE_NLLOC_EXPECTATION format output to LOCHYPOUT parameters, allows saving of expectation hypocenter results instead of maximum likelihood.
    Added to NLLoc Hypocenter-Phase file:
    HYPOCENTER line: new field at end of line: HypoDesc->type: "MAXIMUM_LIKELIHOOD" or "EXPECTATION"
    New MAXIMUM_LIKELIHOOD line, example:
    MAXIMUM_LIKELIHOOD MaxLikeLat 31.247162 Long -103.361311 Depth -0.537500 OT 32.906855

  6. NLLoc: Added: New binary (*.bin and *.bin.hder) format for LOCTOPO_SURFACE topo surface file.

  7. NLLoc: Added SAVE_FMAMP format output to LOCHYPOUT parameters, fmamp hypocenter-phase file.

  8. NLL: Added: TRANS TRANS_MERC transform mode added. (Transverse Mercator projection)

  9. NLL: Added new utility scat2latlon to convert binary PDF scatter sample files *.scat to ascii files with lines containing lat/lon/depth/0/non-normalized_likelihood for each sample.


  1. NLLoc: Take-off angle default/unset values for dip and azimuth set to -1.0 so unset angles can be more easily identified in later processing (e.g. in SeisComp3)

  2. NLLoc: Added support for non-zero and non-unity arrival a-priori weighting (NLL_FORMAT_VER_2). Before, arrivals with zero a-priori weights were rejected, otherwise a-priori weight = 1.0 was used. Now, a-priori weights are used in proportion to their values.

  3. NLLoc: Added observation file name and program version date to SIGNATURE line in NLL hypocenter-phase file.

  4. NLLoc: Added Added: QML_ConfidenceEllipsoid in NLL Hypocenter-Phase format, and supporting conversion nllEllipsiod2QMLConfidenceEllipsoid() in matrix_statistics.c.

  5. NLDiffLoc: Added L1 norm (LocMethod == METH_L1_NORM).

  6. NLL: Changed km/deg scaling to be based on sphere with radius 6371, average Earth radius, instead of 90deg/10000km.

  7. NLLoc - New version of matrix_statistics/matrix_statistics.c: CalcCovarianceSamplesGlobal() which calculates x and y coords using distance and azimuth of each sample from expectation x,y. Centers x,y and avoids problems near poles.

Bug Fixes:

  1. NLLoc: LOCMETH GAU_ANALYTIC: adde a check and reject hypocenter location points where there are no valid travel-times available.

  2. NLLoc: Hypocenter-Phase outputs in HypoEllipse and Hypo71 format: all phases used for location were not printed, changed so that all phases are printed, regardless of location weight.

  3. NLLoc: Changed HypoDesc->probmax from double to long double, to help avoid over-range in probmax value.

  4. NLLoc: ArrivalDesc->original_obs_index was not set properly to mirror arrival index in observation file when duplicate arrivals are rejected.

  5. NLLoc: Calculated hypocenter to station azimuth in GLOBAL mode was incorrect for some azimuth quadrants.

  6. NLLoc: Memory for 3D travel-time grids read into memory (see LOCMETH) was not properly freed.

  7. NLLoc: Bugs in station distribution weighting, changed cross-arrival weighing from sum to product (see LOCSTAWT).

  8. OctTree: Calculation of integrals and scatter sample for value_type == VALUE_IS_PROBABILITY_IN_NODE. (NLLoc does NOT use this mode, it uses value_type == VALUE_IS_LOG_PROB_DENSITY_IN_NODE.)

  9. NLLoc: HYPO71 phase format S phases were not correctly read (60sec error) when there was no decimal point in the time field.

  10. NLLoc: Fixed bug in associating S with P from same station when LOCMETH VpVs used, in some cases location would abort because P travel time grid for S picks not found.

  11. NLLoc: Bug fix: with LOCMETH: When LOCSTAWT is active the station dist weight was counted twice for determining the maximum likelihood origin time.

  12. Grid2GMT: Minor bug fixes.

  13. NLDiffLoc: Fixed bug: station and ray values (SDist SAzim RAz RDip RQual) in *.hyp file did not always correspond to hypocenter for *.hyp file.

  14. NLDiffLoc: Fixed bug: inconsistency in conversion of degrees to km: now all conversions deg<->km are made on a sphere with average Earth radius 6371 km. In GLOBAL mode this change can lead to small but not necessarily insignificant changes in station distances, travel-times and hypocenter.

  15. NLLoc - Bug fix: matrix_statistics/matrix_statistics.c: CalcCovarianceSamples():

Implemented new algorithm which subtracts the expectation from each data value before squaring and summing,
instead of correcting for expectation after summing and dividing by nSamples.
Should prevent precision errors in covariances when expectation is far from coordinates origin.


The algorithm for calculating the covariance of the PDF scatter sample used in NLLoc
was subject to precision errors when the expectation of the scatter sample (e.g. the event location)
was far from the origin of the NLL coordinates system relative to the extent of the PDF scatter sample.
Several tests indicate that "Far from the origin" is of the order of 1000 times the extent of the PDF scatter sample.

Errors in covariance will affect the ellipsoid and ellipse, standard-errors (erh, erz, etc.).

For teleseismic locations (NLL GLOBAL mode) errors with the old algorithm occur primarily in
longitude (X), increasing with expectation longitude and occasionally becoming large towards longitude +/-180deg.
For local studies in rectangular coordinates where the NLL coordinates origin is far from the network
and target sources, the errors may be large. This may be the case, for example, for a micro-seismic study
using a regional, metric-based cartesian grid coordinate system with origin far from the study area.
For local studies in rectangular coordinates where the NLL coordinates origin is within or near the network
and target sources, the errors should be very small or negligible.
The algorithm for calculating the covariance of the PDF scatter sample used in NLLoc v.6.03.00 and later does not
have these precision errors and is valid for locations far from the origin of the coordinate system.

07 Mar 2011

New Release v6.00

NonLinLoc software v6.00 released (Updated release of the NonLinLoc software and documentation.)

New Features:

  1. NLLoc: LOCHYPOUT->FILENAME_DEC_SEC format added.

  2. NLLoc : Hypocenter->gap_secondary added

  3. NLLoc: QML_OriginQuality, QML_OriginUncertainty in NLL Hypocenter-Phase format output.

  4. NLLoc: Added compiler option GRID_FLOAT_TYPE_DOUBLE to set the floating point size (float or double) for NLL grids - modify with care! Normal NonLinLoc usage currently require float type; take-off angle and byte-swapping support requires float type.

  5. NLLoc : // SED-ETH fields added for compatibility with legacy SED location quality indicators. SED_Origin added to NLL-Hypocenter output format if LOCHYPOUT->CALC_SED_ORIGIN flag specified.

  6. Grid2Time: Slowness model grids are now saved to output time grid directory.


  1. NLLoc: Replaced old matrix libraries with open source matrix libraries. Used for SVD (singular-value decomposition for error ellipsoid calculation) and Gauss-Jordan elimination (matrix inversion).

Bug Fixes:

  1. NLLoc: WriteHypoInverseArchive for Y2000 : Uninitialized site, network, and component codes were written as "?" instead of " " (blank).

  2. NLLoc: Reading HYPO71 and HYPOINVERSE type phase files : Failed to correctly distinguish integer and floating point phase seconds fields correctly if seconds < 1.00.

  3. NLLoc: Inconsistent treatment of zero weight, ignored and large error (>9998sec) phases in location and output. Now: 1) Phases with phase name starting with "*", PriorWt = 0, ErrMag > 9998.0 or excluded (LOCEXCLUDE) are not used for location, their Weight will be 0. 2) Phases with Weight = 0 are not used to compute the QUALITY measures: Nphs, Gap or Dist.

  4. Time_3d.c: Corrected 2 statements with no effect: Time_3d.c:1701, Time_3d.c:1713.

  5. NLLoc: ERH and ERZ values in hypo71 output were not correctly calculated: were squared distance, corrected to be distance

  6. NLLoc: Global mode ellipsoid did not correct for reduction of length of degree of longitude away from equator (see GridLib.c – CalcCovarianceSamplesGlobal())

  7. NLLoc: Free StaStatNode's in station statistics tables when all locations completed - prevents memory leak problems when NLLoc run as a function call.

  8. NLLoc: NLLocLib.c->ReadNLLoc_Input() fixed segmentation fault when NLLoc run as a function call and INCLUDE statements present in control lines.

  9. NLLoc: Oct-tree search was not initialized to bottom of LOCSEARCH grid, bottom LOCSEARCH grid layer was lost.

  10. NLLoc: Station distribution weights may have been incorrectly calculated when multiple events located.

  11. NLLoc: fixed various problems with not freeing memory pointers in station statistics table

  12. NLLoc: addToStationList returned zero stations when station list reached maximum size.

  13. NLLoc: corrected irregular node spacing for OctTree initialization in GLOBAL mode.

  14. NLLoc: matrix cleanup was done in incorrectly inside the Locate loop, caused LOCSEARCH GRID to fail with multiple grids.

  15. NLLoc: covariance calculation with LOCSEARCH GRID could fail due to precision problem if x, y, or z coordinated of location were large.

02 Sep 2008

New Release v5.00

NonLinLoc software v5.00 released (Updated release of the NonLinLoc sofware and documentation.)

New Features:

  1. NLLoc: Control statement LOCHYPOUT: Added SAVE_HYPOINVERSE_Y2000_ARC Hypoinverse Y2000 archive format. Default changed to "LOCHYPOUT SAVE_NLLOC_ALL SAVE_HYPOINVERSE_Y2000_ARC"

  2. Added: NLLoc: Control statement LOCHYPOUT: Added new NLL Format NLL_FORMAT_VER_2: with new fields: first part (observations): a-priori weight; second part (calculated values) applied time delay, used travel-time uncertainty. WARNING: this new output format is currently under development and subject to modification.

  3. Added: NLLoc: apriori weight in location: if 0 ignore, if 1 use arrival.

  4. NLLoc: - Added LOCMETH EDT_OT_WT_ML: EDT origin-time weighting is applied using a grid-search, maximum-likelihood estimate of the origin-time. Less efficient than EDT_OT_WT which uses simple statistical estimate of the origin time. WARNING: this new feature has not been thoroughly tested.

  5. NLL: - TRANS SDC: - SDC transform mode added. (Short Distance Conversion projection)

  6. NLLoc: Control statement LOCGAU2: Added LOCGAU2 travel-time dependent error. Specifies parameters for travel-time dependent modelisation-error. Sets the travel-time error in proportion to the travel-time, thus giving effectively a station-distance weighting, which was not included in the standard Tarantola and Valette formulation used by LOCGAU. This is important with velocity model errors, because nearby stations would usually have less absolute error than very far stations, and in general it is probably more correct that travel-time error is a percentage of the travel-time. Preliminary results using LOCGAU2 indicate that this way of setting travel-time errors gives visible improvement in hypocenter clustering. (can currently only be used with the EDT location methods)

  7. NLLoc: - Added: NLLoc: - Added LOCTOPO_SURFACE: uses a topographic surface file in GMT ascii GRD format to mask prior search volume to the half-space below the topography.

  8. NLL - Added: For developers: NLLoc can be called/run from other programs through new function NLLoc() (for more details see NLLoc1.c, phaseloclist.h, and NLL distribution doc).

  9. NLL - Generic control statement CONTROL: Added: message_flag = -1 -> completely silent

  10. NLL: - TRANS NONE: - NONE transform mode added. (no projection, XYZ<->XYZ)


  1. NNLoc: - Phase reading times can now cross a year boundary (requires that first reading is earlier year, i.e. readings are sorted in time order)

  2. NLLoc: - LOCMETH EDT_OT_WT: hypo.rms is set to sqrt(variance of ottime maximum-likelihood) - rms is thus weighted in correspondance to the contribution of each phase to the EDT maximum likelihood location; this is an a-posteriori weighting which avoid bias due to large outlier residuals.

  3. NLLoc: - LOCMETH EDT*: final origin time, residuals, etc. always calculated with ET_OT_WT_ML - maximum likelihood origin time.

  4. NLLoc: - IMPORTANT Change: With LOCMETH EDT* output phase weight is now an a-posteriori weight = a-priori weight (function of phase pick error and LOCGAU or LOCGAU2 travel time error) * EDT probability (the contribution of the phase to the EDT sum at the maximum likelihood hypocenter). Use LOCHYPOUT: NLL_FORMAT_VER_2 to include old (a-priori weight) phase list.

Bug Fixes:

  1. NNLoc: - Fixed bug: Output file names now have integer count index added only if base name identical to previous output file name

  2. NLLoc: - LOCSEARCH GRID : travel times did not include elevation correction LOCELEVCORR

  3. Time2EQ: - Fixed bug: noise added correctly for S when VpVs used

31 May 2006

New Release v4.10

NonLinLoc software v4.10 released (Updated release of the NonLinLoc sofware and documentation.)

New Features:

  1. NLLoc: - Added LOCMETH EDT_OT_WT: Equal Differential Time likelihood function (see EDT description page) with Origin Time weighting.  Weights EDT-sum probabilities by the variance of OT estimates over all pairs of readings.  This reduces the probability (PDF values) at points with inconsistent OT estimates, and leads to more compact location PDF's.  WARNING: this new feature has not been thoroughly tested.

  2. NLLoc: - LOCSEARCH OCT: useStationsDensity parameter added. if 1 weights oct-tree cell probability values used for subdivide decision in proportion to number of stations in oct-tree cell;  gives higher search priority to cells containing stations, stablises convergence to local events when global search used with dense cluster of local stations.   WARNING: this new feaure has not been thoroughly tested.

  3. NLLoc: - LOCSEARCH OCT: stopOnMinNodeSize parameter added. if 1, stop search when first min_node_size reached, if 0 stop subdividing a given cell when min_node_size reached

  4. NLLoc: Control statement LOCPHSTAT: Added parameters to allow filtering on ellipsoid max lenght of semi-axis and on hypo depth for selection of residuals to be used in calculation of average residuals

    • Ell_Len3_Max : max ellipsoid major semi-axis length to include in ave res

  5. Hypo_Depth_Min : min hypo depth to include in ave res

  6. Hypo_Depth_Max : max hypo depth to include in ave res cutoffs

  7. NLLoc: Control statement LOCHYPOUT: Added SAVE_NLLOC_OCTREE to LOCHYPOUT parameters to allow saving of oct-tree structure to disk when LOCSEARCH  OCT used.


  1. NNLoc: - In function NLLocLib.c:CalcSolutionQuality_EDT() : sum of EDT probs now not-normalized by sum of station weights - This increases the probability (PDF values) at points with more readings (larger number of valid travel-times).  Before, points where there were few very few travel-times were available (e.g. in shadow zone for many stations) could give anomalously large PDF values relative to points with a full set of valid travel times.

Bug Fixes:

  1. NNLoc: - Fixed bug: In function NLLocLib.c:ConstWeightMatrix():  added ncol == nrow case so error is non-zero (previously, if CorrLen == 0, travel time error was zero instead of sigmaT2)

  2. NNLoc: - Fixed bug In function NLLocLib.c:StdDateTime() : arrivals with no predicted travel-time (travel-time = 0) were used to calculate rms - gave very large rms

  3. NNLoc: - Fixed bug: addition to and counting of stations in station list was incorrect, may have affected *.stations files and LOCSTAWT

02 May 2005

New Release v4.00

NonLinLoc software v4.00 released (Updated release of the NonLinLoc sofware and documentation.)

New Features:

  1. NLLoc: - Added Obs Formats: ISC_IMS1.0 (, CSEM_GSE2.0  (

  2. NLLoc: - Added LOCELEVCORRFlag  VelP   VelS : Simple, vertical ray elevation correction for GLOBAL mode with TauP travel time files.  WARNING: this new feaure has not been thoroughly tested.

  3. NLLoc: - Added LOCSTAWT:   flag cutoffDist : Calculates a weight for each station that is a function of the average distance between all stations used for location.  WARNING: this new feaure has not been thoroughly tested.

  4. NLLoc: - Added minDistStaGrid to LOCMETH : Phases from stations closer than this distance will not be used for locaiton

  5. NLLoc: - Added output of total station corrections to new output file *.stat_totcorr (simplifies iterative development of station corrections), see Phase Statistics file.


  1. NLLoc: - Important: NLL now  first tries to open a travel-time grid file with a name corresponding to raw phase name, if this fails, it will then try using phase name mapping from LOCPHASEID (previously, NLL always used phase name mappings from LOCPHASEID, if present)

  2. NLLoc: - Added output of station correction (delay) used for location to each line in PHASE list in NLLoc Hypocenter-Phase file

  3. NLLoc: - Checking for (and ignoring of) duplicate phases is now limited to checking for duplication of station name (after aliasing) and duplication of original phase name

  4. NLLoc:  When DEFAULT time grids ("DEFAULT" for the station code) are used and multiple stations use same grid, only one copy of each grid file is kept in memory.

  5. NLLoc: - Added boundary indexing in Metropolis/Oct-Tree message "max prob location on grid boundary"  (10,11,20,21,30,31 -> x,y,z orig/end boundary)

  6. NLLoc: - Check for "max prob location on grid boundary" no longer "rejects" location if maxiumum likelihood hypocenter is on top boundary of search region as defined by LOCGRID.

  7. Source Codes: - NLLoc1.c has been split into NLLoc1.c and NLLocLib.c

Bug Fixes:

  1. NNLoc: - Fixed bug: ERH and ERZ values in HYPO71 Hypocenter/Station file output were reversed.

  2. NLLoc: - Fixed bug: gap in QUALITY Line in NLLoc Hypocenter-Phase file was calculated using 0 weight readings, now uses only readings with weight > 0.001

  3. Grid2GMT: - Fixed bug in Focal Mech plotting, was rotated 90 to far in clockwise direction

  4. Source Codes: - Fixed bug: some files were "closed" with close() instead of fclose()

  5. Source Codes: - Fixed code to remove most compiler warnings when -Wall flag used.

15 Apr 2004

New Release v3.03

NonLinLoc software v3.03 released (Updated release of the NonLinLoc sofware and documentation.)

New Features:

  1. NLLoc: - Added LOCMETH EDT: Equal Differential Time likelihood function (see EDT description page).

  2. NLLoc: - Added new Phase File Formats, including NEIC Format (NEIC) and CSEM-EMSC Alert Format CSEM_ALERT (for a list of more Phase File Formats, see Formats -> Phase Files).

  3. NLLoc: - Added support for arrivals without absolute timing (indicated by '*' as first character of NonLinLoc Format Instrument (can currently only be used with EDT likelihood function)

  4. NLLoc: - TRANS GLOBAL: spherical regional/teleseismic transform mode added.  In TRANS GLOBAL mode, the NLLoc program uses a "spherical earth", longitude,latitude,depth coordinate system (positive X = East, positive Y = North, positive Z = down). Longitude and latitude units are degrees, depth is in kilometers, most input/output distance quantities are expressed in geographic (longitude,latitude,depth) coordinates, most, but not all, horizontal distances are in degrees.

  5. NLLoc: - Support for station/site independent travel time grids identified by "DEFAULT" for the station code in the travel time grid file name.

  6. NLLoc: - LOCSRCE (equivalent of GTSRCE) added to allow specification of a station location when using station "DEFAULT" travel time grids during TRANS GLOBAL mode location.

  7. NLLoc: - LOCFILES: added optional iSwapBytes flag to support reading of travel time grids from different computer architecture platforms during TRANS GLOBAL mode location.


  1. NLLoc: - LOCSEARCH OCT: minNodeSize parameter activated (always in km).

  2. NLLoc: - OctTree smallestNodeSide output in NLLoc Hypocenter-Phase file is now x/y/z.

  3. NLLoc: - Rejected arrivals are written to output NLLoc Hypocenter-Phase file.

  4. NLLoc: - A copy of the control file is written in the output directory.

Bug Fixes:

  1. NNLoc: - Fixed bug: non-convergence in identifying maximum likelihood point when PDF is everywhere near 0.

  2. NLL0c: - Fixed bug in station azimuth in  NLLoc Hypocenter-Phase file, was not corrected for coord system rotation angle.

14 Oct 2003

New Release v2.37

NonLinLoc software v2.37 released (Updated release of the NonLinLoc sofware and documentation.)

New Features:

  1. Time2EQ: Added station active probability.


  1. Grid2GMT: Extended plot height to 27.9 cm

  2. Grid2GMT: Added magnitude to hypocenter info line in plot title

  3. NLLoc: ML Hutton Boore: ML_HB: added optional Ro and Mo parameters: #    ML_HB  amp_fact n K [Ro [Mo]]

  4. NLLoc: HYPO71, HYPO71_OV, HYPOELLIPSE phase input format: Added reading o fcoda duration value

Bug Fixes:

  1. NLLoc: Fixed bug: in OctTree scatter sample: sample was truncated at requested number of points.

  2. Grid2GMT: Fixed bug: in MAPTRANS: transformation was not initialized nor applied correctly

  3. Grid2GMT: Fixed bug: with magnitude assignments when only 1 mag type present

  4. Grid2GMT - Fixed bug: in hypoinverse format (magnitude was ignored), removed error ellipse values to prevent column shifting

  5. Grid2GMT - Fixed bug: in ETH_LOC format of arrival->sec

21 Jun 2001

New Release v2.32

NonLinLoc software v2.32 released (Updated release of the NonLinLoc sofware and documentation.)

Bug Fixes:

  1. NLLoc: Fixed bug: last.hypo_inv file not written to correct output directory.

18 May 2001

New Release v2.30

NonLinLoc software v2.30 released (Updated release of the NonLinLoc sofware and documentation.)

New Features:

  1. NLLoc: Added copying of output files from last location to files last.hdr, last.hyp, etc.

  2. NLLoc: Added new magnitude type MD_FMAG (duration magnitude) to control statement LOCMAG.

  3. NLLoc: Added SIMULPS format for phase pick files.

  4. NLLoc: Added N Calif Seismic Netowrk (NCSN)format.

  5. NLLoc: Added grid memory management; NLLoc program keeps and re-uses travel-time grids in memory while there is space.

  6. NLLoc: Added Oct-tree importance sampling search method.

  7. NLLoc: Added copying of last event location files to last.hyp and last.hdr.

  8. Grid2GMT: Added plotting of mechanisms and residuals.

  9. NLLoc: Added new STAT_GEOG line to Hypocenter-Phase file output.

  10. Generic control statement MAPLINE: Added support for GMT grd file plotting in Grid2GMT.

  11. Generic: Added new, optional control statement MAPTRANS: Specifies geographic transformation for plotting in Grid2GMT.

  12. Generic: Added new, optional control statement MAPGRID: Specifies grid region for plotting in Grid2GMT.


  1. NLLoc: Added new station parameter sta_corr_fd_fmag (duration magnitude station correction) to control statement LOCCMP.

  2. Seismicity Viewer: Updated version, runs as stand-alone and applet.

  3. NonLinLoc: Binary executable files provided for Linux, no longer for Solaris.

  4. NLLoc: Added max difference of S-P to Hypocenter-Phase file VpVs line output.

  5. NLLoc: Added quick fix for HYPO71 phase data Y2K problem: if year < 20, year = year + 100.

  6. NLLoc: Added quick fix for HYPO71 phase data Y2K problem: if year < 20, year = year + 100.

Bug Fixes:

  1. NLLoc: Fixed bug: hypo-inverse format: W long and S lat were not correctly written to summary file.

  2. NLLoc: Fixed bug: Events with maximum-likelihood hypocenters on y-max boundary of location search grid were not identified as being on the grid boundary, and conseuquently were not "rejected".

  3. NLLoc: Fixed bug in HuttonBoore mag calculation: epicentral and not hypocentral distance was used for r in K(r-100) term; changed to hypocentral distance.

01 Sep 2000

New Release v2.10

NonLinLoc software v2.10 released (Updated release of the NonLinLoc sofware and documentation.)

Bug Fixes:

  1. Grid2GMT: Fixed bug that map files were not closed when multiple events were processed.

  2. NLLoc: Fixed bug that not all phases were written to hypo-inverse format output file. (Note: Still not all phases are written to HYPO71/HYPOELLIPSE format.)

17 Feb 2000

New Version v2.00

NonLinLoc software v2.00 released (New version of the NonLinLoc sofware and documentation. Significant changes are indicated in the documentation by (ver 2.0))

New Features:

  1. NLLoc: Control statement LOCMETH: Added minNumberSphases, minimum number of S phases that must be accepted before event will be located (Important: You must add a minNumberSphases value to the LOCMETH statement in any existing NLLoc control files to update them for NLLoc v2.0)

  2. NLLoc: Added new control statement LOCEXCLUDE to explicitly exclude selected station/phase observations from being used for location

  3. NLLoc: output Hypocenter-Phase file: Added Vp/Vs estimation (in VPVSRATIO line) following methodology of Lahr (1989)

  4. Grid2GMT: Added optional override of default GMT-cpt colors. If a GMT-cpt file named Grid2GMT.cpt is present in the directory in which the GMT script is run, it will be used for the plot and scalebar contours levels and colors for all plot types that use contouring.

  5. Grid2GMT: Added optional additional GMT script to be run for each view type. If a GMT script file named Grid2GMT.?.gmt, where ? = H, X, Y or V is present in the directory in which the main GMT script is run, it will be run for the corresponding view (H, X, Y or V)after all standard GMT script is run for that view.

  6. Time2EQ: Added new control statement EQVPVS to specify constant Vp/Vs ratio to allow use of P phase travel-time grids to calculate S phase travel times.


  1. Grid2GMT: Added support for oblique vertical cross sections in V mode and for specification of cross section end points in latitude and logitude (new VL mode).

  2. Time2EQ: Control statement EQSTA: Added NONE error type

Bug Fixes:

  1. NLLoc: Residual calculation in Hypocenter-Phase file: Fixed MAJOR BUG in calculating phase residuals for some travel-time file types if Vp/Vs ratio was used (residual written to output did not correspond to maximum likelihood location)

  2. NLLoc: Phase observation time in Hypocenter-Phase file: Fixed MAJOR BUG that observed times were written to output with delays subtracted for phases with LOCDELAY corrrections

  3. NLLoc: Control statement LOCPHASEID: Fixed bug in identifying "S" phases to use Vp/Vs (S phases not identical to "S" were ignored, regardless of LOCPHASEID settings)

  4. NLLoc: Fixed bug that not all observation file types had phases checked for valid P or S phase code before accepting observation for location

  5. Vel2Grid: Control statement POLYGON2: Fixed bug that velocity gradients in POLYGON2 were reversed (psotive gradients were interpreted as decreasing downwards)

  6. Grid2GMT: Fixed bug that grid files were not closed when multiple events were processed.

07 Jul 1999

New Release v1.40

NonLinLoc software v1.40 released (Updated release of the NonLinLoc sofware and documentation.)


  1. Grid2Time: Substitution of more recent version of the eikonal finite-difference code Time_3d.c (7 May 1993) for previous version Time_3d_fs.c (2 January 1992). The newer code seems to run faster and be more robust than the previous while producing identical results.

  2. Grid2GMT: Added parameters and commands in output GMT script for optional plotting in Lat/Long coordinates of unrotated, horizontal only views.

25 Jun 1999

New Release v1.30

NonLinLoc software v1.30 released (Updated release of the NonLinLoc sofware and documentation.)


  1. Generic control statement TRANS: Implemented rotAngle in LAMBERT transformation.

08 Apr 1999

New Release v1.21

NonLinLoc software v1.21 released (Fourth "Beta" release of the NonLinLoc sofware and updated documentation.)


  1. NLLoc: LOCMETH Added parameter to limit maximum number of 3D travel time grids read into memory for Metropolis-Gibbs search. This helps to avoid time consuming memory swapping.

10 Mar 1999

New Release v1.2

NonLinLoc software v1.2 released (Third "Beta" release of the NonLinLoc sofware and updated documentation.)

New Features:

  1. NLLoc: LOCMETH Added option for constant Vp/Vs ratio to allow use of P phase travel-time grids to calculate S phase travel times.


  1. Generic control statement CONTROL: Added random number seed.

Bug Fixes:

  1. NLLoc: Fixed bug that automatic x grid positioning could not be switched off (see Control statement LOCGRID).

25 Jan 1999

New Release v1.1

NonLinLoc software v1.1 released (Second "Beta" release of the NonLinLoc sofware and updated documentation.)

New Features:

  1. NLLoc: Control statement LOCPHSTAT: Added RMS_Max, NRdgs_Min and Gap_Max cutoffs for selection of residuals to be used in calculation of average residuals.

  2. Grid2Time: Control statement GTSRCE: Added LATLONDS (degrees + minutes + decimal seconds latitude/longitude) format for source location.

  3. Time2EQ: Added control statement EQMECH to allow specification of a double couple or explosion mechanism for synthetic first motion calculation.

  4. Time2EQ: Added control statement EQSRCE to allow specification of multiple sources.

  5. Time2EQ: Control statement EQSTA: Added FIX option to allow a fixed noise or static shift to travel time.

  6. Time2EQ: Control statement EQSTA: Added parameters errorReportType and errorReport to specify how phase error is written to phase file.

  7. Time2EQ: Added control statement EQMODE to select calculation of times from single source to multiple stations or from multiple sources to single station.

  8. Time2EQ: Added control statement EQQUAL2ERR to allow mapping of errorReport to HYPO71 format quality levels.

  9. LocSum: Added additional command arguments Len3Max, ProbMin, RMSMax, NRdgsMin and GapMax to filter events that are summed.


  1. Generic control statement TRANS: Implemented rotAngle in SIMPLE transformation.

  2. NLLoc: Grid-Search and Control statement LOCGRID: Automatic grid shifting added to attempt to get nested grids inside original grid.

  3. NLLoc: Metropolis-Gibbs search: Initial walk location now set under the station with earliest arrival time. Algorithm for automatic setting of initial step size changed.

  4. NLLoc: Metropolis-Gibbs search: Walk algorithm modified to handle the case that new walk locations are rejected for a large number of consequetive tries. This case may indicate that the search has found a deep, narrow minima in misfit.

  5. Grid2GMT: 2D error ellipses replaced by projections of 3D confidence ellipsoid.

Bug Fixes:

  1. Generic control statement INCLUDE: Implemented for programs Vel2Grid, Grid2Time, Time2EQ and NLLoc.

20 Jan 1999


NLLoc: Magnitude Calculation Method not extensively tested

The magnitude calculation option in NLLoc, control statement
LOCMAG, has not yet been extensively tested.

20 Jan 1999

Known Bug

Grid registration not specified

NonLinLoc software 3D Grid File format does not distinquish between Grid line registration (used for travel times, angles, etc) and Pixel registration (required for velocity models input to Grid2Time/Podvin-Lecomte) as defined by the GMT plotting package.

11 Aug 1998

New Release v1.0

NonLinLoc software v1.0 released (Initial "Beta" version of the NonLinLoc sofware and documentation.)


Back to the NonLinLoc site Home page.


Anthony Lomax