/**

@page LEVEL3 Scheduler Requirements

@section LEVEL4 Simulation Time
-# %Trick shall track simulation elapsed time by an integer count of tics/second
   [ @anchor r_exec_time_0 r_exec_time_0 ]
-# %Trick shall initialize simulation elapsed time after all initialization class jobs have completed.
   [ @anchor r_exec_time_1 r_exec_time_1 ]
-# %Trick shall increment simulation elapsed time to the next lowest job call time greater than
   the current simulation time after all jobs at the current simulation time
   have completed.
   [ @anchor r_exec_time_2 r_exec_time_2 ]

@section LEVEL4 Modes
-# %Trick shall provide an initialization mode
   [ @anchor r_exec_mode_0 r_exec_mode_0 ]
-# %Trick shall provide a run mode
   [ @anchor r_exec_mode_1 r_exec_mode_1 ]
-# %Trick shall provide a freeze mode
   [ @anchor r_exec_mode_2 r_exec_mode_2 ]
-# %Trick shall provide an exit mode
   [ @anchor r_exec_mode_3 r_exec_mode_3 ]
-# %Trick shall provide a mode command to transition to Freeze
   [ @anchor r_exec_mode_4 r_exec_mode_4 ]
-# %Trick shall provide a mode command to transition to Run
   [ @anchor r_exec_mode_5 r_exec_mode_5 ]
-# %Trick shall provide a mode command to transition to Shutdown
   [ @anchor r_exec_mode_6 r_exec_mode_6 ]

@section LEVEL4 Jobs
-# %Trick shall provide a method for adding simulation objects to the
   scheduler prior to execution.
   [ @anchor r_exec_jobs_2 r_exec_jobs_2 ]
-# %Trick shall order jobs by job_class, then phase, then sim_object id, then job_id
   [ @anchor r_exec_jobs_3 r_exec_jobs_3 ]

@section LEVEL4 Periodic Jobs 
-# %Trick shall execute periodic scheduled jobs during simulation
   run mode (all scheduled types)
   [ @anchor r_exec_periodic_0 r_exec_periodic_0 ]
-# %Trick shall execute periodic freeze jobs during simulation
   freeze mode (freeze)
   [ @anchor r_exec_periodic_1 r_exec_periodic_1 ]
-# %Trick shall execute periodic scheduled jobs during simulation run mode at the end 
   of a settable software_frame  (end_of_frame)
   [ @anchor r_exec_periodic_2 r_exec_periodic_2 ]
-# %Trick shall assign the initial call time for a periodic job to the 
   current simulation time + job offset. 
   [ @anchor r_exec_periodic_3 r_exec_periodic_3 ]
-# %Trick shall reschedule subsequent job call times for a periodic job to the
   current simulation time + job cycle. 
   [ @anchor r_exec_periodic_4 r_exec_periodic_4 ]

@section LEVEL4 Discrete Jobs
-# %Trick shall execute discrete job execution scheduling on simulation startup
   (default_data)
   [ @anchor r_exec_discrete_0 r_exec_discrete_0 ]
-# %Trick shall execute discrete job execution scheduling during simulation
   initialization (initialization)
   [ @anchor r_exec_discrete_1 r_exec_discrete_1 ]
-# %Trick shall execute of discrete job execution scheduling upon entering simulation
   freeze (freeze_init)
   [ @anchor r_exec_discrete_2 r_exec_discrete_2 ]
-# %Trick shall execute of discrete job execution scheduling upon exiting simulation
   freeze (unfreeze)
   [ @anchor r_exec_discrete_3 r_exec_discrete_3 ]
-# %Trick shall execute discrete job execution scheduling during simulation
   termination (shutdown)
   [ @anchor r_exec_discrete_4 r_exec_discrete_4 ]

@section LEVEL4 Instrumentation Jobs 
-# %Trick shall provide a method for inserting a job before each initialization
   and each scheduled job within a simulation.
   [ @anchor r_exec_instrument_0 r_exec_instrument_0 ]
-# %Trick shall provide a method for inserting a job before a single initialization
   or scheduled job within a simulation.
   [ @anchor r_exec_instrument_1 r_exec_instrument_1 ]
-# %Trick shall provide a method for inserting a job after each initialization
   and each scheduled job within a simulation.
   [ @anchor r_exec_instrument_2 r_exec_instrument_2 ]
-# %Trick shall provide a method for inserting a job after a single initialization
   or scheduled job within a simulation.
   [ @anchor r_exec_instrument_3 r_exec_instrument_3 ]
-# %Trick shall provide a method for removing instrumentation job(s).
   [ @anchor r_exec_instrument_4 r_exec_instrument_4 ]

@section LEVEL4 Threads
-# %Trick shall support single threaded execution during all modes of operation
   [ @anchor r_exec_thread_0 r_exec_thread_0 ]
-# %Trick shall support multiple threads of execution during run mode.
   [ @anchor r_exec_thread_1 r_exec_thread_1 ]
-# %Trick shall support child threads that synchronize execution with each time step of the parent thread
   (synchronous thread)
   [ @anchor r_exec_thread_2 r_exec_thread_2 ]
-# %Trick shall support child threads that does not synchronize execution with the parent thread.  Thread
   jobs are restarted at next available time step from the master thread.  (asynchronous thread) 
   [ @anchor r_exec_thread_3 r_exec_thread_3 ]
-# %Trick shall support child threads that does synchronizes execution with the parent thread at a specified
   interval. This interval may be greater than a time step in the parent thread (asynchronous must finish (AMF) thread) 
   [ @anchor r_exec_thread_4 r_exec_thread_4 ]
-# %Trick shall spawn enough threads to accomodate jobs listed within the S_define file
   [ @anchor r_exec_thread_5 r_exec_thread_5 ]
-# %Trick shall provide inter-thread job dependencies.  This ensures
   pre-requesite jobs are completed before current job execution.
   [ @anchor r_exec_thread_6 r_exec_thread_6 ]
-# %Trick shall terminate simulation execution if a child thread exits
   [ @anchor r_exec_thread_7 r_exec_thread_7 ]

@section LEVEL4 Signals
-# %Trick shall assign signal handlers to attempt a graceful shutdown of the
   simulation when the following signals occur: SIGINT, SIGTERM, SIGBUS, SIGSEGV, SIGFPE
   [ @anchor r_exec_signal_0 r_exec_signal_0 ]
-# %Trick shall assign signal handlers to handle the SIGCHLD signal
   [ @anchor r_exec_signal_1 r_exec_signal_1 ]
-# %Trick shall attempt to terminate the simulation gracefully when a
   SIGTERM, SIGBUS, or SIGSEGV signal is caught.  Program corruption at this point
   may be too great to complete this requirement, hence "attempt".
   [ @anchor r_exec_signal_2 r_exec_signal_2 ]
-# %Trick shall allow the user to assign the system default signal handlers for the signals
   SIGBUS, SIGSEGV, or SIGFPE signals.
   [ @anchor r_exec_signal_3 r_exec_signal_3 ]
 
*/

