Eliminated sequential search.
Added commented (and tested) block for initializing a single grain and running it.
Set up optimization function to extend life and then maximize seed yield.
Moved includes from random.hpp to random.cpp.
Eliminated unnecessary includes
Switched function pointers to std::functional for improved flexibility and readability
Including the environment as part of grain_system introduced a modularity issue.
I have separated the environment and now make it accessible to grain_system via function pointers that are set during the construction of the class.
The environment function pointers Esun and Erain are also accessible as public variables, allowing dynamic changing of the environment during run-time.
Growth should not occur during the winter, so I've added a check for "(Esun(t)>0)" which determines whether growth occurs.
Updated debug target
Separated the discrete_event_queue into its own class called calendar_queue.
Reworked parts of the program dependent on discrete_event_queue.
Added pre-processor directives to handle possibility that we are not using OpenMP