Index: /trunk/ippToPsps/test/fulltest.sh
===================================================================
--- /trunk/ippToPsps/test/fulltest.sh	(revision 38887)
+++ /trunk/ippToPsps/test/fulltest.sh	(revision 38888)
@@ -23,4 +23,6 @@
 set stackqueue   = 1
 set stackbatch   = 1
+set forcequeue   = 0
+set forcebatch   = 0
 set objectqueue  = 1
 set objectbatch  = 1
@@ -36,5 +38,5 @@
     echo " -XX : turn off features"
     echo " +XX : turn on features"
-    echo "  features: all, mkgpc1, initdb, initscratch, initbatch, camera, stack, object"
+    echo "  features: all, mkgpc1, initdb, initscratch, initbatch, camera, stack, forcedwarp, object"
     exit 2
   case -all
@@ -47,4 +49,6 @@
     set stackqueue   = 0
     set stackbatch   = 0
+    set forcequeue     = 0
+    set forcebatch     = 0
     set objectqueue  = 0
     set objectbatch  = 0
@@ -69,4 +73,8 @@
     set stackqueue = 0
     set stackbatch = 0
+    breaksw;
+  case -forcedwarp
+    set forcequeue = 0
+    set forcebatch = 0
     breaksw;
   case -object
@@ -95,4 +103,6 @@
     set stackqueue   = 1
     set stackbatch   = 1
+    set forcequeue   = 1
+    set forcebatch   = 1
     set objectqueue  = 1
     set objectbatch  = 1
@@ -117,4 +127,8 @@
     set stackqueue = 1
     set stackbatch = 1
+    breaksw;
+  case +forcedwarp
+    set forcequeue = 1
+    set forcebatch = 1
     breaksw;
   case +object
@@ -133,5 +147,5 @@
     echo " -XX : turn off features"
     echo " +XX : turn on features"
-    echo "  features: all, mkgpc1, initdb, initscratch, initbatch, camera, stack, object"
+    echo "  features: all, mkgpc1, initdb, initscratch, initbatch, camera, stack, forcedwarp, object"
     exit 2
 endif
@@ -334,4 +348,54 @@
 
 # this code is sensitive to a previously existing database?
+if ($forcequeue) then
+  echo ""
+  echo " ---- queue FW batches ----"
+
+  echo "$queuename	      " >  forcebatch.dat # skychunk name
+  echo "test_ds		      " >> forcebatch.dat # datastore_product
+  echo "IPP_PSPS	      " >> forcebatch.dat # datastore_type
+  echo "0		      " >> forcebatch.dat # datastore_publish
+  echo "catdir.wrp	      " >> forcebatch.dat # dvo_label
+  echo "$OUTDIR/catdir.wrp    " >> forcebatch.dat # dvo_location
+  echo "9		      " >> forcebatch.dat # min_ra
+  echo "11		      " >> forcebatch.dat # max_ra
+  echo "19		      " >> forcebatch.dat # min_dec
+  echo "21		      " >> forcebatch.dat # max_dec
+  echo "2		      " >> forcebatch.dat # box_size
+  echo "$OUTDIR		      " >> forcebatch.dat # base_path
+  echo "0		      " >> forcebatch.dat # data_release
+  echo "0		      " >> forcebatch.dat # delete_local
+  echo "1		      " >> forcebatch.dat # delete_datastore
+  echo "1		      " >> forcebatch.dat # delete_dxlayer
+  echo "2012-12-10 00:00:00.0 " >> forcebatch.dat # epoch
+  echo "3PI		      " >> forcebatch.dat # survey
+  echo "3PI		      " >> forcebatch.dat # psps_survey
+  echo "0		      " >> forcebatch.dat # queue_P2
+  echo "0		      " >> forcebatch.dat # queue_ST
+  echo "0		      " >> forcebatch.dat # queue_OB
+  echo "0                     " >> forcebatch.dat # queue_DF
+  echo "0                     " >> forcebatch.dat # queue_DO
+  echo "1                     " >> forcebatch.dat # queue_FW
+  echo "0                     " >> forcebatch.dat # queue_FO
+  echo "1                     " >> forcebatch.dat # active
+  echo "0                     " >> forcebatch.dat # parallel
+  echo "use_new               " >> forcebatch.dat # P2_smf_version
+  echo "any                   " >> forcebatch.dat # ST_cmf_version
+  echo "2000-01-01 00:00:00.0 " >> forcebatch.dat # trange_start
+  echo "2020-01-01 00:00:00.0 " >> forcebatch.dat # trange_end
+  ippjython queue.py -test edit -simtest < forcebatch.dat
+  if ($status) exit 1
+endif
+
+if ($forcebatch) then
+  echo ""
+  echo " ---- load FW batches ----"
+
+  rm -rf $OUTDIR/FW
+  ippjython loader.py -test $queuename once -simtest < /dev/null
+  if ($status) exit
+endif
+
+# this code is sensitive to a previously existing database?
 if ($objectqueue) then
   echo ""
