Example 1

This example shows use of makemodel to produce a dislocation model of a normal fault, followed by use of elfpoint to sample displacement values at an observation point, and elfgrid to sample values on a horizontal and a vertical plane. Line files are prepared using modellines and displines for plotting using gclrx.

Note that answers given in [square braces] are defaults which will be used if no answer is supplied (just hit the carriage return).

$  makemodel
 Program MAKBODEL outputs two files defining a dislocation model.
 Name for .PAR parameter file:  [?.par]  test1.par
 Name for .DLC dislocation file:  [test1.dlc]  
 Give DLC format: 
   1 = Dunbar (type 1) dislocation format (obsolete)
   2 = Normal (type 2) dislocation format
   3 = Ends   (type 3) dislocation format
   4 = Triangle (type 4) dislocation format
   e = Earthquake input (to type 2 format)
 Format (1/2/3/4/e):  [2]  
 Poisson's ratio:  [0.25]  
 Shear Modulus (bars):  [300000.]  
 Projection number (99 for help):  [0]  
 New azimuth of North-direction:  [0.]  
 Coordinates in degrees or km? (d/k):  [k]  
 
 Label (78 chars):  [Disloc 1]  Sample Fault #1
 
 X coord of center of dislocation (km):  [0.]  
 Y coord of center of dislocation (km):  [0.]  
 Depth to center of dislocation (km):  [0.]  7
 
 Strike, Dip of dislocation (eg. N60W,34SE or 300,34SE):  [0.0, 90.0]  180,60W
 
 Horizontal length of rectangle (km):  [1.]  15
 Down-dip   length of rectangle (km):  [1.]  10
 
 Strike-slip (-is RL) displacement (m):  [0.]  
 Dip-slip  (-is Rev.) displacement (m):  [0.]  5  
 Opening (-is Shrink) displacement (m):  [0.]  
 
 Inferred rake angle =    -90.0
 
 Another dislocation? (y/n):  [y]  n
STOP:  

The output from makemodel consists of two files. A parameter (.par) file contains the elastic parameters and map projection information. (No projection information is used in this example -- all locations are given in kilometers.) A dislocation (.dlc) file contains the geometry information for the rectangular or triangular dislocation surface(s). (Note that triangles are not yet fully inplemented.)

File test1.par looks like this:


*ELASTIC
!  pr   shear-modulus
  0.25    3.00E+05
*PROJECTION
!      iprj    cm          bl          rot         xcen        ycen
         0      0.0000      0.0000      0.0000      0.0000      0.0000
*END


File test1.dlc looks like this:


#TYP LONCEN  LATCEN     DCEN     STR     DIP     HORLEN  DIPLEN SS(m) DS(m) OP(m) RAKE
! Sample Fault #1
2    0.0000   0.0000    7.0000 180.0000  60.000 15.0000 10.0000   0.   5.   0. -90.


Running program elfpoint allows one to sample various elastic field quantities at points or lists of points. This is helpful if one needs actual values at some spot like an instrument site.

$ elfpoint 
 Parameter file:  [test1.par]  
 Dislocation file:  [test1.dlc]  
      Number of dislocations read =     1
 
 Input options for observation points:
    p = individual points
    t = traverse of points specified by end points
    f = list of points given in a file
    d = list of planes given in a dlc-file
    e = list of planes: x,y,z,strike,dip
 Point, traverse, file, dlc-file, or plane-file? (p/t/f/d/e):  [p]  
 
 Output to file? (y/n):  [n]  
 
 Field to calculate: 
    s = stress tensor
    c = stress components on a plane
    u = displacements
    e = strain tensor
    d = dilatation
    r = rotations
    t = tilts
    w = strain energy
    a = all of above
 Give field type (s/c/u/e/d/r/t/w/a/q):  [a]  s
 
 Rotate elastic fields to Observation Plane? (y/n):  [n]  
 
 Give observation point (1,2,3=n,e,d) (S=stop; C=change field type):  0 -10 5
                  11       22       33       12       13       23
    stress=   -1.9914 -18.0010  -6.1706   0.0000   0.0000  -5.9727
 
 Give observation point (1,2,3=n,e,d) (S=stop; C=change field type):  c
 Give field type (s/c/u/e/d/r/t/w/a/q):  [a]  u
 
 Rotate elastic fields to Observation Plane? (y/n):  [n]  
 
 Give observation point (1,2,3=n,e,d) (S=stop; C=change field type):  0 -10 5
                  1        2        3
    disp=      0.0000  -0.2779   0.1950
 
 Give observation point (1,2,3=n,e,d) (S=stop; C=change field type):  s
