; ; Procedure EVENT_MAP.PRO ; ; Plots a map of an earthquake superposed on a map of the ; fault system ; ; Primary Variables: ; ; nfault - number of fault segments ; xfe(i) - x-component of easternmost point of fault segment i ; yfe(i) - y-component of easternmost point of fault segment i ; xfw(i) - x-component of westernmost point of fault segment i ; yfw(i) - y-component of westernmost point of fault segment i ; tslip(i,j) - Time at which segment i slipped for jth time (yr) ; dslip(i,j) - Slip of segment i at jth time (cm) ; islip(i) - Number of times segment i slipped (# of earthquakes) ; facsd(i) - Aseismic slip factor, segment i ; ; ; **************************************************************** ; pro event_map, nfault, xfe, xfw, yfe, yfw, islip, tslip, dslip, $ facsd ; ; **************************************************************** ; NF = long(nfault) ; XL = fltarr(NF,/no) XR = fltarr(NF,/no) YL = fltarr(NF,/no) YR = fltarr(NF,/no) XINT = fltarr(NF,/no) YINT = fltarr(NF,/no) ; ; Locate east, west, north, south limits on faults ; xmin1 = min(xfe, nminx1) xmin2 = min(xfw, nminx2) xmin = xmin1 nminx = nminx1 if (xmin2 lt xmin1) then begin xmin = xmin2 nminx = nminx2 endif ; xmax1 = max(xfe, nmaxx1) xmax2 = max(xfw, nmaxx2) xmax = xmax1 nmaxx = nmaxx1 if (xmax2 gt xmax1) then begin xmax = xmax2 nmaxx = nmaxx2 endif ; ymin1 = min(yfe, nminy1) ymin2 = min(yfw, nminy2) ymin = ymin1 nminy = nminy1 if (ymin2 lt ymin1) then begin ymin = ymin2 nminy = nminy2 endif ; ymax1 = max(yfe, nmaxy1) ymax2 = max(yfw, nmaxy2) ymax = ymax1 nmaxy = nmaxy1 if (ymax2 gt ymax1) then begin ymax = ymax2 nmaxy = nmaxy2 endif ; ; ; Find Center of Picture ; xcenter = (xmin + xmax)/2. ycenter = (ymin + ymax)/2. ; xlong = 1.25*(xcenter - xmin) ylong = 1.25*(ycenter - ymin) axlen = max(xlong,ylong) xleft = -axlen xright = axlen yup = axlen ydown = -axlen ; XL = xfw - xcenter XR = xfe - xcenter YL = yfw - ycenter YR = yfe - ycenter XINT = .5*(XL + XR) YINT = .5*(YL + YR) ; ; Get the time at which to plot the events ; resp_time = 'y' while (resp_time eq 'y') do begin print, '' read, ' Check event times for a fault patch? (y/n): ', resp_time if (resp_time eq 'y') then begin print, '' print, '(Note: Zero times & events are used as internal storage)' read, ' Enter fault patch: ', fault_patch for time_index = 0L, islip(fault_patch)-1 do begin print, ' Event, Time, Total Slip: ', time_index, $ tslip(fault_patch,time_index), dslip(fault_patch,time_index) endfor endif endwhile time_mat = fltarr(NF,/no) print, ' ' read, 'Enter time of slip event to plot: ', time_of_slip for fault_index = 0L,NF-1 do begin time_mat(fault_index) = 0 endfor facsd = long(facsd) for fault_index = 0L,NF-1 do begin facsd_test = abs(facsd(fault_index) - 1.) if (facsd_test gt .001) then begin for time_index = 0L,islip(fault_index) -1 do begin time_test = abs(tslip(fault_index,time_index) - time_of_slip) if (fault_index eq 30) then print, 'time_test', time_test if (time_test le .01 ) then begin time_mat(fault_index) = 1 endif endfor endif endfor ; print,' Faults that slipped' ; for fault_index =0L, NF-1 do begin ; print, ' Fault, time_mat', fault_index, time_mat(fault_index) ; endfor loadct, 13 ; rainbow !P.MULTI = [0, 1, 1] !P.POSITION = [0., 0., 1., 1.] plot,[0],[0], $ ; dummies xstyle=18,ystyle=18, $ ; extend axes xrange=[xleft,xright], $ yrange=[ydown,yup], $ title='Map View of Slipped Segments' xs = .025*axlen ys = .9*axlen astr = 'Event Time =' astr = astr + strcompress(string(time_of_slip)) xyouts, xs, ys, astr, charsize = 1.5 ; ; Loop over faults ; x1 = fltarr(2,/no) y1 = fltarr(2,/no) for i=0L,NF-1 do begin x1(0) = XL(i) y1(0) = YL(i) x1(1) = XR(i) y1(1) = YR(i) ; oplot, x1, y1, linestyle = 1 oplot, x1, y1, linestyle = 0, thick = 6.0, color = 100 endfor for i=0L,NF-1 do begin if (time_mat(i) eq 1) then begin x1(0) = XL(i) y1(0) = YL(i) x1(1) = XR(i) y1(1) = YR(i) oplot, x1, y1, linestyle=0, thick=14.0, color = 150 endif endfor ; ; end