Main class for accessing the SPICE ephemeris system.
Note: SPICE is not object-oriented or threadsafe. So, while this class provides an object-oriented like interface to SPICE, it should really be treated as a singleton.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
character(len=:), | public, | dimension(:), allocatable | :: | kernels |
the list of kernels |
Interface for the ephemeris_module.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(spice_ephemeris), | intent(inout) | :: | me | |||
real(kind=wp), | intent(in) | :: | et |
ephemeris time [sec] |
||
type(celestial_body), | intent(in) | :: | targ |
target body |
||
type(celestial_body), | intent(in) | :: | obs |
observer body |
||
real(kind=wp), | intent(out), | dimension(6) | :: | rv |
state of targ w.r.t. obs [km,km/s] in ICRF frame |
|
logical, | intent(out) | :: | status_ok |
true if there were no problems |
Initialize a SPICE ephemeris by loading the specified kernels.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(spice_ephemeris), | intent(inout) | :: | me | |||
character(len=*), | intent(in), | dimension(:) | :: | kernels |
list of kernels to load |
Close the SPICE ephemeris and unload all the kernels.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(spice_ephemeris), | intent(inout) | :: | me |
type,extends(ephemeris_class),public :: spice_ephemeris !! Main class for accessing the SPICE ephemeris system. !! !! Note: SPICE is not object-oriented or threadsafe. So, !! while this class provides an object-oriented like interface !! to SPICE, it should really be treated as a singleton. character(len=:),dimension(:),allocatable :: kernels !! the list of kernels contains procedure,public :: get_rv => get_rv_from_spice_ephemeris procedure,public :: initialize => initialize_spice_ephemeris procedure,public :: close => close_spice_ephemeris end type spice_ephemeris