Index: /branches/eam_branches/ipp-20150419/Ohana/src/opihi/dvo/gstar.c
===================================================================
--- /branches/eam_branches/ipp-20150419/Ohana/src/opihi/dvo/gstar.c	(revision 38435)
+++ /branches/eam_branches/ipp-20150419/Ohana/src/opihi/dvo/gstar.c	(revision 38436)
@@ -8,15 +8,18 @@
 
 typedef enum {
+  GSTAR_FILTER_NAMES,
+  GSTAR_SECF_FLAGS,
+  GSTAR_UCDIST,
   GSTAR_AVE_MAG,
   GSTAR_AVE_MAG_ERR,
   GSTAR_AVE_MAG_CHISQ,
-  GSTAR_FILTER_NAMES,
-  GSTAR_SECF_FLAGS,
-  GSTAR_UCDIST,
   GSTAR_AVE_AP_MAG,
+  GSTAR_AVE_AP_MAG_ERR,
+  GSTAR_AVE_AP_MAG_CHISQ,
   GSTAR_AVE_MAG_MIN,
   GSTAR_AVE_MAG_MAX,
   GSTAR_AVE_KRON_MAG,
   GSTAR_AVE_KRON_MAG_ERR,
+  GSTAR_AVE_KRON_MAG_CHISQ,
   GSTAR_AVE_NCODE,
   GSTAR_AVE_NUSED,
@@ -31,8 +34,11 @@
   GSTAR_WARP_FLUX_PSF,
   GSTAR_WARP_FLUX_PSF_ERR,
+  GSTAR_WARP_FLUX_PSF_CHISQ,
   GSTAR_WARP_FLUX_KRON,
   GSTAR_WARP_FLUX_KRON_ERR,
+  GSTAR_WARP_FLUX_KRON_CHISQ,
   GSTAR_WARP_FLUX_APER,
   GSTAR_WARP_FLUX_APER_ERR,
+  GSTAR_WARP_FLUX_APER_CHISQ,
   GSTAR_STACK_MAG_PSF,
   GSTAR_STACK_MAG_PSF_ERR,
@@ -41,10 +47,19 @@
   GSTAR_STACK_MAG_APER,
   GSTAR_STACK_MAG_APER_ERR,
+  GSTAR_STACK_NUSED,
   GSTAR_WARP_MAG_PSF,
   GSTAR_WARP_MAG_PSF_ERR,
+  GSTAR_WARP_MAG_PSF_CHISQ,
   GSTAR_WARP_MAG_KRON,
   GSTAR_WARP_MAG_KRON_ERR,
+  GSTAR_WARP_MAG_KRON_CHISQ,
   GSTAR_WARP_MAG_APER,
   GSTAR_WARP_MAG_APER_ERR,
+  GSTAR_WARP_MAG_APER_CHISQ,
+  GSTAR_WARP_NWARP,
+  GSTAR_WARP_NWARP_GOOD,
+  GSTAR_WARP_NWARP_USED_PSF,
+  GSTAR_WARP_NWARP_USED_KRON,
+  GSTAR_WARP_NWARP_USED_AP,
 } GSTAR_SECF_CODES;
 
@@ -348,4 +363,16 @@
 	gprint (GP_LOG, "\n");
 
+	if (EXTRA_OUTPUT) {
+	  /* Mmin */
+	  gprint (GP_LOG, "chp_psf_min: ");
+	  for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_AVE_MAG_MIN);
+	  gprint (GP_LOG, "\n");
+
+	  /* Mmax */
+	  gprint (GP_LOG, "chp_psf_max: ");
+	  for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_AVE_MAG_MAX);;
+	  gprint (GP_LOG, "\n");
+	}
+
 	/* average mag errors */
 	gprint (GP_LOG, "chp_psf_err: ");
@@ -374,4 +401,12 @@
 	  gprint (GP_LOG, "\n");
 
+	  gprint (GP_LOG, "chp_ap__err: ");
+	  for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_AVE_AP_MAG_ERR);
+	  gprint (GP_LOG, "\n");
+
+	  gprint (GP_LOG, "chp_ap__chi: ");
+	  for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_AVE_AP_MAG_CHISQ);
+	  gprint (GP_LOG, "\n");
+
 	  /* average mag Nused */
 	  gprint (GP_LOG, "chp_ap__N:   ");
@@ -391,4 +426,8 @@
 	  gprint (GP_LOG, "\n");
 
