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; } } }