; $Id: pos.pro,v 1.1 1997/11/14 17:26:52 shyong Exp $ ; Demonstrate use the call_external on HP with SPICE library ; ; ispiceinit: load the kernels ; s = call_external('spice.so', 'ispiceinit', kfile); ; input: ; string kfile (kernels file) ; ; inmetet: MET to ET conversion ; s = call_external('spice.so', 'inmetet', sc, met, num, et); ; input: ; long sc (spacecraft id) ; double array met ; int num (number of elements in met) ; output: ; double array et ; ; inposvel: get ephemeris ; s = call_external('spice.so', 'inposvel', target, et, num, states); ; input: ; long target ; double array et ; int num (number of elements in et) ; output: ; double matrix states (target's ephemeris) ; ; inmetquat: get attitude ; s = call_external('spice.so', 'inmetquat', inst, met, num, tol, quat, av); ; input: ; long inst (instrument's id) ; double array met ; int num (number of elements in met) ; double tol (tolerance) ; double matrix quat (quaternion) ; double matrix av (angular rate) pro pos ; load kernels s=call_external('spice.so', 'ispiceinit', 'kernels'); near = -93L; nearinst = -93000L; moon = 301L; earth = 399L; sun = 10L; eros = 2000433L; mathilde = 2000253L; met = [42836264D0, 42836268D0]; et = MAKE_ARRAY(1, 2, /double); s=call_external('spice.so', 'inmetet', near, met, 2, et); print, 'ET=', et; states = MAKE_ARRAY(6, 2, /double); quats = MAKE_ARRAY(4, 2, /double); avs = MAKE_ARRAY(3, 2, /double); s=call_external('spice.so', 'inposvel', near, et, 2, states) print, 'NEAR position/Velocity:'; print, states s=call_external('spice.so', 'inposvel', earth, et, 2, states) print, 'EARTH position/Velocity:'; print, states s=call_external('spice.so', 'inmetquat', nearinst, met, 2, 1.0D0, quats, avs); print, 'Quaternion:'; print, quats; print, 'Angular Velocity:'; print, avs; end