Index: branches/BNC_2.12/src/upload/bncrtnetuploadcaster.cpp
===================================================================
--- branches/BNC_2.12/src/upload/bncrtnetuploadcaster.cpp	(revision 8543)
+++ branches/BNC_2.12/src/upload/bncrtnetuploadcaster.cpp	(revision 8570)
@@ -330,14 +330,13 @@
   for (int ii = 1; ii < lines.size(); ii++) {
     QString key;  // prn or key VTEC, IND (phase bias indicators)
-    double rtnUra;          // [m]
-    ColumnVector rtnAPC;    // [m, m, m]
-    ColumnVector rtnVel;    // [m/s, m/s, m/s]]
-    ColumnVector rtnCoM;    // [m, m, m]
-    ColumnVector rtnClk;    // [m, m/s, m/s²]
-    ColumnVector rtnClkSig; // [m, m/s, m/s²]
+    double rtnUra = 0.0;    // [m]
+    ColumnVector rtnAPC; rtnAPC.ReSize(3); rtnAPC = 0.0;          // [m, m, m]
+    ColumnVector rtnVel; rtnVel.ReSize(3); rtnVel = 0.0;          // [m/s, m/s, m/s]]
+    ColumnVector rtnCoM; rtnCoM.ReSize(3); rtnCoM = 0.0;          // [m, m, m]
+    ColumnVector rtnClk; rtnClk.ReSize(3); rtnClk = 0.0;          // [m, m/s, m/s²]
+    ColumnVector rtnClkSig; rtnClkSig.ReSize(3); rtnClkSig = 0.0; // [m, m/s, m/s²]
     t_prn prn;
 
     QTextStream in(lines[ii].toAscii());
-
     in >> key;
 
@@ -347,4 +346,5 @@
       continue;
     }
+
     // non-satellite specific parameters
     if (key.contains("VTEC", Qt::CaseSensitive)) {
@@ -369,9 +369,9 @@
       continue;
     }
+
     // satellite specific parameters
     char sys = key.mid(0, 1).at(0).toAscii();
     int number = key.mid(1, 2).toInt();
     int flags = 0;
-
     if (sys == 'E') { // I/NAV
       flags = 1;
@@ -384,4 +384,5 @@
     const t_eph* ephPrev = _ephUser->ephPrev(prnInternalStr);
     const t_eph* eph = ephLast;
+
     if (eph) {
 
@@ -429,5 +430,5 @@
         if (key == "APC") {
           in >> numVal;
-          rtnAPC.ReSize(3);
+          rtnAPC.ReSize(3); rtnAPC = 0.0;
           for (int ii = 0; ii < numVal; ii++) {
             in >> rtnAPC[ii];
@@ -440,9 +441,6 @@
         }
         else if (key == "Clk") {
-          rtnClk.ReSize(3);
-          for (int ii = 0; ii < 3; ii++) {
-            rtnClk[ii] = 0.0;
-          }
           in >> numVal;
+          rtnClk.ReSize(3); rtnClk = 0.0;
           for (int ii = 0; ii < numVal; ii++) {
             in >> rtnClk[ii];
@@ -450,9 +448,6 @@
         }
         else if (key == "ClkSig") {
-          rtnClkSig.ReSize(3);
-          for (int ii = 0; ii < 3; ii++) {
-            rtnClkSig[ii] = 0.0;
-          }
           in >> numVal;
+          rtnClkSig.ReSize(3); rtnClkSig = 0.0;
           for (int ii = 0; ii < numVal; ii++) {
             in >> rtnClkSig[ii];
@@ -460,6 +455,6 @@
         }
         else if (key == "Vel") {
-          rtnVel.ReSize(3);
           in >> numVal;
+          rtnVel.ReSize(3); rtnVel = 0.0;
           for (int ii = 0; ii < numVal; ii++) {
             in >> rtnVel[ii];
@@ -467,6 +462,6 @@
         }
         else if (key == "CoM") {
-          rtnCoM.ReSize(3);
           in >> numVal;
+          rtnCoM.ReSize(3); rtnCoM = 0.0;
           for (int ii = 0; ii < numVal; ii++) {
             in >> rtnCoM[ii];
@@ -2305,6 +2300,12 @@
   // ----------------
   double dClkA0 = rtnClk(1) - (xB(4) - dc) * t_CST::c;
-  double dClkA1 = rtnClk(2) -  xB(5) * t_CST::c;
-  double dClkA2 = rtnClk(3) -  xB(6) * t_CST::c;
+  double dClkA1 = 0.0;
+  if (rtnClk(2)) {
+    dClkA1 = rtnClk(2) - xB(5) * t_CST::c;
+  }
+  double dClkA2 = 0.0;
+  if (rtnClk(3)) {
+    dClkA2 = rtnClk(3) - xB(6) * t_CST::c;
+  }
 
   if (sd) {
