Index: /branches/eam_branches/ipp-20110505/Ohana/src/libdvo/src/coordops.c
===================================================================
--- /branches/eam_branches/ipp-20110505/Ohana/src/libdvo/src/coordops.c	(revision 31625)
+++ /branches/eam_branches/ipp-20110505/Ohana/src/libdvo/src/coordops.c	(revision 31626)
@@ -440,6 +440,6 @@
 int GetCoords (Coords *coords, Header *header) {
   
-  int status, itmp, Polynomial, Polyterm;
-  double Lambda, rotate, scale;
+  int status, status1, status2, itmp, Polynomial, Polyterm;
+  double Lambda, rotate, rotate1, rotate2, scale;
   double equinox;
   char *ctype;
@@ -456,5 +456,5 @@
   mode = COORD_TYPE_NONE;
   {    
-    int haveCTYPE, haveCDELT, haveCROTA, haveCDij, havePCij, haveRAo;
+    int haveCTYPE, haveCDELT, haveCROTA, haveCROTA1, haveCROTA2, haveCDij, havePCij, haveRAo;
     float tmp;
     char stmp[80];
@@ -463,11 +463,14 @@
     // set: (CDELTi + CROTAi), (CDELTi + PCij), (CDij), 
 
-    haveCTYPE = gfits_scan (header, "CTYPE2",   "%s", 1, stmp);
-    haveCDELT = gfits_scan (header, "CDELT1",   "%f", 1, &tmp);
-    haveCROTA = gfits_scan (header, "CROTA1",   "%f", 1, &tmp);
-    haveCDij  = gfits_scan (header, "CD1_1",    "%f", 1, &tmp);
-    havePCij  = gfits_scan (header, "PC001001", "%f", 1, &tmp);
-    haveRAo   = gfits_scan (header, "RA_O",     "%f", 1, &tmp);
+    haveCTYPE  = gfits_scan (header, "CTYPE2",   "%s", 1, stmp);
+    haveCDELT  = gfits_scan (header, "CDELT1",   "%f", 1, &tmp);
+    haveCROTA1 = gfits_scan (header, "CROTA1",   "%f", 1, &tmp);
+    haveCROTA2 = gfits_scan (header, "CROTA2",   "%f", 1, &tmp);
+    haveCDij   = gfits_scan (header, "CD1_1",    "%f", 1, &tmp);
+    havePCij   = gfits_scan (header, "PC001001", "%f", 1, &tmp);
+    haveRAo    = gfits_scan (header, "RA_O",     "%f", 1, &tmp);
     
+    haveCROTA = haveCROTA1 || haveCROTA2;
+
     if (haveCTYPE && havePCij  && haveCDELT) { mode = COORD_TYPE_PC;   goto gotit; }
     if (haveCTYPE && haveCROTA && haveCDELT) { mode = COORD_TYPE_ROT;  goto gotit; }
@@ -540,5 +543,12 @@
       status &= gfits_scan (header, "CDELT2", "%f", 1, &coords[0].cdelt2);
 
-      status &= gfits_scan (header, "CROTA2", "%lf", 1, &rotate);
+      status1 = gfits_scan (header, "CROTA1", "%lf", 1, &rotate1);
+      status2 = gfits_scan (header, "CROTA2", "%lf", 1, &rotate2);
+      status &= status1 || status2;
+
+      rotate = rotate2;
+      if (status1 && !status2) rotate = rotate1;
+      if (!status1 && !status2) rotate = 0.0;
+
       Lambda = coords[0].cdelt2 / coords[0].cdelt1;
       coords[0].pc1_1 =  cos(rotate*RAD_DEG);
