make this an extension of the jpl_ephemeris, since it is also needed in tranformations.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| type(body_eph_interface), | public | :: | earth_eph_interface |
splined version of earth ephemeris |
|||
| type(body_eph_interface), | public | :: | sun_eph_interface |
splined version of sun ephemeris |
|||
| type(body_eph_interface), | public | :: | ssb_eph_interface |
splined version of ssb ephemeris |
|||
| type(body_eph_interface), | public | :: | jupiter_eph_interface |
splined version of jupiter ephemeris |
the ephemeris must be initialized before this is called
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(jpl_ephemeris_splined), | intent(inout) | :: | me | |||
| character(len=*), | intent(in) | :: | filename |
ephemeris file name |
||
| integer, | intent(in), | optional | :: | ksize |
corresponding |
|
| logical, | intent(in), | optional | :: | km |
defining physical units of the output states.
|
|
| logical, | intent(in), | optional | :: | bary |
logical flag defining output center.
only the 9 planets are affected.
|
|
| logical, | intent(out) | :: | status_ok |
true if there were no problems. |
||
| real(kind=wp), | intent(in) | :: | et0 |
initial ephemeris time [sec] |
||
| real(kind=wp), | intent(in) | :: | dt |
ephemeris time step [sec] |
||
| real(kind=wp), | intent(in) | :: | etf |
final ephemeris time [sec] |
this is done once to initialize the global ephemeris vars
initialize the earth and sun ephemeris.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(jpl_ephemeris_splined), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | et0 |
initial ephemeris time [sec] |
||
| real(kind=wp), | intent(in) | :: | dt |
ephemeris time step [sec] |
||
| real(kind=wp), | intent(in) | :: | etf |
final ephemeris time [sec] |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(jpl_ephemeris_splined), | 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 |
r of targ w.r.t. obs [km] in ICRF frame |
|
| logical, | intent(out) | :: | status_ok |
true if there were no problems |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(jpl_ephemeris_splined), | 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 |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(jpl_ephemeris_splined), | intent(inout) | :: | me |
type,extends(jpl_ephemeris),public :: jpl_ephemeris_splined !! make this an extension of the [[jpl_ephemeris]], !! since it is also needed in tranformations. type(body_eph_interface) :: earth_eph_interface !! splined version of earth ephemeris type(body_eph_interface) :: sun_eph_interface !! splined version of sun ephemeris type(body_eph_interface) :: ssb_eph_interface !! splined version of ssb ephemeris type(body_eph_interface) :: jupiter_eph_interface !! splined version of jupiter ephemeris contains procedure,public :: initialize_splinded_ephemeris procedure :: initialize_globals !! this is done once to initialize the global ephemeris vars procedure,public :: get_r => get_r_splined procedure,public :: get_rv => get_rv_splined procedure,public :: destroy => destroy_jpl_ephemeris_splined end type jpl_ephemeris_splined