Beispiel #1
0
        //---------------------------------------------------------------------

        /// <summary>
        /// Adds a new cohort for a particular species.
        /// </summary>
        public void AddNewCohort(ISpecies species,
                                 ushort initialBiomass)
        {
            if (isDebugEnabled)
            {
                log.DebugFormat("  add cohort: {0}, initial biomass = {1}; site biomass = {2}",
                                species.Name, initialBiomass, totalBiomass);
            }

            bool speciesPresent = false;

            for (int i = 0; i < cohorts.Count; i++)
            {
                SpeciesCohorts speciesCohorts = cohorts[i];
                if (speciesCohorts.Species == species)
                {
                    speciesCohorts.AddNewCohort(initialBiomass);
                    speciesPresent = true;
                    break;
                }
            }

            if (!speciesPresent)
            {
                cohorts.Add(new SpeciesCohorts(species, initialBiomass));
            }

            totalBiomass += initialBiomass;
        }
Beispiel #2
0
        //---------------------------------------------------------------------

        /// <summary>
        /// Initializes a new instance for a set of species cohorts.
        /// </summary>
        public OldToYoungIterator(SpeciesCohorts cohorts)
        {
            this.cohorts           = cohorts;
            this.nextIndex         = 0;
            this.currentCohortDied = false;
            MoveNext();
        }
        //---------------------------------------------------------------------

        /// <summary>
        /// Creates a copy of a species' cohorts.
        /// </summary>
        public SpeciesCohorts Clone()
        {
            SpeciesCohorts clone = new SpeciesCohorts(this.species);

            clone.cohortData      = new List <CohortData>(this.cohortData);
            clone.isMaturePresent = this.isMaturePresent;
            return(clone);
        }
Beispiel #4
0
        //---------------------------------------------------------------------

        /// <summary>
        /// Initializes a new instance for a set of species cohorts.
        /// </summary>
        public OldToYoungIterator(SpeciesCohorts cohorts)
        {
            this.cohorts          = cohorts;
            this.currentCohortAge = cohorts[0];
            this.index            = 0;
            this.nextIndex        = 0; // In case MoveNext is called before 1st call
                                       // to GrowCurrentCohort.
        }
        //---------------------------------------------------------------------

        private SpeciesCohorts GetCohorts(ISpecies species)
        {
            for (int i = 0; i < cohorts.Count; i++)
            {
                SpeciesCohorts speciesCohorts = cohorts[i];
                if (speciesCohorts.Species == species)
                {
                    return(speciesCohorts);
                }
            }
            return(null);
        }
        //---------------------------------------------------------------------

        public bool IsMaturePresent(ISpecies species)
        {
            for (int i = 0; i < cohorts.Count; i++)
            {
                SpeciesCohorts speciesCohorts = cohorts[i];
                if (speciesCohorts.Species == species)
                {
                    return(speciesCohorts.IsMaturePresent);
                }
            }
            return(false);
        }
Beispiel #7
0
        //---------------------------------------------------------------------

        public ISpeciesCohorts <ICohort> this[ISpecies species]
        {
            get {
                for (int i = 0; i < cohorts.Count; i++)
                {
                    SpeciesCohorts speciesCohorts = cohorts[i];
                    if (speciesCohorts.Species == species)
                    {
                        return(speciesCohorts);
                    }
                }
                return(null);
            }
        }
        //---------------------------------------------------------------------

        /// <summary>
        /// Adds a new cohort for a particular species.
        /// </summary>
        public void AddNewCohort(ISpecies species,
                                 ushort initialBiomass)
        {
            for (int i = 0; i < cohorts.Count; i++)
            {
                SpeciesCohorts speciesCohorts = cohorts[i];
                if (speciesCohorts.Species == species)
                {
                    speciesCohorts.AddNewCohort(initialBiomass);
                    return;
                }
            }

            //  Species not present at the site.
            cohorts.Add(new SpeciesCohorts(species, initialBiomass));
        }