Index: trunk/BNC/src/PPP_SSR_I/pppFilter.cpp
===================================================================
--- trunk/BNC/src/PPP_SSR_I/pppFilter.cpp	(revision 7141)
+++ trunk/BNC/src/PPP_SSR_I/pppFilter.cpp	(revision 7142)
@@ -531,5 +531,5 @@
       // ----------
       else if (pp->type == t_pppParam::BDS_OFFSET) {
-        _QQ(iPar,iPar) += 0.1 * 0.1;    //TODO: TEST
+        _QQ(iPar,iPar) = 1000.0 * 1000.0;    //TODO: TEST
       }
     }
@@ -848,4 +848,7 @@
 void t_pppFilter::addAmb(t_satData* satData) {
   Tracer tracer("t_pppFilter::addAmb");
+  if (!OPT->ambLCs(satData->system()).size()){
+    return;
+  }
   bool    found = false;
   for (int iPar = 1; iPar <= _params.size(); iPar++) {
@@ -909,4 +912,7 @@
   else {
     double sigP3 = 2.98 * OPT->_sigmaC1;
+    if  (satData->system() == 'C') {
+      sigP3 *= BDS_WEIGHT_FACTOR;
+    }
     ll(iObs)      = satData->P3 - cmpValue(satData, false);
     PP(iObs,iObs) = 1.0 / (sigP3 * sigP3) / (ellWgtCoef * ellWgtCoef);
@@ -926,4 +932,5 @@
   ostringstream str;
   str.setf(ios::fixed);
+  bool useObs;
         
   QMapIterator<QString, t_satData*> it(satDataMap);
@@ -931,5 +938,7 @@
     it.next();
     t_satData* satData = it.value();
-    if (satData->obsIndex != 0) {
+    (iPhase == 0) ? useObs = OPT->codeLCs(satData->system()).size() :
+                    useObs = OPT->ambLCs(satData->system()).size();
+    if (satData->obsIndex != 0 && useObs) {
       str << _time.timestr(1)
           << " RES " << satData->prn.mid(0,3).toAscii().data()
@@ -1018,7 +1027,7 @@
       nObs = epoData->sizeAll();
       bool useObs = false;
-      char additionalSys[] ={'R', 'E', 'C'};
-      for (unsigned ii = 0; ii < sizeof(additionalSys); ii++) {
-        const char s = additionalSys[ii];
+      char sys[] ={'G', 'R', 'E', 'C'};
+      for (unsigned ii = 0; ii < sizeof(sys); ii++) {
+        const char s = sys[ii];
         (iPhase == 0) ? useObs = OPT->codeLCs(s).size() : useObs = OPT->ambLCs(s).size();
         if (!useObs) {
@@ -1039,7 +1048,7 @@
         t_satData* satData = it.value();
         QString prn = satData->prn;
-        char sys =   satData->system();
-        (iPhase == 0) ? useObs = OPT->codeLCs(sys).size() : useObs = OPT->ambLCs(sys).size();
-        if (sys == 'G' || useObs) {
+        (iPhase == 0) ? useObs = OPT->codeLCs(satData->system()).size() :
+                        useObs = OPT->ambLCs(satData->system()).size();
+        if (useObs) {
           addObs(iPhase, iObs, satData, AA, ll, PP);
         }
@@ -1054,5 +1063,5 @@
       // Print Residuals
       // ---------------
-      if (iPhase == 0) {
+      if      (iPhase == 0) {
         strResCode  = printRes(iPhase, vv, epoData->satData);
       }
