pro fix_spin_time,fspin,ftime
get_frame_info,data=frame,/no_tplot
w = where(frame.time gt time_double('90-1-1') and frame.spin gt 0)
frame = frame[w]
ftime = frame.time
fspin = frame.fspin
dspin = (fspin-shift(fspin,1))
dspin[0] = dspin[1]
dtime = (ftime-shift(ftime,1))
dtime[0] = dtime[1]
spin_period = dtime/dspin
good = spin_period gt 2.3 and spin_period lt 3.5
bad = good eq 0
w = where((bad and shift(bad,-1)) eq 0)
ftime = frame[w].time
fspin = frame[w].fspin
dspin = (fspin-shift(fspin,1))
dspin[0] = dspin[1]
dtime = (ftime-shift(ftime,1))
dtime[0] = dtime[1]
spin_period = dtime/dspin
good = spin_period gt 2.3 and spin_period lt 3.5
w = where(good)
period = average(spin_period[w])
w = where(dspin lt 0,c)
ns = n_elements(fspin)
msbyte = replicate(0l,ns)
for i=0,c-1 do $
msbyte[w[i]:*] = msbyte[w[i]:*] + round(-dspin[w[i]] + (dtime/period)[w[i]])
fspin = fspin+msbyte
t0 = average(minmax(ftime))
y= fspin
x= ftime-t0
nsm=31
correlate_vect,x,y,a=a,b=b,r=r , nsm
a[0:nsm/2] = a[nsm/2+1] & a[ns-nsm/2:*] = a[ns-nsm/2-1]
b[0:nsm/2] = b[nsm/2+1] & b[ns-nsm/2:*] = b[ns-nsm/2-1]
s = a+b*(ftime-t0)
ds = s-fspin
if 0 then begin
!p.multi=[0,1,3]
plot,a,/ynoz
plot,1/b,/ynoz
plot,ds,ps=3
!p.multi=0
endif
fspin = fspin + (-1/32. > ds < 1/32.) + 1/32.
if 0 then begin
y = fspin
x= ftime-t0
correlate_vect,x,y,a=a,b=b,r=r , nsm
a[0:nsm/2] = a[nsm/2+1] & a[ns-nsm/2:*] = a[ns-nsm/2-1]
b[0:nsm/2] = b[nsm/2+1] & b[ns-nsm/2:*] = b[ns-nsm/2-1]
s = a+b*(ftime-t0)
ds = s-fspin
!p.multi=[0,1,3]
plot,a,/ynoz
plot,1/b,/ynoz
plot,ds,ps=3
!p.multi=0
endif
end