{Clear the screen and display a title} display_title(+++ Inverse Position Problems +++) {Set default values for first pass} if (s1=.) {First ask for the controlling parameters} set_string(s1,10) ask_for_string(Maximum step size [days],s1) set_maximum_step(s1) set_string(s1,100) ask_for_string(Maximum number of steps in the search,s1) set_number_of_iterations(s1) set_string(s1,1e-6) ask_for_string(Tolerance,s1) set_tolerance(s1) new_line write_string(Allowed coordinate types are true, apparent, and topocentric) new_line set_string(s1,true) ask_for_string(Type of coordinates to be used,s1) set_coordinates_type(s1) new_line {Now set the defaults for the find_when command} set_string(s1,Sun) set_string(s2,hour angle) set_string(s3, ) end_if {Get the first argument} write_string(Valid first arguments are:) new_line write_string(--------------------------) new_line new_line write_string(Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune,) new_line write_string(Elliptical, Parabolic, or name of body with current RA and Dec) new_line new_line ask_for_string(First argument [choose one of the above],s1) {Get coordinates if not a main body: added after printing book!} if (s1!Sun) if (s1!Moon) if (s1!Mercury) if (s1!Venus) if (s1!Mars) if (s1!Jupiter) if (s1!Saturn) if (s1!Uranus) if (s1!Neptune) if (s1!parabolic) if (s1!elliptical) ask_for_coordinates(r) end_if end_if end_if end_if end_if end_if end_if end_if end_if end_if end_if {Get the second argument} new_line write_string(Valid second arguments are:) new_line write_string(---------------------------) new_line new_line write_string(Hour angle, Right ascension, Declination, Azimuth, Altitude,) new_line write_string(Ecliptic longitude, Ecliptic latitude, Galactic longitude,) new_line write_string(Galactic latitude, conjunction in el, conjunction in ra,) new_line write_string(opposition in el, or opposition in ra) new_line new_line ask_for_string(Second argument [choose one of the above],s2) new_line {Discriminate between the two variants of the find_when command} set_character(c1,A) if (s2=conjunction in ra) set_character(c1,B) end_if if (s2=conjunction in el) set_character(c1,B) end_if if (s2=opposition in ra) set_character(c1,B) end_if if (s2=opposition in el) set_character(c1,B) end_if {Get the third argument according to find_when variant} if (c1=A) ask_for_string(Target value,s3) end_if if (c1=B) ask_for_string(Second object name [Sun/Moon/Venus etc.],s3) end_if {Perform the calculation, and display the result} new_line find_when(s1,s2,s3) {Another go?} new_line ask_for_repeat