public void BiomassSpinUp(List <Landis.Library.AgeOnlyCohorts.ICohort> ageCohorts, ActiveSite site) { if (ageCohorts.Count == 0) { return; } System.DateTime SpinUpDate; // OLD: SpinUpDate = PlugIn.StartDate.AddYears(-(ageCohorts[0].Age) + ((successionTimestep == 1) ? -1 : 0)); SpinUpDate = PlugIn.StartDate.AddYears(-(ageCohorts[0].Age)); while (SpinUpDate.CompareTo(PlugIn.StartDate) < 0) { // Add those cohorts that were born at the current year foreach (Library.AgeOnlyCohorts.ICohort ageonlycohort in ageCohorts) { if (PlugIn.StartDate.Year - SpinUpDate.Year == ageonlycohort.Age) { Cohort cohort = new Cohort(ageonlycohort.Species, 1, ConstantParameters.InitialFol, 0, ConstantParameters.InitialWood, ConstantParameters.InitialFol, ConstantParameters.InitialRoot, SpinUpDate.Year); AddNewCohort(cohort, PlugIn.TStep); if (siteoutput != null) { CohortOutput.WriteHeader(site, cohort); } } } GrowCohorts(SpinUpDate, SpinUpDate.AddYears(1), false); SpinUpDate = SpinUpDate.AddYears(1); } }
//--------------------------------------------------------------------- /// <summary> /// Grows all cohorts at a site for a specified number of years. The /// dead pools at the site also decompose for the given time period. /// </summary> public void AddNewCohort(ISpecies species, ActiveSite site) { PlugIn.NewCohorts[site][species]++; Cohort cohort = new Cohort(species, 1, ConstantParameters.InitialFol, 0, 0, 0, 0, year, false); CohortOutput.WriteHeader(site, cohort); PlugIn.Cohorts[site].AddNewCohort(cohort); }
public void AddNewCohort(ISpecies species, ActiveSite site) { //System.Console.WriteLine("AddNewCohort " + site + " " + species.Name); siteconditions[site].NewCohorts[species]++; Cohort cohort = new Cohort(species, 1, ConstantParameters.InitialFol, 0, ConstantParameters.InitialWood, 0, ConstantParameters.InitialRoot, year); siteconditions[site].Establishment.Establishments[species]++; if (HasSiteOutput[site] == true) { CohortOutput.WriteHeader(site, cohort); } siteconditions[site].AddNewCohort(cohort, PlugIn.TStep); }
//--------------------------------------------------------------------- /// <summary> /// Makes the set of biomass cohorts at a site based on the age cohorts /// at the site, using a specified method for computing a cohort's /// initial biomass. /// </summary> /// <param name="ageCohorts"> /// A sorted list of age cohorts, from oldest to youngest. /// </param> /// <param name="site"> /// Site where cohorts are located. /// </param> /// <param name="initialBiomassMethod"> /// The method for computing the initial biomass for a new cohort. /// </param> public static ISiteCohorts MakeBiomassCohorts(List <Landis.Library.AgeOnlyCohorts.ICohort> ageCohorts, ActiveSite site) { PlugIn.Cohorts[site] = new Library.BiomassCohortsPnET.SiteCohorts(); Hydrology.Initialize(site); Hydrology.AnnualTranspiration[site] = 0; CanopyBiomass.CanopyLAI[site] = 0; if (ageCohorts.Count == 0) { return(PlugIn.Cohorts[site]); } System.DateTime SpinUpDate = PlugIn.StartDate.AddYears(-(ageCohorts[0].Age) + ((successionTimestep == 1) ? -1 : 0)); while (SpinUpDate.CompareTo(PlugIn.StartDate) < 0) { CanopyBiomass.SubCanopyPAR[site] = Static.PAR0[SpinUpDate]; // Add those cohorts that were born at the current year foreach (Library.AgeOnlyCohorts.ICohort ageonlycohort in ageCohorts) { if (PlugIn.StartDate.Year - SpinUpDate.Year == ageonlycohort.Age) { Cohort cohort = new Cohort(ageonlycohort.Species, 1, ConstantParameters.InitialFol, 0, 0, 0, 0, SpinUpDate.Year, true); PlugIn.Cohorts[site].AddNewCohort(cohort); CohortOutput.WriteHeader(site, cohort); SiteOutput.WriteHeader(site); } } PlugIn.GrowCohorts(site, SpinUpDate, SpinUpDate.AddYears(1), false); SpinUpDate = SpinUpDate.AddYears(1); } return(PlugIn.Cohorts[site]); }