orbit_check Subroutine

private pure subroutine orbit_check(ecc, inc, circular, equatorial)

Check the orbit for singularities.

Arguments

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

eccentricity

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

inclination [rad]

logical, intent(out) :: circular

is the orbit circular?

logical, intent(out) :: equatorial

is the orbit equatorial?


Called by

proc~~orbit_check~~CalledByGraph proc~orbit_check orbital_mechanics_module::orbit_check proc~orbital_elements_to_rv orbital_mechanics_module::orbital_elements_to_rv proc~orbital_elements_to_rv->proc~orbit_check proc~rv_to_orbital_elements orbital_mechanics_module::rv_to_orbital_elements proc~rv_to_orbital_elements->proc~orbit_check proc~rk_test_variable_step rk_module_variable_step::rk_test_variable_step proc~rk_test_variable_step->proc~orbital_elements_to_rv

Source Code

    pure subroutine orbit_check(ecc,inc,circular,equatorial)

    implicit none

    real(wp),intent(in) :: ecc        !! eccentricity
    real(wp),intent(in) :: inc        !! inclination [rad]
    logical,intent(out) :: circular   !! is the orbit circular?
    logical,intent(out) :: equatorial !! is the orbit equatorial?

    real(wp),parameter :: tol = 1.0e-10_wp !! tolerance for circular & equatorial checks

    circular   = ecc < tol
    equatorial = (one - abs(cos(inc))) < tol  ! 0 or 180 deg

    end subroutine orbit_check