Index: /trunk/BNC/src/upload/bncrtnetuploadcaster.cpp
===================================================================
--- /trunk/BNC/src/upload/bncrtnetuploadcaster.cpp	(revision 8509)
+++ /trunk/BNC/src/upload/bncrtnetuploadcaster.cpp	(revision 8510)
@@ -424,14 +424,4 @@
 
       while (true) {
-        rtnClk.ReSize(3);
-        for (int ii = 0; ii < 3; ii++) {
-          rtnClk[ii] = 0.0;
-        }
-        rtnClkSig.ReSize(3);
-        for (int ii = 0; ii < 3; ii++) {
-          rtnClkSig[ii] = 0.0;
-        }
-        rtnVel.ReSize(3);
-        rtnCoM.ReSize(3);
         QString key;
         int numVal = 0;
@@ -453,4 +443,8 @@
         }
         else if (key == "Clk") {
+          rtnClk.ReSize(3);
+          for (int ii = 0; ii < 3; ii++) {
+            rtnClk[ii] = 0.0;
+          }
           in >> numVal;
           for (int ii = 0; ii < numVal; ii++) {
@@ -459,4 +453,8 @@
         }
         else if (key == "ClkSig") {
+          rtnClkSig.ReSize(3);
+          for (int ii = 0; ii < 3; ii++) {
+            rtnClkSig[ii] = 0.0;
+          }
           in >> numVal;
           for (int ii = 0; ii < numVal; ii++) {
@@ -465,4 +463,5 @@
         }
         else if (key == "Vel") {
+          rtnVel.ReSize(3);
           in >> numVal;
           for (int ii = 0; ii < numVal; ii++) {
@@ -471,4 +470,5 @@
         }
         else if (key == "CoM") {
+          rtnCoM.ReSize(3);
           in >> numVal;
           for (int ii = 0; ii < numVal; ii++) {
@@ -2338,7 +2338,23 @@
 
   if (_rnx) {
-    double clkRnxSig     = rtnClkSig[0] / t_CST::c;           // [s]
-    double clkRnxRateSig = rtnClkSig[1] / t_CST::c;           // [s/s = -]
-    double clkRnxAccSig  = rtnClkSig[2] / t_CST::c;           // [s/s² ) -/s]
+    double clkRnxSig, clkRnxRateSig, clkRnxAccSig;
+    int s = rtnClkSig.size();
+    switch (s) {
+      case 1:
+        clkRnxSig     = rtnClkSig[0] / t_CST::c;    // [s]
+        clkRnxRateSig = 0.0;                        // [s/s = -]
+        clkRnxAccSig  = 0.0;                        // [s/s² ) -/s]
+        break;
+      case 2:
+        clkRnxSig     = rtnClkSig[0] / t_CST::c;     // [s]
+        clkRnxRateSig = rtnClkSig[1] / t_CST::c;     // [s/s = -]
+        clkRnxAccSig  = 0.0;                         // [s/s² ) -/s]
+        break;
+      case 3:
+        clkRnxSig     = rtnClkSig[0] / t_CST::c;     // [s]
+        clkRnxRateSig = rtnClkSig[1] / t_CST::c;     // [s/s = -]
+        clkRnxAccSig  = rtnClkSig[2] / t_CST::c;     // [s/s² ) -/s]
+        break;
+    }
     _rnx->write(GPSweek, GPSweeks, prn, clkRnx, clkRnxRate, clkRnxAcc,
                 clkRnxSig, clkRnxRateSig, clkRnxAccSig);
