diff --git a/src/FDM/JSBSim/JSBSim.cpp b/src/FDM/JSBSim/JSBSim.cpp index 63138ceb5..a349ad575 100644 --- a/src/FDM/JSBSim/JSBSim.cpp +++ b/src/FDM/JSBSim/JSBSim.cpp @@ -254,7 +254,6 @@ CLASS DOCUMENTATION * * - Linux (x86) * - Windows (MSVC, Cygwin, Mingwin) - * - SGI (native compilers) * - Mac OS X * - FreeBSD * @@ -441,7 +440,8 @@ int real_main(int argc, char* argv[]) if (!FDMExec->GetPropertyManager()->GetNode(CommandLineProperties[i])) { cerr << endl << " No property by the name " << CommandLineProperties[i] << endl; - goto quit; + delete FDMExec; + exit(-1); } else { FDMExec->SetPropertyValue(CommandLineProperties[i], CommandLinePropertyValues[i]); } @@ -455,10 +455,16 @@ int real_main(int argc, char* argv[]) // Dump the simulation state (position, orientation, etc.) FDMExec->GetPropagate()->DumpState(); - if (FDMExec->GetIC()->NeedTrim()) { - trimmer = new JSBSim::FGTrim( FDMExec ); + // Perform trim if requested via the initialization file + JSBSim::TrimMode icTrimRequested = (JSBSim::TrimMode)FDMExec->GetIC()->TrimRequested(); + if (icTrimRequested != JSBSim::TrimMode::tNone) { + trimmer = new JSBSim::FGTrim( FDMExec, icTrimRequested ); try { trimmer->DoTrim(); + + if (FDMExec->GetDebugLevel() > 0) + trimmer->Report(); + delete trimmer; } catch (string& msg) { cerr << endl << msg << endl << endl; @@ -542,9 +548,6 @@ int real_main(int argc, char* argv[]) } - -quit: - // PRINT ENDING CLOCK TIME time(&tod); strftime(s, 99, "%A %B %d %Y %X", localtime(&tod)); @@ -767,4 +770,3 @@ void PrintHelp(void) cout << " NOTE: There can be no spaces around the = sign when" << endl; cout << " an option is followed by a filename" << endl << endl; } - diff --git a/src/FDM/JSBSim/JSBSim.cxx b/src/FDM/JSBSim/JSBSim.cxx index 5fdbb5107..106adb63f 100644 --- a/src/FDM/JSBSim/JSBSim.cxx +++ b/src/FDM/JSBSim/JSBSim.cxx @@ -1096,9 +1096,7 @@ void FGJSBsim::set_V_calibrated_kts(double vc) fgic->SetVcalibratedKtsIC(vc); else { double p=pressure->getDoubleValue(); - double psl=fdmex->GetAtmosphere()->GetPressureSL(); - double rhosl=fdmex->GetAtmosphere()->GetDensitySL(); - double mach = FGJSBBase::MachFromVcalibrated(vc, p, psl, rhosl); + double mach = FGJSBBase::MachFromVcalibrated(vc, p); double temp = 1.8*(temperature->getDoubleValue()+273.15); double soundSpeed = sqrt(1.4*1716.0*temp); FGColumnVector3 vUVW = Propagate->GetUVW();