Index: /trunk/BNC/src/PPP/pppClient.cpp
===================================================================
--- /trunk/BNC/src/PPP/pppClient.cpp	(revision 6019)
+++ /trunk/BNC/src/PPP/pppClient.cpp	(revision 6020)
@@ -206,5 +206,5 @@
                                   ColumnVector& xyzc, bool print) {
 
-  t_lc::type tLC = (OPT->dualFreqRequired('G') ? t_lc::cIF : t_lc::c1);
+  t_lc::type tLC = t_lc::dummy;
 
   while (true) {
@@ -213,11 +213,15 @@
     for (unsigned ii = 0; ii < obsVector.size(); ii++) {
       const t_pppSatObs* satObs = obsVector.at(ii);
-      if ( satObs->isValid() && satObs->prn().system() == 'G' &&
-           (!satObs->modelSet() || satObs->eleSat() >= OPT->_minEle) ) {
-        ++iObs;   
-        BB[iObs][0] = satObs->xc()[0];
-        BB[iObs][1] = satObs->xc()[1];
-        BB[iObs][2] = satObs->xc()[2];
-        BB[iObs][3] = satObs->obsValue(tLC) - satObs->cmpValueForBanc(tLC);
+      if (satObs->prn().system() == 'G') {
+        if (tLC == t_lc::dummy) {
+          tLC = satObs->isValid(t_lc::cIF) ? t_lc::cIF : t_lc::c1;
+        }
+        if ( satObs->isValid(tLC) && (!satObs->modelSet() || satObs->eleSat() >= OPT->_minEle) ) {
+          ++iObs;   
+          BB[iObs][0] = satObs->xc()[0];
+          BB[iObs][1] = satObs->xc()[1];
+          BB[iObs][2] = satObs->xc()[2];
+          BB[iObs][3] = satObs->obsValue(tLC) - satObs->cmpValueForBanc(tLC);
+        }
       }
     }
@@ -276,5 +280,5 @@
 double t_pppClient::cmpOffGG(vector<t_pppSatObs*>& obsVector) {
 
-  t_lc::type tLC   = (OPT->dualFreqRequired('R') ? t_lc::cIF : t_lc::c1);
+  t_lc::type tLC   = t_lc::dummy;
   double     offGG = 0.0;
 
@@ -289,13 +293,17 @@
       for (unsigned ii = 0; ii < obsVector.size(); ii++) {
         t_pppSatObs* satObs = obsVector.at(ii);
-        if ( satObs->isValid() && satObs->prn().system() == 'R' &&
-             (!satObs->modelSet() || satObs->eleSat() >= OPT->_minEle) ) {
-          double ll = satObs->obsValue(tLC) - satObs->cmpValue(tLC);
-          ++nObs;
-          offGG += ll;
-          if (fabs(ll) > fabs(maxRes)) {
-            maxRes      = ll;
-            maxResIndex = ii;
-            maxResPrn   = satObs->prn();
+        if (satObs->prn().system() == 'R') {
+          if (tLC == t_lc::dummy) {
+            tLC = satObs->isValid(t_lc::cIF) ? t_lc::cIF : t_lc::c1;
+          }
+          if (satObs->isValid(tLC) && (!satObs->modelSet() || satObs->eleSat() >= OPT->_minEle)) {
+            double ll = satObs->obsValue(tLC) - satObs->cmpValue(tLC);
+            ++nObs;
+            offGG += ll;
+            if (fabs(ll) > fabs(maxRes)) {
+              maxRes      = ll;
+              maxResIndex = ii;
+              maxResPrn   = satObs->prn();
+            }
           }
         }
Index: /trunk/BNC/src/PPP/pppSatObs.h
===================================================================
--- /trunk/BNC/src/PPP/pppSatObs.h	(revision 6019)
+++ /trunk/BNC/src/PPP/pppSatObs.h	(revision 6020)
@@ -17,4 +17,5 @@
   ~t_pppSatObs();
   bool                isValid() const;
+  bool                isValid(t_lc::type tLC) const;
   const t_prn&        prn() const {return _prn;}
   const ColumnVector& xc() const {return _xcSat;}
