Index: /trunk/BNC/bncmodel.cpp
===================================================================
--- /trunk/BNC/bncmodel.cpp	(revision 3413)
+++ /trunk/BNC/bncmodel.cpp	(revision 3414)
@@ -908,22 +908,29 @@
   Tracer tracer("bncModel::outlierDetection");
 
-  QString prn;
-  double  maxRes  = 0.0;
-  findMaxRes(vv, satData, prn, maxRes);
-
-  if      (iPhase == 1 && 
-           maxRes > (prn[0] == 'G' ? MAXRES_PHASE_GPS : MAXRES_PHASE_GLONASS)) {
-    _log += "Outlier Phase " + prn + " " 
-          + QByteArray::number(maxRes, 'f', 3) + "\n"; 
-    return prn;
-  }
-  else if (iPhase == 0 && maxRes > MAXRES_CODE) {
-    _log += "Outlier Code  " + prn + " " 
-          + QByteArray::number(maxRes, 'f', 3) + "\n"; 
-    return prn;
-  }
-  else {
-    return QString();
-  }
+  QString prnGPS;
+  QString prnGlo;
+  double  maxResGPS = 0.0;
+  double  maxResGlo = 0.0;
+  findMaxRes(vv, satData, prnGPS, prnGlo, maxResGPS, maxResGlo);
+
+  if      (iPhase == 1) {
+    if      (maxResGlo > MAXRES_PHASE_GLONASS) { 
+      _log += "Outlier Phase " + prnGlo + " " 
+            + QByteArray::number(maxResGlo, 'f', 3) + "\n"; 
+      return prnGlo;
+    }
+    else if (maxResGPS > MAXRES_PHASE_GPS) { 
+      _log += "Outlier Phase " + prnGPS + " " 
+            + QByteArray::number(maxResGPS, 'f', 3) + "\n"; 
+      return prnGPS;
+    }
+  }
+  else if (iPhase == 0 && maxResGPS > MAXRES_CODE) {
+    _log += "Outlier Code  " + prnGPS + " " 
+          + QByteArray::number(maxResGPS, 'f', 3) + "\n"; 
+    return prnGPS;
+  }
+
+  return QString();
 }
 
@@ -1185,9 +1192,11 @@
 void bncModel::findMaxRes(const ColumnVector& vv,
                           const QMap<QString, t_satData*>& satData,
-                          QString& prn,  double& maxRes) { 
+                          QString& prnGPS, QString& prnGlo, 
+                          double& maxResGPS, double& maxResGlo) { 
 
   Tracer tracer("bncModel::findMaxRes");
 
-  maxRes  = 0.0;
+  maxResGPS  = 0.0;
+  maxResGlo  = 0.0;
 
   QMapIterator<QString, t_satData*> it(satData);
@@ -1195,7 +1204,18 @@
     it.next();
     t_satData* satData = it.value();
-    if (satData->obsIndex != 0 && fabs(vv(satData->obsIndex)) > maxRes) {
-      maxRes = fabs(vv(satData->obsIndex));
-      prn    = satData->prn;
+    if (satData->obsIndex != 0) {
+      QString prn = satData->prn;
+      if (prn[0] == 'R') {
+        if (fabs(vv(satData->obsIndex)) > maxResGlo) {
+          maxResGlo = fabs(vv(satData->obsIndex));
+          prnGlo    = prn;
+        }
+      }
+      else {
+        if (fabs(vv(satData->obsIndex)) > maxResGPS) {
+          maxResGPS = fabs(vv(satData->obsIndex));
+          prnGPS    = prn;
+        }
+      }
     }
   }
Index: /trunk/BNC/bncmodel.h
===================================================================
--- /trunk/BNC/bncmodel.h	(revision 3413)
+++ /trunk/BNC/bncmodel.h	(revision 3414)
@@ -103,5 +103,6 @@
   void   findMaxRes(const ColumnVector& vv,
                     const QMap<QString, t_satData*>& satData,
-                    QString& prn,  double& maxRes); 
+                    QString& prnGPS, QString& prnGlo,  
+                    double& maxResGPS, double& maxResGlo); 
   double cmpValue(t_satData* satData, bool phase);
   double delay_saast(double Ele);
