Index: trunk/BNC/bncmodel.cpp
===================================================================
--- trunk/BNC/bncmodel.cpp	(revision 2243)
+++ trunk/BNC/bncmodel.cpp	(revision 2244)
@@ -65,5 +65,6 @@
 const double   sig_amb_0        = 1000.0;
 const double   sig_P3           =    1.0;
-const double   sig_L3           =    0.01;
+const double   sig_L3_GPS       =    0.01;
+const double   sig_L3_GLO       =    0.10;
 
 // Constructor
@@ -102,10 +103,5 @@
   // ---------------
   else if (type == RECCLK_GPS) {
-    if (satData->prn[0] == 'G') {
-      return 1.0;
-    }
-    else {
-      return 0.0;
-    }
+    return 1.0;
   }
   else if (type == RECCLK_GLO) {
@@ -394,4 +390,51 @@
 void bncModel::predict(t_epoData* epoData) {
 
+  bool firstCrd = x() == 0.0 && y() == 0.0 && z() == 0.0;
+
+  // Predict Parameter values, add white noise
+  // -----------------------------------------
+  for (int iPar = 1; iPar <= _params.size(); iPar++) {
+    bncParam* pp = _params[iPar-1];
+ 
+    // Coordinates
+    // -----------
+    if      (pp->type == bncParam::CRD_X) {
+      if (firstCrd || !_static) {
+        pp->xx = _xcBanc(1);
+      }
+      _QQ(iPar,iPar) += sig_crd_p * sig_crd_p;
+    }
+    else if (pp->type == bncParam::CRD_Y) {
+      if (firstCrd || !_static) {
+        pp->xx = _xcBanc(2);
+      }
+      _QQ(iPar,iPar) += sig_crd_p * sig_crd_p;
+    }
+    else if (pp->type == bncParam::CRD_Z) {
+      if (firstCrd || !_static) {
+        pp->xx = _xcBanc(3);
+      }
+      _QQ(iPar,iPar) += sig_crd_p * sig_crd_p;
+    }   
+
+    // Receiver Clocks
+    // ---------------
+    else if (pp->isClk()) {
+      pp->xx = _xcBanc(4);
+      for (int jj = 1; jj <= _params.size(); jj++) {
+        _QQ(iPar, jj) = 0.0;
+      }
+      _QQ(iPar,iPar) = sig_clk_0 * sig_clk_0;
+    }
+
+    // Tropospheric Delay
+    // ------------------
+    else if (pp->type == bncParam::TROPO) {
+      _QQ(iPar,iPar) += sig_trp_p * sig_trp_p;
+    }
+  }
+
+  // Add New Ambiguities if necessary
+  // --------------------------------
   if (_usePhase) {
 
@@ -432,4 +475,5 @@
       iGPS.next();
       QString prn        = iGPS.key();
+      t_satData* satData = iGPS.value();
       bool    found = false;
       for (int iPar = 1; iPar <= _params.size(); iPar++) {
@@ -443,4 +487,5 @@
         bncParam* par = new bncParam(bncParam::AMB_L3, _params.size()+1, prn);
         _params.push_back(par);
+        par->xx = satData->L3 - cmpValue(satData);
       }
     }
@@ -462,5 +507,5 @@
         bncParam* par = new bncParam(bncParam::AMB_L3, _params.size()+1, prn);
         _params.push_back(par);
-        ///        par->xx = satData->L3 - cmpValue(satData);
+        par->xx = satData->L3 - cmpValue(satData);
       }
     }
@@ -490,46 +535,4 @@
   }
 
