function get_rb0p, item, radius=radius, b0angle=b0angle, pangle=pangle, $
  old=old, quiet=quiet, deg=deg,pb0r=_pb0r,_extra=extra


if ~exist(item) then begin
 pr_syntax,'output=get_rb0p(item, deg=deg, b0=b0, p=p, old=old, quiet=quiet,deg=deg)'
 return,[-1.d,-1.d,-1.d]
endif

;-- old bypass

if keyword_set(old) then $
 return,get_rb0p_old(item, radius=radius, b0angle=b0angle, pangle=pangle, deg=deg, pb0r=_pb0r)

message0= ' Now using pb0r as a reference instead of SUN. '
message1= ['  The results will differ by < 0.1%.  ',$
           'To get the old values call get_rb0p with /old. To remove this message use /quiet.']

if ~keyword_set(quiet) then begin
  message,/cont,message0
  print, message1
endif

;-- check for valid time input

error=0
if is_struct(item) then if have_tag(item,'date_obs') then time=item.date_obs
if ~exist(time) then time=anytim(item,/ecs,error=error)
if error eq 1 then return,[-1.d,-1.d,-1.d]

dradeg = 180D0/!dpi

ntim=n_elements(time)
out = dblarr(3,ntim)
for ii = 0, ntim-1 do begin
 output=pb0r(time[ii],/arcsec)
 if ~keyword_set(deg) then output[[0,1]]=output[[0,1]]/dradeg
 out[*,ii]=output
endfor

if ~keyword_set(_pb0r) then begin
 out=out[[2,1,0],*]
 case 1 of
  keyword_set(radius): out=out[0,*]
  keyword_set(b0angle): out=out[1,*]
  keyword_set(pangle): out=out[2,*]
  else:do_nothing=1
 endcase
endif

out=(n_elements(out) gt 1)? reform(out) : out[0]
return,out

end