cain.pro 605 Bytes
pro cain, Time, Orbit

  FillValue = -1.e31
  Number = N_elements(Time)
  Bmso = fltarr(3)
  Rm = 3393.0;

  num31 = where(Orbit[0,*] ne FillValue, Index31)
  if (Index31 le 0) then return

  Time = Time[num31];
  Orbit = Orbit[*,num31]*Rm;
  err = call_external(!PROJLIB + '/idl_cain.so', 'CainSetUp');

  for i = 0L, Index31-1L do begin
          julday = doubl2jd(Time[i]);
          err = call_external(!PROJLIB + '/idl_cain.so', 'CainField', julday, Orbit[*,i], Bmso);
          if (Bmso[0] eq 0.0) then Bmso(*) = FillValue; 
          Orbit[*,i] =  Bmso;                
  endfor

 return
end