diff --git a/colorbar.pro b/colorbar.pro
deleted file mode 100644
index f2f9c1811ab1e78eda24461ceb4cac8774ef34a5..0000000000000000000000000000000000000000
--- a/colorbar.pro
+++ /dev/null
@@ -1,418 +0,0 @@
-;+
-; NAME:
-;   COLORBAR
-;
-; PURPOSE:
-;
-;       The purpose of this routine is to add a color bar to the current
-;       graphics window.
-;
-; AUTHOR:
-;
-;   FANNING SOFTWARE CONSULTING
-;   David Fanning, Ph.D.
-;   1645 Sheely Drive
-;   Fort Collins, CO 80526 USA
-;   Phone: 970-221-0438
-;   E-mail: davidf@dfanning.com
-;   Coyote's Guide to IDL Programming: http://www.dfanning.com/
-;
-; CATEGORY:
-;
-;       Graphics, Widgets.
-;
-; CALLING SEQUENCE:
-;
-;       COLORBAR
-;
-; INPUTS:
-;
-;       None.
-;
-; KEYWORD PARAMETERS:
-;
-;       BOTTOM:       The lowest color index of the colors to be loaded in
-;                     the bar.
-;
-;       CHARSIZE:     The character size of the color bar annotations. Default is 1.0.
-;
-;       COLOR:        The color index of the bar outline and characters. Default
-;                     is !P.Color..
-;
-;       DIVISIONS:     The number of divisions to divide the bar into. There will
-;                     be (divisions + 1) annotations. The default is 6.
-;
-;       FONT:         Sets the font of the annotation. Hershey: -1, Hardware:0, True-Type: 1.
-;
-;       FORMAT:       The format of the bar annotations. Default is '(I5)'.
-;
-;       INVERTCOLORS: Setting this keyword inverts the colors in the color bar.
-;
-;       MAXRANGE:     The maximum data value for the bar annotation. Default is
-;                     NCOLORS.
-;
-;       MINRANGE:     The minimum data value for the bar annotation. Default is 0.
-;
-;       MINOR:        The number of minor tick divisions. Default is 2.
-;
-;       NCOLORS:      This is the number of colors in the color bar.
-;
-;       POSITION:     A four-element array of normalized coordinates in the same
-;                     form as the POSITION keyword on a plot. Default is
-;                     [0.88, 0.10, 0.95, 0.90] for a vertical bar and
-;                     [0.10, 0.88, 0.90, 0.95] for a horizontal bar.
-;;
-;       RANGE:        A two-element vector of the form [min, max]. Provides an
-;                     alternative way of setting the MINRANGE and MAXRANGE keywords.
-;
-;       RIGHT:        This puts the labels on the right-hand side of a vertical
-;                     color bar. It applies only to vertical color bars.
-;
-;       TICKNAMES:    A string array of names or values for the tick marks.
-;
-;       TITLE:        This is title for the color bar. The default is to have
-;                     no title.
-;
-;       TOP:          This puts the labels on top of the bar rather than under it.
-;                     The keyword only applies if a horizontal color bar is rendered.
-;
-;       VERTICAL:     Setting this keyword give a vertical color bar. The default
-;                     is a horizontal color bar.
-;
-; COMMON BLOCKS:
-;
-;       None.
-;
-; SIDE EFFECTS:
-;
-;       Color bar is drawn in the current graphics window.
-;
-; RESTRICTIONS:
-;
-;       The number of colors available on the display device (not the
-;       PostScript device) is used unless the NCOLORS keyword is used.
-;
-; EXAMPLE:
-;
-;       To display a horizontal color bar above a contour plot, type:
-;
-;       LOADCT, 5, NCOLORS=100
-;       CONTOUR, DIST(31,41), POSITION=[0.15, 0.15, 0.95, 0.75], $
-;          C_COLORS=INDGEN(25)*4, NLEVELS=25
-;       COLORBAR, NCOLORS=100, POSITION=[0.15, 0.85, 0.95, 0.90]
-;
-; MODIFICATION HISTORY:
-;
-;       Written by: David W. Fanning, 10 JUNE 96.
-;       10/27/96: Added the ability to send output to PostScript. DWF
-;       11/4/96: Substantially rewritten to go to screen or PostScript
-;           file without having to know much about the PostScript device
-;           or even what the current graphics device is. DWF
-;       1/27/97: Added the RIGHT and TOP keywords. Also modified the
-;            way the TITLE keyword works. DWF
-;       7/15/97: Fixed a problem some machines have with plots that have
-;            no valid data range in them. DWF
-;       12/5/98: Fixed a problem in how the colorbar image is created that
-;            seemed to tickle a bug in some versions of IDL. DWF.
-;       1/12/99: Fixed a problem caused by RSI fixing a bug in IDL 5.2. Sigh... DWF.
-;       3/30/99: Modified a few of the defaults. DWF.
-;       3/30/99: Used NORMAL rather than DEVICE coords for positioning bar. DWF.
-;       3/30/99: Added the RANGE keyword. DWF.
-;       3/30/99: Added FONT keyword. DWF
-;       5/6/99: Many modifications to defaults. DWF.
-;       5/6/99: Removed PSCOLOR keyword. DWF.
-;       5/6/99: Improved error handling on position coordinates. DWF.
-;       5/6/99. Added MINOR keyword. DWF.
-;       5/6/99: Set Device, Decomposed=0 if necessary. DWF.
-;       2/9/99: Fixed a problem caused by setting BOTTOM keyword, but not NCOLORS. DWF.
-;       8/17/99. Fixed a problem with ambiguous MIN and MINOR keywords. DWF
-;       8/25/99. I think I *finally* got the BOTTOM/NCOLORS thing sorted out. :-( DWF.
-;       10/10/99. Modified the program so that current plot and map coordinates are
-;            saved and restored after the colorbar is drawn. DWF.
-;       3/18/00. Moved a block of code to prevent a problem with color decomposition. DWF.
-;       4/28/00. Made !P.Font default value for FONT keyword. DWF.
-;       9/26/00. Made the code more general for scalable pixel devices. DWF.
-;       1/16/01. Added INVERTCOLORS keyword. DWF.
-;       5/11/04. Added TICKNAME keyword. DWF.
-;-
-;
-;###########################################################################
-;
-; LICENSE
-;
-; This software is OSI Certified Open Source Software.
-; OSI Certified is a certification mark of the Open Source Initiative.
-;
-; Copyright © 2000-2004 Fanning Software Consulting.
-;
-; This software is provided "as-is", without any express or
-; implied warranty. In no event will the authors be held liable
-; for any damages arising from the use of this software.
-;
-; Permission is granted to anyone to use this software for any
-; purpose, including commercial applications, and to alter it and
-; redistribute it freely, subject to the following restrictions:
-;
-; 1. The origin of this software must not be misrepresented; you must
-;    not claim you wrote the original software. If you use this software
-;    in a product, an acknowledgment in the product documentation
-;    would be appreciated, but is not required.
-;
-; 2. Altered source versions must be plainly marked as such, and must
-;    not be misrepresented as being the original software.
-;
-; 3. This notice may not be removed or altered from any source distribution.
-;
-; For more information on Open Source Software, visit the Open Source
-; web site: http://www.opensource.org.
-;
-;###########################################################################
-
-
-PRO colorbar, BOTTOM=bottom, CHARSIZE=charsize, COLOR=color, DIVISIONS=divisions, $
-   FORMAT=format, POSITION=position, MAXRANGE=maxrange, MINRANGE=minrange, NCOLORS=ncolors, $
-   TITLE=title, VERTICAL=vertical, TOP=top, RIGHT=right, MINOR=minor, $
-   RANGE=range, FONT=font, TICKLEN=ticklen, _EXTRA=extra, INVERTCOLORS=invertcolors, $
-   TICKNAMES=ticknames, bw_to_color = bw_to_color_keywords
-
-   ; Return to caller on error.
-
-On_Error, 2
-
-   ; Save the current plot state.
-
-bang_p = !P
-bang_x = !X
-bang_Y = !Y
-bang_Z = !Z
-bang_Map = !Map
-
-   ; Are scalable pixels available on the device?
-
-IF (!D.Flags AND 1) NE 0 THEN scalablePixels = 1 ELSE scalablePixels = 0
-
-   ; Which release of IDL is this?
-
-thisRelease = Float(!Version.Release)
-
-    ; Check and define keywords.
-
-IF N_ELEMENTS(ncolors) EQ 0 THEN BEGIN
-
-   ; Most display devices to not use the 256 colors available to
-   ; the PostScript device. This presents a problem when writing
-   ; general-purpose programs that can be output to the display or
-   ; to the PostScript device. This problem is especially bothersome
-   ; if you don't specify the number of colors you are using in the
-   ; program. One way to work around this problem is to make the
-   ; default number of colors the same for the display device and for
-   ; the PostScript device. Then, the colors you see in PostScript are
-   ; identical to the colors you see on your display. Here is one way to
-   ; do it.
-
-   IF scalablePixels THEN BEGIN
-      oldDevice = !D.NAME
-
-         ; What kind of computer are we using? SET_PLOT to appropriate
-         ; display device.
-
-      thisOS = !VERSION.OS_FAMILY
-      thisOS = STRMID(thisOS, 0, 3)
-      thisOS = STRUPCASE(thisOS)
-      CASE thisOS of
-         'MAC': SET_PLOT, thisOS
-         'WIN': SET_PLOT, thisOS
-         ELSE: SET_PLOT, 'X'
-      ENDCASE
-
-         ; Here is how many colors we should use.
-
-      ncolors = !D.TABLE_SIZE
-      SET_PLOT, oldDevice
-    ENDIF ELSE ncolors = !D.TABLE_SIZE
-ENDIF
-IF N_ELEMENTS(bottom) EQ 0 THEN bottom = 0B
-IF N_ELEMENTS(charsize) EQ 0 THEN charsize = 1.0
-IF N_ELEMENTS(format) EQ 0 THEN format = '(I5)'
-IF N_ELEMENTS(color) EQ 0 THEN color = !P.Color
-IF N_ELEMENTS(minrange) EQ 0 THEN minrange = 0
-IF N_ELEMENTS(maxrange) EQ 0 THEN maxrange = ncolors
-IF N_ELEMENTS(ticklen) EQ 0 THEN ticklen = 0.2
-IF N_ELEMENTS(minor) EQ 0 THEN minor = 2
-IF N_ELEMENTS(range) NE 0 THEN BEGIN
-   minrange = range[0]
-   maxrange = range[1]
-ENDIF
-IF N_ELEMENTS(divisions) EQ 0 THEN divisions = 6
-IF N_ELEMENTS(font) EQ 0 THEN font = !P.Font
-IF N_ELEMENTS(title) EQ 0 THEN title = ''
-
-; You can't have a format set *and* use ticknames.
-IF N_ELEMENTS(ticknames) NE 0 THEN format = ""
-
-IF KEYWORD_SET(vertical) THEN BEGIN
-   bar = REPLICATE(1B,20) # BINDGEN(ncolors)
-   IF Keyword_Set(invertcolors) THEN bar = Reverse(bar, 2)
-   IF N_ELEMENTS(position) EQ 0 THEN BEGIN
-      position = [0.88, 0.1, 0.95, 0.9]
-   ENDIF ELSE BEGIN
-      IF position[2]-position[0] GT position[3]-position[1] THEN BEGIN
-         position = [position[1], position[0], position[3], position[2]]
-      ENDIF
-      IF position[0] GE position[2] THEN Message, "Position coordinates can't be reconciled."
-      IF position[1] GE position[3] THEN Message, "Position coordinates can't be reconciled."
-   ENDELSE
-ENDIF ELSE BEGIN
-   bar = BINDGEN(ncolors) # REPLICATE(1B, 20)
-   IF Keyword_Set(invertcolors) THEN bar = Reverse(bar, 1)
-   IF N_ELEMENTS(position) EQ 0 THEN BEGIN
-      position = [0.1, 0.88, 0.9, 0.95]
-   ENDIF ELSE BEGIN
-      IF position[3]-position[1] GT position[2]-position[0] THEN BEGIN
-         position = [position[1], position[0], position[3], position[2]]
-      ENDIF
-      IF position[0] GE position[2] THEN Message, "Position coordinates can't be reconciled."
-      IF position[1] GE position[3] THEN Message, "Position coordinates can't be reconciled."
-   ENDELSE
-ENDELSE
-
-   ; Scale the color bar.
-
- bar = BYTSCL(bar, TOP=(ncolors-1 < (255-bottom))) + bottom
-
-   ; Get starting locations in NORMAL coordinates.
-
-xstart = position(0)
-ystart = position(1)
-
-   ; Get the size of the bar in NORMAL coordinates.
-
-xsize = (position(2) - position(0))
-ysize = (position(3) - position(1))
-
-   ; Display the color bar in the window. Sizing is
-   ; different for PostScript and regular display.
-
-IF scalablePixels THEN BEGIN
-
-	if keyword_set(bw_to_color_keywords) then begin
-		dum = bw_to_color(bar, _extra = bw_to_color_keywords)
-		TV, dum, xstart, ystart, XSIZE=xsize, YSIZE=ysize, /Normal, true = 3
-	endif else begin
-		TV, bar, xstart, ystart, XSIZE=xsize, YSIZE=ysize, /Normal
-	endelse
-
-ENDIF ELSE BEGIN
-
-   bar = CONGRID(bar, CEIL(xsize*!D.X_VSize), CEIL(ysize*!D.Y_VSize), /INTERP)
-
-        ; Decomposed color off if device supports it.
-
-   CASE  StrUpCase(!D.NAME) OF
-        'X': BEGIN
-            IF thisRelease GE 5.2 THEN Device, Get_Decomposed=thisDecomposed
-            Device, Decomposed=0
-            ENDCASE
-        'WIN': BEGIN
-            IF thisRelease GE 5.2 THEN Device, Get_Decomposed=thisDecomposed
-            Device, Decomposed=0
-            ENDCASE
-        'MAC': BEGIN
-            IF thisRelease GE 5.2 THEN Device, Get_Decomposed=thisDecomposed
-            Device, Decomposed=0
-            ENDCASE
-        ELSE:
-   ENDCASE
-
-	if keyword_set(bw_to_color_keywords) then begin
-		dum = bw_to_color(bar, _extra = bw_to_color_keywords)
-		TV, dum, xstart, ystart, /Normal, true = 3
-	endif else begin
-		TV, bar, xstart, ystart, /Normal
-	endelse
-
-      ; Restore Decomposed state if necessary.
-
-   CASE StrUpCase(!D.NAME) OF
-      'X': BEGIN
-         IF thisRelease GE 5.2 THEN Device, Decomposed=thisDecomposed
-         ENDCASE
-      'WIN': BEGIN
-         IF thisRelease GE 5.2 THEN Device, Decomposed=thisDecomposed
-         ENDCASE
-      'MAC': BEGIN
-         IF thisRelease GE 5.2 THEN Device, Decomposed=thisDecomposed
-         ENDCASE
-      ELSE:
-   ENDCASE
-
-ENDELSE
-
-   ; Annotate the color bar.
-
-IF KEYWORD_SET(vertical) THEN BEGIN
-
-   IF KEYWORD_SET(right) THEN BEGIN
-
-      PLOT, [minrange,maxrange], [minrange,maxrange], /NODATA, XTICKS=1, $
-         YTICKS=divisions, XSTYLE=1, YSTYLE=9, $
-         POSITION=position, COLOR=color, CHARSIZE=charsize, /NOERASE, $
-         YTICKFORMAT='(A1)', XTICKFORMAT='(A1)', YTICKLEN=ticklen , $
-         YRANGE=[minrange, maxrange], FONT=font, _EXTRA=extra, YMINOR=minor
-
-      AXIS, YAXIS=1, YRANGE=[minrange, maxrange], YTICKFORMAT=format, YTICKS=divisions, $
-         YTICKLEN=ticklen, YSTYLE=1, COLOR=color, CHARSIZE=charsize, $
-         FONT=font, YTITLE=title, _EXTRA=extra, YMINOR=minor, YTICKNAME=ticknames
-
-   ENDIF ELSE BEGIN
-
-      PLOT, [minrange,maxrange], [minrange,maxrange], /NODATA, XTICKS=1, $
-         YTICKS=divisions, XSTYLE=1, YSTYLE=9, YMINOR=minor, $
-         POSITION=position, COLOR=color, CHARSIZE=charsize, /NOERASE, $
-         YTICKFORMAT=format, XTICKFORMAT='(A1)', YTICKLEN=ticklen , $
-         YRANGE=[minrange, maxrange], FONT=font, YTITLE=title, _EXTRA=extra, $
-         YTICKNAME=ticknames
-
-      AXIS, YAXIS=1, YRANGE=[minrange, maxrange], YTICKFORMAT='(A1)', YTICKS=divisions, $
-         YTICKLEN=ticklen, YSTYLE=1, COLOR=color, CHARSIZE=charsize, $
-         FONT=font, _EXTRA=extra, YMINOR=minor
-
-   ENDELSE
-
-ENDIF ELSE BEGIN
-
-   IF KEYWORD_SET(top) THEN BEGIN
-
-      PLOT, [minrange,maxrange], [minrange,maxrange], /NODATA, XTICKS=divisions, $
-         YTICKS=1, XSTYLE=9, YSTYLE=1, $
-         POSITION=position, COLOR=color, CHARSIZE=charsize, /NOERASE, $
-         YTICKFORMAT='(A1)', XTICKFORMAT='(A1)', XTICKLEN=ticklen, $
-         XRANGE=[minrange, maxrange], FONT=font, _EXTRA=extra, XMINOR=minor
-
-      AXIS, XTICKS=divisions, XSTYLE=1, COLOR=color, CHARSIZE=charsize, $
-         XTICKFORMAT=format, XTICKLEN=ticklen, XRANGE=[minrange, maxrange], XAXIS=1, $
-         FONT=font, XTITLE=title, _EXTRA=extra, XCHARSIZE=charsize, XMINOR=minor, $
-         XTICKNAME=ticknames
-
-   ENDIF ELSE BEGIN
-
-      PLOT, [minrange,maxrange], [minrange,maxrange], /NODATA, XTICKS=divisions, $
-         YTICKS=1, XSTYLE=1, YSTYLE=1, TITLE=title, $
-         POSITION=position, COLOR=color, CHARSIZE=charsize, /NOERASE, $
-         YTICKFORMAT='(A1)', XTICKFORMAT=format, XTICKLEN=ticklen, $
-         XRANGE=[minrange, maxrange], FONT=font, XMinor=minor, _EXTRA=extra, $
-         XTICKNAME=ticknames
-
-    ENDELSE
-
-ENDELSE
-
-   ; Restore the previous plot and map system variables.
-
-!P = bang_p
-!X = bang_x
-!Y = bang_y
-!Z = bang_z
-!Map = bang_map
-
-END