Index: trunk/BNC/src/PPP/pppParlist.cpp
===================================================================
--- trunk/BNC/src/PPP/pppParlist.cpp	(revision 9491)
+++ trunk/BNC/src/PPP/pppParlist.cpp	(revision 9494)
@@ -384,5 +384,6 @@
 
     else if (par->type() == t_pppParam::amb) {
-      if (OPT->_obsModelType == OPT->DCMcodeBias ||  OPT->_obsModelType == OPT->DCMphaseBias) {
+      if (OPT->_obsModelType == OPT->DCMcodeBias ||
+          OPT->_obsModelType == OPT->DCMphaseBias) {
         t_prn refPrn = (refSatMap[par->prn().system()])->prn();
         if (par->lastObsTime().valid() &&
@@ -399,5 +400,6 @@
 
     else if (par->type() == t_pppParam::ion) {
-      if (OPT->_obsModelType == OPT->DCMcodeBias ||  OPT->_obsModelType == OPT->DCMphaseBias) {
+      if (OPT->_obsModelType == OPT->DCMcodeBias ||
+          OPT->_obsModelType == OPT->DCMphaseBias) {
         if (par->lastObsTime().valid() && (epoTime - par->lastObsTime() > 1.0)) {
             remove = true;
@@ -493,19 +495,40 @@
   // --------------------
   if (OPT->_obsModelType == OPT->DCMcodeBias) {
+    std::vector<t_lc::type> lc;
     if (_usedSystems.contains('G')) {
-      required.push_back(new t_pppParam(t_pppParam::cBiasG1, t_prn(), t_lc::c1));
-      required.push_back(new t_pppParam(t_pppParam::cBiasG2, t_prn(), t_lc::c2));
+      lc = OPT->LCs('G');
+      if (std::find(lc.begin(), lc.end(), t_lc::c1) != lc.end()) {
+        required.push_back(new t_pppParam(t_pppParam::cBiasG1, t_prn(), t_lc::c1));
+      }
+      if (std::find(lc.begin(), lc.end(), t_lc::c2) != lc.end()) {
+        required.push_back(new t_pppParam(t_pppParam::cBiasG2, t_prn(), t_lc::c2));
+      }
     }
     if (_usedSystems.contains('R')) {
-      required.push_back(new t_pppParam(t_pppParam::cBiasR1, t_prn(), t_lc::c1));
-      required.push_back(new t_pppParam(t_pppParam::cBiasR2, t_prn(), t_lc::c2));
+      lc = OPT->LCs('R');
+      if (std::find(lc.begin(), lc.end(), t_lc::c1) != lc.end()) {
+        required.push_back(new t_pppParam(t_pppParam::cBiasR1, t_prn(), t_lc::c1));
+      }
+      if (std::find(lc.begin(), lc.end(), t_lc::c2) != lc.end()) {
+        required.push_back(new t_pppParam(t_pppParam::cBiasR2, t_prn(), t_lc::c2));
+      }
     }
     if (_usedSystems.contains('E')) {
-      required.push_back(new t_pppParam(t_pppParam::cBiasE1, t_prn(), t_lc::c1));
-      required.push_back(new t_pppParam(t_pppParam::cBiasE2, t_prn(), t_lc::c2));
+      lc = OPT->LCs('E');
+      if (std::find(lc.begin(), lc.end(), t_lc::c1) != lc.end()) {
+        required.push_back(new t_pppParam(t_pppParam::cBiasE1, t_prn(), t_lc::c1));
+      }
+      if (std::find(lc.begin(), lc.end(), t_lc::c2) != lc.end()) {
+        required.push_back(new t_pppParam(t_pppParam::cBiasE2, t_prn(), t_lc::c2));
+      }
     }
     if (_usedSystems.contains('C')) {
-      required.push_back(new t_pppParam(t_pppParam::cBiasC1, t_prn(), t_lc::c1));
-      required.push_back(new t_pppParam(t_pppParam::cBiasC2, t_prn(), t_lc::c2));
+      lc = OPT->LCs('C');
+      if (std::find(lc.begin(), lc.end(), t_lc::c1) != lc.end()) {
+        required.push_back(new t_pppParam(t_pppParam::cBiasC1, t_prn(), t_lc::c1));
+      }
+      if (std::find(lc.begin(), lc.end(), t_lc::c2) != lc.end()) {
+        required.push_back(new t_pppParam(t_pppParam::cBiasC2, t_prn(), t_lc::c2));
+      }
     }
   }
@@ -515,19 +538,41 @@
   if ((OPT->_obsModelType == OPT->DCMphaseBias) ||
       (OPT->_obsModelType == OPT->PPPRTK)     ) {
+    std::vector<t_lc::type> lc;
     if (_usedSystems.contains('G')) {
-      required.push_back(new t_pppParam(t_pppParam::pBiasG1, t_prn(), t_lc::l1));
-      required.push_back(new t_pppParam(t_pppParam::pBiasG2, t_prn(), t_lc::l2));
+      lc = OPT->LCs('G');
+      if (std::find(lc.begin(), lc.end(), t_lc::l1) != lc.end()) {
+        required.push_back(new t_pppParam(t_pppParam::pBiasG1, t_prn(), t_lc::l1));
+      }
+      if (std::find(lc.begin(), lc.end(), t_lc::l2) != lc.end()) {
+        required.push_back(new t_pppParam(t_pppParam::pBiasG2, t_prn(), t_lc::l2));
+      }
     }
     if (_usedSystems.contains('R')) {
-      required.push_back(new t_pppParam(t_pppParam::pBiasR1, t_prn(), t_lc::l1));
-      required.push_back(new t_pppParam(t_pppParam::pBiasR2, t_prn(), t_lc::l2));
+      lc = OPT->LCs('R');
+      if (std::find(lc.begin(), lc.end(), t_lc::l1) != lc.end()) {
+        required.push_back(new t_pppParam(t_pppParam::pBiasR1, t_prn(), t_lc::l1));
+      }
+      if (std::find(lc.begin(), lc.end(), t_lc::l2) != lc.end()) {
+        required.push_back(new t_pppParam(t_pppParam::pBiasR2, t_prn(), t_lc::l2));
+      }
+
     }
     if (_usedSystems.contains('E')) {
-      required.push_back(new t_pppParam(t_pppParam::pBiasE1, t_prn(), t_lc::l1));
-      required.push_back(new t_pppParam(t_pppParam::pBiasE2, t_prn(), t_lc::l2));
+      lc = OPT->LCs('E');
+      if (std::find(lc.begin(), lc.end(), t_lc::l1) != lc.end()) {
+        required.push_back(new t_pppParam(t_pppParam::pBiasE1, t_prn(), t_lc::l1));
+      }
+      if (std::find(lc.begin(), lc.end(), t_lc::l2) != lc.end()) {
+        required.push_back(new t_pppParam(t_pppParam::pBiasE2, t_prn(), t_lc::l2));
+      }
     }
     if (_usedSystems.contains('C')) {
-      required.push_back(new t_pppParam(t_pppParam::pBiasC1, t_prn(), t_lc::l1));
-      required.push_back(new t_pppParam(t_pppParam::pBiasC2, t_prn(), t_lc::l2));
+      lc = OPT->LCs('C');
+      if (std::find(lc.begin(), lc.end(), t_lc::l1) != lc.end()) {
+        required.push_back(new t_pppParam(t_pppParam::pBiasC1, t_prn(), t_lc::l1));
+      }
+      if (std::find(lc.begin(), lc.end(), t_lc::l2) != lc.end()) {
+        required.push_back(new t_pppParam(t_pppParam::pBiasC2, t_prn(), t_lc::l2));
+      }
     }
   }
Index: trunk/BNC/src/PPP/pppSatObs.cpp
===================================================================
--- trunk/BNC/src/PPP/pppSatObs.cpp	(revision 9491)
+++ trunk/BNC/src/PPP/pppSatObs.cpp	(revision 9494)
@@ -366,4 +366,12 @@
 
   retVal = sqrt(retVal);
+
+  if (_prn.system() == 'R' && (t_lc::includesCode(tLC) ||  t_lc::includesPhase(tLC))) {
+    retVal *= 2.0;
+  }
+
+  if (_prn.system() == 'C' && (t_lc::includesCode(tLC) ||  t_lc::includesPhase(tLC))) {
+    retVal *= 2.0;
+  }
 
   return retVal;
