+/**
+ * Structure to represent options passed to the program.
+ */
+typedef struct
+{
+ const char * input; // initial body field
+ const char * output; // file to write final positions / velocities of bodies to
+ const char * program; // program name
+ unsigned num_threads; // number of worker threads to spawn (must be greater than 1 for any to be spawned)
+ unsigned nested_threads; // number of threads to nest computations with (must be greater than 1 for any to be spawned)
+ unsigned num_steps; // number of steps to run before stopping (run indefinately if equal to zero)
+ unsigned timeout; // number of seconds to run before stopping (run indefinately if equal to zero)
+ bool draw_graphics; // whether or not to actually draw graphics
+ bool pedantic_graphics; // whether the graphics thread will synchronise with the computation thread (true) or just draw as fast as possible (false)
+ bool print_positions; // print positions of bodies to stdout on every step
+ unsigned verbosity; // print statistics every number of steps indicated by this variable
+ clock_t start_clock; // clock cycles done when simulation starts
+ struct timeval start_time; // time at which simulation starts
+} Options;
+
+void Body_Print(Body * a, FILE * out); //Print body a