Index: trunk/BNC/src/PPP/pppFilter.cpp
===================================================================
--- trunk/BNC/src/PPP/pppFilter.cpp	(revision 10248)
+++ trunk/BNC/src/PPP/pppFilter.cpp	(revision 10249)
@@ -86,7 +86,7 @@
   // Status Vector, Variance-Covariance Matrix
   // -----------------------------------------
-  ColumnVector    xFltOld = _xFlt;
-  SymmetricMatrix QFltOld = _QFlt;
-  setStateVectorAndVarCovMatrix(xFltOld, QFltOld, setNeuNoiseToZero);
+  _xFltOld = _xFlt;
+  _QFltOld = _QFlt;
+  setStateVectorAndVarCovMatrix(setNeuNoiseToZero);
 
   // Process Satellite Systems separately
@@ -267,12 +267,11 @@
       }
       if (par) {
-//        if (par->ambResetCandidate()) {
+        //if (par->ambResetCandidate()) {
           resetAmb(obs->prn(), obsVector, maxOutlierLC, &QSav, &xSav);
-          adjustNoise(t_pppParam::ion, obs->prn(), 0.1, &QSav);
-//        }
-//        else {
-//          par->setAmbResetCandidate();
-//          obs->setOutlier();
-//        }
+        //}
+        //else {
+        //  par->setAmbResetCandidate();
+        //  obs->setOutlier();
+        //}
       }
       else {
@@ -344,5 +343,4 @@
         if (slip) {
           resetAmb(obs->prn(), obsVector, tLC);
-          adjustNoise(t_pppParam::ion, obs->prn(), 0.1);
         }
 
@@ -363,5 +361,4 @@
                 << obs->prn().toString() << ' ' << setw(8) << setprecision(4) << vv << endl;
             resetAmb(obs->prn(), obsVector, tLC);
-            adjustNoise(t_pppParam::ion, obs->prn(), 0.1);
           }
         }
@@ -383,14 +380,10 @@
     t_pppParam *par = params[iPar];
     if (par->type() == t_pppParam::amb && par->prn() == prn) {
-      int ind = par->indexNew();
-      double eleSat = par->ambEleSat();
+      int     ind    = par->indexNew();
+      double  eleSat = par->ambEleSat();
       bncTime firstObsTime;
       bncTime lastObsTime = par->lastObsTime();
-      if (par->firstObsTime().undef()) {
-        firstObsTime = lastObsTime;
-      }
-      else {
-        firstObsTime = par->firstObsTime();
-      }
+      (par->firstObsTime().undef()) ?
+        firstObsTime = lastObsTime : firstObsTime = par->firstObsTime();
       t_lc::type tLC = par->tLC();
       if (tLC != lc) {continue;}
@@ -405,5 +398,5 @@
         _QFlt(ii, ind + 1) = 0.0;
         if (QSav) {
-          (*QSav)(ii, ind + 1) = 0.0;
+          (*QSav)(ii, ind + 1) = 0.0; 
         }
       }
@@ -434,20 +427,14 @@
     t_pppParam *par = params[iPar];
     if (par->type() == parType && par->prn() == prn) {
-      int ind = par->indexNew();
-      //LOG << string(_epoTime) << " ADJUSTNOISE " << par->toString() << endl;
-      for (unsigned ii = 1; ii <= params.size(); ii++) {
-        _QFlt(ii, ind + 1) = 0.0;
-        if (QSav) {
-          (*QSav)(ii, ind + 1) = 0.0;
-        }
-      }
-      _QFlt(ind + 1, ind + 1) = noise * noise;
+      int iOld = par->indexOld();
+      int iNew = par->indexNew();
+      LOG << string(_epoTime) << " ADJUSTNOISE " << prn.toString() << endl;
+      _QFlt[iNew][iNew] = _QFltOld[iOld][iOld] + noise * noise;
       if (QSav) {
-        (*QSav)(ind + 1, ind + 1) = _QFlt(ind + 1, ind + 1);
-      }
-      irc = success;
-    }
-  }
-
+        (*QSav)(iNew + 1, iNew + 1) = _QFlt(iNew + 1, iNew + 1);
+      }
+      return success;
+    }
+  }
   return irc;
 }