-  bool firstCrd = x() == 0.0 && y() == 0.0 && z() == 0.0;
-
-  for (int iPar = 1; iPar <= _params.size(); iPar++) {
-    bncParam* pp = _params[iPar-1];
- 
-    // Coordinates
-    // -----------
-    if      (pp->type == bncParam::CRD_X) {
-      if (firstCrd || !_static) {
-        pp->xx = _xcBanc(1);
-      }
-      _QQ(iPar,iPar) += sig_crd_p * sig_crd_p;
-    }
-    else if (pp->type == bncParam::CRD_Y) {
-      if (firstCrd || !_static) {
-        pp->xx = _xcBanc(2);
-      }
-      _QQ(iPar,iPar) += sig_crd_p * sig_crd_p;
-    }
-    else if (pp->type == bncParam::CRD_Z) {
-      if (firstCrd || !_static) {
-        pp->xx = _xcBanc(3);
-      }
-      _QQ(iPar,iPar) += sig_crd_p * sig_crd_p;
-    }   
-
-    // Receiver Clocks
-    // ---------------
-    else if (pp->isClk()) {
-      pp->xx = _xcBanc(4);
-      for (int jj = 1; jj <= _params.size(); jj++) {
-        _QQ(iPar, jj) = 0.0;
-      }
-      _QQ(iPar,iPar) = sig_clk_0 * sig_clk_0;
-    }
-
-    // Tropospheric Delay
-    // ------------------
-    else if (pp->type == bncParam::TROPO) {
-      _QQ(iPar,iPar) += sig_trp_p * sig_trp_p;
-    }
-  }
 }
 
@@ -596,13 +599,6 @@
       double rhoCmp = cmpValue(satData);
     
-      double ellWgtCoeff = 1.0;
-      ////  double eleD = satData->eleSat * 180.0 / M_PI;
-      ////  if (eleD < 25.0) {
-      ////    ellWgtCoeff = 2.5 - (eleD - 10.0) * 0.1;
-      ////    ellWgtCoeff *= ellWgtCoeff;
-      ////  }
-
       ll(iObs)      = satData->P3 - rhoCmp;
-      PP(iObs,iObs) = 1.0 / (sig_P3 * sig_P3) / ellWgtCoeff;
+      PP(iObs,iObs) = 1.0 / (sig_P3 * sig_P3);
       for (int iPar = 1; iPar <= _params.size(); iPar++) {
         AA(iObs, iPar) = _params[iPar-1]->partial(satData, false);
@@ -612,5 +608,5 @@
         ++iObs;
         ll(iObs)      = satData->L3 - rhoCmp;
-        PP(iObs,iObs) = 1.0 / (sig_L3 * sig_L3) / ellWgtCoeff;
+        PP(iObs,iObs) = 1.0 / (sig_L3_GPS * sig_L3_GPS);
         for (int iPar = 1; iPar <= _params.size(); iPar++) {
           if (_params[iPar-1]->type == bncParam::AMB_L3 &&
@@ -635,11 +631,4 @@
         double rhoCmp = cmpValue(satData);
         
-        double ellWgtCoeff = 1.0;
-        ////  double eleD = satData->eleSat * 180.0 / M_PI;
-        ////  if (eleD < 25.0) {
-        ////    ellWgtCoeff = 2.5 - (eleD - 10.0) * 0.1;
-        ////    ellWgtCoeff *= ellWgtCoeff;
-        ////  }
-
         ll(iObs)      = satData->L3 - rhoCmp;
 
@@ -650,5 +639,5 @@
              << setprecision(3) << satData->L3 << endl;
 
-        PP(iObs,iObs) = 1.0 / (sig_L3 * sig_L3) / ellWgtCoeff;
+        PP(iObs,iObs) = 1.0 / (sig_L3_GLO * sig_L3_GLO);
         for (int iPar = 1; iPar <= _params.size(); iPar++) {
           if (_params[iPar-1]->type == bncParam::AMB_L3 &&
@@ -683,4 +672,6 @@
     dx    = _QQ * ATP * ll; 
     vv    = ll - AA * dx;
+    cout << "vv = " << endl;
+    cout << vv.t() << endl;
 
   } while (outlierDetection(QQsav, vv, epoData->satDataGPS, 
Index: trunk/BNC/bncpppclient.cpp
===================================================================
--- trunk/BNC/bncpppclient.cpp	(revision 2243)
+++ trunk/BNC/bncpppclient.cpp	(revision 2244)
@@ -332,5 +332,5 @@
     ee->position(tt.gpsw(), tt.gpssec(), xc.data(), vv.data());
 
-    if (CORR_REQUIRED) {
+    if (prn[0] == 'G' && CORR_REQUIRED) {
       if (_corr.contains(prn)) {
         t_corr* cc = _corr.value(prn);
