kepler_module Module

Kepler propagation routines.


Uses

  • module~~kepler_module~~UsesGraph module~kepler_module kepler_module iso_fortran_env iso_fortran_env module~kepler_module->iso_fortran_env module~kind_module kind_module module~kepler_module->module~kind_module module~numbers_module numbers_module module~kepler_module->module~numbers_module module~kind_module->iso_fortran_env module~numbers_module->module~kind_module

Used by

  • module~~kepler_module~~UsedByGraph module~kepler_module kepler_module module~fortran_astrodynamics_toolkit fortran_astrodynamics_toolkit module~fortran_astrodynamics_toolkit->module~kepler_module

Functions

private pure function kepe(e, m, ecc)

Elliptic Kepler's equation

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: e

eccentric anomaly

real(kind=wp), intent(in) :: m

mean anomaly

real(kind=wp), intent(in) :: ecc

eccentricity

Return Value real(kind=wp)

private pure function d_kepe(e, ecc)

Derivative of kepe w.r.t. e

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: e

eccentric anomaly

real(kind=wp), intent(in) :: ecc

eccentricity

Return Value real(kind=wp)

private pure function kepde(de, dm, sigma0, sqrta, a, r)

Elliptic Kepler's equation written in terms of the eccentric anomaly difference. See Battin, eqn 4.43.

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: de

eccentric anomaly difference

real(kind=wp), intent(in) :: dm

mean anomaly difference

real(kind=wp), intent(in) :: sigma0
real(kind=wp), intent(in) :: sqrta
real(kind=wp), intent(in) :: a
real(kind=wp), intent(in) :: r

Return Value real(kind=wp)

private pure function d_kepde(de, sigma0, sqrta, a, r)

Derivative of kepde w.r.t de.

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: de

eccentric anomaly difference

real(kind=wp), intent(in) :: sigma0
real(kind=wp), intent(in) :: sqrta
real(kind=wp), intent(in) :: a
real(kind=wp), intent(in) :: r

Return Value real(kind=wp)

private pure function kepdh(dh, dn, sigma0, sqrta, a, r)

Battin, eqn. 4.64.

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: dh

hyperbolic anomaly difference

real(kind=wp), intent(in) :: dn
real(kind=wp), intent(in) :: sigma0
real(kind=wp), intent(in) :: sqrta
real(kind=wp), intent(in) :: a
real(kind=wp), intent(in) :: r

Return Value real(kind=wp)

private pure function d_kepdh(dh, sigma0, sqrta, a, r)

Derivative of kepdh w.r.t dh.

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: dh

hyperbolic anomaly difference

real(kind=wp), intent(in) :: sigma0
real(kind=wp), intent(in) :: sqrta
real(kind=wp), intent(in) :: a
real(kind=wp), intent(in) :: r

Return Value real(kind=wp)

private pure function barker(r1, r2, mu)

Barker time of flight equation

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in), dimension(3) :: r1
real(kind=wp), intent(in), dimension(3) :: r2
real(kind=wp), intent(in) :: mu

Return Value real(kind=wp)

private pure function kepds(ds, dt, r0, vr0, alpha, mu)

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: ds

universal anomaly difference

real(kind=wp), intent(in) :: dt
real(kind=wp), intent(in) :: r0
real(kind=wp), intent(in) :: vr0
real(kind=wp), intent(in) :: alpha
real(kind=wp), intent(in) :: mu

Return Value real(kind=wp)

private pure function d_kepds(ds, r0, vr0, alpha, mu)

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: ds
real(kind=wp), intent(in) :: r0
real(kind=wp), intent(in) :: vr0
real(kind=wp), intent(in) :: alpha
real(kind=wp), intent(in) :: mu

Return Value real(kind=wp)

private pure function stumpff_s(z) result(s)

Stumpff function S(z)

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: z

Return Value real(kind=wp)

private pure function stumpff_c(z) result(c)

Stumpff function C(z)

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: z

Return Value real(kind=wp)


Subroutines

public subroutine kepler_classical(x0, dt, mu, xf)

Classical Kepler propagator for elliptical and hyperbolic orbits. Uses Lagrange formulations from Battin & Newton's method.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in), dimension(6) :: x0

initial position,velocity vector

real(kind=wp), intent(in) :: dt

propagation time

real(kind=wp), intent(in) :: mu

central body gravitational parameter

real(kind=wp), intent(out), dimension(6) :: xf

final position,velocity vector

public subroutine kepler_shepperd(mu, rv1, dt, rv2, istat)

Kepler propagation using Shepperd's method.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: mu

gravitational parameter

real(kind=wp), intent(in), dimension(6) :: rv1

initial position,velocity vector

real(kind=wp), intent(in) :: dt

time step

real(kind=wp), intent(out), dimension(6) :: rv2

final position,velocity vector

integer, intent(out), optional :: istat

status flag (if not present, warnings are printed): Linear combination of :

Read more…

public subroutine kepler_goodyear_stienon_klumpp(rv0, tau, mu, accy, rvf)

Kepler propagator based on the Goodyear code with modifications by Stienon and Klumpp.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in), dimension(6) :: rv0

state vector at reference time T0 [km,km/s]

real(kind=wp), intent(in) :: tau

Time interval T-T0 [sec]

real(kind=wp), intent(in) :: mu

Central body gravitational constant [km^3/s^2]

real(kind=wp), intent(in) :: accy

Fractional accuracy required [0->0.1]

real(kind=wp), intent(out), dimension(6) :: rvf

state vector at solution time T [km,km/s]