MLOC Directory Structure

MLOC Directory Structure

This section describes the arrangement of directories and files for use with the multiple event relocation program mloc. The following schematic shows the main directory structure as it is configured in the distribution package:

The location of the top-level directory /mloc_distribution/ shown above is arbitrary, but it is highly recommended to keep the names of the directory structure as they are, at least until you are experienced with how things work. Updates to the mloc ecosystem will be distributed in new distribution packages, almost certainly with the above directory structure.

The following relative pathnames are hard-wired in the main program (mloc.f90):

  • taup_path = 'tables/tau-p'
  • ellip_path = 'tables/ellipticity'
  • station_path = 'tables/stn'
  • cpt_path = 'tables/gmt/cpt'
  • dem_path = 'tables/gmt/dem'
  • psdre_path = 'tables/spread'

If you insist on departing from the scheme shown above for these pathnames, you will need to edit mloc.f90 and recompile.

/clusters Directory

The directories for individual earthquake clusters that will be analyzed using mloc are stored here. A cluster directory can have a rather descriptive name, e.g. “Qeshm Island” or “Jordan and Sverdrup Region A”. The cluster directories (i.e., different clusters) may be further grouped if desired, for example by the name of the country where they occur. The subdirectories of a cluster directory hold series of closely-related runs (see below). The series subdirectories will be moved back and forth between here and the mloc_working directory. Here is an example:

   Qeshm Island

Naming Clusters, Series and Runs

An individual run of mloc is distinguished by a basename (the first interactive input to mloc) composed of a cluster name, series number and run number, e.g. “jsa5.1” where “jsa” is the cluster name, “5” is the series number and “1” is the run number. The basename is used in the names of all output files (e.g., “jsa5.1.summary”).

Cluster names are normally taken from a geographic feature that exists within the boundaries of the cluster, preferably near the center (hypocentroid). Google Earth is a good tool for exploring possible names. Avoid using names that apply to a region larger than the cluster, (e.g., “zagros”), and choose a name that is fairly easy to type; you will be typing it frequently! Cluster names are often simplified versions of cluster directory names (e.g., “qeshm” vs. “Qeshm Island”). The cluster name cannot contain blanks.

In practice, a relocation analysis with mloc will require a number of runs, and often, several series of runs. Different series may be distinguished by significantly changed data sets (e.g., more or fewer events, new readings for some events) or application of a different relocation strategy.

Example Clusters

The mloc distribution package includes several example clusters with event data files, command files and output files to illustrate various aspects of the usage of mloc.

/documents Directory

This directory may contain a variety of documentation about mloc and its use.

/mloc_gfortran Directory

This directory is used by the makefile that controls compilation and building of the mloc executable with the gfortran compiler. Initially only the makefile is stored here, but when the executable is built the object files for individual program units will be stored here also. The source code units to which the makefile refers are stored in the parallel directory mloc_src/. The executable file (named “mloc_g”) will be created in the mloc_gfortran/ directory and then must be moved to the mloc_working/ directory for use.

If you have more than one compiler that you wish to use, you can create several of these build directories and name the directory after the compiler, e.g., mloc_distribution/mloc_absoft or mloc_distribution/mloc_intel rather than mloc_distribution/mloc_gfortran. In that case you can set up the makefile of the compiler to name the executable accordingly, “mloc_a”, “mloc_i”, etc. It can be useful to keep track of version numbers as well, with mloc_a1050 referring to the executable of version 10.5.0 that was compiled with the Absoft compiler.

/mloc_src Directory

Source code files are stored here. The makefile in mloc_gfortran/ must have the correct pathnames to the source codes. Having only the source code files in this directory makes editing easier, and it is essential if more than one compiler is to be used. This directory also contains the Version History (“version_history.txt”). It is highly recommended to review the recent changes when you obtain a new version of mloc.

/mloc_utilities Directory

Utility programs related to editing event data files during a relocation analysis are discussed here.

/mloc_working Directory

This is where most of the relocation analysis takes place. The executable mloc is stored here. The absolute pathname of this directory must be supplied to mloc by the configuration file (mloc.conf), which must exist in this directory. While it is being worked on, the cluster directory (e.g., jsa5) must be moved to this directory from its permanent home in the clusters/ directory.


The other essential subdirectory to mloc_working/ that must be present is the tables/ directory and its subdirectories. It contains a variety of data files used by mloc, organized in a number of subdirectories, as shown in the schematic above. The contents of these directories are described elsewhere.


The subdirectory mloc_working/utilities/ is used to store the executables of the utility programs whose source codes are stored in the directory mloc_utilities/. In use, the executables are copied into the appropriate cluster-series directory, run there from the terminal, and then deleted when done, so it’s convenient to have them close at hand.

/mnf_utilities Directory

Utility programs related to creating MNF-formatted event data files for mloc are discussed here.