double drag(double s, double h, double v) { if (h > Body.atmosphereDepth) { return(0); } var atm = Body.AtmoParamsAtAltitude(h); var v2 = v * v; var dP = atm.Rho * v2; var mach = v / atm.Mach1; var Cd = AtmoSim.Cd * PhysicsGlobals.DragCurveMultiplier.Evaluate((float)mach) * PhysicsGlobals.DragCurvePseudoReynolds.Evaluate((float)(atm.Rho * Math.Abs(v))); return(dP * Cd * s); }