pro segment_interp_n,segment,n,t_last,spinper
if (n LT segment.c1) then begin
spinper=360.0D/segment.b
nspins = segment.c1 - n
t_last = segment.t1 - nspins*spinper
endif else if (n GT segment.c2) then begin
bp = segment.b + 2.0D*segment.c*(segment.t2 - segment.t1)
nspins = n - segment.c2
spinper = 360.0D/bp
t_last = segment.t2 + spinper*nspins
endif else begin
nspins = n - segment.c1
phi = 360.0D*nspins
if (abs(segment.c) LT 1.0D-12) then begin
dt = phi/segment.b
endif else begin
b = segment.b
c = segment.c
dt = (-b + sqrt(b*b - 4.0D*c*(-phi)))/(2.0D*c)
end
bp = segment.b + 2.0D*segment.c*dt
spinper = 360.0D/bp
t_last = segment.t1 + dt
end
end