Index: /trunk/BNC/src/PPP/pppClient.cpp
===================================================================
--- /trunk/BNC/src/PPP/pppClient.cpp	(revision 9782)
+++ /trunk/BNC/src/PPP/pppClient.cpp	(revision 9783)
@@ -304,5 +304,5 @@
     }
     if (iObs + 1 < _opt->_minObs) {
-      LOG << "t_pppClient::cmpBancroft not enough observations: " << iObs + 1  << endl;
+      LOG << "t_pppClient::cmpBancroft not enough observations: " << iObs + 1;
       return failure;
     }
@@ -335,4 +335,7 @@
       if (print && _numEpoProcessing == 1) {
         LOG.setf(ios::fixed);
+        LOG << "\nPPP of Epoch ";
+        if (!_epoTimeRover.undef()) LOG << string(_epoTimeRover);
+        LOG << "\n---------------------------------------------------------------\n";
         LOG << string(epoTime) << " BANCROFT:"        << ' '
             << setw(14) << setprecision(3) << xyzc[0] << ' '
@@ -376,6 +379,7 @@
 //////////////////////////////////////////////////////////////////////////////
 void t_pppClient::finish(t_irc irc, int ind) {
-
+#ifdef BNC_DEBUG_PPP
   LOG << "t_pppClient::finish(" << ind << "): " << irc << endl;
+#endif
 
   clearObs();
@@ -495,10 +499,4 @@
       }
 
-      if (_numEpoProcessing == 1) {
-        LOG << "\nPPP of Epoch ";
-        if (!_epoTimeRover.undef()) LOG << string(_epoTimeRover);
-        LOG << "\n---------------------------------------------------------------\n";
-      }
-
       for (int iter = 1; iter <= 2; iter++) {
         ColumnVector xyzc(4); xyzc = 0.0;
@@ -507,4 +505,5 @@
           return finish(failure,3);
         }
+
         if (cmpModel(_staRover, xyzc, _obsRover) != success) {
           return finish(failure,4);
@@ -525,5 +524,5 @@
       // use observations only if satellite code biases are available
       // ------------------------------------------------------------
-      if (!_opt->_corrMount.empty()&&
+      if (!_opt->_corrMount.empty() &&
           (OPT->_obsModelType == OPT->DCMcodeBias ||
            OPT->_obsModelType == OPT->DCMphaseBias)) {
Index: /trunk/BNC/src/bncmain.cpp
===================================================================
--- /trunk/BNC/src/bncmain.cpp	(revision 9782)
+++ /trunk/BNC/src/bncmain.cpp	(revision 9783)
@@ -148,5 +148,5 @@
       "   reqcOldAntennaNumber  {Old antenna number [character string]}\n"
       "   reqcNewAntennaNumber  {New antenna number [character string]}\n"
-      "   reqcOldAntennadN      {Old north eccentritity [character string]}\n"
+      "   reqcOldAntennadN      {Old north eccentricity [character string]}\n"
       "   reqcNewAntennadN      {New north eccentricity [character string]}\n"
       "   reqcOldAntennadE      {Old east eccentricity [character string]}\n"
@@ -207,10 +207,11 @@
       "   PPP/corrMount   {Corrections mountpoint [character string]}\n"
       "   PPP/corrFile    {Corrections file, full path [character string]}\n"
-      "   PPP/v2filenames {Produce version 2 filenames, 0=no,2=yes}\n"
       "   PPP/crdFile     {Coordinates file, full path [character string]}\n"
       "   PPP/logPath     {Directory for PPP log files [character string]}\n"
       "   PPP/antexFile   {ANTEX file, full path [character string]}\n"
 #ifdef USE_PPP
-      "   PPP/blqFile   {ANTEX file, full path [character string]}\n"
+      "   PPP/blqFile     {BLQ file, full path [character string]}\n"
+      "   PPP/ionoMount   {VTEC mountpoint, [char string]}\n"
+      "   PPP/ionoFile    {VTEC file, full path [char string]}\n"
 #endif
       "   PPP/nmeaPath    {Directory for NMEA output files [character string]}\n"
Index: /trunk/BNC/src/bncoutf.cpp
===================================================================
--- /trunk/BNC/src/bncoutf.cpp	(revision 9782)
+++ /trunk/BNC/src/bncoutf.cpp	(revision 9783)
@@ -48,5 +48,4 @@
 
   _append = Qt::CheckState(settings.value("rnxAppend").toInt()) == Qt::Checked;
-  _v2filenames = settings.value("PPP/v2filenames").toBool();
 }
 
@@ -84,9 +83,5 @@
   if ( indHlp != -1) {
     int step = intStr.left(indHlp-1).toInt();
-    if (!_v2filenames) {
-      epoStr +=  QString("%1").arg(datTim.time().hour(), 2, 10, QChar('0')); // H
-    } else {
-      epoStr +=  'A' + datTim.time().hour();
-    }
+    epoStr +=  QString("%1").arg(datTim.time().hour(), 2, 10, QChar('0')); // H
 
     if (datTim.time().minute() >= 60-step) {
@@ -101,8 +96,5 @@
       }
     }
-
-    if (!_v2filenames) {
-      epoStr += QString("_%1M").arg(step, 2, 10, QChar('0'));                // period
-    }
+    epoStr += QString("_%1M").arg(step, 2, 10, QChar('0'));                // period
 
     _numSec = 60 * step;
@@ -110,31 +102,24 @@
   else if (intStr == "1 hour") {
     int step = intStr.left(indHlp-1).toInt();
-    if (!_v2filenames) {
-      epoStr += QString("%1").arg(datTim.time().hour(), 2, 10, QChar('0'));  // H
-      epoStr += QString("%1").arg(0, 2, 10, QChar('0'));                     // M
-      epoStr += QString("_%1H").arg(step+1, 2, 10, QChar('0'));              // period
-    } else {
-      epoStr +=  'A' + datTim.time().hour();
-    }
+    epoStr += QString("%1").arg(datTim.time().hour(), 2, 10, QChar('0'));  // H
+    epoStr += QString("%1").arg(0, 2, 10, QChar('0'));                     // M
+    epoStr += QString("_%1H").arg(step+1, 2, 10, QChar('0'));              // period
     _numSec = 3600;
   }
   else {
     int step = intStr.left(indHlp-1).toInt();
-    if (!_v2filenames) {
-      epoStr += QString("%1").arg(0, 2, 10, QChar('0'));                    // H
-      epoStr += QString("%1").arg(0, 2, 10, QChar('0'));                    // M
-      epoStr += QString("_%1D").arg(step+1, 2, 10, QChar('0'));             // period
-    }
+    epoStr += QString("%1").arg(0, 2, 10, QChar('0'));                    // H
+    epoStr += QString("%1").arg(0, 2, 10, QChar('0'));                    // M
+    epoStr += QString("_%1D").arg(step+1, 2, 10, QChar('0'));             // period
     _numSec = 86400;
   }
 
-  if (!_v2filenames) {
-    if (sampl < 60) {
-      epoStr += QString("_%1S").arg(sampl, 2, 10, QChar('0'));
-    }
-    else {
-      sampl /= 60;
-      epoStr += QString("_%1M").arg(sampl, 2, 10, QChar('0'));
-    }
+
+  if (sampl < 60) {
+    epoStr += QString("_%1S").arg(sampl, 2, 10, QChar('0'));
+  }
+  else {
+    sampl /= 60;
+    epoStr += QString("_%1M").arg(sampl, 2, 10, QChar('0'));
   }
 
Index: /trunk/BNC/src/bncoutf.h
===================================================================
--- /trunk/BNC/src/bncoutf.h	(revision 9782)
+++ /trunk/BNC/src/bncoutf.h	(revision 9783)
@@ -35,5 +35,4 @@
   QString _fName;
   bool    _append;
-  bool    _v2filenames;
 };
 
Index: /trunk/BNC/src/bncwindow.cpp
===================================================================
--- /trunk/BNC/src/bncwindow.cpp	(revision 9782)
+++ /trunk/BNC/src/bncwindow.cpp	(revision 9783)
@@ -992,6 +992,6 @@
   pppLayout1->addWidget(new QLabel("Data source"),           ir, 0);
   pppLayout1->addWidget(_pppWidgets._dataSource,             ir, 1);
-  pppLayout1->addWidget(new QLabel("   Version 2 filenames"),ir, 4);
-  pppLayout1->addWidget(_pppWidgets._v2filenames,            ir, 5, 1, 3);
+  pppLayout1->addWidget(new QLabel("   Logfile directory"),  ir, 4);
+  pppLayout1->addWidget(_pppWidgets._logPath,                ir, 5, 1, 3);
   ++ir;
   pppLayout1->addWidget(new QLabel("Corrections stream"),    ir, 0);
@@ -999,6 +999,15 @@
   pppLayout1->addWidget(new QLabel("Corrections file"),      ir, 2);
   pppLayout1->addWidget(_pppWidgets._corrFile,               ir, 3);
-  pppLayout1->addWidget(new QLabel("   Logfile directory"),  ir, 4);
-  pppLayout1->addWidget(_pppWidgets._logPath,                ir, 5, 1, 3);
+  pppLayout1->addWidget(new QLabel("   NMEA directory"),     ir, 4);
+  pppLayout1->addWidget(_pppWidgets._nmeaPath,               ir, 5, 1, 3);
+  ++ir;
+#ifdef USE_PPP
+  pppLayout1->addWidget(new QLabel("Ionosphere stream"),     ir, 0);
+  pppLayout1->addWidget(_pppWidgets._ionoMount,              ir, 1);
+  pppLayout1->addWidget(new QLabel("Ionosphere file"),       ir, 2);
+  pppLayout1->addWidget(_pppWidgets._ionoFile,               ir, 3);
+#endif
+  pppLayout1->addWidget(new QLabel("   SNX TRO directory"),  ir, 4);
+  pppLayout1->addWidget(_pppWidgets._snxtroPath,             ir, 5, 1, 3);
   ++ir;
   pppLayout1->addWidget(new QLabel("RINEX Obs file"),        ir, 0);
@@ -1006,13 +1015,17 @@
   pppLayout1->addWidget(new QLabel("RINEX Nav file"),        ir, 2);
   pppLayout1->addWidget(_pppWidgets._rinexNav,               ir, 3);
-  pppLayout1->addWidget(new QLabel("   NMEA directory"),     ir, 4);
-  pppLayout1->addWidget(_pppWidgets._nmeaPath,               ir, 5, 1, 3);
+  pppLayout1->addWidget(new QLabel("   SNX TRO interval"),   ir, 4);
+  pppLayout1->addWidget(_pppWidgets._snxtroIntr,             ir, 5);
+  pppLayout1->addWidget(new QLabel("   SNX TRO sampling"),   ir, 6);
+  pppLayout1->addWidget(_pppWidgets._snxtroSampl,            ir, 7, Qt::AlignRight);
   ++ir;
-  pppLayout1->addWidget(new QLabel("Coordinates file"),      ir, 0);
-  pppLayout1->addWidget(_pppWidgets._crdFile,                ir, 1);
-  pppLayout1->addWidget(new QLabel("ANTEX file"),            ir, 2);
-  pppLayout1->addWidget(_pppWidgets._antexFile,              ir, 3);
-  pppLayout1->addWidget(new QLabel("   SNX TRO directory"),  ir, 4);
-  pppLayout1->addWidget(_pppWidgets._snxtroPath,             ir, 5, 1, 3);
+  pppLayout1->addWidget(new QLabel("ANTEX file"),            ir, 0);
+  pppLayout1->addWidget(_pppWidgets._antexFile,              ir, 1);
+  pppLayout1->addWidget(new QLabel("Coordinates file"),      ir, 2);
+  pppLayout1->addWidget(_pppWidgets._crdFile,                ir, 3);
+  pppLayout1->addWidget(new QLabel("   SNX TRO AC"),         ir, 4);
+  pppLayout1->addWidget(_pppWidgets._snxtroAc,               ir, 5);
+  pppLayout1->addWidget(new QLabel("   SNX TRO solution"),   ir, 6);
+  pppLayout1->addWidget(_pppWidgets._snxtroSol,              ir, 7, Qt::AlignRight);
   ++ir;
 #ifdef USE_PPP
@@ -1020,17 +1033,4 @@
   pppLayout1->addWidget(_pppWidgets._blqFile,                ir, 1);
 #endif
-  pppLayout1->addWidget(new QLabel("   SNX TRO interval"),   ir, 4);
-  pppLayout1->addWidget(_pppWidgets._snxtroIntr,             ir, 5);
-  pppLayout1->addWidget(new QLabel("   SNX TRO sampling"),   ir, 6);
-  pppLayout1->addWidget(_pppWidgets._snxtroSampl,            ir, 7, Qt::AlignRight);
-  ++ir;
-  pppLayout1->addWidget(new QLabel("Ionosphere stream"),     ir, 0);
-  pppLayout1->addWidget(_pppWidgets._ionoMount,              ir, 1);
-  pppLayout1->addWidget(new QLabel("Ionosphere file"),       ir, 2);
-  pppLayout1->addWidget(_pppWidgets._ionoFile,               ir, 3);
-  pppLayout1->addWidget(new QLabel("   SNX TRO AC"),         ir, 4);
-  pppLayout1->addWidget(_pppWidgets._snxtroAc,               ir, 5);
-  pppLayout1->addWidget(new QLabel("   SNX TRO solution"),   ir, 6);
-  pppLayout1->addWidget(_pppWidgets._snxtroSol,              ir, 7, Qt::AlignRight);
   pppLayout1->setRowStretch(ir+1, 999);
   pppGroup1->setLayout(pppLayout1);
@@ -1080,5 +1080,5 @@
   pppLayout3->addWidget(_pppWidgets._minObs,                ir, 4);
   pppLayout3->addWidget(new QLabel("Min Elevation"),        ir, 6, Qt::AlignLeft);
-  pppLayout3->addWidget(_pppWidgets._minEle,                ir, 7);
+  pppLayout3->addWidget(_pppWidgets._minEle,                ir, 7);_pppWidgets._minEle->setMaximumWidth(8*ww);
   ++ir;
   pppLayout3->addWidget(new QLabel("Model Obs"),            ir, 0, Qt::AlignLeft);
@@ -1087,5 +1087,5 @@
   pppLayout3->addWidget(_pppWidgets._corrWaitTime,          ir, 4);
   pppLayout3->addWidget(new QLabel("Seeding (sec)"),        ir, 6, Qt::AlignLeft);
-  pppLayout3->addWidget(_pppWidgets._seedingTime,           ir, 7);
+  pppLayout3->addWidget(_pppWidgets._seedingTime,           ir, 7);_pppWidgets._seedingTime->setMaximumWidth(8*ww);
   ++ir;
   pppLayout3->addWidget(new QLabel("Pseudo Obs"),           ir, 0, Qt::AlignLeft);
@@ -1464,20 +1464,21 @@
   // WhatsThis, PPP (1)
   // ------------------
-  _pppWidgets._dataSource->setWhatsThis(tr("<p>Select 'Real-time Streams' for real-time PPP from RTCM streams or 'RINEX Files' for post processing PPP from RINEX files.</p><p><ul><li>Real-time PPP requires that you pull a RTCM stream carrying GNSS observations plus a stream providing corrections to Broadcast Ephemeris. If the observations stream does not contain Broadcast Ephemeris then you must in addition pull a Broadcast Ephemeris stream like 'RTCM3EPH' from Ntrip Broadcaster <u>products.igs-ip.net</u>.<br></li><li>Post processing PPP requires RINEX Observation files, RINEX Navigation files and a file with corrections to Broadcast Ephemeris in plain ASCII format as saved beforehand using BNC.</li></ul></p><p>Note that BNC allows to carry out PPP solutions simultaneously for several stations.</p>"));
-  _pppWidgets._rinexObs->setWhatsThis(tr("<p>Specify the RINEX Observation file.</p>"));
-  _pppWidgets._rinexNav->setWhatsThis(tr("<p>Specify the RINEX Navigation file.</p>"));
-  _pppWidgets._corrMount->setWhatsThis(tr("<p>Specify a 'mountpoint' from the 'Streams' canvas below which provides corrections to Broadcast Ephemeris.</p><p>If you don't specify a corrections stream via this option, BNC will fall back to Single Point Positioning (SPP, positioning from observations and Broadcast Ephemeris only) instead of doing PPP.</p>"));
-  _pppWidgets._corrFile->setWhatsThis(tr("<p>Specify the Broadcast Ephemeris Corrections file as saved beforehand using BNC.</p><p>If you don't specify corrections by this option, BNC will fall back to Single Point Positioning (SPP, positioning from RINEX Obs and RINEX Nav files only) instead of doing PPP.</p>"));
-  _pppWidgets._antexFile->setWhatsThis(tr("<p>Observations in RTCM streams or RINEX files should be referred to the receiver's and to the satellite's Antenna Phase Center (APC) and therefore be corrected for<ul><li>Receiver APC offsets</li><li>Receiver APC variations</li><li>Satellite APC offsets.</li></ul> Specify the full path to an IGS 'ANTEX file' which contains APC offsets and variations.</p><p>If you don't specify an 'ANTEX file' then observations will not be corrected for APC offsets and variations.</p>"));
-  _pppWidgets._crdFile->setWhatsThis(tr("<p>Enter the full path to an ASCII file which specifies the streams or files of those stations you want to process. Specifying a 'Coordinates file' is optional. If it exists, it should contain one record per station with the following parameters separated by blank character:<p><ul><li>Specify the station either by<ul><li>the 'Mountpoint' of the station's RTCM stream (when in real-time PPP mode), or</li><li>the 4-charater station ID of the RINEX Observations file (when in post processing PPP mode).</li></ul></li><li>Approximate X,Y,Z coordinate of station's Antenna Reference Point [m] (ARP, specify '0.0 0.0 0.0' if unknown).</li><li>North, East and Up component of antenna eccentricity [m] (specify '0.0 0.0 0.0' if unknown).</li><li>20 Characters describing the antenna type and radome following the IGS 'ANTEX file' standard (leave blank if unknown).</li><li>Receiver type following the naming conventions for IGS equipment.</li></ul></p><p>Records with exclamation mark '!' in the first column or blank records will be interpreted as comment lines and ignored.</p>"));
-  _pppWidgets._v2filenames->setWhatsThis(tr("<p>Tick 'Version 2 filenames' to let BNC create filenames for PPP logfiles , NMEA files and SINEX Troposphere files following the RINEX Version 2 standard.</p><p>Default is an empty check box, meaning to create filenames following the RINEX Version 3 standard. The file content is not affected by this option. It only concerns the filenames.</p>"));
-  _pppWidgets._logPath->setWhatsThis(tr("<p>Specify a directory for saving daily PPP logfiles. If the specified directory does not exist, BNC will not create such files.</p><p>Default is an empty option field, meaning that no PPP logfiles shall be produced.</p>"));
-  _pppWidgets._nmeaPath->setWhatsThis(tr("<p>Specify a directory for saving coordinates in daily NMEA files. If the specified directory does not exist, BNC will not create such files.</p><p>Default is an empty option field, meaning that no NMEA file shall be produced.</p>"));
-  _pppWidgets._snxtroPath->setWhatsThis(tr("<p>Specify a directory for saving SINEX Troposphere files. If the specified directory does not exist, BNC will not create such files.</p><p>Default is an empty option field, meaning that no SINEX Troposphere files shall be produced.</p>"));
-  _pppWidgets._snxtroIntr->setWhatsThis(tr("<p>Select a length for SINEX Troposphere files.</p><p>Default 'SNX TRO interval' for saving SINEX Troposphere files on disk is '1 hour'.</p>"));
-  _pppWidgets._snxtroSampl->setWhatsThis(tr("<p>Select a 'Sampling' rate for saving troposphere parameters.</p>"));
-  _pppWidgets._snxtroAc->setWhatsThis(tr("<p>Specify a 3-character abbreviation describing you as the generating Analysis Center (AC) in your SINEX troposphere files.</p>"));
-  _pppWidgets._snxtroSol->setWhatsThis(tr("<p>Specify a 4-character solution ID to allow a distingtion between different solutions per AC.</p>"));
-  _pppWidgets._ionoMount->setWhatsThis(tr("<p>Specify a 'mountpoint' from the 'Streams' canvas below which provides VTEC informations in SSR format.</p><p>If you don't specify a corrections stream via this option, BNC will use VTEC informations from the Corrections stream 'mountpoint', if available.</p>"));
+  _pppWidgets._dataSource->setWhatsThis(tr("<p>Select 'Real-time Streams' for real-time PPP from RTCM streams or 'RINEX Files' for post processing PPP from RINEX files.</p><p><ul><li>Real-time PPP requires that you pull a RTCM stream carrying GNSS observations plus a stream providing corrections to Broadcast Ephemeris. If the observations stream does not contain Broadcast Ephemeris then you must in addition pull a Broadcast Ephemeris stream like 'RTCM3EPH' from Ntrip Broadcaster <u>products.igs-ip.net</u>.<br></li><li>Post processing PPP requires RINEX Observation files, RINEX Navigation files and a file with corrections to Broadcast Ephemeris in plain ASCII format as saved beforehand using BNC.</li></ul></p><p>Note that BNC allows to carry out PPP solutions simultaneously for several stations. <i>[key: PPP/]</i></p>"));
+  _pppWidgets._rinexObs->setWhatsThis(tr("<p>Specify the RINEX Observation file. <i>[key: PPP/rinexObs]</i></p>"));
+  _pppWidgets._rinexNav->setWhatsThis(tr("<p>Specify the RINEX Navigation file. <i>[key: PPP/rinexNav]</i></p>"));
+  _pppWidgets._corrMount->setWhatsThis(tr("<p>Specify a 'mountpoint' from the 'Streams' canvas below which provides corrections to Broadcast Ephemeris.</p><p>If you don't specify a corrections stream via this option, BNC will fall back to Single Point Positioning (SPP, positioning from observations and Broadcast Ephemeris only) instead of doing PPP. <i>[key: PPP/corrMount]</i></p>"));
+  _pppWidgets._ionoMount->setWhatsThis(tr("<p>Specify a 'mountpoint' from the 'Streams' canvas below which provides VTEC informations in SSR format.</p><p>If you don't specify a corrections stream via this option, BNC will use VTEC informations from the Corrections stream 'mountpoint', if available. <i>[key: PPP/ionoMount]</i></p>"));
+  _pppWidgets._corrFile->setWhatsThis(tr("<p>Specify the Broadcast Ephemeris Corrections file as saved beforehand using BNC.</p><p>If you don't specify corrections by this option, BNC will fall back to Single Point Positioning (SPP, positioning from RINEX Obs and RINEX Nav files only) instead of doing PPP. <i>[key: PPP/corrFile]</i></p>"));
+  _pppWidgets._ionoFile->setWhatsThis(tr("<p>Specify the VTEC file as saved beforehand using BNC.</p><p>If you don't specify corrections by this option, BNC will use VTEC informations from the Corrections file, if available. <i>[key: PPP/ionoFile]</i></p>"));
+  _pppWidgets._antexFile->setWhatsThis(tr("<p>Observations in RTCM streams or RINEX files should be referred to the receiver's and to the satellite's Antenna Phase Center (APC) and therefore be corrected for<ul><li>Receiver APC offsets</li><li>Receiver APC variations</li><li>Satellite APC offsets.</li></ul> Specify the full path to an IGS 'ANTEX file' which contains APC offsets and variations.</p><p>If you don't specify an 'ANTEX file' then observations will not be corrected for APC offsets and variations. <i>[key: PPP/antexFile]</i></p>"));
+  _pppWidgets._crdFile->setWhatsThis(tr("<p>Enter the full path to an ASCII file which specifies the streams or files of those stations you want to process. Specifying a 'Coordinates file' is optional. If it exists, it should contain one record per station with the following parameters separated by blank character:<p><ul><li>Specify the station either by<ul><li>the 'Mountpoint' of the station's RTCM stream (when in real-time PPP mode), or</li><li>the 4-charater station ID of the RINEX Observations file (when in post processing PPP mode).</li></ul></li><li>Approximate X,Y,Z coordinate of station's Antenna Reference Point [m] (ARP, specify '0.0 0.0 0.0' if unknown).</li><li>North, East and Up component of antenna eccentricity [m] (specify '0.0 0.0 0.0' if unknown).</li><li>20 Characters describing the antenna type and radome following the IGS 'ANTEX file' standard (leave blank if unknown).</li><li>Receiver type following the naming conventions for IGS equipment.</li></ul></p><p>Records with exclamation mark '!' in the first column or blank records will be interpreted as comment lines and ignored. <i>[key: PPP/crdFile]</i></p>"));
+  _pppWidgets._logPath->setWhatsThis(tr("<p>Specify a directory for saving daily PPP logfiles. If the specified directory does not exist, BNC will not create such files.</p><p>Default is an empty option field, meaning that no PPP logficorrMountles shall be produced. <i>[key: PPP/logPath]</i></p>"));
+  _pppWidgets._nmeaPath->setWhatsThis(tr("<p>Specify a directory for saving coordinates in daily NMEA files. If the specified directory does not exist, BNC will not create such files.</p><p>Default is an empty option field, meaning that no NMEA file shall be produced. <i>[key: PPP/nmeaPath]</i></p>"));
+  _pppWidgets._snxtroPath->setWhatsThis(tr("<p>Specify a directory for saving SINEX Troposphere files. If the specified directory does not exist, BNC will not create such files.</p><p>Default is an empty option field, meaning that no SINEX Troposphere files shall be produced. <i>[key: PPP/snxtroPath]</i></p>"));
+  _pppWidgets._snxtroIntr->setWhatsThis(tr("<p>Select a length for SINEX Troposphere files.</p><p>Default 'SNX TRO interval' for saving SINEX Troposphere files on disk is '1 hour'. <i>[key: PPP/snxtroIntr]</i></p>"));
+  _pppWidgets._snxtroSampl->setWhatsThis(tr("<p>Select a 'Sampling' rate for saving troposphere parameters. <i>[key: PPP/snxtroSampl]</i></p>"));
+  _pppWidgets._snxtroAc->setWhatsThis(tr("<p>Specify a 3-character abbreviation describing you as the generating Analysis Center (AC) in your SINEX troposphere files. <i>[key: PPP/snxtroAc]</i></p>"));
+  _pppWidgets._snxtroSol->setWhatsThis(tr("<p>Specify a 4-character solution ID to allow a distinction between different solutions per AC. <i>[key: PPP/snxtroSol]</i></p>"));
+
 
   // WhatsThis, PPP (3)
Index: /trunk/BNC/src/pppMain.cpp
===================================================================
--- /trunk/BNC/src/pppMain.cpp	(revision 9782)
+++ /trunk/BNC/src/pppMain.cpp	(revision 9783)
@@ -410,5 +410,5 @@
     }
 
-    opt->_minObs      = settings.value("PPP/minObs").toInt(); if (opt->_minObs < 5) opt->_minObs = 5;
+    opt->_minObs      = settings.value("PPP/minObs").toInt(); if (opt->_minObs < 4) opt->_minObs = 4;
     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 = 4.0;
Index: /trunk/BNC/src/pppRun.cpp
===================================================================
--- /trunk/BNC/src/pppRun.cpp	(revision 9782)
+++ /trunk/BNC/src/pppRun.cpp	(revision 9783)
@@ -185,5 +185,4 @@
         +  country;
   }
-  bool v2filenames = settings.value("PPP/v2filenames").toBool();
   QString logFileSkl = settings.value("PPP/logPath").toString();
   int l = logFileSkl.length();
@@ -195,10 +194,7 @@
       logFileSkl += QDir::separator();
     }