STOP:  

To examine the displacements on a horizontal plane at 7km depth, we run elfgrid:

>  elfgrid
 Elfgrid calculates elastic fields at a grid of points.
 Parameter file:  [test1.par]
 Dislocation file:  [test1.dlc]
      Number of dislocations read =     1
 
 Field to calculate:
    s = stress tensor
    u = displacements
    e = strain tensor
    d = dilatation
    r = rotation
    t = tilts
    w = strain energy
 Give field type (s/u/e/d/r/t/w/a/q):  [s]  u
 
 Is grid of observation points horizontal or dipping? (h/d):  [h]
     Left   (west)  bound (km):  -10
     Right  (east)  bound (km):  10
     Bottom (south) bound (km):  -10
     Top    (north) bound (km):  10
     Grid interval (km):  .5
     ncol, nrow =        41        41
 Depth for horizontal grid (km):  [0.]  7
 
 Starting Disp grid(s)...
 ** Done:     5%  10% 
** Singular point encountered:     7.50000    1.09278E-07   -7.00000
  20%  32%  41%  51%  61%  71%  80% 
** Singular point encountered:    -7.50000    7.64949E-07   -7.00000
  90% 100%
STOP

The singular points are encountered because the observation plane passes through the center of the dislocation plane. The output is 3 displacement grids (.u1, .u2, .u3) in binary Standard Grid format.

Next, to prepare for plotting we run modellines to make an outline of the dislocation projected onto our horizontal observation plane.

>  modellines
 Parameter file:  [test1.par]
 Dislocation file:  [test1.dlc]
      Number of dislocations =     1
 File for model lines:  [test1.lin]  .hor_lin
 File for model lines:  [test1.hor_lin]
 Give line type (.OLN/.BOLN/.BLN/.LIN/.GEN/.OPP/.PF/.XYZ/.BLXYZ/QUIT):  [.LIN]
 Grid to project lines onto (n if horizontal):  [test1.s12]  n
 Show Burger's vectors? (y/n):  [n]
STOP:

We are going to plot the vertical (.u3) component of deformation, so in order to see the horizontal deformation on the same plot, we use displines to generate a line file showing a distorted mesh:

>  displines
 Arrows, horiz lines, vert lines, or mesh? (a/h/v/m):  [m]
 U1 grid:  [test1.u1]
 U2 grid:  [test1.u2]
 File for disp lines:  [test1.lin]  .mesh_lin
 File for disp lines:  [test1.mesh_lin]
 Give line type (.OLN/.BOLN/.BLN/.LIN/.GEN/.OPP/.PF/.XYZ/.BLXYZ/QUIT):  [.LIN]
 Skip grid points:  [3]
 Scale factor: one meter equals how many map_km?:  [1.]
STOP:

We are now ready to plot using gclrx:

> gclrx
p          ==  >Plot-only, Plot-and-Save, or Save-only? (P/p/Ps/ps/s)
c          ==  Give task (c/q/gs/cs/m/x/sr/cr/df/w)
test1.u3   ==  Grid (n for none)
w          ==  Background white or black? (w/b)
h          ==  Show colorscale (h=horiz, v=vert, n=none)? (h/v/n)
0.75  0.75  1.20  0.50 ==  Minimum margins around data window in inches (l,r,b,t)
-1.        ==  Give map scale
12.ymc     ==  Color file (h for help)
11         ==  Give number of contours (0 for file)
-1         ==  Give MIN level
.2         ==  Give INTerval
Meters     ==    Colorbar units label (or n for none)
0.1        ==    Ht of labels on colorbar
lw         == ?Option (h or he = help)
4          ==    Line width factor (Units of 0.005in)
li         == ?Option (h or he = help)
test1.hor_lin ==    Line file (h for help with abbrevs)
.LIN       ==  Give line type (.OLN/.BOLN/.BLN/.LIN/.GEN/.QP/.OPP/.AXYZ/.XYZ/.BLXYZ/QUIT)
n          ==    Project lines? (y/n)
lw         == ?Option (h or he = help)
1          ==    Line width factor (Units of 0.005in)
li         == ?Option (h or he = help)
test1.mesh_lin ==    Line file (h for help with abbrevs)
.LIN       ==  Give line type (.OLN/.BOLN/.BLN/.LIN/.GEN/.QP/.OPP/.AXYZ/.XYZ/.BLXYZ/QUIT)
n          ==    Project lines? (y/n)
km         == ?Option (h or he = help)
1          ==    x-spacing between edge-tics in km
1          ==    y-spacing between edge-tics in km
0.05       ==    Height for tics in inches
o          ==    Plot tics inside or outside box? (i/o)
y          ==    Label tics? (y/n)
5          ==    Number to skip
0.09       ==    Label height
id         == ?Option (h or he = help)
t          ==    Title at bottom or top? (b/t/bp/tp)
.15        ==    Title height
Vertical Displacement (Red=down) at 7km Depth ==    Title
q          == ?Option (h or he = help)
0          ==  Hold plot on screen (seconds) or go back to options (-1)

