示例#1
0
        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);
            }
        }
示例#2
0
        //---------------------------------------------------------------------
        /// <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]);
        }