third_body_gravity_alt Subroutine

public subroutine third_body_gravity_alt(r, rb, mu, acc)

Third-body (pointmass) gravitational acceleration (alternate Battin formulation). See Equation 8.61 in Battin.

Arguments

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

satellite position vector [km]

real(kind=wp), intent(in), dimension(3) :: rb

third-body position vector [km]

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

third-body gravitational parameter [km^3/s^2]

real(kind=wp), intent(out), dimension(3) :: acc

gravity acceleration vector [km/s^2]


Source Code

    subroutine third_body_gravity_alt(r,rb,mu,acc)

    real(wp),dimension(3),intent(in)  :: r   !! satellite position vector [km]
    real(wp),dimension(3),intent(in)  :: rb  !! third-body position vector [km]
    real(wp),intent(in)               :: mu  !! third-body gravitational parameter [km^3/s^2]
    real(wp),dimension(3),intent(out) :: acc !! gravity acceleration vector [km/s^2]

    real(wp) :: rb2, q, f, tmp

    rb2  = dot_product(rb,rb)
    q    = dot_product(r,r-two*rb)/rb2
    tmp  = (one+q)**1.5_wp
    f    = q*(three+three*q+q*q)/(one+tmp)
    acc  = -mu*(r+f*rb)/tmp/rb2**1.5_wp

    end subroutine third_body_gravity_alt