make this an extension of the jpl_ephemeris,
since it is also needed in tranformations.
also, has the extra feature of a get_r
method,
since we don't need velocity for the gravity calculation.
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 |
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,extends(jpl_ephemeris),public :: jpl_ephemeris_splined !! make this an extension of the [[jpl_ephemeris]], !! since it is also needed in tranformations. !! also, has the extra feature of a `get_r` method, !! since we don't need velocity for the gravity calculation. 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 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 end type jpl_ephemeris_splined