public void OnEndCrop() { NewCropType Crop = new NewCropType(); Crop.crop_type = CropType; Crop.sender = Name; if (CropEnding != null) { CropEnding.Invoke(Crop); } // Keep track of some variables for reporting. Biomass AboveGroundBiomass = new Biomass(AboveGround); Biomass BelowGroundBiomass = new Biomass(BelowGround); // Call each organ's OnHarvest. They fill a BiomassRemoved structure. We then publish a // BiomassRemoved event. BiomassRemovedType BiomassRemovedData = new BiomassRemovedType(); foreach (Organ1 Organ in Organ1s) { Organ.OnEndCrop(BiomassRemovedData); } BiomassRemovedData.crop_type = CropType; BiomassRemoved.Invoke(BiomassRemovedData); Console.WriteLine(" Organic matter from crop:- Tops to surface residue Roots to soil FOM"); Console.WriteLine(string.Format(" DM (kg/ha) = {0,21:F1}{1,24:F1}", AboveGroundBiomass.Wt, BelowGroundBiomass.Wt)); Console.WriteLine(string.Format(" N (kg/ha) = {0,22:F2}{1,24:F2}", AboveGroundBiomass.N, BelowGroundBiomass.N)); //Console.WriteLine(string.Format(" P (kg/ha) = {0,22:F2}{1,24:F2}", // AboveGroundBiomass.P, BelowGroundBiomass.P)); }
public void OnEndCrop() { NewCropType Crop = new NewCropType(); Crop.crop_type = CropType; Crop.sender = Name; if (CropEnding != null) { CropEnding.Invoke(Crop); } BiomassRemovedType BiomassRemovedData = new BiomassRemovedType(); BiomassRemovedData.crop_type = CropType; BiomassRemovedData.dm_type = new string[Organs.Count]; BiomassRemovedData.dlt_crop_dm = new float[Organs.Count]; BiomassRemovedData.dlt_dm_n = new float[Organs.Count]; BiomassRemovedData.dlt_dm_p = new float[Organs.Count]; BiomassRemovedData.fraction_to_residue = new float[Organs.Count]; int i = 0; foreach (Organ O in Organs) { if (O is AboveGround) { BiomassRemovedData.dm_type[i] = O.Name; BiomassRemovedData.dlt_crop_dm[i] = (float)(O.Live.Wt + O.Dead.Wt) * 10f; BiomassRemovedData.dlt_dm_n[i] = (float)(O.Live.N + O.Dead.N) * 10f; BiomassRemovedData.dlt_dm_p[i] = 0f; BiomassRemovedData.fraction_to_residue[i] = 1f; } else { BiomassRemovedData.dm_type[i] = O.Name; BiomassRemovedData.dlt_crop_dm[i] = 0f; BiomassRemovedData.dlt_dm_n[i] = 0f; BiomassRemovedData.dlt_dm_p[i] = 0f; BiomassRemovedData.fraction_to_residue[i] = 0f; } i++; } BiomassRemoved.Invoke(BiomassRemovedData); // tell all our children about sow foreach (Organ Child in Organs) { Child.OnEndCrop(); } }