Fixed errors to get KER running in 1.0 and editor now shows correct atmosphere adjusted thrust.
Fixed errors to get KER running in 1.0 and editor now shows correct atmosphere adjusted thrust.

--- a/KerbalEngineer/CelestialBodies.cs
+++ b/KerbalEngineer/CelestialBodies.cs
@@ -124,7 +124,7 @@
                     this.CelestialBody = body;
                     this.Name = body.bodyName;
                     this.Gravity = 9.81 * body.GeeASL;
-                    this.Atmosphere = body.atmosphere ? 101.325 * body.atmosphereMultiplier : 0;
+                    this.Atmosphere = body.atmosphere ? body.atmospherePressureSeaLevel : 0;
                     this.Parent = parent;
 
                     // Set orbiting bodies information.

--- a/KerbalEngineer/Flight/Readouts/Surface/AtmosphericProcessor.cs
+++ b/KerbalEngineer/Flight/Readouts/Surface/AtmosphericProcessor.cs
@@ -126,9 +126,9 @@
                     var drag = FlightGlobals.ActiveVessel.parts.Sum(p => p.GetWetMass() * p.maximum_drag);
                     var grav = FlightGlobals.getGeeForceAtPosition(FlightGlobals.ship_position).magnitude;
                     var atmo = FlightGlobals.ActiveVessel.atmDensity;
-                    var coef = FlightGlobals.DragMultiplier;
+                    //var coef = FlightGlobals.ActiveVessel.DragMultiplier;
 
-                    TerminalVelocity = Math.Sqrt((2 * mass * grav) / (atmo * drag * coef));
+                    //TerminalVelocity = Math.Sqrt((2 * mass * grav) / (atmo * drag * coef));
                 }
 
                 Efficiency = FlightGlobals.ship_srfSpeed / TerminalVelocity;

