Distance to Mars from Earth at a Given Epoch

SPICE Toolkit
Fortran
Working with SPICE Toolkit in WSL2.
Author

Winfred

Published

March 12, 2025

Computing the distance to Mars with Fortran.

program earth_mars_distance
    implicit none
    character(len=50) :: utc_time
    double precision :: et, state(6), lt, dist
    integer :: i
    logical :: file_exists

    call furnsh('kernels/naif0012.tls')
    call furnsh('kernels/de442.bsp')
    call furnsh('kernels/pck00010.tpc')

    utc_time = '2025-06-01T00:00:00'

    print *, "Kernels loaded, computing for time:", utc_time

    call str2et(utc_time, et)
    print *, "ET value:", et

    call spkezr('MARS BARYCENTER', et, 'J2000', 'LT+S', 'EARTH', state, lt)

    dist = sqrt(state(1)**2 + state(2)**2 + state(3)**2)

    print *, 'Earth-Mars Distance on ', utc_time
    print *, 'Distance (km): ', dist
    print *, 'Distance (AU): ', dist/149597870.7
    print *, 'Light Time (seconds): ', lt

end program earth_mars_distance

Output:

Kernelsloaded, computing for time:2025-06-01T00:00:00
ET value:   802008069.18490517
Earth-Mars Distance on 2025-06-01T00:00:00
Distance (km):    253597338.78914344
Distance (AU):    1.6951934903802872
Light Time (seconds):    845.90966857859860