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; } }