Index: branches/czw_branch/20160809/psastro/src/psastroModelAdjust.c
===================================================================
--- branches/czw_branch/20160809/psastro/src/psastroModelAdjust.c	(revision 39755)
+++ branches/czw_branch/20160809/psastro/src/psastroModelAdjust.c	(revision 39777)
@@ -58,4 +58,8 @@
     } 
 
+    int rotatorParity = psMetadataLookupS32(&status, recipe, "PSASTRO.MODEL.ROT.PARITY");
+    if (!status) psAbort ("Can't find recipe option PSASTRO.MODEL.ROT.PARITY");
+    psMetadataAddS32 (output->fpa->concepts, PS_LIST_TAIL, "FPA.ROT.PARITY", PS_META_REPLACE, "rotator parity parameter", rotatorParity);
+    
     // get reference chip from name
     pmChip *refChip = pmConceptsChipFromName (output->fpa, refChipName);
@@ -86,5 +90,5 @@
 	psFree (PT);
     }
-
+    
     // rotate the chip-to-FPA transforms to have 0.0 posangle for refChip; 
     // compensate by rotating fpa to TPA transform
@@ -95,8 +99,8 @@
 
     // chipAngle should be refChipAngleNominal @ POSANGLE = 0.0
-    float posAngleOffset = chipAngle - refChipAngleNominal;
-
-    fprintf (stderr, "chipAngle is: %f, at PA = 0.0, it should be %f, rotating model by %f\n", 
-	     chipAngle*PS_DEG_RAD, refChipAngleNominal*PS_DEG_RAD, posAngleOffset*PS_DEG_RAD);
+    float posAngleOffset = rotatorParity * (chipAngle - refChipAngleNominal);
+
+    fprintf (stderr, "chipAngle is: %f, at PA = 0.0, it should be %f, rotating model by %f (parity %d)\n", 
+	     chipAngle*PS_DEG_RAD, refChipAngleNominal*PS_DEG_RAD, posAngleOffset*PS_DEG_RAD, rotatorParity);
 
     // psMetadataAddF32 (output->fpa->concepts, PS_LIST_TAIL, "FPA.POSANGLE", PS_META_REPLACE, "boresite parameter", posangle);