Index: /trunk/ippToPsps/test/gpc1schema.sql
===================================================================
--- /trunk/ippToPsps/test/gpc1schema.sql	(revision 38888)
+++ /trunk/ippToPsps/test/gpc1schema.sql	(revision 38888)
@@ -0,0 +1,29 @@
+
+  CREATE TABLE ippToPspsFake       ( my_id INT  );
+  CREATE TABLE skycell             ( skycell_id CHAR(64), radeg REAL, decdeg REAL );
+  CREATE TABLE rawExp              ( exp_id INT, exp_name CHAR(64), exp_time REAL, bg REAL, bg_stdev REAL, ra FLOAT, decl FLOAT, dateobs DATETIME );
+  CREATE TABLE chipRun             ( exp_id INT, chip_id INT );
+  CREATE TABLE camRun              ( chip_id INT, cam_id INT, dist_group CHAR(64), software_ver CHAR(16) );
+  CREATE TABLE camProcessedExp     ( cam_id INT, fault INT, path_base CHAR(255) );
+  CREATE TABLE fakeRun             ( fake_id INT, cam_id INT );
+
+  CREATE TABLE warpRun             ( warp_id INT, fake_id INT, tess_id CHAR(64) );
+  CREATE TABLE warpSkyCellMap      ( warp_id INT, skycell_id CHAR(64), class_id CHAR(64) );
+  CREATE TABLE warpImfile          ( warp_id INT, skycell_id CHAR(64), warp_skyfile_id INT );
+
+  CREATE TABLE stackRun            ( stack_id INT, skycell_id CHAR(64), filter CHAR(64), software_ver CHAR(16) );
+  CREATE TABLE stackInputSkyfile   ( stack_id INT, warp_id INT );
+  CREATE TABLE stackSumSkyfile     ( stack_id INT, mjd_obs DOUBLE );
+
+  CREATE TABLE skycalRun           ( sky_id INT, skycal_id INT, stack_id INT );
+  CREATE TABLE skycalResult        ( skycal_id INT, path_base CHAR(255));
+
+  CREATE TABLE addRun              ( add_id INT, stage CHAR(64), stage_extra1 INT, state CHAR(64), stage_id INT, minidvodb_name CHAR(64) );
+  CREATE TABLE addProcessedExp     ( add_id INT, fault INT );
+  CREATE TABLE minidvodbRun        ( minidvodb_id INT, minidvodb_name CHAR(64), state CHAR(64) );
+  CREATE TABLE minidvodbProcessed  ( minidvodb_id INT, fault INT );
+  CREATE TABLE mergedvodbRun       ( minidvodb_id INT, merge_id INT, state CHAR(64), mergedvodb CHAR(64) );
+  CREATE TABLE mergedvodbProcessed ( merge_id INT, fault INT );
+  CREATE TABLE fullForceInput      ( ff_id INT, warp_id INT);
+  CREATE TABLE fullForceRun        ( ff_id INT, skycal_id INT);
+  CREATE TABLE fullForceResult     ( ff_id INT, warp_id INT, software_ver INT, path_base CHAR(64));
Index: /trunk/ippToPsps/test/mkgpc1.sh
===================================================================
--- /trunk/ippToPsps/test/mkgpc1.sh	(revision 38887)
+++ /trunk/ippToPsps/test/mkgpc1.sh	(revision 38888)
@@ -11,8 +11,6 @@
   set dbpass = $4
 
