Index: trunk/BNC/src/bncantex.cpp
===================================================================
--- trunk/BNC/src/bncantex.cpp	(revision 10129)
+++ trunk/BNC/src/bncantex.cpp	(revision 10130)
@@ -118,4 +118,21 @@
 }
 
+// Print
+////////////////////////////////////////////////////////////////////////////
+QString bncAntex::snxCodeSinexString(const std::string& antName) {
+
+  if (antName.find("NULLANTENNA") != string::npos) {
+    return QString(" ----------");
+  }
+
+  QString antNameQ = antName.c_str();
+  if (_maps.find(antNameQ) == _maps.end()) {
+    return QString(" ----------");
+  }
+  else {
+    return QString(" %1").arg(_maps[antNameQ]->snxCode, 10, QLatin1Char(' '));
+  }
+}
+
 // Read ANTEX File
 ////////////////////////////////////////////////////////////////////////////
@@ -182,4 +199,8 @@
         inLine >> newAntMap->zen1 >> newAntMap->zen2 >> newAntMap->dZen;
       }
+      else if (line.indexOf("SINEX CODE") == 60) {
+        QTextStream inLine(&line, QIODevice::ReadOnly);
+        inLine >> newAntMap->snxCode;
+      }
 
       // Start of Frequency
Index: trunk/BNC/src/bncantex.h
===================================================================
--- trunk/BNC/src/bncantex.h	(revision 10129)
+++ trunk/BNC/src/bncantex.h	(revision 10130)
@@ -41,4 +41,5 @@
   void    print() const;
   QString pcoSinexString(const std::string& antName, t_frequency::type frqType);
+  QString snxCodeSinexString(const std::string& antName);
   double  satCorr(const QString& prn, t_frequency::type frqType,
                   double eleSat, double azSat, bool& found) const;
@@ -63,7 +64,8 @@
    public:
     t_antMap() {
-      zen1 = 0.0;
-      zen2 = 0.0;
-      dZen = 0.0;
+      zen1    = 0.0;
+      zen2    = 0.0;
+      dZen    = 0.0;
+      snxCode = "";
     }
     ~t_antMap() {
@@ -78,4 +80,5 @@
     double                             zen2;
     double                             dZen;
+    QString                            snxCode;
     QMap<t_frequency::type, t_frqMap*> frqMap;
     bncTime                            validFrom;
Index: trunk/BNC/src/bncsinextro.cpp
===================================================================
--- trunk/BNC/src/bncsinextro.cpp	(revision 10129)
+++ trunk/BNC/src/bncsinextro.cpp	(revision 10130)
@@ -32,5 +32,5 @@
 
   _opt   = opt;
-  _sampl =  sampl;
+  _sampl = sampl;
 
   _antex = 0;
@@ -54,6 +54,6 @@
   int daysec    = int(fmod(GPSWeeks, 86400.0));
   int dayOfYear = datTim.date().dayOfYear();
-  QString yy    = datTim.toString("yy");
-  QString creationTime = QString("%1:%2:%3").arg(yy)
+  QString yyyy  = datTim.toString("yyyy");
+  QString creationTime = QString("%1:%2:%3").arg(yyyy)
                                             .arg(dayOfYear, 3, 10, QLatin1Char('0'))
                                             .arg(daysec   , 5, 10, QLatin1Char('0'));
@@ -75,5 +75,5 @@
   int nominalStartSec = daysec - (int(fmod(double(daysec), double(intr))));
   int nominalEndSec = nominalStartSec + intr - _sampl;
-  QString endTime = QString("%1:%2:%3").arg(yy)
+  QString endTime = QString("%1:%2:%3").arg(yyyy)
                                        .arg(dayOfYear     , 3, 10, QLatin1Char('0'))
                                        .arg(nominalEndSec , 5, 10, QLatin1Char('0'));
@@ -89,5 +89,4 @@
     corr = settings.value("PPP/corrFile").toString();
   }
