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

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

                // 0.49 is the increase in global temperature from pre-industrial to 1990
                var absoluteRegionalTempPreIndustrial = s.temp90[r] - 0.49 * s.bregtmp[r];

                if (absoluteRegionalTempPreIndustrial > 0.0)
                {
                    s.diadead[t, r] = s.diamort[r] * s.population[t, r] * Math.Pow(ypc / ypc90, s.diamortel)
                                      * (Math.Pow((absoluteRegionalTempPreIndustrial + s.regtmp[t, r]) / absoluteRegionalTempPreIndustrial, s.diamortnl) - 1.0);

                    s.diasick[t, r] = s.diayld[r] * s.population[t, r] * Math.Pow(ypc / ypc90, s.diayldel)
                                      * (Math.Pow((absoluteRegionalTempPreIndustrial + s.regtmp[t, r]) / absoluteRegionalTempPreIndustrial, s.diayldnl) - 1.0);
                }
                else
                {
                    s.diadead[t, r] = 0.0;
                    s.diasick[t, r] = 0.0;
                }
            }
        }
        public void Run(Clock clock, IImpactDiarrhoeaState state, IDimensions dimensions)
        {
            var s = state;
            var t = clock.Current;

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

                // 0.49 is the increase in global temperature from pre-industrial to 1990
                var absoluteRegionalTempPreIndustrial = s.temp90[r] - 0.49 * s.bregtmp[r];

                if (absoluteRegionalTempPreIndustrial > 0.0)
                {
                    s.diadead[t, r] = s.diamort[r] * s.population[t, r] * Math.Pow(ypc / ypc90, s.diamortel)
                        * (Math.Pow((absoluteRegionalTempPreIndustrial + s.regtmp[t, r]) / absoluteRegionalTempPreIndustrial, s.diamortnl) - 1.0);

                    s.diasick[t, r] = s.diayld[r] * s.population[t, r] * Math.Pow(ypc / ypc90, s.diayldel)
                        * (Math.Pow((absoluteRegionalTempPreIndustrial + s.regtmp[t, r]) / absoluteRegionalTempPreIndustrial, s.diayldnl) - 1.0);
                }
                else
                {
                    s.diadead[t, r] = 0.0;
                    s.diasick[t, r] = 0.0;
                }
            }
        }