Index: trunk/BNC/src/bncutils.cpp
===================================================================
--- trunk/BNC/src/bncutils.cpp	(revision 7250)
+++ trunk/BNC/src/bncutils.cpp	(revision 7251)
@@ -411,12 +411,12 @@
 // Rectangular Coordinates -> Geocentric Coordinates
 ////////////////////////////////////////////////////////////////////////////
-void xyz2geoc(const double* XYZ, double* Geoc) {
+t_irc xyz2geoc(const double* XYZ, double* Geoc) {
 
   const double bell = t_CST::aell*(1.0-1.0/t_CST::fInv) ;
   const double e2   = (t_CST::aell*t_CST::aell-bell*bell)/(t_CST::aell*t_CST::aell) ;
-
   double Ell[3];
-  xyz2ell(XYZ, Ell);
-
+  if (xyz2ell(XYZ, Ell) != success) {
+    return failure;
+  }
   double rho = sqrt(XYZ[0]*XYZ[0]+XYZ[1]*XYZ[1]+XYZ[2]*XYZ[2]);
   double Rn = t_CST::aell/sqrt(1-(e2)*pow(sin(Ell[0]),2));
@@ -425,4 +425,6 @@
   Geoc[1] = Ell[1];
   Geoc[2] = rho-t_CST::rgeoc;
+
+  return success;
 }
 
Index: trunk/BNC/src/bncutils.h
===================================================================
--- trunk/BNC/src/bncutils.h	(revision 7250)
+++ trunk/BNC/src/bncutils.h	(revision 7251)
@@ -74,5 +74,5 @@
 t_irc        xyz2ell(const double* XYZ, double* Ell);
 
-void         xyz2geoc(const double* XYZ, double* Geoc);
+t_irc        xyz2geoc(const double* XYZ, double* Geoc);
 
 void         xyz2neu(const double* Ell, const double* xyz, double* neu);
Index: trunk/BNC/src/pppModel.cpp
===================================================================
--- trunk/BNC/src/pppModel.cpp	(revision 7250)
+++ trunk/BNC/src/pppModel.cpp	(revision 7251)
@@ -397,10 +397,12 @@
   // Latitude, longitude, height are defined with respect to a spherical earth model
   // -------------------------------------------------------------------------------
-  ColumnVector geocSta;
-  xyz2geoc(xyzSta.data(), geocSta.data());
+  ColumnVector geocSta(3);
+  if (xyz2geoc(xyzSta.data(), geocSta.data()) != success) {
+    return 0.0;
+  }
 
   // satellite position rotated to the epoch of signal reception
   // -----------------------------------------------------------
-  ColumnVector xyzSat;
+  ColumnVector xyzSat(3);
   double omegaZ = t_CST::omega * signalPropagationTime;
   xyzSat[0] = rSat[0] * cos(omegaZ) + rSat[1] * sin(omegaZ);
