Index: trunk/BNC/combination/bnccomb.cpp
===================================================================
--- trunk/BNC/combination/bnccomb.cpp	(revision 3469)
+++ trunk/BNC/combination/bnccomb.cpp	(revision 3470)
@@ -149,30 +149,40 @@
           ((bncApp*)qApp), SLOT(slotMessage(const QByteArray,bool)));
 
+  // Combination Method
+  // ------------------
+  if (settings.value("cmbMethod").toString() == "Filter") {
+    _method = filter;
+  }
+  else {
+    _method = singleEpoch;
+  }
 
   // Initialize Parameters (model: Clk_Corr = AC_Offset + Sat_Offset + Clk)
   // ----------------------------------------------------------------------
-  int nextPar = 0;
-  QListIterator<cmbAC*> it(_ACs);
-  while (it.hasNext()) {
-    cmbAC* AC = it.next();
-    _params.push_back(new cmbParam(cmbParam::offAC, ++nextPar, AC->name, ""));
+  if (_method == filter) {
+    int nextPar = 0;
+    QListIterator<cmbAC*> it(_ACs);
+    while (it.hasNext()) {
+      cmbAC* AC = it.next();
+      _params.push_back(new cmbParam(cmbParam::offAC, ++nextPar, AC->name, ""));
+      for (int iGps = 1; iGps <= MAXPRN_GPS; iGps++) {
+        QString prn = QString("G%1").arg(iGps, 2, 10, QChar('0'));
+        _params.push_back(new cmbParam(cmbParam::offACSat, ++nextPar, 
+                                       AC->name, prn));
+      }
+    }
     for (int iGps = 1; iGps <= MAXPRN_GPS; iGps++) {
       QString prn = QString("G%1").arg(iGps, 2, 10, QChar('0'));
-      _params.push_back(new cmbParam(cmbParam::offACSat, ++nextPar, 
-                                     AC->name, prn));
-    }
-  }
-  for (int iGps = 1; iGps <= MAXPRN_GPS; iGps++) {
-    QString prn = QString("G%1").arg(iGps, 2, 10, QChar('0'));
-    _params.push_back(new cmbParam(cmbParam::clkSat, ++nextPar, "", prn));
-  }
-
-  // Initialize Variance-Covariance Matrix
-  // -------------------------------------
-  _QQ.ReSize(_params.size());
-  _QQ = 0.0;
-  for (int iPar = 1; iPar <= _params.size(); iPar++) {
-    cmbParam* pp = _params[iPar-1];
-    _QQ(iPar,iPar) = pp->sig0 * pp->sig0;
+      _params.push_back(new cmbParam(cmbParam::clkSat, ++nextPar, "", prn));
+    }
+    
+    // Initialize Variance-Covariance Matrix
+    // -------------------------------------
+    _QQ.ReSize(_params.size());
+    _QQ = 0.0;
+    for (int iPar = 1; iPar <= _params.size(); iPar++) {
+      cmbParam* pp = _params[iPar-1];
+      _QQ(iPar,iPar) = pp->sig0 * pp->sig0;
+    }
   }
 
@@ -357,5 +367,15 @@
 ////////////////////////////////////////////////////////////////////////////
 void bncComb::processEpoch() {
-
+  if (_method == filter) {
+    return processEpoch_filter();
+  }
+  else {
+    return processEpoch_singleEpoch();
+  }
+}
+
+// Process Epoch - Filter Method
+////////////////////////////////////////////////////////////////////////////
+void bncComb::processEpoch_filter() {
   int nPar = _params.size();
 
@@ -743,2 +763,9 @@
   return success;
 }
+
+// Process Epoch - Single-Epoch Method
+////////////////////////////////////////////////////////////////////////////
+void bncComb::processEpoch_singleEpoch() {
+
+
+}
Index: trunk/BNC/combination/bnccomb.h
===================================================================
--- trunk/BNC/combination/bnccomb.h	(revision 3469)
+++ trunk/BNC/combination/bnccomb.h	(revision 3470)
@@ -43,4 +43,6 @@
  private:
 
+  enum e_method{singleEpoch, filter};
+
   class cmbAC {
    public:
@@ -74,4 +76,6 @@
 
   void processEpoch();
+  void processEpoch_filter();
+  void processEpoch_singleEpoch();
   t_irc createAmat(Matrix& AA, ColumnVector& ll, DiagonalMatrix& PP,
                    const ColumnVector& x0, QMap<QString, t_corr*>& resCorr);
@@ -93,4 +97,5 @@
   QString                 _masterOrbitAC;
   unsigned                _masterMissingEpochs;
+  e_method                _method;
 };
 
