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.

Second-Level Directories


The directories for individual earthquake clusters that will be analyzed using mloc are stored here. The directories that hold individual series of runs (see below) will be moved back and forth between here and the mloc_working directory. Clusters are normally named after a geographic feature that exists within the cluster. 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! In my own directory cluster directories are further divided by country, with a few broader categories such as “Oceanic”.

In practice, it is very common to have to make several (or many) series of runs on a cluster. The top directory for a set of such series can have a more descriptive name. Different series can 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. Each series would have its own directory under the main directory for the cluster, e.g.:

   Qeshm Island

A specific run (relocation inversion) within a series has its own index, e.g., “qeshm23.1”, which is used in the names of all output files (e.g., “qeshm23.1.summary”).


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


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.


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.


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


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-series directory (e.g., qeshm23/) of the cluster to be relocated 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.


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

Last Updated on