-    if (!v2filenames) {
-      logFileSkl = logFileSkl + ID9 + "${V3PROD}" + distStr + ".ppp";
-    }
-    else {
-      logFileSkl = logFileSkl + ID4 + "${GPSWD}" + distStr + ".ppp";
-    }
+
+    logFileSkl = logFileSkl + ID9 + "${V3PROD}" + distStr + ".ppp";
+
     _logFile = new bncoutf(logFileSkl, intr, sampl);
   }
@@ -213,10 +209,6 @@
       nmeaFileSkl += QDir::separator();
     }
-    if (!v2filenames) {
-      nmeaFileSkl = nmeaFileSkl + ID9 + "${V3PROD}" + distStr + ".nmea";
-    }
-    else {
-      nmeaFileSkl = nmeaFileSkl + ID4 + "${GPSWD}" + distStr + ".nmea";
-    }
+    nmeaFileSkl = nmeaFileSkl + ID9 + "${V3PROD}" + distStr + ".nmea";
+
     _nmeaFile = new bncoutf(nmeaFileSkl, intr, sampl);
   }
@@ -230,10 +222,5 @@
       snxtroFileSkl += QDir::separator();
     }
-    if (!v2filenames) {
-      snxtroFileSkl = snxtroFileSkl + ID9 + "${V3PROD}" + distStr + ".tra";
-    }
-    else {
-      snxtroFileSkl = snxtroFileSkl + ID4 + "${GPSWD}" + distStr + ".tro";
-    }
+    snxtroFileSkl = snxtroFileSkl + ID9 + "${V3PROD}" + distStr + ".tra";
     sampl = settings.value("PPP/snxtroSampl").toString().split("sec").first().toInt();
     intr  = settings.value("PPP/snxtroIntr").toString();