@@ -492,5 +479,5 @@
 //
 ////////////////////////////////////////////////////////////////////////////
-void t_pppFilter::predictCovCrdPart(const SymmetricMatrix &QFltOld, bool setNeuNoiseToZero) {
+void t_pppFilter::predictCovCrdPart(bool setNeuNoiseToZero) {
 
   const vector<t_pppParam*>& params = _parlist->params();
@@ -523,8 +510,8 @@
     double dt = _epoTime - _firstEpoTime;
     if (dt < OPT->_seedingTime || setNeuNoiseToZero) {
-      _QFlt.SymSubMatrix(1, 3) = QFltOld.SymSubMatrix(1, 3);
+      _QFlt.SymSubMatrix(1, 3) = _QFltOld.SymSubMatrix(1, 3);
     }
     else {
-      _QFlt.SymSubMatrix(1, 3) = QFltOld.SymSubMatrix(1, 3) + Qxyz;
+      _QFlt.SymSubMatrix(1, 3) = _QFltOld.SymSubMatrix(1, 3) + Qxyz;
     }
   }
@@ -533,6 +520,5 @@
 //
 ////////////////////////////////////////////////////////////////////////////
-void t_pppFilter::setStateVectorAndVarCovMatrix(const ColumnVector &xFltOld,
-    const SymmetricMatrix &QFltOld, bool setNeuNoiseToZero) {
+void t_pppFilter::setStateVectorAndVarCovMatrix(bool setNeuNoiseToZero) {
 
   const vector<t_pppParam*>& params = _parlist->params();
@@ -545,5 +531,5 @@
   for (unsigned ii = 0; ii < nPar; ii++) {
     t_pppParam *par1 = params[ii];
-    if (QFltOld.size() == 0) {
+    if (_QFltOld.size() == 0) {
       par1->resetIndex();
     }
@@ -553,16 +539,16 @@
       _QFlt[ii][ii] = par1->sigma0() * par1->sigma0(); // new parameter
     } else {
-      _QFlt[ii][ii] = QFltOld[iOld][iOld] + par1->noise() * par1->noise();
-      _xFlt[ii] = xFltOld[iOld];
+      _QFlt[ii][ii] = _QFltOld[iOld][iOld] + par1->noise() * par1->noise();
+      _xFlt[ii]     = _xFltOld[iOld];
       for (unsigned jj = 0; jj < ii; jj++) {
         t_pppParam *par2 = params[jj];
         int jOld = par2->indexOld();
         if (jOld >= 0) {
-          _QFlt[ii][jj] = QFltOld(iOld + 1, jOld + 1);
-        }
-      }
-    }
-  }
-  predictCovCrdPart(QFltOld, setNeuNoiseToZero);
-}
-
+          _QFlt[ii][jj] = _QFltOld(iOld + 1, jOld + 1);
+        }
+      }
+    }
+  }
+  predictCovCrdPart(setNeuNoiseToZero);
+}
+
Index: trunk/BNC/src/PPP/pppFilter.h
===================================================================
--- trunk/BNC/src/PPP/pppFilter.h	(revision 10248)
+++ trunk/BNC/src/PPP/pppFilter.h	(revision 10249)
@@ -88,13 +88,14 @@
   void cmpDOP(const std::vector<t_pppSatObs*>& obsVector);
 
-  void setStateVectorAndVarCovMatrix(const ColumnVector& xFltOld, const SymmetricMatrix& QFltOld,
-                                     bool setNeuNoiseToZero);
+  void setStateVectorAndVarCovMatrix(bool setNeuNoiseToZero);
 
-  void predictCovCrdPart(const SymmetricMatrix& QFltOld, bool setNeuNoiseToZero);
+  void predictCovCrdPart(bool setNeuNoiseToZero);
 
   bncTime         _epoTime;
   t_pppParlist*   _parlist;
   SymmetricMatrix _QFlt;
+  SymmetricMatrix _QFltOld;
   ColumnVector    _xFlt;
+  ColumnVector    _xFltOld;
   ColumnVector    _x0;
   t_slip          _slips[t_prn::MAXPRN+1];