-  mysql -h $dbhost -u root -p <<EOF
-   grant all on *.* to $dbuser@"$dbhost" identified by '$dbpass';
-EOF
-    exit 0;
+  mysql -h $dbhost -u root -p -e "grant all on *.* to $dbuser@"$dbhost" identified by '$dbpass'"
+  exit 0;
 endif
 
@@ -29,108 +27,7 @@
 
   # create a database with completely minimal tables needed to test
-  mysql -h $dbhost -u $dbuser $dbpass <<EOF
-   CREATE DATABASE $dbname;
-   USE $dbname;
-  CREATE TABLE ippToPspsFake (
-    my_id INT
-  );
-  CREATE TABLE skycell (
-   radeg REAL,
-   decdeg REAL,
-   skycell_id CHAR(64)
-  );
-  CREATE TABLE rawExp (
-   exp_id INT,
-   exp_name CHAR(64),
-   exp_time REAL,
-   bg REAL,
-   bg_stdev REAL,
-   ra FLOAT,
-   decl FLOAT,
-   dateobs DATETIME 
-  );
-  CREATE TABLE chipRun (
-    exp_id INT,
-    chip_id INT
-  );
-  CREATE TABLE camRun (
-    chip_id INT,
-    cam_id INT,
-    dist_group CHAR(64),
-    software_ver CHAR(16)
-  );
-  CREATE TABLE camProcessedExp (
-    path_base CHAR(255),
-    cam_id INT,
-    fault INT
-  );
-  CREATE TABLE fakeRun (
-    fake_id INT,
-    cam_id INT
-  );
-  CREATE TABLE warpRun (
-   warp_id INT,
-   fake_id INT
-  );
-  CREATE TABLE warpSkyCellMap (
-   warp_id INT,
-   skycell_id CHAR(64),
-   class_id CHAR(64)
-  );
-  CREATE TABLE stackRun (
-   stack_id INT,
-   skycell_id CHAR(64),
-   filter CHAR(64),
-   software_ver CHAR(16)
-  );
-  CREATE TABLE stackInputSkyfile (
-   stack_id INT,
-   warp_id INT
-  );
-  CREATE TABLE stackSumSkyfile (
-   stack_id INT,
-   mjd_obs DOUBLE
-  );
-  CREATE TABLE skycalRun (
-   sky_id INT,
-   skycal_id INT,
-   stack_id INT
-  );
-  CREATE TABLE skycalResult (
-   path_base CHAR(255),
-   skycal_id INT
-  );
-  CREATE TABLE addRun (
-    add_id INT,
-    stage CHAR(64),
-    state CHAR(64),
-    stage_id INT,
-    minidvodb_name CHAR(64)
-  );
-  CREATE TABLE addProcessedExp (
-    add_id INT,
-    fault INT
-  );
-  CREATE TABLE minidvodbRun (
-   minidvodb_name CHAR(64),
-   minidvodb_id INT,
-   state CHAR(64)
-  );
-  CREATE TABLE minidvodbProcessed (
-   minidvodb_id INT,
-   fault INT
-  );
-  CREATE TABLE mergedvodbRun (
-   minidvodb_id INT,
-   merge_id INT,
-   state CHAR(64),
-   mergedvodb CHAR(64)
-  );
-  CREATE TABLE mergedvodbProcessed (
-   merge_id INT,
-   fault INT
-  );
-EOF
-    exit 0;
+  mysql -h $dbhost -u $dbuser $dbpass -e "CREATE DATABASE $dbname"
+  mysql -h $dbhost -u $dbuser $dbpass $dbname < gpc1schema.sql
+  exit 0;
 endif
 
@@ -146,8 +43,12 @@
   endif
 
