Index: trunk/BNC/src/pppMain.cpp
===================================================================
--- trunk/BNC/src/pppMain.cpp	(revision 9490)
+++ trunk/BNC/src/pppMain.cpp	(revision 9494)
@@ -181,5 +181,5 @@
     opt->_sigmaC1      = settings.value("PPP/sigmaC1").toDouble(); if (opt->_sigmaC1 <= 0.0)  opt->_sigmaC1  = 1.00;
     opt->_sigmaL1      = settings.value("PPP/sigmaL1").toDouble(); if (opt->_sigmaL1 <= 0.0)  opt->_sigmaL1  = 0.01;
-    opt->_sigmaGIM     = settings.value("PPP/sigmaGIM").toDouble();if (opt->_sigmaGIM <= 0.0) opt->_sigmaGIM = 4.00;
+    opt->_sigmaGIM     = settings.value("PPP/sigmaGIM").toDouble();if (opt->_sigmaGIM <= 0.0) opt->_sigmaGIM = 3.00;
     opt->_sigmaTz0     = settings.value("PPP/sigmaTz0").toDouble();if (opt->_sigmaTz0 <= 0.0) opt->_sigmaTz0 = 0.10;
     opt->_corrWaitTime = settings.value("PPP/corrWaitTime").toDouble();
@@ -225,5 +225,4 @@
       opt->_obsModelType = t_pppOptions::DCMcodeBias;
       opt->_refSatRequired = true;
-      opt->_noiseIon       = 1e4;
       opt->_noiseCodeBias  = 1e4;
     }
@@ -253,4 +252,34 @@
       }
     }
+    if (settings.value("PPP/lcGPS").toString() == "Pi") {
+      if (opt->_obsModelType == t_pppOptions::IF) {
+        opt->_LCsGPS.push_back(t_lc::cIF);
+      }
+      else {
+        opt->_LCsGPS.push_back(t_lc::c1);
+        opt->_LCsGPS.push_back(t_lc::c2);
+        if (opt->_pseudoObsIono) {
+          opt->_LCsGPS.push_back(t_lc::GIM);
+        }
+        if (opt->_pseudoObsTropo) {
+          opt->_LCsGPS.push_back(t_lc::Tz0);
+        }
+      }
+    }
+    if (settings.value("PPP/lcGPS").toString() == "Li") {
+      if (opt->_obsModelType == t_pppOptions::IF) {
+        opt->_LCsGPS.push_back(t_lc::lIF);
+      }
+      else {
+        opt->_LCsGPS.push_back(t_lc::l1);
+        opt->_LCsGPS.push_back(t_lc::l2);
+        if (opt->_pseudoObsIono) {
+          opt->_LCsGPS.push_back(t_lc::GIM);
+        }
+        if (opt->_pseudoObsTropo) {
+          opt->_LCsGPS.push_back(t_lc::Tz0);
+        }
+      }
+    }
     // GLONASS
     if (settings.value("PPP/lcGLONASS").toString() == "Pi&Li") {
@@ -272,4 +301,34 @@
       }
     }
+    if (settings.value("PPP/lcGLONASS").toString() == "Pi") {
+      if (opt->_obsModelType == t_pppOptions::IF) {
+        opt->_LCsGLONASS.push_back(t_lc::cIF);
+      }
+      else {
+        opt->_LCsGLONASS.push_back(t_lc::c1);
+        opt->_LCsGLONASS.push_back(t_lc::c2);
+        if (opt->_pseudoObsIono) {
+          opt->_LCsGLONASS.push_back(t_lc::GIM);
+        }
+        if (opt->_pseudoObsTropo) {
+          opt->_LCsGLONASS.push_back(t_lc::Tz0);
+        }
+      }
+    }
+    if (settings.value("PPP/lcGLONASS").toString() == "Li") {
+      if (opt->_obsModelType == t_pppOptions::IF) {
+        opt->_LCsGLONASS.push_back(t_lc::lIF);
+      }
+      else {
+        opt->_LCsGLONASS.push_back(t_lc::l1);
+        opt->_LCsGLONASS.push_back(t_lc::l2);
+        if (opt->_pseudoObsIono) {
+          opt->_LCsGLONASS.push_back(t_lc::GIM);
+        }
+        if (opt->_pseudoObsTropo) {
+          opt->_LCsGLONASS.push_back(t_lc::Tz0);
+        }
+      }
+    }
     // Galileo
     if (settings.value("PPP/lcGalileo").toString() == "Pi&Li") {
@@ -291,4 +350,34 @@
       }
     }