--- a/KerbalEngineer/Helpers/Units.cs
+++ b/KerbalEngineer/Helpers/Units.cs
@@ -20,7 +20,6 @@
 namespace KerbalEngineer.Helpers
 {
     #region Using Directives
-
     using System;
 
     #endregion
@@ -28,6 +27,7 @@
     public static class Units
     {
         #region Methods
+        public const double GRAVITY = 9.80665;
 
         public static string Concat(int value1, int value2)
         {
@@ -123,8 +123,8 @@
 
         public static string ToForce(double value1, double value2)
         {
-            var format1 = (value1 < 100000.0) ? (value1 < 10000.0) ? (value1 < 100.0) ? (Math.Abs(value1) < Double.Epsilon) ? "N0" : "N3" : "N2" : "N1" : "N0";
-            var format2 = (value2 < 100000.0) ? (value2 < 10000.0) ? (value2 < 100.0) ? (Math.Abs(value2) < Double.Epsilon) ? "N0" : "N3" : "N2" : "N1" : "N0";
+            string format1 = (value1 < 100000.0) ? (value1 < 10000.0) ? (value1 < 100.0) ? (Math.Abs(value1) < Double.Epsilon) ? "N0" : "N3" : "N2" : "N1" : "N0";
+            string format2 = (value2 < 100000.0) ? (value2 < 10000.0) ? (value2 < 100.0) ? (Math.Abs(value2) < Double.Epsilon) ? "N0" : "N3" : "N2" : "N1" : "N0";
             return value1.ToString(format1) + " / " + value2.ToString(format2) + "kN";
         }
 
@@ -180,7 +180,6 @@
         {
             return value.ToString((value < 100.0) ? (Math.Abs(value) < Double.Epsilon) ? "N0" : "N1" : "N0") + "kNm";
         }
-
         #endregion
     }
 }

--- a/KerbalEngineer/VesselSimulator/EngineSim.cs
+++ b/KerbalEngineer/VesselSimulator/EngineSim.cs
@@ -30,6 +30,8 @@
 
 namespace KerbalEngineer.VesselSimulator
 {
+    using Helpers;
+
     public class EngineSim
     {
         private readonly ResourceContainer resourceConsumptions = new ResourceContainer();
@@ -41,6 +43,21 @@
         public List<AppliedForce> appliedForces;
 
         public double thrust = 0;
+
+        public static double GetAdjustedEngineThrust(float minFuelFlow, float maxFuelFlow, double isp, float throttle)
+        {
+            return Mathf.Lerp(minFuelFlow, maxFuelFlow, throttle) * GetExhaustVelocity(isp);
+        }
+
+        public static double GetEngineThrust(float fuelFlow, double isp)
+        {
+            return fuelFlow * GetExhaustVelocity(isp);
+        }
+
+        public static double GetExhaustVelocity(double isp)
+        {
+            return isp * Units.GRAVITY;
+        }
 
         // Add thrust vector to account for directional losses
         public Vector3 thrustVec;
@@ -60,7 +77,7 @@
                          List<Propellant> propellants,
                          bool active,
                          bool correctThrust,
-                         List<Transform> thrustTransforms)
+                         List<Transform> thrustTransforms, float minFuelFlow, float maxFuelFlow)
         {
             StringBuilder buffer = null;
             //MonoBehaviour.print("Create EngineSim for " + theEngine.name);
@@ -73,7 +90,7 @@
             this.partSim = theEngine;
 
             this.isActive = active;
-            this.thrust = (maxThrust - minThrust) * (thrustPercentage / 100f) + minThrust;
+            //this.thrust = (maxThrust - minThrust) * (thrustPercentage / 100f) + minThrust;
             //MonoBehaviour.print("thrust = " + thrust);
 
             this.thrustVec = vecThrust;
@@ -81,51 +98,31 @@
             double flowRate = 0d;
             if (this.partSim.hasVessel)
             {
-                //MonoBehaviour.print("hasVessel is true");
-                this.actualThrust = isActive ? requestedThrust : 0.0;
+                this.isp = atmosphereCurve.Evaluate((float)this.partSim.part.staticPressureAtm);
+                if (this.isp == 0.0)
+                {
+                    MonoBehaviour.print("Isp at " + this.partSim.part.staticPressureAtm + " is zero. Flow rate will be NaN");
+                }
+
+                this.actualThrust = isActive ? GetAdjustedEngineThrust(minFuelFlow, maxFuelFlow, isp, thrustPercentage) : 0.0;
+                this.thrust = GetEngineThrust(maxThrust, isp);
                 if (velocityCurve != null)
                 {
                     this.actualThrust *= velocityCurve.Evaluate((float)velocity);
-                    //MonoBehaviour.print("actualThrust at velocity = " + actualThrust);
-                }
-
-                this.isp = atmosphereCurve.Evaluate((float)this.partSim.part.staticPressureAtm);
-                if (this.isp == 0d)
-                {
-                    MonoBehaviour.print("Isp at " + this.partSim.part.staticPressureAtm + " is zero. Flow rate will be NaN");
-                }
-
-                if (correctThrust && realIsp == 0)
-                {
-                    float ispsl = atmosphereCurve.Evaluate(0);
-                    if (ispsl != 0)
-                    {
-                        this.thrust = this.thrust * this.isp / ispsl;
-                    }
-                    else
-                    {
-                        MonoBehaviour.print("Isp at sea level is zero. Unable to correct thrust.");
-                    }
-                    //MonoBehaviour.print("corrected thrust = " + thrust);
-                }
-
-                if (velocityCurve != null)
-                {
                     this.thrust *= velocityCurve.Evaluate((float)velocity);
-                    //MonoBehaviour.print("thrust at velocity = " + thrust);
                 }
 
                 if (throttleLocked)
                 {
                     //MonoBehaviour.print("throttleLocked is true");
-                    flowRate = this.thrust / (this.isp * 9.82);
+                    flowRate = this.thrust / GetExhaustVelocity(isp);
                 }
                 else
                 {
                     if (this.partSim.isLanded)
                     {
                         //MonoBehaviour.print("partSim.isLanded is true, mainThrottle = " + FlightInputHandler.state.mainThrottle);
-                        flowRate = Math.Max(0.000001d, this.thrust * FlightInputHandler.state.mainThrottle) / (this.isp * 9.82);
+                        flowRate = Math.Max(0.000001d, this.thrust * FlightInputHandler.state.mainThrottle) / GetExhaustVelocity(isp);
                     }
                     else
                     {
@@ -138,45 +135,32 @@
                             }
 
                             //MonoBehaviour.print("requestedThrust > 0");
-                            flowRate = requestedThrust / (this.isp * 9.82);
+                            flowRate = requestedThrust / GetExhaustVelocity(isp);
                         }
                         else
                         {
                             //MonoBehaviour.print("requestedThrust <= 0");
-                            flowRate = this.thrust / (this.isp * 9.82);
+                            flowRate = this.thrust / GetExhaustVelocity(isp);
                         }
                     }
                 }
             }
             else
             {
-                //MonoBehaviour.print("hasVessel is false");
                 this.isp = atmosphereCurve.Evaluate((float)atmosphere);
                 if (this.isp == 0d)
                 {
                     MonoBehaviour.print("Isp at " + atmosphere + " is zero. Flow rate will be NaN");
                 }
-                if (correctThrust)
-                {
-                    float ispsl = atmosphereCurve.Evaluate(0);
-                    if (ispsl != 0)
-                    {
-                        this.thrust = this.thrust * this.isp / ispsl;
-                    }
-                    else
-                    {
-                        MonoBehaviour.print("Isp at sea level is zero. Unable to correct thrust.");
-                    }
-                    //MonoBehaviour.print("corrected thrust = " + thrust);
-                }
+
+                this.thrust = GetAdjustedEngineThrust(minFuelFlow, maxFuelFlow, isp, thrustPercentage);
 
                 if (velocityCurve != null)
                 {
                     this.thrust *= velocityCurve.Evaluate((float)velocity);
-                    //MonoBehaviour.print("thrust at velocity = " + thrust);
-                }
-
-                flowRate = this.thrust / (this.isp * 9.82);
+                }
+
+                flowRate = this.thrust / GetExhaustVelocity(isp);
             }
 
             if (SimManager.logOutput)

