コード例 #1
0
        //---------------------------------------------------------------------
        /// <summary>
        /// Checks to see if the biomass parameters should be updated for the
        /// current time step.
        /// </summary>
        public static void CheckForUpdate()
        {
            while (nextUpdate != null && nextUpdate.Year <= Model.Core.CurrentTime) {
                //  Update various biomass parameters
                LivingBiomass.ChangeParameters(nextUpdate.Parameters);
                Reproduction.ChangeEstablishProbabilities(Util.ToArray<double>(nextUpdate.Parameters.EstablishProbability));
                Dead.Pools.ChangeRates(nextUpdate.Parameters.WoodyDecayRate,
                                       nextUpdate.Parameters.LeafLitterDecayRate);
                UI.WriteLine("Updated biomass parameters for climate change");

                indexOfNextUpdate++;
                if (indexOfNextUpdate < parameterUpdates.Count)
                    nextUpdate = parameterUpdates[indexOfNextUpdate];
                else
                    nextUpdate = null;
            }
        }
コード例 #2
0
        //---------------------------------------------------------------------
        /// <summary>
        /// Initializes the module.
        /// </summary>
        /// <param name="parameterUpdates">
        /// The list of parameter updates.  The year and the file for each
        /// update has been specified.
        /// </param>
        /// <remarks>
        /// The file for each update is parsed for the set of biomass
        /// parameters.
        /// </remarks>
        public static void Initialize(List<ParametersUpdate> parameterUpdates)
        {
            Module.parameterUpdates = parameterUpdates;
            if (parameterUpdates.Count > 0) {
                UI.WriteLine("Loading biomass parameters for climate change:");
                ParametersParser parser = new ParametersParser(Model.Core.Ecoregions,
                                                               Model.Core.Species);
                foreach (ParametersUpdate update in parameterUpdates) {
                    update.LoadParameters(parser);
                    UI.WriteLine("  Read parameters for year {0} from file \"{1}\"",
                                 update.Year, update.File);
                }

                indexOfNextUpdate = 0;
                nextUpdate = parameterUpdates[indexOfNextUpdate];
            }
            else {
                nextUpdate = null;
            }
        }
コード例 #3
0
        //---------------------------------------------------------------------
        /// <summary>
        /// Checks to see if the biomass parameters should be updated for the
        /// current time step.
        /// </summary>
        public static void CheckForUpdate()
        {
            while (nextUpdate != null && nextUpdate.Year <= Model.Core.CurrentTime) {
                //  Update various biomass parameters
                LivingBiomass.ChangeParameters(nextUpdate.Parameters);
                Reproduction.ChangeEstablishProbabilities(Util.ToArray<double>(nextUpdate.Parameters.EstablishProbability));

                //Update Input Data:
                SpeciesData.ChangeParameters(nextUpdate.Parameters);
                EcoregionData.ChangeParameters(nextUpdate.Parameters);

                UI.WriteLine("Updated biomass parameters for climate change");

                indexOfNextUpdate++;
                if (indexOfNextUpdate < parameterUpdates.Count)
                    nextUpdate = parameterUpdates[indexOfNextUpdate];
                else
                    nextUpdate = null;
            }
        }