+	  gprint (GP_LOG, "chp_krn_chi: ");
+	  for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_AVE_KRON_MAG_CHISQ);
+	  gprint (GP_LOG, "\n");
+
 	  /* average mag Nused */
 	  gprint (GP_LOG, "chp_krn_N:   ");
@@ -397,25 +436,4 @@
 	} 
 
-	if (EXTRA_OUTPUT) {
-	  /* Mmin */
-	  gprint (GP_LOG, "chp_psf_min: ");
-	  for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_AVE_MAG_MIN);
-	  gprint (GP_LOG, "\n");
-
-	  /* Mmax */
-	  gprint (GP_LOG, "chp_psf_max: ");
-	  for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_AVE_MAG_MAX);;
-	  gprint (GP_LOG, "\n");
-
-	  /* UCDIST */
-	  gprint (GP_LOG, "ubercal_dst: ");
-	  for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_UCDIST);;
-	  gprint (GP_LOG, "\n");
-
-	  /* secfilt flags */
-	  gprint (GP_LOG, "filtflags:   ");
-	  for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_SECF_FLAGS);
-	  gprint (GP_LOG, "\n");
-	}
 	if (STACK_OUTPUT && MAG_OUTPUT) {
 	  /* FluxPSF */
@@ -429,4 +447,10 @@
 	  gprint (GP_LOG, "\n");
   
+	  if (!FLUX_OUTPUT) {
+	    gprint (GP_LOG, "stk_Nstack: ");
+	    for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_STACK_NUSED);
+	    gprint (GP_LOG, "\n");
+	  }
+
 	  if (KRON_OUTPUT) {
 	    /* MagKron */
@@ -464,4 +488,22 @@
 	  gprint (GP_LOG, "\n");
   
+	  gprint (GP_LOG, "wrp_psf_chi: ");
+	  for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_WARP_MAG_PSF_CHISQ);
+	  gprint (GP_LOG, "\n");
+  
+	  if (!FLUX_OUTPUT) {
+	    gprint (GP_LOG, "wrp_Nwarp:   ");
+	    for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_WARP_NWARP);
+	    gprint (GP_LOG, "\n");
+	    
+	    gprint (GP_LOG, "wrp_NGood:   ");
+	    for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_WARP_NWARP_GOOD);
+	    gprint (GP_LOG, "\n");
+
+	    gprint (GP_LOG, "wrp_NUsed:   ");
+	    for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_WARP_NWARP_USED_PSF);
+	    gprint (GP_LOG, "\n");
+	  }
+	  
 	  if (KRON_OUTPUT) {
 	    /* MagKron */
@@ -475,6 +517,16 @@
 	    gprint (GP_LOG, "\n");
 
+	    /* dMagKron */
+	    gprint (GP_LOG, "wrp_krn_chp: ");
+	    for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_WARP_MAG_KRON_CHISQ);
+	    gprint (GP_LOG, "\n");
+
+	    if (!FLUX_OUTPUT) {
+	      gprint (GP_LOG, "wrp_krn_Nuse:");
+	      for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_WARP_NWARP_USED_KRON);
+	      gprint (GP_LOG, "\n");
+	    }
 	  }
-
+	  
 	  if (APER_OUTPUT) {
 	    /* MagAper */
@@ -487,4 +539,15 @@
 	    for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_WARP_MAG_APER_ERR);
 	    gprint (GP_LOG, "\n");
+
+	    /* dMagAper */
+	    gprint (GP_LOG, "wrp_ap__chi: ");
+	    for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_WARP_MAG_APER_CHISQ);
+	    gprint (GP_LOG, "\n");
+
+	    if (!FLUX_OUTPUT) {
+	      gprint (GP_LOG, "wrp_ap_Nuse: ");
+	      for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_WARP_NWARP_USED_AP);
+	      gprint (GP_LOG, "\n");
+	    }
 	  }
 	}
@@ -514,13 +577,17 @@
 	  if (APER_OUTPUT) {
 	    /* FluxAper */
-	    gprint (GP_LOG, "stk_ap_ave: ");
+	    gprint (GP_LOG, "stk_ap_ave:  ");
 	    for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_STACK_FLUX_APER);
 	    gprint (GP_LOG, "\n");
   
 	    /* dFluxAper */
