54 dist_sour_ne,nl_expl,&
55 max_num_ne, loc_n_num, nn_loc)
60 integer*4 :: nnod,node_expl,num_ne,nl_expl,max_num_ne, nn_loc
63 integer*4,
dimension(nn_loc) :: loc_n_num(nn_loc)
65 integer*4,
dimension(max_num_ne,nl_expl) :: sour_ne
67 real*8 :: xipo,yipo,zipo,x1,y1,z1,x2,y2,z2,x3,y3,z3,ux,uy,uz,vx,vy
68 real*8 :: xmax,xmin,ymax,ymin,zmax,zmin,a,b,c
71 real*8,
dimension(nn_loc) :: xs,ys,zs
73 real*8,
dimension(max_num_ne,nl_expl) :: dist_sour_ne
78 ux=(x1-x2)/sqrt((x1-x2)**2+(y1-y2)**2+(z1-z2)**2)
79 uy=(y1-y2)/sqrt((x1-x2)**2+(y1-y2)**2+(z1-z2)**2)
80 uz=(z1-z2)/sqrt((x1-x2)**2+(y1-y2)**2+(z1-z2)**2)
81 vx=(x3-x2)/sqrt((x3-x2)**2+(y3-y2)**2+(z3-z2)**2)
82 vy=(y3-y2)/sqrt((x3-x2)**2+(y3-y2)**2+(z3-z2)**2)
83 vz=(z3-z2)/sqrt((x3-x2)**2+(y3-y2)**2+(z3-z2)**2)
88 den = sqrt(a**2 + b**2 + c**2)
95 xmax=max(x1,x2,x3)+tol
96 xmin=min(x1,x2,x3)-tol
97 ymax=max(y1,y2,y3)+tol
98 ymin=min(y1,y2,y3)-tol
99 zmax=max(z1,z2,z3)+tol
100 zmin=min(z1,z2,z3)-tol
105 if ( dabs( a*(xs(isn)-x1) + b*(ys(isn)-y1) + c*(zs(isn)-z1)/den
then
106 if ((xs(isn).ge.xmin).and.(xs(isn).le.xmax))
then
107 if ((ys(isn).ge.ymin).and.(ys(isn).le.ymax))
then
108 if ((zs(isn).ge.zmin).and.(zs(isn).le.zmax))
then
110 node_expl = node_expl + 1
111 sour_ne(node_expl,i) = loc_n_num(isn)
112 dist_sour_ne(node_expl,i) = sqrt((xipo - xs(isn
subroutine read_expl(xipo, yipo, zipo, x1, y1, z1, x2, y2, z2, x3, y3, z3, nnod, xs, ys, zs, num_ne, sour_ne, i, dist_sour_ne, nl_expl, max_num_ne, loc_n_num, nn_loc)
Generates explosive triangular faults.