diff --git a/src/FDM/JSBSim/initialization/FGInitialCondition.cpp b/src/FDM/JSBSim/initialization/FGInitialCondition.cpp index 4a2724d4f..056397fff 100644 --- a/src/FDM/JSBSim/initialization/FGInitialCondition.cpp +++ b/src/FDM/JSBSim/initialization/FGInitialCondition.cpp @@ -662,8 +662,11 @@ double FGInitialCondition::GetAltitudeASLFtIC(void) const double FGInitialCondition::GetTerrainElevationFtIC(void) const { - FGLocation contact; FGColumnVector3 normal, v, w; + FGLocation contact; + double a = fdmex->GetInertial()->GetSemimajor(); + double b = fdmex->GetInertial()->GetSemiminor(); + contact.SetEllipse(a, b); fdmex->GetInertial()->GetContactPoint(position, contact, normal, v, w); return contact.GetGeodAltitude(); } diff --git a/src/FDM/JSBSim/models/FGInertial.cpp b/src/FDM/JSBSim/models/FGInertial.cpp index d5d70c993..730055de9 100644 --- a/src/FDM/JSBSim/models/FGInertial.cpp +++ b/src/FDM/JSBSim/models/FGInertial.cpp @@ -211,8 +211,9 @@ FGColumnVector3 FGInertial::GetGravityJ2(const FGLocation& position) const void FGInertial::SetAltitudeAGL(FGLocation& location, double altitudeAGL) { - FGLocation contact; FGColumnVector3 vDummy; + FGLocation contact; + contact.SetEllipse(a, b); GroundCallback->GetAGLevel(location, contact, vDummy, vDummy, vDummy); double groundHeight = contact.GetGeodAltitude(); double longitude = location.GetLongitude(); diff --git a/src/FDM/JSBSim/models/FGPropagate.cpp b/src/FDM/JSBSim/models/FGPropagate.cpp index a27820e03..4bdebb247 100644 --- a/src/FDM/JSBSim/models/FGPropagate.cpp +++ b/src/FDM/JSBSim/models/FGPropagate.cpp @@ -548,8 +548,9 @@ void FGPropagate::RecomputeLocalTerrainVelocity() double FGPropagate::GetTerrainElevation(void) const { - FGLocation contact; FGColumnVector3 vDummy; + FGLocation contact; + contact.SetEllipse(in.SemiMajor, in.SemiMinor); Inertial->GetContactPoint(VState.vLocation, contact, vDummy, vDummy, vDummy); return contact.GetGeodAltitude(); }