Viewing contents of file '../idllib/uit/pro/cleanplot.pro'
Pro CleanPlot, Dummy		;Set System Plot Variables to Default Values
;+
; NAME:
;	CLEANPLOT
; PURPOSE:
;	Reset all system variables (!P,!X,!Y,!Z) set by the user which 
;	affect plotting to their default values.
;
; CALLING SEQUENCE:
;	Cleanplot
;
; INPUTS:	
;	None
;
; OUTPUTS:	
;	None
;
; SIDE EFFECTS:	
;	The system variables that concern plotting are reset
;	to their default values.  A message is output for each
;	variable changed.   The CRANGE, S, WINDOW, and REGION fields of the
;	!X, !Y, and !Z system variables are not checked since these are 
;	set by the graphics device and not by the user.    
;
; PROCEDURE:
;	This does NOT reset the plotting device.
;	This does not change any system variables that don't control plotting.
;
; RESTRICTIONS:
;	If user default values for !P, !X, !Y and !Z are different from
;	the defaults adopted below, user should change P_old etc accordingly
;
; MODIFICATION HISTORY:
;	Written IDL Version 2.3.0  W. Landsman & K. Venkatakrishna May '92
;	Handle new system variables in V3.0.0     W. Landsman   Dec 92
;-
 On_error,2

 if since_version('3.0.0') then begin 
 P_old = { BACKGROUND: 0L,CHARSIZE:0.0, CHARTHICK:0.0,  $
          CLIP:[0L,0,639,511,0,0], $                      ;Not used
          COLOR : !D.N_COLORS-1, FONT: -1L, LINESTYLE: 0L, MULTI:lonarr(5),$
          NOCLIP: 0L, NOERASE: 0L, NSUM: 0L, POSITION: fltarr(4),$
          PSYM: 0L, REGION: fltarr(4), SUBTITLE:'', SYMSIZE:0.0, T:fltarr(4,4),$
          T3D:0L, THICK: 0.0, TITLE:'', TICKLEN:0.02, CHANNEL:0L }

 X_old = { TITLE: '', TYPE: 0L, STYLE:0L, TICKS:0L, TICKLEN:0.0, $
          THICK: 0.0, RANGE:fltarr(2), CRANGE:fltarr(2), S:fltarr(2), $
          MARGIN: [10.0 ,3.0], OMARGIN: fltarr(2), WINDOW: fltarr(2), $
          REGION: fltarr(2), CHARSIZE:0.0, MINOR: 0L, TICKV:fltarr(30), $
          TICKNAME: strarr(30), GRIDSTYLE: 0L, TICKFORMAT: '' } 

 endif else begin

 P_old = { BACKGROUND: 0L,CHARSIZE:0.0, CHARTHICK:0.0,  $
          CLIP:[0L,0,639,511,0,0], $                      ;Not used
          COLOR : !D.N_COLORS-1, FONT: -1L, LINESTYLE: 0L, MULTI:lonarr(5),$
          NOCLIP: 0L, NOERASE: 0L, NSUM: 0L, POSITION: fltarr(4),$
          PSYM: 0L, REGION: fltarr(4), SUBTITLE:'', T:fltarr(4,4),$
          T3D:0L, THICK: 0.0, TITLE:'', TICKLEN:0.02, CHANNEL:0L }
 X_old = { TITLE: '', TYPE: 0L, STYLE:0L, TICKS:0L, TICKLEN:0.0, $
          THICK: 0.0, RANGE:fltarr(2), CRANGE:fltarr(2), S:fltarr(2), $
          MARGIN: [10.0 ,3.0], OMARGIN: fltarr(2), WINDOW: fltarr(2), $
          REGION: fltarr(2), CHARSIZE:0.0, MINOR: 0L, TICKV:fltarr(30), $
          TICKNAME: strarr(30) } 

  endelse

 Y_old = X_old
 Y_old.MARGIN = [4.0, 2.0]

 Z_old = X_old
 Z_old.MARGIN = [0.0, 0.0]

 P_var = tag_names(!P)
;                               Reset !P to its default value

 if !D.NAME EQ 'PS' then P_old.color = 0
   for i=0, N_elements(P_var)-1 do begin
     if i NE 3 then begin
     n = N_elements(!P.(i))
     if ( total( (!P.(i) EQ P_old.(i))) NE n ) then Begin
        Print, 'Clearing !P.'+P_var(i)+', old value =',!P.(i)
        !P.(i) = P_old.(i)
        EndIf
    endif
 endfor
;                               Reset !X !Y and !Z to their default values
 X_var = tag_names(!X)
 Y_var = tag_names(!Y)
 Z_var = tag_names(!Z)

 for i = 0, N_elements(X_var)-1 do begin
   if total( i EQ [7,8,11,12] ) EQ 0 then begin  ;Skip S,CRANGE,WINDOW,REGION
       n = N_elements(!X.(i))

       if ( total( (!X.(i) EQ X_old.(i))) NE n ) then Begin 
       Print,'Clearing !X.'+X_var(i)+' old value = ', !X.(i)
       !X.(i) = X_old.(i)
       EndIf
 
       if (total( (!Y.(i) EQ Y_old.(i))) NE n ) then Begin
       Print,'Clearing !Y.'+Y_var(i)+' old value = ', !Y.(i)
       !Y.(i) = Y_old.(i)
       EndIf

       if (total( (!Z.(i) EQ Z_old.(i))) NE n) then Begin
       Print,'Clearing !Z.'+Z_var(i)+' old value = ', !Z.(i)
       !Z.(i) = Z_old.(i)
       EndIf
   endif
endfor

Return					;Completed
End