The plot looks like this:


Here is a run that plots the displacement results on a vertical E-W plane passing through the center of the fault. The plot results are saved in a binary_plot_instruction (.bpi) metafile and converted to postscript using program pi2ps.

>  elfgrid
 Elfgrid calculates elastic fields at a grid of points.
 Parameter file:  [test1.par]
 Dislocation file:  [test1.dlc]
      Number of dislocations read =     1
 
 Field to calculate:
    s = stress tensor
    u = displacements
    e = strain tensor
    d = dilatation
    r = rotation
    t = tilts
    w = strain energy
 Give field type (s/u/e/d/r/t/w/a/q):  [s]  u
 
 Is grid of observation points horizontal or dipping? (h/d):  [h]  d
 Specify grid location by center or LL corner? (c/l):  [c]
 Grid may be off-center if del is coarse.
 Dip of grid (1 to 90):  [90.]
 Strike from LL to LR corners (0 to 360):  [0.]  90
 North coord of center of grid:  [0.]
 East  coord of center of grid:  [0.]
 Depth       of center of grid:  [0.]  7
 Down-dip height of grid (km):  [0.]  14
 Horizontal length of grid (km):  [0.]  20
 Grid interval:  [1.]  .5
    dmax,dmin =   13.7500    0.2500
    ncol, nrow =        40        28
 O.K.? (y/n):  [y]
 
 Starting Disp grid(s)...
 *** ERROR opening grid test1.u1
 Try new root (old one may be in use already?):  [test1]  test1_vertical
 ** Done:     7%  11%  21%  32%  43%  50%  61%  71%  82%  93% 100%
STOP


>  modellines
 Makes a line file containing the outline of the model.
 Parameter file:  [test1_vertical.par]  test1.par
 Dislocation file:  [test1.dlc]
      Number of dislocations =     1
 File for model lines:  [test1.lin]  test1.ver_lin
 Give line type (.OLN/.BOLN/.BLN/.LIN/.GEN/.OPP/.PF/.AXYZ/.XYZ/.BLXYZ/QUIT):  [.LIN]
 Grid to project lines onto (n if horizontal):  [test1.s12]  test1_vertical.u1
   ------------------------------------------------------------------------------
    ID  = Disp1   n,e,st,dp=  0.0, -9.8, 90.0, 90.0,  yr=    0.0    PGM=d3dgrid
    ntot=   1120       nz=  1
    ncol=     40       xo= -9.7500000     dx= 0.50000000     xmax=  9.7500000
    nrow=     28       yo= -13.750000     dy= 0.50000000     ymax= -.25000000
        projection= 0       cm=       0.0000     bl=       0.0000
        extra proj specs =       0.00      0.00      0.00      0.00
   ------------------------------------------------------------------------------
        vll1 =      0.00     vll2 =     -9.75     vll3 =     13.75
        str  =     90.00     dip  =     90.00
   ------------------------------------------------------------------------------
 Show Burger's vectors? (y/n):  [n]
STOP:


>  displines
 Makes line file of arrows or mesh to visualize displacement.
 Arrows, horiz lines, vert lines, or mesh? (a/h/v/m):  [m]  a
 U1 grid:  [test1.u1]  test1_vertical
 U1 grid:  [test1_vertical.u1]
 U2 grid:  [test1_vertical.u2]
 U3 grid:  [test1_vertical.u3]
 File for disp lines:  [test1_vertical.lin]  .arr_lin
 File for disp lines:  [test1_vertical.arr_lin]
 Give line type (.OLN/.BOLN/.BLN/.LIN/.GEN/.OPP/.PF/.AXYZ/.XYZ/.BLXYZ/QUIT):  [.LIN]
 Skip grid points:  [3]
 Scale factor: one meter equals how many map_km?:  [1.]
 Skip plotting arrows less than tol (m):  [0.05]  0
