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