-	    gprint (GP_LOG, "stk_ap_err: ");
+	    gprint (GP_LOG, "stk_ap_err:  ");
 	    for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_STACK_FLUX_APER_ERR);
 	    gprint (GP_LOG, "\n");
 	  }
+
+	  gprint (GP_LOG, "stk_Nstack:  ");
+	  for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_STACK_NUSED);
+	  gprint (GP_LOG, "\n");
 	}
 	if (WARP_OUTPUT && FLUX_OUTPUT) {
@@ -531,8 +598,24 @@
   
 	  /* dFluxPSF */
-	  gprint (GP_LOG, "wrp_psf_ave: ");
+	  gprint (GP_LOG, "wrp_psf_err: ");
 	  for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_WARP_FLUX_PSF_ERR);
 	  gprint (GP_LOG, "\n");
   
+	  gprint (GP_LOG, "wrp_psf_chi: ");
+	  for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_WARP_FLUX_PSF_CHISQ);
+	  gprint (GP_LOG, "\n");
+  
+	  gprint (GP_LOG, "wrp_Nwarp:   ");
+	  for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_WARP_NWARP);
+	  gprint (GP_LOG, "\n");
+	  
+	  gprint (GP_LOG, "wrp_NGood:   ");
+	  for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_WARP_NWARP_GOOD);
+	  gprint (GP_LOG, "\n");
+
+	  gprint (GP_LOG, "wrp_NUsed:   ");
+	  for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_WARP_NWARP_USED_PSF);
+	  gprint (GP_LOG, "\n");
+
 	  if (KRON_OUTPUT) {
 	    /* FluxKron */
@@ -545,4 +628,12 @@
 	    for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_WARP_FLUX_KRON_ERR);
 	    gprint (GP_LOG, "\n");
+
+	    gprint (GP_LOG, "wrp_krn_chi: ");
+	    for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_WARP_FLUX_KRON_CHISQ);
+	    gprint (GP_LOG, "\n");
+
+	    gprint (GP_LOG, "wrp_krn_Nuse:");
+	    for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_WARP_NWARP_USED_KRON);
+	    gprint (GP_LOG, "\n");
 	  }
 
@@ -557,7 +648,27 @@
 	    for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_WARP_FLUX_APER_ERR);
 	    gprint (GP_LOG, "\n");
+
+	    gprint (GP_LOG, "wrp_ap__chi: ");
+	    for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_WARP_FLUX_APER_CHISQ);
+	    gprint (GP_LOG, "\n");
+
+	    gprint (GP_LOG, "wrp_ap_Nuse: ");
+	    for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_WARP_NWARP_USED_AP);
+	    gprint (GP_LOG, "\n");
 	  }
 	}
-      }
+	if (EXTRA_OUTPUT) {
+	  /* secfilt flags */
+	  gprint (GP_LOG, "filtflags:   ");
+	  for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_SECF_FLAGS);
+	  gprint (GP_LOG, "\n");
+
+	  /* UCDIST */
+	  gprint (GP_LOG, "ubercal_dst: ");
+	  for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_UCDIST);;
+	  gprint (GP_LOG, "\n");
+	}
+      }
+
       gprint (GP_LOG, "\n");
       
@@ -649,4 +760,5 @@
 	      gprint (GP_LOG, "0x%08x ", catalog.measure[Nv].imageID);
 	      gprint (GP_LOG, "%5.3f ", catalog.measure[Nv].psfQF);
+	      gprint (GP_LOG, "%5.3f ", catalog.measure[Nv].psfQFperf);
 	      gprint (GP_LOG, "%7.1f ", catalog.measure[Nv].psfChisq);
 	      // gprint (GP_LOG, "%3.1f ", catalog.measure[Nv].crNsigma);
@@ -659,4 +771,6 @@
 	      gprint (GP_LOG, "%10.3e ", catalog.measure[Nv].FluxKron);
 	      gprint (GP_LOG, "%10.3e ", catalog.measure[Nv].dFluxKron);
+	      gprint (GP_LOG, "%10.3e ", catalog.measure[Nv].FluxAp);
+	      gprint (GP_LOG, "%10.3e ", catalog.measure[Nv].dFluxAp);
 	    }
 	    gprint (GP_LOG, "\n");