--- a/KerbalEngineer/VesselSimulator/PartSim.cs
+++ b/KerbalEngineer/VesselSimulator/PartSim.cs
@@ -202,7 +202,7 @@
                                                             engine.maxThrust,
                                                             engine.minThrust,
                                                             engine.thrustPercentage,
-                                                            engine.requestedThrust,
+                                                            engine.resultingThrust,
                                                             thrustvec,
                                                             engine.realIsp,
                                                             engine.atmosphereCurve,
@@ -211,7 +211,7 @@
                                                             engine.propellants,
                                                             engine.isOperational,
                                                             correctThrust,
-                                                            engine.thrustTransforms);
+                                                            engine.thrustTransforms, engine.minFuelFlow, engine.maxFuelFlow);
                         allEngines.Add(engineSim);
                     }
                 }
@@ -235,7 +235,7 @@
                                                             engine.maxThrust,
                                                             engine.minThrust,
                                                             engine.thrustPercentage,
-                                                            engine.requestedThrust,
+                                                            engine.resultingThrust,
                                                             thrustvec,
                                                             engine.realIsp,
                                                             engine.atmosphereCurve,
@@ -244,7 +244,7 @@
                                                             engine.propellants,
                                                             engine.isOperational,
                                                             correctThrust,
-                                                            engine.thrustTransforms);
+                                                            engine.thrustTransforms, engine.minFuelFlow, engine.maxFuelFlow);
                         allEngines.Add(engineSim);
                     }
                 }
@@ -266,7 +266,7 @@
                                                             engine.maxThrust,
                                                             engine.minThrust,
                                                             engine.thrustPercentage,
-                                                            engine.requestedThrust,
+                                                            engine.resultingThrust,
                                                             thrustvec,
                                                             engine.realIsp,
                                                             engine.atmosphereCurve,
@@ -275,7 +275,7 @@
                                                             engine.propellants,
                                                             engine.isOperational,
                                                             correctThrust,
-                                                            engine.thrustTransforms);
+                                                            engine.thrustTransforms, engine.minFuelFlow, engine.maxFuelFlow);
                         allEngines.Add(engineSim);
                     }
                 }

 Binary files a/Output/KerbalEngineer/KerbalEngineer.dll and b/Output/KerbalEngineer/KerbalEngineer.dll differ