Index: /trunk/BNC/bncmodel.cpp
===================================================================
--- /trunk/BNC/bncmodel.cpp	(revision 3406)
+++ /trunk/BNC/bncmodel.cpp	(revision 3407)
@@ -936,9 +936,9 @@
 // Outlier Detection
 ////////////////////////////////////////////////////////////////////////////
-int bncModel::outlierDetection(int iPhase, const SymmetricMatrix& QQsav, 
-                               const ColumnVector& vv,
-                               QMap<QString, t_satData*>& satDataGPS,
-                               QMap<QString, t_satData*>& satDataGlo,
-                               QMap<QString, t_satData*>& satDataGal) {
+QString bncModel::outlierDetection(int iPhase, const SymmetricMatrix& QQsav, 
+                                   const ColumnVector& vv,
+                                   QMap<QString, t_satData*>& satDataGPS,
+                                   QMap<QString, t_satData*>& satDataGlo,
+                                   QMap<QString, t_satData*>& satDataGal) {
 
   Tracer tracer("bncModel::outlierDetection");
@@ -952,11 +952,9 @@
   double  maxRes;
 
-  int irc = 0;
-
   if (iPhase == 0) {
 
     // Check GPS Code
     // --------------
-    if (irc == 0) {
+    if (prnRemoved.isEmpty()) {
       findMaxRes(iPhase, vv,satDataGPS, prnCode, maxResCode, prnPhase, maxResPhase);
       if (maxResCode > MAXRES_CODE_GPS) {
@@ -964,5 +962,4 @@
         prnRemoved = prnCode;
         maxRes     = maxResCode;
-        irc        = 1;
       }
     }
@@ -970,5 +967,5 @@
     // Check Galileo Code
     // ------------------
-    if (irc == 0) {
+    if (prnRemoved.isEmpty()) {
       findMaxRes(iPhase, vv,satDataGal, prnCode, maxResCode, prnPhase, maxResPhase);
       if (maxResCode > MAXRES_CODE_GAL) {
@@ -976,5 +973,4 @@
         prnRemoved = prnCode;
         maxRes     = maxResCode;
-        irc        = 1;
       }
     }
@@ -985,5 +981,5 @@
     // Check Glonass Phase
     // -------------------
-    if (irc == 0) {
+    if (prnRemoved.isEmpty()) {
       findMaxRes(iPhase, vv,satDataGlo, prnCode, maxResCode, prnPhase, maxResPhase);
       if (maxResPhase > MAXRES_PHASE_GLO) {
@@ -991,5 +987,4 @@
         prnRemoved = prnPhase;
         maxRes     = maxResPhase;
-        irc        = 1;
       }
     }
@@ -997,5 +992,5 @@
     // Check Galileo Phase
     // -------------------
-    if (irc == 0) {
+    if (prnRemoved.isEmpty()) {
       findMaxRes(iPhase, vv,satDataGal, prnCode, maxResCode, prnPhase, maxResPhase);
       if      (maxResPhase > MAXRES_PHASE_GAL) {
@@ -1003,5 +998,4 @@
         prnRemoved = prnPhase;
         maxRes     = maxResPhase;
-        irc        = 1;
       }
     }
@@ -1009,5 +1003,5 @@
     // Check GPS Phase
     // ---------------
-    if (irc == 0) {
+    if (prnRemoved.isEmpty()) {
       findMaxRes(iPhase, vv,satDataGPS, prnCode, maxResCode, prnPhase, maxResPhase);
       if      (maxResPhase > MAXRES_PHASE_GPS) {
@@ -1015,10 +1009,9 @@
         prnRemoved = prnPhase;
         maxRes     = maxResPhase;
-        irc        = 1;
       }
     }
   }
  
-  if (irc != 0) {
+  if (!prnRemoved.isEmpty()) {
     _log += "Outlier " + prnRemoved.toAscii() + " " 
           + QByteArray::number(maxRes, 'f', 3) + "\n"; 
@@ -1033,5 +1026,5 @@
   }
 
-  return irc;
+  return prnRemoved;
 }
 
@@ -1451,9 +1444,12 @@
       }
     
-      if (outlierDetection(iPhase, QQsav, vv, epoData->satDataGPS, 
-                           epoData->satDataGlo, epoData->satDataGal) == 0) {
+      QString prnRemoved = outlierDetection(iPhase, QQsav, vv, 
+                                            epoData->satDataGPS, 
+                                            epoData->satDataGlo, 
+                                            epoData->satDataGal);
+      if (prnRemoved.isEmpty()) {
         break;
       }
-      else {
+      else if (prnRemoved[0] == 'G') {
         ++numOutliers;
       }
Index: /trunk/BNC/bncmodel.h
===================================================================
--- /trunk/BNC/bncmodel.h	(revision 3406)
+++ /trunk/BNC/bncmodel.h	(revision 3407)
@@ -109,9 +109,9 @@
   void   predict(int iPhase, t_epoData* epoData);
   t_irc  update_p(t_epoData* epoData);
-  int    outlierDetection(int iPhase, const SymmetricMatrix& QQsav, 
-                          const ColumnVector& vv,
-                          QMap<QString, t_satData*>& satDataGPS,
-                          QMap<QString, t_satData*>& satDataGlo,
-                          QMap<QString, t_satData*>& satDataGal);
+  QString outlierDetection(int iPhase, const SymmetricMatrix& QQsav, 
+                           const ColumnVector& vv,
+                           QMap<QString, t_satData*>& satDataGPS,
+                           QMap<QString, t_satData*>& satDataGlo,
+                           QMap<QString, t_satData*>& satDataGal);
   void writeNMEAstr(const QString& nmStr);
 