-
   QString signalPriorities = QString::fromStdString(_opt->_signalPriorities);
   if (!signalPriorities.size()) {
@@ -117,5 +116,5 @@
        << creationTime.toStdString() << " " << ac.toStdString() << " "
        << startTime.toStdString()    << " " << endTime.toStdString() << " P "
-       << epo.toStdString() << " 0 " << " T " << endl;
+       << _opt->_roverName.substr(0,9) << endl;
   _out << "*-------------------------------------------------------------------------------" << endl;
   _out << "+FILE/REFERENCE" << endl;
@@ -124,10 +123,14 @@
   _out << " OUTPUT             " << "Total Troposphere Zenith Path Delay Product" << endl;
   _out << " SOFTWARE           " <<  BNCPGMNAME <<  endl;
-  _out << " INPUT              " << "OBS: "    << _opt->_roverName.substr(0,9) << ", SSR: "  << corr.toStdString() << endl;
-  _out << " VERSON NUMBER      " <<  QString("%1").arg(solId, 10, QLatin1Char(' ')).toStdString() << endl;
+  _out << " INPUT              " << "OBS: "    << _opt->_roverName.substr(0,9) << ", SSR: " << corr.toStdString() << endl;
+  _out << " VERSON NUMBER      " <<  QString("%1").arg(solId, 3, QLatin1Char('0')).toStdString() << endl;
   _out << "-FILE/REFERENCE" << endl;
   _out << "*-------------------------------------------------------------------------------" << endl;
 
-
+  QString systems;
+  if (settings.value("PPP/lcGPS"    ).toString() != "no") {systems += "G, ";}
+  if (settings.value("PPP/lcGLONASS").toString() != "no") {systems += "R, ";}
+  if (settings.value("PPP/lcGalileo").toString() != "no") {systems += "E, ";}
+  if (settings.value("PPP/lcBDS"    ).toString() != "no") {systems += "C";}
   QString blqFileName = QString::fromStdString(_opt->_blqFileName);
   QString blqFileBaseName;
@@ -141,17 +144,25 @@
     }
   }
+  bool eleWeighting = false;
+  if (settings.value("PPP/eleWgtCode").toInt() > 0 ||
+      settings.value("PPP/eleWgtCode").toInt() > 0 ) {
+    eleWeighting = true;
+  }
+
   _out << "+TROP/DESCRIPTION" << endl;
   _out << "*KEYWORD______________________ VALUE(S)______________" << endl;
-  _out << " SAMPLING INTERVAL                               "
-       << setw(4) << _sampl << endl;
-  _out << " SAMPLING TROP                                   "
-       << setw(4) << _sampl << endl;
-  _out << " ELEVATION CUTOFF ANGLE                          "
-       << setw(4) <<  int(_opt->_minEle * 180.0/M_PI) << endl;
+  _out << " TROPO SAMPLING INTERVAL       " << setw(22) << 1 << endl;
+  _out << " DATA SAMPLING TROP            " << setw(22) << _sampl << endl;
+  _out << " ELEVATION CUTOFF ANGLE        " << setw(22) <<  int(_opt->_minEle * 180.0/M_PI) << endl;
+  _out << " OBSERVATION WEIGHTING         " << ((eleWeighting) ? "SINEL" : "") << endl;
+  _out << " GNSS SYSTEMS                  " << systems.toStdString()  << endl;
+  _out << " TIME SYSTEM                   " << "G"      << endl;
+  _out << " TROPO MODELING METHOD         " << "KALMAN FILTER"  << endl;
   if (! blqFileName.isEmpty()) {
     _out << " OCEAN TIDE LOADING MODEL      " << blqFileBaseName.toStdString() + blqFileExtension.toStdString() << endl;
   }
   _out << " TROP MAPPING FUNCTION         " << "Saastamoinen" << endl;
-  _out << " SOLUTION_FIELDS_1             " << "TROTOT STDEV" << endl;
+  _out << " TROPO PARAMETER NAMES         " << "TROTOT STDEV" << endl;
+  _out << " TROPO PARAMETER UNITS         " << "1e+03  1e+03" << endl;
   _out << "-TROP/DESCRIPTION"<< endl;
   _out << "*-------------------------------------------------------------------------------" << endl;
@@ -185,11 +196,13 @@
 
   _out << "+TROP/COORDINATES" << endl;
-  _out << "*SITE      PT SOLN T STA_X_______ STA_Y_______ STA_Z_______ SYSTEM REMARK" << endl;
+  _out << "*STATION__ PT SOLN T __DATA_START__ __DATA_END____ __STA_X_____ __STA_Y_____ __STA_Z_____ SYSTEM REMRK" << endl;
   _out << " " << _opt->_roverName.substr(0,9) << "  A "
-       <<  solId.toStdString() << " P"
+       << QString("%1").arg(solId, 4, QLatin1Char(' ')).toStdString() << " P "
+       << startTime.toStdString() << " " << endTime.toStdString()
        << QString(" %1").arg(_opt->_xyzAprRover(1), 12, 'f', 3, QLatin1Char(' ')).toStdString()
        << QString(" %1").arg(_opt->_xyzAprRover(2), 12, 'f', 3, QLatin1Char(' ')).toStdString()
        << QString(" %1").arg(_opt->_xyzAprRover(3), 12, 'f', 3, QLatin1Char(' ')).toStdString()
