%!PS-Adobe-3.0 EPSF-3.0 % for the whole page use: boundingbox: 0 0 612 792 %%Creator: Geotouch(Jonathan Lees) %%Title: %%Creationdate: Mon Jul 22 11:48:40 EDT 1996 %%Pages: 1 %%DocumentFonts: (atend) %%EndComments % HEADER FILE FOR POSTSCRIPT CREATED BY J. M. Lees % Sun Jul 28 10:04:05 EDT 1996 % modified Fri Jan 21 14:55:51 EST 2000 % % the next 2 lines create a dictionary which needs to be % finished off with the end command before showpage % these are needed primarily for older, postscript I printers /jmldict 400 dict def jmldict begin /JML_END { end showpage } def /bsiz { 8 mul } def /bx { 4 mul } def /bz { 4 mul } def /qsiz { 2 } def /fsiz { pop 12 } def /mtsiz { 1 bsiz 2 div } def /tsiz { bsiz 4 div } def /inch { 72 mul } def /dash { [3] 0 setdash } def /undash { [] 0 setdash } def /cm { 28.35 mul } def /setcol1 { setrgbcolor } def % this is the darker color setting % to get black chnge this to %/setcol1 { pop pop pop 0 setgray } def /setcol2 { setrgbcolor } def /setcol_gray { setrgbcolor } def % this is the lighter color setting % to get white chnge this to %/setcol2 { pop pop pop 1 setgray } def /BW { /setcol1 { pop pop pop 0 setgray } def /setcol2 { pop pop pop 1 setgray } def } def % for Black and White figures uncomment the following line: %BW /TR12 { /Times-Roman findfont 12 scalefont setfont } def /TR10 { /Times-Roman findfont 10 scalefont setfont } def /HEL12 { /Helvetica findfont 12 scalefont setfont } def /HEL10 { /Helvetica findfont 10 scalefont setfont } def /HEL8 { /Helvetica findfont 8 scalefont setfont } def /TB12 { /Times-Bold findfont 12 scalefont setfont } def /TB10 { /Times-Bold findfont 10 scalefont setfont } def /HB12 { /Helvetica-Bold findfont 12 scalefont setfont } def /HB10 { /Helvetica-Bold findfont 10 scalefont setfont } def /HV { /sizefont exch def /Helvetica findfont sizefont scalefont setfont } def /TR { /sizefont exch def /Times-Roman findfont sizefont scalefont setfont } def /HB { /sizefont exch def /Helvetica-Bold findfont sizefont scalefont setfont } def /TB { /sizefont exch def /Times-Bold findfont sizefont scalefont setfont } def /landscape { 90 rotate 0 -8.5 inch translate } def /Times-Roman findfont 12 scalefont setfont 0 setgray % 4.375 inch 9.8125 inch moveto (xxx) show /xy 4 array def /bord {xy astore newpath 0 get dup xy 1 get moveto xy 3 get lineto xy 2 get dup xy 3 get lineto xy 1 get lineto closepath } def /b { bord fill } def /box { newpath moveto 1 bsiz 0 rlineto 0 1 bsiz rlineto -1 bsiz 0 rlineto closepath} def /xsiz { 1 mul } def /xplot { newpath bsiz exch bsiz exch moveto gsave -.5 xsiz -.5 xsiz rmoveto 1 xsiz 1 xsiz rlineto stroke grestore -.5 xsiz .5 xsiz rmoveto 1 xsiz -1 xsiz rlineto stroke } def %%%%%%%%%%% % SYMBOLS that all use the same format: x y size % xmark xsquare xtri xtriangle xrotsq xdiamond xcirc star5 star_of_david /xcirc { /xs exch def newpath xs .5 mul 0 360 arc stroke } def /xfillcirc { /xs exch def newpath xs .5 mul 0 360 arc fill } def /xmark { /xs exch def newpath moveto gsave -.5 xs mul -.5 xs mul rmoveto 1 xs mul 1 xs mul rlineto stroke grestore -.5 xs mul .5 xs mul rmoveto 1 xs mul -1 xs mul rlineto stroke } def /xsquare { /xs exch def newpath moveto -.5 xs mul -.5 xs mul rmoveto 1 xs mul 0 rlineto 0 1 xs mul rlineto -1 xs mul 0 rlineto closepath stroke } def /xtri { /xs exch def newpath moveto -0.866 xs mul -.5 xs mul rmoveto 1.732 xs mul 0 rlineto -0.866 xs mul 1.5 xs mul rlineto -0.866 xs mul -1.5 xs mul rlineto closepath stroke} def /xtriangle { /xs exch def newpath moveto -0.57735 xs mul -.3333 xs mul rmoveto 0.57735 xs mul 1 xs mul rlineto 0.57735 xs mul -1 xs mul rlineto closepath stroke} def /xtriangleU { /xs exch def newpath moveto -0.57735 xs mul .3333 xs mul rmoveto 0.57735 2 mul xs mul 0 rlineto -0.57735 xs mul -1 xs mul rlineto closepath stroke} def /star_of_david { /xs exch def /y exch def /x exch def % newpath x y moveto newpath x y moveto -0.5 xs mul -.288675 xs mul rmoveto 1 xs mul 0 xs mul rlineto -.5 xs mul 0.866025 xs mul rlineto closepath stroke newpath x y moveto -0.5 xs mul .288675 xs mul rmoveto 1 xs mul 0 xs mul rlineto -.5 xs mul -0.866025 xs mul rlineto closepath stroke } def /starside5 { -1 starsiz mul 18 sin mul 1 starsiz mul 72 sin mul lineto -1 starsiz mul 18 sin mul -1 starsiz mul 72 sin mul rlineto currentpoint translate 72 rotate } def /star5 { /starsiz exch .745 mul def gsave moveto 0.5 starsiz mul 36 sin mul .5 starsiz mul 54 sin mul rmoveto currentpoint translate 5{starside5} repeat closepath fill grestore } def /star4 { /starsiz exch .745 mul def gsave moveto 0.5 starsiz mul 36 sin mul .5 starsiz mul 54 sin mul rmoveto currentpoint translate 5{starside5} repeat closepath stroke grestore } def /xrotsq { /xs exch def newpath moveto gsave 45 rotate -.5 xs mul -.5 xs mul rmoveto 1 xs mul 0 rlineto 0 1 xs mul rlineto -1 xs mul 0 rlineto closepath stroke grestore } def /xdiamond { /xs exch def newpath moveto -.50 xs mul 0 rmoveto .50 xs mul -.75 xs mul rlineto .50 xs mul .75 xs mul rlineto -.50 xs mul .75 xs mul rlineto closepath stroke } def /xplus { /xs exch def newpath moveto gsave -.5 xs mul 0 rmoveto 1 xs mul 0 rlineto stroke grestore 0 -.5 xs mul rmoveto 0 1 xs mul rlineto stroke } def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /burst { /n exch def /s exch def /y exch def /x exch def /alpha { 360 n div } def /at { alpha 2 div sin s mul } def /bt { alpha 2 div cos s mul } def gsave x y translate newpath n { 0 bt at add at 2 sqrt mul -135 -45 arc alpha -1 mul rotate} repeat fill grestore } def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /asterix { /alpha exch def /siz exch def /y exch def /x exch def /fsiz { siz 0.7 mul } def gsave x y translate 0 alpha 361 { dup cos fsiz mul exch sin fsiz mul exch moveto 0 0 lineto stroke } for grestore } def /xasterix30 { 30 asterix } def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /xburst5 { 5 burst } def /xburst6 { 6 burst } def %%%%%%%%% ------------------ /sx { 7 inch mul } def /sy { 5 inch mul } def /arr3 3 array def /errorbar { arr3 astore newpath 0 get sx arr3 1 get sy xpoint arr3 0 get sx arr3 1 get arr3 2 get sub sy moveto arr3 0 get sx arr3 1 get arr3 2 get add sy lineto stroke arr3 0 get sx arr3 1 get arr3 2 get sub sy moveto -.05 inch 0 rmoveto .1 inch 0 rlineto stroke arr3 0 get sx arr3 1 get arr3 2 get add sy moveto -.05 inch 0 rmoveto .1 inch 0 rlineto stroke } def %%%%%%%%% -----These symbols rely on the bsize parameter /xpoint { newpath moveto gsave -.5 xsiz -.5 xsiz rmoveto 1 xsiz 1 xsiz rlineto stroke grestore -.5 xsiz .5 xsiz rmoveto 1 xsiz -1 xsiz rlineto stroke } def /xspot { newpath bsiz exch bsiz exch moveto gsave -.1 inch -.1 inch rmoveto 1 inch 1 inch rlineto stroke grestore -.5 inch .5 inch rmoveto 1 inch -1 inch rlineto stroke } def /colbox { setrgbcolor fill } def /red { 1 0 0 setrgbcolor } def /green { 0 1 0 setrgbcolor } def /blue { 0 0 1 setrgbcolor } def /black { 0 0 0 setrgbcolor } def /white { 1 1 1 setrgbcolor } def /yellow { 1 1 0 setrgbcolor } def /orange { 1 0.54902 0 setrgbcolor } def /cyan { 0 1 1 setrgbcolor } def /violet { 1 0 1 setrgbcolor } def /lightblue { 0.678431 0.847059 0.901961 setrgbcolor } def /purple { 0.576471 0.439216 0.858824 setrgbcolor } def /plum { 0.866667 0.627451 0.866667 setrgbcolor } def /skyblue { 0 0.74902 1 setrgbcolor } def /turq { 0 0.960784 1 setrgbcolor } def /pink { 1 0.0784314 0.576471 setrgbcolor } def /grey { .7 .7 .7 setrgbcolor } def /gray { .7 .7 .7 setrgbcolor } def /gray5 { .5 .5 .5 setrgbcolor } def /gray8 { .8 .8 .8 setrgbcolor } def /gray9 { .9 .9 .9 setrgbcolor } def /fillbox { setgray fill } def % /vpleq { newpath bx exch bz exch 1 0 360 arc stroke } def /pleq { newpath bsiz exch bsiz exch qsiz 0 360 arc stroke } def /pmt { newpath mtsiz 0 360 arc stroke } def /circ { 1 0 360 arc stroke } def /tri { newpath moveto -0.866 tsiz -.5 tsiz rlineto 1.732 tsiz 0 rlineto -0.866 tsiz 1.5 tsiz rlineto -0.866 tsiz -1.5 tsiz rlineto closepath} def /jugsta { newpath moveto -0.866 tsiz .5 tsiz rlineto 1.732 tsiz 0 rlineto -0.866 tsiz -1.5 tsiz rlineto -0.866 tsiz 1.5 tsiz rlineto closepath} def % /vane { newpath moveto 0 5 bsiz rlineto .5 bsiz -1 bsiz rlineto -.3 bsiz 0 rlineto 0 -4 bsiz rlineto closepath gsave 0 setgray fill grestore /Times-Roman findfont 1 bsiz scalefont setfont -.2 bsiz 5.3 bsiz rmoveto (N) show } def /prime12 { gsave /Symbol findfont 12 scalefont setfont (\242) show grestore } def /prime { gsave /Symbol findfont 1 bsiz scalefont setfont (\242) show grestore } def /lxy 5 array def /labline { lxy astore %put 5 argmnts char x1 y1 x2 y2 into array xy newpath 1 get lxy 2 get moveto lxy 0 get gsave lxy 4 get lxy 2 get sub lxy 3 get lxy 1 get sub atan rotate -1 bsiz -.5 bsiz rmoveto show grestore lxy 3 get lxy 4 get lineto lxy 0 get gsave lxy 4 get lxy 2 get sub lxy 3 get lxy 1 get sub atan rotate +1 bsiz -.5 bsiz rmoveto show prime grestore stroke } def /mt { bsiz exch bsiz exch moveto } def /lto { bsiz exch bsiz exch lineto } def /oshow { true charpath gsave 1 setgray fill grestore 0 setgray stroke } def /censhow { dup stringwidth -.5 mul exch -.5 mul exch rmoveto show } def /rightshow { dup stringwidth pop -1 mul 0 rmoveto show } def /cheight { gsave 0 0 moveto true charpath flattenpath pathbbox /sh exch def pop pop pop grestore sh } def /jshow { % plot a string adjusted and offset or rotated from a point % x y (data) rot cenx ceny off1 off2 jshow % ceny = Percent to shift up (0= regular show) % cenx = percent to shift in x dir (0=regular show) /off2 exch def /off1 exch def /ceny exch def /cenx exch def /rot exch def /lab exch def /y exch def /x exch def lab cheight /height exch def off1 0 ne off2 0 ne or { newpath x y moveto off1 off2 rlineto stroke } if newpath x y moveto off1 off2 rmoveto gsave rot rotate lab stringwidth /cy exch def cenx -1 mul mul height ceny -1 mul mul rmoveto lab show grestore } def /cen_labshow { % for plotting a string surrounded by white box % usage x y moveto [ r rotate] (char) cen_labshow % sh = string height sw = stringwidth(i) /temstr exch def (i) stringwidth pop /sw exch def temstr cheight /sh exch def temstr stringwidth -.5 mul exch -.5 mul exch rmoveto currentpoint 2 copy sw -1 mul sh .4 mul -1 mul rmoveto temstr stringwidth 2 copy pop sw 2 mul add 0 rlineto 0 sh sh .4 mul 2 mul add rlineto pop -1 mul sw 2 mul sub 0 rlineto closepath gsave 1 setgray fill grestore stroke moveto temstr show pop pop } def /labshow3 { % for plotting a string surrounded by white box % usage x y moveto [ r rotate] (char) labshow3 % sh = string height sw = stringwidth(i) /temstr exch def (i) stringwidth pop /sw exch def temstr cheight /sh exch def currentpoint 2 copy sw -1 mul sh .4 mul -1 mul rmoveto temstr stringwidth 2 copy pop sw 2 mul add 0 rlineto 0 sh sh .4 mul 2 mul add rlineto pop -1 mul sw 2 mul sub 0 rlineto closepath gsave 1 setgray fill grestore stroke moveto temstr show pop pop } def % left axis ticmark % tic format (string) size x y btic /ltic {xy astore newpath 2 get xy 3 get moveto -.06 inch 0 rlineto gsave stroke grestore xy 0 get stringwidth pop .025 inch add -1 mul xy 1 get 3 div -1 mul rmoveto xy 0 get show } def /rtic {xy astore newpath 2 get xy 3 get moveto .06 inch 0 rlineto gsave stroke grestore .025 inch xy 1 get 3 div -1 mul rmoveto xy 0 get show } def % left axis ticmark - degrees /lticdeg {xy astore newpath 2 get xy 3 get moveto -.06 inch 0 rlineto gsave stroke grestore xy 0 get stringwidth pop .025 inch add gsave /Symbol findfont xy 1 get scalefont setfont (\260) stringwidth pop add grestore -1 mul xy 1 get 3 div -1 mul rmoveto xy 0 get show gsave /Symbol findfont xy 1 get scalefont setfont (\260) show grestore } def % left axis ticmark - minutes /lticmin {xy astore newpath 2 get xy 3 get moveto -.06 inch 0 rlineto gsave stroke grestore xy 0 get stringwidth pop .025 inch add gsave /Symbol findfont xy 1 get scalefont setfont (\242) stringwidth pop add grestore -1 mul xy 1 get 3 div -1 mul rmoveto xy 0 get show gsave /Symbol findfont xy 1 get scalefont setfont (\242) show grestore } def /lticr {xy astore newpath 2 get xy 3 get moveto -.06 inch 0 rlineto gsave stroke grestore %xy 0 get stringwidth pop .025 inch add -1 mul %xy 1 get 3 div -1 mul rmoveto -.035 inch 0 rmoveto xy 0 get gsave 90 rotate censhow grestore } def /utic {xy astore newpath 2 get xy 3 get moveto .0 inch .06 inch rlineto gsave stroke grestore xy 0 get stringwidth pop -.5 mul 0 .025 inch add rmoveto xy 0 get show } def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % for non-overlapping tics in the x-direction % the ticmarks must be in incresing order from left to right /xpos_tic { -10000 } def /xpos_ticold { -10000 } def /lenx 0 def /btic_nolap {xy astore newpath 2 get xy 3 get moveto .0 inch -.09 inch rlineto gsave stroke grestore xy 0 get stringwidth pop dup /lenx exch def -.5 mul xy 1 get .048 inch add -1 mul rmoveto currentpoint pop /xpos_tic exch def xpos_ticold xpos_tic lt { xy 0 get show xpos_tic lenx add /xpos_ticold exch def } if } def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /btic {xy astore newpath 2 get xy 3 get moveto .0 inch -.06 inch rlineto gsave stroke grestore xy 0 get stringwidth pop -.5 mul xy 1 get .035 inch add -1 mul rmoveto xy 0 get show } def /bticdeg {xy astore newpath 2 get xy 3 get moveto .0 inch -.06 inch rlineto gsave stroke grestore xy 0 get stringwidth pop -.5 mul xy 1 get .025 inch add -1 mul rmoveto xy 0 get show gsave /Symbol findfont xy 1 get scalefont setfont (\260) show grestore } def /bticmin {xy astore newpath 2 get xy 3 get moveto .0 inch -.06 inch rlineto gsave stroke grestore xy 0 get stringwidth pop -.5 mul xy 1 get .025 inch add -1 mul rmoveto xy 0 get show gsave /Symbol findfont xy 1 get scalefont setfont (\242) show grestore } def /bticr {xy astore newpath 2 get xy 3 get moveto .0 inch -.06 inch rlineto gsave stroke grestore xy 1 get 3 div -1 mul -0.025 inch rmoveto xy 0 get gsave -90 rotate show grestore } def /uticr {xy astore newpath 2 get xy 3 get moveto .0 inch .06 inch rlineto gsave stroke grestore xy 1 get 3 div -1.5 mul xy 0 get stringwidth pop .06 inch add rmoveto xy 0 get gsave -90 rotate show grestore } def /starside3 { -1 xplo 18 sin mul 1 xplo 72 sin mul lineto -1 xplo 18 sin mul -1 xplo 72 sin mul rlineto currentpoint translate 72 rotate } def /star { gsave sy exch sx exch moveto % rotate 0.5 xplo 36 sin mul .5 xplo 54 sin mul rmoveto currentpoint translate 5{starside3} repeat closepath fill grestore } def /xplo { 2 mul } def /explod { % plots a label with a line pointing to the location % used for plotting exploding labels % x y distance angle (name) explat /nam exch def /ang exch def /dis exch def /y exch def /x exch def gsave x bx y bz moveto ang rotate dis 3 mul bx 0 rlineto currentpoint /ny exch def /nx exch def stroke nx ny moveto ang -1 mul rotate nam censhow grestore } def /ellipsedict 7 dict def ellipsedict /mtrx matrix put /lip { ellipsedict begin /rot exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y translate rot rotate xrad yrad scale 0 0 1 0 360 arc savematrix setmatrix end stroke } def /arrowdict 13 dict def % Local storage for the procedure % ``arrow.'' /arrow % The procedure ``arrow'' adds an { arrowdict begin % arrow shape to the current path. /headlength exch def % It takes seven arguments: the x /halfheadthickness exch 2 div def % and y coordinates of the tail /halfthickness exch 2 div def % (imagine that a line has been /tipy exch def /tipx exch def % drawn down the center of the /taily exch def /tailx exch def % arrow from the tip to the tail, % then x and y lie on this line), % the x and y coordinates of the % tip of the arrow, the thickness % of the arrow in the tail % portion, the thickness of the % arrow at the widest part of the % arrowhead and the length of the % arrowhead. /dx tipx tailx sub def % Compute the differences in x and /dy tipy taily sub def % y for the tip and tail. These /arrowlength dx dx mul dy dy mul add % will be used to compute the sqrt def % length of the arrow and to /angle dy dx atan def % compute the angle of direction % that the arrow is facing with % respect to the current user % coordinate system origin. /base arrowlength headlength sub def % Compute where the base of the % arrowhead will be. /savematrix matrix currentmatrix def % Save the current user coordinate % system. We are using the same % strategy to localize the effect % of transformations as was used % in the program to draw an % ellipse. tailx taily translate % Translate to the starting point % of the tail. angle rotate % Rotate the x-axis to correspond % with the center line of the % arrow. 0 halfthickness neg moveto % Add the arrow shape to the % current path. base halfthickness neg lineto base halfheadthickness neg lineto arrowlength 0 lineto base halfheadthickness lineto base halfthickness lineto 0 halfthickness lineto closepath savematrix setmatrix % Restore the current user % coordinate system. end } def % xtail ytail xhead yhead thickness_of_tail thickness_wide length_head /plax { /dip exch def /strike exch def 90 dip sub 2 div sin sqrt2 mul dup strike sin mul exch strike cos mul focleq } def /plTax { /dip exch def /strike exch def 90 dip sub 2 div sin sqrt2 mul dup strike sin mul exch strike cos mul newpath focsiz exch focsiz exch moveto (T) censhow } def /plPax { /dip exch def /strike exch def 90 dip sub 2 div sin sqrt2 mul dup strike sin mul exch strike cos mul newpath focsiz exch focsiz exch moveto (P) censhow} def /plFpoint { /sizz exch def /dip exch def /strike exch def dip 2 div sin sqrt2 mul dup strike sin mul exch strike cos mul newpath focsiz exch focsiz exch sizz } def /plPTax { /dip exch def /strike exch def 90 dip sub 2 div sin sqrt2 mul dup strike sin mul exch strike cos mul 2 copy newpath focsiz exch focsiz exch moveto focsiz -1 mul exch focsiz -1 mul exch lineto stroke } def /ralphplane { /dip exch def /strike exch def 90 strike sub rotate 0 -1 focmto 0 1 foclto stroke 0 0 moveto 90 dip sub 2 div sin sqrt2 mul -1 mul 0 foclto stroke } def /planes { /kin exch def % kin = 1 -> go from bottom to top % kin = 2 -> go from top to bottom /dip exch def 90 dip sub cos /cosl exch def dip 90 ne { kin 1 eq {-90 5 90 } { 90 -5 -90} ifelse { dup /cosphi exch cos def /sinphi exch sin def /cosa { cosphi cosl mul } def /alpha { 1 cosa cosa mul sub sqrt cosa atan } def sqrt2 alpha 2 div sin mul alpha sin alpha sin mul sinphi sinphi mul sub sqrt mul alpha sin div %x sqrt2 sinphi mul alpha 2 div sin mul alpha sin div %y foclto } for } { kin 1 eq { 0 1 foclto } { 0 -1 foclto } ifelse } ifelse } def /plotmec { /kind exch def /dip2 exch def /strike2 exch def /dip1 exch def /strike1 exch def newpath 0 0 1 focsiz 0 360 arc stroke %circle the event /diff { strike2 strike1 sub } def diff 0 lt { 360 diff add /diff exch def } if % first plane: 90 strike1 sub rotate newpath 0 -1 focmto %gsave currentpoint 10 xmark grestore dip1 1 planes %gsave currentpoint 10 xsquare grestore kind 1 eq { 0 0 1 focsiz 90 90 360 diff sub add arcn } { 0 0 1 focsiz 90 90 180 diff sub add arc } ifelse %gsave currentpoint 10 xtriangle grestore strike1 -90 add rotate % rotate back to original orientation % second plane: 90 strike2 sub rotate dip2 kind 1 eq { 2 planes % 0 0 1 focsiz -90 -90 diff add arc % } { 1 planes % 0 0 1 focsiz 90 90 180 diff sub sub arcn } ifelse } def % PLOT FOCAL MECHANISM % az1 dip1 az2 dip2 flag focu /focu { 5 copy 1 setgray newpath 0 0 1 focsiz 0 360 arc fill focfilcol gsave plotmec fill grestore foclincol gsave plotmec stroke grestore } def /focu_stroke { 5 copy 1 setgray newpath foclincol 0 0 1 focsiz 0 360 arc stroke gsave plotmec stroke grestore gsave plotmec stroke grestore } def /slip_point { /fy exch def /fx exch def /py exch def /px exch def px focsiz py focsiz moveto slip_vec_size fx mul slip_vec_size fy mul rmoveto currentpoint slip_vec_size 0 360 arc fill } def % ------------- /focsiz { 25 mul } def /focfilcol { 0 .5 0 setcol1 } def /focfilcol_back { .8 .8 .8 setcol_gray } def /foclincol { 0 .4 1 setcol1 } def /sqrt2 { 1.414213562 } def /pio2 { 1.570796327 } def /fochair { -1 focsiz 0 moveto 1 focsiz 0 lineto stroke 0 -1 focsiz moveto 0 1 focsiz lineto stroke } def /cenfoc { -.0625 inch 0 moveto .0625 inch 0 lineto stroke 0 -.0625 inch moveto 0 .0625 inch lineto stroke } def /foc_marks { gsave 0 90 360 { 90 rotate 1 focsiz 0 moveto .2 inch 0 rlineto stroke } for 0 10 360 { 10 rotate 1 focsiz 0 moveto .12 inch 0 rlineto stroke } for 0 1 360 { 1 rotate 1 focsiz 0 moveto .05 inch 0 rlineto stroke } for grestore } def .2 setlinewidth /focmto { focsiz exch focsiz exch moveto } def /foclto { focsiz exch focsiz exch lineto } def /focleq { newpath focsiz exch focsiz exch 3 0 360 arc fill } def /eyesiz { 30 mul } def /eye { gsave newpath translate rotate 0 0 1 eyesiz 165 195 arc stroke 0 eyesiz 0 moveto 165 cos 1.1 eyesiz mul 165 sin 1.1 eyesiz mul lineto stroke 0 eyesiz 0 moveto 195 cos 1.1 eyesiz mul 195 sin 1.1 eyesiz mul lineto stroke -1 eyesiz 0 .2 eyesiz -85. 85. arc 0 0 1 eyesiz 168.5 191.5 arc fill fill grestore } def /justplane { % plot only the plane of focal mechanism % given strike (azimuth to dip) and dip % strike dip justplane /dip1 exch def /strike1 exch def gsave 90 strike1 sub rotate newpath 0 -1 focmto dip1 1 planes stroke grestore } def /planeb { % USAGE: Strike Dip_plane rake_angle planeb /ang1 exch def /dip exch def /strike1 exch def gsave 90 strike1 sub rotate newpath 90 dip sub cos /cosl exch def /plow { 10 } def ang1 plow sub dip 90 ne { dup /cosphi exch cos def /sinphi exch sin def /cosa { cosphi cosl mul } def /alpha { 1 cosa cosa mul sub sqrt cosa atan } def sqrt2 alpha 2 div sin mul alpha sin alpha sin mul sinphi sinphi mul sub sqrt mul alpha sin div %x sqrt2 sinphi mul alpha 2 div sin mul alpha sin div %y focmto ang1 plow sub 1 ang1 plow add { dup /cosphi exch cos def /sinphi exch sin def /cosa { cosphi cosl mul } def /alpha { 1 cosa cosa mul sub sqrt cosa atan } def sqrt2 alpha 2 div sin mul alpha sin alpha sin mul sinphi sinphi mul sub sqrt mul alpha sin div %x sqrt2 sinphi mul alpha 2 div sin mul alpha sin div %y foclto } for } if stroke grestore } def /planeb90 { /a1 exch def /az exch def /plow { 10 } def /dip { 90 a1 sub } def gsave 90 az sub rotate purple 0 dip plow add 2 div sin sqrt2 mul focmto 0 dip plow sub 2 div sin sqrt2 mul foclto stroke grestore } def /ppointb { % USAGE: Strike Dip_plane rake_angle planeb /ang1 exch def /dip exch def /strike1 exch def gsave 90 strike1 sub rotate newpath 90 dip sub cos /cosl exch def /plow { 10 } def ang1 dup /cosphi exch cos def /sinphi exch sin def /cosa { cosphi cosl mul } def /alpha { 1 cosa cosa mul sub sqrt cosa atan } def sqrt2 alpha 2 div sin mul alpha sin alpha sin mul sinphi sinphi mul sub sqrt mul alpha sin div %x sqrt2 sinphi mul alpha 2 div sin mul alpha sin div %y focsiz exch focsiz exch 5 xsquare grestore } def /planeo { /ang1 exch def /kin exch def % kin = 1 -> go from bottom to top % kin = 2 -> go from top to bottom /dip exch def 90 dip sub cos /cosl exch def /plow { 10 } def ang1 plow sub dup /cosphi exch cos def /sinphi exch sin def /cosa { cosphi cosl mul } def /alpha { 1 cosa cosa mul sub sqrt cosa atan } def sqrt2 alpha 2 div sin mul alpha sin alpha sin mul sinphi sinphi mul sub sqrt mul alpha sin div %x sqrt2 sinphi mul alpha 2 div sin mul alpha sin div %y focmto dip 90 ne { kin 1 eq { ang1 plow sub 1 ang1 plow add } { ang1 plow add -1 ang1 plow sub} ifelse { dup /cosphi exch cos def /sinphi exch sin def /cosa { cosphi cosl mul } def /alpha { 1 cosa cosa mul sub sqrt cosa atan } def sqrt2 alpha 2 div sin mul alpha sin alpha sin mul sinphi sinphi mul sub sqrt mul alpha sin div %x sqrt2 sinphi mul alpha 2 div sin mul alpha sin div %y foclto } for } { kin 1 eq { 0 1 foclto } { 0 -1 foclto } ifelse } ifelse } def /BlackBackFoc { -1.5 focsiz -1.5 focsiz 1.5 focsiz 1.5 focsiz bord black fill } def /eqsiz { 1.5 mul } def % earthquake size /eqpl2 { eqsiz 0 360 arc gsave fill grestore gsave 0 setgray stroke grestore newpath } def /bbinc { 0.05 } def /Kool { % usage: x y size Kool /bb exch def gsave translate newpath 0 0 1 bb mul 0 360 arc clip 0 setgray newpath 0 0 1 bb mul 0 360 arc fill 0 bbinc 1 bbinc add { /siz exch def siz setgray /rad { 1.1 siz sub } def newpath .4 bb mul .4 bb mul 1 bb mul rad mul 0 360 arc fill } for grestore } def /CKool { % usage: x y color size CKool /bb exch def /col exch def gsave translate newpath 0 0 1 bb mul 0 360 arc clip col 1 1 sethsbcolor newpath 0 0 1 bb mul 0 360 arc fill 0 bbinc 1 bbinc add { /siz exch def col siz -1 mul 1 add 1 sethsbcolor /rad { 1.1 siz sub } def newpath .4 bb mul .4 bb mul 1 bb mul rad mul 0 360 arc fill } for grestore } def % from the postscript cook book /wordbreak ( ) def /BreakIntoLines { /proc exch def /linelength exch def /textstring exch def /breaklen wordbreak stringwidth pop def /curlen 0 def /lastwordbreak 0 def /startchar 0 def /restoftext textstring def { restoftext wordbreak search {/nextword exch def pop /restoftext exch def /wordlen nextword stringwidth pop def curlen wordlen add linelength lt { /curlen curlen wordlen add breaklen add def } { textstring startchar lastwordbreak startchar sub getinterval proc /startchar lastwordbreak def /curlen wordlen breaklen add def } ifelse /lastwordbreak lastwordbreak nextword length add 1 add def } { pop exit } ifelse } loop /lastchar textstring length def textstring startchar lastchar startchar sub getinterval proc } def /kmscale { % plot a centered kmscale for maps % locx locy dist kmscale % plots the numerals at the current font/fontsize /dis exch def gsave translate /str 20 string def dis -2 div bx 0 moveto dis bx 0 rlineto stroke dis -2 div bx 0 moveto 0 10 rlineto stroke dis 2 div bx 0 moveto 0 10 rlineto stroke 0 0 moveto 0 7 rlineto stroke dis -2 div dis 10 div dis 2 div { bx 0 moveto 0 5 rlineto stroke } for dis 2 div bx 1.5 add 0 moveto dis str cvs show (km) show grestore } def /pathtextdict 26 dict def /pathtext { pathtextdict begin /offset exch def /str exch def /pathdist 0 def /setdist offset def /charcount 0 def gsave flattenpath {movetoproc} {linetoproc} {curvetoproc} {closepathproc} pathforall grestore newpath end } def pathtextdict begin /movetoproc { /newy exch def /newx exch def /firstx newx def /firsty newy def /ovr 0 def newx newy transform /cpy exch def /cpx exch def } def /linetoproc { /oldx newx def /oldy newy def /newy exch def /newx exch def /dx newx oldx sub def /dy newy oldy sub def /dist dx dup mul dy dup mul add sqrt def /dsx dx dist div ovr mul def /dsy dy dist div ovr mul def oldx dsx add oldy dsy add transform /cpy exch def /cpx exch def /pathdist pathdist dist add def { setdist pathdist le { charcount str length lt {setchar} {exit} ifelse } { /ovr setdist pathdist sub def exit } ifelse } loop } def /curvetoproc { (ERROR: No curveto's after flattenpath!) print } def /closepathproc { firstx firsty linetoproc firstx firsty movetoproc } def /setchar { /char str charcount 1 getinterval def /charcount charcount 1 add def /charwidth char stringwidth pop def gsave cpx cpy itransform translate dy dx atan rotate 0 0 moveto char show currentpoint transform /cpy exch def /cpx exch def grestore /setdist setdist charwidth add def } def end %1 inch 1 inch translate %end header................................................... %%EndProlog