Index: trunk/ippconfig/gpc2/camera.config
===================================================================
--- trunk/ippconfig/gpc2/camera.config	(revision 40875)
+++ trunk/ippconfig/gpc2/camera.config	(revision 40891)
@@ -155,5 +155,5 @@
 #       PSVIDEOPHOT     STR     gpc2/psvideophot.config
 #	REJECTIONS      STR     gpc2/rejections.config       # rejection recipe
-#	PPSTACK		STR	gpc2/ppStack.config
+	PPSTACK		STR	gpc2/ppStack.config
 END
 
Index: trunk/ippconfig/gpc2/ppStack.config
===================================================================
--- trunk/ippconfig/gpc2/ppStack.config	(revision 40891)
+++ trunk/ippconfig/gpc2/ppStack.config	(revision 40891)
@@ -0,0 +1,468 @@
+PSF.MODEL	STR	PS_MODEL_PS1_V1	# Model for PSF generation
+BACKGROUND.MODEL BOOL   F
+
+ZP.AIRMASS      METADATA                # Airmass terms by filter
+        g.00002       F32     0.0
+        r.00002       F32     0.0
+        i.00002       F32     0.0
+        z.00002       F32     0.0
+        y.00002       F32     0.0
+        w.00002       F32     0.0
+END
+ZP.TARGET       METADATA	        # Target zero point by filter
+        g.00002       F32     25.0
+        r.00002       F32     25.0
+        i.00002       F32     25.0
+        z.00002       F32     25.0
+        y.00002       F32     25.0
+        w.00002       F32     25.0
+END
+
+PS1_REFERENCE METADATA                  # Refstack for diffims, typically best of best IQ/images and N>20
+    OUTPUT.NOCOMP	    BOOL  TRUE
+    OUTPUT.LOGFLUX          BOOL  FALSE
+    OUTPUT.REPLICATE        BOOL  TRUE
+    PSF.INPUT.MAX           F32   6.0   # never really want >6 pixels in refstack
+    PSF.INPUT.CLIP.NSIGMA   F32   1.0   # sample typically on rising side of distribution (set even smaller?)
+    PSF.INPUT.THRESH        F32   0.0
+    PSF.INPUT.ASYMMETRY     F32   0.0
+END
+
+STACK_DEEP    METADATA                  # N>>20 inputs, typically MD fields
+    OUTPUT.NOCOMP	    BOOL  TRUE
+    OUTPUT.LOGFLUX  	    BOOL  FALSE
+    OUTPUT.REPLICATE        BOOL  TRUE
+    PSF.INPUT.MAX           F32   10.0
+    PSF.INPUT.CLIP.NSIGMA   F32   1.5
+    PSF.INPUT.THRESH        F32   5.0
+    PSF.INPUT.ASYMMETRY     F32   0.2
+END
+
+QUICKSTACK_DEEP    METADATA             # Unconvolved and deep stacks only
+    CONVOLVE		   BOOL  FALSE    
+    COMBINE.REJ     	   F32   3.5    # Rejection threshold in combination (sigma). tune?
+    COMBINE.DISCARD 	   F32   0.2    # Discard fraction for Olympic weighted mean. tune?
+    OUTPUT.NOCOMP   	   BOOL  TRUE
+    OUTPUT.LOGFLUX  	   BOOL  FALSE
+    PSF.INPUT.MAX          F32   10.0    # since not convolved limit, relax/tune?
+    PSF.INPUT.CLIP.NSIGMA  F32   1.5
+    PSF.INPUT.THRESH        F32   5.0
+    PSF.INPUT.ASYMMETRY     F32   0.2
+END
+
+STACK_NIGHTLY  METADATA                 # Typically MD 8 input nightly stacks
+    OUTPUT.NOCOMP   BOOL    FALSE
+    OUTPUT.LOGFLUX  BOOL    FALSE
+END
+
+STACK_THREEPI  METADATA
+    OUTPUT.NOCOMP   	    BOOL  FALSE
+    OUTPUT.LOGFLUX  	    BOOL  TRUE
+    PSF.INPUT.MAX           F32	  10.0	# input cut more restrictive now 12->10 pix, limit target PSF in convolved stacks 
+    PSF.INPUT.CLIP.NSIGMA   F32   1.5	# additional cut if majority of inputs much smaller than INPUT.MAX
+    PSF.INPUT.THRESH        F32   10.0
+    PSF.INPUT.ASYMMETRY     F32   0.2
+    PSF.TARGET.AS.MAX	    BOOL  TRUE
+   MATCH.REJ        F32    4.0
+   SAFE		 BOOL	F
+
+END
+
+STACK_THREEPI_ALT  METADATA 
+    OUTPUT.NOCOMP   	    BOOL  TRUE  ## MD test mod
+    OUTPUT.LOGFLUX  	    BOOL  FALSE ## MD test mod
+    STACK.TYPE		    STR	  DEEP_STACK ## MD test mod
+    PSF.INPUT.MAX           F32	  10.0	# input cut more restrictive now 12->10 pix, limit target PSF in convolved stacks 
+    PSF.INPUT.CLIP.NSIGMA   F32   1.5	# additional cut if majority of inputs much smaller than INPUT.MAX
+    PSF.INPUT.THRESH        F32   10.0
+    PSF.INPUT.ASYMMETRY     F32   0.2
+   MATCH.REJ        F32    4.0
+   SAFE		 BOOL	F
+
+END
+
+STACK_CNP  METADATA                   ## Based on STACK_THREEPI and STACK_MD_DEEP_1DG 
+    OUTPUT.NOCOMP   	    BOOL  FALSE
+    OUTPUT.LOGFLUX  	    BOOL  TRUE
+    STACK.TYPE              STR   DEEP_STACK
+    PSF.INPUT.CLIP.SIMPLE   BOOL  True
+    PSF.INPUT.MAX           F32   10.0    #  
+    PSF.INPUT.CLIP.NSIGMA   F32   100.0
+    PSF.INPUT.THRESH        F32   NAN
+    PSF.INPUT.ASYMMETRY     F32   NAN
+
+   MATCH.REJ        F32    4.0
+   SAFE		 BOOL	F
+
+    PSF.TARGET.AS.MAX.EPSILON F32 0.1
+
+END
+
+
+STACK_MD_REF       METADATA  ## revised config for MD refstacks vs PS1_REFERENCE above after ppStack mods 5/03/13
+    OUTPUT.NOCOMP           BOOL  TRUE
+    OUTPUT.LOGFLUX          BOOL  FALSE
+    OUTPUT.REPLICATE        BOOL  TRUE
+    STACK.TYPE              STR   DEEP_STACK  ## needed?
+    PSF.INPUT.CLIP.SIMPLE   BOOL  True
+    PSF.INPUT.MAX           F32   6.0   # never really want >6 pixels in refstack
+    PSF.INPUT.CLIP.NSIGMA   F32   1.0   # sample typically on rising side of distribution (set even smaller?)
+    PSF.INPUT.THRESH        F32   NAN
+    PSF.INPUT.ASYMMETRY     F32   NAN
+    MATCH.REJ               F32   4.0 # need ot tune?
+    SAFE                    BOOL  FALSE
+END
+
+STACK_MD_DEEP     METADATA   ## revised config for MD deepstack above after ppStack mods 5/03/13
+    OUTPUT.NOCOMP           BOOL  TRUE
+    OUTPUT.LOGFLUX          BOOL  FALSE
+    OUTPUT.REPLICATE        BOOL  TRUE
+    STACK.TYPE              STR   DEEP_STACK 
+    PSF.INPUT.CLIP.SIMPLE   BOOL  True
+    PSF.INPUT.MAX           F32   10.0
+    PSF.INPUT.CLIP.NSIGMA   F32   100.0 
+    PSF.INPUT.THRESH        F32   NAN
+    PSF.INPUT.ASYMMETRY     F32   NAN
+    MATCH.REJ               F32   4.0 # need ot tune?
+    SAFE                    BOOL  FALSE
+END
+
+STACK_ALLDEEP      METADATA     # no cuts, everything in changes after ppStack mods 5/03/13
+    OUTPUT.NOCOMP           BOOL  TRUE
+    OUTPUT.LOGFLUX          BOOL  FALSE
+    OUTPUT.REPLICATE        BOOL  TRUE
+    STACK.TYPE              STR   DEEP_STACK 
+    PSF.INPUT.CLIP.SIMPLE   BOOL  True
+    PSF.INPUT.MAX           F32   100.0
+    PSF.INPUT.CLIP.NSIGMA   F32   100.0
+    PSF.INPUT.THRESH        F32   NAN
+    PSF.INPUT.ASYMMETRY     F32   NAN
+    MATCH.REJ               F32   4.0 # need ot tune?
+    SAFE                    BOOL  FALSE
+END
+
+STACK_NIGHTLY_1DG  METADATA                 # Revised MD 8 input nightly stacks and using 1DG convolution
+    OUTPUT.NOCOMP             BOOL  FALSE
+    OUTPUT.LOGFLUX            BOOL  FALSE
+    PSF.INPUT.CLIP.SIMPLE     BOOL  True
+    PSF.INPUT.MAX             F32   12.0    # what FWHM does diffim become mostly useless, if any?
+    PSF.INPUT.CLIP.NSIGMA     F32   1000.0  # want to use up to MAX, but sig could possibly be small?
+    MATCH.REJ                 F32   4.0     # need to tune?
+    SAFE                      BOOL  FALSE
+    PSF.TARGET.AS.MAX         BOOL  TRUE
+    PSF.TARGET.AS.MAX.EPSILON F32   0.1
+END
+
+STACK_MD_IQ_1DG       METADATA  ## revised config for MD refstacks vs PS1_REFERENCE above after ppStack mods 5/03/13
+    OUTPUT.NOCOMP           BOOL  TRUE
+    OUTPUT.LOGFLUX          BOOL  FALSE
+    OUTPUT.REPLICATE        BOOL  TRUE
+    STACK.TYPE              STR   DEEP_STACK  ## needed?
+    PSF.INPUT.CLIP.SIMPLE   BOOL  True
+    PSF.INPUT.MAX           F32   10.0   # center/edge can vary 1-2 pix, prefer <6 pix but needs to be <10 pix for edges until code improved..
+    PSF.INPUT.CLIP.NSIGMA   F32   100.0  # any change to inputs can greatly impact edge filling factor..
+    PSF.INPUT.THRESH        F32   NAN
+    PSF.INPUT.ASYMMETRY     F32   NAN
+    MATCH.REJ               F32   4.0   # need ot tune?
+    SAFE                    BOOL  FALSE
+    PSF.TARGET.AS.MAX       BOOL  TRUE      # Set the target PSF FWHM as the maximum of accepted input FWHM values.
+    PSF.TARGET.AS.MAX.EPSILON F32 0.1       # Amount to set the target PSF FWHM larger than the maximum input. Target = eps + max(input)
+    THRESHOLD.MASK  F32     0.1             # Threshold for mask deconvolution (0..1)
+    COMBINE.ITER    F32     0.5             # Number of rejection iterations per input
+    COMBINE.REJ     F32     3.0             # Rejection threshold in combination (sigma)
+    COMBINE.SYS     F32     0.1             # Relative systematic error in combination
+    COMBINE.DISCARD F32     0.2             # Discard fraction for Olympic weighted mean
+    IMAGE.REJ       F32     0.1             # Rejected pixel fraction threshold for rejecting entire image
+    NMINPIX         S32     4               # Minimum input per pixel
+    MASK.VAL        STR     SUSPECT,MASK.VALUE,CONV.BAD,GHOST # Mask value of input bad pixels
+    MASK.BLANKBORDER S32    20              # Mask blank border in final stack output
+    BSCALEOFFSET    BOOL    TRUE            # HACK for removing bscale offset from input warps because of compression (0.5*BSCALE)
+END
+
+STACK_MD_REF_1DG       METADATA  ## revised config for MD refstacks vs PS1_REFERENCE above after ppStack mods 5/03/13
+    OUTPUT.NOCOMP           BOOL  TRUE
+    OUTPUT.LOGFLUX          BOOL  FALSE
+    OUTPUT.REPLICATE        BOOL  TRUE
+    STACK.TYPE              STR   DEEP_STACK  ## needed?
+    PSF.INPUT.CLIP.SIMPLE   BOOL  True
+    PSF.INPUT.MAX           F32   7.0   # center/edge can vary 1-2 pix, prefer <6 pix but needs to be <7 pix for edges
+    PSF.INPUT.CLIP.NSIGMA   F32   1.0   # sample typically on rising side of distribution (set even smaller?)
+    PSF.INPUT.THRESH        F32   NAN
+    PSF.INPUT.ASYMMETRY     F32   NAN
+    MATCH.REJ               F32   4.0   # need ot tune?
+    SAFE                    BOOL  FALSE
+    PSF.TARGET.AS.MAX       BOOL  TRUE      # Set the target PSF FWHM as the maximum of accepted input FWHM values.
+    PSF.TARGET.AS.MAX.EPSILON F32 0.1       # Amount to set the target PSF FWHM larger than the maximum input. Target = eps + max(input)
+    THRESHOLD.MASK  F32     0.1             # Threshold for mask deconvolution (0..1)
+    COMBINE.ITER    F32     0.5             # Number of rejection iterations per input
+    COMBINE.REJ     F32     3.0             # Rejection threshold in combination (sigma)
+    COMBINE.SYS     F32     0.1             # Relative systematic error in combination
+    COMBINE.DISCARD F32     0.2             # Discard fraction for Olympic weighted mean
+    IMAGE.REJ       F32     0.1             # Rejected pixel fraction threshold for rejecting entire image
+    NMINPIX         S32     4               # Minimum input per pixel
+    MASK.VAL        STR     SUSPECT,MASK.VALUE,CONV.BAD,GHOST # Mask value of input bad pixels
+    MASK.BLANKBORDER S32    20              # Mask blank border in final stack output
+    BSCALEOFFSET    BOOL    TRUE            # HACK for removing bscale offset from input warps because of compression (0.5*BSCALE)
+END
+
+STACK_MD_DEEP_1DG     METADATA   ## revised config for MD deepstack above after ppStack mods 5/03/13
+    OUTPUT.NOCOMP           BOOL  TRUE
+    OUTPUT.LOGFLUX          BOOL  FALSE
+    OUTPUT.REPLICATE        BOOL  TRUE
+    STACK.TYPE              STR   DEEP_STACK
+    PSF.INPUT.CLIP.SIMPLE   BOOL  True
+    PSF.INPUT.MAX           F32   10.0    #  
+    PSF.INPUT.CLIP.NSIGMA   F32   100.0
+    PSF.INPUT.THRESH        F32   NAN
+    PSF.INPUT.ASYMMETRY     F32   NAN
+    MATCH.REJ               F32   4.0     # need ot tune?
+    SAFE                    BOOL  FALSE
+    PSF.TARGET.AS.MAX  BOOL  TRUE
+    PSF.TARGET.AS.MAX.EPSILON F32 0.1
+    THRESHOLD.MASK  F32     0.1             # Threshold for mask deconvolution (0..1)
+    COMBINE.ITER    F32     0.5             # Number of rejection iterations per input
+    COMBINE.REJ     F32     3.0             # Rejection threshold in combination (sigma)
+    COMBINE.SYS     F32     0.1             # Relative systematic error in combination
+    COMBINE.DISCARD F32     0.2             # Discard fraction for Olympic weighted mean
+    IMAGE.REJ       F32     0.1             # Rejected pixel fraction threshold for rejecting entire image
+    NMINPIX         S32     30              # Minimum input per pixel 
+    MASK.VAL        STR     SUSPECT,MASK.VALUE,CONV.BAD,GHOST # Mask value of input bad pixels
+    MASK.BLANKBORDER S32    20              # Mask blank border in final stack output
+    BSCALEOFFSET    BOOL    TRUE            # HACK for removing bscale offset from input warps because of compression (0.5*BSCALE)
+END
+
+STACK_ALLDEEP_1DG      METADATA     # no real cuts, for changes after ppStack mods 5/03/13
+    OUTPUT.NOCOMP           BOOL  TRUE
+    OUTPUT.LOGFLUX          BOOL  FALSE
+    OUTPUT.REPLICATE        BOOL  TRUE
+    STACK.TYPE              STR   DEEP_STACK
+    PSF.INPUT.CLIP.SIMPLE   BOOL  True
+    PSF.INPUT.MAX           F32   14.0    # greater than 14 is more often junk
+    PSF.INPUT.CLIP.NSIGMA   F32   100.0
+    PSF.INPUT.THRESH        F32   NAN
+    PSF.INPUT.ASYMMETRY     F32   NAN
+    MATCH.REJ               F32   4.0     # need ot tune?
+    SAFE                    BOOL  FALSE
+    PSF.TARGET.AS.MAX  BOOL  TRUE
+    PSF.TARGET.AS.MAX.EPSILON F32 0.1
+    THRESHOLD.MASK  F32     0.5             # Threshold for mask deconvolution (0..1)
+    COMBINE.ITER    F32     0.5             # Number of rejection iterations per input
+    COMBINE.REJ     F32     3.5             # Rejection threshold in combination (sigma)
+    COMBINE.SYS     F32     0.1             # Relative systematic error in combination
+    COMBINE.DISCARD F32     0.2             # Discard fraction for Olympic weighted mean
+    IMAGE.REJ       F32     0.1             # Rejected pixel fraction threshold for rejecting entire image
+END
+
+STACK_MDTHREEPI_DEEP_1DG     METADATA   ## revised config for MD+3PI 
+    OUTPUT.NOCOMP           BOOL  TRUE
+    OUTPUT.LOGFLUX          BOOL  FALSE
+    OUTPUT.REPLICATE        BOOL  TRUE
+    STACK.TYPE              STR   DEEP_STACK
+    PSF.INPUT.CLIP.SIMPLE   BOOL  True
+    PSF.INPUT.MAX           F32   10.0    #
+    PSF.INPUT.CLIP.NSIGMA   F32   100.0
+    PSF.INPUT.THRESH        F32   NAN
+    PSF.INPUT.ASYMMETRY     F32   NAN
+    MATCH.REJ               F32   4.0     # need ot tune?
+    SAFE                    BOOL  FALSE
+    PSF.TARGET.AS.MAX  BOOL  TRUE
+    PSF.TARGET.AS.MAX.EPSILON F32 0.1
+    THRESHOLD.MASK  F32     0.01             # Threshold for mask deconvolution (0..1)
+    COMBINE.ITER    F32     0.5             # Number of rejection iterations per input
+    COMBINE.REJ     F32     2.5             # Rejection threshold in combination (sigma)
+    COMBINE.SYS     F32     0.1             # Relative systematic error in combination
+    COMBINE.DISCARD F32     0.2             # Discard fraction for Olympic weighted mean
+    IMAGE.REJ       F32     0.1             # Rejected pixel fraction threshold for rejecting entire image
+END
+
+
+
+
+STACK_CNP_PV3_IQ_1DG  METADATA       ## revised -- based on STACK_THREEPI/STACK_MD_DEEP_1DG
+    OUTPUT.NOCOMP           BOOL  TRUE 
+    OUTPUT.LOGFLUX          BOOL  FALSE
+    STACK.TYPE              STR   DEEP_STACK
+    PSF.INPUT.CLIP.SIMPLE   BOOL  True
+    PSF.INPUT.MAX           F32   10.0    #  
+    PSF.INPUT.CLIP.NSIGMA   F32   100.0
+    PSF.INPUT.THRESH        F32   NAN
+    PSF.INPUT.ASYMMETRY     F32   NAN
+    MATCH.REJ        F32    4.0
+    SAFE		 BOOL	F
+    PSF.TARGET.AS.MAX        BOOL  TRUE   # Set the target PSF FWHM as the maximum of accepted input FWHM values.
+    PSF.TARGET.AS.MAX.EPSILON F32 0.1     # set the target PSF FWHM larger than the maximum input. Target = eps + max(input)
+    THRESHOLD.MASK  F32     0.1          # Threshold for mask deconvolution (0..1)
+    COMBINE.ITER    F32     0.5          # Number of rejection iterations per input
+    COMBINE.REJ     F32     3.0          # Rejection threshold in combination (sigma)
+    COMBINE.SYS     F32     0.1          # Relative systematic error in combination
+    COMBINE.DISCARD F32     0.2          # Discard fraction for Olympic weighted mean
+    IMAGE.REJ       F32     0.1          # Rejected pixel fraction threshold for rejecting entire image
+    NMINPIX         S32     3            # Minimum input per pixel     
+    MASK.VAL        STR     SUSPECT,MASK.VALUE,CONV.BAD,GHOST # Mask value of input bad pixels 
+    MASK.BLANKBORDER S32    20              # Mask blank border in final stack output
+    BSCALEOFFSET    BOOL    FALSE           # MUST be FALSE for PV3
+END
+
+STACK_CNP_PV3_REF_1DG  METADATA  ## revised CNP PV3 REF stack --
+    OUTPUT.NOCOMP            BOOL  TRUE   # pointed field -- no compression, no logflux 
+    OUTPUT.LOGFLUX           BOOL  FALSE  # 
+    OUTPUT.REPLICATE         BOOL  TRUE
+    STACK.TYPE               STR   DEEP_STACK  
+    PSF.INPUT.CLIP.SIMPLE    BOOL  True
+    PSF.INPUT.MAX            F32   10.0   # CNP large FWHM, center/edge vary 1-2 pix? 
+    PSF.INPUT.CLIP.NSIGMA    F32   0.0    # sample typically on rising side of distribution 
+    PSF.INPUT.THRESH         F32   NAN
+    PSF.INPUT.ASYMMETRY      F32   NAN
+    MATCH.REJ                F32   4.0    # need ot tune?
+    SAFE                     BOOL  FALSE
+    PSF.TARGET.AS.MAX        BOOL  TRUE   # Set the target PSF FWHM as the maximum of accepted input FWHM values.
+    PSF.TARGET.AS.MAX.EPSILON F32 0.1     # set the target PSF FWHM larger than the maximum input. Target = eps + max(input)
+    THRESHOLD.MASK  F32     0.1          # Threshold for mask deconvolution (0..1)
+    COMBINE.ITER    F32     0.5          # Number of rejection iterations per input
+    COMBINE.REJ     F32     3.0          # Rejection threshold in combination (sigma)
+    COMBINE.SYS     F32     0.1          # Relative systematic error in combination
+    COMBINE.DISCARD F32     0.2          # Discard fraction for Olympic weighted mean
+    IMAGE.REJ       F32     0.1          # Rejected pixel fraction threshold for rejecting entire image
+    NMINPIX         S32     3            # Minimum input per pixel
+    MASK.VAL        STR     SUSPECT,MASK.VALUE,CONV.BAD,GHOST # Mask value of input bad pixels 
+    MASK.BLANKBORDER S32    20           # Mask blank border in final stack output
+    BSCALEOFFSET    BOOL    FALSE        # MUST be FALSE for PV3
+END
+
+STACK_CNP_PV3_DEEP_1DG  METADATA   ## -- 
+    OUTPUT.NOCOMP           BOOL  TRUE
+    OUTPUT.LOGFLUX          BOOL  FALSE
+    OUTPUT.REPLICATE        BOOL  TRUE
+    STACK.TYPE              STR   DEEP_STACK
+    PSF.INPUT.CLIP.SIMPLE   BOOL  True
+    PSF.INPUT.MAX           F32   16.0    # large FWHM images up to 20 --  
+    PSF.INPUT.CLIP.NSIGMA   F32   100.0   # do not want to clip really
+    PSF.INPUT.THRESH        F32   NAN
+    PSF.INPUT.ASYMMETRY     F32   NAN
+    MATCH.REJ               F32   4.0     # need ot tune?
+    SAFE                    BOOL  FALSE
+    PSF.TARGET.AS.MAX  BOOL  TRUE
+    PSF.TARGET.AS.MAX.EPSILON F32 0.1
+    THRESHOLD.MASK  F32     0.1             # Threshold for mask deconvolution (0..1)
+    COMBINE.ITER    F32     0.5             # Number of rejection iterations per input
+    COMBINE.REJ     F32     3.0             # Rejection threshold in combination (sigma)
+    COMBINE.SYS     F32     0.1             # Relative systematic error in combination
+    COMBINE.DISCARD F32     0.2             # Discard fraction for Olympic weighted mean
+    IMAGE.REJ       F32     0.1             # Rejected pixel fraction threshold for rejecting entire image
+    NMINPIX         S32     3               # Minimum input per pixel -- more and get crazy structures.. 
+    MASK.VAL        STR     SUSPECT,MASK.VALUE,CONV.BAD,GHOST # Mask value of input bad pixels -- many, dont trust SUSPECT
+    MASK.BLANKBORDER S32    20              # Mask blank border in final stack output
+    BSCALEOFFSET    BOOL    FALSE           # MUST be FALSE for PV3 (PV2 bias hack fix)
+END
+
+
+STACK_MD_PV3_NIGHT_1DG  METADATA   ## Revised MD 8 input NIGHT stacks for PV3 -- no time to test, so similar to original but 1DG 
+    OUTPUT.NOCOMP             BOOL  FALSE
+    OUTPUT.LOGFLUX            BOOL  FALSE
+    PSF.INPUT.CLIP.SIMPLE     BOOL  True
+    PSF.INPUT.MAX             F32   12.0    # what FWHM does diffim become mostly useless, if any?
+    PSF.INPUT.CLIP.NSIGMA     F32   1000.0  # want to use up to MAX, but sig could possibly be small?
+    PSF.INPUT.THRESH        F32   NAN
+    PSF.INPUT.ASYMMETRY     F32   NAN
+    MATCH.REJ               F32   4.0       # need ot tune?
+    SAFE                    BOOL  TRUE      # Play safe when combining small number of values? 
+    PSF.TARGET.AS.MAX       BOOL  TRUE      # Set the target PSF FWHM as the maximum of accepted input FWHM values.
+    PSF.TARGET.AS.MAX.EPSILON F32 0.1       # Amount to set the target PSF FWHM larger than the maximum input. Target = eps + max(input)
+    ## -- extra masking not tested and likely not want for small Nin stack
+    #THRESHOLD.MASK  F32     0.1             # Threshold for mask deconvolution (0..1)
+    #COMBINE.ITER    F32     0.5             # Number of rejection iterations per input
+    #COMBINE.REJ     F32     3.0             # Rejection threshold in combination (sigma)
+    #COMBINE.SYS     F32     0.1             # Relative systematic error in combination
+    #COMBINE.DISCARD F32     0.2             # Discard fraction for Olympic weighted mean
+    #IMAGE.REJ       F32     0.1             # Rejected pixel fraction threshold for rejecting entire image
+    #MASK.VAL        STR     SUSPECT,MASK.VALUE,CONV.BAD,GHOST # Mask value of input bad pixels 
+    ## -- 
+    NMINPIX         S32     1               # Minimum input per pixel
+    MASK.BLANKBORDER S32    20              # Mask blank border in final stack output
+    BSCALEOFFSET    BOOL    FALSE           # MUST be FALSE for PV3
+END
+
+STACK_MD_PV3_IQ_1DG       METADATA  ## revised config for MD PV3 IQ stacks -- not complete
+    OUTPUT.NOCOMP           BOOL  TRUE
+    OUTPUT.LOGFLUX          BOOL  FALSE
+    OUTPUT.REPLICATE        BOOL  TRUE
+    STACK.TYPE              STR   DEEP_STACK  ## needed?
+    PSF.INPUT.CLIP.SIMPLE   BOOL  True
+    PSF.INPUT.MAX           F32   10.0   # center/edge can vary 1-2 pix, prefer <6 pix but needs to be <10 pix for edges until code improved..
+    PSF.INPUT.CLIP.NSIGMA   F32   100.0  # any change to inputs can greatly impact edge filling factor..
+    PSF.INPUT.THRESH        F32   NAN
+    PSF.INPUT.ASYMMETRY     F32   NAN
+    MATCH.REJ               F32   4.0   # need ot tune?
+    SAFE                    BOOL  FALSE
+    PSF.TARGET.AS.MAX       BOOL  TRUE      # Set the target PSF FWHM as the maximum of accepted input FWHM values.
+    PSF.TARGET.AS.MAX.EPSILON F32 0.1       # Amount to set the target PSF FWHM larger than the maximum input. Target = eps + max(input)
+    THRESHOLD.MASK  F32     0.1             # Threshold for mask deconvolution (0..1)
+    COMBINE.ITER    F32     0.5             # Number of rejection iterations per input
+    COMBINE.REJ     F32     3.0             # Rejection threshold in combination (sigma)
+    COMBINE.SYS     F32     0.1             # Relative systematic error in combination
+    COMBINE.DISCARD F32     0.2             # Discard fraction for Olympic weighted mean
+    IMAGE.REJ       F32     0.1             # Rejected pixel fraction threshold for rejecting entire image
+    NMINPIX         S32     4               # Minimum input per pixel
+    MASK.VAL        STR     SUSPECT,MASK.VALUE,CONV.BAD,GHOST # Mask value of input bad pixels
+    MASK.BLANKBORDER S32    20              # Mask blank border in final stack output
+    BSCALEOFFSET    BOOL    FALSE           # MUST be FALSE for PV3
+END
+
+STACK_MD_PV3_REF_1DG       METADATA  ## revised config for MD PV3 refstacks -- not complete
+    OUTPUT.NOCOMP           BOOL  TRUE
+    OUTPUT.LOGFLUX          BOOL  FALSE
+    OUTPUT.REPLICATE        BOOL  TRUE
+    STACK.TYPE              STR   DEEP_STACK  ## needed?
+    PSF.INPUT.CLIP.SIMPLE   BOOL  True
+    PSF.INPUT.MAX           F32   7.0   # center/edge can vary 1-2 pix, prefer <6 pix but needs to be <7 pix for edges
+    PSF.INPUT.CLIP.NSIGMA   F32   1.0   # sample typically on rising side of distribution (set even smaller?)
+    PSF.INPUT.THRESH        F32   NAN
+    PSF.INPUT.ASYMMETRY     F32   NAN
+    MATCH.REJ               F32   4.0   # need ot tune?
+    SAFE                    BOOL  FALSE
+    PSF.TARGET.AS.MAX       BOOL  TRUE      # Set the target PSF FWHM as the maximum of accepted input FWHM values.
+    PSF.TARGET.AS.MAX.EPSILON F32 0.1       # Amount to set the target PSF FWHM larger than the maximum input. Target = eps + max(input)
+    THRESHOLD.MASK  F32     0.1             # Threshold for mask deconvolution (0..1)
+    COMBINE.ITER    F32     0.5             # Number of rejection iterations per input
+    COMBINE.REJ     F32     3.0             # Rejection threshold in combination (sigma)
+    COMBINE.SYS     F32     0.1             # Relative systematic error in combination
+    COMBINE.DISCARD F32     0.2             # Discard fraction for Olympic weighted mean
+    IMAGE.REJ       F32     0.1             # Rejected pixel fraction threshold for rejecting entire image
+    NMINPIX         S32     4               # Minimum input per pixel
+    MASK.VAL        STR     SUSPECT,MASK.VALUE,CONV.BAD,GHOST # Mask value of input bad pixels
+    MASK.BLANKBORDER S32    20              # Mask blank border in final stack output
+    BSCALEOFFSET    BOOL    FALSE           # MUST be FALSE for PV3
+END
+
+STACK_MD_PV3_DEEP_1DG     METADATA   ## revised config for MD PV3 deepstack -- not complete
+    OUTPUT.NOCOMP           BOOL  TRUE
+    OUTPUT.LOGFLUX          BOOL  FALSE
+    OUTPUT.REPLICATE        BOOL  TRUE
+    STACK.TYPE              STR   DEEP_STACK
+    PSF.INPUT.CLIP.SIMPLE   BOOL  True
+    PSF.INPUT.MAX           F32   10.0    #  
+    PSF.INPUT.CLIP.NSIGMA   F32   100.0
+    PSF.INPUT.THRESH        F32   NAN
+    PSF.INPUT.ASYMMETRY     F32   NAN
+    MATCH.REJ               F32   4.0     # need ot tune?
+    SAFE                    BOOL  FALSE
+    PSF.TARGET.AS.MAX  BOOL  TRUE
+    PSF.TARGET.AS.MAX.EPSILON F32 0.1
+    THRESHOLD.MASK  F32     0.1             # Threshold for mask deconvolution (0..1)
+    COMBINE.ITER    F32     0.5             # Number of rejection iterations per input
+    COMBINE.REJ     F32     3.0             # Rejection threshold in combination (sigma)
+    COMBINE.SYS     F32     0.1             # Relative systematic error in combination
+    COMBINE.DISCARD F32     0.2             # Discard fraction for Olympic weighted mean
+    IMAGE.REJ       F32     0.1             # Rejected pixel fraction threshold for rejecting entire image
+    NMINPIX         S32     30              # Minimum input per pixel 
+    MASK.VAL        STR     SUSPECT,MASK.VALUE,CONV.BAD,GHOST # Mask value of input bad pixels
+    MASK.BLANKBORDER S32    20              # Mask blank border in final stack output
+    BSCALEOFFSET    BOOL    FALSE           # MUST be FALSE for PV3
+END
+
+
+
+# Recipe overrides for STACK
+STACKPHOT METADATA
+  PSF.MODEL	STR	PS_MODEL_QGAUSS	# Model for PSF match
+END
