Index: /trunk/ippScripts/scripts/publish_file.pl
===================================================================
--- /trunk/ippScripts/scripts/publish_file.pl	(revision 25073)
+++ /trunk/ippScripts/scripts/publish_file.pl	(revision 25074)
@@ -82,4 +82,5 @@
 my %zp;                         # Zero points
 my %exp_id;                     # Exposure identifiers
+my %exp_name;                   # Exposure names
 {
     my $command;                # Command to run
@@ -118,6 +119,8 @@
             $zp{"$skycell_id.pos"} = $zp;
             $zp{"$skycell_id.neg"} = $zp if defined $comp->{bothways} and $comp->{bothways};
-            $exp_id{"$skycell_id.pos"} = $comp->{exp1};
-            $exp_id{"$skycell_id.neg"} = $comp->{exp2} if defined $comp->{bothways} and $comp->{bothways};
+            $exp_id{"$skycell_id.pos"} = $comp->{exp_id_1};
+            $exp_id{"$skycell_id.neg"} = $comp->{exp_id_2} if defined $comp->{bothways} and $comp->{bothways};
+            $exp_name{"$skycell_id.pos"} = $comp->{exp_name_1};
+            $exp_name{"$skycell_id.neg"} = $comp->{exp_name_2} if defined $comp->{bothways} and $comp->{bothways};
         } elsif ($stage eq 'camera') {
             my $cam_id = $comp->{cam_id};
@@ -125,4 +128,5 @@
             $zp{$cam_id} = $zp;
             $exp_id{$cam_id} = $comp->{exp_id};
+            $exp_name{$cam_id} = $comp->{exp_name};
         }
     }
@@ -140,4 +144,5 @@
     my $zp = $zp{$comp};
     my $exp_id = $exp_id{$comp};
+    my $exp_name = $exp_name{$comp};
     if ($product eq "IPP-MOPS") {
         my $outuri = "$outroot.$comp.fits";
@@ -145,5 +150,5 @@
             &my_die( "Unable to resolve output file $outuri", $pub_id, $PS_EXIT_SYS_ERROR);
 
-        my $command = "$ppMops $file $zp $exp_id $out";
+        my $command = "$ppMops $file $zp $exp_id $exp_name $out";
         my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
             run(command => $command, verbose => $verbose);
Index: /trunk/ippTools/src/difftool.c
===================================================================
--- /trunk/ippTools/src/difftool.c	(revision 25073)
+++ /trunk/ippTools/src/difftool.c	(revision 25074)
@@ -1179,6 +1179,6 @@
 
         if (!available && (num != skycell_count)) {
-            psTrace("difftool", PS_LOG_INFO, "%" PRId64 " skyfiles with stack found for warp_id %"
-                PRId64 " need %" PRId64, num, skycell_count, warp_id);
+            psTrace("difftool", PS_LOG_INFO, "%" PRId64 " skyfiles with stack found for warp_id %" PRId64
+                    " need %" PRId64, num, warp_id, skycell_count);
             continue;
         }
Index: /trunk/ppMops/src/ppMops.c
===================================================================
--- /trunk/ppMops/src/ppMops.c	(revision 25073)
+++ /trunk/ppMops/src/ppMops.c	(revision 25074)
@@ -6,5 +6,5 @@
 int main(int argc, char *argv[])
 {
-    if (argc != 5) {
+    if (argc != 6) {
         fprintf(stderr, "Insufficient arguments.\n");
         fprintf(stderr, "Usage: %s DETECTIONS ZP EXP_ID OUTPUT\n", argv[0]);
@@ -16,5 +16,6 @@
     data->zp = atof(argv[2]);
     data->exp_id = atoll(argv[3]);
-    data->output = psStringCopy(argv[4]);
+    data->exp_name = psStringCopy(argv[4]);
+    data->output = psStringCopy(argv[5]);
 
     if (!isfinite(data->zp)) {
@@ -137,6 +138,7 @@
         psMetadataAddF64(outHeader, PS_LIST_TAIL, "TEL_ALT", 0, "Telescope altitude", alt);
         psMetadataAddF64(outHeader, PS_LIST_TAIL, "TEL_AZ", 0, "Telescope azimuth", az);
-        psMetadataAddS32(outHeader, PS_LIST_TAIL, "DIFFIMID", 0, "Difference image identifier", imageid);
-        psMetadataAddS32(outHeader, PS_LIST_TAIL, "FPA_ID", 0, "Exposure identifier", data->exp_id);
+        psMetadataAddS64(outHeader, PS_LIST_TAIL, "DIFFIMID", 0, "Difference image identifier", imageid);
+        psMetadataAddStr(outHeader, PS_LIST_TAIL, "FPA_ID", 0, "Exposure name", data->exp_name);
+        psMetadataAddS64(outHeader, PS_LIST_TAIL, "EXP_ID", 0, "Exposure identifier", data->exp_id);
         psMetadataAddStr(outHeader, PS_LIST_TAIL, "OBSCODE", 0, "IAU Observatory code", OBSERVATORY_CODE);
         psMetadataAddF32(outHeader, PS_LIST_TAIL, "STARPSF", 0, "Stellar PSF (arcsec)", psf);
Index: /trunk/ppMops/src/ppMops.h
===================================================================
--- /trunk/ppMops/src/ppMops.h	(revision 25073)
+++ /trunk/ppMops/src/ppMops.h	(revision 25074)
@@ -17,4 +17,5 @@
     float zp;                           // Magnitude zero point
     psS64 exp_id;                       // Exposure identifier
+    psString exp_name;                  // Exposure name
     psString output;                    // Output filename
 } ppMopsData;
Index: /trunk/ppMops/src/ppMopsData.c
===================================================================
--- /trunk/ppMops/src/ppMopsData.c	(revision 25073)
+++ /trunk/ppMops/src/ppMopsData.c	(revision 25074)
@@ -11,4 +11,5 @@
 {
     psFree(data->detections);
+    psFree(data->exp_name);
     psFree(data->output);
     return;
@@ -22,4 +23,6 @@
     data->detections = NULL;
     data->zp = NAN;
+    data->exp_id = 0;
+    data->exp_name = NULL;
     data->output = NULL;
 
