Index: trunk/Ohana/src/relphot/include/relphot.h
===================================================================
--- trunk/Ohana/src/relphot/include/relphot.h	(revision 37907)
+++ trunk/Ohana/src/relphot/include/relphot.h	(revision 38062)
@@ -22,4 +22,5 @@
   PARALLEL_IMAGES,
   APPLY_OFFSETS,
+  SYNTH_PHOT,
 } RelphotMode;
 
@@ -29,5 +30,26 @@
     MODE_UPDATE = 2,
     MODE_UPDATE_OBJECTS = 3,
+    MODE_SYNTH_PHOT = 4,
 } ModeType;
+
+// NOTE: this is only used in special cases where we limit photcode ranges
+typedef enum {
+  PS1_none, 
+  PS1_g = 1, 
+  PS1_r = 2, 
+  PS1_i = 3, 
+  PS1_z = 4, 
+  PS1_y = 5,
+  PS1_w = 6,
+} PS1filters;
+
+typedef struct {
+  Header PHU;
+  Header header[5]; // grizy (matches Nsec in photcodes)
+  Matrix matrix[5];
+  Coords coords;
+  int Nx;
+  int Ny;
+} SynthZeroPoints;
 
 typedef struct {
@@ -175,4 +197,5 @@
 char   SKY_TABLE[DVO_MAX_PATH];
 int    SKY_DEPTH;  /** XXX EAM : depth of catalog tables, fix usage */
+char  *SYNTH_ZERO_POINTS;
 
 // globals for parallel region operations
@@ -509,4 +532,13 @@
 int isGPC1stack (int photcode);
 int isGPC1warp  (int photcode);
-
-
+int isGPC1synth (int photcode);
+int whichGPC1filter (int photcode);
+
+
+SynthZeroPoints *SynthZeroPointsLoad (char *filename);
+
+int relphot_synthphot (int hostID, char *hostpath);
+int relphot_synthphot_parallel (SkyList *sky);
+
+int relphot_synthphot_catalog (Catalog *catalog, SynthZeroPoints *zpts);
+int relphot_synthphot_average (Average *average, SecFilt *secfilt, Measure *measure, SynthZeroPoints *zpts);