STOP:


> gclrx
ps         ==  >Plot-only, Plot-and-Save, or Save-only? (P/p/Ps/ps/s)
b          ==  >Ascii or Binary save file? (a/b)
junk1.bpi  ==  >Save file
c          ==  Give task (c/q/gs/cs/m/x/sr/cr/df/w)
test1_vertical.u3 ==  Grid (n for none)
w          ==  Background white or black? (w/b)
h          ==  Show colorscale (h=horiz, v=vert, n=none)? (h/v/n)
0.75  0.75  1.20  0.50 ==  Minimum margins around data window in inches (l,r,b,t)
-1.        ==  Give map scale
12.ymc     ==  Color file (h for help)
11         ==  Give number of contours (0 for file)
-1         ==  Give MIN level
.2         ==  Give INTerval
Meters     ==    Colorbar units label (or n for none)
0.1        ==    Ht of labels on colorbar
lw         == ?Option (h or he = help)
4          ==    Line width factor (Units of 0.005in)
li         == ?Option (h or he = help)
test1.ver_lin ==    Line file (h for help with abbrevs)
.LIN       ==  Give line type (.OLN/.BOLN/.BLN/.LIN/.GEN/.QP/.OPP/.AXYZ/.XYZ/.BLXYZ/QUIT)
n          ==    Project lines? (y/n)
lw         == ?Option (h or he = help)
1          ==    Line width factor (Units of 0.005in)
li         == ?Option (h or he = help)
test1_vertical.arr_lin ==    Line file (h for help with abbrevs)
.LIN       ==  Give line type (.OLN/.BOLN/.BLN/.LIN/.GEN/.QP/.OPP/.AXYZ/.XYZ/.BLXYZ/QUIT)
n          ==    Project lines? (y/n)
km         == ?Option (h or he = help)
1          ==    x-spacing between edge-tics in km
1          ==    y-spacing between edge-tics in km
0.05       ==    Height for tics in inches
o          ==    Plot tics inside or outside box? (i/o)
y          ==    Label tics? (y/n)
5          ==    Number to skip
0.09       ==    Label height
id         == ?Option (h or he = help)
t          ==    Title at bottom or top? (b/t/bp/tp)
.15        ==    Title height
Vertical Displacement (Red=down) in X-Section ==    Title
q          == ?Option (h or he = help)
0          ==  Hold plot on screen (seconds) or go back to options (-1)


>  pi2ps
 pi2ps - Version 3.6
 Ascii or Binary save file? (a/b):  [b]
 Binary plot instruction file:  [junk1.bpi]
 Give output type:
      p = normal PostScript (.ps)
      e = encapsulated PS (.eps)
      i = image only to encapsulated PS file (.epsf)
           (for Adobe-Illustrator background.)
 Outmode (p/e/i):  [p]
 Gray or Color plotter (g/c):  [g]  c
   Tweak colors for some device to get approximate PIC's? (no/tek):  [no]
 Postscript output file:  [junk1.ps]
 Fonts:
   1. Courier (fixedwidth)
   2. Courier-Bold (fixedwidth)
   3. Helvetica
   4. Helvetica-Bold
   5. Times-Roman
 Give font:  [4]
 Give plot size...
   xmin:  [0.]
   xmax:  [10.01389]
   ymin:  [1.16667]
   ymax:  [8.83333]
 Unrotated plotter-paper sizes (horiz x vert):
    0) query for paper width and height
    1) wide x high =   8.5 x 11.0 inches
    2) wide x high =  11.0 x 17.0 inches
    3) wide x high =  46.0 x 34.0 inches
    4) wide x high =  36.0 x 108.0 inches (HP650)
 Give plotter-paper size (0/1/2/3/4):  [1]
 Second dimension of paper horizontal or vertical? (h/v/hbig):  [h]
 Magnification factor:  [0.97826]
 Center plot on one sheet of paper? (y/n/o):  [y]
   End of plotting.
    Dimensions read from input:
     xmin,xmax =   0.   10.01389
     ymin,ymax =     1.16667    8.83333
   Biggest possible image with paper horizontal,
     and magnification factor =    0.978261
 Try again? (y/n/p):  [n]
STOP:

This vertical section plot looks like: