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 |
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(3) | :: | r |
position of targ w.r.t. obs [km] 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 :: get_r => get_r_from_spice_ephemeris procedure,public :: initialize => initialize_spice_ephemeris procedure,public :: close => close_spice_ephemeris end type spice_ephemeris