@@ -350,9 +337,8 @@
     // Process the front epoch
     // -----------------------
-
     if (_opt->_corrWaitTime == 0 ||
         (_epoData.front()->_time - _lastClkCorrTime) < _opt->_corrWaitTime) {
 
-      if (fabs(_epoData.front()->_time - _lastClkCorrTime) > 60.0) {
+      if (_opt->_corrWaitTime != 0 && (fabs(_epoData.front()->_time - _lastClkCorrTime) > 60.0)) {
         delete _epoData.front();
         _epoData.pop_front();
@@ -563,5 +549,4 @@
   if (!_opt->_corrFile.empty()) {
     _corrFile = new t_corrFile(QString(_opt->_corrFile.c_str()));
-
     if (_opt->_ionoFile.empty()) {
       connect(_corrFile, SIGNAL(newTec(t_vTec)), this, SLOT(slotNewTec(t_vTec)));
Index: /trunk/BNC/src/pppWidgets.cpp
===================================================================
--- /trunk/BNC/src/pppWidgets.cpp	(revision 9782)
+++ /trunk/BNC/src/pppWidgets.cpp	(revision 9783)
@@ -78,5 +78,4 @@
   _snxtroAc     = new QLineEdit();     _snxtroAc    ->setObjectName("PPP/snxtroAc");     _widgets << _snxtroAc;
   _snxtroSol    = new QLineEdit();     _snxtroSol   ->setObjectName("PPP/snxtroSol");    _widgets << _snxtroSol;
-  _v2filenames  = new QCheckBox();     _v2filenames ->setObjectName("PPP/v2filenames");  _widgets << _v2filenames;
   _staTable     = new QTableWidget();  _staTable    ->setObjectName("PPP/staTable");     _widgets << _staTable;
   _lcGPS        = new QComboBox();     _lcGPS       ->setObjectName("PPP/lcGPS");        _widgets << _lcGPS;
@@ -115,4 +114,5 @@
   _dataSource->addItems(QString(",Real-Time Streams,RINEX Files").split(","));
   connect(_dataSource, SIGNAL(currentIndexChanged(const QString&)), this, SLOT(slotEnableWidgets()));
+  connect(_pseudoObs, SIGNAL(currentIndexChanged(const QString&)), this, SLOT(slotEnableWidgets()));
   connect(_modelObs, SIGNAL(currentIndexChanged(const QString&)), this, SLOT(slotEnableWidgets()));
   connect(_snxtroPath, SIGNAL(textChanged(const QString &)), this, SLOT(slotPPPTextChanged()));
@@ -168,5 +168,5 @@
   _snxtroIntr->setCurrentIndex(6);
 
-  _minObs->setMinimum(5);
+  _minObs->setMinimum(4);
   _minObs->setMaximum(6);
   _minObs->setSingleStep(1);
@@ -209,5 +209,5 @@
   // WhatsThis, PPP (2)
   // ------------------
-  _staTable->setWhatsThis(tr("<p>Specify values for Sigma and white Noise of the Stations North, East and Height coordinate components in meters. Specify also a Sigma in meters for a priori model based Tropospheric delays and a Sigma in meters per second for the delay's Noise.</p><p>Specifying one record per Station is mandatory. BNC will only process data for stations which are listed here. To define a station, specify the 'Mountpoint' when in 'Real-Time Streams' mode or the 4-character station ID when in 'RINEX Files' mode.</p><p>'Sigma' is meant to describe the uncertainty of a single coordinate or tropospheric delay estimated for one epoch. 'Noise' is meant to describe the variation of estimates from epoch to epoch.</p><p><ul><li>A Sigma of 100.0 meters may be an appropriate choice e.g. for the initial N/E/H coordinates. However, this value may be significantly smaller (i.e. 0.01) for stations with well-known a priori coordinates.</li><li>A Noise of 100.0 meters for the estimated N/E/H coordinates may also be appropriate considering the potential movement of a rover position.</li><li>A value of 0.1 meters may be an appropriate Sigma for the a priori model based Tropospheric delay estimation.</li><li>Specify a Noise to describe the expected variation of the tropospheric effect over time. Supposing 1Hz observation data, specifying a value of 3e-6 would mean that the tropospheric effect may vary 3600 * 3e-6 = 0.01 meters per hour.</li></ul></p><p>You can also specify a 'NMEA Port' to output coordinates in NMEA format through an IP port of your local host. <i>[key: PPP/staTable]</i></p>"));
+  _staTable->setWhatsThis(tr("<p>Specify values for Sigma and white Noise of the Stations North, East and Height coordinate components in meters. Specify also a Sigma in meters for a priori model based Tropospheric delays and a Sigma in meters per second for the delay's Noise. You can also specify a 'NMEA Port' to output coordinates in NMEA format through an IP port of your local host.</p><p>Specifying one record per Station is mandatory. BNC will only process data for stations which are listed here. To define a station, specify the 'Mountpoint' when in 'Real-Time Streams' mode or the 4-character station ID when in 'RINEX Files' mode.</p><p>'Sigma' is meant to describe the uncertainty of a single coordinate or tropospheric delay estimated for one epoch. 'Noise' is meant to describe the variation of estimates from epoch to epoch.</p><p><ul><li>A Sigma of 100.0 meters may be an appropriate choice e.g. for the initial N/E/H coordinates. However, this value may be significantly smaller (i.e. 0.01) for stations with well-known a priori coordinates.</li><li>A Noise of 100.0 meters for the estimated N/E/H coordinates may also be appropriate considering the potential movement of a rover position.</li><li>A value of 0.1 meters may be an appropriate Sigma for the a priori model based Tropospheric delay estimation.</li><li>Specify a Noise to describe the expected variation of the tropospheric effect over time. Supposing 1Hz observation data, specifying a value of 3e-6 would mean that the tropospheric effect may vary 3600 * 3e-6 = 0.01 meters per hour.</li></ul></p><p> <i>[key: PPP/staTable]</i></p>"));
 
   // WhatsThis, PPP (3)
@@ -248,5 +248,4 @@
   delete _snxtroAc;
   delete _snxtroSol;
-  delete _v2filenames;
   for (int iRow = _staTable->rowCount()-1; iRow >=0; iRow--) {
     _staTable->removeRow(iRow);
@@ -395,5 +394,4 @@
   _eleWgtCode ->setCheckState(Qt::CheckState(settings.value(_eleWgtCode ->objectName()).toInt()));
   _eleWgtPhase->setCheckState(Qt::CheckState(settings.value(_eleWgtPhase->objectName()).toInt()));
-  _v2filenames->setCheckState(Qt::CheckState(settings.value(_v2filenames->objectName()).toInt()));
 
   // SpinBoxex
@@ -464,5 +462,4 @@
   settings.setValue(_snxtroAc    ->objectName(), _snxtroAc    ->text());
   settings.setValue(_snxtroSol   ->objectName(), _snxtroSol   ->text());
-  settings.setValue(_v2filenames ->objectName(), _v2filenames ->checkState());
   settings.setValue(_lcGPS       ->objectName(), _lcGPS       ->currentText());
   settings.setValue(_lcGLONASS   ->objectName(), _lcGLONASS   ->currentText());
@@ -523,4 +520,5 @@
     enablePseudoObs = true;
   }
+  bool pseudoObsUsed = _pseudoObs->currentText() == "Ionosphere";
 
   QListIterator<QWidget*> it(_widgets);
@@ -557,6 +555,11 @@
   if (enablePseudoObs) {
     _pseudoObs->setEnabled(true);
-    _sigmaGIM->setEnabled(true);
-    _maxResGIM->setEnabled(true);
+    if (pseudoObsUsed) {
+     _sigmaGIM->setEnabled(true);
+     _maxResGIM->setEnabled(true);
+    } else {
+      _sigmaGIM->setEnabled(false);
+      _maxResGIM->setEnabled(false);
+    }
   } else {
     _pseudoObs->setEnabled(false);
@@ -593,5 +596,5 @@
      if (iCol == 6) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0"));
      if (iCol == 7) _staTable->setItem(iRow, iCol, new QTableWidgetItem("0.1"));
-     if (iCol == 8) _staTable->setItem(iRow, iCol, new QTableWidgetItem("1e-6"));
+     if (iCol == 8) _staTable->setItem(iRow, iCol, new QTableWidgetItem("3e-6"));
      if (iCol == 9) _staTable->setItem(iRow, iCol, new QTableWidgetItem("0"));
   }
Index: /trunk/BNC/src/pppWidgets.h
===================================================================
--- /trunk/BNC/src/pppWidgets.h	(revision 9782)
+++ /trunk/BNC/src/pppWidgets.h	(revision 9783)
@@ -62,5 +62,4 @@
   QLineEdit*     _snxtroAc;
   QLineEdit*     _snxtroSol;
-  QCheckBox*     _v2filenames;
   QTableWidget*  _staTable;
   QComboBox*     _lcGPS;