-       << " IGS20 " << ac.toStdString() << endl;
+       << QString(" %1").arg("IGS20", 6, QLatin1Char(' ')).toStdString()
+       << QString(" %1").arg(ac,      5, QLatin1Char(' ')).toStdString() << endl;
   _out << "-TROP/COORDINATES"<< endl;
   _out << "*-------------------------------------------------------------------------------" << endl;
@@ -197,12 +210,13 @@
 
   _out << "+SITE/ECCENTRICITY" << endl;
-  _out << "*                                             UP______ NORTH___ EAST____" << endl;
-  _out << "*SITE      PT SOLN T DATA_START__ DATA_END____ AXE ARP->BENCHMARK(M)_________" << endl;
+  _out << "*                                                     UP______ NORTH___ EAST____" << endl;
+  _out << "*STATION__ PT SOLN T __DATA_START__ __DATA_END____ AXE MARKER->ARP(m)__________" << endl;
   _out << " " << _opt->_roverName.substr(0,9) << "  A "
-       <<  solId.toStdString() << " P "
-       << startTime.toStdString() << " " << endTime.toStdString() << " UNE"
-       << QString("%1").arg(_opt->_neuEccRover(3), 9, 'f', 4, QLatin1Char(' ')).toStdString()
-       << QString("%1").arg(_opt->_neuEccRover(1), 9, 'f', 4, QLatin1Char(' ')).toStdString()
-       << QString("%1").arg(_opt->_neuEccRover(2), 9, 'f', 4, QLatin1Char(' ')).toStdString() << endl;
+       << QString("%1").arg(solId, 4, QLatin1Char(' ')).toStdString() << " P "
+       << startTime.toStdString() << " " << endTime.toStdString()
+       << QString(" %1").arg("UNE", 3, QLatin1Char(' ')).toStdString()
+       << QString("%1").arg(_opt->_neuEccRover(3), 8, 'f', 4, QLatin1Char(' ')).toStdString()
+       << QString("%1").arg(_opt->_neuEccRover(1), 8, 'f', 4, QLatin1Char(' ')).toStdString()
+       << QString("%1").arg(_opt->_neuEccRover(2), 8, 'f', 4, QLatin1Char(' ')).toStdString() << endl;
   _out << "-SITE/ECCENTRICITY" << endl;
   _out << "*-------------------------------------------------------------------------------" << endl;
@@ -211,86 +225,26 @@
     _out << "+SITE/RECEIVER" << endl;
     _out << "*STATION__ PT SOLN T __DATA_START__ __DATA_END____ DESCRIPTION_________ S/N_________________ FIRMW______" << endl;
-    _out << " " << _opt->_roverName.substr(0,9) << "  A "  <<  solId.toStdString() << " P "
+    _out << " " << _opt->_roverName.substr(0,9) << "  A "
+         << QString("%1").arg(solId, 4, QLatin1Char(' ')).toStdString() << " P "
          << startTime.toStdString() << " " << endTime.toStdString()
          << QString(" %1").arg(_opt->_recNameRover.c_str(), 20,QLatin1Char(' ')).toStdString()
-         << " -----" << " -----------" << endl;
+         << " --------------------" << " -----------" << endl;
     _out << "-SITE/RECEIVER" << endl;
     _out << "*-------------------------------------------------------------------------------" << endl;
   }