-  mysql -h $dbhost -u $dbuser $dbpass <<EOF
-   USE $dbname;
-   describe ippToPspsFake;
-EOF
+  (mysql -B -h $dbhost -u $dbuser $dbpass -e "show databases" | grep ^$dbname\$) >& /dev/null
+  if ($status) then
+    echo "database $dbname does not yet exist"
+    exit 0
+  endif
+
+  # mysql -h $dbhost -u $dbuser $dbpass $dbname -e "show tables"
+  mysql -h $dbhost -u $dbuser $dbpass $dbname -e "describe ippToPspsFake" >& /dev/null
   if ($status) then
     echo "database does not contain ippToPspsFake, not deleting"
@@ -155,17 +56,14 @@
   endif
 
-  set ntable = `echo "USE $dbname; show tables;" | mysql -h $dbhost -u $dbuser $dbpass | wc -l`
+  set ntable = `mysql -B -h $dbhost -u $dbuser $dbpass $dbname -e "show tables" | wc -l`
   echo ntable: $ntable
-  if ($ntable != 21) then
-    echo "expected 21 lines (20 tables), but got $ntable, not deleting"
+  if ($ntable != 25) then
+    echo "expected 25 lines (24 tables), but got $ntable, not deleting"
     exit 2
   endif
 
   echo "database is valid, deleting"
-  mysql -h $dbhost -u $dbuser $dbpass <<EOF
-   drop database $dbname;
-EOF
-
-   exit 0;
+  mysql -h $dbhost -u $dbuser $dbpass -e "drop database $dbname"
+  exit 0;
 endif
 
Index: /trunk/ippToPsps/test/mkgpc1data.dvo
===================================================================
--- /trunk/ippToPsps/test/mkgpc1data.dvo	(revision 38887)
+++ /trunk/ippToPsps/test/mkgpc1data.dvo	(revision 38888)
@@ -12,34 +12,23 @@
 # I'm setting the base filename without the .smf and add it in mkcatdir.*
 
+# some global value for ease of access:
+$SKYCELL = "skycell.1133.081"
+$TESS_ID = "RINGS.V3"
+
 # imagedata describes the full fake exposure set.  the fields are
 list imagedata
-# exp_id stk_id filebase         M_off date       time
-   1 	 1      $OUTDIR/test.01  0.000 2010/01/01 01:00:00
-   2 	 1      $OUTDIR/test.02 -0.025 2010/01/01 02:00:00
-   3 	 1      $OUTDIR/test.03  0.025 2010/01/01 03:00:00
-   4 	 1      $OUTDIR/test.04  0.010 2010/01/01 04:00:00
-   5 	 2      $OUTDIR/test.05  0.000 2010/01/01 05:00:00
-   6 	 2      $OUTDIR/test.06 -0.025 2010/01/01 06:00:00
-   7 	 2      $OUTDIR/test.07  0.025 2010/01/01 07:00:00
-   8 	 2      $OUTDIR/test.08  0.010 2010/01/01 08:00:00
-   9 	 3      $OUTDIR/test.09  0.000 2010/01/01 09:00:00
-  10 	 3      $OUTDIR/test.10 -0.025 2010/01/01 10:00:00
-  11 	 3      $OUTDIR/test.11  0.025 2010/01/01 11:00:00
-  12 	 3      $OUTDIR/test.12  0.010 2010/01/01 12:00:00
-end
-
-list warpdata
- 1 1 $OUTDIR/test.01  0.000 2010/01/01 01:00:00
- 2 1 $OUTDIR/test.02 -0.025 2010/01/01 02:00:00
- 3 1 $OUTDIR/test.03  0.025 2010/01/01 03:00:00
- 4 1 $OUTDIR/test.04  0.010 2010/01/01 04:00:00
- 5 2 $OUTDIR/test.05  0.000 2010/01/01 05:00:00
- 6 2 $OUTDIR/test.06 -0.025 2010/01/01 06:00:00
- 7 2 $OUTDIR/test.07  0.025 2010/01/01 07:00:00
- 8 2 $OUTDIR/test.08  0.010 2010/01/01 08:00:00
- 9 3 $OUTDIR/test.09  0.000 2010/01/01 09:00:00
-10 3 $OUTDIR/test.10 -0.025 2010/01/01 10:00:00
-11 3 $OUTDIR/test.11  0.025 2010/01/01 11:00:00
-12 3 $OUTDIR/test.12  0.010 2010/01/01 12:00:00
+# exp_id stk_id filebase         M_off date       time      warpfile
+   1 	 1      $OUTDIR/test.01  0.000 2010/01/01 01:00:00  $OUTDIR/warp.01 
+   2 	 1      $OUTDIR/test.02 -0.025 2010/01/01 02:00:00  $OUTDIR/warp.02 
+   3 	 1      $OUTDIR/test.03  0.025 2010/01/01 03:00:00  $OUTDIR/warp.03 
+   4 	 1      $OUTDIR/test.04  0.010 2010/01/01 04:00:00  $OUTDIR/warp.04 
+   5 	 2      $OUTDIR/test.05  0.000 2010/01/01 05:00:00  $OUTDIR/warp.05 
+   6 	 2      $OUTDIR/test.06 -0.025 2010/01/01 06:00:00  $OUTDIR/warp.06 
+   7 	 2      $OUTDIR/test.07  0.025 2010/01/01 07:00:00  $OUTDIR/warp.07 
+   8 	 2      $OUTDIR/test.08  0.010 2010/01/01 08:00:00  $OUTDIR/warp.08 
+   9 	 3      $OUTDIR/test.09  0.000 2010/01/01 09:00:00  $OUTDIR/warp.09 
+  10 	 3      $OUTDIR/test.10 -0.025 2010/01/01 10:00:00  $OUTDIR/warp.10 
+  11 	 3      $OUTDIR/test.11  0.025 2010/01/01 11:00:00  $OUTDIR/warp.11 
+  12 	 3      $OUTDIR/test.12  0.010 2010/01/01 12:00:00  $OUTDIR/warp.12 
 end
 
