Пример #1
0
        public void Run(Clock clock, IImpactForestsState state, IDimensions dimensions)
        {
            var s = state;
            var t = clock.Current;

            if (clock.IsFirstTimestep)
            {
            }
            else
            {
                foreach (var r in dimensions.GetValues <Region>())
                {
                    double ypc   = 1000.0 * s.income[t, r] / s.population[t, r];
                    double ypc90 = s.gdp90[r] / s.pop90[r] * 1000.0;

                    // TODO -oDavid Anthoff: RT uses -lP.forel for ppp case
                    s.forests[t, r] = s.forbm[r] * s.income[t, r] * Math.Pow(ypc / ypc90, s.forel) * (0.5 * Math.Pow(s.temp[t, r], s.fornl) + 0.5 * Math.Log(s.acco2[t - 1] / s.co2pre) * s.forco2);

                    if (s.forests[t, r] > 0.1 * s.income[t, r])
                    {
                        s.forests[t, r] = 0.1 * s.income[t, r];
                    }
                }
            }
        }
Пример #2
0
        public void Run(Clock clock, IImpactForestsState state, IDimensions dimensions)
        {
            var s = state;
            var t = clock.Current;

            if (clock.IsFirstTimestep)
            {

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

                    // TODO -oDavid Anthoff: RT uses -lP.forel for ppp case
                    s.forests[t, r] = s.forbm[r] * s.income[t, r] * Math.Pow(ypc / ypc90, s.forel) * (0.5 * Math.Pow(s.temp[t, r], s.fornl) + 0.5 * Math.Log(s.acco2[t - 1] / s.co2pre) * s.forco2);

                    if (s.forests[t, r] > 0.1 * s.income[t, r])
                        s.forests[t, r] = 0.1 * s.income[t, r];
                }
            }
        }