public void Run(Clock clock, IClimateDynamicsState state, IDimensions dimensions) { var s = state; var t = clock.Current; if (clock.IsFirstTimestep) { s.temp[t] = 0.20; } else { var LifeTemp = Math.Max(s.LifeTempConst + s.LifeTempLin * s.ClimateSensitivity + s.LifeTempQd * Math.Pow(s.ClimateSensitivity, 2.0), 1.0); var delaytemp = 1.0 / LifeTemp; var temps = s.ClimateSensitivity / 5.35 / Math.Log(2.0); // Calculate temperature var dtemp = delaytemp * temps * s.radforc[t] - delaytemp * s.temp[t - 1]; s.temp[t] = s.temp[t - 1] + dtemp; } }