Index: trunk/BNC/bncmodel.cpp
===================================================================
--- trunk/BNC/bncmodel.cpp	(revision 2781)
+++ trunk/BNC/bncmodel.cpp	(revision 2782)
@@ -64,7 +64,4 @@
 const double   MAXRES_PHASE_GAL = 9999.10;
 
-const double   _sigP3_gal = 9999.0;
-const double   _sigL3_gal = 0.10;
-
 // Constructor
 ////////////////////////////////////////////////////////////////////////////
@@ -112,4 +109,15 @@
   }
 
+  // Galileo Offset
+  // --------------
+  else if (type == GALILEO_OFFSET) {
+    if (satData->prn[0] == 'E') {
+      return 1.0;
+    }
+    else {
+      return 0.0;
+    }
+  }
+
   // Ambiguities
   // -----------
@@ -165,6 +173,8 @@
     _sigTrpP = settings.value("pppSigTrpP").toDouble();
   }
-  _sigClk0 = 1000.0;
-  _sigAmb0 = 1000.0;
+  _sigClk0           = 1000.0;
+  _sigAmb0           = 1000.0;
+  _sigGalileoOffset0 = 1000.0;
+  _sigGalileoOffsetP = 1000.0;
 
   // Quick-Start Mode
@@ -210,5 +220,8 @@
   _params.push_back(new bncParam(bncParam::RECCLK, ++nextPar, ""));
   if (_estTropo) {
-    _params.push_back(new bncParam(bncParam::TROPO,       ++nextPar, ""));
+    _params.push_back(new bncParam(bncParam::TROPO, ++nextPar, ""));
+  }
+  if (_useGalileo) {
+    _params.push_back(new bncParam(bncParam::GALILEO_OFFSET, ++nextPar, ""));
   }
 
@@ -229,4 +242,7 @@
     else if (pp->type == bncParam::TROPO) {
       _QQ(iPar,iPar) = _sigTrp0 * _sigTrp0; 
+    }
+    else if (pp->type == bncParam::GALILEO_OFFSET) {
+      _QQ(iPar,iPar) = _sigGalileoOffset0 * _sigGalileoOffset0; 
     }
   }
@@ -522,4 +538,10 @@
       _QQ(iPar,iPar) += _sigTrpP * _sigTrpP;
     }
+
+    // Galileo Offset
+    // --------------
+    else if (pp->type == bncParam::GALILEO_OFFSET) {
+      _QQ(iPar,iPar) += _sigGalileoOffsetP * _sigGalileoOffsetP;
+    }
   }
 
@@ -763,5 +785,5 @@
     
       ll(iObs)      = satData->P3 - cmpValue(satData, false);
-      PP(iObs,iObs) = 1.0 / (_sigP3_gal * _sigP3_gal);
+      PP(iObs,iObs) = 1.0 / (_sigP3 * _sigP3);
       for (int iPar = 1; iPar <= _params.size(); iPar++) {
         AA(iObs, iPar) = _params[iPar-1]->partial(satData, false);
@@ -771,5 +793,5 @@
         ++iObs;
         ll(iObs)      = satData->L3 - cmpValue(satData, true);
-        PP(iObs,iObs) = 1.0 / (_sigL3_gal * _sigL3_gal);
+        PP(iObs,iObs) = 1.0 / (_sigL3 * _sigL3);
         for (int iPar = 1; iPar <= _params.size(); iPar++) {
           if (_params[iPar-1]->type == bncParam::AMB_L3 &&
@@ -832,7 +854,7 @@
     }
     if (_useGalileo) {
-      strA   << "res Galileo P " << setw(8) << setprecision(3) << vv_gal_code.t(); 
+      strA << "Galileo code    " << setw(8) << setprecision(3) << vv_gal_code.t(); 
       if (_usePhase) {
-        strA << "res Galileo C " << setw(8) << setprecision(3) << vv_gal_phase.t();
+        strA << "Galileo phase   " << setw(8) << setprecision(3) << vv_gal_phase.t();
       }
     }
@@ -875,4 +897,9 @@
            << sqrt(_QQ(par->index,par->index));
       newPos->xnt[6] = aprTrp + par->xx;
+    }
+    else if (par->type == bncParam::GALILEO_OFFSET) {
+      strB << "\n    offset  = " << setw(6) << setprecision(3) << par->xx 
+           << " +- " << setw(6) << setprecision(3) 
+           << sqrt(_QQ(par->index,par->index));
     }
   }
Index: trunk/BNC/bncmodel.h
===================================================================
--- trunk/BNC/bncmodel.h	(revision 2781)
+++ trunk/BNC/bncmodel.h	(revision 2782)
@@ -38,5 +38,5 @@
 class bncParam {
  public:
-  enum parType {CRD_X, CRD_Y, CRD_Z, RECCLK, TROPO, AMB_L3};
+  enum parType {CRD_X, CRD_Y, CRD_Z, RECCLK, TROPO, AMB_L3, GALILEO_OFFSET};
   bncParam(parType typeIn, int indexIn, const QString& prn);
   ~bncParam();
@@ -68,4 +68,13 @@
       bncParam* pp = _params[ii];
       if (pp->type == bncParam::TROPO) {
+        return pp->xx;
+      }
+    }
+    return 0.0;
+  }
+  double Galileo_offset() const {
+    for (int ii = 0; ii < _params.size(); ++ii) {
+      bncParam* pp = _params[ii];
+      if (pp->type == bncParam::GALILEO_OFFSET) {
         return pp->xx;
       }
@@ -130,4 +139,6 @@
   double                _sigTrp0;
   double                _sigTrpP;
+  double                _sigGalileoOffset0;
+  double                _sigGalileoOffsetP;
   double                _sigL3;
   double                _sigP3;