@@ -55,4 +44,5 @@
   mkcatdir.cam PS1_V5 PS1_V5
   mkcatdir.stk PS1_V5 PS1_V5
+  mkcatdir.wrp PS1_V5_Lensing PS1_V5
   insert.stack.set
 end
@@ -68,7 +58,5 @@
   $DEC = 20.0
 
-  break -auto off
   exec mkgpc1.sh delete $dbhost $dbname $dbuser $dbpass
-  break -auto on
   exec mkgpc1.sh create $dbhost $dbname $dbuser $dbpass
 
@@ -77,5 +65,5 @@
   # system-wide info
   dbinsert ippToPspsFake (my_id) values (2)
-  dbinsert skycell (radeg, decdeg, skycell_id) values ($RA, $DEC, "skycell.0000.000")
+  dbinsert skycell (radeg, decdeg, skycell_id) values ($RA, $DEC, $SKYCELL)
 end
 
@@ -163,6 +151,6 @@
 
     mkinput $offset $rawfile
-    echo mkcmf -photcode SIMTEST.r.Chip -no-noise -append $rawfile $cmffile -date $myDATE -time $myTIME -radec $RA $DEC -type $1 -imageID $ID -sourceID 0
-    exec mkcmf -photcode SIMTEST.r.Chip -no-noise -append $rawfile $cmffile -date $myDATE -time $myTIME -radec $RA $DEC -type $1 -imageID $ID -sourceID 0
+    echo mkcmf -photcode SIMTEST.r.Chip -no-noise -append $rawfile $cmffile -date $myDATE -time $myTIME -mjd $mjd -radec $RA $DEC -type $1 -imageID $ID -sourceID 0
+    exec mkcmf -photcode SIMTEST.r.Chip -no-noise -append $rawfile $cmffile -date $myDATE -time $myTIME -mjd $mjd -radec $RA $DEC -type $1 -imageID $ID -sourceID 0
 
     if ($i == 3)
@@ -238,11 +226,9 @@
 
     mkinput $offset $rawfile
