Index: /trunk/BNC/bncantex.cpp
===================================================================
--- /trunk/BNC/bncantex.cpp	(revision 2893)
+++ /trunk/BNC/bncantex.cpp	(revision 2894)
@@ -61,5 +61,5 @@
 }
 
-// 
+// Print 
 ////////////////////////////////////////////////////////////////////////////
 void bncAntex::print() const {
@@ -86,5 +86,5 @@
 }
 
-// 
+// Read ANTEX File
 ////////////////////////////////////////////////////////////////////////////
 t_irc bncAntex::readFile(const QString& fileName) {
@@ -182,4 +182,7 @@
           QTextStream inLine(&line, QIODevice::ReadOnly);
           inLine >> newFrqMap->neu[0] >> newFrqMap->neu[1] >> newFrqMap->neu[2];
+          newFrqMap->neu[0] *= 1e-3;
+          newFrqMap->neu[1] *= 1e-3;
+          newFrqMap->neu[2] *= 1e-3;
         }
         else if (line.indexOf("NOAZI") == 3) {
@@ -192,4 +195,5 @@
             inLine >> newFrqMap->pattern[ii];
           }
+          newFrqMap->pattern *= 1e-3;
         }
       }
@@ -199,2 +203,24 @@
   return success;
 }
+
+// Phase Center Offset (Receiver Antenna and GPS only)
+////////////////////////////////////////////////////////////////////////////
+double bncAntex::pco(const QString& antName, double eleSat) {
+
+  static const double f1 = t_CST::freq1;
+  static const double f2 = t_CST::freq2;
+  static const double c1 =   f1 * f1 / (f1 * f1 - f2 * f2);
+  static const double c2 = - f2 * f2 / (f1 * f1 - f2 * f2);
+
+  QMap<QString, t_antMap*>::const_iterator it = _maps.find(antName);
+  if (it != _maps.end()) {
+    t_antMap* map = it.value();
+    if (map->frqMapL1 && map->frqMapL2) {
+      double corr1 = -map->frqMapL1->neu[2] * sin(eleSat);
+      double corr2 = -map->frqMapL2->neu[2] * sin(eleSat);
+      return c1 * corr1 + c2 * corr2;
+    }
+  }
+
+  return 0.0;
+}
Index: /trunk/BNC/bncantex.h
===================================================================
--- /trunk/BNC/bncantex.h	(revision 2893)
+++ /trunk/BNC/bncantex.h	(revision 2894)
@@ -37,4 +37,5 @@
   t_irc readFile(const QString& fileName);  
   void print() const;
+  double pco(const QString& antName, double eleSat);
 
  private:
Index: /trunk/BNC/bncmodel.cpp
===================================================================
--- /trunk/BNC/bncmodel.cpp	(revision 2893)
+++ /trunk/BNC/bncmodel.cpp	(revision 2894)
@@ -267,4 +267,5 @@
       _antex = 0;
     }
+    _antennaName = settings.value("pppAntenna").toString();
   }
 
@@ -386,5 +387,11 @@
   }
 
-  return satData->rho + clk() + offset - satData->clk + tropDelay + wind;
+  double phaseCenter = 0.0;
+  if (_antex) {
+    phaseCenter = _antex->pco(_antennaName, satData->eleSat);
+  }
+
+  return satData->rho + phaseCenter + clk() 
+                      + offset - satData->clk + tropDelay + wind;
 }
 
Index: /trunk/BNC/bncmodel.h
===================================================================
--- /trunk/BNC/bncmodel.h	(revision 2893)
+++ /trunk/BNC/bncmodel.h	(revision 2894)
@@ -155,4 +155,5 @@
   double                _sigClk0;
   bncAntex*             _antex;
+  QString               _antennaName;
 };
 
