public void CalculateSummaryOutputs(HowLeakyEngine Sim, _CustomHowLeakyEngine_VegModule crop)
        {
            double denom = crop.PlantingCount;

            AvgCropRainfall            = MathTools.Divide(SumCropRainfall, denom);
            AvgCropIrrigation          = MathTools.Divide(SumCropIrrigation, denom);
            AvgCropRunoff              = MathTools.Divide(SumCropRunoff, denom);
            CropSoilEvaporation        = MathTools.Divide(SumCropSoilEvaporation, denom);
            CropTranspiration          = MathTools.Divide(SumCropTranspiration, denom);
            AvgCropEvapoTranspiration  = MathTools.Divide(SumCropEvapotranspiration, denom);
            AvgCropOverflow            = MathTools.Divide(SumCropOverflow, denom);
            AvgCropDrainage            = MathTools.Divide(SumCropDrainage, denom);
            AvgCropLateralFlow         = MathTools.Divide(SumCropLateralFlow, denom);
            AvgCropSoilErrosion        = MathTools.Divide(SumCropSoilErosion, denom);
            AnnualCropSedimentDelivery = MathTools.Divide(SumCropSoilErosion, denom) * Sim.SoilModule.InputModel.SedDelivRatio;
        }
 public void UpdateCropWaterBalance(HowLeakyEngine Sim, _CustomHowLeakyEngine_VegModule crop)
 {
     try
     {
         if (crop.ExistsInTheGround)
         {
             SumCropRainfall          += Sim.ClimateModule.Rain;
             SumCropIrrigation        += Sim.SoilModule.Irrigation;
             SumCropRunoff            += Sim.SoilModule.Runoff;
             SumCropSoilEvaporation   += Sim.SoilModule.SoilEvap;
             SumCropTranspiration     += crop.TotalTranspiration;
             SumCropEvapotranspiration = SumCropSoilEvaporation + SumCropTranspiration;
             SumCropOverflow          += Sim.SoilModule.Overflow;
             SumCropDrainage          += Sim.SoilModule.DeepDrainage;
             SumCropLateralFlow       += Sim.SoilModule.LateralFlow;
             SumCropSoilErosion       += Sim.SoilModule.HillSlopeErosion;
         }
     }
     catch (Exception e)
     {
         throw (new Exception(e.Message));
     }
 }
        public void UpdateCropSummary(HowLeakyEngine Sim, _CustomHowLeakyEngine_VegModule crop)
        {
            double numyears = (double)(Sim.NumberOfDaysInSimulation / 365.0);

            //TODO: Should this be a double
            if (!MathTools.DoublesAreEqual(crop.HarvestCount, 0))
            {
                YieldPerHarvest = crop.CumulativeYield / (double)crop.HarvestCount;
            }
            else
            {
                YieldPerHarvest = 0;
            }
            YieldPerYear = crop.CumulativeYield / numyears;

            if (!MathTools.DoublesAreEqual(crop.PlantingCount, 0))
            {
                CropsHarvestedDivCropsPlanted = crop.HarvestCount / (double)crop.PlantingCount * 100.0;
                YieldPerPlant = crop.CumulativeYield / (double)crop.PlantingCount;
            }
            else
            {
                CropsHarvestedDivCropsPlanted = 0;
                YieldPerPlant = 0;
            }
            if (!MathTools.DoublesAreEqual(crop.AccumulatedTranspiration, 0))
            {
                YieldDivTranspir      = crop.CumulativeYield / crop.AccumulatedTranspiration;
                ResidueCovDivTranspir = crop.AccumulatedResidue / crop.AccumulatedTranspiration;
            }
            else
            {
                YieldDivTranspir      = 0;
                ResidueCovDivTranspir = 0;
            }
        }