Various astrodynamics utilities.
Todo
Some of this should eventually be moved into the fortran astrodynamics toolkit
Compute the "sun fraction" using the circular cubic shadow model.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(jpl_ephemeris), | intent(inout) | :: | eph |
the ephemeris |
||
real(kind=wp), | intent(in) | :: | et |
observer ephemeris time (sec) |
||
real(kind=wp), | intent(in), | dimension(6) | :: | rv |
state of the spacecraft !! (j2000-moon frame) |
|
real(kind=wp), | intent(in) | :: | rbubble |
eclipse bubble [km]. see the reference. |
circular cubic sun frac value.
0 no eclipse,
convert from a j2000-moon frame to a j2000-ssb frame.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(jpl_ephemeris), | intent(inout) | :: | eph | |||
real(kind=wp), | intent(in) | :: | et |
ephemeris time (sec) |
||
real(kind=wp), | intent(in), | dimension(6) | :: | rv_moon |
j2000-moon state (km, km/s) |
|
real(kind=wp), | intent(out), | dimension(6) | :: | rv_ssb |
j2000-ssb state (km, km/s) |
ephemeris wrapper to just return position vector see also: ballistic_derivs
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(jpl_ephemeris), | intent(inout) | :: | eph | |||
real(kind=wp), | intent(in) | :: | et |
ephemeris time (sec) |
||
type(celestial_body), | intent(in) | :: | b_target |
target body |
||
type(celestial_body), | intent(in) | :: | b_obs |
observer body |
||
real(kind=wp), | intent(out), | dimension(3) | :: | r |
j2000 state (km, km/s) |
|
logical, | intent(out) | :: | status_ok |
true if no problems |
Return the position of a target body relative to an observer, corrected for light time and stellar aberration.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(jpl_ephemeris), | intent(inout) | :: | eph |
the ephemeris |
||
type(celestial_body), | intent(in) | :: | b_target |
target body |
||
real(kind=wp), | intent(in) | :: | et |
observer ephemeris time (sec) |
||
real(kind=wp), | intent(in), | dimension(6) | :: | rv_obs_ssb |
state of the observer (j2000 frame w.r.t. solar system barycenter) |
|
real(kind=wp), | intent(out), | dimension(3) | :: | r_target |
apparant state of the target (j2000 frame) Corrected for one-way light time and stellar aberration |
|
logical, | intent(out) | :: | status_ok |
true if no problems |
The "circular cubic" shadow model.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=wp), | intent(in), | dimension(3) | :: | rsun |
apparent position vector of sun wrt spacecraft [km] |
|
real(kind=wp), | intent(in) | :: | radsun |
radius of sun [km] |
||
real(kind=wp), | intent(in), | dimension(3) | :: | rplanet |
apparent position vector of eclipsing body wrt spacecraft [km] |
|
real(kind=wp), | intent(in) | :: | radplanet |
radius of the eclipsing body [km] |
||
real(kind=wp), | intent(out) | :: | sunfrac |
value of the function (>0 no eclipse, <0 eclipse, =0 on the shadow line) |
||
real(kind=wp), | intent(in), | optional | :: | rbubble |
eclipse bubble radius. if present, then |