public void Run(Clock clock, IImpactCoolingState state, IDimensions dimensions)
        {
            var s = state;
            var t = clock.Current;

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

                    s.cooling[t, r] = s.cebm[r] * s.cumaeei[t, r] * s.gdp90[r] * Math.Pow(s.temp[t, r] / 1.0, s.cenl) * Math.Pow(ypc / ypc90, s.ceel) * s.population[t, r] / s.pop90[r];
                }
            }
        }
        public void Run(Clock clock, IImpactCoolingState state, IDimensions dimensions)
        {
            var s = state;
            var t = clock.Current;

            if (clock.IsFirstTimestep)
            {

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

                    s.cooling[t, r] = s.cebm[r] * s.cumaeei[t, r] * s.gdp90[r] * Math.Pow(s.temp[t, r] / 1.0, s.cenl) * Math.Pow(ypc / ypc90, s.ceel) * s.population[t, r] / s.pop90[r];
                }
            }
        }