Viewing contents of file '../idllib/contrib/icur/erbar.pro'
;*************************************************************************
PRO ERBAR,IXY,a1,a2,a3,a4,a5,a6,color=color,helpme=helpme
; ixy=1 (X), 2 (Y), 3 (X+Y) 
;
if n_params(0) lt 3 then helpme=1
if keyword_set(helpme) then begin
   print,' '
   print,' * ERBAR - overplot error bars'
   print,' *   calling sequences: ERBAR,i,y,y1,y2,x,x1,x2'
   print,' *                      ERBAR,i,x,dx,y,dy'
   print,' *                      ERBAR,i,z,z1,z2,w'
   print,' *                      ERBAR,i,z,dz,w'
   print,' *      I: 1: error bar in X'
   print,' *      I: 2: error bar in Y'
   print,' *      I: 3: error bars in both coordinates'
   print,' *      X,Y: X,Y points'
   print,' *      dX,dY : 1 sigma error'
   print,' *      y1,y2,x1,x2: actual values of ends of error bars'
   print,' *      Z,W: X or Y, depending on I
   print,' *'
   print,' *   KEYWORDS:'
   print,' *      COLOR: plot color'
   print,' '
   return
   endif
if (ixy le 0) or (ixy gt 3) then return
case 1 of
   (n_params(0) eq 4) or (n_params(0) eq 3): begin
      if ixy eq 3 then return    ;invalid
      if ixy eq 1 then begin 
         x0=a1
         x1=a1-a2 & x2=a1+a2
         if n_params(0) eq 4 then y0=a3 else y0=indgen(n_elements(x0))
         y1=y0 & y2=y0
         endif else begin
         y0=a1 & y1=a1-a2 & y2=a1+a2
         if n_params(0) eq 4 then x0=a3 else x0=indgen(n_elements(y0))
         x1=x0 & x2=x0
         endelse
      end
   (n_params(0) eq 5) and (ixy lt 3): begin
      if ixy eq 1 then begin 
         x0=a1 & x1=a2 & x2=a3
         y0=a4 & y1=a4 & y2=a4
         endif else begin
         y0=a1 & y1=a2 & y2=a3
         x0=a4 & x1=a4 & x2=a4
         endelse
      end
   (n_params(0) eq 5) and (ixy eq 3): begin
      x0=a1 & x1=a1-a2 & x2=a1+a2
      y0=a3 & y1=a3-a4 & y2=a3+a4
      end
   n_params(0) eq 7 : begin
      ixy=3
      x0=a1 & x1=a2 & x2=a3
      y0=a4 & y1=a5 & y2=a6
      end
   else: begin
      print,' Invalid input'
      return
      end
   endcase
;
ix=ixy and 1
iy=ixy and 2
if !y.type eq 1 then y1=y1>10^(!y.crange(0))
;
NST=N_ELEMENTS(X0)
ny=n_elements(y)
if not keyword_set(color) then color=!p.color
if nst gt ny then begin
   if n_elements(y0) gt 0 then y0=[y0,replicate(0,nst-ny)]
   if n_elements(y1) gt 0 then y1=[y1,replicate(0,nst-ny)]
   if n_elements(y2) gt 0 then y2=[y2,replicate(0,nst-ny)]
   endif
FOR I=0L,NST-1L DO BEGIN
   if iy gt 0 then begin
      x=[x0(i),x0(i)]
      y=[y1(i),y2(i)]
      oplot,x,y,psym=0,color=color
      endif
   if ix gt 0 then begin
      x=[x1(i),x2(i)]
;      x=[x1(i)>!x.crange(0),x2(i)<!x.crange(1)]
      y=[y0(i),y0(i)]
      oplot,x,y,psym=0,color=color
      endif
   ENDFOR
RETURN
END