+    if (settings.value("PPP/lcGalileo").toString() == "Pi") {
+      if (opt->_obsModelType == t_pppOptions::IF) {
+        opt->_LCsGalileo.push_back(t_lc::cIF);
+      }
+      else {
+        opt->_LCsGalileo.push_back(t_lc::c1);
+        opt->_LCsGalileo.push_back(t_lc::c2);
+        if (opt->_pseudoObsIono) {
+          opt->_LCsGalileo.push_back(t_lc::GIM);
+        }
+        if (opt->_pseudoObsTropo) {
+          opt->_LCsGalileo.push_back(t_lc::Tz0);
+        }
+      }
+    }
+    if (settings.value("PPP/lcGalileo").toString() == "Li") {
+      if (opt->_obsModelType == t_pppOptions::IF) {
+        opt->_LCsGalileo.push_back(t_lc::lIF);
+      }
+      else {
+        opt->_LCsGalileo.push_back(t_lc::l1);
+        opt->_LCsGalileo.push_back(t_lc::l2);
+        if (opt->_pseudoObsIono) {
+          opt->_LCsGalileo.push_back(t_lc::GIM);
+        }
+        if (opt->_pseudoObsTropo) {
+          opt->_LCsGalileo.push_back(t_lc::Tz0);
+        }
+      }
+    }
     // BDS
     if (settings.value("PPP/lcBDS").toString() == "Pi&Li") {
@@ -310,5 +399,34 @@
       }
     }
-
+    if (settings.value("PPP/lcBDS").toString() == "Pi") {
+      if (opt->_obsModelType == t_pppOptions::IF) {
+        opt->_LCsBDS.push_back(t_lc::cIF);
+      }
+      else {
+        opt->_LCsBDS.push_back(t_lc::c1);
+        opt->_LCsBDS.push_back(t_lc::c2);
+        if (opt->_pseudoObsIono) {
+          opt->_LCsBDS.push_back(t_lc::GIM);
+        }
+        if (opt->_pseudoObsTropo) {
+          opt->_LCsBDS.push_back(t_lc::Tz0);
+        }
+      }
+    }
+    if (settings.value("PPP/lcBDS").toString() == "Li") {
+      if (opt->_obsModelType == t_pppOptions::IF) {
+        opt->_LCsBDS.push_back(t_lc::lIF);
+      }
+      else {
+        opt->_LCsBDS.push_back(t_lc::l1);
+        opt->_LCsBDS.push_back(t_lc::l2);
+        if (opt->_pseudoObsIono) {
+          opt->_LCsBDS.push_back(t_lc::GIM);
+        }
+        if (opt->_pseudoObsTropo) {
+          opt->_LCsBDS.push_back(t_lc::Tz0);
+        }
+      }
+    }
     // Information from the coordinate file
     // ------------------------------------
@@ -335,5 +453,5 @@
     opt->_minObs      = settings.value("PPP/minObs").toInt(); if (opt->_minObs < 5) opt->_minObs = 5;
     opt->_minEle      = settings.value("PPP/minEle").toDouble() * M_PI / 180.0;
-    opt->_maxResC1    = settings.value("PPP/maxResC1").toDouble(); if (opt->_maxResC1 <= 0.0) opt->_maxResC1 = 3.00;
+    opt->_maxResC1    = settings.value("PPP/maxResC1").toDouble(); if (opt->_maxResC1 <= 0.0) opt->_maxResC1 = 3.0;
     opt->_maxResL1    = settings.value("PPP/maxResL1").toDouble(); if (opt->_maxResL1 <= 0.0) opt->_maxResL1 = 0.03;
     opt->_eleWgtCode  = (settings.value("PPP/eleWgtCode").toInt() != 0);