-    echo mkcmf -stack -photcode SIMTEST.r.SkyChip $rawfile $cmffile -extroot SkyChip -date 2008/1/1 -time $i\:00:00 -radec $RA $DEC -type $1 -imageID $ID -sourceID 1
-    exec mkcmf -stack -photcode SIMTEST.r.SkyChip $rawfile $cmffile -extroot SkyChip -date 2008/1/1 -time $i\:00:00 -radec $RA $DEC -type $1 -imageID $ID -sourceID 1
+    echo mkcmf -stack -photcode SIMTEST.r.SkyChip $rawfile $cmffile -extroot SkyChip -date 2008/1/1 -time $i\:00:00 -mjd 54466.0 -radec $RA $DEC -type $1 -imageID $ID -sourceID 1 -tess_id $TESS_ID -skycell $SKYCELL
+    exec mkcmf -stack -photcode SIMTEST.r.SkyChip $rawfile $cmffile -extroot SkyChip -date 2008/1/1 -time $i\:00:00 -mjd 54466.0 -radec $RA $DEC -type $1 -imageID $ID -sourceID 1 -tess_id $TESS_ID -skycell $SKYCELL
 
     # add some required header keywords:
     exec echo "HIERARCH FPA.ZP =          25. / Magnitude zero point" > tmp.hdr
-    exec echo "TESS_ID = 'RINGS.V3'" >> tmp.hdr
-    exec echo "SKYCELL = 'skycell.1133.081'" >> tmp.hdr
     exec fits_insert $cmffile tmp.hdr
 
@@ -273,4 +259,69 @@
 end
 
+# create a populated catdir with a set of cmf files, save the filenames in list for use by insert.exp
+macro mkcatdir.wrp
+  if ($0 != 3)
+    echo "mkcatdir.wrp (cmftype) (dvotype)"
+    break
+  end
+
+  # tapPLAN 4
+
+  mkdir $OUTDIR
+
+  local i catdir RA DEC ID rawfile cmffile offset
+  $catdir = $OUTDIR/catdir.wrp
+  exec rm -rf $catdir
+
+  $RA = 10.0
+  $DEC = 20.0
+
+  $TIMEFORMAT = mjd
+  $TIMEREF = 2001/01/01,00:00:00
+
+  for i 0 $imagedata:n
+    list word -split $imagedata:$i
+    $ID = $word:0
+    $rawfile = $word:2\.txt; # use the cam-stage rawfile
+    $cmffile = $word:6\.smf
+    $offset = $word:3
+
+    sprintf myDATE "%s" $word:4
+    sprintf myTIME "%s" $word:5
+    echo ctimes -abs $myDATE,$myTIME -var mjd
+    ctimes -abs $myDATE,$myTIME -var mjd
+
+    ## this is not generating photcodes recognized as stack by relphot
+
+    mkinput $offset $rawfile
+    echo mkcmf -forcedwarp -photcode SIMTEST.r.ForcedWarp $rawfile $cmffile -extroot SkyChip -date $myDATE -time $myTIME -mjd $mjd -radec $RA $DEC -type $1 -imageID $ID -sourceID 1 -tess_id $TESS_ID -skycell $SKYCELL
+    exec mkcmf -forcedwarp -photcode SIMTEST.r.ForcedWarp $rawfile $cmffile -extroot SkyChip -date $myDATE -time $myTIME -mjd $mjd -radec $RA $DEC -type $1 -imageID $ID -sourceID 1 -tess_id $TESS_ID -skycell $SKYCELL
+
+    echo addstar -D SKY_DEPTH 4 -D CATDIR $catdir -D CAMERA simtest $cmffile -D CATFORMAT $2 -quick-airmass
+    exec addstar -D SKY_DEPTH 4 -D CATDIR $catdir -D CAMERA simtest $cmffile -D CATFORMAT $2 -quick-airmass
+  end
+
+  echo relphot -D CATDIR $catdir -region 8 12 18 22 -images g,r,i,z,y -update
+  exec relphot -D CATDIR $catdir -region 8 12 18 22 -images g,r,i,z,y -update
+
+  if ($PARALLEL)
+    $hostname = `hostname`
+    exec rm -f $catdir/HostTable.dat
+    output $catdir/HostTable.dat
+    echo "# ID Hostname Catdir"
+    echo " 1 $hostname $catdir.p1"
+    echo " 2 $hostname $catdir.p2"
+    echo " 3 $hostname $catdir.p3"
+    output stdout
+    exec dvodist -out $catdir
+  end
+
+  # for i 0 $offset:n
+  #   tapOK {abs(Mcal[$i] - Mcal[0] - $offset:$i) < 0.001} "Mcal $i"
+  # end
+
+  # tapDONE
+end
+
 macro insert.exp
   if ($0 != 3)
