/// <summary>
        /// Creates a base AusFarm simulation spec from the Farm4Prophet spec.
        /// </summary>
        /// <param name="paddock">The farm paddock</param>
        /// <returns>The created AusFarm spec</returns>
        private static AusFarmSpec CreateBaseSimulation(FarmSystem farm)
        {
            FarmSystem copyOfFarm = farm; 

            AusFarmSpec runnableSim = new AusFarmSpec();
            runnableSim.Name = "BaseSim";

            runnableSim.StartDate = DateTime.MaxValue;

            //===========================================================
            // May be appropriate here to decide which simulation template
            // will be used based on the requirement for crops and animals.
            //===========================================================
            runnableSim.SimTemplateType = farm.SimTemplateType;

            /* sample dates used to initialise the run times?
            if (farm.SoilWaterSampleDate < runnableSim.StartDate)
                runnableSim.StartDate = farm.SoilWaterSampleDate;
            if (farm.SoilNitrogenSampleDate != DateTime.MinValue &&
                farm.SoilNitrogenSampleDate < runnableSim.StartDate)
                runnableSim.StartDate = farm.SoilNitrogenSampleDate; */
            //if (sow != null && sow.Date < shortSimulation.StartDate)
            //    shortSimulation.StartDate = sow.Date;

            if (farm.StartSeasonDate < runnableSim.StartDate)
                runnableSim.StartDate = farm.StartSeasonDate;

            runnableSim.OnFarmSoilTypes.AddRange(copyOfFarm.OnFarmSoilTypes);
            runnableSim.OnFarmPaddocks.AddRange(copyOfFarm.OnFarmPaddocks);
            runnableSim.LiveStock = copyOfFarm.LiveStock;

            runnableSim.StationNumber = copyOfFarm.StationNumber;
            runnableSim.CroppingRegion = copyOfFarm.CroppingRegion;
            return runnableSim;
        }
        /// <summary>
        /// Creates a base AusFarm simulation spec from the Farm4Prophet spec.
        /// </summary>
        /// <param name="paddock">The farm paddock</param>
        /// <returns>The created AusFarm spec</returns>
        private static AusFarmSpec CreateBaseSimulation(FarmSystem farm)
        {
            FarmSystem copyOfFarm = farm;

            AusFarmSpec runnableSim = new AusFarmSpec();

            runnableSim.Name = "BaseSim";

            runnableSim.StartDate = DateTime.MaxValue;

            //===========================================================
            // May be appropriate here to decide which simulation template
            // will be used based on the requirement for crops and animals.
            //===========================================================
            runnableSim.SimTemplateType = farm.SimTemplateType;

            /* sample dates used to initialise the run times?
             * if (farm.SoilWaterSampleDate < runnableSim.StartDate)
             *  runnableSim.StartDate = farm.SoilWaterSampleDate;
             * if (farm.SoilNitrogenSampleDate != DateTime.MinValue &&
             *  farm.SoilNitrogenSampleDate < runnableSim.StartDate)
             *  runnableSim.StartDate = farm.SoilNitrogenSampleDate; */
            //if (sow != null && sow.Date < shortSimulation.StartDate)
            //    shortSimulation.StartDate = sow.Date;

            if (farm.StartSeasonDate < runnableSim.StartDate)
            {
                runnableSim.StartDate = farm.StartSeasonDate;
            }

            runnableSim.OnFarmSoilTypes.AddRange(copyOfFarm.OnFarmSoilTypes);
            runnableSim.OnFarmPaddocks.AddRange(copyOfFarm.OnFarmPaddocks);
            runnableSim.LiveStock = copyOfFarm.LiveStock;

            runnableSim.StationNumber  = copyOfFarm.StationNumber;
            runnableSim.CroppingRegion = copyOfFarm.CroppingRegion;
            return(runnableSim);
        }