-
-  _out << "+SITE/ANTENNA" << endl;
-  _out << "*STATION__ PT SOLN T __DATA_START__ __DATA_END____ DESCRIPTION_________ S/N_________________ PCV_MODEL_" << endl;
-  _out << " " << _opt->_roverName.substr(0,9) << "  A "  <<  solId.toStdString() << " P "
-       << startTime.toStdString() << " " << endTime.toStdString() << " "
-       << _opt->_antNameRover << " -----" << endl;
-  _out << "-SITE/ANTENNA" << endl;
-  _out << "*-------------------------------------------------------------------------------" << endl;
-
   if (!_opt->_antexFileName.empty()) {
     _antex = new bncAntex(_opt->_antexFileName.c_str());
-    if (_opt->_LCsGPS.size()) {
-      _out << "+SITE/GPS_PHASE_CENTER" << endl;
-      _out << "*                           UP____ NORTH_ EAST__ UP____ NORTH_ EAST__" << endl;
-      _out << "*DESCRIPTION_________ S/N__ L1->ARP(m)__________ L2->ARP(m)__________ AZ_EL____" << endl;
-      _out << QString(" %1").arg(_opt->_antNameRover.c_str(), 20,QLatin1Char(' ')).toStdString()
-           <<  " -----";
-           for (int i = 0; i < frqStrList.size(); ++i) {
-             if (frqStrList.at(i).contains('G')) {//cout << frqStrList.at(i).toStdString() << endl;
-               _out << _antex->pcoSinexString(_opt->_antNameRover, t_frequency::toInt(frqStrList.at(i).toStdString())).toStdString();
-             }
-           }
-      _out << " ---------" << endl;
-      _out << "-SITE/GPS_PHASE_CENTER" << endl;
-      _out << "*-------------------------------------------------------------------------------" << endl;
-    }
-    if (_opt->_LCsGLONASS.size()) {
-      _out << "+SITE/GLONASS_PHASE_CENTER" << endl;
-      _out << "*                           UP____ NORTH_ EAST__ UP____ NORTH_ EAST__" << endl;
-      _out << "*DESCRIPTION_________ S/N__ L1->ARP(m)__________ L2->ARP(m)__________ AZ_EL____" << endl;
-      _out << QString(" %1").arg(_opt->_antNameRover.c_str(), 20,QLatin1Char(' ')).toStdString()
-           <<  " -----";
-           for (int i = 0; i < frqStrList.size(); ++i) {
-             if (frqStrList.at(i).contains('R')) {//cout << frqStrList.at(i).toStdString() << endl;
-               _out << _antex->pcoSinexString(_opt->_antNameRover, t_frequency::toInt(frqStrList.at(i).toStdString())).toStdString();
-             }
-           }
-      _out << " ---------" << endl;
-      _out << "-SITE/GLONASS_PHASE_CENTER" << endl;
-      _out << "*-------------------------------------------------------------------------------" << endl;
-    }
-    if (_opt->_LCsGalileo.size()) {
-      _out << "+SITE/GALILEO_PHASE_CENTER" << endl;
-      _out << "*                           UP____ NORTH_ EAST__ UP____ NORTH_ EAST__" << endl;
-      _out << "*DESCRIPTION_________ S/N__ L1->ARP(m)__________ L2->ARP(m)__________ AZ_EL____" << endl;
-      _out << QString(" %1").arg(_opt->_antNameRover.c_str(), 20,QLatin1Char(' ')).toStdString()
-           <<  " -----";
-           for (int i = 0; i < frqStrList.size(); ++i) {
-             if (frqStrList.at(i).contains('E')) {//cout << frqStrList.at(i).toStdString() << endl;
-               _out << _antex->pcoSinexString(_opt->_antNameRover, t_frequency::toInt(frqStrList.at(i).toStdString())).toStdString();
-             }
-           }
-      _out << " ---------" << endl;
-      _out << "-SITE/GALILEO_PHASE_CENTER" << endl;
-      _out << "*-------------------------------------------------------------------------------" << endl;
-    }
-    if (_opt->_LCsBDS.size()) {
-      _out << "+SITE/BEIDOU_PHASE_CENTER" << endl;
-      _out << "*                           UP____ NORTH_ EAST__ UP____ NORTH_ EAST__" << endl;
-      _out << "*DESCRIPTION_________ S/N__ L1->ARP(m)__________ L2->ARP(m)__________ AZ_EL____" << endl;
-      _out << QString(" %1").arg(_opt->_antNameRover.c_str(), 20,QLatin1Char(' ')).toStdString()
-               <<  " -----";
-               for (int i = 0; i < frqStrList.size(); ++i) {
-                 if (frqStrList.at(i).contains('C')) {//cout << frqStrList.at(i).toStdString() << endl;
-                   _out << _antex->pcoSinexString(_opt->_antNameRover, t_frequency::toInt(frqStrList.at(i).toStdString())).toStdString();
-                 }
-               }
-      _out << " ---------" << endl;
-      _out << "-SITE/BEIDOU_PHASE_CENTER" << endl;
-      _out << "*-------------------------------------------------------------------------------" << endl;
-    }
+    _out << "+SITE/ANTENNA" << endl;
+    _out << "*STATION__ PT SOLN T __DATA_START__ __DATA_END____ DESCRIPTION_________ S/N_________________ PCV_MODEL_" << endl;
+    _out << " " << _opt->_roverName.substr(0,9) << "  A "
+         << QString("%1").arg(solId, 4, QLatin1Char(' ')).toStdString() << " P "
+         << startTime.toStdString() << " " << endTime.toStdString()
+         << QString(" %1").arg(_opt->_antNameRover.c_str(), 20,QLatin1Char(' ')).toStdString()
+         << " --------------------" << _antex->snxCodeSinexString(_opt->_antNameRover).toStdString() << endl;
+    _out << "-SITE/ANTENNA" << endl;
+    _out << "*-------------------------------------------------------------------------------" << endl;
     delete _antex;
     _antex = 0;
-  }
-
+}
   _out << "+TROP/SOLUTION" << endl;
   _out << "*STATION__ ____EPOCH_____ TROTOT STDDEV " << endl;
