Beispiel #1
0
        public void Run(Clock clock, IImpactBioDiversityState state, IDimensions dimensions)
        {
            var s = state;
            var t = clock.Current;

            if (clock.IsFirstTimestep)
            {
            }
            else
            {
                s.biodiv[t] = s.nospecbase / s.nospecies[t];

                foreach (var r in dimensions.GetValues <Region>())
                {
                    double ypc = 1000.0 * s.income[t, r] / s.population[t, r];

                    var dt = Math.Abs(s.temp[t, r] - s.temp[t - 1, r]);

                    var valadj = s.valbase / s.valinc[r] / (1 + s.valbase / s.valinc[r]);

                    s.species[t, r] = s.spbm /
                                      s.valbase * ypc / s.valinc[r] / (1.0 + ypc / s.valinc[r]) / valadj * ypc *
                                      s.population[t, r] / 1000.0 *
                                      dt / s.dbsta / (1.0 + dt / s.dbsta) *
                                      (1.0 - s.bioshare + s.bioshare * s.biodiv[t]);
                }
            }
        }
        public void Run(Clock clock, IImpactBioDiversityState state, IDimensions dimensions)
        {
            var s = state;
            var t = clock.Current;

            if (clock.IsFirstTimestep)
            {

            }
            else
            {

                s.biodiv[t] = s.nospecbase / s.nospecies[t];

                foreach (var r in dimensions.GetValues<Region>())
                {
                    double ypc = 1000.0 * s.income[t, r] / s.population[t, r];

                    var dt = Math.Abs(s.temp[t, r] - s.temp[t - 1, r]);

                    var valadj = s.valbase / s.valinc[r] / (1 + s.valbase / s.valinc[r]);

                    s.species[t, r] = s.spbm /
                                    s.valbase * ypc / s.valinc[r] / (1.0 + ypc / s.valinc[r]) / valadj * ypc *
                                    s.population[t, r] / 1000.0 *
                                    dt / s.dbsta / (1.0 + dt / s.dbsta) *
                                    (1.0 - s.bioshare + s.bioshare * s.biodiv[t]);
                }
            }
        }