@@ -711,12 +825,12 @@
 void print_double (double value) {
   if (isnan(value)) 
-    gprint (GP_LOG, "  NaN    ");
+    gprint (GP_LOG, "       NaN ");
   else 
-    gprint (GP_LOG, "  %6.3f ", value);
+    gprint (GP_LOG, "   %7.4f ", value);
 }
 
 void print_double_exp (double value) {
   if (isnan(value)) 
-    gprint (GP_LOG, "  NaN    ");
+    gprint (GP_LOG, "       NaN ");
   else 
     gprint (GP_LOG, "%10.3e ", value);
@@ -725,7 +839,7 @@
 void print_short (double value, short int ival) {
   if (ival == NAN_S_SHORT) 
-    gprint (GP_LOG, "  NaN    ");
+    gprint (GP_LOG, "       NaN ");
   else 
-    gprint (GP_LOG, "  %6.3f ", value);
+    gprint (GP_LOG, "   %7.4f ", value);
 }
 
@@ -786,5 +900,5 @@
 	print_double (NAN);
       } else {
-	print_double (secfilt[seq].Mchisq);
+	print_double_exp (secfilt[seq].Mchisq);
       }
       break;
@@ -792,5 +906,5 @@
     case GSTAR_FILTER_NAMES: /* filter names */
       code = GetPhotcodebyNsec (seq);
-      gprint (GP_LOG, "  %-6s ", code[0].name);
+      gprint (GP_LOG, "%10s ", code[0].name);
       break;
 
@@ -805,7 +919,7 @@
     case GSTAR_UCDIST: /* ubercal distance */
       if (seq == -1) {
-	gprint (GP_LOG, "%5d ", 0);
-      } else {
-	gprint (GP_LOG, "%5d ", secfilt[seq].ubercalDist);
+	gprint (GP_LOG, "%10d ", 0);
+      } else {
+	gprint (GP_LOG, "%10d ", secfilt[seq].ubercalDist);
       }
       break;
@@ -813,7 +927,7 @@
     case GSTAR_AVE_NCODE: /* Ncode */
       if (seq == -1) {
-	gprint (GP_LOG, "%3d ", 0);
-      } else {
-	gprint (GP_LOG, "%3d ", secfilt[seq].Ncode);
+	gprint (GP_LOG, "%10d ", 0);
+      } else {
+	gprint (GP_LOG, "%10d ", secfilt[seq].Ncode);
       }
       break;
@@ -821,7 +935,7 @@
     case GSTAR_AVE_NUSED: /* Nused */
       if (seq == -1) {
-	gprint (GP_LOG, "%3d ", 0);
-      } else {
-	gprint (GP_LOG, "%3d ", secfilt[seq].Nused);
+	gprint (GP_LOG, "%10d ", 0);
+      } else {
+	gprint (GP_LOG, "%10d ", secfilt[seq].Nused);
       }
       break;
@@ -829,7 +943,7 @@
     case GSTAR_AVE_KRON_NUSED: /* Nused */
       if (seq == -1) {
-	gprint (GP_LOG, "%3d ", 0);
-      } else {
-	gprint (GP_LOG, "%3d ", secfilt[seq].NusedKron);
+	gprint (GP_LOG, "%10d ", 0);
+      } else {
+	gprint (GP_LOG, "%10d ", secfilt[seq].NusedKron);
       }
       break;
@@ -837,7 +951,7 @@
     case GSTAR_AVE_AP_NUSED: /* Nused */
       if (seq == -1) {
-	gprint (GP_LOG, "%3d ", 0);
-      } else {
-	gprint (GP_LOG, "%3d ", secfilt[seq].NusedAp);
+	gprint (GP_LOG, "%10d ", 0);
+      } else {
+	gprint (GP_LOG, "%10d ", secfilt[seq].NusedAp);
       }
       break;
@@ -869,4 +983,20 @@
       break;
 