@@ -296,9 +347,32 @@
   dbinsert camProcessedExp (cam_id, path_base, fault) values ($myID, "$filename", 0)
   dbinsert fakeRun (fake_id, cam_id) values ($myID, $myID)
-  dbinsert warpRun (warp_id, fake_id) values ($myID, $myID)
-  dbinsert warpSkyCellMap (warp_id, skycell_id, class_id) values ($myID, "skycell.0000.000", "XY00")
+  dbinsert warpRun (warp_id, fake_id, tess_id) values ($myID, $myID, $TESS_ID)
+  dbinsert warpSkyCellMap (warp_id, skycell_id, class_id) values ($myID, $SKYCELL, "XY00")
+  dbinsert warpImfile (warp_id, skycell_id, warp_skyfile_id) values ($myID, $SKYCELL, $myID)
 
   dbinsert addRun (add_id, stage, state, stage_id, minidvodb_name) values ($myID, "cam", "full", $myID, "catdir.cam")
   dbinsert addProcessedExp (add_id, fault) values ($myID, 0)
+end
+
+macro insert.wrp
+  if ($0 != 4)
+    echo "USAGE: insert.wrp (warpID) (stackID) (filename)"
+    break
+  end
+
+  local wrpID stkID filename
+  $wrpID = $1
+  $stkID = $2
+  $filename = $3
+
+  # a single exposure
+  echo $myDATE
+  echo $myTIME 
+
+  dbinsert addRun (add_id, stage, state, stage_id, stage_extra1, minidvodb_name) values ($wrpID, "fullforce", "full", $stkID, $wrpID, "catdir.wrp")
+
+  # we have a single fullForceRun for each stack, so we can match fullForceRun ids to stackRun ids
+  dbinsert fullForceInput (ff_id, warp_id) values ($stkID, $wrpID)
+  dbinsert fullForceResult (ff_id, warp_id, software_ver, path_base) values ($stkID, $wrpID, "38000M", "$filename")
 end
 
@@ -310,10 +384,13 @@
   end
 
-  local i stkID expID expfile stkfile
+  local i stkID expID expfile wrpfile stkfile
   
   $stkID = $1
   $stkfile = $2
 
-  dbinsert stackRun (stack_id, skycell_id, filter, software_ver) values ($stkID, "skycell.0000.000", "g.00000", "37500")
+  dbinsert stackRun (stack_id, skycell_id, filter, software_ver) values ($stkID, $SKYCELL, "g.00000", "37500")
+
+  # we have a single fullForceRun for each stack, so we can match fullForceRun ids to stackRun ids
+  dbinsert fullForceRun (ff_id, skycal_id) values ($stkID, $stkID)
 
   $TIMEFORMAT = mjd
@@ -329,8 +406,13 @@
 
     $expID = $tmp:0
-    $expfile = $tmp:2
     sprintf myDATE "%s" $tmp:4
     sprintf myTIME "%s" $tmp:5
+
+    $expfile = $tmp:2
     insert.exp $expID $expfile
+
+    $wrpfile = $tmp:6
+    insert.wrp $expID $stkID $wrpfile
+
     dbinsert stackInputSkyfile (stack_id, warp_id) values ($stkID, $expID)
 
@@ -376,4 +458,11 @@
   dbinsert mergedvodbRun (minidvodb_id, merge_id, state, mergedvodb) values (2, 2, "full", "catdir.stk")
   dbinsert mergedvodbProcessed (merge_id, fault) values (2, 0)
+
+  # catdirs for the forced warps
+  dbinsert minidvodbRun (minidvodb_name, minidvodb_id, state) values ("catdir.wrp", 3, "merged")
+  dbinsert minidvodbProcessed (minidvodb_id, fault) values (3, 0)
+  
+  dbinsert mergedvodbRun (minidvodb_id, merge_id, state, mergedvodb) values (3, 3, "full", "catdir.wrp")
+  dbinsert mergedvodbProcessed (merge_id, fault) values (3, 0)
 end
 
