diff --git a/build/configure.ac b/build/configure.ac
index 9b8c875296bec12dace06d716595b1d930d755af..11969bd917b52e92168461b2734f73ac9c99ea32 100644
--- a/build/configure.ac
+++ b/build/configure.ac
@@ -379,7 +379,7 @@ AC_ARG_WITH(
 )
 
 FFLAGS="-std=legacy -O3"
-CXXFLAGS="-O3 -ggdb -Wno-format-contains-nul -I$HDF5_INCLUDE $MPIFLAGS $OMPFLAGS $LAPACKFLAGS $MAGMAFLAGS"
+CXXFLAGS="-O3 -ggdb -I$HDF5_INCLUDE $MPIFLAGS $OMPFLAGS $LAPACKFLAGS $MAGMAFLAGS"
 SUBDIRS="cluster libnptm sphere testing trapping"
 
 # Send output to Makefiles
diff --git a/src/cluster/cluster.cpp b/src/cluster/cluster.cpp
index bba957fb06d360af26d336a61435f669de04d0ad..287235d40dc7afa19beef414095fb28ea768a8d2 100644
--- a/src/cluster/cluster.cpp
+++ b/src/cluster/cluster.cpp
@@ -197,69 +197,69 @@ void cluster(const string& config_file, const string& data_file, const string& o
       //==========================
       // Write a block of info to the ascii output file
       //==========================
-      sprintf(virtual_line, " READ(IR,*)NSPH,LI,LE,MXNDM,INPOL,NPNT,NPNTTS,IAVM,ISAM\n\0");
+      sprintf(virtual_line, " READ(IR,*)NSPH,LI,LE,MXNDM,INPOL,NPNT,NPNTTS,IAVM,ISAM\n");
       p_output->append_line(virtual_line);
 #ifdef USE_ILP64
-      sprintf(virtual_line, " %5d%5d%5d%5ld%5d%5d%5d%5d%5d\n\0",
+      sprintf(virtual_line, " %5d%5d%5d%5ld%5d%5d%5d%5d%5d\n",
 	      nsph, cid->c4->li, cid->c4->le, gconf->mxndm, gconf->in_pol, gconf->npnt,
 	      gconf->npntts, gconf->iavm, gconf->iavm
 	      );
 #else
-      sprintf(virtual_line, " %5d%5d%5d%5d%5d%5d%5d%5d%5d\n\0",
+      sprintf(virtual_line, " %5d%5d%5d%5d%5d%5d%5d%5d%5d\n",
 	      nsph, cid->c4->li, cid->c4->le, gconf->mxndm, gconf->in_pol, gconf->npnt,
 	      gconf->npntts, gconf->iavm, gconf->iavm
 	      );
 #endif      
       p_output->append_line(virtual_line);
-      sprintf(virtual_line, " READ(IR,*)RXX(I),RYY(I),RZZ(I)\n\0");
+      sprintf(virtual_line, " READ(IR,*)RXX(I),RYY(I),RZZ(I)\n");
       p_output->append_line(virtual_line);
       for (int ri = 0; ri < nsph; ri++) {
-	sprintf(virtual_line, "%17.8lE%17.8lE%17.8lE\n\0",
+	sprintf(virtual_line, "%17.8lE%17.8lE%17.8lE\n",
 		gconf->get_sph_x(ri), gconf->get_sph_y(ri), gconf->get_sph_z(ri)
 		);
 	p_output->append_line(virtual_line);
       }
-      sprintf(virtual_line, " READ(IR,*)TH,THSTP,THLST,THS,THSSTP,THSLST\n\0");
+      sprintf(virtual_line, " READ(IR,*)TH,THSTP,THLST,THS,THSSTP,THSLST\n");
       p_output->append_line(virtual_line);
       sprintf(
-	      virtual_line, " %10.3lE%10.3lE%10.3lE%10.3lE%10.3lE%10.3lE\n\0",
+	      virtual_line, " %10.3lE%10.3lE%10.3lE%10.3lE%10.3lE%10.3lE\n",
 	      p_scattering_angles->th, p_scattering_angles->thstp,
 	      p_scattering_angles->thlst, p_scattering_angles->ths,
 	      p_scattering_angles->thsstp, p_scattering_angles->thslst
 	      );
       p_output->append_line(virtual_line);
-      sprintf(virtual_line, " READ(IR,*)PH,PHSTP,PHLST,PHS,PHSSTP,PHSLST\n\0");
+      sprintf(virtual_line, " READ(IR,*)PH,PHSTP,PHLST,PHS,PHSSTP,PHSLST\n");
       p_output->append_line(virtual_line);
       sprintf(
-	      virtual_line, " %10.3lE%10.3lE%10.3lE%10.3lE%10.3lE%10.3lE\n\0",
+	      virtual_line, " %10.3lE%10.3lE%10.3lE%10.3lE%10.3lE%10.3lE\n",
 	      p_scattering_angles->ph, p_scattering_angles->phstp,
 	      p_scattering_angles->phlst, p_scattering_angles->phs,
 	      p_scattering_angles->phsstp, p_scattering_angles->phslst
 	      );
       p_output->append_line(virtual_line);
-      sprintf(virtual_line, " READ(IR,*)JWTM\n\0");
+      sprintf(virtual_line, " READ(IR,*)JWTM\n");
       p_output->append_line(virtual_line);
-      sprintf(virtual_line, " %5d\n\0", gconf->jwtm);
+      sprintf(virtual_line, " %5d\n", gconf->jwtm);
       p_output->append_line(virtual_line);
-      sprintf(virtual_line, "  READ(ITIN)NSPHT\n\0");
+      sprintf(virtual_line, "  READ(ITIN)NSPHT\n");
       p_output->append_line(virtual_line);
-      sprintf(virtual_line, "  READ(ITIN)(IOG(I),I=1,NSPH)\n\0");
+      sprintf(virtual_line, "  READ(ITIN)(IOG(I),I=1,NSPH)\n");
       p_output->append_line(virtual_line);
-      sprintf(virtual_line, "  READ(ITIN)EXDC,WP,XIP,IDFC,NXI\n\0");
+      sprintf(virtual_line, "  READ(ITIN)EXDC,WP,XIP,IDFC,NXI\n");
       p_output->append_line(virtual_line);
-      sprintf(virtual_line, "  READ(ITIN)(XIV(I),I=1,NXI)\n\0");
+      sprintf(virtual_line, "  READ(ITIN)(XIV(I),I=1,NXI)\n");
       p_output->append_line(virtual_line);
-      sprintf(virtual_line, "  READ(ITIN)NSHL(I),ROS(I)\n\0");
+      sprintf(virtual_line, "  READ(ITIN)NSHL(I),ROS(I)\n");
       p_output->append_line(virtual_line);
-      sprintf(virtual_line, "  READ(ITIN)(RCF(I,NS),NS=1,NSH)\n\0");
+      sprintf(virtual_line, "  READ(ITIN)(RCF(I,NS),NS=1,NSH)\n");
       p_output->append_line(virtual_line);
-      sprintf(virtual_line, " \n\0");
+      sprintf(virtual_line, " \n");
       p_output->append_line(virtual_line);
       str(sconf, cid->c1, cid->c1ao, cid->c3, cid->c4, cid->c6);
       thdps(cid->c4->lm, cid->zpv);
       double exdc = sconf->exdc;
       double exri = sqrt(exdc);
-      sprintf(virtual_line, "  REFR. INDEX OF EXTERNAL MEDIUM=%15.7lE\n\0", exri);
+      sprintf(virtual_line, "  REFR. INDEX OF EXTERNAL MEDIUM=%15.7lE\n", exri);
       p_output->append_line(virtual_line);
 
       // Create empty virtual binary file
@@ -294,9 +294,9 @@ void cluster(const string& config_file, const string& data_file, const string& o
       vtppoanp->append_line(VirtualBinaryLine(nphs));
       if (sconf->idfc < 0) {
 	cid->vk = cid->xip * cid->wn;
-	sprintf(virtual_line, "  VK=%15.7lE, XI IS SCALE FACTOR FOR LENGTHS\n\0", cid->vk);
+	sprintf(virtual_line, "  VK=%15.7lE, XI IS SCALE FACTOR FOR LENGTHS\n", cid->vk);
 	p_output->append_line(virtual_line);
-	sprintf(virtual_line, " \n\0");
+	sprintf(virtual_line, " \n");
 	p_output->append_line(virtual_line);
       }
 
@@ -677,7 +677,7 @@ int cluster_jxi488_cycle(int jxi488, ScattererConfiguration *sconf, GeometryConf
 #ifdef USE_NVTX
   nvtxRangePush("Prepare matrix calculation");
 #endif
-  sprintf(virtual_line, "========== JXI =%3d ====================\n\0", jxi488);
+  sprintf(virtual_line, "========== JXI =%3d ====================\n", jxi488);
   output->append_line(virtual_line);
   double xi = sconf->get_scale(jxi488 - 1);
   double exdc = sconf->exdc;
@@ -687,17 +687,17 @@ int cluster_jxi488_cycle(int jxi488, ScattererConfiguration *sconf, GeometryConf
   if (idfc >= 0) {
     cid->vk = xi * cid->wn;
     vkarg = cid->vk;
-    sprintf(virtual_line, "  VK=%15.7lE, XI=%15.7lE\n\0", cid->vk, xi);
+    sprintf(virtual_line, "  VK=%15.7lE, XI=%15.7lE\n", cid->vk, xi);
     output->append_line(virtual_line);
   } else {
     vkarg = xi * cid->vk;
     cid->sqsfi = 1.0 / (xi * xi);
-    sprintf(virtual_line, "  XI=%15.7lE\n\0", xi);
+    sprintf(virtual_line, "  XI=%15.7lE\n", xi);
     output->append_line(virtual_line);
   }
   hjv(exri, vkarg, jer, lcalc, cid->arg, cid->c1, cid->c1ao, cid->c4);
   if (jer != 0) {
-    sprintf(virtual_line, "  STOP IN HJV\n\0");
+    sprintf(virtual_line, "  STOP IN HJV\n");
     output->append_line(virtual_line);
     return jer;
     // break; // rewrite this to go to the end of the function, to free locally allocated variables and return jer
@@ -727,7 +727,7 @@ int cluster_jxi488_cycle(int jxi488, ScattererConfiguration *sconf, GeometryConf
 	  cid->c1, cid->c2, jer, lcalc, cid->arg
 	  );
       if (jer != 0) {
-	sprintf(virtual_line, "  STOP IN DME\n\0");
+	sprintf(virtual_line, "  STOP IN DME\n");
 	output->append_line(virtual_line);
 	return jer;
 	//break;
@@ -787,10 +787,10 @@ int cluster_jxi488_cycle(int jxi488, ScattererConfiguration *sconf, GeometryConf
   }
   // label 156: continue from here
   if (inpol == 0) {
-    sprintf(virtual_line, "   LIN\n\0");
+    sprintf(virtual_line, "   LIN\n");
     output->append_line(virtual_line);
   } else { // label 158
-    sprintf(virtual_line, "  CIRC\n\0");
+    sprintf(virtual_line, "  CIRC\n");
     output->append_line(virtual_line);
   }
   // label 160
@@ -802,7 +802,7 @@ int cluster_jxi488_cycle(int jxi488, ScattererConfiguration *sconf, GeometryConf
   aps(cid->zpv, cid->c4->li, nsph, cid->c1, sqk, cid->gaps);
   rabas(inpol, cid->c4->li, nsph, cid->c1, cid->tqse, cid->tqspe, cid->tqss, cid->tqsps);
   if (cid->c4->li != cid->c4->le) {
-    sprintf(virtual_line, "     SPHERES; LMX=LI\n\0");
+    sprintf(virtual_line, "     SPHERES; LMX=LI\n");
     output->append_line(virtual_line);
   }
   for (int i170 = 1; i170 <= nsph; i170++) {
@@ -812,54 +812,54 @@ int cluster_jxi488_cycle(int jxi488, ScattererConfiguration *sconf, GeometryConf
       cid->c1->sqscs[i] *= cid->sqsfi;
       cid->c1->sqabs[i] *= cid->sqsfi;
       cid->c1->sqexs[i] *= cid->sqsfi;
-      sprintf(virtual_line, "     SPHERE %2d\n\0", i170);
+      sprintf(virtual_line, "     SPHERE %2d\n", i170);
       output->append_line(virtual_line);
       if (cid->c1->nshl[i] != 1) {
-	sprintf(virtual_line, "  SIZE=%15.7lE\n\0", cid->c2->vsz[i]);
+	sprintf(virtual_line, "  SIZE=%15.7lE\n", cid->c2->vsz[i]);
 	output->append_line(virtual_line);
       } else { // label 162
-	sprintf(virtual_line, "  SIZE=%15.7lE, REFRACTIVE INDEX=%15.7lE%15.7lE\n\0", cid->c2->vsz[i], real(cid->c2->vkt[i]), imag(cid->c2->vkt[i]));
+	sprintf(virtual_line, "  SIZE=%15.7lE, REFRACTIVE INDEX=%15.7lE%15.7lE\n", cid->c2->vsz[i], real(cid->c2->vkt[i]), imag(cid->c2->vkt[i]));
 	output->append_line(virtual_line);
       }
       // label 164
-      sprintf(virtual_line, " ----- SCS ----- ABS ----- EXS ----- ALBEDS --\n\0");
+      sprintf(virtual_line, " ----- SCS ----- ABS ----- EXS ----- ALBEDS --\n");
       output->append_line(virtual_line);
-      sprintf(virtual_line, " %14.7lE%15.7lE%15.7lE%15.7lE\n\0", cid->c1->sscs[i], cid->c1->sabs[i], cid->c1->sexs[i], albeds);
+      sprintf(virtual_line, " %14.7lE%15.7lE%15.7lE%15.7lE\n", cid->c1->sscs[i], cid->c1->sabs[i], cid->c1->sexs[i], albeds);
       output->append_line(virtual_line);
-      sprintf(virtual_line, " ---- SCS/GS -- ABS/GS -- EXS/GS ---\n\0");
+      sprintf(virtual_line, " ---- SCS/GS -- ABS/GS -- EXS/GS ---\n");
       output->append_line(virtual_line);
-      sprintf(virtual_line, " %14.7lE%15.7lE%15.7lE\n\0", cid->c1->sqscs[i], cid->c1->sqabs[i], cid->c1->sqexs[i]);
+      sprintf(virtual_line, " %14.7lE%15.7lE%15.7lE\n", cid->c1->sqscs[i], cid->c1->sqabs[i], cid->c1->sqexs[i]);
       output->append_line(virtual_line);
-      sprintf(virtual_line, "  FSAS=%15.7lE%15.7lE\n\0", real(cid->c1->fsas[i]), imag(cid->c1->fsas[i]));
+      sprintf(virtual_line, "  FSAS=%15.7lE%15.7lE\n", real(cid->c1->fsas[i]), imag(cid->c1->fsas[i]));
       output->append_line(virtual_line);
       double alamb = 2.0 * 3.141592653589793 / cid->vk;
-      sprintf(virtual_line, "INSERTION: CS_SPHERE  %15.7lE%15.7lE%15.7lE%15.7lE\n\0", alamb, cid->c1->sscs[i], cid->c1->sabs[i], cid->c1->sexs[i]);
+      sprintf(virtual_line, "INSERTION: CS_SPHERE  %15.7lE%15.7lE%15.7lE%15.7lE\n", alamb, cid->c1->sscs[i], cid->c1->sabs[i], cid->c1->sexs[i]);
       output->append_line(virtual_line);
       csch = 2.0 * cid->vk * cid->sqsfi / cid->c1->gcsv[i];
       s0 = cid->c1->fsas[i] * exri;
       qschu = imag(s0) * csch;
       pschu = real(s0) * csch;
       s0mag = cabs(s0) * cs0;
-      sprintf(virtual_line, "  QSCHU=%15.7lE, PSCHU=%15.7lE, S0MAG=%15.7lE\n\0", qschu, pschu, s0mag);
+      sprintf(virtual_line, "  QSCHU=%15.7lE, PSCHU=%15.7lE, S0MAG=%15.7lE\n", qschu, pschu, s0mag);
       output->append_line(virtual_line);
       double rapr = cid->c1->sexs[i] - cid->gaps[i];
       double cosav = cid->gaps[i] / cid->c1->sscs[i];
-      sprintf(virtual_line, "  COSAV=%15.7lE, RAPRS=%15.7lE\n\0", cosav, rapr);
+      sprintf(virtual_line, "  COSAV=%15.7lE, RAPRS=%15.7lE\n", cosav, rapr);
       output->append_line(virtual_line);
-      sprintf(virtual_line, "  IPO= 1, TQEk=%15.7lE, TQSk=%15.7lE\n\0", cid->tqse[0][i], cid->tqss[0][i]);
+      sprintf(virtual_line, "  IPO= 1, TQEk=%15.7lE, TQSk=%15.7lE\n", cid->tqse[0][i], cid->tqss[0][i]);
       output->append_line(virtual_line);
-      sprintf(virtual_line, "  IPO= 2, TQEk=%15.7lE, TQSk=%15.7lE\n\0", cid->tqse[1][i], cid->tqss[1][i]);
+      sprintf(virtual_line, "  IPO= 2, TQEk=%15.7lE, TQSk=%15.7lE\n", cid->tqse[1][i], cid->tqss[1][i]);
       output->append_line(virtual_line);
     }
   } // i170 loop
-  sprintf(virtual_line, "  FSAT=%15.7lE%15.7lE\n\0", real(cid->c3->tfsas), imag(cid->c3->tfsas));
+  sprintf(virtual_line, "  FSAT=%15.7lE%15.7lE\n", real(cid->c3->tfsas), imag(cid->c3->tfsas));
   output->append_line(virtual_line);
   csch = 2.0 * cid->vk * cid->sqsfi / cid->c3->gcs;
   s0 = cid->c3->tfsas * exri;
   qschu = imag(s0) * csch;
   pschu = real(s0) * csch;
   s0mag = cabs(s0) * cs0;
-  sprintf(virtual_line, "  QSCHU=%15.7lE, PSCHU=%15.7lE, S0MAG=%15.7lE\n\0", qschu, pschu, s0mag);
+  sprintf(virtual_line, "  QSCHU=%15.7lE, PSCHU=%15.7lE, S0MAG=%15.7lE\n", qschu, pschu, s0mag);
   output->append_line(virtual_line);
   // tppoan.write(reinterpret_cast<char *>(&(cid->vk)), sizeof(double));
   vtppoanp->append_line(VirtualBinaryLine(cid->vk));
@@ -870,7 +870,7 @@ int cluster_jxi488_cycle(int jxi488, ScattererConfiguration *sconf, GeometryConf
 #endif
   interval_end = chrono::high_resolution_clock::now();
   elapsed = interval_end - interval_start;
-  message = "INFO: average calculation for scale " + to_string(jxi488) + " took " + to_string(elapsed.count()) + "s.\n\0";
+  message = "INFO: average calculation for scale " + to_string(jxi488) + " took " + to_string(elapsed.count()) + "s.\n";
   logger->log(message);
   interval_start = chrono::high_resolution_clock::now();
 #ifdef USE_NVTX
@@ -1017,7 +1017,7 @@ int cluster_jxi488_cycle(int jxi488, ScattererConfiguration *sconf, GeometryConf
 		vtppoanp->append_line(VirtualBinaryLine(value));
 	      }
 	    }
-	    sprintf(virtual_line, "     CLUSTER (ENSEMBLE AVERAGE, MODE%2d)\n\0", iavm);
+	    sprintf(virtual_line, "     CLUSTER (ENSEMBLE AVERAGE, MODE%2d)\n", iavm);
 	    output->append_line(virtual_line);
 	    int jlr = 2;
 	    for (int ilr210 = 1; ilr210 <= 2; ilr210++) {
@@ -1042,105 +1042,105 @@ int cluster_jxi488_cycle(int jxi488, ScattererConfiguration *sconf, GeometryConf
 	      double rfinrm = real(cid->c1ao->fsacm[ilr210 - 1][ilr210 - 1]) / real(cid->c3->tfsas);
 	      double extcrm = imag(cid->c1ao->fsacm[ilr210 - 1][ilr210 - 1]) / imag(cid->c3->tfsas);
 	      if (inpol == 0) {
-		sprintf(virtual_line, "   LIN %2d\n\0", ipol);
+		sprintf(virtual_line, "   LIN %2d\n", ipol);
 		output->append_line(virtual_line);
 	      } else { // label 206
-		sprintf(virtual_line, "  CIRC %2d\n\0", ipol);
+		sprintf(virtual_line, "  CIRC %2d\n", ipol);
 		output->append_line(virtual_line);
 	      }
 	      // label 208
-	      sprintf(virtual_line, " ----- SCC ----- ABC ----- EXC ----- ALBEDC --\n\0");
+	      sprintf(virtual_line, " ----- SCC ----- ABC ----- EXC ----- ALBEDC --\n");
 	      output->append_line(virtual_line);
-	      sprintf(virtual_line, " %14.7lE%15.7lE%15.7lE%15.7lE\n\0", scasm, abssm, extsm, albdm);
+	      sprintf(virtual_line, " %14.7lE%15.7lE%15.7lE%15.7lE\n", scasm, abssm, extsm, albdm);
 	      output->append_line(virtual_line);
-	      sprintf(virtual_line, " --- SCC/TGS - ABC/TGS - EXC/TGS ---\n\0");
+	      sprintf(virtual_line, " --- SCC/TGS - ABC/TGS - EXC/TGS ---\n");
 	      output->append_line(virtual_line);
-	      sprintf(virtual_line, " %14.7lE%15.7lE%15.7lE\n\0", qscam, qabsm, qextm);
+	      sprintf(virtual_line, " %14.7lE%15.7lE%15.7lE\n", qscam, qabsm, qextm);
 	      output->append_line(virtual_line);
-	      sprintf(virtual_line, " ---- SCCRT --- ABCRT --- EXCRT ----\n\0");
+	      sprintf(virtual_line, " ---- SCCRT --- ABCRT --- EXCRT ----\n");
 	      output->append_line(virtual_line);
-	      sprintf(virtual_line, " %14.7lE%15.7lE%15.7lE\n\0", scarm, absrm, extrm);
+	      sprintf(virtual_line, " %14.7lE%15.7lE%15.7lE\n", scarm, absrm, extrm);
 	      output->append_line(virtual_line);
 	      sprintf(
-		      virtual_line, "  FSAC(%1d,%1d)=%15.7lE%15.7lE   FSAC(%1d,%1d)=%15.7lE%15.7lE\n\0",
+		      virtual_line, "  FSAC(%1d,%1d)=%15.7lE%15.7lE   FSAC(%1d,%1d)=%15.7lE%15.7lE\n",
 		      ilr210, ilr210, real(cid->c1ao->fsacm[ilr210 - 1][ilr210 - 1]),
 		      imag(cid->c1ao->fsacm[ilr210 - 1][ilr210 - 1]), jlr, ilr210,
 		      real(cid->c1ao->fsacm[jlr - 1][ilr210 - 1]), imag(cid->c1ao->fsacm[jlr - 1][ilr210 - 1])
 		      );
 	      output->append_line(virtual_line);
 	      sprintf(
-		      virtual_line, "  RE(FSAC(%1d,%1d))/RE(TFSAS)=%15.7lE, IM(FSAC(%1d,%1d))/IM(TFSAS)=%15.7lE\n\0",
+		      virtual_line, "  RE(FSAC(%1d,%1d))/RE(TFSAS)=%15.7lE, IM(FSAC(%1d,%1d))/IM(TFSAS)=%15.7lE\n",
 		      ilr210, ilr210, rfinrm, ilr210, ilr210, extcrm
 		      );
 	      output->append_line(virtual_line);
-	      sprintf(virtual_line, "  QSCHU=%15.7lE, PSCHU=%15.7lE, S0MAG=%15.7lE\n\0", qschum, pschum, s0magm);
+	      sprintf(virtual_line, "  QSCHU=%15.7lE, PSCHU=%15.7lE, S0MAG=%15.7lE\n", qschum, pschum, s0magm);
 	      output->append_line(virtual_line);
 	      double rapr = cid->c1ao->ecscm[ilr210 - 1] - cid->gapm[2][ilr210 - 1];
 	      double cosav = cid->gapm[2][ilr210 - 1] / cid->c1ao->scscm[ilr210 - 1];
 	      double fz = rapr;
-	      sprintf(virtual_line, "  COSAV=%15.7lE, RAPRS=%15.7lE\n\0", cosav, rapr);
+	      sprintf(virtual_line, "  COSAV=%15.7lE, RAPRS=%15.7lE\n", cosav, rapr);
 	      output->append_line(virtual_line);
-	      sprintf(virtual_line, "  Fk=%15.7lE\n\0", fz);
+	      sprintf(virtual_line, "  Fk=%15.7lE\n", fz);
 	      output->append_line(virtual_line);
 	      double alamb = 2.0 * 3.141592653589793 / cid->vk;
 	      if (ilr210 == 1) {
-		sprintf(virtual_line, "INSERTION: CSM_CLUSTER  %15.7lE%15.7lE%15.7lE%15.7lE\n\0", alamb, scasm, abssm, extsm);
+		sprintf(virtual_line, "INSERTION: CSM_CLUSTER  %15.7lE%15.7lE%15.7lE%15.7lE\n", alamb, scasm, abssm, extsm);
 		output->append_line(virtual_line);
 	      }
 	    } // ilr210 loop
 	    double rmbrif = (real(cid->c1ao->fsacm[0][0]) - real(cid->c1ao->fsacm[1][1])) / real(cid->c1ao->fsacm[0][0]);
 	    double rmdchr = (imag(cid->c1ao->fsacm[0][0]) - imag(cid->c1ao->fsacm[1][1])) / imag(cid->c1ao->fsacm[0][0]);
-	    sprintf(virtual_line, "  (RE(FSAC(1,1))-RE(FSAC(2,2)))/RE(FSAC(1,1))=%15.7lE\n\0", rmbrif);
+	    sprintf(virtual_line, "  (RE(FSAC(1,1))-RE(FSAC(2,2)))/RE(FSAC(1,1))=%15.7lE\n", rmbrif);
 	    output->append_line(virtual_line);
-	    sprintf(virtual_line, "  (IM(FSAC(1,1))-IM(FSAC(2,2)))/IM(FSAC(1,1))=%15.7lE\n\0", rmdchr);
+	    sprintf(virtual_line, "  (IM(FSAC(1,1))-IM(FSAC(2,2)))/IM(FSAC(1,1))=%15.7lE\n", rmdchr);
 	    output->append_line(virtual_line);
 	  }
 	  // label 212
-	  sprintf(virtual_line, "********** JTH =%3d, JPH =%3d, JTHS =%3d, JPHS =%3d ********************\n\0", jth486, jph484, jths, jphs);
+	  sprintf(virtual_line, "********** JTH =%3d, JPH =%3d, JTHS =%3d, JPHS =%3d ********************\n", jth486, jph484, jths, jphs);
 	  output->append_line(virtual_line);
-	  sprintf(virtual_line, "  TIDG=%10.3lE, PIDG=%10.3lE, TSDG=%10.3lE, PSDG=%10.3lE\n\0", th, ph, ths, phs);
+	  sprintf(virtual_line, "  TIDG=%10.3lE, PIDG=%10.3lE, TSDG=%10.3lE, PSDG=%10.3lE\n", th, ph, ths, phs);
 	  output->append_line(virtual_line);
-	  sprintf(virtual_line, "  SCAND=%10.3lE\n\0", cid->scan);
+	  sprintf(virtual_line, "  SCAND=%10.3lE\n", cid->scan);
 	  output->append_line(virtual_line);
-	  sprintf(virtual_line, "  CFMP=%15.7lE, SFMP=%15.7lE\n\0", cid->cfmp, cid->sfmp);
+	  sprintf(virtual_line, "  CFMP=%15.7lE, SFMP=%15.7lE\n", cid->cfmp, cid->sfmp);
 	  output->append_line(virtual_line);
-	  sprintf(virtual_line, "  CFSP=%15.7lE, SFSP=%15.7lE\n\0", cid->cfsp, cid->sfsp);
+	  sprintf(virtual_line, "  CFSP=%15.7lE, SFSP=%15.7lE\n", cid->cfsp, cid->sfsp);
 	  output->append_line(virtual_line);
 	  if (isam >= 0) {
-	    sprintf(virtual_line, "  UNI=(%12.5lE,%12.5lE,%12.5lE)\n\0", cid->un[0], cid->un[1], cid->un[2]);
+	    sprintf(virtual_line, "  UNI=(%12.5lE,%12.5lE,%12.5lE)\n", cid->un[0], cid->un[1], cid->un[2]);
 	    output->append_line(virtual_line);
-	    sprintf(virtual_line, "  UNS=(%12.5lE,%12.5lE,%12.5lE)\n\0", cid->uns[0], cid->uns[1], cid->uns[2]);
+	    sprintf(virtual_line, "  UNS=(%12.5lE,%12.5lE,%12.5lE)\n", cid->uns[0], cid->uns[1], cid->uns[2]);
 	    output->append_line(virtual_line);
 	  } else { // label 214
-	    sprintf(virtual_line, "  UN=(%12.5lE,%12.5lE,%12.5lE)\n\n\0", cid->un[0], cid->un[1], cid->un[2]);
+	    sprintf(virtual_line, "  UN=(%12.5lE,%12.5lE,%12.5lE)\n\n", cid->un[0], cid->un[1], cid->un[2]);
 	    output->append_line(virtual_line);
 	  }
 	  // label 220
 	  if (inpol == 0) {
-	    sprintf(virtual_line, "   LIN\n\0");
+	    sprintf(virtual_line, "   LIN\n");
 	    output->append_line(virtual_line);
 	  } else { // label 222
-	    sprintf(virtual_line, "  CIRC\n\0");
+	    sprintf(virtual_line, "  CIRC\n");
 	    output->append_line(virtual_line);
 	  }
 	  // label 224
 	  scr2(cid->vk, vkarg, exri, cid->duk, cid->c1, cid->c1ao, cid->c3, cid->c4);
 	  if (cid->c4->li != cid->c4->le) {
-	    sprintf(virtual_line, "     SPHERES; LMX=MIN0(LI,LE)\n\0");
+	    sprintf(virtual_line, "     SPHERES; LMX=MIN0(LI,LE)\n");
 	    output->append_line(virtual_line);
 	  }
 	  for (int i226 = 1; i226 <= nsph; i226++) {
 	    if (cid->c1->iog[i226 - 1] >= i226) {
-	      sprintf(virtual_line, "     SPHERE %2d\n\0", i226);
+	      sprintf(virtual_line, "     SPHERE %2d\n", i226);
 	      output->append_line(virtual_line);
 	      sprintf(
-		      virtual_line, "  SAS(1,1)=%15.7lE%15.7lE, SAS(2,1)=%15.7lE%15.7lE\n\0",
+		      virtual_line, "  SAS(1,1)=%15.7lE%15.7lE, SAS(2,1)=%15.7lE%15.7lE\n",
 		      real(cid->c1->sas[i226 - 1][0][0]), imag(cid->c1->sas[i226 - 1][0][0]),
 		      real(cid->c1->sas[i226 - 1][1][0]), imag(cid->c1->sas[i226 - 1][1][0])
 		      );
 	      output->append_line(virtual_line);
 	      sprintf(
-		      virtual_line, "  SAS(1,2)=%15.7lE%15.7lE, SAS(2,2)=%15.7lE%15.7lE\n\0",
+		      virtual_line, "  SAS(1,2)=%15.7lE%15.7lE, SAS(2,2)=%15.7lE%15.7lE\n",
 		      real(cid->c1->sas[i226 - 1][0][1]), imag(cid->c1->sas[i226 - 1][0][1]),
 		      real(cid->c1->sas[i226 - 1][1][1]), imag(cid->c1->sas[i226 - 1][1][1])
 		      );
@@ -1149,20 +1149,20 @@ int cluster_jxi488_cycle(int jxi488, ScattererConfiguration *sconf, GeometryConf
 		cid->c1->vint[j225] = cid->c1->vints[i226 - 1][j225];
 	      } // j225 loop
 	      mmulc(cid->c1->vint, cid->cmullr, cid->cmul);
-	      sprintf(virtual_line, "  MULS\n\0");
+	      sprintf(virtual_line, "  MULS\n");
 	      output->append_line(virtual_line);
 	      for (int i1 = 0; i1 < 4; i1++) {
 		sprintf(
-			virtual_line, "        %15.7lE%15.7lE%15.7lE%15.7lE\n\0",
+			virtual_line, "        %15.7lE%15.7lE%15.7lE%15.7lE\n",
 			cid->cmul[i1][0], cid->cmul[i1][1], cid->cmul[i1][2], cid->cmul[i1][3]
 			);
 		output->append_line(virtual_line);
 	      } // i1 loop
-	      sprintf(virtual_line, "  MULSLR\n\0");
+	      sprintf(virtual_line, "  MULSLR\n");
 	      output->append_line(virtual_line);
 	      for (int i1 = 0; i1 < 4; i1++) {
 		sprintf(
-			virtual_line, "        %15.7lE%15.7lE%15.7lE%15.7lE\n\0",
+			virtual_line, "        %15.7lE%15.7lE%15.7lE%15.7lE\n",
 			cid->cmullr[i1][0], cid->cmullr[i1][1], cid->cmullr[i1][2], cid->cmullr[i1][3]
 			);
 		output->append_line(virtual_line);
@@ -1170,18 +1170,18 @@ int cluster_jxi488_cycle(int jxi488, ScattererConfiguration *sconf, GeometryConf
 	    }
 	  } // i226 loop
 	  sprintf(
-		  virtual_line, "  SAT(1,1)=%15.7lE%15.7lE, SAT(2,1)=%15.7lE%15.7lE\n\0",
+		  virtual_line, "  SAT(1,1)=%15.7lE%15.7lE, SAT(2,1)=%15.7lE%15.7lE\n",
 		  real(cid->c3->tsas[0][0]), imag(cid->c3->tsas[0][0]),
 		  real(cid->c3->tsas[1][0]), imag(cid->c3->tsas[1][0])
 		  );
 	  output->append_line(virtual_line);
 	  sprintf(
-		  virtual_line, "  SAT(1,2)=%15.7lE%15.7lE, SAT(2,2)=%15.7lE%15.7lE\n\0",
+		  virtual_line, "  SAT(1,2)=%15.7lE%15.7lE, SAT(2,2)=%15.7lE%15.7lE\n",
 		  real(cid->c3->tsas[0][1]), imag(cid->c3->tsas[0][1]),
 		  real(cid->c3->tsas[1][1]), imag(cid->c3->tsas[1][1])
 		  );
 	  output->append_line(virtual_line);
-	  sprintf(virtual_line, "     CLUSTER\n\0");
+	  sprintf(virtual_line, "     CLUSTER\n");
 	  output->append_line(virtual_line);
 	  pcros(cid->vk, exri, cid->c1, cid->c1ao, cid->c4);
 	  mextc(cid->vk, exri, cid->c1ao->fsac, cid->cextlr, cid->cext);
@@ -1306,61 +1306,61 @@ int cluster_jxi488_cycle(int jxi488, ScattererConfiguration *sconf, GeometryConf
 	    double refinr = real(cid->c1ao->fsac[ilr290 - 1][ilr290 - 1]) / real(cid->c3->tfsas);
 	    double extcor = imag(cid->c1ao->fsac[ilr290 - 1][ilr290 - 1]) / imag(cid->c3->tfsas);
 	    if (inpol == 0) {
-	      sprintf(virtual_line, "   LIN %2d\n\0", ipol);
+	      sprintf(virtual_line, "   LIN %2d\n", ipol);
 	      output->append_line(virtual_line);
 	    } else { // label 273
-	      sprintf(virtual_line, "  CIRC %2d\n\0", ipol);
+	      sprintf(virtual_line, "  CIRC %2d\n", ipol);
 	      output->append_line(virtual_line);
 	    }
 	    // label 275
-	    sprintf(virtual_line, " ----- SCC ----- ABC ----- EXC ----- ALBEDC --\n\0");
+	    sprintf(virtual_line, " ----- SCC ----- ABC ----- EXC ----- ALBEDC --\n");
 	    output->append_line(virtual_line);
 	    sprintf(
-		    virtual_line, " %14.7lE%15.7lE%15.7lE%15.7lE\n\0",
+		    virtual_line, " %14.7lE%15.7lE%15.7lE%15.7lE\n",
 		    scasec, abssec, extsec, albedc
 		    );
 	    output->append_line(virtual_line);
-	    sprintf(virtual_line, " --- SCC/TGS - ABC/TGS - EXC/TGS ---\n\0");
+	    sprintf(virtual_line, " --- SCC/TGS - ABC/TGS - EXC/TGS ---\n");
 	    output->append_line(virtual_line);
 	    sprintf(
-		    virtual_line, " %14.7lE%15.7lE%15.7lE\n\0",
+		    virtual_line, " %14.7lE%15.7lE%15.7lE\n",
 		    qsca, qabs, qext
 		    );
 	    output->append_line(virtual_line);
-	    sprintf(virtual_line, " ---- SCCRT --- ABCRT --- EXCRT ----\n\0");
+	    sprintf(virtual_line, " ---- SCCRT --- ABCRT --- EXCRT ----\n");
 	    output->append_line(virtual_line);
 	    sprintf(
-		    virtual_line, " %14.7lE%15.7lE%15.7lE\n\0",
+		    virtual_line, " %14.7lE%15.7lE%15.7lE\n",
 		    scarat, absrat, extrat
 		    );
 	    output->append_line(virtual_line);
 	    sprintf(
-		    virtual_line, "  FSAC(%1d,%1d)=%15.7lE%15.7lE   FSAC(%1d,%1d)=%15.7lE%15.7lE\n\0",
+		    virtual_line, "  FSAC(%1d,%1d)=%15.7lE%15.7lE   FSAC(%1d,%1d)=%15.7lE%15.7lE\n",
 		    ilr290, ilr290, real(cid->c1ao->fsac[ilr290 - 1][ilr290 - 1]), imag(cid->c1ao->fsac[ilr290 - 1][ilr290 - 1]),
 		    jlr, ilr290, real(cid->c1ao->fsac[jlr - 1][ilr290 - 1]), imag(cid->c1ao->fsac[jlr - 1][ilr290 - 1])
 		    );
 	    output->append_line(virtual_line);
 	    sprintf(
-		    virtual_line, "   SAC(%1d,%1d)=%15.7lE%15.7lE    SAC(%1d,%1d)=%15.7lE%15.7lE\n\0",
+		    virtual_line, "   SAC(%1d,%1d)=%15.7lE%15.7lE    SAC(%1d,%1d)=%15.7lE%15.7lE\n",
 		    ilr290, ilr290, real(cid->c1ao->sac[ilr290 - 1][ilr290 - 1]), imag(cid->c1ao->sac[ilr290 - 1][ilr290 - 1]),
 		    jlr, ilr290, real(cid->c1ao->sac[jlr - 1][ilr290 - 1]), imag(cid->c1ao->sac[jlr - 1][ilr290 - 1])
 		    );
 	    output->append_line(virtual_line);
 	    sprintf(
-		    virtual_line, "  RE(FSAC(%1d,%1d))/RE(TFSAS)=%15.7lE, IM(FSAC(%1d,%1d))/IM(TFSAS)=%15.7lE\n\0",
+		    virtual_line, "  RE(FSAC(%1d,%1d))/RE(TFSAS)=%15.7lE, IM(FSAC(%1d,%1d))/IM(TFSAS)=%15.7lE\n",
 		    ilr290, ilr290, refinr, ilr290, ilr290, extcor
 		    );
 	    output->append_line(virtual_line);
 	    sprintf(
-		    virtual_line, "  QSCHU=%15.7lE, PSCHU=%15.7lE, S0MAG=%15.7lE\n\0",
+		    virtual_line, "  QSCHU=%15.7lE, PSCHU=%15.7lE, S0MAG=%15.7lE\n",
 		    qschu, pschu, s0mag
 		    );
 	    output->append_line(virtual_line);
 	    double alamb = 2.0 * 3.141592653589793 / cid->vk;
 	    if (ilr290 == 1) {
-	      sprintf(virtual_line, "INSERTION: CS1_CLUSTER  %13.5le%10.3le%10.3le%15.7le%15.7le%15.7le\n\0", alamb, th, ths, scasec, abssec, extsec);
+	      sprintf(virtual_line, "INSERTION: CS1_CLUSTER  %13.5le%10.3le%10.3le%15.7le%15.7le%15.7le\n", alamb, th, ths, scasec, abssec, extsec);
 	    } else if (ilr290 == 2) {
-	      sprintf(virtual_line, "INSERTION: CS2_CLUSTER  %13.5le%10.3le%10.3le%15.7le%15.7le%15.7le\n\0", alamb, th, ths, scasec, abssec, extsec);
+	      sprintf(virtual_line, "INSERTION: CS2_CLUSTER  %13.5le%10.3le%10.3le%15.7le%15.7le%15.7le\n", alamb, th, ths, scasec, abssec, extsec);
 	    }
 	    output->append_line(virtual_line);
 	    bool goto190 = isam >= 0 && (jths > 1 || jphs > 1);
@@ -1372,11 +1372,11 @@ int cluster_jxi488_cycle(int jxi488, ScattererConfiguration *sconf, GeometryConf
 	      double scatts = cid->c1ao->scsc[ilr290 - 1];
 	      double rapr, cosav, fp, fn, fk, fx, fy, fz;
 	      rftr(cid->u, cid->up, cid->un, cid->gapv, extins, scatts, rapr, cosav, fp, fn, fk, fx, fy, fz);
-	      sprintf(virtual_line, "  COSAV=%15.7lE, RAPRS=%15.7lE\n\0", cosav, rapr);
+	      sprintf(virtual_line, "  COSAV=%15.7lE, RAPRS=%15.7lE\n", cosav, rapr);
 	      output->append_line(virtual_line);
-	      sprintf(virtual_line, "  Fl=%15.7lE, Fr=%15.7lE, Fk=%15.7lE\n\0", fp, fn, fk);
+	      sprintf(virtual_line, "  Fl=%15.7lE, Fr=%15.7lE, Fk=%15.7lE\n", fp, fn, fk);
 	      output->append_line(virtual_line);
-	      sprintf(virtual_line, "  Fx=%15.7lE, Fy=%15.7lE, Fz=%15.7lE\n\0", fx, fy, fz);
+	      sprintf(virtual_line, "  Fx=%15.7lE, Fy=%15.7lE, Fz=%15.7lE\n", fx, fy, fz);
 	      output->append_line(virtual_line);
 	      cid->tqev[0] = cid->tqce[ilr290 - 1][0];
 	      cid->tqev[1] = cid->tqce[ilr290 - 1][1];
@@ -1386,17 +1386,17 @@ int cluster_jxi488_cycle(int jxi488, ScattererConfiguration *sconf, GeometryConf
 	      cid->tqsv[2] = cid->tqcs[ilr290 - 1][2];
 	      double tep, ten, tek, tsp, tsn, tsk;
 	      tqr(cid->u, cid->up, cid->un, cid->tqev, cid->tqsv, tep, ten, tek, tsp, tsn, tsk);
-	      sprintf(virtual_line, "   TQEl=%15.7lE,  TQEr=%15.7lE,  TQEk=%15.7lE\n\0", tep, ten, tek);
+	      sprintf(virtual_line, "   TQEl=%15.7lE,  TQEr=%15.7lE,  TQEk=%15.7lE\n", tep, ten, tek);
 	      output->append_line(virtual_line);
-	      sprintf(virtual_line, "   TQSl=%15.7lE,  TQSr=%15.7lE,  TQSk=%15.7lE\n\0", tsp, tsn, tsk);
+	      sprintf(virtual_line, "   TQSl=%15.7lE,  TQSr=%15.7lE,  TQSk=%15.7lE\n", tsp, tsn, tsk);
 	      output->append_line(virtual_line);
 	      sprintf(
-		      virtual_line, "   TQEx=%15.7lE,  TQEy=%15.7lE,  TQEz=%15.7lE\n\0",
+		      virtual_line, "   TQEx=%15.7lE,  TQEy=%15.7lE,  TQEz=%15.7lE\n",
 		      cid->tqce[ilr290 - 1][0], cid->tqce[ilr290 - 1][1], cid->tqce[ilr290 - 1][2]
 		      );
 	      output->append_line(virtual_line);
 	      sprintf(
-		      virtual_line, "   TQSx=%15.7lE,  TQSy=%15.7lE,  TQSz=%15.7lE\n\0",
+		      virtual_line, "   TQSx=%15.7lE,  TQSy=%15.7lE,  TQSz=%15.7lE\n",
 		      cid->tqcs[ilr290 - 1][0], cid->tqcs[ilr290 - 1][1], cid->tqcs[ilr290 - 1][2]
 		      );
 	      output->append_line(virtual_line);
@@ -1404,24 +1404,24 @@ int cluster_jxi488_cycle(int jxi488, ScattererConfiguration *sconf, GeometryConf
 	  } //ilr290 loop
 	  double rbirif = (real(cid->c1ao->fsac[0][0]) - real(cid->c1ao->fsac[1][1])) / real(cid->c1ao->fsac[0][0]);
 	  double rdichr = (imag(cid->c1ao->fsac[0][0]) - imag(cid->c1ao->fsac[1][1])) / imag(cid->c1ao->fsac[0][0]);
-	  sprintf(virtual_line, "  (RE(FSAC(1,1))-RE(FSAC(2,2)))/RE(FSAC(1,1))=%15.7lE\n\0", rbirif);
+	  sprintf(virtual_line, "  (RE(FSAC(1,1))-RE(FSAC(2,2)))/RE(FSAC(1,1))=%15.7lE\n", rbirif);
 	  output->append_line(virtual_line);
-	  sprintf(virtual_line, "  (IM(FSAC(1,1))-IM(FSAC(2,2)))/IM(FSAC(1,1))=%15.7lE\n\0", rdichr);
+	  sprintf(virtual_line, "  (IM(FSAC(1,1))-IM(FSAC(2,2)))/IM(FSAC(1,1))=%15.7lE\n", rdichr);
 	  output->append_line(virtual_line);
-	  sprintf(virtual_line, "  MULC\n\0");
+	  sprintf(virtual_line, "  MULC\n");
 	  output->append_line(virtual_line);
 	  for (int i = 0; i < 4; i++) {
 	    sprintf(
-		    virtual_line, "        %15.7lE%15.7lE%15.7lE%15.7lE\n\0",
+		    virtual_line, "        %15.7lE%15.7lE%15.7lE%15.7lE\n",
 		    cid->cmul[i][0], cid->cmul[i][1], cid->cmul[i][2], cid->cmul[i][3]
 		    );
 	    output->append_line(virtual_line);
 	  }
-	  sprintf(virtual_line, "  MULCLR\n\0");
+	  sprintf(virtual_line, "  MULCLR\n");
 	  output->append_line(virtual_line);
 	  for (int i = 0; i < 4; i++) {
 	    sprintf(
-		    virtual_line, "        %15.7lE%15.7lE%15.7lE%15.7lE\n\0",
+		    virtual_line, "        %15.7lE%15.7lE%15.7lE%15.7lE\n",
 		    cid->cmullr[i][0], cid->cmullr[i][1], cid->cmullr[i][2], cid->cmullr[i][3]
 		    );
 	    output->append_line(virtual_line);
@@ -1445,30 +1445,30 @@ int cluster_jxi488_cycle(int jxi488, ScattererConfiguration *sconf, GeometryConf
 		vtppoanp->append_line(VirtualBinaryLine(value));
 	      }
 	    }
-	    sprintf(virtual_line, "     CLUSTER (ENSEMBLE AVERAGE, MODE%2d)\n\0", iavm);
+	    sprintf(virtual_line, "     CLUSTER (ENSEMBLE AVERAGE, MODE%2d)\n", iavm);
 	    output->append_line(virtual_line);
 	    if (inpol == 0) {
-	      sprintf(virtual_line, "   LIN\n\0");
+	      sprintf(virtual_line, "   LIN\n");
 	      output->append_line(virtual_line);
 	    } else { // label 316
-	      sprintf(virtual_line, "  CIRC\n\0");
+	      sprintf(virtual_line, "  CIRC\n");
 	      output->append_line(virtual_line);
 	    }
 	    // label 318
-	    sprintf(virtual_line, "  MULC\n\0");
+	    sprintf(virtual_line, "  MULC\n");
 	    output->append_line(virtual_line);
 	    for (int i = 0; i < 4; i++) {
 	      sprintf(
-		      virtual_line, "        %15.7lE%15.7lE%15.7lE%15.7lE\n\0",
+		      virtual_line, "        %15.7lE%15.7lE%15.7lE%15.7lE\n",
 		      cid->cmul[i][0], cid->cmul[i][1], cid->cmul[i][2], cid->cmul[i][3]
 		      );
 	      output->append_line(virtual_line);
 	    }
-	    sprintf(virtual_line, "  MULCLR\n\0");
+	    sprintf(virtual_line, "  MULCLR\n");
 	    output->append_line(virtual_line);
 	    for (int i = 0; i < 4; i++) {
 	      sprintf(
-		      virtual_line, "        %15.7lE%15.7lE%15.7lE%15.7lE\n\0",
+		      virtual_line, "        %15.7lE%15.7lE%15.7lE%15.7lE\n",
 		      cid->cmullr[i][0], cid->cmullr[i][1], cid->cmullr[i][2], cid->cmullr[i][3]
 		      );
 	      output->append_line(virtual_line);