+    case GSTAR_AVE_AP_MAG_ERR: /* average ap mags */
+      if (seq == -1) {
+	print_double (NAN);
+      } else {
+	print_double (secfilt[seq].dMap);
+      }
+      break;
+
+    case GSTAR_AVE_AP_MAG_CHISQ: /* average ap mags */
+      if (seq == -1) {
+	print_double (NAN);
+      } else {
+	print_double_exp (secfilt[seq].sMap);
+      }
+      break;
+
     case GSTAR_AVE_KRON_MAG: /* average ap mags */
       if (seq == -1) {
@@ -885,4 +1015,12 @@
       break;
 
+    case GSTAR_AVE_KRON_MAG_CHISQ: /* average ap mags */
+      if (seq == -1) {
+	print_double (NAN);
+      } else {
+	print_double_exp (secfilt[seq].sMkron);
+      }
+      break;
+
       /******************* STACK : FLUX **********************/
 
@@ -935,4 +1073,12 @@
       break;
 
+    case GSTAR_STACK_NUSED: /* Nused */
+      if (seq == -1) {
+	gprint (GP_LOG, "%10d ", 0);
+      } else {
+	gprint (GP_LOG, "%10d ", secfilt[seq].Nstack);
+      }
+      break;
+
       /******************* STACK : MAG **********************/
 
@@ -1003,4 +1149,12 @@
       break;
 
+    case GSTAR_WARP_FLUX_PSF_CHISQ: /* average ap mags */
+      if (seq == -1) {
+	print_double (NAN);
+      } else {
+	print_double_exp (secfilt[seq].sFpsfWrp);
+      }
+      break;
+
     case GSTAR_WARP_FLUX_KRON: /* average ap mags */
       if (seq == -1) {
@@ -1019,4 +1173,12 @@
       break;
 
+    case GSTAR_WARP_FLUX_KRON_CHISQ: /* average ap mags */
+      if (seq == -1) {
+	print_double (NAN);
+      } else {
+	print_double_exp (secfilt[seq].sFkronWrp);
+      }
+      break;
+
     case GSTAR_WARP_FLUX_APER: /* average ap mags */
       if (seq == -1) {
@@ -1035,4 +1197,12 @@
       break;
 
+    case GSTAR_WARP_FLUX_APER_CHISQ: /* average ap mags */
+      if (seq == -1) {
+	print_double_exp (NAN);
+      } else {
+	print_double_exp (secfilt[seq].sFapWrp);
+      }
+      break;
+
       /******************* WARP : MAG **********************/
 
@@ -1053,4 +1223,12 @@
       break;
 
+    case GSTAR_WARP_MAG_PSF_CHISQ: /* average ap mags */
+      if (seq == -1) {
+	print_double_exp (NAN);
+      } else {
+	print_double_exp (secfilt[seq].sFpsfWrp);
+      }
+      break;
+
     case GSTAR_WARP_MAG_KRON: /* average ap mags */
       if (seq == -1) {
@@ -1069,4 +1247,12 @@
       break;
 
+    case GSTAR_WARP_MAG_KRON_CHISQ: /* average ap mags */
+      if (seq == -1) {
+	print_double_exp (NAN);
+      } else {
+	print_double_exp (secfilt[seq].sFkronWrp);
+      }
+      break;
+
     case GSTAR_WARP_MAG_APER: /* average ap mags */
       if (seq == -1) {
@@ -1085,4 +1271,51 @@
       break;
 
+    case GSTAR_WARP_MAG_APER_CHISQ: /* average ap mags */
+      if (seq == -1) {
+	print_double_exp (NAN);
+      } else {
+	print_double_exp (secfilt[seq].sFapWrp);
+      }
+      break;
+
+    case GSTAR_WARP_NWARP: /* Nused */
+      if (seq == -1) {
+	gprint (GP_LOG, "%10d ", 0);
+      } else {
+	gprint (GP_LOG, "%10d ", secfilt[seq].Nwarp);
+      }
+      break;
+
+    case GSTAR_WARP_NWARP_GOOD: /* Nused */
+      if (seq == -1) {
+	gprint (GP_LOG, "%10d ", 0);
+      } else {
+	gprint (GP_LOG, "%10d ", secfilt[seq].NwarpGood);
+      }
+      break;
+
+    case GSTAR_WARP_NWARP_USED_PSF: /* Nused */
+      if (seq == -1) {
+	gprint (GP_LOG, "%10d ", 0);
+      } else {
+	gprint (GP_LOG, "%10d ", secfilt[seq].NusedWrp);
+      }
+      break;
+
+    case GSTAR_WARP_NWARP_USED_KRON: /* Nused */
+      if (seq == -1) {
+	gprint (GP_LOG, "%10d ", 0);
+      } else {
+	gprint (GP_LOG, "%10d ", secfilt[seq].NusedKronWrp);
+      }
+      break;
+
+    case GSTAR_WARP_NWARP_USED_AP: /* Nused */
+      if (seq == -1) {
+	gprint (GP_LOG, "%10d ", 0);
+      } else {
+	gprint (GP_LOG, "%10d ", secfilt[seq].NusedApWrp);
+      }
+      break;
   }
 }
