Index: /trunk/Ohana/configure
===================================================================
--- /trunk/Ohana/configure	(revision 7079)
+++ /trunk/Ohana/configure	(revision 7080)
@@ -35,5 +35,5 @@
    set vararch = 1
    breaksw;
-  case --enable-optimze
+  case --enable-optimize
    set optflags = "-O2"
    breaksw;
@@ -63,7 +63,9 @@
    breaksw;
   case --help:
+   goto usage
   case -*: 
+   echo ""
+   echo "Unknown option: $1"
    goto usage
-   breaksw;
   default:
    set args=($args $1);
Index: /trunk/Ohana/src/addstar/doc/ChangeLog.txt
===================================================================
--- /trunk/Ohana/src/addstar/doc/ChangeLog.txt	(revision 7079)
+++ /trunk/Ohana/src/addstar/doc/ChangeLog.txt	(revision 7080)
@@ -1,2 +1,7 @@
+
+- addstar 1.7
+  * converted to gfits APIs (forces libfits 1.6)
+  * added the -resort option
+  * added timeout for large operations
 
 - addstar 1.6
Index: /trunk/Ohana/src/addstar/src/RegionOps.c
===================================================================
--- /trunk/Ohana/src/addstar/src/RegionOps.c	(revision 7079)
+++ /trunk/Ohana/src/addstar/src/RegionOps.c	(revision 7080)
@@ -39,10 +39,10 @@
   /* init & load in table data */
   table.header = &theader;
-  if (!fits_fread_header (f, &header))           Shutdown ("can't read primary header for GSC Region table"); 
-  if (!fits_fread_matrix (f, &matrix, &header))  Shutdown ("can't read primary matrix for GSC Region table");
-  if (!fits_fread_ftable (f, &table, "REGIONS")) Shutdown ("can't read GSC Region table");
-
-  fits_scan (table.header, "NAXIS1", "%d", 1, &Nx);
-  fits_scan (table.header, "NAXIS2", "%d", 1, &Ny);
+  if (!gfits_fread_header (f, &header))           Shutdown ("can't read primary header for GSC Region table"); 
+  if (!gfits_fread_matrix (f, &matrix, &header))  Shutdown ("can't read primary matrix for GSC Region table");
+  if (!gfits_fread_ftable (f, &table, "REGIONS")) Shutdown ("can't read GSC Region table");
+
+  gfits_scan (table.header, "NAXIS1", "%d", 1, &Nx);
+  gfits_scan (table.header, "NAXIS2", "%d", 1, &Ny);
 
   Nregions = 0;
Index: /trunk/Ohana/src/addstar/src/Shutdown.c
===================================================================
--- /trunk/Ohana/src/addstar/src/Shutdown.c	(revision 7079)
+++ /trunk/Ohana/src/addstar/src/Shutdown.c	(revision 7080)
@@ -22,5 +22,5 @@
 
   SetProtect (TRUE);
-  fits_db_close (db);
+  gfits_db_close (db);
   fprintf (stderr, "ERROR: addstar halted\n");
   exit (1);
Index: /trunk/Ohana/src/addstar/src/args.c
===================================================================
--- /trunk/Ohana/src/addstar/src/args.c	(revision 7079)
+++ /trunk/Ohana/src/addstar/src/args.c	(revision 7080)
@@ -106,5 +106,5 @@
 
     remove_argument (N, &argc, argv);
-    if (!fits_read_header (argv[N], &header)) {
+    if (!gfits_read_header (argv[N], &header)) {
       fprintf (stderr, "ERROR: can't read header for mosaic %s\n", argv[N]);
       exit (1);
@@ -119,5 +119,5 @@
     }
     remove_argument (N, &argc, argv);
-    fits_free_header (&header);
+    gfits_free_header (&header);
     options.mosaic = TRUE;
   }
Index: /trunk/Ohana/src/addstar/src/args_client.c
===================================================================
--- /trunk/Ohana/src/addstar/src/args_client.c	(revision 7079)
+++ /trunk/Ohana/src/addstar/src/args_client.c	(revision 7080)
@@ -69,5 +69,5 @@
 
     remove_argument (N, &argc, argv);
-    if (!fits_read_header (argv[N], &header)) {
+    if (!gfits_read_header (argv[N], &header)) {
       fprintf (stderr, "ERROR: can't read header for mosaic %s\n", argv[N]);
       exit (1);
@@ -82,5 +82,5 @@
     }
     remove_argument (N, &argc, argv);
-    fits_free_header (&header);
+    gfits_free_header (&header);
     options.mosaic = TRUE;
   }
Index: /trunk/Ohana/src/addstar/src/gcatalog.c
===================================================================
--- /trunk/Ohana/src/addstar/src/gcatalog.c	(revision 7079)
+++ /trunk/Ohana/src/addstar/src/gcatalog.c	(revision 7080)
@@ -14,5 +14,5 @@
 
   /* should this be moved into save_catalog?? */
-  status = fits_scan (&catalog[0].header, "SORTED", "%t", 1, &catalog[0].sorted);
+  status = gfits_scan (&catalog[0].header, "SORTED", "%t", 1, &catalog[0].sorted);
   if (!status) catalog[0].sorted = TRUE;
   /* XXX EAM - is this a good choice?  should the default be 'FALSE'? */
Index: /trunk/Ohana/src/addstar/src/gimages.c
===================================================================
--- /trunk/Ohana/src/addstar/src/gimages.c	(revision 7079)
+++ /trunk/Ohana/src/addstar/src/gimages.c	(revision 7080)
@@ -26,7 +26,7 @@
     Shutdown ("can't read image catalog %s", db[0].filename);
   }
-  timage = fits_table_get_Image (&db[0].ftable, &Ntimage, &db[0].swapped);
+  timage = gfits_table_get_Image (&db[0].ftable, &Ntimage, &db[0].swapped);
 
-  fits_scan (&db[0].header, "ZERO_PT", "%lf", 1, &zeropt);
+  gfits_scan (&db[0].header, "ZERO_PT", "%lf", 1, &zeropt);
   if (fabs (ZeroPt - zeropt) > 1e-4) {
     Shutdown ("zero point in image (%f:%s) inconsistent with zero point in catalog (%f)",
Index: /trunk/Ohana/src/addstar/src/gstars.c
===================================================================
--- /trunk/Ohana/src/addstar/src/gstars.c	(revision 7079)
+++ /trunk/Ohana/src/addstar/src/gstars.c	(revision 7080)
@@ -11,5 +11,5 @@
   Header header;
 
-  if (!fits_read_header (file, &header)) {
+  if (!gfits_read_header (file, &header)) {
     fprintf (stderr, "ERROR: can't read header for %s\n", file);
     exit (1);
@@ -27,5 +27,5 @@
   }
   itmp = 0;
-  fits_scan (&header, "NASTRO",   "%d", 1, &itmp);
+  gfits_scan (&header, "NASTRO",   "%d", 1, &itmp);
   if ((itmp == 0) && !ACCEPT_ASTROM) {
     fprintf (stderr, "ERROR: bad astrometric solution in header\n");
@@ -45,5 +45,5 @@
     
   /* get ST (used for airmass calculation) */
-  fits_scan (&header, STKeyword, "%s", 1, line);
+  gfits_scan (&header, STKeyword, "%s", 1, line);
   /* remove ':' characters */
   for (c = strchr (line, ':'); c != (char *) NULL; c = strchr (line, ':')) { *c = ' '; }
@@ -53,12 +53,12 @@
 
   /* CERROR in data file is in arcsec */
-  if (!fits_scan (&header, "CERROR",   "%lf", 1, &tmp)) tmp = 1.0;
+  if (!gfits_scan (&header, "CERROR",   "%lf", 1, &tmp)) tmp = 1.0;
   image[0].cerror = tmp * 50.0;
-  fits_scan (&header, "NAXIS1",   "%hd", 1, &image[0].NX); 
-  fits_scan (&header, "NAXIS2",   "%hd", 1, &image[0].NY);
+  gfits_scan (&header, "NAXIS1",   "%hd", 1, &image[0].NX); 
+  gfits_scan (&header, "NAXIS2",   "%hd", 1, &image[0].NY);
  
   /* get photcode from header */
   if (photcode == 0) {
-    if (!fits_scan (&header, "PHOTCODE", "%s", 1, photname)) {
+    if (!gfits_scan (&header, "PHOTCODE", "%s", 1, photname)) {
       fprintf (stderr, "ERROR: photcode not supplied in header\n");
       exit (1);
@@ -78,45 +78,45 @@
   image[0].NX -= XOVERSCAN;
   image[0].NY -= YOVERSCAN;
-  fits_scan (&header, ExptimeKeyword,  "%lf", 1, &tmp);
+  gfits_scan (&header, ExptimeKeyword,  "%lf", 1, &tmp);
   image[0].exptime = tmp;
   
   /*** why are we no longer using APMIFIT?? ***/
   tmp = 0;
-  /* fits_scan (&header, "APMIFIT",  "%lf", 1, &tmp); */
+  /* gfits_scan (&header, "APMIFIT",  "%lf", 1, &tmp); */
   image[0].apmifit_PS = tmp;
 
   tmp = 0;
-  /* fits_scan (&header, "dAPMIFIT", "%lf", 1, &tmp); */
+  /* gfits_scan (&header, "dAPMIFIT", "%lf", 1, &tmp); */
   image[0].dapmifit_PS = tmp;
 
   tmp = 0;
-  fits_scan (&header, "FLIMIT",   "%lf", 1, &tmp);
+  gfits_scan (&header, "FLIMIT",   "%lf", 1, &tmp);
   image[0].detection_limit = tmp * 10.0;
 
   tmp = 0;
-  fits_scan (&header, "FSATUR",   "%lf", 1, &tmp);
+  gfits_scan (&header, "FSATUR",   "%lf", 1, &tmp);
   image[0].saturation_limit = tmp * 10.0;
 
   tmp = 0;
-  fits_scan (&header, "FWHM_X",   "%lf", 1, &tmp);
+  gfits_scan (&header, "FWHM_X",   "%lf", 1, &tmp);
   image[0].fwhm_x = tmp * 25.0 * image[0].coords.cdelt1 * 3600.0;
 
   tmp = 0;
-  fits_scan (&header, "FWHM_Y",   "%lf", 1, &tmp);
+  gfits_scan (&header, "FWHM_Y",   "%lf", 1, &tmp);
   image[0].fwhm_y = tmp * 25.0 * image[0].coords.cdelt1 * 3600.0;
 
-  if (!fits_scan (&header, "TZERO",   "%d",  1, &image[0].tzero)) {
+  if (!gfits_scan (&header, "TZERO",   "%d",  1, &image[0].tzero)) {
     image[0].tzero = parse_time (&header);
   }
 
   tmp = 0;
-  fits_scan (&header, "TRATE",   "%lf", 1, &tmp);
+  gfits_scan (&header, "TRATE",   "%lf", 1, &tmp);
   image[0].trate = 10000 * tmp;
 
   tmp = 0;
-  fits_scan (&header, AirmassKeyword, "%lf", 1, &tmp);
+  gfits_scan (&header, AirmassKeyword, "%lf", 1, &tmp);
   image[0].secz_PS = MIN (NO_MAG, tmp);
 
-  if (!fits_scan (&header, CCDNumKeyword, "%d", 1, &itmp)) {
+  if (!gfits_scan (&header, CCDNumKeyword, "%d", 1, &itmp)) {
     image[0].ccdnum = 0xff;
   } else {
@@ -124,5 +124,5 @@
   }
 
-  fits_scan (&header, "ZERO_PT", "%lf", 1, &ZeroPt);
+  gfits_scan (&header, "ZERO_PT", "%lf", 1, &ZeroPt);
   SetZeroPoint (ZeroPt);
 
@@ -134,5 +134,5 @@
 
   /* find expected number of stars */
-  if (!fits_scan (&header, "NSTARS", "%d", 1, &image[0].nstar)) {
+  if (!gfits_scan (&header, "NSTARS", "%d", 1, &image[0].nstar)) {
     fprintf (stderr, "ERROR: can't get NSTARS from header\n");
     exit (1);
@@ -154,5 +154,5 @@
     
     sky = 0;
-    fits_scan (&header, "HISTORY", "%S", 10, line);
+    gfits_scan (&header, "HISTORY", "%S", 10, line);
     p = strstr (line, "|I=");
     if (p != (char *) NULL) {
@@ -178,7 +178,7 @@
     /* read from FITS table or from text table */
     extend = FALSE;
-    fits_scan (&header, "EXTEND",  "%t", 1, &extend);
+    gfits_scan (&header, "EXTEND",  "%t", 1, &extend);
     if (extend && !TEXTMODE) {
-      Nbytes = fits_matrix_size (&header);
+      Nbytes = gfits_matrix_size (&header);
       fseek (f, Nbytes, SEEK_CUR); 
       rdstars = rfits (f, &image[0].nstar);
@@ -189,5 +189,5 @@
     } else {
       /* allocate space for stars */
-      if (!fits_scan (&header, "NSTARS", "%d", 1, &image[0].nstar)) {
+      if (!gfits_scan (&header, "NSTARS", "%d", 1, &image[0].nstar)) {
 	fprintf (stderr, "ERROR: failed to find NSTARS\n");
 	exit (1);
Index: /trunk/Ohana/src/addstar/src/image-db.c
===================================================================
--- /trunk/Ohana/src/addstar/src/image-db.c	(revision 7079)
+++ /trunk/Ohana/src/addstar/src/image-db.c	(revision 7080)
@@ -6,5 +6,5 @@
 
   /* create new header */
-  fits_init_header (&db[0].header);
+  gfits_init_header (&db[0].header);
 
   /* set the recommended mode */
@@ -16,10 +16,10 @@
     db[0].header.Naxis[0] = 1;
     db[0].header.Naxis[1] = 1;
-    fits_create_header (&db[0].header);
+    gfits_create_header (&db[0].header);
     db[0].mode = DVO_MODE_RAW;
   }
   if (!strcasecmp (CATMODE, "MEF") || !strcasecmp (CATMODE, "SPLIT")) {
     db[0].header.extend   = TRUE;
-    fits_create_header (&db[0].header);
+    gfits_create_header (&db[0].header);
     db[0].mode = DVO_MODE_MEF;
   }
@@ -41,15 +41,15 @@
   }
 
-  fits_create_matrix (&db[0].header, &db[0].matrix);
-  fits_table_set_Image (&db[0].ftable, NULL, 0);
+  gfits_create_matrix (&db[0].header, &db[0].matrix);
+  gfits_table_set_Image (&db[0].ftable, NULL, 0);
 
   /* assign Zero Point provided by first image in dB */
-  fits_modify (&db[0].header, "ZERO_PT", "%lf", 1, ZeroPt);
-  fits_modify (&db[0].header, "NIMAGES", "%d", 1, 0);
+  gfits_modify (&db[0].header, "ZERO_PT", "%lf", 1, ZeroPt);
+  gfits_modify (&db[0].header, "NIMAGES", "%d", 1, 0);
 
-  if (db[0].format == DVO_FORMAT_INTERNAL)  fits_modify (&db[0].header, "FORMAT", "%s", 1, "INTERNAL");
-  if (db[0].format == DVO_FORMAT_LONEOS)    fits_modify (&db[0].header, "FORMAT", "%s", 1, "LONEOS");
-  if (db[0].format == DVO_FORMAT_ELIXIR)    fits_modify (&db[0].header, "FORMAT", "%s", 1, "ELIXIR");
-  if (db[0].format == DVO_FORMAT_PANSTARRS) fits_modify (&db[0].header, "FORMAT", "%s", 1, "PANSTARRS");
-  if (db[0].format == DVO_FORMAT_PMTEST)    fits_modify (&db[0].header, "FORMAT", "%s", 1, "PMTEST");
+  if (db[0].format == DVO_FORMAT_INTERNAL)  gfits_modify (&db[0].header, "FORMAT", "%s", 1, "INTERNAL");
+  if (db[0].format == DVO_FORMAT_LONEOS)    gfits_modify (&db[0].header, "FORMAT", "%s", 1, "LONEOS");
+  if (db[0].format == DVO_FORMAT_ELIXIR)    gfits_modify (&db[0].header, "FORMAT", "%s", 1, "ELIXIR");
+  if (db[0].format == DVO_FORMAT_PANSTARRS) gfits_modify (&db[0].header, "FORMAT", "%s", 1, "PANSTARRS");
+  if (db[0].format == DVO_FORMAT_PMTEST)    gfits_modify (&db[0].header, "FORMAT", "%s", 1, "PMTEST");
 }
Index: /trunk/Ohana/src/addstar/src/mkcatalog.c
===================================================================
--- /trunk/Ohana/src/addstar/src/mkcatalog.c	(revision 7079)
+++ /trunk/Ohana/src/addstar/src/mkcatalog.c	(revision 7080)
@@ -31,5 +31,5 @@
   }
 
-  fits_init_header (&catalog[0].header);
+  gfits_init_header (&catalog[0].header);
 
   if (catalog[0].catmode == DVO_MODE_RAW) {
@@ -41,5 +41,5 @@
   }
 
-  fits_create_header (&catalog[0].header);
+  gfits_create_header (&catalog[0].header);
   
   if (catalog[0].catmode == DVO_MODE_SPLIT) {
@@ -50,6 +50,6 @@
     /* define measure catalog file */
     ALLOCATE (catalog[0].measure_catalog, Catalog, 1);
-    fits_init_header (&catalog[0].measure_catalog[0].header);
-    fits_create_header (&catalog[0].measure_catalog[0].header);
+    gfits_init_header (&catalog[0].measure_catalog[0].header);
+    gfits_create_header (&catalog[0].measure_catalog[0].header);
     ALLOCATE (catalog[0].measure_catalog[0].filename, char, length);
     sprintf (catalog[0].measure_catalog[0].filename, "%s/%s.cpm", path, root);
@@ -60,11 +60,11 @@
     }
     file = filebasename (catalog[0].measure_catalog[0].filename);
-    fits_modify (&catalog[0].header, "MEASURE", "%s", 1, file);
+    gfits_modify (&catalog[0].header, "MEASURE", "%s", 1, file);
     free (file);
 
     /* define missing catalog file */
     ALLOCATE (catalog[0].missing_catalog, Catalog, 1);
-    fits_init_header (&catalog[0].missing_catalog[0].header);
-    fits_create_header (&catalog[0].missing_catalog[0].header);
+    gfits_init_header (&catalog[0].missing_catalog[0].header);
+    gfits_create_header (&catalog[0].missing_catalog[0].header);
     ALLOCATE (catalog[0].missing_catalog[0].filename, char, length);
     sprintf (catalog[0].missing_catalog[0].filename, "%s/%s.cpn", path, root);
@@ -74,11 +74,11 @@
     }
     file = filebasename (catalog[0].missing_catalog[0].filename);
-    fits_modify (&catalog[0].header, "MISSING", "%s", 1, file);
+    gfits_modify (&catalog[0].header, "MISSING", "%s", 1, file);
     free (file);
 
     /* define secfilt catalog file */
     ALLOCATE (catalog[0].secfilt_catalog, Catalog, 1);
-    fits_init_header (&catalog[0].secfilt_catalog[0].header);
-    fits_create_header (&catalog[0].secfilt_catalog[0].header);
+    gfits_init_header (&catalog[0].secfilt_catalog[0].header);
+    gfits_create_header (&catalog[0].secfilt_catalog[0].header);
     ALLOCATE (catalog[0].secfilt_catalog[0].filename, char, length);
     sprintf (catalog[0].secfilt_catalog[0].filename, "%s/%s.cps", path, root);
@@ -88,5 +88,5 @@
     }
     file = filebasename (catalog[0].secfilt_catalog[0].filename);
-    fits_modify (&catalog[0].header, "SECFILT", "%s", 1, file);
+    gfits_modify (&catalog[0].header, "SECFILT", "%s", 1, file);
     free (file);
     free (path);
@@ -95,13 +95,13 @@
 
   /* write RA,DEC range in header */
-  fits_modify (&catalog[0].header, "RA0",  "%lf", 1, region[0].Rmin);
-  fits_modify (&catalog[0].header, "DEC0", "%lf", 1, region[0].Dmin);
-  fits_modify (&catalog[0].header, "RA1",  "%lf", 1, region[0].Rmax);
-  fits_modify (&catalog[0].header, "DEC1", "%lf", 1, region[0].Dmax);
+  gfits_modify (&catalog[0].header, "RA0",  "%lf", 1, region[0].Rmin);
+  gfits_modify (&catalog[0].header, "DEC0", "%lf", 1, region[0].Dmin);
+  gfits_modify (&catalog[0].header, "RA1",  "%lf", 1, region[0].Rmax);
+  gfits_modify (&catalog[0].header, "DEC1", "%lf", 1, region[0].Dmax);
 
   /* write creation date in header */
   str_to_time ("now", &now);
   line = sec_to_date (now);
-  fits_modify (&catalog[0].header, "DATE", "%s", 1, line);
+  gfits_modify (&catalog[0].header, "DATE", "%s", 1, line);
   free (line);
 
Index: /trunk/Ohana/src/addstar/src/parse_time.c
===================================================================
--- /trunk/Ohana/src/addstar/src/parse_time.c	(revision 7079)
+++ /trunk/Ohana/src/addstar/src/parse_time.c	(revision 7080)
@@ -14,5 +14,5 @@
   if (strcasecmp (JDKeyword, "NONE")) {
     uppercase (JDKeyword);
-    fits_scan (header, JDKeyword, "%lf", 1, &jd);
+    gfits_scan (header, JDKeyword, "%lf", 1, &jd);
     Nsec = (jd - 2440587.5)*86400;
     return (Nsec);
@@ -22,5 +22,5 @@
   if (strcasecmp (MJDKeyword, "NONE")) {
     uppercase (MJDKeyword);
-    fits_scan (header, MJDKeyword, "%lf", 1, &jd);
+    gfits_scan (header, MJDKeyword, "%lf", 1, &jd);
     Nsec = (jd - 40587.0)*86400;
     return (Nsec);
@@ -29,5 +29,5 @@
   /* get UT and DATE */
   uppercase (UTKeyword);
-  fits_scan (header, UTKeyword, "%s", 1, line);
+  gfits_scan (header, UTKeyword, "%s", 1, line);
   /* remove ':' characters */
   for (c = strchr (line, 0x3a); c != (char *) NULL; c = strchr (line, 0x3a)) { *c = ' '; }
@@ -68,5 +68,5 @@
   /* parse date entry */
   uppercase (DateKeyword);
-  fits_scan (header, DateKeyword, "%s",  1, line);
+  gfits_scan (header, DateKeyword, "%s",  1, line);
   /* remove possible separators: ':', '/' '.', '-' */
   for (c = strchr (line, 0x3a); c != (char *) NULL; c = strchr (line, 0x3a)) { *c = ' '; }
Index: /trunk/Ohana/src/addstar/src/rfits.c
===================================================================
--- /trunk/Ohana/src/addstar/src/rfits.c	(revision 7079)
+++ /trunk/Ohana/src/addstar/src/rfits.c	(revision 7080)
@@ -14,7 +14,7 @@
   /* init & load in table data */
   table.header   = &theader;
-  if (!fits_fread_ftable (f, &table, "SMPFILE")) goto escape;
+  if (!gfits_fread_ftable (f, &table, "SMPFILE")) goto escape;
 
-  smpdata = fits_table_get_SMPData (&table, &Nstars, NULL);
+  smpdata = gfits_table_get_SMPData (&table, &Nstars, NULL);
 
   ALLOCATE (stars, Stars, Nstars);
Index: /trunk/Ohana/src/addstar/src/wcatalog.c
===================================================================
--- /trunk/Ohana/src/addstar/src/wcatalog.c	(revision 7079)
+++ /trunk/Ohana/src/addstar/src/wcatalog.c	(revision 7080)
@@ -7,5 +7,5 @@
 
   /* should this be moved into save_catalog?? */
-  fits_modify (&catalog[0].header, "SORTED",  "%t", 1, catalog[0].sorted);
+  gfits_modify (&catalog[0].header, "SORTED",  "%t", 1, catalog[0].sorted);
 
   /* if partial load, must use update */
@@ -40,5 +40,5 @@
     catalog[0].Nsecfilt = 0;
   }
-  fits_free_header (&catalog[0].header);
+  gfits_free_header (&catalog[0].header);
 }
 
Index: /trunk/Ohana/src/addstar/src/wimage.c
===================================================================
--- /trunk/Ohana/src/addstar/src/wimage.c	(revision 7079)
+++ /trunk/Ohana/src/addstar/src/wimage.c	(revision 7080)
@@ -12,11 +12,11 @@
   /* adjust header */
   Nimages = 0;
-  fits_scan (&db[0].header, "NIMAGES", "%d", 1, &Nimages);
+  gfits_scan (&db[0].header, "NIMAGES", "%d", 1, &Nimages);
   Nimages ++;
-  fits_modify (&db[0].header, "NIMAGES", "%d", 1, Nimages);
+  gfits_modify (&db[0].header, "NIMAGES", "%d", 1, Nimages);
 
-  fits_table_to_vtable (&db[0].ftable, &db[0].vtable, 0, 0);
+  gfits_table_to_vtable (&db[0].ftable, &db[0].vtable, 0, 0);
   for (i = 0; i < Nimage; i++) {
-    fits_vadd_rows (&db[0].vtable, (char *) image, 1, sizeof(Image));
+    gfits_vadd_rows (&db[0].vtable, (char *) image, 1, sizeof(Image));
   }
 
Index: /trunk/Ohana/src/delstar/doc/ChangeLog.txt
===================================================================
--- /trunk/Ohana/src/delstar/doc/ChangeLog.txt	(revision 7079)
+++ /trunk/Ohana/src/delstar/doc/ChangeLog.txt	(revision 7080)
@@ -1,2 +1,5 @@
+
+- delstar 1.6 : 
+  * converted to gfits APIs (forces libfits 1.6)
 
 - delstar 1.5 : 2006.03.26
Index: /trunk/Ohana/src/delstar/src/RegionOps.c
===================================================================
--- /trunk/Ohana/src/delstar/src/RegionOps.c	(revision 7079)
+++ /trunk/Ohana/src/delstar/src/RegionOps.c	(revision 7080)
@@ -39,10 +39,10 @@
   /* init & load in table data */
   table.header = &theader;
-  if (!fits_fread_header (f, &header))           Shutdown ("can't read primary header for GSC Region table"); 
-  if (!fits_fread_matrix (f, &matrix, &header))  Shutdown ("can't read primary matrix for GSC Region table");
-  if (!fits_fread_ftable (f, &table, "REGIONS")) Shutdown ("can't read GSC Region table");
-
-  fits_scan (table.header, "NAXIS1", "%d", 1, &Nx);
-  fits_scan (table.header, "NAXIS2", "%d", 1, &Ny);
+  if (!gfits_fread_header (f, &header))           Shutdown ("can't read primary header for GSC Region table"); 
+  if (!gfits_fread_matrix (f, &matrix, &header))  Shutdown ("can't read primary matrix for GSC Region table");
+  if (!gfits_fread_ftable (f, &table, "REGIONS")) Shutdown ("can't read GSC Region table");
+
+  gfits_scan (table.header, "NAXIS1", "%d", 1, &Nx);
+  gfits_scan (table.header, "NAXIS2", "%d", 1, &Ny);
 
   Nregions = 0;
Index: /trunk/Ohana/src/delstar/src/Shutdown.c
===================================================================
--- /trunk/Ohana/src/delstar/src/Shutdown.c	(revision 7079)
+++ /trunk/Ohana/src/delstar/src/Shutdown.c	(revision 7080)
@@ -22,5 +22,5 @@
 
   SetProtect (TRUE);
-  fits_db_close (db);
+  gfits_db_close (db);
   fprintf (stderr, "ERROR: delstar halted\n");
   exit (1);
Index: /trunk/Ohana/src/delstar/src/delete_imagefile.c
===================================================================
--- /trunk/Ohana/src/delstar/src/delete_imagefile.c	(revision 7079)
+++ /trunk/Ohana/src/delstar/src/delete_imagefile.c	(revision 7080)
@@ -55,5 +55,5 @@
   if (!Nimlist) Shutdown ("image %s not found in db", filename);
 
-  fits_vtable_from_ftable (&db[0].ftable, &db[0].vtable, imlist, Nimlist);
+  gfits_vtable_from_ftable (&db[0].ftable, &db[0].vtable, imlist, Nimlist);
   dvo_image_update (db, VERBOSE);
   dvo_image_unlock (db);
Index: /trunk/Ohana/src/delstar/src/delete_imagename.c
===================================================================
--- /trunk/Ohana/src/delstar/src/delete_imagename.c	(revision 7079)
+++ /trunk/Ohana/src/delstar/src/delete_imagename.c	(revision 7080)
@@ -17,5 +17,5 @@
   SkyTableSetFilenames (sky, CATDIR, "cpt");
 
-  image = fits_table_get_Image (&db[0].ftable, &Nimage, &db[0].swapped);
+  image = gfits_table_get_Image (&db[0].ftable, &Nimage, &db[0].swapped);
 
   /* find image in db by name */
@@ -63,5 +63,5 @@
 
   /* delete the identified images */
-  fits_vtable_from_ftable (&db[0].ftable, &db[0].vtable, imlist, Nimlist);
+  gfits_vtable_from_ftable (&db[0].ftable, &db[0].vtable, imlist, Nimlist);
   dvo_image_update (db, VERBOSE);
   dvo_image_unlock (db);
Index: /trunk/Ohana/src/delstar/src/delete_times.c
===================================================================
--- /trunk/Ohana/src/delstar/src/delete_times.c	(revision 7079)
+++ /trunk/Ohana/src/delstar/src/delete_times.c	(revision 7080)
@@ -23,5 +23,5 @@
   ALLOCATE (skylist[0].regions, SkyRegion *, NREGIONS);
 
-  image = fits_table_get_Image (&db[0].ftable, &Nimage, &db[0].swapped);
+  image = gfits_table_get_Image (&db[0].ftable, &Nimage, &db[0].swapped);
 
   /* find images for time range, delete each image */ 
@@ -77,5 +77,5 @@
 
   /* delete the identified images */
-  fits_vtable_from_ftable (&db[0].ftable, &db[0].vtable, imlist, Nimlist);
+  gfits_vtable_from_ftable (&db[0].ftable, &db[0].vtable, imlist, Nimlist);
   dvo_image_update (db, VERBOSE);
   dvo_image_unlock (db);
Index: /trunk/Ohana/src/delstar/src/find_image_db.c
===================================================================
--- /trunk/Ohana/src/delstar/src/find_image_db.c	(revision 7079)
+++ /trunk/Ohana/src/delstar/src/find_image_db.c	(revision 7080)
@@ -16,5 +16,5 @@
   }
 
-  image = fits_table_get_Image (&db[0].ftable, &Nimage, &db[0].swapped);
+  image = gfits_table_get_Image (&db[0].ftable, &Nimage, &db[0].swapped);
 
   Nlist = 0;
@@ -42,5 +42,5 @@
   int code;
 
-  image = fits_table_get_Image (&db[0].ftable, &Nimage, &db[0].swapped);
+  image = gfits_table_get_Image (&db[0].ftable, &Nimage, &db[0].swapped);
 
   start = timage[0].tzero - MAX(0.05*timage[0].trate*timage[0].NY, 1);
@@ -72,5 +72,5 @@
   Image *image;
 
-  image = fits_table_get_Image (&db[0].ftable, &Nimage, &db[0].swapped);
+  image = gfits_table_get_Image (&db[0].ftable, &Nimage, &db[0].swapped);
 
   Nlist = 0;
Index: /trunk/Ohana/src/delstar/src/gimages.c
===================================================================
--- /trunk/Ohana/src/delstar/src/gimages.c	(revision 7079)
+++ /trunk/Ohana/src/delstar/src/gimages.c	(revision 7080)
@@ -16,5 +16,5 @@
   ALLOCATE (image, Image, 1);
   /* load header */
-  if (!fits_read_header (filename, &header)) {
+  if (!gfits_read_header (filename, &header)) {
     Shutdown ("ERROR: can't find image file %s", filename);
   }
@@ -48,8 +48,8 @@
  
   /* get other header info */
-  fits_scan (&header, "NAXIS1",   "%hd", 1, &image[0].NX); 
-  fits_scan (&header, "NAXIS2",   "%hd", 1, &image[0].NY);
+  gfits_scan (&header, "NAXIS1",   "%hd", 1, &image[0].NX); 
+  gfits_scan (&header, "NAXIS2",   "%hd", 1, &image[0].NY);
 
-  fits_scan (&header, "PHOTCODE", "%s", 1, photcode);
+  gfits_scan (&header, "PHOTCODE", "%s", 1, photcode);
   Nc = GetPhotcodeCodebyName (photcode);
   if (!Nc) {
@@ -59,21 +59,21 @@
 
   tmp = 0;
-  fits_scan (&header, "FLIMIT",   "%lf", 1, &tmp);
+  gfits_scan (&header, "FLIMIT",   "%lf", 1, &tmp);
   image[0].detection_limit = tmp * 10.0;
 
   tmp = 0;
-  fits_scan (&header, "FSATUR",   "%lf", 1, &tmp);
+  gfits_scan (&header, "FSATUR",   "%lf", 1, &tmp);
   image[0].saturation_limit = tmp * 10.0;
 
-  if (!fits_scan (&header, "TZERO",   "%d",  1, &image[0].tzero)) {
+  if (!gfits_scan (&header, "TZERO",   "%d",  1, &image[0].tzero)) {
     image[0].tzero = parse_time (&header);
   }
 
   tmp = 0;
-  fits_scan (&header, "TRATE",   "%lf", 1, &tmp);
+  gfits_scan (&header, "TRATE",   "%lf", 1, &tmp);
   image[0].trate = 10000 * tmp;
 
   tmp = 0;
-  fits_scan (&header, "AIRMASS", "%lf", 1, &tmp);
+  gfits_scan (&header, "AIRMASS", "%lf", 1, &tmp);
   image[0].secz_PS = tmp;
 
Index: /trunk/Ohana/src/delstar/src/parse_time.c
===================================================================
--- /trunk/Ohana/src/delstar/src/parse_time.c	(revision 7079)
+++ /trunk/Ohana/src/delstar/src/parse_time.c	(revision 7080)
@@ -14,5 +14,5 @@
   if (strcasecmp (JDKeyword, "NONE")) {
     uppercase (JDKeyword);
-    fits_scan (header, JDKeyword, "%lf", 1, &jd);
+    gfits_scan (header, JDKeyword, "%lf", 1, &jd);
     Nsec = (jd - 2440587.5)*86400;
     return (Nsec);
@@ -22,5 +22,5 @@
   if (strcasecmp (MJDKeyword, "NONE")) {
     uppercase (MJDKeyword);
-    fits_scan (header, MJDKeyword, "%lf", 1, &jd);
+    gfits_scan (header, MJDKeyword, "%lf", 1, &jd);
     Nsec = (jd - 40587.0)*86400;
     return (Nsec);
@@ -29,5 +29,5 @@
   /* get UT and DATE */
   uppercase (UTKeyword);
-  fits_scan (header, UTKeyword, "%s", 1, line);
+  gfits_scan (header, UTKeyword, "%s", 1, line);
   /* remove ':' characters */
   for (c = strchr (line, 0x3a); c != (char *) NULL; c = strchr (line, 0x3a)) { *c = ' '; }
@@ -63,5 +63,5 @@
   /* parse date entry */
   uppercase (DateKeyword);
-  fits_scan (header, DateKeyword, "%s",  1, line);
+  gfits_scan (header, DateKeyword, "%s",  1, line);
   /* remove possible separators: ':', '/' '.', '-' */
   for (c = strchr (line, 0x3a); c != (char *) NULL; c = strchr (line, 0x3a)) { *c = ' '; }
Index: /trunk/Ohana/src/delstar/src/wcatalog.c
===================================================================
--- /trunk/Ohana/src/delstar/src/wcatalog.c	(revision 7079)
+++ /trunk/Ohana/src/delstar/src/wcatalog.c	(revision 7080)
@@ -29,5 +29,5 @@
     catalog[0].Nsecfilt = 0;
   }
-  fits_free_header (&catalog[0].header);
+  gfits_free_header (&catalog[0].header);
   
   return (TRUE);
Index: /trunk/Ohana/src/elixir/doc/ChangeLog.txt
===================================================================
--- /trunk/Ohana/src/elixir/doc/ChangeLog.txt	(revision 7079)
+++ /trunk/Ohana/src/elixir/doc/ChangeLog.txt	(revision 7080)
@@ -1,2 +1,5 @@
+
+- elixir-1-5: 
+  * converted to gfits APIs (forces libfits 1.6)
 
 elixir-1-4:
Index: /trunk/Ohana/src/elixir/src/Photcodes.c
===================================================================
--- /trunk/Ohana/src/elixir/src/Photcodes.c	(revision 7079)
+++ /trunk/Ohana/src/elixir/src/Photcodes.c	(revision 7080)
@@ -9,5 +9,5 @@
 
   /* read in image header, open image data region */
-  if (!fits_read_header (file, &header)) {
+  if (!gfits_read_header (file, &header)) {
     fprintf (stderr, "ERROR: can't find image file %s (1)\n", file);
     exit(0);
@@ -15,9 +15,9 @@
 
   /** WARNING: this should use the abstracted keyword names **/
-  fits_scan (&header, "DETECTOR", "%s", 1, detector);
-  fits_scan (&header, "FILTER",   "%s", 1, filter);
-  fits_scan (&header, "IMAGEID",  "%d", 1, &imageid);
-
-  fits_free_header (&header);
+  gfits_scan (&header, "DETECTOR", "%s", 1, detector);
+  gfits_scan (&header, "FILTER",   "%s", 1, filter);
+  gfits_scan (&header, "IMAGEID",  "%d", 1, &imageid);
+
+  gfits_free_header (&header);
 
   for (i = 0; i < strlen(detector); i++) { detector[i] = toupper (detector[i]); }
@@ -47,5 +47,5 @@
 
   /* read in image header, open image data region */
-  if (!fits_read_header (filename, &header)) {
+  if (!gfits_read_header (filename, &header)) {
     fprintf (stderr, "ERROR: can't find image file %s (1)\n", file);
     exit(0);
@@ -53,7 +53,7 @@
   free (filename);
 
-  fits_scan (&header, "DETECTOR", "%s", 1, detector);
-  fits_scan (&header, "FILTER",   "%s", 1, filter);
-  fits_free_header (&header);
+  gfits_scan (&header, "DETECTOR", "%s", 1, detector);
+  gfits_scan (&header, "FILTER",   "%s", 1, filter);
+  gfits_free_header (&header);
 
   for (i = 0; i < strlen(detector); i++) { detector[i] = toupper (detector[i]); }
@@ -83,11 +83,11 @@
   }
 
-  if (!fits_read_header (fullname, &header)) {
+  if (!gfits_read_header (fullname, &header)) {
     fprintf (stderr, "ERROR: can't find image file %s (1)\n", fullname);
     exit(0);
   }
-  fits_scan (&header, "DETECTOR", "%s", 1, detector);
-  fits_scan (&header, "FILTER",   "%s", 1, filter);
-  fits_free_header (&header);
+  gfits_scan (&header, "DETECTOR", "%s", 1, detector);
+  gfits_scan (&header, "FILTER",   "%s", 1, filter);
+  gfits_free_header (&header);
   
   for (i = 0; i < strlen(detector); i++) { detector[i] = toupper (detector[i]); }
@@ -138,5 +138,5 @@
 
   /* read in image header, open image data region */
-  if (!fits_read_Xheader (filename, &header, extend)) {
+  if (!gfits_read_Xheader (filename, &header, extend)) {
     fprintf (stderr, "ERROR: can't find image file %s (1)\n", file);
     exit(0);
@@ -144,8 +144,8 @@
   free (filename);
 
-  fits_scan (&header, "DETECTOR", "%s", 1, detector);
-  fits_scan (&header, "FILTER",   "%s", 1, filter);
-  fits_scan (&header, "IMAGEID",  "%d", 1, &imageid);
-  fits_free_header (&header);
+  gfits_scan (&header, "DETECTOR", "%s", 1, detector);
+  gfits_scan (&header, "FILTER",   "%s", 1, filter);
+  gfits_scan (&header, "IMAGEID",  "%d", 1, &imageid);
+  gfits_free_header (&header);
 
   for (i = 0; i < strlen(detector); i++) { detector[i] = toupper (detector[i]); }
Index: /trunk/Ohana/src/fixcat/src/find_images.c
===================================================================
--- /trunk/Ohana/src/fixcat/src/find_images.c	(revision 7079)
+++ /trunk/Ohana/src/fixcat/src/find_images.c	(revision 7080)
@@ -56,10 +56,10 @@
 
   /* check if image datafile exists, get header, number of images */
-  if (!fits_read_header (ImageCat, &header)) {
+  if (!gfits_read_header (ImageCat, &header)) {
     fprintf (stderr, "ERROR: No images in catalog %s (1)\n", ImageCat);
     exit (0);
   }
   Nimage = 0;
-  fits_scan (&header, "NIMAGES", "%d", 1, &Nimage);
+  gfits_scan (&header, "NIMAGES", "%d", 1, &Nimage);
   if (Nimage == 0) {
     fprintf (stderr, "ERROR: No images in catalog %s (1)\n", ImageCat);
Index: /trunk/Ohana/src/fixcat/src/gcatalog.c
===================================================================
--- /trunk/Ohana/src/fixcat/src/gcatalog.c	(revision 7079)
+++ /trunk/Ohana/src/fixcat/src/gcatalog.c	(revision 7080)
@@ -18,5 +18,5 @@
 
   /* read catalog header */
-  if (!fits_read_header (filename, &catalog[0].header)) {
+  if (!gfits_read_header (filename, &catalog[0].header)) {
     fprintf (stderr, "ERROR: file doesn't exist %s\n", filename);
     exit (0);
@@ -32,7 +32,7 @@
   /** find number of stars, measurements **/
   catalog[0].Nmissing = catalog[0].Naverage = catalog[0].Nmeasure = 0;
-  fits_scan (&catalog[0].header, "NSTARS", "%d", 1, &catalog[0].Naverage);
-  fits_scan (&catalog[0].header, "NMEAS", "%d", 1, &catalog[0].Nmeasure);
-  fits_scan (&catalog[0].header, "NMISS", "%d", 1, &catalog[0].Nmissing);
+  gfits_scan (&catalog[0].header, "NSTARS", "%d", 1, &catalog[0].Naverage);
+  gfits_scan (&catalog[0].header, "NMEAS", "%d", 1, &catalog[0].Nmeasure);
+  gfits_scan (&catalog[0].header, "NMISS", "%d", 1, &catalog[0].Nmissing);
 
   ALLOCATE (catalog[0].average, Average, MAX (catalog[0].Naverage, 1));
Index: /trunk/Ohana/src/fixcat/src/gcatstats.c
===================================================================
--- /trunk/Ohana/src/fixcat/src/gcatstats.c	(revision 7079)
+++ /trunk/Ohana/src/fixcat/src/gcatstats.c	(revision 7080)
@@ -13,8 +13,8 @@
   Coords tcoords;
   
-  fits_scan (&catalog[0].header, "RA0", "%lf", 1, &MinRA);
-  fits_scan (&catalog[0].header, "RA1", "%lf", 1, &MaxRA);
-  fits_scan (&catalog[0].header, "DEC0", "%lf", 1, &MinDEC);
-  fits_scan (&catalog[0].header, "DEC1", "%lf", 1, &MaxDEC);
+  gfits_scan (&catalog[0].header, "RA0", "%lf", 1, &MinRA);
+  gfits_scan (&catalog[0].header, "RA1", "%lf", 1, &MaxRA);
+  gfits_scan (&catalog[0].header, "DEC0", "%lf", 1, &MinDEC);
+  gfits_scan (&catalog[0].header, "DEC1", "%lf", 1, &MaxDEC);
 
   /* double check on region RA and DEC ranges */
Index: /trunk/Ohana/src/fixcat/src/wcatalog.c
===================================================================
--- /trunk/Ohana/src/fixcat/src/wcatalog.c	(revision 7079)
+++ /trunk/Ohana/src/fixcat/src/wcatalog.c	(revision 7080)
@@ -36,9 +36,9 @@
   chmod (filename, mode);
   
-  fits_modify (&catalog[0].header, "NSTARS", "%d", 1, catalog[0].Naverage);
-  fits_modify (&catalog[0].header, "NMEAS", "%d", 1, catalog[0].Nmeasure);
-  fits_modify (&catalog[0].header, "NMISS", "%d", 1, catalog[0].Nmissing);
+  gfits_modify (&catalog[0].header, "NSTARS", "%d", 1, catalog[0].Naverage);
+  gfits_modify (&catalog[0].header, "NMEAS", "%d", 1, catalog[0].Nmeasure);
+  gfits_modify (&catalog[0].header, "NMISS", "%d", 1, catalog[0].Nmissing);
 
-  fits_modify (&catalog[0].header, "MARKSTAR", "%t", 1, TRUE);
+  gfits_modify (&catalog[0].header, "MARKSTAR", "%t", 1, TRUE);
 
   nitems = Fwrite (catalog[0].header.buffer, 1, catalog[0].header.size, f, "char");
Index: /trunk/Ohana/src/gastro/doc/ChangeLog.txt
===================================================================
--- /trunk/Ohana/src/gastro/doc/ChangeLog.txt	(revision 7079)
+++ /trunk/Ohana/src/gastro/doc/ChangeLog.txt	(revision 7080)
@@ -1,2 +1,5 @@
+
+ gastro-1-4:
+  * converted to gfits APIs (forces libfits 1.6)
 
  gastro-1-3:
Index: /trunk/Ohana/src/gastro/src/gheader.c
===================================================================
--- /trunk/Ohana/src/gastro/src/gheader.c	(revision 7079)
+++ /trunk/Ohana/src/gastro/src/gheader.c	(revision 7080)
@@ -8,5 +8,5 @@
   char line[1024];
 
-  if (!fits_read_header (file, &header)) {
+  if (!gfits_read_header (file, &header)) {
     fprintf (stderr, "ERROR: can't find image file %s (3)\n", file);
     exit(0);
@@ -26,64 +26,64 @@
       exit (0);
     }
-    fits_modify (&header, "PHOTCODE", "%s", 1, PHOTCODE);
+    gfits_modify (&header, "PHOTCODE", "%s", 1, PHOTCODE);
   }    
   
   if (Nmatch < 2) {
-    fits_modify (&header, "NASTRO", "%d", 1, 0);
-    fits_modify (&header, "NASTRO", "%C", 1, "number of stars used for astrometry");
+    gfits_modify (&header, "NASTRO", "%d", 1, 0);
+    gfits_modify (&header, "NASTRO", "%C", 1, "number of stars used for astrometry");
     goto skipstuff;
   }
   
-  fits_modify (&header, "NASTRO", "%d", 1, Nmatch);
-  fits_modify (&header, "NASTRO", "%C", 1, "number of stars used for astrometry");
+  gfits_modify (&header, "NASTRO", "%d", 1, Nmatch);
+  gfits_modify (&header, "NASTRO", "%C", 1, "number of stars used for astrometry");
 
   /*** use PutCoords to update header ***/
   if (coords.Npolyterms > 1) {
-    fits_modify (&header, "CTYPE1",   "%s",  1, "RA---PLY");
-    fits_modify (&header, "CTYPE2",   "%s",  1, "DEC--PLY");
+    gfits_modify (&header, "CTYPE1",   "%s",  1, "RA---PLY");
+    gfits_modify (&header, "CTYPE2",   "%s",  1, "DEC--PLY");
   } else {
-    fits_modify (&header, "CTYPE1",   "%s",  1, "RA---TAN");
-    fits_modify (&header, "CTYPE2",   "%s",  1, "DEC--TAN");
+    gfits_modify (&header, "CTYPE1",   "%s",  1, "RA---TAN");
+    gfits_modify (&header, "CTYPE2",   "%s",  1, "DEC--TAN");
   }    
-  fits_modify (&header, "CDELT1",   "%le", 1, coords.cdelt1); 
-  fits_modify (&header, "CDELT2",   "%le", 1, coords.cdelt2);
-  fits_modify (&header, "CRVAL1",   "%lf", 1, coords.crval1);
-  fits_modify (&header, "CRVAL2",   "%lf", 1, coords.crval2);  
-  fits_modify (&header, "CRPIX1",   "%lf", 1, coords.crpix1);
-  fits_modify (&header, "CRPIX2",   "%lf", 1, coords.crpix2);
-  fits_modify (&header, "PC001001", "%le", 1, coords.pc1_1);
-  fits_modify (&header, "PC001002", "%le", 1, coords.pc1_2);
-  fits_modify (&header, "PC002001", "%le", 1, coords.pc2_1);
-  fits_modify (&header, "PC002002", "%le", 1, coords.pc2_2);
-  fits_modify (&header, "NPLYTERM", "%d", 1, coords.Npolyterms);
+  gfits_modify (&header, "CDELT1",   "%le", 1, coords.cdelt1); 
+  gfits_modify (&header, "CDELT2",   "%le", 1, coords.cdelt2);
+  gfits_modify (&header, "CRVAL1",   "%lf", 1, coords.crval1);
+  gfits_modify (&header, "CRVAL2",   "%lf", 1, coords.crval2);  
+  gfits_modify (&header, "CRPIX1",   "%lf", 1, coords.crpix1);
+  gfits_modify (&header, "CRPIX2",   "%lf", 1, coords.crpix2);
+  gfits_modify (&header, "PC001001", "%le", 1, coords.pc1_1);
+  gfits_modify (&header, "PC001002", "%le", 1, coords.pc1_2);
+  gfits_modify (&header, "PC002001", "%le", 1, coords.pc2_1);
+  gfits_modify (&header, "PC002002", "%le", 1, coords.pc2_2);
+  gfits_modify (&header, "NPLYTERM", "%d", 1, coords.Npolyterms);
   if (coords.Npolyterms > 1) {
     /* RA Terms */
-    fits_modify (&header, "PCA1X2Y0", "%le", 1, coords.polyterms[0][0]);   /* polyterms[0]); */
-    fits_modify (&header, "PCA1X1Y1", "%le", 1, coords.polyterms[1][0]);   /* polyterms[1]); */
-    fits_modify (&header, "PCA1X0Y2", "%le", 1, coords.polyterms[2][0]);   /* polyterms[2]); */
+    gfits_modify (&header, "PCA1X2Y0", "%le", 1, coords.polyterms[0][0]);   /* polyterms[0]); */
+    gfits_modify (&header, "PCA1X1Y1", "%le", 1, coords.polyterms[1][0]);   /* polyterms[1]); */
+    gfits_modify (&header, "PCA1X0Y2", "%le", 1, coords.polyterms[2][0]);   /* polyterms[2]); */
 
     if (coords.Npolyterms > 2) {
-      fits_modify (&header, "PCA1X3Y0", "%le", 1, coords.polyterms[3][0]);   /* polyterms[3]); */
-      fits_modify (&header, "PCA1X2Y1", "%le", 1, coords.polyterms[4][0]);   /* polyterms[4]); */
-      fits_modify (&header, "PCA1X1Y2", "%le", 1, coords.polyterms[5][0]);   /* polyterms[5]); */
-      fits_modify (&header, "PCA1X0Y3", "%le", 1, coords.polyterms[6][0]);   /* polyterms[6]); */
+      gfits_modify (&header, "PCA1X3Y0", "%le", 1, coords.polyterms[3][0]);   /* polyterms[3]); */
+      gfits_modify (&header, "PCA1X2Y1", "%le", 1, coords.polyterms[4][0]);   /* polyterms[4]); */
+      gfits_modify (&header, "PCA1X1Y2", "%le", 1, coords.polyterms[5][0]);   /* polyterms[5]); */
+      gfits_modify (&header, "PCA1X0Y3", "%le", 1, coords.polyterms[6][0]);   /* polyterms[6]); */
     }
     /* Dec Terms */
-    fits_modify (&header, "PCA2X2Y0", "%le", 1, coords.polyterms[0][1]);   /* polyterms[7]); */
-    fits_modify (&header, "PCA2X1Y1", "%le", 1, coords.polyterms[1][1]);   /* polyterms[8]); */
-    fits_modify (&header, "PCA2X0Y2", "%le", 1, coords.polyterms[2][1]);   /* polyterms[9]); */
+    gfits_modify (&header, "PCA2X2Y0", "%le", 1, coords.polyterms[0][1]);   /* polyterms[7]); */
+    gfits_modify (&header, "PCA2X1Y1", "%le", 1, coords.polyterms[1][1]);   /* polyterms[8]); */
+    gfits_modify (&header, "PCA2X0Y2", "%le", 1, coords.polyterms[2][1]);   /* polyterms[9]); */
 
     if (coords.Npolyterms > 2) {
-      fits_modify (&header, "PCA2X3Y0", "%le", 1, coords.polyterms[3][1]);   /* polyterms[10]); */
-      fits_modify (&header, "PCA2X2Y1", "%le", 1, coords.polyterms[4][1]);   /* polyterms[11]); */
-      fits_modify (&header, "PCA2X1Y2", "%le", 1, coords.polyterms[5][1]);   /* polyterms[12]); */
-      fits_modify (&header, "PCA2X0Y3", "%le", 1, coords.polyterms[6][1]);   /* polyterms[13]); */
+      gfits_modify (&header, "PCA2X3Y0", "%le", 1, coords.polyterms[3][1]);   /* polyterms[10]); */
+      gfits_modify (&header, "PCA2X2Y1", "%le", 1, coords.polyterms[4][1]);   /* polyterms[11]); */
+      gfits_modify (&header, "PCA2X1Y2", "%le", 1, coords.polyterms[5][1]);   /* polyterms[12]); */
+      gfits_modify (&header, "PCA2X0Y3", "%le", 1, coords.polyterms[6][1]);   /* polyterms[13]); */
     }
   }
-  fits_modify (&header, "CERROR", "%lf", 1, dR);
-  fits_modify (&header, "CERROR", "%C", 1, "scatter in astrometry soln (arcsec)");
-  fits_modify (&header, "CPRECISE", "%lf", 1, dR / sqrt(1.0*Nmatch));
-  fits_modify (&header, "CPRECISE", "%C", 1, "precision of astrometry soln (arcsec)");
-  fits_modify (&header, "EQUINOX", "%lf", 1, 2000.0);
+  gfits_modify (&header, "CERROR", "%lf", 1, dR);
+  gfits_modify (&header, "CERROR", "%C", 1, "scatter in astrometry soln (arcsec)");
+  gfits_modify (&header, "CPRECISE", "%lf", 1, dR / sqrt(1.0*Nmatch));
+  gfits_modify (&header, "CPRECISE", "%C", 1, "precision of astrometry soln (arcsec)");
+  gfits_modify (&header, "EQUINOX", "%lf", 1, 2000.0);
   /* we force equinox to be 2000.0 for all images */
 
Index: /trunk/Ohana/src/gastro/src/gstars.c
===================================================================
--- /trunk/Ohana/src/gastro/src/gstars.c	(revision 7079)
+++ /trunk/Ohana/src/gastro/src/gstars.c	(revision 7080)
@@ -23,11 +23,11 @@
 
   /* read in image header, open image data region */
-  if (!fits_read_header (file, &header)) {
+  if (!gfits_read_header (file, &header)) {
     fprintf (stderr, "ERROR: can't find image file %s (1)\n", file);
     exit(0);
   }
   /* get complete info from header */
-  fits_scan (&header, "NAXIS1", "%d", 1, NX);
-  fits_scan (&header, "NAXIS2", "%d", 1, NY);
+  gfits_scan (&header, "NAXIS1", "%d", 1, NX);
+  gfits_scan (&header, "NAXIS2", "%d", 1, NY);
 
   /* attempt to get detailed astrometric information from header */
@@ -36,5 +36,5 @@
       GetCoords (coords, &header);
     } else {
-      fits_read_header (HEADER, &theader);
+      gfits_read_header (HEADER, &theader);
       GetCoords (coords, &theader);
     }
@@ -78,5 +78,5 @@
     if (!FORCE) {
       /* RA (in hours, not degrees) */
-      if (!fits_scan (&header, "RA", "%s", 1, line)) {
+      if (!gfits_scan (&header, "RA", "%s", 1, line)) {
 	fprintf (stderr, "ERROR: no astrometry in header\n");
 	exit (1);
@@ -86,5 +86,5 @@
 
       /* DEC */
-      if (!fits_scan (&header, "DEC", "%s", 1, line)) {
+      if (!gfits_scan (&header, "DEC", "%s", 1, line)) {
 	fprintf (stderr, "ERROR: no astrometry in header\n");
 	exit (1);
@@ -104,5 +104,5 @@
   /* the following two sections are LONEOS derived and may not be needed elsewhere */
   if (LONEOS_COORDS) {
-    fits_scan (&header, "COMMENT", "%s", 1, line);
+    gfits_scan (&header, "COMMENT", "%s", 1, line);
     sscanf (line, "%*s%d%s", &rnumber, side);
     if (get_region_coords (&ra, &dec, rnumber, side)) {
@@ -137,5 +137,5 @@
 
   Nstars = 0;
-  fits_scan (&header, "NSTARS", "%d", 1, &Nstars);
+  gfits_scan (&header, "NSTARS", "%d", 1, &Nstars);
   if (Nstars == -1) {
     fprintf (stderr, "ERROR: failed to find NSTARS\n");
@@ -238,5 +238,5 @@
   /***  this is tailored for LONEOS ***/
   Nccd = -1;
-  fits_scan (&header, "NCCD", "%d", 1, &Nccd);
+  gfits_scan (&header, "NCCD", "%d", 1, &Nccd);
   if (Nccd == -1) {  /* no ccd info in header, not loneos */
     coords[0].crpix1 = 0.5*(*NX);
Index: /trunk/Ohana/src/gastro2/doc/ChangeLog.txt
===================================================================
--- /trunk/Ohana/src/gastro2/doc/ChangeLog.txt	(revision 7079)
+++ /trunk/Ohana/src/gastro2/doc/ChangeLog.txt	(revision 7080)
@@ -1,2 +1,5 @@
+
+ gastro-2-3:
+  * converted to gfits APIs (forces libfits 1.6)
 
  gastro-2-2:
Index: /trunk/Ohana/src/gastro2/src/gheader2.c
===================================================================
--- /trunk/Ohana/src/gastro2/src/gheader2.c	(revision 7079)
+++ /trunk/Ohana/src/gastro2/src/gheader2.c	(revision 7080)
@@ -9,5 +9,5 @@
   char line[1024];
 
-  if (!fits_read_header (file, &header)) {
+  if (!gfits_read_header (file, &header)) {
     fprintf (stderr, "ERROR: can't find image file %s (3)\n", file);
     exit(0);
@@ -16,62 +16,62 @@
 
   if (Target[0].answer.N < 6) {
-    fits_modify (&header, "NASTRO", "%d", 1, 0);
-    fits_modify (&header, "NASTRO", "%C", 1, "number of stars used for astrometry");
+    gfits_modify (&header, "NASTRO", "%d", 1, 0);
+    gfits_modify (&header, "NASTRO", "%C", 1, "number of stars used for astrometry");
     goto skipstuff;
   }
   
-  fits_modify (&header, "NASTRO", "%d", 1, Target[0].answer.N);
-  fits_modify (&header, "NASTRO", "%C", 1, "number of stars used for astrometry");
+  gfits_modify (&header, "NASTRO", "%d", 1, Target[0].answer.N);
+  gfits_modify (&header, "NASTRO", "%C", 1, "number of stars used for astrometry");
 
   /*** use PutCoords to update header ***/
   if (Target[0].coords.Npolyterms > 1) {
-    fits_modify (&header, "CTYPE1",   "%s",  1, "RA---PLY");
-    fits_modify (&header, "CTYPE2",   "%s",  1, "DEC--PLY");
+    gfits_modify (&header, "CTYPE1",   "%s",  1, "RA---PLY");
+    gfits_modify (&header, "CTYPE2",   "%s",  1, "DEC--PLY");
   } else {
-    fits_modify (&header, "CTYPE1",   "%s",  1, "RA---TAN");
-    fits_modify (&header, "CTYPE2",   "%s",  1, "DEC--TAN");
+    gfits_modify (&header, "CTYPE1",   "%s",  1, "RA---TAN");
+    gfits_modify (&header, "CTYPE2",   "%s",  1, "DEC--TAN");
   }    
-  fits_modify (&header, "CDELT1",   "%le", 1, Target[0].coords.cdelt1); 
-  fits_modify (&header, "CDELT2",   "%le", 1, Target[0].coords.cdelt2);
-  fits_modify (&header, "CRVAL1",   "%lf", 1, Target[0].coords.crval1);
-  fits_modify (&header, "CRVAL2",   "%lf", 1, Target[0].coords.crval2);  
-  fits_modify (&header, "CRPIX1",   "%lf", 1, Target[0].coords.crpix1);
-  fits_modify (&header, "CRPIX2",   "%lf", 1, Target[0].coords.crpix2);
-  fits_modify (&header, "PC001001", "%le", 1, Target[0].coords.pc1_1);
-  fits_modify (&header, "PC001002", "%le", 1, Target[0].coords.pc1_2);
-  fits_modify (&header, "PC002001", "%le", 1, Target[0].coords.pc2_1);
-  fits_modify (&header, "PC002002", "%le", 1, Target[0].coords.pc2_2);
-  fits_modify (&header, "NPLYTERM", "%d", 1, Target[0].coords.Npolyterms);
+  gfits_modify (&header, "CDELT1",   "%le", 1, Target[0].coords.cdelt1); 
+  gfits_modify (&header, "CDELT2",   "%le", 1, Target[0].coords.cdelt2);
+  gfits_modify (&header, "CRVAL1",   "%lf", 1, Target[0].coords.crval1);
+  gfits_modify (&header, "CRVAL2",   "%lf", 1, Target[0].coords.crval2);  
+  gfits_modify (&header, "CRPIX1",   "%lf", 1, Target[0].coords.crpix1);
+  gfits_modify (&header, "CRPIX2",   "%lf", 1, Target[0].coords.crpix2);
+  gfits_modify (&header, "PC001001", "%le", 1, Target[0].coords.pc1_1);
+  gfits_modify (&header, "PC001002", "%le", 1, Target[0].coords.pc1_2);
+  gfits_modify (&header, "PC002001", "%le", 1, Target[0].coords.pc2_1);
+  gfits_modify (&header, "PC002002", "%le", 1, Target[0].coords.pc2_2);
+  gfits_modify (&header, "NPLYTERM", "%d", 1, Target[0].coords.Npolyterms);
   if (Target[0].coords.Npolyterms > 1) {
     /* RA Terms */
-    fits_modify (&header, "PCA1X2Y0", "%le", 1, Target[0].coords.polyterms[0][0]);   /* polyterms[0]); */
-    fits_modify (&header, "PCA1X1Y1", "%le", 1, Target[0].coords.polyterms[1][0]);   /* polyterms[1]); */
-    fits_modify (&header, "PCA1X0Y2", "%le", 1, Target[0].coords.polyterms[2][0]);   /* polyterms[2]); */
+    gfits_modify (&header, "PCA1X2Y0", "%le", 1, Target[0].coords.polyterms[0][0]);   /* polyterms[0]); */
+    gfits_modify (&header, "PCA1X1Y1", "%le", 1, Target[0].coords.polyterms[1][0]);   /* polyterms[1]); */
+    gfits_modify (&header, "PCA1X0Y2", "%le", 1, Target[0].coords.polyterms[2][0]);   /* polyterms[2]); */
 
     if (Target[0].coords.Npolyterms > 2) {
-      fits_modify (&header, "PCA1X3Y0", "%le", 1, Target[0].coords.polyterms[3][0]);   /* polyterms[3]); */
-      fits_modify (&header, "PCA1X2Y1", "%le", 1, Target[0].coords.polyterms[4][0]);   /* polyterms[4]); */
-      fits_modify (&header, "PCA1X1Y2", "%le", 1, Target[0].coords.polyterms[5][0]);   /* polyterms[5]); */
-      fits_modify (&header, "PCA1X0Y3", "%le", 1, Target[0].coords.polyterms[6][0]);   /* polyterms[6]); */
+      gfits_modify (&header, "PCA1X3Y0", "%le", 1, Target[0].coords.polyterms[3][0]);   /* polyterms[3]); */
+      gfits_modify (&header, "PCA1X2Y1", "%le", 1, Target[0].coords.polyterms[4][0]);   /* polyterms[4]); */
+      gfits_modify (&header, "PCA1X1Y2", "%le", 1, Target[0].coords.polyterms[5][0]);   /* polyterms[5]); */
+      gfits_modify (&header, "PCA1X0Y3", "%le", 1, Target[0].coords.polyterms[6][0]);   /* polyterms[6]); */
     }
     /* Dec Terms */
-    fits_modify (&header, "PCA2X2Y0", "%le", 1, Target[0].coords.polyterms[0][1]);   /* polyterms[7]); */
-    fits_modify (&header, "PCA2X1Y1", "%le", 1, Target[0].coords.polyterms[1][1]);   /* polyterms[8]); */
-    fits_modify (&header, "PCA2X0Y2", "%le", 1, Target[0].coords.polyterms[2][1]);   /* polyterms[9]); */
+    gfits_modify (&header, "PCA2X2Y0", "%le", 1, Target[0].coords.polyterms[0][1]);   /* polyterms[7]); */
+    gfits_modify (&header, "PCA2X1Y1", "%le", 1, Target[0].coords.polyterms[1][1]);   /* polyterms[8]); */
+    gfits_modify (&header, "PCA2X0Y2", "%le", 1, Target[0].coords.polyterms[2][1]);   /* polyterms[9]); */
 
     if (Target[0].coords.Npolyterms > 2) {
-      fits_modify (&header, "PCA2X3Y0", "%le", 1, Target[0].coords.polyterms[3][1]);   /* polyterms[10]); */
-      fits_modify (&header, "PCA2X2Y1", "%le", 1, Target[0].coords.polyterms[4][1]);   /* polyterms[11]); */
-      fits_modify (&header, "PCA2X1Y2", "%le", 1, Target[0].coords.polyterms[5][1]);   /* polyterms[12]); */
-      fits_modify (&header, "PCA2X0Y3", "%le", 1, Target[0].coords.polyterms[6][1]);   /* polyterms[13]); */
+      gfits_modify (&header, "PCA2X3Y0", "%le", 1, Target[0].coords.polyterms[3][1]);   /* polyterms[10]); */
+      gfits_modify (&header, "PCA2X2Y1", "%le", 1, Target[0].coords.polyterms[4][1]);   /* polyterms[11]); */
+      gfits_modify (&header, "PCA2X1Y2", "%le", 1, Target[0].coords.polyterms[5][1]);   /* polyterms[12]); */
+      gfits_modify (&header, "PCA2X0Y3", "%le", 1, Target[0].coords.polyterms[6][1]);   /* polyterms[13]); */
     }
   }
 
   dR = fabs (Target[0].answer.dR*Target[0].coords.cdelt1*3600.0);
-  fits_modify (&header, "CERROR", "%lf", 1, dR);
-  fits_modify (&header, "CERROR", "%C", 1, "scatter in astrometry soln (arcsec)");
-  fits_modify (&header, "CPRECISE", "%lf", 1, dR / sqrt(1.0*Target[0].answer.N));
-  fits_modify (&header, "CPRECISE", "%C", 1, "precision of astrometry soln (arcsec)");
-  fits_modify (&header, "EQUINOX", "%lf", 1, 2000.0);
+  gfits_modify (&header, "CERROR", "%lf", 1, dR);
+  gfits_modify (&header, "CERROR", "%C", 1, "scatter in astrometry soln (arcsec)");
+  gfits_modify (&header, "CPRECISE", "%lf", 1, dR / sqrt(1.0*Target[0].answer.N));
+  gfits_modify (&header, "CPRECISE", "%C", 1, "precision of astrometry soln (arcsec)");
+  gfits_modify (&header, "EQUINOX", "%lf", 1, 2000.0);
   /* we force equinox to be 2000.0 for all images */
 
Index: /trunk/Ohana/src/gastro2/src/gstars2.c
===================================================================
--- /trunk/Ohana/src/gastro2/src/gstars2.c	(revision 7079)
+++ /trunk/Ohana/src/gastro2/src/gstars2.c	(revision 7080)
@@ -16,5 +16,5 @@
     exit (1);
   }
-  if (!fits_fread_header (f, &Target[0].header)) {
+  if (!gfits_fread_header (f, &Target[0].header)) {
     fprintf (stderr, "ERROR: can't read image header\n");
     exit (1);
@@ -43,10 +43,10 @@
       Header header;
 
-      if (!fits_read_header (HEADER, &header)) {
+      if (!gfits_read_header (HEADER, &header)) {
 	fprintf (stderr, "ERROR: can't load external header\n");
 	exit (1);
       }
       FoundAstrom = GetCoords (&Target[0].coords, &header);
-      fits_free_header (&header);
+      gfits_free_header (&header);
     }
     if (!FoundAstrom) {
@@ -71,8 +71,8 @@
     /* get RA & DEC from header */
     FoundAstrom = TRUE;
-    FoundAstrom &= fits_scan (&Target[0].header, "RA", "%s", 1, line);
+    FoundAstrom &= gfits_scan (&Target[0].header, "RA", "%s", 1, line);
     dms_to_ddd (&Target[0].coords.crval1, line);
     Target[0].coords.crval1 = Target[0].coords.crval1 * 15.0;
-    FoundAstrom &= fits_scan (&Target[0].header, "DEC", "%s", 1, line);
+    FoundAstrom &= gfits_scan (&Target[0].header, "DEC", "%s", 1, line);
     dms_to_ddd (&Target[0].coords.crval2, line);
   }
@@ -125,12 +125,12 @@
   /* read from FITS table or from text table */
   extend = FALSE;
-  fits_scan (&Target[0].header, "EXTEND",  "%t", 1, &extend);
+  gfits_scan (&Target[0].header, "EXTEND",  "%t", 1, &extend);
   if (extend) {
-    Nskip = fits_matrix_size (&Target[0].header);
+    Nskip = gfits_matrix_size (&Target[0].header);
     fseek (f, Nskip, SEEK_CUR); 
     stars = rfits (f, &Nstars);
   } else {
     /* allocate space for stars */
-    if (!fits_scan (&Target[0].header, "NSTARS", "%d", 1, &Nstars)) {
+    if (!gfits_scan (&Target[0].header, "NSTARS", "%d", 1, &Nstars)) {
       fprintf (stderr, "ERROR: failed to find NSTARS\n");
       exit (1);
Index: /trunk/Ohana/src/gastro2/src/rfits.c
===================================================================
--- /trunk/Ohana/src/gastro2/src/rfits.c	(revision 7079)
+++ /trunk/Ohana/src/gastro2/src/rfits.c	(revision 7080)
@@ -11,7 +11,7 @@
   /* init & load in table data */
   table.header   = &theader;
-  if (!fits_fread_ftable (f, &table, "SMPFILE")) goto escape;
+  if (!gfits_fread_ftable (f, &table, "SMPFILE")) goto escape;
 
-  stars = fits_table_get_SMPData (&table, &Nstars, NULL);
+  stars = gfits_table_get_SMPData (&table, &Nstars, NULL);
 
   ALLOCATE (stardata, StarData, Nstars);
Index: /trunk/Ohana/src/getstar/src/Shutdown.c
===================================================================
--- /trunk/Ohana/src/getstar/src/Shutdown.c	(revision 7079)
+++ /trunk/Ohana/src/getstar/src/Shutdown.c	(revision 7080)
@@ -22,5 +22,5 @@
 
   SetProtect (TRUE);
-  fits_db_close (db);
+  gfits_db_close (db);
   fprintf (stderr, "ERROR: getstar halted\n");
   exit (1);
Index: /trunk/Ohana/src/getstar/src/mkcatalog.c
===================================================================
--- /trunk/Ohana/src/getstar/src/mkcatalog.c	(revision 7079)
+++ /trunk/Ohana/src/getstar/src/mkcatalog.c	(revision 7080)
@@ -33,5 +33,5 @@
   }
 
-  fits_init_header (&catalog[0].header);
+  gfits_init_header (&catalog[0].header);
 
   if (catalog[0].catmode == DVO_MODE_RAW) {
@@ -43,5 +43,5 @@
   }
 
-  fits_create_header (&catalog[0].header);
+  gfits_create_header (&catalog[0].header);
   
   if (catalog[0].catmode == DVO_MODE_SPLIT) {
@@ -52,6 +52,6 @@
     /* define measure catalog file */
     ALLOCATE (catalog[0].measure_catalog, Catalog, 1);
-    fits_init_header (&catalog[0].measure_catalog[0].header);
-    fits_create_header (&catalog[0].measure_catalog[0].header);
+    gfits_init_header (&catalog[0].measure_catalog[0].header);
+    gfits_create_header (&catalog[0].measure_catalog[0].header);
     ALLOCATE (catalog[0].measure_catalog[0].filename, char, length);
     sprintf (catalog[0].measure_catalog[0].filename, "%s/%s.cpm", path, root);
@@ -62,11 +62,11 @@
     }
     file = filebasename (catalog[0].measure_catalog[0].filename);
-    fits_modify (&catalog[0].header, "MEASURE", "%s", 1, file);
+    gfits_modify (&catalog[0].header, "MEASURE", "%s", 1, file);
     free (file);
 
     /* define missing catalog file */
     ALLOCATE (catalog[0].missing_catalog, Catalog, 1);
-    fits_init_header (&catalog[0].missing_catalog[0].header);
-    fits_create_header (&catalog[0].missing_catalog[0].header);
+    gfits_init_header (&catalog[0].missing_catalog[0].header);
+    gfits_create_header (&catalog[0].missing_catalog[0].header);
     ALLOCATE (catalog[0].missing_catalog[0].filename, char, length);
     sprintf (catalog[0].missing_catalog[0].filename, "%s/%s.cpn", path, root);
@@ -76,11 +76,11 @@
     }
     file = filebasename (catalog[0].missing_catalog[0].filename);
-    fits_modify (&catalog[0].header, "MISSING", "%s", 1, file);
+    gfits_modify (&catalog[0].header, "MISSING", "%s", 1, file);
     free (file);
 
     /* define secfilt catalog file */
     ALLOCATE (catalog[0].secfilt_catalog, Catalog, 1);
-    fits_init_header (&catalog[0].secfilt_catalog[0].header);
-    fits_create_header (&catalog[0].secfilt_catalog[0].header);
+    gfits_init_header (&catalog[0].secfilt_catalog[0].header);
+    gfits_create_header (&catalog[0].secfilt_catalog[0].header);
     ALLOCATE (catalog[0].secfilt_catalog[0].filename, char, length);
     sprintf (catalog[0].secfilt_catalog[0].filename, "%s/%s.cps", path, root);
@@ -90,5 +90,5 @@
     }
     file = filebasename (catalog[0].secfilt_catalog[0].filename);
-    fits_modify (&catalog[0].header, "SECFILT", "%s", 1, file);
+    gfits_modify (&catalog[0].header, "SECFILT", "%s", 1, file);
     free (file);
     free (path);
@@ -109,13 +109,13 @@
 
   /* write RA,DEC range in header */
-  fits_modify (&catalog[0].header, "RA0",  "%lf", 1, Rmin);
-  fits_modify (&catalog[0].header, "DEC0", "%lf", 1, Dmin);
-  fits_modify (&catalog[0].header, "RA1",  "%lf", 1, Rmax);
-  fits_modify (&catalog[0].header, "DEC1", "%lf", 1, Dmax);
+  gfits_modify (&catalog[0].header, "RA0",  "%lf", 1, Rmin);
+  gfits_modify (&catalog[0].header, "DEC0", "%lf", 1, Dmin);
+  gfits_modify (&catalog[0].header, "RA1",  "%lf", 1, Rmax);
+  gfits_modify (&catalog[0].header, "DEC1", "%lf", 1, Dmax);
 
   /* write creation date in header */
   str_to_time ("now", &now);
   line = sec_to_date (now);
-  fits_modify (&catalog[0].header, "DATE", "%s", 1, line);
+  gfits_modify (&catalog[0].header, "DATE", "%s", 1, line);
   free (line);
 }
Index: /trunk/Ohana/src/gophot/src/dophot.c
===================================================================
--- /trunk/Ohana/src/gophot/src/dophot.c	(revision 7079)
+++ /trunk/Ohana/src/gophot/src/dophot.c	(revision 7080)
@@ -31,6 +31,6 @@
 	   (now.tv_sec - then.tv_sec) + 1e-6*(now.tv_usec - then.tv_usec));
 
-  fits_write_header ("test.sub", &header);
-  fits_write_matrix ("test.sub", &matrix);
+  gfits_write_header ("test.sub", &header);
+  gfits_write_matrix ("test.sub", &matrix);
   exit (0);
   */
@@ -68,6 +68,6 @@
 
 # if (0)
-    fits_write_header ("test.sub", &header);
-    fits_write_matrix ("test.sub", &matrix);
+    gfits_write_header ("test.sub", &header);
+    gfits_write_matrix ("test.sub", &matrix);
 
     completeout (nstot);
@@ -85,6 +85,6 @@
 	   
     /* 
-    fits_write_header ("test.sub", &header);
-    fits_write_matrix ("test.sub", &matrix);
+    gfits_write_header ("test.sub", &header);
+    gfits_write_matrix ("test.sub", &matrix);
     completeout (nstot);
     fprintf (stderr, "type return to continue:  ");
Index: /trunk/Ohana/src/gophot/src/gophot.c
===================================================================
--- /trunk/Ohana/src/gophot/src/gophot.c	(revision 7079)
+++ /trunk/Ohana/src/gophot/src/gophot.c	(revision 7080)
@@ -17,14 +17,14 @@
 
   /* load image header and data */
-  if (!fits_read_header (argv[1], &header)) {
+  if (!gfits_read_header (argv[1], &header)) {
     fprintf (stderr, "ERROR: can't open FITS header %s\n", argv[1]);
     exit (1);
   }
-  if (!fits_read_matrix (argv[1], &matrix)) {
+  if (!gfits_read_matrix (argv[1], &matrix)) {
     fprintf (stderr, "ERROR: can't open FITS matrix %s\n", argv[1]);
     exit (1);
   }
   /* convert to float, set up noise array and axes */
-  fits_convert_format (&header, &matrix, -32, 1.0, 0.0, 0);
+  gfits_convert_format (&header, &matrix, -32, 1.0, 0.0, 0);
   ALLOCATE (noise, float, matrix.size);
   big = (float *) matrix.buffer;
@@ -33,7 +33,7 @@
  
   /* override config values with header values */ 
-  if (fits_scan (&header, "SATVALUE", "%f", 1, &tmp)) itop = tmp;
-  if (fits_scan (&header, "GAIN", "%f", 1, &tmp)) eperdn = tmp;
-  if (fits_scan (&header, "NEWGAIN", "%f", 1, &tmp)) eperdn = tmp;
+  if (gfits_scan (&header, "SATVALUE", "%f", 1, &tmp)) itop = tmp;
+  if (gfits_scan (&header, "GAIN", "%f", 1, &tmp)) eperdn = tmp;
+  if (gfits_scan (&header, "NEWGAIN", "%f", 1, &tmp)) eperdn = tmp;
 
   /* we are scaling the image to electrons, must also scale parameters */
Index: /trunk/Ohana/src/imclean/doc/ChangeLog.txt
===================================================================
--- /trunk/Ohana/src/imclean/doc/ChangeLog.txt	(revision 7079)
+++ /trunk/Ohana/src/imclean/doc/ChangeLog.txt	(revision 7080)
@@ -1,2 +1,5 @@
+
+- imclean-1-3: 
+  * converted to gfits APIs (forces libfits 1.6)
 
 2005.10.20: imclean-1-2
Index: /trunk/Ohana/src/imclean/src/AdjustHeader.c
===================================================================
--- /trunk/Ohana/src/imclean/src/AdjustHeader.c	(revision 7079)
+++ /trunk/Ohana/src/imclean/src/AdjustHeader.c	(revision 7080)
@@ -11,7 +11,7 @@
       if (!strcmp (KEYFMT[i], "%f")) {
 	value = atof (KEYVALU[i]);
-	fits_modify (header, KEYWORD[i], "%le", 1, value);
+	gfits_modify (header, KEYWORD[i], "%le", 1, value);
       } else {
-	fits_modify (header, KEYWORD[i], "%s", 1, KEYVALU[i]);
+	gfits_modify (header, KEYWORD[i], "%s", 1, KEYVALU[i]);
       }
     }
@@ -30,5 +30,5 @@
       exit (1);
     }
-    fits_modify (header, "PHOTCODE", "%s", 1, PHOTCODE);
+    gfits_modify (header, "PHOTCODE", "%s", 1, PHOTCODE);
   }    
 
@@ -41,10 +41,10 @@
     rs = 3600 * (RA - rh - rm / 60.0);
     sprintf (line, "%02d:%02d:%05.2f", rh, rm, rs);
-    fits_modify (header, "RA", "%s", 1, line);
+    gfits_modify (header, "RA", "%s", 1, line);
     dd = DEC;
     dm = 60.0 * (DEC - dd);
     ds = 3600 * (DEC - dd - dm / 60.0);
     sprintf (line, "%02d:%02d:%05.2f", dd, dm, ds);
-    fits_modify (header, "DEC", "%s", 1, line);
+    gfits_modify (header, "DEC", "%s", 1, line);
   }
  
@@ -54,5 +54,5 @@
     Coords coords;
 
-    if (!fits_read_header (AstromFile, &astrom_header)) {
+    if (!gfits_read_header (AstromFile, &astrom_header)) {
       fprintf (stderr, "ERROR: can't get astrometry from %s\n", AstromFile);
       exit (1);
@@ -64,45 +64,45 @@
     /*** use PutCoords to update header ***/
     if (coords.Npolyterms > 1) {
-      fits_modify (header, "CTYPE1",   "%s",  1, "RA---PLY");
-      fits_modify (header, "CTYPE2",   "%s",  1, "DEC--PLY");
+      gfits_modify (header, "CTYPE1",   "%s",  1, "RA---PLY");
+      gfits_modify (header, "CTYPE2",   "%s",  1, "DEC--PLY");
     } else {
-      fits_modify (header, "CTYPE1",   "%s",  1, "RA---TAN");
-      fits_modify (header, "CTYPE2",   "%s",  1, "DEC--TAN");
+      gfits_modify (header, "CTYPE1",   "%s",  1, "RA---TAN");
+      gfits_modify (header, "CTYPE2",   "%s",  1, "DEC--TAN");
     }    
-    fits_modify (header, "NASTRO",   "%d", 1, 1); 
+    gfits_modify (header, "NASTRO",   "%d", 1, 1); 
 
-    fits_modify (header, "CDELT1",   "%le", 1, coords.cdelt1); 
-    fits_modify (header, "CDELT2",   "%le", 1, coords.cdelt2);
-    fits_modify (header, "CRVAL1",   "%lf", 1, coords.crval1);
-    fits_modify (header, "CRVAL2",   "%lf", 1, coords.crval2);  
-    fits_modify (header, "CRPIX1",   "%lf", 1, coords.crpix1);
-    fits_modify (header, "CRPIX2",   "%lf", 1, coords.crpix2);
-    fits_modify (header, "PC001001", "%le", 1, coords.pc1_1);
-    fits_modify (header, "PC001002", "%le", 1, coords.pc1_2);
-    fits_modify (header, "PC002001", "%le", 1, coords.pc2_1);
-    fits_modify (header, "PC002002", "%le", 1, coords.pc2_2);
-    fits_modify (header, "NPLYTERM", "%d", 1, coords.Npolyterms);
+    gfits_modify (header, "CDELT1",   "%le", 1, coords.cdelt1); 
+    gfits_modify (header, "CDELT2",   "%le", 1, coords.cdelt2);
+    gfits_modify (header, "CRVAL1",   "%lf", 1, coords.crval1);
+    gfits_modify (header, "CRVAL2",   "%lf", 1, coords.crval2);  
+    gfits_modify (header, "CRPIX1",   "%lf", 1, coords.crpix1);
+    gfits_modify (header, "CRPIX2",   "%lf", 1, coords.crpix2);
+    gfits_modify (header, "PC001001", "%le", 1, coords.pc1_1);
+    gfits_modify (header, "PC001002", "%le", 1, coords.pc1_2);
+    gfits_modify (header, "PC002001", "%le", 1, coords.pc2_1);
+    gfits_modify (header, "PC002002", "%le", 1, coords.pc2_2);
+    gfits_modify (header, "NPLYTERM", "%d", 1, coords.Npolyterms);
     if (coords.Npolyterms > 1) {
       /* RA Terms */
-      fits_modify (header, "PCA1X2Y0", "%le", 1, coords.polyterms[0][0]);   /* polyterms[0]); */
-      fits_modify (header, "PCA1X1Y1", "%le", 1, coords.polyterms[1][0]);   /* polyterms[1]); */
-      fits_modify (header, "PCA1X0Y2", "%le", 1, coords.polyterms[2][0]);   /* polyterms[2]); */
+      gfits_modify (header, "PCA1X2Y0", "%le", 1, coords.polyterms[0][0]);   /* polyterms[0]); */
+      gfits_modify (header, "PCA1X1Y1", "%le", 1, coords.polyterms[1][0]);   /* polyterms[1]); */
+      gfits_modify (header, "PCA1X0Y2", "%le", 1, coords.polyterms[2][0]);   /* polyterms[2]); */
       
       if (coords.Npolyterms > 2) {
-	fits_modify (header, "PCA1X3Y0", "%le", 1, coords.polyterms[3][0]);   /* polyterms[3]); */
-	fits_modify (header, "PCA1X2Y1", "%le", 1, coords.polyterms[4][0]);   /* polyterms[4]); */
-	fits_modify (header, "PCA1X1Y2", "%le", 1, coords.polyterms[5][0]);   /* polyterms[5]); */
-	fits_modify (header, "PCA1X0Y3", "%le", 1, coords.polyterms[6][0]);   /* polyterms[6]); */
+	gfits_modify (header, "PCA1X3Y0", "%le", 1, coords.polyterms[3][0]);   /* polyterms[3]); */
+	gfits_modify (header, "PCA1X2Y1", "%le", 1, coords.polyterms[4][0]);   /* polyterms[4]); */
+	gfits_modify (header, "PCA1X1Y2", "%le", 1, coords.polyterms[5][0]);   /* polyterms[5]); */
+	gfits_modify (header, "PCA1X0Y3", "%le", 1, coords.polyterms[6][0]);   /* polyterms[6]); */
       }
       /* Dec Terms */
-      fits_modify (header, "PCA2X2Y0", "%le", 1, coords.polyterms[0][1]);   /* polyterms[7]); */
-      fits_modify (header, "PCA2X1Y1", "%le", 1, coords.polyterms[1][1]);   /* polyterms[8]); */
-      fits_modify (header, "PCA2X0Y2", "%le", 1, coords.polyterms[2][1]);   /* polyterms[9]); */
+      gfits_modify (header, "PCA2X2Y0", "%le", 1, coords.polyterms[0][1]);   /* polyterms[7]); */
+      gfits_modify (header, "PCA2X1Y1", "%le", 1, coords.polyterms[1][1]);   /* polyterms[8]); */
+      gfits_modify (header, "PCA2X0Y2", "%le", 1, coords.polyterms[2][1]);   /* polyterms[9]); */
       
       if (coords.Npolyterms > 2) {
-	fits_modify (header, "PCA2X3Y0", "%le", 1, coords.polyterms[3][1]);   /* polyterms[10]); */
-	fits_modify (header, "PCA2X2Y1", "%le", 1, coords.polyterms[4][1]);   /* polyterms[11]); */
-	fits_modify (header, "PCA2X1Y2", "%le", 1, coords.polyterms[5][1]);   /* polyterms[12]); */
-	fits_modify (header, "PCA2X0Y3", "%le", 1, coords.polyterms[6][1]);   /* polyterms[13]); */
+	gfits_modify (header, "PCA2X3Y0", "%le", 1, coords.polyterms[3][1]);   /* polyterms[10]); */
+	gfits_modify (header, "PCA2X2Y1", "%le", 1, coords.polyterms[4][1]);   /* polyterms[11]); */
+	gfits_modify (header, "PCA2X1Y2", "%le", 1, coords.polyterms[5][1]);   /* polyterms[12]); */
+	gfits_modify (header, "PCA2X0Y3", "%le", 1, coords.polyterms[6][1]);   /* polyterms[13]); */
       }
     }
Index: /trunk/Ohana/src/imclean/src/LoadStarsChad.c
===================================================================
--- /trunk/Ohana/src/imclean/src/LoadStarsChad.c	(revision 7079)
+++ /trunk/Ohana/src/imclean/src/LoadStarsChad.c	(revision 7080)
@@ -116,14 +116,14 @@
   }
   
-  fits_modify (header, "ZERO_PT", "%lf", 1, ZERO_POINT);
-  fits_modify (header, "FWHM_X", "%lf", 1, FWHMx);
-  fits_modify (header, "FWHM_Y", "%lf", 1, FWHMy);
-  fits_modify (header, "ANGLE", "%lf", 1, angle);
-  fits_modify (header, "FSATUR", "%lf", 1, (saturate + ZERO_POINT));
-  fits_modify (header, "FLIMIT", "%lf", 1, (complete + ZERO_POINT));
-  fits_modify (header, "NSTARS", "%d", 1, N);
+  gfits_modify (header, "ZERO_PT", "%lf", 1, ZERO_POINT);
+  gfits_modify (header, "FWHM_X", "%lf", 1, FWHMx);
+  gfits_modify (header, "FWHM_Y", "%lf", 1, FWHMy);
+  gfits_modify (header, "ANGLE", "%lf", 1, angle);
+  gfits_modify (header, "FSATUR", "%lf", 1, (saturate + ZERO_POINT));
+  gfits_modify (header, "FLIMIT", "%lf", 1, (complete + ZERO_POINT));
+  gfits_modify (header, "NSTARS", "%d", 1, N);
   for (i = 1; i <= 9; i++) {
     sprintf (line, "TDOPHOT%1d", i);
-    fits_modify (header, line, "%d", 1, 0);
+    gfits_modify (header, line, "%d", 1, 0);
   }
 
Index: /trunk/Ohana/src/imclean/src/LoadStarsDophot.c
===================================================================
--- /trunk/Ohana/src/imclean/src/LoadStarsDophot.c	(revision 7079)
+++ /trunk/Ohana/src/imclean/src/LoadStarsDophot.c	(revision 7080)
@@ -155,15 +155,15 @@
   }    
 
-  fits_modify (header, "ZERO_PT", "%lf", 1, ZERO_POINT);
-  fits_modify (header, "FWHM_X", "%lf", 1, FWHMx);
-  fits_modify (header, "FWHM_Y", "%lf", 1, FWHMy);
-  fits_modify (header, "ANGLE", "%lf", 1, angle);
-  fits_modify (header, "FSATUR", "%lf", 1, saturate);
-  fits_modify (header, "FLIMIT", "%lf", 1, complete);
-  fits_modify (header, "APMIFIT", "%lf", 1, SMedHist);
-  fits_modify (header, "NSTARS", "%d", 1, N);
+  gfits_modify (header, "ZERO_PT", "%lf", 1, ZERO_POINT);
+  gfits_modify (header, "FWHM_X", "%lf", 1, FWHMx);
+  gfits_modify (header, "FWHM_Y", "%lf", 1, FWHMy);
+  gfits_modify (header, "ANGLE", "%lf", 1, angle);
+  gfits_modify (header, "FSATUR", "%lf", 1, saturate);
+  gfits_modify (header, "FLIMIT", "%lf", 1, complete);
+  gfits_modify (header, "APMIFIT", "%lf", 1, SMedHist);
+  gfits_modify (header, "NSTARS", "%d", 1, N);
   for (i = 1; i <= 9; i++) {
     sprintf (line, "TDOPHOT%1d", i);
-    fits_modify (header, line, "%d", 1, n[i]);
+    gfits_modify (header, line, "%d", 1, n[i]);
   }
 
Index: /trunk/Ohana/src/imclean/src/LoadStarsSex.c
===================================================================
--- /trunk/Ohana/src/imclean/src/LoadStarsSex.c	(revision 7079)
+++ /trunk/Ohana/src/imclean/src/LoadStarsSex.c	(revision 7080)
@@ -129,11 +129,11 @@
   }
   
-  fits_modify (header, "ZERO_PT", "%lf", 1, ZERO_POINT);
-  fits_modify (header, "FWHM_X", "%lf", 1, FWHMx);
-  fits_modify (header, "FWHM_Y", "%lf", 1, FWHMy);
-  fits_modify (header, "ANGLE", "%lf", 1, angle);
-  fits_modify (header, "FSATUR", "%lf", 1, saturate);
-  fits_modify (header, "FLIMIT", "%lf", 1, complete);
-  fits_modify (header, "NSTARS", "%d", 1, N);
+  gfits_modify (header, "ZERO_PT", "%lf", 1, ZERO_POINT);
+  gfits_modify (header, "FWHM_X", "%lf", 1, FWHMx);
+  gfits_modify (header, "FWHM_Y", "%lf", 1, FWHMy);
+  gfits_modify (header, "ANGLE", "%lf", 1, angle);
+  gfits_modify (header, "FSATUR", "%lf", 1, saturate);
+  gfits_modify (header, "FLIMIT", "%lf", 1, complete);
+  gfits_modify (header, "NSTARS", "%d", 1, N);
 
   *nstars = Nstars;
Index: /trunk/Ohana/src/imclean/src/find_line.c
===================================================================
--- /trunk/Ohana/src/imclean/src/find_line.c	(revision 7079)
+++ /trunk/Ohana/src/imclean/src/find_line.c	(revision 7080)
@@ -159,5 +159,5 @@
   }
 
-  fits_modify (header, "NSTARS", "%d", 1, Ngood);
+  gfits_modify (header, "NSTARS", "%d", 1, Ngood);
   
 }
Index: /trunk/Ohana/src/imclean/src/imclean.c
===================================================================
--- /trunk/Ohana/src/imclean/src/imclean.c	(revision 7079)
+++ /trunk/Ohana/src/imclean/src/imclean.c	(revision 7080)
@@ -12,5 +12,5 @@
 
   /* load in FITS header from image */
-  if (!fits_read_header (argv[1], &header)) {
+  if (!gfits_read_header (argv[1], &header)) {
     fprintf (stderr, "ERROR: can't find image file %s\n", argv[1]);
     exit (1);
Index: /trunk/Ohana/src/imclean/src/star_stats.c
===================================================================
--- /trunk/Ohana/src/imclean/src/star_stats.c	(revision 7079)
+++ /trunk/Ohana/src/imclean/src/star_stats.c	(revision 7080)
@@ -62,15 +62,15 @@
   }
   
-  fits_modify (&header, "ZERO_PT", "%lf", 1, ZERO_POINT);
-  fits_modify (&header, "FWHM_X", "%lf", 1, FWHMx);
-  fits_modify (&header, "FWHM_Y", "%lf", 1, FWHMy);
-  fits_modify (&header, "ANGLE", "%lf", 1, angle);
-  fits_modify (&header, "APMIFIT", "%lf", 1, Ap);
-  fits_modify (&header, "dAPMIFIT", "%lf", 1, Ap2);
-  fits_modify (&header, "FSATUR", "%lf", 1, (saturate + ZERO_POINT));
-  fits_modify (&header, "FLIMIT", "%lf", 1, (complete + ZERO_POINT));
-  fits_modify (&header, "NSTARS", "%d", 1, N);
+  gfits_modify (&header, "ZERO_PT", "%lf", 1, ZERO_POINT);
+  gfits_modify (&header, "FWHM_X", "%lf", 1, FWHMx);
+  gfits_modify (&header, "FWHM_Y", "%lf", 1, FWHMy);
+  gfits_modify (&header, "ANGLE", "%lf", 1, angle);
+  gfits_modify (&header, "APMIFIT", "%lf", 1, Ap);
+  gfits_modify (&header, "dAPMIFIT", "%lf", 1, Ap2);
+  gfits_modify (&header, "FSATUR", "%lf", 1, (saturate + ZERO_POINT));
+  gfits_modify (&header, "FLIMIT", "%lf", 1, (complete + ZERO_POINT));
+  gfits_modify (&header, "NSTARS", "%d", 1, N);
   for (i = 1; i <= 9; i++) {
     sprintf (line, "TDOPHOT%1d\0", i);
-    fits_modify (&header, line, "%d", 1, n[i]);
+    gfits_modify (&header, line, "%d", 1, n[i]);
   }
Index: /trunk/Ohana/src/imclean/src/wfits.c
===================================================================
--- /trunk/Ohana/src/imclean/src/wfits.c	(revision 7079)
+++ /trunk/Ohana/src/imclean/src/wfits.c	(revision 7080)
@@ -9,19 +9,19 @@
   header[0].extend = TRUE;
   header[0].Naxes = 0;
-  fits_modify (header, "NAXIS",   "%d", 1, 0);
-  fits_modify (header, "EXTEND",  "%t", 1, TRUE);
-  fits_modify (header, "NEXTEND", "%d", 1, 1);
+  gfits_modify (header, "NAXIS",   "%d", 1, 0);
+  gfits_modify (header, "EXTEND",  "%t", 1, TRUE);
+  gfits_modify (header, "NEXTEND", "%d", 1, 1);
 
   /* add in some keywords to specify the datatype & software version? */
 
   /* create (empty) data matrix */
-  fits_create_matrix (header, &matrix);
+  gfits_create_matrix (header, &matrix);
     
   table.header = &theader;
-  fits_table_set_SMPData (&table, stars, Nstars);
+  gfits_table_set_SMPData (&table, stars, Nstars);
 
-  fits_write_header  (filename, header);
-  fits_write_matrix  (filename, &matrix);
-  fits_write_Theader (filename, &theader);
-  fits_write_table   (filename, &table);
+  gfits_write_header  (filename, header);
+  gfits_write_matrix  (filename, &matrix);
+  gfits_write_Theader (filename, &theader);
+  gfits_write_table   (filename, &table);
 }
Index: /trunk/Ohana/src/imregister/base/ConfigCamera.c
===================================================================
--- /trunk/Ohana/src/imregister/base/ConfigCamera.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/base/ConfigCamera.c	(revision 7080)
@@ -38,5 +38,5 @@
   ID[0] = 0;
   
-  fits_scan (header, CCDnumKeyword,  "%s", 1, ID);
+  gfits_scan (header, CCDnumKeyword,  "%s", 1, ID);
   if (!ID[0]) { 
     fprintf (stderr, "warning, ccd id not found in header\n");
Index: /trunk/Ohana/src/imregister/base/fits_scan_nchar.c
===================================================================
--- /trunk/Ohana/src/imregister/base/fits_scan_nchar.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/base/fits_scan_nchar.c	(revision 7080)
@@ -3,5 +3,5 @@
 /* scan and give a warning for missing entries */
 void warn_scan (Header *header, char *field, char *format, int N, void *var) {
-  if (!fits_scan (header, field, format, N, var)) {
+  if (!gfits_scan (header, field, format, N, var)) {
     fprintf (stderr, "WARNING: %s not found in header\n", field);
   }
@@ -9,5 +9,5 @@
 
 /* scan from header into a string of fixed length */
-int fits_scan_nchar (Header *header, int size, char *field, int N,...) {
+int gfits_scan_nchar (Header *header, int size, char *field, int N,...) {
 
   char tmpstr[160], *outstr; 
@@ -19,5 +19,5 @@
   va_end (argp);
 
-  status = fits_scan (header, field, "%s", N, tmpstr); 
+  status = gfits_scan (header, field, "%s", N, tmpstr); 
   strncpy (outstr, tmpstr, size - 1);
   outstr[size-1] = 0; 
@@ -27,5 +27,5 @@
      
 void warn_scan_nchar (Header *header, int size, char *field, int N, void *var) {
-  if (!fits_scan_nchar (header, size, field, N, var)) {
+  if (!gfits_scan_nchar (header, size, field, N, var)) {
     fprintf (stderr, "missing %s not found in header\n", field);
   }
Index: /trunk/Ohana/src/imregister/base/version.c
===================================================================
--- /trunk/Ohana/src/imregister/base/version.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/base/version.c	(revision 7080)
@@ -10,5 +10,5 @@
 
   fprintf (stderr, "ohana: %s\n", ohana_version());
-  fprintf (stderr, "fits:  %s\n", fits_version());
+  fprintf (stderr, "fits:  %s\n", gfits_version());
   exit (2);
 
Index: /trunk/Ohana/src/imregister/detrend/altpath.c
===================================================================
--- /trunk/Ohana/src/imregister/detrend/altpath.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/detrend/altpath.c	(revision 7080)
@@ -47,11 +47,11 @@
 
     /** we may later want to pull this out and put it elsewhere **/
-    fits_vtable_from_ftable (&db[0].ftable, &db[0].vtable, list, Nlist);
+    gfits_vtable_from_ftable (&db[0].ftable, &db[0].vtable, list, Nlist);
     for (i = 0; i < Nmatch; i++) {
-      fits_convert_DetReg ((DetReg *) db[0].vtable.buffer[i], sizeof (DetReg), 1);
+      gfits_convert_DetReg ((DetReg *) db[0].vtable.buffer[i], sizeof (DetReg), 1);
     }
-    fits_db_update (db);
-    fits_db_close (db);
-    fits_db_free (db);
+    gfits_db_update (db);
+    gfits_db_close (db);
+    gfits_db_free (db);
 
     fprintf (stderr, "SUCCESS\n");
@@ -84,11 +84,11 @@
 
     /** we may later want to pull this out and put it elsewhere **/
-    fits_vtable_from_ftable (&db[0].ftable, &db[0].vtable, list, Nlist);
+    gfits_vtable_from_ftable (&db[0].ftable, &db[0].vtable, list, Nlist);
     for (i = 0; i < Nmatch; i++) {
-      fits_convert_DetReg ((DetReg *) db[0].vtable.buffer[i], sizeof (DetReg), 1);
+      gfits_convert_DetReg ((DetReg *) db[0].vtable.buffer[i], sizeof (DetReg), 1);
     }
-    fits_db_update (db);
-    fits_db_close (db);
-    fits_db_free (db);
+    gfits_db_update (db);
+    gfits_db_close (db);
+    gfits_db_free (db);
 
     fprintf (stderr, "SUCCESS\n");
@@ -113,11 +113,11 @@
 
     /** we may later want to pull this out and put it elsewhere **/
-    fits_vtable_from_ftable (&db[0].ftable, &db[0].vtable, list, Nlist);
+    gfits_vtable_from_ftable (&db[0].ftable, &db[0].vtable, list, Nlist);
     for (i = 0; i < Nmatch; i++) {
-      fits_convert_DetReg ((DetReg *) db[0].vtable.buffer[i], sizeof (DetReg), 1);
+      gfits_convert_DetReg ((DetReg *) db[0].vtable.buffer[i], sizeof (DetReg), 1);
     }
-    fits_db_update (db);
-    fits_db_close (db);
-    fits_db_free (db);
+    gfits_db_update (db);
+    gfits_db_close (db);
+    gfits_db_free (db);
 
     fprintf (stderr, "SUCCESS\n");
Index: /trunk/Ohana/src/imregister/detrend/delete.c
===================================================================
--- /trunk/Ohana/src/imregister/detrend/delete.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/detrend/delete.c	(revision 7080)
@@ -23,5 +23,5 @@
   if (Ndel == 0) { 
     fprintf (stderr, "SUCCESS\n");
-    fits_db_close (db);
+    gfits_db_close (db);
     exit (0);
   }
@@ -41,8 +41,8 @@
   /** we may later want to pull this out and put it elsewhere **/
   /** free db[0].theader, db[0].table.buffer? **/
-  fits_table_set_DetReg (&db[0].ftable, subset, Nsubset);
-  fits_db_save (db);
-  fits_db_close (db);
-  fits_db_free (db);
+  gfits_table_set_DetReg (&db[0].ftable, subset, Nsubset);
+  gfits_db_save (db);
+  gfits_db_close (db);
+  gfits_db_free (db);
 
   fprintf (stderr, "SUCCESS\n");
Index: /trunk/Ohana/src/imregister/detrend/image.c
===================================================================
--- /trunk/Ohana/src/imregister/detrend/image.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/detrend/image.c	(revision 7080)
@@ -13,5 +13,5 @@
 
   /* load options from the image header */
-  if (!fits_read_header (filename, &header)) {
+  if (!gfits_read_header (filename, &header)) {
     if (output.verbose) fprintf (stderr, "ERROR: trouble reading image header\n");
     exit (1);
@@ -25,5 +25,5 @@
   if (!strcasecmp (ImageMode, "SPLIT")) {
     ALLOCATE (ImageExtend, char, 80);
-    if (!fits_scan (&header, CCDnumKeyword, "%s", 1, ImageExtend)) {
+    if (!gfits_scan (&header, CCDnumKeyword, "%s", 1, ImageExtend)) {
       fprintf (stderr, "ERROR: failure to read %s from header\n", CCDnumKeyword);
       exit (1);
@@ -43,5 +43,5 @@
 
   /* get filter from header */
-  if (!fits_scan (&header, FilterKeyword, "%s", 1, line)) {
+  if (!gfits_scan (&header, FilterKeyword, "%s", 1, line)) {
     fprintf (stderr, "ERROR: trouble reading FILTER from header\n");
     exit (1);
@@ -61,5 +61,5 @@
 
   /* get exptime from header */
-  if (!fits_scan (&header, ExptimeKeyword, "%f", 1, &base.Exptime)) {
+  if (!gfits_scan (&header, ExptimeKeyword, "%f", 1, &base.Exptime)) {
     fprintf (stderr, "ERROR: trouble reading EXPTIME from header\n");
     exit (1);
Index: /trunk/Ohana/src/imregister/detrend/imdef.c
===================================================================
--- /trunk/Ohana/src/imregister/detrend/imdef.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/detrend/imdef.c	(revision 7080)
@@ -9,5 +9,5 @@
 
   /* load remaining options from the image header */
-  if (!fits_read_header (filename, &header)) {
+  if (!gfits_read_header (filename, &header)) {
     fprintf (stderr, "ERROR: trouble reading image header\n");
     exit (1);
@@ -16,5 +16,5 @@
   /* first decide on image TYPE */
   if (descriptor[0].type == T_UNDEF) {
-    if (!fits_scan (&header, ImagetypeKeyword, "%s", 1, line)) {
+    if (!gfits_scan (&header, ImagetypeKeyword, "%s", 1, line)) {
       fprintf (stderr, "ERROR: failure to read %s from header\n", ImagetypeKeyword);
       exit (1);
@@ -43,10 +43,10 @@
   descriptor[0].mode = M_SPLIT;
   Extend = FALSE;
-  fits_scan (&header, "EXTEND", "%t", 1, &Extend);
+  gfits_scan (&header, "EXTEND", "%t", 1, &Extend);
   if (Extend) {
     descriptor[0].mode      = M_MEF;
     descriptor[0].CCD       = Nccd;
     descriptor[0].CCDSelect = TRUE;
-    fits_scan (&header, "NEXTEND",  "%d", 1, &Nextend);
+    gfits_scan (&header, "NEXTEND",  "%d", 1, &Nextend);
     if (Nextend != Nccd) { 
       fprintf (stderr, "warning: NEXTEND != Nccd (%d, %d)\n", Nextend, Nccd);
@@ -66,5 +66,5 @@
 
     descriptor[0].CCD = -1;
-    if (!fits_scan (&header, CCDnumKeyword, "%s", 1, ID)) {
+    if (!gfits_scan (&header, CCDnumKeyword, "%s", 1, ID)) {
       fprintf (stderr, "ERROR: failure to read %s from header\n", CCDnumKeyword);
       exit (1);
@@ -84,5 +84,5 @@
   /* now get time range */
   if (!descriptor[0].TimeSelect) {
-    if (!fits_scan (&header, "TVSTART",   "%s", 1, line)) {
+    if (!gfits_scan (&header, "TVSTART",   "%s", 1, line)) {
       fprintf (stderr, "ERROR: missing start time\n");
       exit (1);
@@ -93,5 +93,5 @@
     }
     
-    if (!fits_scan (&header, "TVSTOP",   "%s", 1, line)) {
+    if (!gfits_scan (&header, "TVSTOP",   "%s", 1, line)) {
       fprintf (stderr, "ERROR: missing stop time\n");
       exit (1);
@@ -108,5 +108,5 @@
   if (descriptor[0].type == T_MASK) goto skip_filter;
   if (descriptor[0].filter != FILTER_NONE) goto skip_filter;
-  if (!fits_scan (&header, FilterKeyword, "%s", 1, line)) {
+  if (!gfits_scan (&header, FilterKeyword, "%s", 1, line)) {
     fprintf (stderr, "ERROR: failure to read %s from header\n", FilterKeyword);
     exit (1);
@@ -129,5 +129,5 @@
   }
   if (!descriptor[0].ExptimeSelect && (descriptor[0].type == T_DARK)) {
-    if (!fits_scan (&header, ExptimeKeyword,  "%f", 1, &descriptor[0].Exptime)) {
+    if (!gfits_scan (&header, ExptimeKeyword,  "%f", 1, &descriptor[0].Exptime)) {
       fprintf (stderr, "ERROR: failure to read %s from header\n", ExptimeKeyword);
       exit (1);
@@ -137,5 +137,5 @@
   /* set the image ID (if not supplied) based on the camera header */
   if (descriptor[0].imageID == NULL) {
-    if (fits_scan (&header, "CRUNID",   "%s", 1, line)) {
+    if (gfits_scan (&header, "CRUNID",   "%s", 1, line)) {
       descriptor[0].imageID = strcreate (line);
     }
Index: /trunk/Ohana/src/imregister/detrend/modify.c
===================================================================
--- /trunk/Ohana/src/imregister/detrend/modify.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/detrend/modify.c	(revision 7080)
@@ -44,11 +44,11 @@
 
   /** we may later want to pull this out and put it elsewhere **/
-  fits_vtable_from_ftable (&db[0].ftable, &db[0].vtable, list, Nmatch);
+  gfits_vtable_from_ftable (&db[0].ftable, &db[0].vtable, list, Nmatch);
   for (i = 0; i < Nmatch; i++) {
-    fits_convert_DetReg ((DetReg *) db[0].vtable.buffer[i], sizeof (DetReg), 1);
+    gfits_convert_DetReg ((DetReg *) db[0].vtable.buffer[i], sizeof (DetReg), 1);
   }
-  fits_db_update (db);
-  fits_db_close (db);
-  fits_db_free (db);
+  gfits_db_update (db);
+  gfits_db_close (db);
+  gfits_db_free (db);
 
   fprintf (stderr, "SUCCESS\n");
Index: /trunk/Ohana/src/imregister/detrend/mosaic.c
===================================================================
--- /trunk/Ohana/src/imregister/detrend/mosaic.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/detrend/mosaic.c	(revision 7080)
@@ -13,5 +13,5 @@
 
   /* load options from the image header */
-  if (!fits_read_header (filename, &header)) {
+  if (!gfits_read_header (filename, &header)) {
     if (output.verbose) fprintf (stderr, "ERROR: trouble reading image header\n");
     exit (1);
@@ -23,5 +23,5 @@
 
   /* get filter from header */
-  if (!fits_scan (&header, FilterKeyword, "%s", 1, line)) {
+  if (!gfits_scan (&header, FilterKeyword, "%s", 1, line)) {
     fprintf (stderr, "ERROR: trouble reading FILTER from header\n");
     exit (1);
@@ -39,5 +39,5 @@
 
   /* get exptime from header */
-  if (!fits_scan (&header, ExptimeKeyword, "%f", 1, &base.Exptime)) {
+  if (!gfits_scan (&header, ExptimeKeyword, "%f", 1, &base.Exptime)) {
     fprintf (stderr, "ERROR: trouble reading EXPTIME from header\n");
     exit (1);
Index: /trunk/Ohana/src/imregister/detrend/output.c
===================================================================
--- /trunk/Ohana/src/imregister/detrend/output.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/detrend/output.c	(revision 7080)
@@ -43,17 +43,17 @@
 
   /* create primary header */
-  fits_init_header (&header);    
+  gfits_init_header (&header);    
   header.extend = TRUE;
-  fits_create_header (&header);
-  fits_create_matrix (&header, &matrix);
-  fits_print (&header, "NEXTEND", "%d", 1, 1);
+  gfits_create_header (&header);
+  gfits_create_matrix (&header, &matrix);
+  gfits_print (&header, "NEXTEND", "%d", 1, 1);
 
   ftable.header = &theader;
-  fits_table_set_DetReg (&ftable, subset, Nmatch);
-
-  fits_fwrite_header  (f, &header);
-  fits_fwrite_matrix  (f, &matrix);
-  fits_fwrite_Theader (f, &theader);
-  fits_fwrite_table   (f, &ftable);
+  gfits_table_set_DetReg (&ftable, subset, Nmatch);
+
+  gfits_fwrite_header  (f, &header);
+  gfits_fwrite_matrix  (f, &matrix);
+  gfits_fwrite_Theader (f, &theader);
+  gfits_fwrite_table   (f, &ftable);
   fclose (f);
   exit (0);
@@ -73,66 +73,66 @@
 
   /* create primary header */
-  fits_init_header (&header);    
+  gfits_init_header (&header);    
   header.extend = TRUE;
-  fits_create_header (&header);
-  fits_create_matrix (&header, &matrix);
-  fits_print (&header, "NEXTEND", "%d", 1, 1);
+  gfits_create_header (&header);
+  gfits_create_matrix (&header, &matrix);
+  gfits_print (&header, "NEXTEND", "%d", 1, 1);
   
   /* create table header */
-  fits_create_table_header (&theader, "TABLE", "MASTER_DETREND");
+  gfits_create_table_header (&theader, "TABLE", "MASTER_DETREND");
       
   /* add current date/time to header */
   str_to_time ("now", &tsecond);
   datestr = sec_to_date (tsecond);
-  fits_modify (&header,  "DATE", "%s", 1, datestr);
-  fits_modify (&theader, "DATE", "%s", 1, datestr);
+  gfits_modify (&header,  "DATE", "%s", 1, datestr);
+  gfits_modify (&theader, "DATE", "%s", 1, datestr);
   free (datestr);
 
   /* define table layout */
-  fits_define_table_column (&theader, "A32",  "KEY",        "unique identifier",         "");
-  fits_define_table_column (&theader, "A20",  "START_TIME", "start time of measurement", "yyyy/mm/dd,hh:mm:ss");
-  fits_define_table_column (&theader, "A20",  "STOP_TIME",  "stop time of measurement",  "yyyy/mm/dd,hh:mm:ss");
-  fits_define_table_column (&theader, "A20",  "REG_TIME",   "time of registration",      "yyyy/mm/dd,hh:mm:ss");
-  fits_define_table_column (&theader, "F7.1", "EXPTIME",    "exposure time",             "seconds"); 
-  fits_define_table_column (&theader, "A10",  "IMAGETYP",   "detrend type",              "");
-  fits_define_table_column (&theader, "A10",  "FILTER",     "filter name",               "");
-  fits_define_table_column (&theader, "A7",   "CCDINFO",    "ccd information",                  "");
-  fits_define_table_column (&theader, "A7",   "MODE",       "data format mode",                  "");
-  fits_define_table_column (&theader, "I3",   "VERSION",    "image version number",      "");
-  fits_define_table_column (&theader, "I3",   "ORDER",      "selection order",           "");
-  fits_define_table_column (&theader, "A64",  "LABEL",      "data label",                "");
-  fits_define_table_column (&theader, "A256", "PATH",       "filename in db",            "");
+  gfits_define_table_column (&theader, "A32",  "KEY",        "unique identifier",         "");
+  gfits_define_table_column (&theader, "A20",  "START_TIME", "start time of measurement", "yyyy/mm/dd,hh:mm:ss");
+  gfits_define_table_column (&theader, "A20",  "STOP_TIME",  "stop time of measurement",  "yyyy/mm/dd,hh:mm:ss");
+  gfits_define_table_column (&theader, "A20",  "REG_TIME",   "time of registration",      "yyyy/mm/dd,hh:mm:ss");
+  gfits_define_table_column (&theader, "F7.1", "EXPTIME",    "exposure time",             "seconds"); 
+  gfits_define_table_column (&theader, "A10",  "IMAGETYP",   "detrend type",              "");
+  gfits_define_table_column (&theader, "A10",  "FILTER",     "filter name",               "");
+  gfits_define_table_column (&theader, "A7",   "CCDINFO",    "ccd information",                  "");
+  gfits_define_table_column (&theader, "A7",   "MODE",       "data format mode",                  "");
+  gfits_define_table_column (&theader, "I3",   "VERSION",    "image version number",      "");
+  gfits_define_table_column (&theader, "I3",   "ORDER",      "selection order",           "");
+  gfits_define_table_column (&theader, "A64",  "LABEL",      "data label",                "");
+  gfits_define_table_column (&theader, "A256", "PATH",       "filename in db",            "");
   
   /* define TNULL, TNVAL values */
-  fits_modify (&theader, "TNULL1",  "%s", 1, "NULL");  /* KEY        */
-  fits_modify (&theader, "TNULL2",  "%s", 1, "NULL");  /* START_TIME */
-  fits_modify (&theader, "TNULL3",  "%s", 1, "NULL");  /* STOP_TIME  */
-  fits_modify (&theader, "TNULL4",  "%s", 1, "NULL");  /* REG_TIME   */
-  fits_modify (&theader, "TNULL5",  "%s", 1, "NaN");   /* EXPTIME    */
-  fits_modify (&theader, "TNULL6",  "%s", 1, "NULL");  /* IMAGETYP   */
-  fits_modify (&theader, "TNULL7",  "%s", 1, "NULL");  /* FILTER     */
-  fits_modify (&theader, "TNULL8",  "%s", 1, "NULL");  /* CCDINFO    */
-  fits_modify (&theader, "TNULL9",  "%s", 1, "NULL");  /* MODE       */
-  fits_modify (&theader, "TNULL10", "%s", 1, "-100");  /* VERSION    */
-  fits_modify (&theader, "TNULL11", "%s", 1, "-100");  /* ORDER      */
-  fits_modify (&theader, "TNULL12", "%s", 1, "NULL");  /* LABEL      */
-  fits_modify (&theader, "TNULL13", "%s", 1, "NULL");  /* PATH       */
-
-  fits_modify (&theader, "TNVAL1",  "%s", 1, "NA");    /* KEY        */
-  fits_modify (&theader, "TNVAL2",  "%s", 1, "NA");    /* START_TIME */
-  fits_modify (&theader, "TNVAL3",  "%s", 1, "NA");    /* STOP_TIME  */
-  fits_modify (&theader, "TNVAL4",  "%s", 1, "NA");    /* REG_TIME   */
-  fits_modify (&theader, "TNVAL5",  "%s", 1, "Inf");   /* EXPTIME    */
-  fits_modify (&theader, "TNVAL6",  "%s", 1, "NA");    /* IMAGETYP   */
-  fits_modify (&theader, "TNVAL7",  "%s", 1, "NA");    /* FILTER     */
-  fits_modify (&theader, "TNVAL8",  "%s", 1, "NA");    /* CCDINFO    */
-  fits_modify (&theader, "TNVAL9",  "%s", 1, "NA");    /* MODE       */
-  fits_modify (&theader, "TNVAL10", "%s", 1, "-200");  /* VERSION    */
-  fits_modify (&theader, "TNVAL11", "%s", 1, "-200");  /* ORDER      */
-  fits_modify (&theader, "TNVAL12", "%s", 1, "NA");    /* LABEL      */
-  fits_modify (&theader, "TNVAL13", "%s", 1, "NA");    /* PATH       */
+  gfits_modify (&theader, "TNULL1",  "%s", 1, "NULL");  /* KEY        */
+  gfits_modify (&theader, "TNULL2",  "%s", 1, "NULL");  /* START_TIME */
+  gfits_modify (&theader, "TNULL3",  "%s", 1, "NULL");  /* STOP_TIME  */
+  gfits_modify (&theader, "TNULL4",  "%s", 1, "NULL");  /* REG_TIME   */
+  gfits_modify (&theader, "TNULL5",  "%s", 1, "NaN");   /* EXPTIME    */
+  gfits_modify (&theader, "TNULL6",  "%s", 1, "NULL");  /* IMAGETYP   */
+  gfits_modify (&theader, "TNULL7",  "%s", 1, "NULL");  /* FILTER     */
+  gfits_modify (&theader, "TNULL8",  "%s", 1, "NULL");  /* CCDINFO    */
+  gfits_modify (&theader, "TNULL9",  "%s", 1, "NULL");  /* MODE       */
+  gfits_modify (&theader, "TNULL10", "%s", 1, "-100");  /* VERSION    */
+  gfits_modify (&theader, "TNULL11", "%s", 1, "-100");  /* ORDER      */
+  gfits_modify (&theader, "TNULL12", "%s", 1, "NULL");  /* LABEL      */
+  gfits_modify (&theader, "TNULL13", "%s", 1, "NULL");  /* PATH       */
+
+  gfits_modify (&theader, "TNVAL1",  "%s", 1, "NA");    /* KEY        */
+  gfits_modify (&theader, "TNVAL2",  "%s", 1, "NA");    /* START_TIME */
+  gfits_modify (&theader, "TNVAL3",  "%s", 1, "NA");    /* STOP_TIME  */
+  gfits_modify (&theader, "TNVAL4",  "%s", 1, "NA");    /* REG_TIME   */
+  gfits_modify (&theader, "TNVAL5",  "%s", 1, "Inf");   /* EXPTIME    */
+  gfits_modify (&theader, "TNVAL6",  "%s", 1, "NA");    /* IMAGETYP   */
+  gfits_modify (&theader, "TNVAL7",  "%s", 1, "NA");    /* FILTER     */
+  gfits_modify (&theader, "TNVAL8",  "%s", 1, "NA");    /* CCDINFO    */
+  gfits_modify (&theader, "TNVAL9",  "%s", 1, "NA");    /* MODE       */
+  gfits_modify (&theader, "TNVAL10", "%s", 1, "-200");  /* VERSION    */
+  gfits_modify (&theader, "TNVAL11", "%s", 1, "-200");  /* ORDER      */
+  gfits_modify (&theader, "TNVAL12", "%s", 1, "NA");    /* LABEL      */
+  gfits_modify (&theader, "TNVAL13", "%s", 1, "NA");    /* PATH       */
 
   /* create table, add data values */
-  fits_create_table (&theader, &table);
+  gfits_create_table (&theader, &table);
   
   /* add data to table */
@@ -165,10 +165,10 @@
     }
 
-    line = fits_table_print (&table, key, startstr, stopstr, regstr, 
+    line = gfits_table_print (&table, key, startstr, stopstr, regstr, 
 			     newdata[0].exptime, typestr, filtstr, ccdstr, modestr,
 			     newdata[0].Nentry, newdata[0].Norder, 
 			     newdata[0].label, newdata[0].filename);
 
-    fits_add_rows (&table, line, 1, strlen(line));
+    gfits_add_rows (&table, line, 1, strlen(line));
     free (line);
     free (startstr);
@@ -182,8 +182,8 @@
     return (FALSE);
   }
-  fits_fwrite_header  (f, &header);
-  fits_fwrite_matrix  (f, &matrix);
-  fits_fwrite_Theader (f, &theader);
-  fits_fwrite_table   (f, &table);
+  gfits_fwrite_header  (f, &header);
+  gfits_fwrite_matrix  (f, &matrix);
+  gfits_fwrite_Theader (f, &theader);
+  gfits_fwrite_table   (f, &table);
   fclose (f);
   exit (0);
Index: unk/Ohana/src/imregister/doc/Change.log
===================================================================
--- /trunk/Ohana/src/imregister/doc/Change.log	(revision 7079)
+++ 	(revision )
@@ -1,31 +1,0 @@
-
-imregister-1-4:
-  dropped IMAGE_CATALOG from config
-  fixed imageID if not in header
-  changed mkdirhier to updated version (libohana 1.7)
-
-imregister-1-3:
-  modifications to use the new DVO load functions (libdvo-1-0)
-  minor changes to use new libohana (v1.5) / libfits (v1.4)
-
-imregister-1-2:
-  substantial changes to use autocoded tables
-  reorgainzation of db I/F code to use fits_db functions
-
-imregister-1-1:
-  I made a lot of very minor changes to cleanup the FITS database
-  interactions.  These should not have any impact on behavior.
-
-imregister-1-0:
-  I've added the newest versions of imregister to the CVS tree with the
-  base tag imregister-1-0 (should have used imregister-3-0? still
-  learning about revision control).  
-
-comment from before importing to CVS:
-  imregister-3.0 represents a completely new organization of these
-  programs, with the twin goals of making the FITS table handling more
-  cleanly encapsulated and of easing the addition of a mysql database
-  engine in place of the FITS tables.  As programs from imregister-1.0
-  are adapted to match this structure, they will be moved into the
-  imregister-3.0 directory.  
-
Index: /trunk/Ohana/src/imregister/doc/ChangeLog.txt
===================================================================
--- /trunk/Ohana/src/imregister/doc/ChangeLog.txt	(revision 7080)
+++ /trunk/Ohana/src/imregister/doc/ChangeLog.txt	(revision 7080)
@@ -0,0 +1,35 @@
+
+imregister-1-5:
+  * converted to gfits APIs (forces libfits 1.6)
+
+
+imregister-1-4:
+  dropped IMAGE_CATALOG from config
+  fixed imageID if not in header
+  changed mkdirhier to updated version (libohana 1.7)
+
+imregister-1-3:
+  modifications to use the new DVO load functions (libdvo-1-0)
+  minor changes to use new libohana (v1.5) / libfits (v1.4)
+
+imregister-1-2:
+  substantial changes to use autocoded tables
+  reorgainzation of db I/F code to use fits_db functions
+
+imregister-1-1:
+  I made a lot of very minor changes to cleanup the FITS database
+  interactions.  These should not have any impact on behavior.
+
+imregister-1-0:
+  I've added the newest versions of imregister to the CVS tree with the
+  base tag imregister-1-0 (should have used imregister-3-0? still
+  learning about revision control).  
+
+comment from before importing to CVS:
+  imregister-3.0 represents a completely new organization of these
+  programs, with the twin goals of making the FITS table handling more
+  cleanly encapsulated and of easing the addition of a mysql database
+  engine in place of the FITS tables.  As programs from imregister-1.0
+  are adapted to match this structure, they will be moved into the
+  imregister-3.0 directory.  
+
Index: /trunk/Ohana/src/imregister/imphot/db_load.c
===================================================================
--- /trunk/Ohana/src/imregister/imphot/db_load.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/imphot/db_load.c	(revision 7080)
@@ -16,12 +16,12 @@
 
   /* init & load in FITS table data - return FALSE on error */
-  if (!fits_fread_header (db[0].f, &db[0].header)) {
+  if (!gfits_fread_header (db[0].f, &db[0].header)) {
     fprintf (stderr, "can't read primary header\n"); 
     return (FALSE);
   }
 
-  fits_scan (&db[0].header, "NAXIS",  "%d", 1, &Naxis);
-  fits_scan (&db[0].header, "NAXIS1", "%d", 1, &Nx);
-  fits_scan (&db[0].header, "NAXIS2", "%d", 1, &Ny);
+  gfits_scan (&db[0].header, "NAXIS",  "%d", 1, &Naxis);
+  gfits_scan (&db[0].header, "NAXIS1", "%d", 1, &Nx);
+  gfits_scan (&db[0].header, "NAXIS2", "%d", 1, &Ny);
   
   mode = FITS;
Index: /trunk/Ohana/src/imregister/imphot/dumpfits.c
===================================================================
--- /trunk/Ohana/src/imregister/imphot/dumpfits.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/imphot/dumpfits.c	(revision 7080)
@@ -27,17 +27,17 @@
 
   /* create primary header */
-  fits_init_header (&header);    
+  gfits_init_header (&header);    
   header.extend = TRUE;
-  fits_create_header (&header);
-  fits_create_matrix (&header, &matrix);
-  fits_print (&header, "NEXTEND", "%d", 1, 1);
+  gfits_create_header (&header);
+  gfits_create_matrix (&header, &matrix);
+  gfits_print (&header, "NEXTEND", "%d", 1, 1);
 
   ftable.header = &theader;
-  fits_table_set_Image (&ftable, subset, Nmatch);
+  gfits_table_set_Image (&ftable, subset, Nmatch);
 
-  fits_fwrite_header  (f, &header);
-  fits_fwrite_matrix  (f, &matrix);
-  fits_fwrite_Theader (f, &theader);
-  fits_fwrite_table   (f, &ftable);
+  gfits_fwrite_header  (f, &header);
+  gfits_fwrite_matrix  (f, &matrix);
+  gfits_fwrite_Theader (f, &theader);
+  gfits_fwrite_table   (f, &ftable);
   fclose (f);
   exit (0);
@@ -58,9 +58,9 @@
 
   /* create primary header */
-  fits_init_header (&header);    
+  gfits_init_header (&header);    
   header.extend = TRUE;
-  fits_create_header (&header);
-  fits_create_matrix (&header, &matrix);
-  fits_print (&header, "NEXTEND", "%d", 1, 1);
+  gfits_create_header (&header);
+  gfits_create_matrix (&header, &matrix);
+  gfits_print (&header, "NEXTEND", "%d", 1, 1);
   
   /* the ASCII table is always a little harder than the binary:
@@ -69,43 +69,43 @@
 
   /* create table header */
-  fits_create_table_header (&theader, "TABLE", "ZPTS");
+  gfits_create_table_header (&theader, "TABLE", "ZPTS");
 
   /* add current date/time to header */
   str_to_time ("now", &tsecond);
   datestr = sec_to_date (tsecond);
-  fits_modify (&header,  "DATE", "%s", 1, datestr);
-  fits_modify (&theader, "DATE", "%s", 1, datestr);
+  gfits_modify (&header,  "DATE", "%s", 1, datestr);
+  gfits_modify (&theader, "DATE", "%s", 1, datestr);
   
   /* define table layout */
-  fits_define_table_column (&theader, "A20",   "START_TIME", "start time of measurement", "yyyy/mm/dd,hh:mm:ss");
-  fits_define_table_column (&theader, "A10",   "FILTER",     "filter and camera name",    "");
-  fits_define_table_column (&theader, "F8.4",  "ZP_OBS",     "measured zero point",       "mag");
-  fits_define_table_column (&theader, "F7.4",  "ZP_ERR",     "error on zero point",       "mag");
-  fits_define_table_column (&theader, "F11.6", "RA",         "RA (J2000)",                "dec. degrees");
-  fits_define_table_column (&theader, "F11.6", "DEC",        "DEC (J2000)",               "dec. degrees");
-  fits_define_table_column (&theader, "F7.3",  "C_AIRMASS",  "airmass coeff",             "mag per airmass"); 
-  fits_define_table_column (&theader, "F7.1",  "SKY",        "median sky flux",           "counts");
-  fits_define_table_column (&theader, "I6",    "NSTAR",      "Number of stars in image",  "stars");
+  gfits_define_table_column (&theader, "A20",   "START_TIME", "start time of measurement", "yyyy/mm/dd,hh:mm:ss");
+  gfits_define_table_column (&theader, "A10",   "FILTER",     "filter and camera name",    "");
+  gfits_define_table_column (&theader, "F8.4",  "ZP_OBS",     "measured zero point",       "mag");
+  gfits_define_table_column (&theader, "F7.4",  "ZP_ERR",     "error on zero point",       "mag");
+  gfits_define_table_column (&theader, "F11.6", "RA",         "RA (J2000)",                "dec. degrees");
+  gfits_define_table_column (&theader, "F11.6", "DEC",        "DEC (J2000)",               "dec. degrees");
+  gfits_define_table_column (&theader, "F7.3",  "C_AIRMASS",  "airmass coeff",             "mag per airmass"); 
+  gfits_define_table_column (&theader, "F7.1",  "SKY",        "median sky flux",           "counts");
+  gfits_define_table_column (&theader, "I6",    "NSTAR",      "Number of stars in image",  "stars");
 
   /* define TNULL, TNVAL values */
-  fits_modify (&theader, "TNULL1",  "%s", 1, "NULL"); /* START_TIME */
-  fits_modify (&theader, "TNULL2",  "%s", 1, "NULL"); /* FILTER     */
-  fits_modify (&theader, "TNULL3",  "%s", 1, "NaN");  /* ZP_OBS     */
-  fits_modify (&theader, "TNULL4",  "%s", 1, "NaN");  /* ZP_ERR     */
-  fits_modify (&theader, "TNULL5",  "%s", 1, "NaN");  /* RA         */
-  fits_modify (&theader, "TNULL6",  "%s", 1, "NaN");  /* DEC        */
-  fits_modify (&theader, "TNULL7",  "%s", 1, "NaN");  /* C_AIRMASS  */
-  fits_modify (&theader, "TNULL8",  "%s", 1, "NaN");  /* SKY        */
-  fits_modify (&theader, "TNULL9",  "%s", 1,  "-1");  /* NSTAR      */
+  gfits_modify (&theader, "TNULL1",  "%s", 1, "NULL"); /* START_TIME */
+  gfits_modify (&theader, "TNULL2",  "%s", 1, "NULL"); /* FILTER     */
+  gfits_modify (&theader, "TNULL3",  "%s", 1, "NaN");  /* ZP_OBS     */
+  gfits_modify (&theader, "TNULL4",  "%s", 1, "NaN");  /* ZP_ERR     */
+  gfits_modify (&theader, "TNULL5",  "%s", 1, "NaN");  /* RA         */
+  gfits_modify (&theader, "TNULL6",  "%s", 1, "NaN");  /* DEC        */
+  gfits_modify (&theader, "TNULL7",  "%s", 1, "NaN");  /* C_AIRMASS  */
+  gfits_modify (&theader, "TNULL8",  "%s", 1, "NaN");  /* SKY        */
+  gfits_modify (&theader, "TNULL9",  "%s", 1,  "-1");  /* NSTAR      */
 
-  fits_modify (&theader, "TNVAL1",  "%s", 1, "NA");   /* START_TIME */
-  fits_modify (&theader, "TNVAL2",  "%s", 1, "NA");   /* FILTER     */
-  fits_modify (&theader, "TNVAL3",  "%s", 1, "Inf");  /* ZP_OBS     */
-  fits_modify (&theader, "TNVAL4",  "%s", 1, "Inf");  /* ZP_ERR     */
-  fits_modify (&theader, "TNVAL5",  "%s", 1, "Inf");  /* RA         */
-  fits_modify (&theader, "TNVAL6",  "%s", 1, "Inf");  /* DEC        */
-  fits_modify (&theader, "TNVAL7",  "%s", 1, "Inf");  /* C_AIRMASS  */
-  fits_modify (&theader, "TNVAL8",  "%s", 1, "Inf");  /* SKY        */
-  fits_modify (&theader, "TNVAL9",  "%s", 1,  "-2");  /* NSTAR      */
+  gfits_modify (&theader, "TNVAL1",  "%s", 1, "NA");   /* START_TIME */
+  gfits_modify (&theader, "TNVAL2",  "%s", 1, "NA");   /* FILTER     */
+  gfits_modify (&theader, "TNVAL3",  "%s", 1, "Inf");  /* ZP_OBS     */
+  gfits_modify (&theader, "TNVAL4",  "%s", 1, "Inf");  /* ZP_ERR     */
+  gfits_modify (&theader, "TNVAL5",  "%s", 1, "Inf");  /* RA         */
+  gfits_modify (&theader, "TNVAL6",  "%s", 1, "Inf");  /* DEC        */
+  gfits_modify (&theader, "TNVAL7",  "%s", 1, "Inf");  /* C_AIRMASS  */
+  gfits_modify (&theader, "TNVAL8",  "%s", 1, "Inf");  /* SKY        */
+  gfits_modify (&theader, "TNVAL9",  "%s", 1,  "-2");  /* NSTAR      */
 
   /* add data to table */
@@ -121,6 +121,6 @@
 
     /* we should get an error here if we don't construct this line correctly */
-    line = fits_table_print (&ftable, startstr, filtstr, zp, dzp, ra, dec, airmass, sky, subset[0].nstar);
-    fits_add_rows (&ftable, line, 1, strlen(line));
+    line = gfits_table_print (&ftable, startstr, filtstr, zp, dzp, ra, dec, airmass, sky, subset[0].nstar);
+    gfits_add_rows (&ftable, line, 1, strlen(line));
     free (line);
     free (startstr);
@@ -133,8 +133,8 @@
     exit (1);
   }
-  fits_fwrite_header  (f, &header);
-  fits_fwrite_matrix  (f, &matrix);
-  fits_fwrite_Theader (f, &theader);
-  fits_fwrite_table   (f, &ftable);
+  gfits_fwrite_header  (f, &header);
+  gfits_fwrite_matrix  (f, &matrix);
+  gfits_fwrite_Theader (f, &theader);
+  gfits_fwrite_table   (f, &ftable);
   fclose (f);
   return (TRUE);
Index: /trunk/Ohana/src/imregister/imphot/modify.c
===================================================================
--- /trunk/Ohana/src/imregister/imphot/modify.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/imphot/modify.c	(revision 7080)
@@ -28,11 +28,11 @@
 
   /** we may later want to pull this out and put it elsewhere **/
-  fits_vtable_from_ftable (&db[0].ftable, &db[0].vtable, match, Nmatch);
+  gfits_vtable_from_ftable (&db[0].ftable, &db[0].vtable, match, Nmatch);
   for (i = 0; i < Nmatch; i++) {
-    fits_convert_Image ((Image *) db[0].vtable.buffer[i], sizeof (Image), 1);
+    gfits_convert_Image ((Image *) db[0].vtable.buffer[i], sizeof (Image), 1);
   }
-  fits_db_update (db);
-  fits_db_close (db);
-  fits_db_free (db);
+  gfits_db_update (db);
+  gfits_db_close (db);
+  gfits_db_free (db);
 
   exit (0);
Index: /trunk/Ohana/src/imregister/imphot/rfits.c
===================================================================
--- /trunk/Ohana/src/imregister/imphot/rfits.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/imphot/rfits.c	(revision 7080)
@@ -9,13 +9,13 @@
     return (FALSE);
   }
-  if (!fits_fread_matrix (db[0].f, &db[0].matrix, &db[0].header)) {
+  if (!gfits_fread_matrix (db[0].f, &db[0].matrix, &db[0].header)) {
     fprintf (stderr, "can't read primary matrix");
     return (FALSE);
   }
-  if (!fits_fread_header (db[0].f, &db[0].theader)) {
+  if (!gfits_fread_header (db[0].f, &db[0].theader)) {
     fprintf (stderr, "can't read table header");
     return (FALSE);
   }
-  if (!fits_fread_ftable_data (db[0].f, &db[0].ftable)) {
+  if (!gfits_fread_ftable_data (db[0].f, &db[0].ftable)) {
     fprintf (stderr, "can't read table data");
     return (FALSE);
Index: /trunk/Ohana/src/imregister/imphot/rtext.c
===================================================================
--- /trunk/Ohana/src/imregister/imphot/rtext.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/imphot/rtext.c	(revision 7080)
@@ -10,5 +10,5 @@
   /* check that file size makes sense */
   Nimage = 0;
-  fits_scan (&db[0].header, "NIMAGES", "%d", 1, &Nimage);
+  gfits_scan (&db[0].header, "NIMAGES", "%d", 1, &Nimage);
   if (stat (db[0].filename, &filestatus) == -1) {
     if (VERBOSE) fprintf (stderr, "ERROR: failed to get status of image catalog\n");
@@ -28,7 +28,7 @@
   /* create a dummy set of table information */
   /* (original table has NAXIS = 2, change to 0) */
-  fits_modify (&db[0].header, "NAXIS", "%d", 1, 0);
-  fits_create_matrix (&db[0].header, &db[0].matrix);
-  fits_table_mkheader_Image (&db[0].theader);
+  gfits_modify (&db[0].header, "NAXIS", "%d", 1, 0);
+  gfits_create_matrix (&db[0].header, &db[0].matrix);
+  gfits_table_mkheader_Image (&db[0].theader);
   db[0].ftable.header = &db[0].theader;
 
@@ -41,7 +41,7 @@
   } 
   db[0].ftable.buffer = (char *) image;
-  fits_modify (&db[0].theader, "NAXIS2", "%d", 1, Nimage);
+  gfits_modify (&db[0].theader, "NAXIS2", "%d", 1, Nimage);
   db[0].theader.Naxis[1] = Nimage;
-  db[0].ftable.size = fits_matrix_size (&db[0].theader);
+  db[0].ftable.size = gfits_matrix_size (&db[0].theader);
   
   return (TRUE);
Index: /trunk/Ohana/src/imregister/imreg/cadc.c
===================================================================
--- /trunk/Ohana/src/imregister/imreg/cadc.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/imreg/cadc.c	(revision 7080)
@@ -37,53 +37,53 @@
 
   /* create primary header */
-  fits_init_header (&header);    
+  gfits_init_header (&header);    
   header.extend = TRUE;
-  fits_create_header (&header);
-  fits_create_matrix (&header, &matrix);
-  fits_print (&header, "NEXTEND", "%d", 1, 1);
+  gfits_create_header (&header);
+  gfits_create_matrix (&header, &matrix);
+  gfits_print (&header, "NEXTEND", "%d", 1, 1);
   
   /* create table header */
-  fits_create_table_header (&theader, "TABLE", "CADC_RAW_IMAGES");
+  gfits_create_table_header (&theader, "TABLE", "CADC_RAW_IMAGES");
       
   /* add current date/time to header */
   str_to_time ("now", &tsecond);
   datestr = sec_to_date (tsecond);
-  fits_modify (&header,  "DATE", "%s", 1, datestr);
-  fits_modify (&theader, "DATE", "%s", 1, datestr);
+  gfits_modify (&header,  "DATE", "%s", 1, datestr);
+  gfits_modify (&theader, "DATE", "%s", 1, datestr);
 
   /* define table layout */
-  fits_define_table_column (&theader, "A99",   "FILENAME",       "filename in db",                  "");
-  fits_define_table_column (&theader, "A99",   "HDR_FILENAME",   "image header filename",           "");
-  fits_define_table_column (&theader, "I10",   "OBSID",          "image ID number",                 "");
-  fits_define_table_column (&theader, "F5.2",  "OBS_IQ_REFCCD",  "image quality on reference chip", "arcsec");
-  fits_define_table_column (&theader, "F5.2",  "OBS_IQ_CENTER",  "image quality center region",     "arcsec");
-  fits_define_table_column (&theader, "F5.2",  "OBS_IQ_R_RATIO", "IQ ratio (outer / center)",       "");
-  fits_define_table_column (&theader, "F5.2",  "OBS_IQ_X_RATIO", "IQ ratio (left / right)",         "");
-  fits_define_table_column (&theader, "F5.2",  "OBS_IQ_Y_RATIO", "IQ ratio (top / bottom)",         "");
-  fits_define_table_column (&theader, "F9.3",  "OBS_BG_VAL",     "background level",                "counts / pixel");
+  gfits_define_table_column (&theader, "A99",   "FILENAME",       "filename in db",                  "");
+  gfits_define_table_column (&theader, "A99",   "HDR_FILENAME",   "image header filename",           "");
+  gfits_define_table_column (&theader, "I10",   "OBSID",          "image ID number",                 "");
+  gfits_define_table_column (&theader, "F5.2",  "OBS_IQ_REFCCD",  "image quality on reference chip", "arcsec");
+  gfits_define_table_column (&theader, "F5.2",  "OBS_IQ_CENTER",  "image quality center region",     "arcsec");
+  gfits_define_table_column (&theader, "F5.2",  "OBS_IQ_R_RATIO", "IQ ratio (outer / center)",       "");
+  gfits_define_table_column (&theader, "F5.2",  "OBS_IQ_X_RATIO", "IQ ratio (left / right)",         "");
+  gfits_define_table_column (&theader, "F5.2",  "OBS_IQ_Y_RATIO", "IQ ratio (top / bottom)",         "");
+  gfits_define_table_column (&theader, "F9.3",  "OBS_BG_VAL",     "background level",                "counts / pixel");
 
   /* define TNULL, TNVAL values */
-  fits_modify (&theader, "TNULL1",  "%s", 1, "NULL");  /* FILENAME       */
-  fits_modify (&theader, "TNULL2",  "%s", 1, "NULL");  /* HDR_FILENAME   */
-  fits_modify (&theader, "TNULL3",  "%s", 1, "0");     /* OBSID          */
-  fits_modify (&theader, "TNULL4",  "%s", 1, "0.00");  /* OBS_IQ_REFCCD  */
-  fits_modify (&theader, "TNULL5",  "%s", 1, "0.00");  /* OBS_IQ_CENTER  */
-  fits_modify (&theader, "TNULL6",  "%s", 1, "0.00");  /* OBS_IQ_R_RATIO */
-  fits_modify (&theader, "TNULL7",  "%s", 1, "0.00");  /* OBS_IQ_X_RATIO */
-  fits_modify (&theader, "TNULL8",  "%s", 1, "0.00");  /* OBS_IQ_Y_RATIO */
-  fits_modify (&theader, "TNULL9",  "%s", 1, "0.00");  /* OBS_BG_VAL     */
-
-  fits_modify (&theader, "TNVAL1",  "%s", 1, "NA");    /* FILENAME     */
-  fits_modify (&theader, "TNVAL2",  "%s", 1, "NA");    /* HDR_FILENAME */
-  fits_modify (&theader, "TNVAL3",  "%s", 1, "-1");    /* OBSID        */
-  fits_modify (&theader, "TNVAL4",  "%s", 1, "-1.00"); /* OBS_IQ_REFCCD  */
-  fits_modify (&theader, "TNVAL5",  "%s", 1, "-1.00"); /* OBS_IQ_CENTER  */
-  fits_modify (&theader, "TNVAL6",  "%s", 1, "-1.00"); /* OBS_IQ_R_RATIO */
-  fits_modify (&theader, "TNVAL7",  "%s", 1, "-1.00"); /* OBS_IQ_X_RATIO */
-  fits_modify (&theader, "TNVAL8",  "%s", 1, "-1.00"); /* OBS_IQ_Y_RATIO */
-  fits_modify (&theader, "TNVAL9",  "%s", 1, "-1.00"); /* OBS_BG_VAL   */
+  gfits_modify (&theader, "TNULL1",  "%s", 1, "NULL");  /* FILENAME       */
+  gfits_modify (&theader, "TNULL2",  "%s", 1, "NULL");  /* HDR_FILENAME   */
+  gfits_modify (&theader, "TNULL3",  "%s", 1, "0");     /* OBSID          */
+  gfits_modify (&theader, "TNULL4",  "%s", 1, "0.00");  /* OBS_IQ_REFCCD  */
+  gfits_modify (&theader, "TNULL5",  "%s", 1, "0.00");  /* OBS_IQ_CENTER  */
+  gfits_modify (&theader, "TNULL6",  "%s", 1, "0.00");  /* OBS_IQ_R_RATIO */
+  gfits_modify (&theader, "TNULL7",  "%s", 1, "0.00");  /* OBS_IQ_X_RATIO */
+  gfits_modify (&theader, "TNULL8",  "%s", 1, "0.00");  /* OBS_IQ_Y_RATIO */
+  gfits_modify (&theader, "TNULL9",  "%s", 1, "0.00");  /* OBS_BG_VAL     */
+
+  gfits_modify (&theader, "TNVAL1",  "%s", 1, "NA");    /* FILENAME     */
+  gfits_modify (&theader, "TNVAL2",  "%s", 1, "NA");    /* HDR_FILENAME */
+  gfits_modify (&theader, "TNVAL3",  "%s", 1, "-1");    /* OBSID        */
+  gfits_modify (&theader, "TNVAL4",  "%s", 1, "-1.00"); /* OBS_IQ_REFCCD  */
+  gfits_modify (&theader, "TNVAL5",  "%s", 1, "-1.00"); /* OBS_IQ_CENTER  */
+  gfits_modify (&theader, "TNVAL6",  "%s", 1, "-1.00"); /* OBS_IQ_R_RATIO */
+  gfits_modify (&theader, "TNVAL7",  "%s", 1, "-1.00"); /* OBS_IQ_X_RATIO */
+  gfits_modify (&theader, "TNVAL8",  "%s", 1, "-1.00"); /* OBS_IQ_Y_RATIO */
+  gfits_modify (&theader, "TNVAL9",  "%s", 1, "-1.00"); /* OBS_BG_VAL   */
 
   /* create table, add data values */
-  fits_create_table (&theader, &table);
+  gfits_create_table (&theader, &table);
   
   /* prepare indicies to handle table data */
@@ -111,7 +111,7 @@
     iqf = center * ARCSEC_PIXEL;
     iqo = row[0].fwhm*ARCSEC_PIXEL;
-    line = fits_table_print (&table, row[0].filename, hdrname, Obsid, iqo, iqf, iqr, iqx, iqy, row[0].sky);
-
-    fits_add_rows (&table, line, 1, strlen(line));
+    line = gfits_table_print (&table, row[0].filename, hdrname, Obsid, iqo, iqf, iqr, iqx, iqy, row[0].sky);
+
+    gfits_add_rows (&table, line, 1, strlen(line));
     free (line);
   }
@@ -120,8 +120,8 @@
   free (entry);
 
-  fits_write_header  (filename, &header);
-  fits_write_matrix  (filename, &matrix);
-  fits_write_Theader (filename, &theader);
-  fits_write_table   (filename, &table);
+  gfits_write_header  (filename, &header);
+  gfits_write_matrix  (filename, &matrix);
+  gfits_write_Theader (filename, &theader);
+  gfits_write_table   (filename, &table);
   exit (0);
 }
Index: /trunk/Ohana/src/imregister/imreg/delete.c
===================================================================
--- /trunk/Ohana/src/imregister/imreg/delete.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/imreg/delete.c	(revision 7080)
@@ -22,5 +22,5 @@
   if (Ndel == 0) { 
     fprintf (stderr, "SUCCESS\n");
-    fits_db_close (db);
+    gfits_db_close (db);
     exit (0);
   }
@@ -41,8 +41,8 @@
   /** we may later want to pull this out and put it elsewhere **/
   /** free db[0].theader, db[0].table.buffer? **/
-  fits_table_set_RegImage (&db[0].ftable, subset, Nsubset);
-  fits_db_save (db);
-  fits_db_close (db);
-  fits_db_free (db);
+  gfits_table_set_RegImage (&db[0].ftable, subset, Nsubset);
+  gfits_db_save (db);
+  gfits_db_close (db);
+  gfits_db_free (db);
 
   fprintf (stderr, "SUCCESS\n");
Index: /trunk/Ohana/src/imregister/imreg/iminfo.c
===================================================================
--- /trunk/Ohana/src/imregister/imreg/iminfo.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/imreg/iminfo.c	(revision 7080)
@@ -19,5 +19,5 @@
 
   /* load in FITS header from image */
-  if (!fits_read_header (filename, &header)) {
+  if (!gfits_read_header (filename, &header)) {
     fprintf (stderr, "ERROR: can't find image file %s\n", filename);
     exit (1);
@@ -42,8 +42,8 @@
 
   /* determine data layout (SINGLE, SPLIT, MEF, CUBE, SLICE) */
-  fits_scan (&header, "EXTEND",  "%t", 1, &extend);
-  fits_scan (&header, "NAXIS",  "%d", 1, &Naxes);
+  gfits_scan (&header, "EXTEND",  "%t", 1, &extend);
+  gfits_scan (&header, "NAXIS",  "%d", 1, &Naxes);
   if (extend) { /* MEF file */
-    fits_scan (&header, "NEXTEND",  "%d", 1, &Nextend);
+    gfits_scan (&header, "NEXTEND",  "%d", 1, &Nextend);
     image[0].mode = M_MEF;
     image[0].ccd  = Nextend;
@@ -51,5 +51,5 @@
   /* need to distinguish MEF, CUBE, and MEF-CUBE */
   if (Naxes == 3) { /* data cube */
-    fits_scan (&header, "NAXIS3",  "%d", 1, &Nseq);
+    gfits_scan (&header, "NAXIS3",  "%d", 1, &Nseq);
     if (image[0].mode == M_MEF) {
       fprintf (stderr, "MEF-CUBE not ready\n");
@@ -59,5 +59,5 @@
     image[0].seq  = Nseq;
     /* abstract this name somewhere ? */
-    fits_scan (&header, "SEQTIME", "%f", 1, &image[0].seqtime);
+    gfits_scan (&header, "SEQTIME", "%f", 1, &image[0].seqtime);
   }
   if (SingleIsSplit && (image[0].mode == M_SINGLE)) {
@@ -68,5 +68,5 @@
 
   /* extract other relevant data from header */
-  fits_scan (&header, ImagetypeKeyword,  "%s", 1, &Imagetype);
+  gfits_scan (&header, ImagetypeKeyword,  "%s", 1, &Imagetype);
 
   /* grab the image type : if not defined, set to 'none' */
@@ -80,19 +80,19 @@
 
   /* grab interesting info from header */
-  fits_scan (&header, ExptimeKeyword,    "%f", 1, &image[0].exptime);
-  fits_scan (&header, AirmassKeyword,    "%f", 1, &image[0].airmass);
-  fits_scan (&header, FocusKeyword,      "%f", 1, &image[0].telfocus);
-  fits_scan (&header, Teldata1Keyword,   "%f", 1, &image[0].xprobe);
-  fits_scan (&header, Teldata2Keyword,   "%f", 1, &image[0].yprobe);
-  fits_scan (&header, Teldata3Keyword,   "%f", 1, &image[0].zprobe);
-  fits_scan (&header, DettempKeyword,    "%f", 1, &image[0].dettemp);
-  fits_scan (&header, RotationKeyword,   "%f", 1, &image[0].rotangle);
+  gfits_scan (&header, ExptimeKeyword,    "%f", 1, &image[0].exptime);
+  gfits_scan (&header, AirmassKeyword,    "%f", 1, &image[0].airmass);
+  gfits_scan (&header, FocusKeyword,      "%f", 1, &image[0].telfocus);
+  gfits_scan (&header, Teldata1Keyword,   "%f", 1, &image[0].xprobe);
+  gfits_scan (&header, Teldata2Keyword,   "%f", 1, &image[0].yprobe);
+  gfits_scan (&header, Teldata3Keyword,   "%f", 1, &image[0].zprobe);
+  gfits_scan (&header, DettempKeyword,    "%f", 1, &image[0].dettemp);
+  gfits_scan (&header, RotationKeyword,   "%f", 1, &image[0].rotangle);
 
   /* force strings to fit in available space (32 bytes) */
-  fits_scan (&header, CameraKeyword,     "%s", 1, line);
+  gfits_scan (&header, CameraKeyword,     "%s", 1, line);
   strncpy (image[0].instrument, line, 31);
   image[0].instrument[31] = 0;
 
-  fits_scan (&header, FilterKeyword, "%s", 1, line);
+  gfits_scan (&header, FilterKeyword, "%s", 1, line);
   MatchFilterList (line);
   strncpy (image[0].filter, line, 31);
@@ -101,12 +101,12 @@
   /* header has RA & DEC in decimal degrees */
   if (RADecDegKeyword[0] & DECDecDegKeyword[0]) {
-    fits_scan (&header, RADecDegKeyword,  "%f", 1, &image[0].ra);
-    fits_scan (&header, DECDecDegKeyword, "%f", 1, &image[0].dec);
+    gfits_scan (&header, RADecDegKeyword,  "%f", 1, &image[0].ra);
+    gfits_scan (&header, DECDecDegKeyword, "%f", 1, &image[0].dec);
   } else {
     if (RASexigKeyword[0] & DECSexigKeyword[0]) {
-      fits_scan (&header, RASexigKeyword,  "%s", 1, line);
+      gfits_scan (&header, RASexigKeyword,  "%s", 1, line);
       dms_to_ddd (&tmp, line);
       image[0].ra = 15*tmp;
-      fits_scan (&header, DECSexigKeyword, "%s", 1, &line);
+      gfits_scan (&header, DECSexigKeyword, "%s", 1, &line);
       dms_to_ddd (&tmp, line);
       image[0].dec = tmp;
Index: /trunk/Ohana/src/imregister/imreg/imregclient.c
===================================================================
--- /trunk/Ohana/src/imregister/imreg/imregclient.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/imreg/imregclient.c	(revision 7080)
@@ -63,29 +63,29 @@
   db.lockstate = LCK_HARD;
   db.timeout   = 300.0;
-  fits_db_init (&db);
+  gfits_db_init (&db);
 
-  if (!fits_db_lock (&db, TempDB)) {
+  if (!gfits_db_lock (&db, TempDB)) {
     fprintf (stderr, "ERROR: failure to lock db\n");
-    fits_db_close (&db);
+    gfits_db_close (&db);
     exit (1);
   }
   if (db.dbstate == LCK_EMPTY) {
-    fits_db_create (&db);
-    fits_table_set_RegImage (&db.ftable, NULL, 0);
+    gfits_db_create (&db);
+    gfits_table_set_RegImage (&db.ftable, NULL, 0);
   } else {  
-    if (!fits_db_load (&db)) {
+    if (!gfits_db_load (&db)) {
       fprintf (stderr, "ERROR: failure to load db\n");
-      fits_db_close (&db);
+      gfits_db_close (&db);
       exit (1);
     }
   }
 
-  fits_convert_RegImage (image, sizeof (RegImage), Nentry);
-  fits_table_to_vtable (&db.ftable, &db.vtable, 0, 0);
-  fits_vadd_rows (&db.vtable, (char *) image, Nentry, sizeof(RegImage));
+  gfits_convert_RegImage (image, sizeof (RegImage), Nentry);
+  gfits_table_to_vtable (&db.ftable, &db.vtable, 0, 0);
+  gfits_vadd_rows (&db.vtable, (char *) image, Nentry, sizeof(RegImage));
 
-  fits_db_update (&db);
-  fits_db_close (&db);
-  fits_db_free (&db);
+  gfits_db_update (&db);
+  gfits_db_close (&db);
+  gfits_db_free (&db);
 
   fprintf (stderr, "SUCCESS: wrote temp image data\n");
Index: /trunk/Ohana/src/imregister/imreg/modify.c
===================================================================
--- /trunk/Ohana/src/imregister/imreg/modify.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/imreg/modify.c	(revision 7080)
@@ -78,11 +78,11 @@
 
   /** we may later want to pull this out and put it elsewhere **/
-  fits_vtable_from_ftable (&db[0].ftable, &db[0].vtable, match, Nmatch);
+  gfits_vtable_from_ftable (&db[0].ftable, &db[0].vtable, match, Nmatch);
   for (i = 0; i < Nmatch; i++) {
-    fits_convert_RegImage ((RegImage *) db[0].vtable.buffer[i], sizeof (RegImage), 1);
+    gfits_convert_RegImage ((RegImage *) db[0].vtable.buffer[i], sizeof (RegImage), 1);
   }
-  fits_db_update (db);
-  fits_db_close (db);
-  fits_db_free (db);
+  gfits_db_update (db);
+  gfits_db_close (db);
+  gfits_db_free (db);
 
   fprintf (stderr, "SUCCESS\n");
Index: /trunk/Ohana/src/imregister/imreg/output.c
===================================================================
--- /trunk/Ohana/src/imregister/imreg/output.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/imreg/output.c	(revision 7080)
@@ -70,17 +70,17 @@
 
   /* create primary header */
-  fits_init_header (&header);    
+  gfits_init_header (&header);    
   header.extend = TRUE;
-  fits_create_header (&header);
-  fits_create_matrix (&header, &matrix);
-  fits_print (&header, "NEXTEND", "%d", 1, 1);
+  gfits_create_header (&header);
+  gfits_create_matrix (&header, &matrix);
+  gfits_print (&header, "NEXTEND", "%d", 1, 1);
 
   ftable.header = &theader;
-  fits_table_set_RegImage (&ftable, subset, Nmatch);
-
-  fits_fwrite_header  (f, &header);
-  fits_fwrite_matrix  (f, &matrix);
-  fits_fwrite_Theader (f, &theader);
-  fits_fwrite_table   (f, &ftable);
+  gfits_table_set_RegImage (&ftable, subset, Nmatch);
+
+  gfits_fwrite_header  (f, &header);
+  gfits_fwrite_matrix  (f, &matrix);
+  gfits_fwrite_Theader (f, &theader);
+  gfits_fwrite_table   (f, &ftable);
   fclose (f);
   exit (0);
@@ -102,50 +102,50 @@
 
   /* create primary header */
-  fits_init_header (&header);    
+  gfits_init_header (&header);    
   header.extend = TRUE;
-  fits_create_header (&header);
-  fits_create_matrix (&header, &matrix);
-  fits_print (&header, "NEXTEND", "%d", 1, 1);
+  gfits_create_header (&header);
+  gfits_create_matrix (&header, &matrix);
+  gfits_print (&header, "NEXTEND", "%d", 1, 1);
   
   /* create table header */
-  fits_create_table_header (&theader, "TABLE", "IMAGE_DATABASE");
+  gfits_create_table_header (&theader, "TABLE", "IMAGE_DATABASE");
       
   /* add current date/time to header */
   str_to_time ("now", &tsecond);
   datestr = sec_to_date (tsecond);
-  fits_modify (&header,  "DATE", "%s", 1, datestr);
-  fits_modify (&theader, "DATE", "%s", 1, datestr);
+  gfits_modify (&header,  "DATE", "%s", 1, datestr);
+  gfits_modify (&theader, "DATE", "%s", 1, datestr);
 
   /* define table layout */
-  fits_define_table_column (&theader, "A64",   "FILE",       "filename in db",        "");
-  fits_define_table_column (&theader, "A128",  "PATH",       "fullpath in db",        "");
-  fits_define_table_column (&theader, "A32",   "FILTER",     "filter name",           "");
-  fits_define_table_column (&theader, "A32",   "INSTRUMENT", "instrument",            "");
-  fits_define_table_column (&theader, "A6",    "CCD",        "ccd identifier",        "");
-  fits_define_table_column (&theader, "A6",    "MODE",       "mef/split/etc",         "");
-  fits_define_table_column (&theader, "A8",    "TYPE",       "object/flat/bias/etc",  "");
-  fits_define_table_column (&theader, "A25",   "JUNK",       "space for expansion",   "");
-  fits_define_table_column (&theader, "F6.1",  "EXPTIME",    "exposure time",        "seconds");
-  fits_define_table_column (&theader, "F5.3",  "AIRMASS",    "airmass",              "");
-  fits_define_table_column (&theader, "F7.1",  "SKY",        "background level",     "counts / pixel");
-  fits_define_table_column (&theader, "F6.1",  "BIAS",       "bias level",           "counts / pixel");
-  fits_define_table_column (&theader, "F5.2",  "FWHM",       "image quality",        "pixels");
-  fits_define_table_column (&theader, "F5.1",  "TELFOCUS",   "telescope focus",      "microns");
-  fits_define_table_column (&theader, "F5.1",  "XPROBE",     "bonnette probe x pos", "microns");
-  fits_define_table_column (&theader, "F5.1",  "YPROBE",     "bonnette probe y pos", "microns");
-  fits_define_table_column (&theader, "F5.1",  "ZPROBE",     "bonnette focus",       "microns");
-  fits_define_table_column (&theader, "F5.1",  "DETTEMP",    "detector temperature", "deg celcius");
-  fits_define_table_column (&theader, "F5.1",  "TELTEMP0",   "other temperature",    "deg celcius");
-  fits_define_table_column (&theader, "F5.1",  "TELTEMP1",   "other temperature",    "deg celcius");
-  fits_define_table_column (&theader, "F5.1",  "TELTEMP2",   "other temperature",    "deg celcius");
-  fits_define_table_column (&theader, "F5.1",  "TELTEMP3",   "other temperature",    "deg celcius");
-  fits_define_table_column (&theader, "F5.1",  "ROTANGLE",   "camear rotation angle", "degrees");
-  fits_define_table_column (&theader, "F10.6", "RA",         "image ra",              "degrees");
-  fits_define_table_column (&theader, "F10.6", "DEC",        "image dec",             "degrees");
-  fits_define_table_column (&theader, "A20",   "OBS_TIME",   "time of measurement",   "seconds since Jan 1, 1970 UT");
-  fits_define_table_column (&theader, "A20",   "REG_TIME",   "time of registration",  "seconds since Jan 1, 1970 UT");
+  gfits_define_table_column (&theader, "A64",   "FILE",       "filename in db",        "");
+  gfits_define_table_column (&theader, "A128",  "PATH",       "fullpath in db",        "");
+  gfits_define_table_column (&theader, "A32",   "FILTER",     "filter name",           "");
+  gfits_define_table_column (&theader, "A32",   "INSTRUMENT", "instrument",            "");
+  gfits_define_table_column (&theader, "A6",    "CCD",        "ccd identifier",        "");
+  gfits_define_table_column (&theader, "A6",    "MODE",       "mef/split/etc",         "");
+  gfits_define_table_column (&theader, "A8",    "TYPE",       "object/flat/bias/etc",  "");
+  gfits_define_table_column (&theader, "A25",   "JUNK",       "space for expansion",   "");
+  gfits_define_table_column (&theader, "F6.1",  "EXPTIME",    "exposure time",        "seconds");
+  gfits_define_table_column (&theader, "F5.3",  "AIRMASS",    "airmass",              "");
+  gfits_define_table_column (&theader, "F7.1",  "SKY",        "background level",     "counts / pixel");
+  gfits_define_table_column (&theader, "F6.1",  "BIAS",       "bias level",           "counts / pixel");
+  gfits_define_table_column (&theader, "F5.2",  "FWHM",       "image quality",        "pixels");
+  gfits_define_table_column (&theader, "F5.1",  "TELFOCUS",   "telescope focus",      "microns");
+  gfits_define_table_column (&theader, "F5.1",  "XPROBE",     "bonnette probe x pos", "microns");
+  gfits_define_table_column (&theader, "F5.1",  "YPROBE",     "bonnette probe y pos", "microns");
+  gfits_define_table_column (&theader, "F5.1",  "ZPROBE",     "bonnette focus",       "microns");
+  gfits_define_table_column (&theader, "F5.1",  "DETTEMP",    "detector temperature", "deg celcius");
+  gfits_define_table_column (&theader, "F5.1",  "TELTEMP0",   "other temperature",    "deg celcius");
+  gfits_define_table_column (&theader, "F5.1",  "TELTEMP1",   "other temperature",    "deg celcius");
+  gfits_define_table_column (&theader, "F5.1",  "TELTEMP2",   "other temperature",    "deg celcius");
+  gfits_define_table_column (&theader, "F5.1",  "TELTEMP3",   "other temperature",    "deg celcius");
+  gfits_define_table_column (&theader, "F5.1",  "ROTANGLE",   "camear rotation angle", "degrees");
+  gfits_define_table_column (&theader, "F10.6", "RA",         "image ra",              "degrees");
+  gfits_define_table_column (&theader, "F10.6", "DEC",        "image dec",             "degrees");
+  gfits_define_table_column (&theader, "A20",   "OBS_TIME",   "time of measurement",   "seconds since Jan 1, 1970 UT");
+  gfits_define_table_column (&theader, "A20",   "REG_TIME",   "time of registration",  "seconds since Jan 1, 1970 UT");
 
   /* create table, add data values */
-  fits_create_table (&theader, &table);
+  gfits_create_table (&theader, &table);
   
   /* add data to table */
@@ -158,5 +158,5 @@
     ccdstr   = ccds[(int)subset[0].ccd];
 
-    line = fits_table_print (&table, subset[0].pathname, subset[0].filename, 
+    line = gfits_table_print (&table, subset[0].pathname, subset[0].filename, 
 			     subset[0].filter, subset[0].instrument, ccdstr,
 			     modestr, typestr, dummy, 
@@ -170,5 +170,5 @@
 			     obsstr, regstr);
 
-    fits_add_rows (&table, line, 1, strlen(line));
+    gfits_add_rows (&table, line, 1, strlen(line));
     free (line);
     free (obsstr);
@@ -176,8 +176,8 @@
   }
 
-  fits_write_header  (filename, &header);
-  fits_write_matrix  (filename, &matrix);
-  fits_write_Theader (filename, &theader);
-  fits_write_table   (filename, &table);
+  gfits_write_header  (filename, &header);
+  gfits_write_matrix  (filename, &matrix);
+  gfits_write_Theader (filename, &theader);
+  gfits_write_table   (filename, &table);
   exit (0);
 }
Index: /trunk/Ohana/src/imregister/include/imregister.h
===================================================================
--- /trunk/Ohana/src/imregister/include/imregister.h	(revision 7079)
+++ /trunk/Ohana/src/imregister/include/imregister.h	(revision 7080)
@@ -92,5 +92,5 @@
 
 void warn_scan (Header *header, char *field, char *format, int N, void *var);
-int fits_scan_nchar (Header *header, int size, char *field, int N,...);
+int gfits_scan_nchar (Header *header, int size, char *field, int N,...);
 void warn_scan_nchar (Header *header, int size, char *field, int N, void *var);
 
Index: /trunk/Ohana/src/imregister/photreg/delete.c
===================================================================
--- /trunk/Ohana/src/imregister/photreg/delete.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/photreg/delete.c	(revision 7080)
@@ -23,6 +23,6 @@
   if (Ndel == 0) { 
     fprintf (stderr, "SUCCESS\n");
-    fits_db_close (db);
-    fits_db_free (db);
+    gfits_db_close (db);
+    gfits_db_free (db);
     exit (0);
   }
@@ -38,8 +38,8 @@
   }
 
-  fits_table_set_PhotPars (&db[0].ftable, subset, Nsubset);
-  fits_db_save (db);
-  fits_db_close (db);
-  fits_db_free (db);
+  gfits_table_set_PhotPars (&db[0].ftable, subset, Nsubset);
+  gfits_db_save (db);
+  gfits_db_close (db);
+  gfits_db_free (db);
 
   fprintf (stderr, "SUCCESS\n");
Index: /trunk/Ohana/src/imregister/photreg/getImageData.c
===================================================================
--- /trunk/Ohana/src/imregister/photreg/getImageData.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/photreg/getImageData.c	(revision 7080)
@@ -11,5 +11,5 @@
 
   /* load options from the image header */
-  if (!fits_read_header (Image, &header)) {
+  if (!gfits_read_header (Image, &header)) {
     if (output.verbose) fprintf (stderr, "ERR: trouble reading image header\n");
     exit (1);
@@ -25,5 +25,5 @@
   /** determine photcode from header **/
   /* get camera */
-  fits_scan (&header, CameraKeyword, "%s", 1, detector);
+  gfits_scan (&header, CameraKeyword, "%s", 1, detector);
   for (i = 0; i < strlen(detector); i++) { detector[i] = toupper (detector[i]); }
   for (i = 0; i < strlen(detector); i++) { if (isspace (detector[i])) detector[i] = '.'; }
@@ -31,5 +31,5 @@
   /* get filter */
   Nfilter = FILTER_NONE;
-  fits_scan (&header, FilterKeyword,   "%s", 1, filter);
+  gfits_scan (&header, FilterKeyword,   "%s", 1, filter);
   for (i = 0; i < strlen (filter); i++) { if (isspace (filter[i])) filter[i] = '.'; }
   for (i = 0; (i < NFILTER) && (Nfilter == FILTER_NONE); i++) {
@@ -52,5 +52,5 @@
    } else {
      ccd = -1;
-     fits_scan (&header, CCDnumKeyword,  "%d", 1, &ccd);
+     gfits_scan (&header, CCDnumKeyword,  "%d", 1, &ccd);
    }  
    if (ccd == -1) {
Index: /trunk/Ohana/src/imregister/photreg/output.c
===================================================================
--- /trunk/Ohana/src/imregister/photreg/output.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/photreg/output.c	(revision 7080)
@@ -48,22 +48,22 @@
 
   /* create primary header */
-  fits_init_header (&header);    
+  gfits_init_header (&header);    
   header.extend = TRUE;
-  fits_create_header (&header);
-  fits_create_matrix (&header, &matrix);
-  fits_print (&header, "NEXTEND", "%d", 1, 1);
+  gfits_create_header (&header);
+  gfits_create_matrix (&header, &matrix);
+  gfits_print (&header, "NEXTEND", "%d", 1, 1);
 
   ftable.header = &theader;
-  fits_table_set_PhotPars (&ftable, subset, Nmatch);
+  gfits_table_set_PhotPars (&ftable, subset, Nmatch);
 
   /* EXTNAME is set to ZERO_POINTS_3.0 by default */
   if (!strcmp (output.db, "trans")) {
-    fits_modify (&theader, "EXTNAME", "%s", 1, "TRANS_POINTS_3.0");
-  }
-
-  fits_write_header  (filename, &header);
-  fits_write_matrix  (filename, &matrix);
-  fits_write_Theader (filename, &theader);
-  fits_write_table   (filename, &ftable);
+    gfits_modify (&theader, "EXTNAME", "%s", 1, "TRANS_POINTS_3.0");
+  }
+
+  gfits_write_header  (filename, &header);
+  gfits_write_matrix  (filename, &matrix);
+  gfits_write_Theader (filename, &theader);
+  gfits_write_table   (filename, &ftable);
   fclose (f);
   exit (0);
@@ -84,9 +84,9 @@
 
   /* create primary header */
-  fits_init_header (&header);    
+  gfits_init_header (&header);    
   header.extend = TRUE;
-  fits_create_header (&header);
-  fits_create_matrix (&header, &matrix);
-  fits_print (&header, "NEXTEND", "%d", 1, 1);
+  gfits_create_header (&header);
+  gfits_create_matrix (&header, &matrix);
+  gfits_print (&header, "NEXTEND", "%d", 1, 1);
   
   /* create table header */
@@ -96,62 +96,62 @@
     extname = strcreate ("SUMMARY_ZPTS");
   }
-  fits_create_table_header (&theader, "TABLE", extname);
+  gfits_create_table_header (&theader, "TABLE", extname);
     
   /* add current date/time to header */
   str_to_time ("now", &tsecond);
   datestr = sec_to_date ((unsigned int) tsecond);
-  fits_modify (&header,  "DATE", "%s", 1, datestr);
-  fits_modify (&theader, "DATE", "%s", 1, datestr);
+  gfits_modify (&header,  "DATE", "%s", 1, datestr);
+  gfits_modify (&theader, "DATE", "%s", 1, datestr);
   free (datestr);
      
   /* define table layout */
-  fits_define_table_column (&theader, "F8.4", "ZP_OBS",       "measured zero point",       "mag");
-  fits_define_table_column (&theader, "F8.4", "ZP_REF",       "nominal zero point",        "mag");
-  fits_define_table_column (&theader, "F7.4", "ZP_ERR",       "error on zero point",       "mag");
-  fits_define_table_column (&theader, "F7.3", "C_AIRMASS",    "airmass coeff",             "mag per airmass"); 
-  fits_define_table_column (&theader, "F6.3", "C_COLOR",      "color coeff",               "mag per mag");
-  fits_define_table_column (&theader, "A20",  "START_TIME",   "start time of measurement", "yyyy/mm/dd,hh:mm:ss");
-  fits_define_table_column (&theader, "A20",  "STOP_TIME",    "stop time of measurement",  "yyyy/mm/dd,hh:mm:ss");
-  fits_define_table_column (&theader, "A12",  "C1_NAME",      "filter 1 for color",        "");
-  fits_define_table_column (&theader, "A12",  "C2_NAME",      "filter 2 for color",        "");
-  fits_define_table_column (&theader, "I6",   "NSTARS",       "number of stars used",      "");
-  fits_define_table_column (&theader, "I6",   "NTIMES",       "number of unique images",   "");
-  fits_define_table_column (&theader, "A12",  "INT_PHOT_SYS", "internal photom system",    "");
-  fits_define_table_column (&theader, "A12",  "REF_PHOT_SYS", "reference photom system",   "");
-  fits_define_table_column (&theader, "A70",  "LABEL",        "data label",                "");
+  gfits_define_table_column (&theader, "F8.4", "ZP_OBS",       "measured zero point",       "mag");
+  gfits_define_table_column (&theader, "F8.4", "ZP_REF",       "nominal zero point",        "mag");
+  gfits_define_table_column (&theader, "F7.4", "ZP_ERR",       "error on zero point",       "mag");
+  gfits_define_table_column (&theader, "F7.3", "C_AIRMASS",    "airmass coeff",             "mag per airmass"); 
+  gfits_define_table_column (&theader, "F6.3", "C_COLOR",      "color coeff",               "mag per mag");
+  gfits_define_table_column (&theader, "A20",  "START_TIME",   "start time of measurement", "yyyy/mm/dd,hh:mm:ss");
+  gfits_define_table_column (&theader, "A20",  "STOP_TIME",    "stop time of measurement",  "yyyy/mm/dd,hh:mm:ss");
+  gfits_define_table_column (&theader, "A12",  "C1_NAME",      "filter 1 for color",        "");
+  gfits_define_table_column (&theader, "A12",  "C2_NAME",      "filter 2 for color",        "");
+  gfits_define_table_column (&theader, "I6",   "NSTARS",       "number of stars used",      "");
+  gfits_define_table_column (&theader, "I6",   "NTIMES",       "number of unique images",   "");
+  gfits_define_table_column (&theader, "A12",  "INT_PHOT_SYS", "internal photom system",    "");
+  gfits_define_table_column (&theader, "A12",  "REF_PHOT_SYS", "reference photom system",   "");
+  gfits_define_table_column (&theader, "A70",  "LABEL",        "data label",                "");
   
   /* define TNULL, TNVAL values */
-  fits_modify (&theader, "TNULL1",  "%s", 1, "NaN");   /* ZP_OBS     */
-  fits_modify (&theader, "TNULL2",  "%s", 1, "NaN");   /* ZP_REF     */
-  fits_modify (&theader, "TNULL3",  "%s", 1, "NaN");   /* ZP_ERR     */
-  fits_modify (&theader, "TNULL4",  "%s", 1, "NaN");   /* C_AIRMASS  */
-  fits_modify (&theader, "TNULL5",  "%s", 1, "NaN");   /* C_COLOR    */
-  fits_modify (&theader, "TNULL6",  "%s", 1, "NULL");  /* START_TIME */
-  fits_modify (&theader, "TNULL7",  "%s", 1, "NULL");  /* STOP_TIME  */
-  fits_modify (&theader, "TNULL8",  "%s", 1, "NULL");  /* C1_NAME    */
-  fits_modify (&theader, "TNULL9",  "%s", 1, "NULL");  /* C2_NAME    */
-  fits_modify (&theader, "TNULL10", "%s", 1, "NULL");  /* NSTARS     */
-  fits_modify (&theader, "TNULL11", "%s", 1, "NULL");  /* NTIMES     */
-  fits_modify (&theader, "TNULL12", "%s", 1, "NULL");  /* INT_PHOT_SYS */
-  fits_modify (&theader, "TNULL13", "%s", 1, "NULL");  /* REF_PHOT_SYS */
-  fits_modify (&theader, "TNULL14", "%s", 1, "NULL");  /* LABEL      */
-
-  fits_modify (&theader, "TNVAL1",  "%s", 1, "Inf");   /* ZP_OBS       */
-  fits_modify (&theader, "TNVAL2",  "%s", 1, "Inf");   /* ZP_REF       */
-  fits_modify (&theader, "TNVAL3",  "%s", 1, "Inf");   /* ZP_ERR       */
-  fits_modify (&theader, "TNVAL4",  "%s", 1, "Inf");   /* C_AIRMASS    */
-  fits_modify (&theader, "TNVAL5",  "%s", 1, "Inf");   /* C_COLOR      */
-  fits_modify (&theader, "TNVAL6",  "%s", 1, "NA");    /* START_TIME   */
-  fits_modify (&theader, "TNVAL7",  "%s", 1, "NA");    /* STOP_TIME    */
-  fits_modify (&theader, "TNVAL8",  "%s", 1, "NA");    /* C1_NAME      */
-  fits_modify (&theader, "TNVAL9",  "%s", 1, "NA");    /* C2_NAME      */
-  fits_modify (&theader, "TNVAL10", "%s", 1, "NA");    /* NSTARS       */
-  fits_modify (&theader, "TNVAL11", "%s", 1, "NA");    /* NTIMES       */
-  fits_modify (&theader, "TNVAL12", "%s", 1, "NA");    /* INT_PHOT_SYS */
-  fits_modify (&theader, "TNVAL13", "%s", 1, "NA");    /* REF_PHOT_SYS */
-  fits_modify (&theader, "TNVAL14", "%s", 1, "NA");    /* LABEL        */
+  gfits_modify (&theader, "TNULL1",  "%s", 1, "NaN");   /* ZP_OBS     */
+  gfits_modify (&theader, "TNULL2",  "%s", 1, "NaN");   /* ZP_REF     */
+  gfits_modify (&theader, "TNULL3",  "%s", 1, "NaN");   /* ZP_ERR     */
+  gfits_modify (&theader, "TNULL4",  "%s", 1, "NaN");   /* C_AIRMASS  */
+  gfits_modify (&theader, "TNULL5",  "%s", 1, "NaN");   /* C_COLOR    */
+  gfits_modify (&theader, "TNULL6",  "%s", 1, "NULL");  /* START_TIME */
+  gfits_modify (&theader, "TNULL7",  "%s", 1, "NULL");  /* STOP_TIME  */
+  gfits_modify (&theader, "TNULL8",  "%s", 1, "NULL");  /* C1_NAME    */
+  gfits_modify (&theader, "TNULL9",  "%s", 1, "NULL");  /* C2_NAME    */
+  gfits_modify (&theader, "TNULL10", "%s", 1, "NULL");  /* NSTARS     */
+  gfits_modify (&theader, "TNULL11", "%s", 1, "NULL");  /* NTIMES     */
+  gfits_modify (&theader, "TNULL12", "%s", 1, "NULL");  /* INT_PHOT_SYS */
+  gfits_modify (&theader, "TNULL13", "%s", 1, "NULL");  /* REF_PHOT_SYS */
+  gfits_modify (&theader, "TNULL14", "%s", 1, "NULL");  /* LABEL      */
+
+  gfits_modify (&theader, "TNVAL1",  "%s", 1, "Inf");   /* ZP_OBS       */
+  gfits_modify (&theader, "TNVAL2",  "%s", 1, "Inf");   /* ZP_REF       */
+  gfits_modify (&theader, "TNVAL3",  "%s", 1, "Inf");   /* ZP_ERR       */
+  gfits_modify (&theader, "TNVAL4",  "%s", 1, "Inf");   /* C_AIRMASS    */
+  gfits_modify (&theader, "TNVAL5",  "%s", 1, "Inf");   /* C_COLOR      */
+  gfits_modify (&theader, "TNVAL6",  "%s", 1, "NA");    /* START_TIME   */
+  gfits_modify (&theader, "TNVAL7",  "%s", 1, "NA");    /* STOP_TIME    */
+  gfits_modify (&theader, "TNVAL8",  "%s", 1, "NA");    /* C1_NAME      */
+  gfits_modify (&theader, "TNVAL9",  "%s", 1, "NA");    /* C2_NAME      */
+  gfits_modify (&theader, "TNVAL10", "%s", 1, "NA");    /* NSTARS       */
+  gfits_modify (&theader, "TNVAL11", "%s", 1, "NA");    /* NTIMES       */
+  gfits_modify (&theader, "TNVAL12", "%s", 1, "NA");    /* INT_PHOT_SYS */
+  gfits_modify (&theader, "TNVAL13", "%s", 1, "NA");    /* REF_PHOT_SYS */
+  gfits_modify (&theader, "TNVAL14", "%s", 1, "NA");    /* LABEL        */
 
   /* create table, add data values */
-  fits_create_table (&theader, &table);
+  gfits_create_table (&theader, &table);
   
   /* add data to table */
@@ -169,8 +169,8 @@
     if (c2      == (char *) NULL) c2      = PhotNA;
 
-    line = fits_table_print (&table, newdata[0].ZP, newdata[0].ZPo, newdata[0].dZP, 
+    line = gfits_table_print (&table, newdata[0].ZP, newdata[0].ZPo, newdata[0].dZP, 
 	      newdata[0].K, newdata[0].X, startstr, stopstr,
 	      c1, c2, newdata[0].Nmeas, newdata[0].Ntime, code, photsys, newdata[0].label);
-    if (!fits_add_rows (&table, line, 1, strlen(line))) {
+    if (!gfits_add_rows (&table, line, 1, strlen(line))) {
       fprintf (stderr, "error writing dataline");
       exit (1);
@@ -187,8 +187,8 @@
     exit (1);
   }
-  fits_fwrite_header  (f, &header);
-  fits_fwrite_matrix  (f, &matrix);
-  fits_fwrite_Theader (f, &theader);
-  fits_fwrite_table   (f, &table);
+  gfits_fwrite_header  (f, &header);
+  gfits_fwrite_matrix  (f, &matrix);
+  gfits_fwrite_Theader (f, &theader);
+  gfits_fwrite_table   (f, &table);
   fclose (f);
   exit (0);
Index: /trunk/Ohana/src/imregister/spreg/delete.c
===================================================================
--- /trunk/Ohana/src/imregister/spreg/delete.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/spreg/delete.c	(revision 7080)
@@ -22,5 +22,5 @@
   if (Nbad == 0) { 
     fprintf (stderr, "SUCCESS\n");
-    fits_db_close (db);
+    gfits_db_close (db);
     exit (0);
   }
@@ -39,8 +39,8 @@
   /** we may later want to pull this out and put it elsewhere **/
   /** free db[0].theader, db[0].table.buffer? **/
-  fits_table_set_Spectrum (&db[0].ftable, subset, Nsubset);
-  fits_db_save (db);
-  fits_db_close (db);
-  fits_db_free (db);
+  gfits_table_set_Spectrum (&db[0].ftable, subset, Nsubset);
+  gfits_db_save (db);
+  gfits_db_close (db);
+  gfits_db_free (db);
 
   fprintf (stderr, "SUCCESS\n");
Index: /trunk/Ohana/src/imregister/spreg/modify.c
===================================================================
--- /trunk/Ohana/src/imregister/spreg/modify.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/spreg/modify.c	(revision 7080)
@@ -38,11 +38,11 @@
 
   /** we may later want to pull this out and put it elsewhere **/
-  fits_vtable_from_ftable (&db[0].ftable, &db[0].vtable, match, Nmatch);
+  gfits_vtable_from_ftable (&db[0].ftable, &db[0].vtable, match, Nmatch);
   for (i = 0; i < Nmatch; i++) {
-    fits_convert_Spectrum ((Spectrum *) db[0].vtable.buffer[i], sizeof (Spectrum), 1);
+    gfits_convert_Spectrum ((Spectrum *) db[0].vtable.buffer[i], sizeof (Spectrum), 1);
   }
-  fits_db_update (db);
-  fits_db_close (db);
-  fits_db_free (db);
+  gfits_db_update (db);
+  gfits_db_close (db);
+  gfits_db_free (db);
 
   fprintf (stderr, "SUCCESS\n");
Index: /trunk/Ohana/src/imregister/spreg/output.c
===================================================================
--- /trunk/Ohana/src/imregister/spreg/output.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/spreg/output.c	(revision 7080)
@@ -54,17 +54,17 @@
 
   /* create primary header */
-  fits_init_header (&header);    
+  gfits_init_header (&header);    
   header.extend = TRUE;
-  fits_create_header (&header);
-  fits_create_matrix (&header, &matrix);
-  fits_print (&header, "NEXTEND", "%d", 1, 1);
+  gfits_create_header (&header);
+  gfits_create_matrix (&header, &matrix);
+  gfits_print (&header, "NEXTEND", "%d", 1, 1);
 
   ftable.header = &theader;
-  fits_table_set_Spectrum (&ftable, subset, Nmatch);
+  gfits_table_set_Spectrum (&ftable, subset, Nmatch);
 
-  fits_fwrite_header   (f, &header);
-  fits_fwrite_matrix   (f, &matrix);
-  fits_fwrite_Theader  (f, &theader);
-  fits_fwrite_table   (f, &ftable);
+  gfits_fwrite_header   (f, &header);
+  gfits_fwrite_matrix   (f, &matrix);
+  gfits_fwrite_Theader  (f, &theader);
+  gfits_fwrite_table   (f, &ftable);
   fclose (f);
   exit (0);
@@ -84,9 +84,9 @@
 
   /* create primary header */
-  fits_init_header (&header);    
+  gfits_init_header (&header);    
   header.extend = TRUE;
-  fits_create_header (&header);
-  fits_create_matrix (&header, &matrix);
-  fits_print (&header, "NEXTEND", "%d", 1, 1);
+  gfits_create_header (&header);
+  gfits_create_matrix (&header, &matrix);
+  gfits_print (&header, "NEXTEND", "%d", 1, 1);
   
   /* the ASCII table is always a little harder than the binary:
@@ -96,5 +96,5 @@
   /* create an empty table which we will fill in by hand */
   ftable.header = &theader;
-  fits_table_set_SpectrumASCII (&ftable, NULL, 0);
+  gfits_table_set_SpectrumASCII (&ftable, NULL, 0);
   
   /* add data to table */
@@ -105,5 +105,5 @@
 
     /* we should get an error here if we don't construct this line correctly */
-    line = fits_table_print (&ftable, subset[0].filename, subset[0].pathname, subset[0].instrument, 
+    line = gfits_table_print (&ftable, subset[0].filename, subset[0].pathname, subset[0].instrument, 
 			     subset[0].telescope, subset[0].objname, subset[0].extname, 
 			     subset[0].ra, subset[0].dec, subset[0].exptime, subset[0].airmass, 
@@ -112,5 +112,5 @@
 			     subset[0].mode, subset[0].state, subset[0].flag);
 
-    fits_add_rows (&ftable, line, 1, strlen(line));
+    gfits_add_rows (&ftable, line, 1, strlen(line));
     free (line);
     free (obsstr);
@@ -121,6 +121,6 @@
   str_to_time ("now", &tsecond);
   datestr = sec_to_date (tsecond);
-  fits_modify (&header,  "DATE", "%s", 1, datestr);
-  fits_modify (&theader, "DATE", "%s", 1, datestr);
+  gfits_modify (&header,  "DATE", "%s", 1, datestr);
+  gfits_modify (&theader, "DATE", "%s", 1, datestr);
 
   /* open file for output */
@@ -131,8 +131,8 @@
   }
 
-  fits_fwrite_header  (f, &header);
-  fits_fwrite_matrix  (f, &matrix);
-  fits_fwrite_Theader (f, &theader);
-  fits_fwrite_table   (f, &ftable);
+  gfits_fwrite_header  (f, &header);
+  gfits_fwrite_matrix  (f, &matrix);
+  gfits_fwrite_Theader (f, &theader);
+  gfits_fwrite_table   (f, &ftable);
   fclose (f);
 
Index: /trunk/Ohana/src/imregister/spreg/spinfo.c
===================================================================
--- /trunk/Ohana/src/imregister/spreg/spinfo.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/spreg/spinfo.c	(revision 7080)
@@ -15,5 +15,5 @@
 
   /* load in FITS header from image */
-  if (!fits_read_header (filename, &header)) {
+  if (!gfits_read_header (filename, &header)) {
     fprintf (stderr, "ERROR: can't find image file %s\n", filename);
     exit (1);
@@ -96,8 +96,8 @@
     warn_scan (&header, "CRPIX1", "%f", 1, &crpix);
     warn_scan (&header, "CRVAL1", "%f", 1, &crval);
-    if (!fits_scan (&header, "CDELT1", "%f", 1, &cd11))
+    if (!gfits_scan (&header, "CDELT1", "%f", 1, &cd11))
       warn_scan (&header, "CD1_1", "%f", 1, &cd11);
     
-    fits_scan (&header, "NAXIS1", "%d", 1, &Nx);
+    gfits_scan (&header, "NAXIS1", "%d", 1, &Nx);
 
     spectrum[0].Ws = (1  - crpix)*cd11 + crval;
Index: /trunk/Ohana/src/imregister/src/convertimreg.c
===================================================================
--- /trunk/Ohana/src/imregister/src/convertimreg.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/src/convertimreg.c	(revision 7080)
@@ -1,5 +1,5 @@
 # include "imregister.h"
 # include "imreg.h"
-static char *version = "convertimreg $Revision: 3.3 $";
+static char *version = "convertimreg $Revision: 3.4 $";
 
 int main (int argc, char **argv) {
@@ -34,5 +34,5 @@
 
   /* load in database header */
-  if (!fits_load_header (f, &header)) {
+  if (!gfits_load_header (f, &header)) {
     fprintf (stderr, "ERROR: trouble reading database header\n");
     fclearlockfile (argv[1], f, lockstate, &dbstate);
@@ -41,5 +41,5 @@
 
   /* load existing data from database */
-  fits_scan (&header, "NIMAGES", "%d", 1, &Nimage);
+  gfits_scan (&header, "NIMAGES", "%d", 1, &Nimage);
   ALLOCATE (pimage, RegImage, Nimage);
   status = fread (pimage, sizeof(RegImage), Nimage, f);
@@ -50,5 +50,5 @@
   }
   fclearlockfile (argv[1], f, lockstate, &dbstate);
-  fits_convert_RegImage (pimage, sizeof (RegImage), Nimage);
+  gfits_convert_RegImage (pimage, sizeof (RegImage), Nimage);
 
   /* create complete subset */
Index: /trunk/Ohana/src/imregister/src/detregister.c
===================================================================
--- /trunk/Ohana/src/imregister/src/detregister.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/src/detregister.c	(revision 7080)
@@ -1,5 +1,5 @@
 # include "imregister.h"
 # include "detrend.h"
-static char *version = "detregister $Revision: 3.4 $";
+static char *version = "detregister $Revision: 3.5 $";
 
 int main (int argc, char **argv) {
@@ -19,30 +19,30 @@
   db.lockstate = LCK_HARD;
   db.timeout   = 300.0;
-  fits_db_init (&db);
+  gfits_db_init (&db);
 
   dBFile = set_dBFile ();
-  if (!fits_db_lock (&db, dBFile)) {
+  if (!gfits_db_lock (&db, dBFile)) {
     fprintf (stderr, "ERROR: failure to lock db\n");
-    fits_db_close (&db);
+    gfits_db_close (&db);
     exit (1);
   }
   if (db.dbstate == LCK_EMPTY) {
-    fits_db_create (&db);    
-    fits_table_set_DetReg (&db.ftable, NULL, 0);
+    gfits_db_create (&db);    
+    gfits_table_set_DetReg (&db.ftable, NULL, 0);
   } else {  
-    if (!fits_db_load (&db)) {
+    if (!gfits_db_load (&db)) {
       fprintf (stderr, "ERROR: failure to load db\n");
-      fits_db_close (&db);
+      gfits_db_close (&db);
       exit (1);
     }
   }
 
-  fits_convert_DetReg (&newdata, sizeof (DetReg), 1);
-  fits_table_to_vtable (&db.ftable, &db.vtable, 0, 0);
-  fits_vadd_rows (&db.vtable, (char *) &newdata, 1, sizeof(DetReg));
+  gfits_convert_DetReg (&newdata, sizeof (DetReg), 1);
+  gfits_table_to_vtable (&db.ftable, &db.vtable, 0, 0);
+  gfits_vadd_rows (&db.vtable, (char *) &newdata, 1, sizeof(DetReg));
 
-  fits_db_update (&db);
-  fits_db_close (&db);
-  fits_db_free (&db);
+  gfits_db_update (&db);
+  gfits_db_close (&db);
+  gfits_db_free (&db);
 
   fprintf (stderr, "SUCCESS\n");
Index: /trunk/Ohana/src/imregister/src/detsearch.c
===================================================================
--- /trunk/Ohana/src/imregister/src/detsearch.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/src/detsearch.c	(revision 7080)
@@ -1,5 +1,5 @@
 # include "imregister.h"
 # include "detrend.h"
-static char *version = "detsearch $Revision: 3.7 $";
+static char *version = "detsearch $Revision: 3.8 $";
 
 int main (int argc, char **argv) {
@@ -19,21 +19,21 @@
   db.lockstate = (output.Modify || output.Delete) ? LCK_HARD : LCK_SOFT;
   db.timeout   = 300.0;
-  fits_db_init (&db);
+  gfits_db_init (&db);
 
   dBFile = set_dBFile ();
-  if (!fits_db_lock (&db, dBFile)) {
+  if (!gfits_db_lock (&db, dBFile)) {
     fprintf (stderr, "ERROR: failure to lock db\n");
-    fits_db_close (&db);
+    gfits_db_close (&db);
     exit (1);
   }
   
-  if (!fits_db_load (&db)) {
+  if (!gfits_db_load (&db)) {
     fprintf (stderr, "ERROR: failure to load db\n");
-    fits_db_close (&db);
+    gfits_db_close (&db);
     exit (1);
   }
 
-  if (!output.Modify && !output.Delete && !output.Altpath) fits_db_close (&db);
-  detrend = fits_table_get_DetReg (&db.ftable, &Ndetrend, &db.swapped);
+  if (!output.Modify && !output.Delete && !output.Altpath) gfits_db_close (&db);
+  detrend = gfits_table_get_DetReg (&db.ftable, &Ndetrend, &db.swapped);
   
   match = MatchCriteria (detrend, Ndetrend, &Nmatch);          /* match basic criteria */
@@ -45,5 +45,5 @@
     if (Nmatch == 0) {
       if (output.verbose) fprintf (stderr, "ERROR: can't find any valid detrend files (%s %s %d)\n", get_type_name(criteria[0].Type), filtername[criteria[0].Filter], criteria[0].CCD);
-      fits_db_close (&db);
+      gfits_db_close (&db);
       exit (1);
     }
Index: /trunk/Ohana/src/imregister/src/imphotmerge.c
===================================================================
--- /trunk/Ohana/src/imregister/src/imphotmerge.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/src/imphotmerge.c	(revision 7080)
@@ -4,5 +4,5 @@
 
 Image *LoadImageTable (FILE *f, Header *header, int *nimage);
-static char *version = "imphotcopy $Revision: 1.4 $";
+static char *version = "imphotcopy $Revision: 1.5 $";
 
 int main (int argc, char **argv) {
@@ -118,5 +118,5 @@
   }
   Nimage += Nin;
-  fits_modify (&header, "NIMAGES", "%d", 1, Nimage);
+  gfits_modify (&header, "NIMAGES", "%d", 1, Nimage);
 
   /* position to begining of file to write header */
@@ -150,5 +150,5 @@
 
   /* read header */
-  if (!fits_fread_header (f, header)) {
+  if (!gfits_fread_header (f, header)) {
     fprintf (stderr, "ERROR: can't read image catalog\n");
     exit (1);
@@ -157,5 +157,5 @@
   /* check that file size makes sense */
   Nimage = 0;
-  fits_scan (header, "NIMAGES", "%d", 1, &Nimage);
+  gfits_scan (header, "NIMAGES", "%d", 1, &Nimage);
   if (fstat (fileno(f), &filestatus) == -1) {
     fprintf (stderr, "ERROR: failed to get status of image catalog\n");
Index: /trunk/Ohana/src/imregister/src/imphotsearch.c
===================================================================
--- /trunk/Ohana/src/imregister/src/imphotsearch.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/src/imphotsearch.c	(revision 7080)
@@ -2,5 +2,5 @@
 # include "imphot.h"
 
-static char *version = "imphotsearch $Revision: 1.9 $";
+static char *version = "imphotsearch $Revision: 1.10 $";
 
 int main (int argc, char **argv) {
@@ -16,21 +16,21 @@
   db.lockstate = (options.modify) ? LCK_HARD : LCK_SOFT;
   db.timeout   = 300.0;
-  fits_db_init (&db);
+  gfits_db_init (&db);
 
   /* don't create a new image table if not available */
-  if (!fits_db_lock (&db, ImPhotDB)) {
+  if (!gfits_db_lock (&db, ImPhotDB)) {
     fprintf (stderr, "ERROR: failure to lock db\n");
-    fits_db_close (&db);
+    gfits_db_close (&db);
     exit (1);
   }
-  /* we use a varient of fits_db_load since the file may be in text format */
+  /* we use a varient of gfits_db_load since the file may be in text format */
   if (!dvo_image_load (&db, VERBOSE, FORCE_READ)) {
     fprintf (stderr, "ERROR: failure to load db\n");
-    fits_db_close (&db);
+    gfits_db_close (&db);
     exit (1);
   }
-  if (!options.modify) fits_db_close (&db);
+  if (!options.modify) gfits_db_close (&db);
 
-  image = fits_table_get_Image (&db.ftable, &Nimage, &db.swapped);
+  image = gfits_table_get_Image (&db.ftable, &Nimage, &db.swapped);
 
   match = subset (image, Nimage, &Nmatch);
Index: /trunk/Ohana/src/imregister/src/imregister.c
===================================================================
--- /trunk/Ohana/src/imregister/src/imregister.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/src/imregister.c	(revision 7080)
@@ -1,5 +1,5 @@
 # include "imregister.h"
 # include "imreg.h"
-static char *version = "imregister $Revision: 3.7 $";
+static char *version = "imregister $Revision: 3.8 $";
 
 int main (int argc, char **argv) {
@@ -19,29 +19,29 @@
   db.lockstate = LCK_HARD;
   db.timeout   = 300.0;
-  fits_db_init (&db);
+  gfits_db_init (&db);
 
-  if (!fits_db_lock (&db, ImageDB)) {
+  if (!gfits_db_lock (&db, ImageDB)) {
     fprintf (stderr, "ERROR: failure to lock db\n");
-    fits_db_close (&db);
+    gfits_db_close (&db);
     exit (1);
   }
   if (db.dbstate == LCK_EMPTY) {
-    fits_db_create (&db);
-    fits_table_set_RegImage (&db.ftable, NULL, 0);
+    gfits_db_create (&db);
+    gfits_table_set_RegImage (&db.ftable, NULL, 0);
   } else {  
-    if (!fits_db_load (&db)) {
+    if (!gfits_db_load (&db)) {
       fprintf (stderr, "ERROR: failure to load db\n");
-      fits_db_close (&db);
+      gfits_db_close (&db);
       exit (1);
     }
   }
 
-  fits_convert_RegImage (regimage, sizeof (RegImage), Nregimage);
-  fits_table_to_vtable (&db.ftable, &db.vtable, 0, 0);
-  fits_vadd_rows (&db.vtable, (char *) regimage, Nregimage, sizeof(RegImage));
+  gfits_convert_RegImage (regimage, sizeof (RegImage), Nregimage);
+  gfits_table_to_vtable (&db.ftable, &db.vtable, 0, 0);
+  gfits_vadd_rows (&db.vtable, (char *) regimage, Nregimage, sizeof(RegImage));
 
-  fits_db_update (&db);
-  fits_db_close (&db);
-  fits_db_free (&db);
+  gfits_db_update (&db);
+  gfits_db_close (&db);
+  gfits_db_free (&db);
 
 skip_reg:
Index: /trunk/Ohana/src/imregister/src/imregtable.c
===================================================================
--- /trunk/Ohana/src/imregister/src/imregtable.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/src/imregtable.c	(revision 7080)
@@ -1,5 +1,5 @@
 # include "imregister.h"
 # include "imreg.h"
-static char *version = "imregtable $Revision: 3.7 $";
+static char *version = "imregtable $Revision: 3.8 $";
 
 int main (int argc, char **argv) {
@@ -29,38 +29,38 @@
   /* need to error check these */
   ftable.header = &theader;
-  fits_read_header  (infile, &header);
-  fits_read_matrix  (infile, &matrix);
-  fits_read_ftable  (infile, &ftable, "IMAGE_DATABASE");
+  gfits_read_header  (infile, &header);
+  gfits_read_matrix  (infile, &matrix);
+  gfits_read_ftable  (infile, &ftable, "IMAGE_DATABASE");
 
-  image = fits_table_get_RegImage (&ftable, &Nimage, NULL);
+  image = gfits_table_get_RegImage (&ftable, &Nimage, NULL);
 
   /* load database table */
   db.lockstate = LCK_HARD;
   db.timeout   = 300.0;
-  fits_db_init (&db);
+  gfits_db_init (&db);
 
-  if (!fits_db_lock (&db, ImageDB)) {
+  if (!gfits_db_lock (&db, ImageDB)) {
     fprintf (stderr, "ERROR: failure to lock db\n");
-    fits_db_close (&db);
+    gfits_db_close (&db);
     exit (1);
   }
   if (db.dbstate == LCK_EMPTY) {
-    fits_db_create (&db);
-    fits_table_set_RegImage (&db.ftable, NULL, 0);
+    gfits_db_create (&db);
+    gfits_table_set_RegImage (&db.ftable, NULL, 0);
   } else {  
-    if (!fits_db_load (&db)) {
+    if (!gfits_db_load (&db)) {
       fprintf (stderr, "ERROR: failure to load db\n");
-      fits_db_close (&db);
+      gfits_db_close (&db);
       exit (1);
     }
   }
 
-  fits_convert_RegImage (image, sizeof (RegImage), Nimage);
-  fits_table_to_vtable (&db.ftable, &db.vtable, 0, 0);
-  fits_vadd_rows (&db.vtable, (char *) image, Nimage, sizeof(RegImage));
+  gfits_convert_RegImage (image, sizeof (RegImage), Nimage);
+  gfits_table_to_vtable (&db.ftable, &db.vtable, 0, 0);
+  gfits_vadd_rows (&db.vtable, (char *) image, Nimage, sizeof(RegImage));
 
-  fits_db_update (&db);
-  fits_db_close (&db);
-  fits_db_free (&db);
+  gfits_db_update (&db);
+  gfits_db_close (&db);
+  gfits_db_free (&db);
 
   fprintf (stderr, "SUCCESS: registered %s\n", argv[1]);
Index: /trunk/Ohana/src/imregister/src/imsearch.c
===================================================================
--- /trunk/Ohana/src/imregister/src/imsearch.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/src/imsearch.c	(revision 7080)
@@ -1,5 +1,5 @@
 # include "imregister.h"
 # include "imreg.h"
-static char *version = "imsearch $Revision: 3.6 $";
+static char *version = "imsearch $Revision: 3.7 $";
 
 int main (int argc, char **argv) {
@@ -14,20 +14,20 @@
   db.lockstate = (output.modify || output.delete) ? LCK_HARD : LCK_SOFT;
   db.timeout   = 300.0;
-  fits_db_init (&db);
+  gfits_db_init (&db);
 
-  if (!fits_db_lock (&db, ImageDB)) {
+  if (!gfits_db_lock (&db, ImageDB)) {
     fprintf (stderr, "ERROR: failure to lock db\n");
-    fits_db_close (&db);
+    gfits_db_close (&db);
     exit (1);
   }
-  if (!fits_db_load (&db)) {
+  if (!gfits_db_load (&db)) {
     fprintf (stderr, "ERROR: failure to load db\n");
-    fits_db_close (&db);
+    gfits_db_close (&db);
     exit (1);
   }
 
-  if (!output.modify && !output.delete) fits_db_close (&db);
+  if (!output.modify && !output.delete) gfits_db_close (&db);
 
-  image = fits_table_get_RegImage (&db.ftable, &Nimage, &db.swapped);
+  image = gfits_table_get_RegImage (&db.ftable, &Nimage, &db.swapped);
   
   match = match_criteria (image, Nimage, &Nmatch);
Index: /trunk/Ohana/src/imregister/src/imstatreg.c
===================================================================
--- /trunk/Ohana/src/imregister/src/imstatreg.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/src/imstatreg.c	(revision 7080)
@@ -1,5 +1,5 @@
 # include "imregister.h"
 # include "imreg.h"
-static char *version = "imstatreg $Revision: 3.15 $";
+static char *version = "imstatreg $Revision: 3.16 $";
 
 int main (int argc, char **argv) {
@@ -42,9 +42,9 @@
   image_db.lockstate = LCK_HARD;
   image_db.timeout   = 300.0;
-  fits_db_init (&image_db);
+  gfits_db_init (&image_db);
 
   temp_db.lockstate = LCK_HARD;
   temp_db.timeout   = 300.0;
-  fits_db_init (&temp_db);
+  gfits_db_init (&temp_db);
 
   /* start loop */
@@ -52,6 +52,6 @@
 
     /* check / load / delete temporary database */
-    if (!fits_db_lock (&temp_db, TempDB)) {
-      fits_db_close (&temp_db);
+    if (!gfits_db_lock (&temp_db, TempDB)) {
+      gfits_db_close (&temp_db);
       fprintf (stderr, "error locking temp db (path missing? access permission?)\n");
       exit (1);
@@ -59,22 +59,22 @@
     if (temp_db.dbstate == LCK_EMPTY) {
       fprintf (stderr, "temporary database empty\n");
-      fits_db_close (&temp_db);
+      gfits_db_close (&temp_db);
       goto next;
     } 
-    if (!fits_db_load (&temp_db)) {
+    if (!gfits_db_load (&temp_db)) {
       fprintf (stderr, "error reading temp db\n");
       exit (1);
     }
-    subset = fits_table_get_RegImage (&temp_db.ftable, &Nsubset, &temp_db.swapped);
+    subset = gfits_table_get_RegImage (&temp_db.ftable, &Nsubset, &temp_db.swapped);
     fprintf (stderr, "temporary database read\n");
 
     /* delete, unlock existing database */
     truncate (TempDB, 0);
-    fits_db_close (&temp_db);
+    gfits_db_close (&temp_db);
     fprintf (stderr, "temporary database closed\n");
  
     /* check / load main database */
-    if (!fits_db_lock (&image_db, ImageDB)) {
-      fits_db_close (&image_db);
+    if (!gfits_db_lock (&image_db, ImageDB)) {
+      gfits_db_close (&image_db);
       fprintf (stderr, "error locking image db (path missing? access permission?)\n");
       exit (1);
@@ -82,6 +82,6 @@
     if (temp_db.dbstate == LCK_EMPTY) {
       fprintf (stderr, "main database empty\n");
-      fits_db_close (&image_db);
-      fits_db_free (&temp_db);
+      gfits_db_close (&image_db);
+      gfits_db_free (&temp_db);
       goto next;
       /* this is a type of error: we read entries from the
@@ -89,5 +89,5 @@
 	 we will just drop the temp db data */
     }
-    image = fits_table_get_RegImage (&image_db.ftable, &Nimage, &image_db.swapped);
+    image = gfits_table_get_RegImage (&image_db.ftable, &Nimage, &image_db.swapped);
     fprintf (stderr, "main database read\n");
 
@@ -97,13 +97,13 @@
 
     /* update entries in main db */
-    fits_vtable_from_ftable (&image_db.ftable, &image_db.vtable, match, Nmatch);
+    gfits_vtable_from_ftable (&image_db.ftable, &image_db.vtable, match, Nmatch);
     for (i = 0; i < Nmatch; i++) {
-      fits_convert_RegImage ((RegImage *) image_db.vtable.buffer[i], sizeof (RegImage), 1);
+      gfits_convert_RegImage ((RegImage *) image_db.vtable.buffer[i], sizeof (RegImage), 1);
     }
-    fits_db_update (&image_db);
-    fits_db_close (&image_db);
+    gfits_db_update (&image_db);
+    gfits_db_close (&image_db);
 
-    fits_db_free (&image_db);
-    fits_db_free (&temp_db);
+    gfits_db_free (&image_db);
+    gfits_db_free (&temp_db);
     if (match != NULL) free (match);
     if (image != NULL) free (image);
Index: /trunk/Ohana/src/imregister/src/photcode.c
===================================================================
--- /trunk/Ohana/src/imregister/src/photcode.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/src/photcode.c	(revision 7080)
@@ -1,4 +1,4 @@
 # include "imregister.h"
-static char *version = "photcode $Revision: 3.3 $";
+static char *version = "photcode $Revision: 3.4 $";
 
 int main (int argc, char **argv) {
@@ -25,14 +25,14 @@
 
   /* read in image header */
-  if (!fits_read_header (argv[1], &header)) {
+  if (!gfits_read_header (argv[1], &header)) {
     if (VERBOSE) fprintf (stderr, "ERROR: can't find image file %s (1)\n", argv[1]);
     exit (1);
   }
 
-  fits_scan (&header, CameraKeyword, "%s", 1, detector);
+  gfits_scan (&header, CameraKeyword, "%s", 1, detector);
   for (i = 0; i < strlen(detector); i++) { detector[i] = toupper (detector[i]); }
   for (i = 0; i < strlen(detector); i++) { if (isspace (detector[i])) detector[i] = '.'; }
 
-  fits_scan (&header, FilterKeyword,   "%s", 1, filter);
+  gfits_scan (&header, FilterKeyword,   "%s", 1, filter);
   for (i = 0; i < strlen (filter); i++) { if (isspace (filter[i])) filter[i] = '.'; }
   Nfilter = FILTER_NONE;
@@ -52,5 +52,5 @@
   } else {
     ALLOCATE (ID, char, 80);
-    fits_scan (&header, CCDnumKeyword,  "%s", 1, ID);
+    gfits_scan (&header, CCDnumKeyword,  "%s", 1, ID);
   }
   ccd = -1;
Index: /trunk/Ohana/src/imregister/src/photreg.c
===================================================================
--- /trunk/Ohana/src/imregister/src/photreg.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/src/photreg.c	(revision 7080)
@@ -1,5 +1,5 @@
 # include "imregister.h"
 # include "photreg.h"
-static char *version = "photreg $Revision: 1.8 $";
+static char *version = "photreg $Revision: 1.9 $";
 
 int main (int argc, char **argv) {
@@ -14,25 +14,25 @@
   db.lockstate = LCK_HARD;
   db.timeout   = 300.0;
-  fits_db_init (&db);
+  gfits_db_init (&db);
 
   filename = PhotDB;
   if (!strcmp (output.db, "trans")) filename = TransDB;
 
-  if (!fits_db_lock (&db, filename)) {
+  if (!gfits_db_lock (&db, filename)) {
     fprintf (stderr, "ERROR: failure to lock db\n");
-    fits_db_close (&db);
+    gfits_db_close (&db);
     exit (1);
   }
   if (db.dbstate == LCK_EMPTY) {
-    fits_db_create (&db);
-    fits_table_set_PhotPars (&db.ftable, NULL, 0);
+    gfits_db_create (&db);
+    gfits_table_set_PhotPars (&db.ftable, NULL, 0);
     /* EXTNAME is set to ZERO_POINTS_3.0 by default */
     if (!strcmp (output.db, "trans")) {
-      fits_modify (&db.theader, "EXTNAME", "%s", 1, "TRANS_POINTS_3.0");
+      gfits_modify (&db.theader, "EXTNAME", "%s", 1, "TRANS_POINTS_3.0");
     }
   } else {  
-    if (!fits_db_load (&db)) {
+    if (!gfits_db_load (&db)) {
       fprintf (stderr, "ERROR: failure to load db\n");
-      fits_db_close (&db);
+      gfits_db_close (&db);
       exit (1);
     }
@@ -40,11 +40,11 @@
 
   /** we may later want to pull this out and put it elsewhere **/
-  fits_convert_PhotPars (&newdata, sizeof (PhotPars), 1);
-  fits_table_to_vtable (&db.ftable, &db.vtable, 0, 0);
-  fits_vadd_rows (&db.vtable, (char *) &newdata, 1, sizeof(PhotPars));
+  gfits_convert_PhotPars (&newdata, sizeof (PhotPars), 1);
+  gfits_table_to_vtable (&db.ftable, &db.vtable, 0, 0);
+  gfits_vadd_rows (&db.vtable, (char *) &newdata, 1, sizeof(PhotPars));
 
-  fits_db_update (&db);
-  fits_db_close (&db);
-  fits_db_free (&db);
+  gfits_db_update (&db);
+  gfits_db_close (&db);
+  gfits_db_free (&db);
 
   fprintf (stderr, "SUCCESS\n");
Index: /trunk/Ohana/src/imregister/src/photsearch.c
===================================================================
--- /trunk/Ohana/src/imregister/src/photsearch.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/src/photsearch.c	(revision 7080)
@@ -1,5 +1,5 @@
 # include "imregister.h"
 # include "photreg.h"
-static char *version = "photsearch $Revision: 1.8 $";
+static char *version = "photsearch $Revision: 1.9 $";
 
 int main (int argc, char **argv) {
@@ -17,5 +17,5 @@
   db.lockstate = (output.modify || output.delete) ? LCK_HARD : LCK_SOFT;
   db.timeout   = 300.0;
-  fits_db_init (&db);
+  gfits_db_init (&db);
 
   if (!strcmp (output.db, "phot")) {
@@ -25,24 +25,24 @@
   }
 
-  if (!fits_db_lock (&db, filename)) {
+  if (!gfits_db_lock (&db, filename)) {
     fprintf (stderr, "ERROR: failure to lock db\n");
-    fits_db_close (&db);
+    gfits_db_close (&db);
     exit (1);
   }
   
-  if (!fits_db_load (&db)) {
+  if (!gfits_db_load (&db)) {
     fprintf (stderr, "ERROR: failure to load db\n");
-    fits_db_close (&db);
+    gfits_db_close (&db);
     exit (1);
   }
 
-  if (!output.modify && !output.delete) fits_db_close (&db);
+  if (!output.modify && !output.delete) gfits_db_close (&db);
 
   /* add test to EXTNAME? */
   if (output.convert) {
-    photpars_old = fits_table_get_PhotParsOld (&db.ftable, &Nphotpars, &db.swapped);
+    photpars_old = gfits_table_get_PhotParsOld (&db.ftable, &Nphotpars, &db.swapped);
     photpars = PhotParsOld_to_PhotPars (photpars_old, Nphotpars);
   } else {
-    photpars = fits_table_get_PhotPars (&db.ftable, &Nphotpars, &db.swapped);
+    photpars = gfits_table_get_PhotPars (&db.ftable, &Nphotpars, &db.swapped);
   }
 
Index: /trunk/Ohana/src/imregister/src/spregister.c
===================================================================
--- /trunk/Ohana/src/imregister/src/spregister.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/src/spregister.c	(revision 7080)
@@ -1,5 +1,5 @@
 # include "imregister.h"
 # include "spreg.h"
-static char *version = "spregister $Revision: 1.8 $";
+static char *version = "spregister $Revision: 1.9 $";
 
 int main (int argc, char **argv) {
@@ -19,29 +19,29 @@
   db.lockstate = LCK_HARD;
   db.timeout   = 300.0;
-  fits_db_init (&db);
+  gfits_db_init (&db);
 
-  if (!fits_db_lock (&db, SpectrumDB)) {
+  if (!gfits_db_lock (&db, SpectrumDB)) {
     fprintf (stderr, "ERROR: failure to lock db\n");
-    fits_db_close (&db);
+    gfits_db_close (&db);
     exit (1);
   }
   if (db.dbstate == LCK_EMPTY) {
-    fits_db_create (&db);
-    fits_table_set_Spectrum (&db.ftable, NULL, 0);
+    gfits_db_create (&db);
+    gfits_table_set_Spectrum (&db.ftable, NULL, 0);
   } else {  
-    if (!fits_db_load (&db)) {
+    if (!gfits_db_load (&db)) {
       fprintf (stderr, "ERROR: failure to load db\n");
-      fits_db_close (&db);
+      gfits_db_close (&db);
       exit (1);
     }
   }
 
-  fits_convert_Spectrum (spectrum, sizeof (Spectrum), 1);
-  fits_table_to_vtable (&db.ftable, &db.vtable, 0, 0);
-  fits_vadd_rows (&db.vtable, (char *) spectrum, 1, sizeof(Spectrum));
+  gfits_convert_Spectrum (spectrum, sizeof (Spectrum), 1);
+  gfits_table_to_vtable (&db.ftable, &db.vtable, 0, 0);
+  gfits_vadd_rows (&db.vtable, (char *) spectrum, 1, sizeof(Spectrum));
 
-  fits_db_update (&db);
-  fits_db_close (&db);
-  fits_db_free (&db);
+  gfits_db_update (&db);
+  gfits_db_close (&db);
+  gfits_db_free (&db);
 
   fprintf (stderr, "SUCCESS\n");
Index: /trunk/Ohana/src/imregister/src/spsearch.c
===================================================================
--- /trunk/Ohana/src/imregister/src/spsearch.c	(revision 7079)
+++ /trunk/Ohana/src/imregister/src/spsearch.c	(revision 7080)
@@ -1,5 +1,5 @@
 # include "imregister.h"
 # include "spreg.h"
-static char *version = "spsearch $Revision: 1.7 $";
+static char *version = "spsearch $Revision: 1.8 $";
 
 int main (int argc, char **argv) {
@@ -14,20 +14,20 @@
   db.lockstate = (output.modify || output.delete) ? LCK_HARD : LCK_SOFT;
   db.timeout   = 300.0;
-  fits_db_init (&db);
+  gfits_db_init (&db);
 
-  if (!fits_db_lock (&db, SpectrumDB)) {
+  if (!gfits_db_lock (&db, SpectrumDB)) {
     fprintf (stderr, "ERROR: failure to lock db\n");
-    fits_db_close (&db);
+    gfits_db_close (&db);
     exit (1);
   }
-  if (!fits_db_load (&db)) {
+  if (!gfits_db_load (&db)) {
     fprintf (stderr, "ERROR: failure to load db\n");
-    fits_db_close (&db);
+    gfits_db_close (&db);
     exit (1);
   }
 
-  if (!output.modify && !output.delete) fits_db_close (&db);
+  if (!output.modify && !output.delete) gfits_db_close (&db);
 
-  spectrum = fits_table_get_Spectrum (&db.ftable, &Nspectrum, &db.swapped);
+  spectrum = gfits_table_get_Spectrum (&db.ftable, &Nspectrum, &db.swapped);
   
   match = match_criteria (spectrum, Nspectrum, &Nmatch);
Index: /trunk/Ohana/src/kapa/doc/ChangeLog.txt
===================================================================
--- /trunk/Ohana/src/kapa/doc/ChangeLog.txt	(revision 7079)
+++ /trunk/Ohana/src/kapa/doc/ChangeLog.txt	(revision 7080)
@@ -1,2 +1,7 @@
+
+- kapa 1.6
+  * converted to gfits APIs (forces libfits 1.6)
+  * removed items moved to libkapa
+   
 
 - kapa 1.5
Index: /trunk/Ohana/src/kii/doc/ChangeLog.txt
===================================================================
--- /trunk/Ohana/src/kii/doc/ChangeLog.txt	(revision 7079)
+++ /trunk/Ohana/src/kii/doc/ChangeLog.txt	(revision 7080)
@@ -1,2 +1,7 @@
+
+- kii 1.6
+  * converted to gfits APIs (forces libfits 1.6)
+  * added keyboard events
+  * removed items moved to libkapa
 
 - kii 1.5
Index: /trunk/Ohana/src/kii/picture/NewPicture.c
===================================================================
--- /trunk/Ohana/src/kii/picture/NewPicture.c	(revision 7079)
+++ /trunk/Ohana/src/kii/picture/NewPicture.c	(revision 7080)
@@ -24,6 +24,6 @@
   KiiScanMessage (socket, "%s %s %s", layout[0].coords.ctype, layout[0].file, layout[0].buffer_name);
 
-  fits_free_matrix (&layout[0].matrix);
-  fits_create_matrix (&header, &layout[0].matrix);
+  gfits_free_matrix (&layout[0].matrix);
+  gfits_create_matrix (&header, &layout[0].matrix);
 
   fcntl (socket, F_SETFL, O_NONBLOCK);  
Index: /trunk/Ohana/src/kii/picture/TestPicture.c
===================================================================
--- /trunk/Ohana/src/kii/picture/TestPicture.c	(revision 7079)
+++ /trunk/Ohana/src/kii/picture/TestPicture.c	(revision 7080)
@@ -12,5 +12,5 @@
   double frac;
 
-  fits_free_matrix (&layout[0].matrix);
+  gfits_free_matrix (&layout[0].matrix);
 
   header.Naxes = 2;
@@ -27,5 +27,5 @@
   layout[0].max = layout[0].Npixels;
   
-  fits_create_matrix (&header, &layout[0].matrix);
+  gfits_create_matrix (&header, &layout[0].matrix);
 
   frac = layout[0].Npixels / (512.0*512.0);
Index: /trunk/Ohana/src/libautocode/def/autocode.c
===================================================================
--- /trunk/Ohana/src/libautocode/def/autocode.c	(revision 7079)
+++ /trunk/Ohana/src/libautocode/def/autocode.c	(revision 7080)
@@ -1,5 +1,5 @@
 # include "autocode.h"
 
-int fits_convert_$STRUCT ($STRUCT *data, int size, int nitems) {
+int gfits_convert_$STRUCT ($STRUCT *data, int size, int nitems) {
 
   int i;
@@ -28,5 +28,5 @@
 /*** add test of EXTNAME and header-defined columns? ***/
 /* return internal structure representation */
-$STRUCT *fits_table_get_$STRUCT (FTable *ftable, int *Ndata, int *swapped) {
+$STRUCT *gfits_table_get_$STRUCT (FTable *ftable, int *Ndata, int *swapped) {
 
   $STRUCT *data;
@@ -35,5 +35,5 @@
   data = ($STRUCT *) ftable[0].buffer;
   if ((swapped == NULL) || (*swapped == FALSE)) {
-    fits_convert_$STRUCT (data, sizeof ($STRUCT), *Ndata);
+    gfits_convert_$STRUCT (data, sizeof ($STRUCT), *Ndata);
     if (swapped != NULL) *swapped = TRUE;
   }
@@ -41,5 +41,5 @@
 }
 
-int fits_table_set_$STRUCT (FTable *ftable, $STRUCT *data, int Ndata) {
+int gfits_table_set_$STRUCT (FTable *ftable, $STRUCT *data, int Ndata) {
 
   Header *header;
@@ -48,5 +48,5 @@
 
   /* create table header */
-  fits_create_table_header (header, "$TYPE", "$EXTNAME");
+  gfits_create_table_header (header, "$TYPE", "$EXTNAME");
 
   /* define table layout */
@@ -54,17 +54,17 @@
 
   /* create table */
-  fits_create_table (header, ftable);
+  gfits_create_table (header, ftable);
 
   /* add data values */
-  fits_convert_$STRUCT (data, sizeof ($STRUCT), Ndata);
-  fits_add_rows (ftable, (char *) data, Ndata, sizeof ($STRUCT));
+  gfits_convert_$STRUCT (data, sizeof ($STRUCT), Ndata);
+  gfits_add_rows (ftable, (char *) data, Ndata, sizeof ($STRUCT));
 
   return (TRUE);
 }
 
-int fits_table_mkheader_$STRUCT (Header *header) {
+int gfits_table_mkheader_$STRUCT (Header *header) {
 
   /* create table header */
-  fits_create_table_header (header, "$TYPE", "$EXTNAME");
+  gfits_create_table_header (header, "$TYPE", "$EXTNAME");
 
   /* define table layout */
@@ -88,5 +88,5 @@
   }
 
-  fits_convert_$STRUCT (tmpdata, sizeof ($STRUCT), Ndata);
+  gfits_convert_$STRUCT (tmpdata, sizeof ($STRUCT), Ndata);
 
   SendCommand (device, 16, "NVALUE: %6d", Ndata);
@@ -113,5 +113,5 @@
   
   tmpdata = ($STRUCT *) message.buffer;
-  fits_convert_$STRUCT (tmpdata, sizeof ($STRUCT), ndata);
+  gfits_convert_$STRUCT (tmpdata, sizeof ($STRUCT), ndata);
 
   /* double-check data length? */
Index: /trunk/Ohana/src/libautocode/def/autocode.h
===================================================================
--- /trunk/Ohana/src/libautocode/def/autocode.h	(revision 7079)
+++ /trunk/Ohana/src/libautocode/def/autocode.h	(revision 7080)
@@ -2,8 +2,8 @@
 /** STRUCT DEFINITION **/
 
-$STRUCT *fits_table_get_$STRUCT (FTable *table, int *Ndata, int *swapped);
-int      fits_table_set_$STRUCT (FTable *ftable, $STRUCT *data, int Ndata);
-int      fits_table_mkheader_$STRUCT (Header *header);
-int      fits_convert_$STRUCT ($STRUCT *data, int size, int nitems);
+$STRUCT *gfits_table_get_$STRUCT (FTable *table, int *Ndata, int *swapped);
+int      gfits_table_set_$STRUCT (FTable *ftable, $STRUCT *data, int Ndata);
+int      gfits_table_mkheader_$STRUCT (Header *header);
+int      gfits_convert_$STRUCT ($STRUCT *data, int size, int nitems);
 int Send_$STRUCT (int device, $STRUCT *data, int Ndata, int copy);
 int Recv_$STRUCT (int device, $STRUCT **data, int *Ndata);
Index: /trunk/Ohana/src/libautocode/doc/ChangeLog.txt
===================================================================
--- /trunk/Ohana/src/libautocode/doc/ChangeLog.txt	(revision 7079)
+++ /trunk/Ohana/src/libautocode/doc/ChangeLog.txt	(revision 7080)
@@ -1,2 +1,6 @@
+
+- libautocode 1.5
+  * converted to gfits APIs (forces libfits 1.6)
+  * fixed comma errors in average tables
 
 - libautocode 1.4
Index: /trunk/Ohana/src/libautocode/generate
===================================================================
--- /trunk/Ohana/src/libautocode/generate	(revision 7079)
+++ /trunk/Ohana/src/libautocode/generate	(revision 7080)
@@ -140,5 +140,5 @@
 	}
 
-	printf FILE "  fits_define_bintable_column (header, ";
+	printf FILE "  gfits_define_bintable_column (header, ";
 	printf FILE "%-8s",               "\"$pt2\", ";
 	printf FILE "%-20s",              "\"$field[$i]\", ";
@@ -225,5 +225,5 @@
 	if (!$pt1) { die "unknown type $type"; }
 
-	printf FILE "  fits_define_table_column (header, ";
+	printf FILE "  gfits_define_table_column (header, ";
 	printf FILE "%-8s",      "\"$pt1\", ";
 	printf FILE "%-20s",     "\"$field[$i]\", ";
Index: /trunk/Ohana/src/libdvo/doc/ChangeLog.txt
===================================================================
--- /trunk/Ohana/src/libdvo/doc/ChangeLog.txt	(revision 7079)
+++ /trunk/Ohana/src/libdvo/doc/ChangeLog.txt	(revision 7080)
@@ -1,2 +1,5 @@
+
+- libdvo 1.3
+  * converted to gfits APIs (forces libfits 1.6)
 
 - libdvo 1.2
Index: /trunk/Ohana/src/libdvo/include/dvo.h
===================================================================
--- /trunk/Ohana/src/libdvo/include/dvo.h	(revision 7079)
+++ /trunk/Ohana/src/libdvo/include/dvo.h	(revision 7080)
@@ -176,14 +176,14 @@
 /*** prototypes ***/
 
-/* in fits_db.c */
-int   fits_db_init                PROTO((FITS_DB *db));
-int   fits_db_create              PROTO((FITS_DB *db));
-int   fits_db_lock                PROTO((FITS_DB *db, char *filename));
-int   fits_db_load                PROTO((FITS_DB *db));
-int   fits_db_load_segment        PROTO((FITS_DB *db, int start, int Nrows));
-int   fits_db_save                PROTO((FITS_DB *db));
-int   fits_db_update              PROTO((FITS_DB *db));
-int   fits_db_close               PROTO((FITS_DB *db));
-int   fits_db_free                PROTO((FITS_DB *db));
+/* in gfits_db.c */
+int   gfits_db_init                PROTO((FITS_DB *db));
+int   gfits_db_create              PROTO((FITS_DB *db));
+int   gfits_db_lock                PROTO((FITS_DB *db, char *filename));
+int   gfits_db_load                PROTO((FITS_DB *db));
+int   gfits_db_load_segment        PROTO((FITS_DB *db, int start, int Nrows));
+int   gfits_db_save                PROTO((FITS_DB *db));
+int   gfits_db_update              PROTO((FITS_DB *db));
+int   gfits_db_close               PROTO((FITS_DB *db));
+int   gfits_db_free                PROTO((FITS_DB *db));
 
 /* in coords.c, using libautocode/def/coords.d */
@@ -352,4 +352,5 @@
 SkyList   *SkyListByRadius     	   PROTO((SkyTable *table, int depth, double RA, double DEC, double radius));
 SkyList   *SkyListByPatch      	   PROTO((SkyTable *table, int depth, SkyRegion *patch));
+SkyList   *SkyListByName      	   PROTO((SkyTable *table, char *name));
 SkyList   *SkyListByImage      	   PROTO((SkyTable *table, int depth, Image *image));
 SkyList   *SkyListByBounds     	   PROTO((SkyTable *table, int depth, double Rmin, double Rmax, double Dmin, double Dmax));
Index: /trunk/Ohana/src/libdvo/src/coordops.c
===================================================================
--- /trunk/Ohana/src/libdvo/src/coordops.c	(revision 7079)
+++ /trunk/Ohana/src/libdvo/src/coordops.c	(revision 7080)
@@ -312,13 +312,13 @@
   
   status = FALSE; 
-  if (fits_scan (header, "CTYPE2", "%s", 1, coords[0].ctype)) {
-    status  = fits_scan (header, "CRVAL1", "%lf", 1, &coords[0].crval1);
-    status &= fits_scan (header, "CRPIX1", "%f", 1, &coords[0].crpix1);
-    status &= fits_scan (header, "CRVAL2", "%lf", 1, &coords[0].crval2);  
-    status &= fits_scan (header, "CRPIX2", "%f", 1, &coords[0].crpix2);
-
-    if (fits_scan (header, "CDELT1", "%f", 1, &coords[0].cdelt1)) {
-      status &= fits_scan (header, "CDELT2", "%f", 1, &coords[0].cdelt2);
-      if (fits_scan (header, "CROTA2", "%lf", 1, &rotate)) {
+  if (gfits_scan (header, "CTYPE2", "%s", 1, coords[0].ctype)) {
+    status  = gfits_scan (header, "CRVAL1", "%lf", 1, &coords[0].crval1);
+    status &= gfits_scan (header, "CRPIX1", "%f", 1, &coords[0].crpix1);
+    status &= gfits_scan (header, "CRVAL2", "%lf", 1, &coords[0].crval2);  
+    status &= gfits_scan (header, "CRPIX2", "%f", 1, &coords[0].crpix2);
+
+    if (gfits_scan (header, "CDELT1", "%f", 1, &coords[0].cdelt1)) {
+      status &= gfits_scan (header, "CDELT2", "%f", 1, &coords[0].cdelt2);
+      if (gfits_scan (header, "CROTA2", "%lf", 1, &rotate)) {
 	Lambda = coords[0].cdelt2 / coords[0].cdelt1;
 	coords[0].pc1_1 =  cos(rotate*RAD_DEG);
@@ -327,8 +327,8 @@
 	coords[0].pc2_2 =  cos(rotate*RAD_DEG);
       }
-      if (fits_scan (header, "PC001001", "%f", 1, &coords[0].pc1_1)) {
-	status &= fits_scan (header, "PC001002", "%f", 1, &coords[0].pc1_2);
-	status &= fits_scan (header, "PC002001", "%f", 1, &coords[0].pc2_1);
-	status &= fits_scan (header, "PC002002", "%f", 1, &coords[0].pc2_2);
+      if (gfits_scan (header, "PC001001", "%f", 1, &coords[0].pc1_1)) {
+	status &= gfits_scan (header, "PC001002", "%f", 1, &coords[0].pc1_2);
+	status &= gfits_scan (header, "PC002001", "%f", 1, &coords[0].pc2_1);
+	status &= gfits_scan (header, "PC002002", "%f", 1, &coords[0].pc2_2);
       }
 
@@ -337,5 +337,5 @@
 
       if (Polynomial) {
-	if (fits_scan (header, "NPLYTERM", "%d", 1, &itmp)) {
+	if (gfits_scan (header, "NPLYTERM", "%d", 1, &itmp)) {
 	  coords[0].Npolyterms = itmp;
 	} else {
@@ -344,19 +344,19 @@
 	switch (coords[0].Npolyterms) {
 	  case 3:
-	    status &= fits_scan (header, "PCA1X3Y0", "%f", 1, &coords[0].polyterms[3][0]);
-	    status &= fits_scan (header, "PCA1X2Y1", "%f", 1, &coords[0].polyterms[4][0]);
-	    status &= fits_scan (header, "PCA1X1Y2", "%f", 1, &coords[0].polyterms[5][0]);
-	    status &= fits_scan (header, "PCA1X0Y3", "%f", 1, &coords[0].polyterms[6][0]);
-	    status &= fits_scan (header, "PCA2X3Y0", "%f", 1, &coords[0].polyterms[3][1]);
-	    status &= fits_scan (header, "PCA2X2Y1", "%f", 1, &coords[0].polyterms[4][1]);
-	    status &= fits_scan (header, "PCA2X1Y2", "%f", 1, &coords[0].polyterms[5][1]);
-	    status &= fits_scan (header, "PCA2X0Y3", "%f", 1, &coords[0].polyterms[6][1]);
+	    status &= gfits_scan (header, "PCA1X3Y0", "%f", 1, &coords[0].polyterms[3][0]);
+	    status &= gfits_scan (header, "PCA1X2Y1", "%f", 1, &coords[0].polyterms[4][0]);
+	    status &= gfits_scan (header, "PCA1X1Y2", "%f", 1, &coords[0].polyterms[5][0]);
+	    status &= gfits_scan (header, "PCA1X0Y3", "%f", 1, &coords[0].polyterms[6][0]);
+	    status &= gfits_scan (header, "PCA2X3Y0", "%f", 1, &coords[0].polyterms[3][1]);
+	    status &= gfits_scan (header, "PCA2X2Y1", "%f", 1, &coords[0].polyterms[4][1]);
+	    status &= gfits_scan (header, "PCA2X1Y2", "%f", 1, &coords[0].polyterms[5][1]);
+	    status &= gfits_scan (header, "PCA2X0Y3", "%f", 1, &coords[0].polyterms[6][1]);
 	  case 2:
-	    status &= fits_scan (header, "PCA1X2Y0", "%f", 1, &coords[0].polyterms[0][0]);
-	    status &= fits_scan (header, "PCA1X1Y1", "%f", 1, &coords[0].polyterms[1][0]);
-	    status &= fits_scan (header, "PCA1X0Y2", "%f", 1, &coords[0].polyterms[2][0]);
-	    status &= fits_scan (header, "PCA2X2Y0", "%f", 1, &coords[0].polyterms[0][1]);
-	    status &= fits_scan (header, "PCA2X1Y1", "%f", 1, &coords[0].polyterms[1][1]);
-	    status &= fits_scan (header, "PCA2X0Y2", "%f", 1, &coords[0].polyterms[2][1]);
+	    status &= gfits_scan (header, "PCA1X2Y0", "%f", 1, &coords[0].polyterms[0][0]);
+	    status &= gfits_scan (header, "PCA1X1Y1", "%f", 1, &coords[0].polyterms[1][0]);
+	    status &= gfits_scan (header, "PCA1X0Y2", "%f", 1, &coords[0].polyterms[2][0]);
+	    status &= gfits_scan (header, "PCA2X2Y0", "%f", 1, &coords[0].polyterms[0][1]);
+	    status &= gfits_scan (header, "PCA2X1Y1", "%f", 1, &coords[0].polyterms[1][1]);
+	    status &= gfits_scan (header, "PCA2X0Y2", "%f", 1, &coords[0].polyterms[2][1]);
 	  case 0:
 	  case 1:
@@ -365,8 +365,8 @@
       }
     } else {
-      if (fits_scan (header, "CD1_1", "%f", 1, &coords[0].pc1_1)) {
-	status &= fits_scan (header, "CD1_2", "%f", 1, &coords[0].pc1_2);
-	status &= fits_scan (header, "CD2_1", "%f", 1, &coords[0].pc2_1);
-	status &= fits_scan (header, "CD2_2", "%f", 1, &coords[0].pc2_2);
+      if (gfits_scan (header, "CD1_1", "%f", 1, &coords[0].pc1_1)) {
+	status &= gfits_scan (header, "CD1_2", "%f", 1, &coords[0].pc1_2);
+	status &= gfits_scan (header, "CD2_1", "%f", 1, &coords[0].pc2_1);
+	status &= gfits_scan (header, "CD2_2", "%f", 1, &coords[0].pc2_2);
 	/* renormalize */
 	scale = hypot (coords[0].pc1_1, coords[0].pc1_2);
@@ -382,10 +382,10 @@
   } else {
     /* some of my thesis data uses this simple linear model - convert on read? */
-    if (fits_scan (header, "RA_O", "%lf", 1, &coords[0].crval1)) {
-      status  = fits_scan (header, "RA_X", "%f", 1, &coords[0].pc1_1);
-      status &= fits_scan (header, "RA_Y", "%f", 1, &coords[0].pc1_2);
-      status &= fits_scan (header, "DEC_O", "%lf", 1, &coords[0].crval2);  
-      status &= fits_scan (header, "DEC_X", "%f", 1, &coords[0].pc2_1);
-      status &= fits_scan (header, "DEC_Y", "%f", 1, &coords[0].pc2_2);
+    if (gfits_scan (header, "RA_O", "%lf", 1, &coords[0].crval1)) {
+      status  = gfits_scan (header, "RA_X", "%f", 1, &coords[0].pc1_1);
+      status &= gfits_scan (header, "RA_Y", "%f", 1, &coords[0].pc1_2);
+      status &= gfits_scan (header, "DEC_O", "%lf", 1, &coords[0].crval2);  
+      status &= gfits_scan (header, "DEC_X", "%f", 1, &coords[0].pc2_1);
+      status &= gfits_scan (header, "DEC_Y", "%f", 1, &coords[0].pc2_2);
       coords[0].crpix1 = coords[0].crpix2 = 0.0;
       coords[0].cdelt1 = coords[0].cdelt2 = 1.0;
@@ -394,6 +394,6 @@
   }
   if (status) {
-    if (!fits_scan (header, "EQUINOX", "%lf", 1, &equinox)) {
-      if (!fits_scan (header, "EPOCH", "%lf", 1, &equinox)) {
+    if (!gfits_scan (header, "EQUINOX", "%lf", 1, &equinox)) {
+      if (!gfits_scan (header, "EPOCH", "%lf", 1, &equinox)) {
 	equinox = 2000.0;
       }
@@ -422,7 +422,7 @@
   /* modifications to the ctype? */
   OldAIPS = FALSE;
-  fits_modify (header, "CTYPE2",   "%s",  1, coords[0].ctype);
+  gfits_modify (header, "CTYPE2",   "%s",  1, coords[0].ctype);
   if (!strcmp(coords[0].ctype, "MM")) {
-    fits_modify (header, "CTYPE1",   "%s",  1, "LL");
+    gfits_modify (header, "CTYPE1",   "%s",  1, "LL");
     OldAIPS = TRUE;
   } else {
@@ -435,52 +435,52 @@
     if (!strcmp (csys, "NONE")) return (FALSE);
     sprintf (ctype, "%s-%s", csys, &coords[0].ctype[5]);
-    fits_modify (header, "CTYPE1",   "%s",  1, ctype);
+    gfits_modify (header, "CTYPE1",   "%s",  1, ctype);
   }    
 
-  fits_modify (header, "CDELT1",   "%le", 1, coords[0].cdelt1); 
-  fits_modify (header, "CDELT2",   "%le", 1, coords[0].cdelt2);
-  fits_modify (header, "CRVAL1",   "%lf", 1, coords[0].crval1);
-  fits_modify (header, "CRVAL2",   "%lf", 1, coords[0].crval2);  
-  fits_modify (header, "CRPIX1",   "%lf", 1, coords[0].crpix1);
-  fits_modify (header, "CRPIX2",   "%lf", 1, coords[0].crpix2);
+  gfits_modify (header, "CDELT1",   "%le", 1, coords[0].cdelt1); 
+  gfits_modify (header, "CDELT2",   "%le", 1, coords[0].cdelt2);
+  gfits_modify (header, "CRVAL1",   "%lf", 1, coords[0].crval1);
+  gfits_modify (header, "CRVAL2",   "%lf", 1, coords[0].crval2);  
+  gfits_modify (header, "CRPIX1",   "%lf", 1, coords[0].crpix1);
+  gfits_modify (header, "CRPIX2",   "%lf", 1, coords[0].crpix2);
 
   if (OldAIPS) {
     Lambda = coords[0].cdelt2 / coords[0].cdelt1;
     rotate = DEG_RAD*atan2 (coords[0].pc2_1*Lambda, coords[0].pc1_1);
-    fits_modify (header, "CROTA1", "%f", 1, rotate);
-    fits_modify (header, "CROTA2", "%f", 1, rotate);
+    gfits_modify (header, "CROTA1", "%f", 1, rotate);
+    gfits_modify (header, "CROTA2", "%f", 1, rotate);
     return (TRUE);
   } 
 
-  fits_modify (header, "PC001001", "%le", 1, coords[0].pc1_1);
-  fits_modify (header, "PC001002", "%le", 1, coords[0].pc1_2);
-  fits_modify (header, "PC002001", "%le", 1, coords[0].pc2_1);
-  fits_modify (header, "PC002002", "%le", 1, coords[0].pc2_2);
-  fits_modify (header, "NPLYTERM", "%d",  1, coords[0].Npolyterms);
+  gfits_modify (header, "PC001001", "%le", 1, coords[0].pc1_1);
+  gfits_modify (header, "PC001002", "%le", 1, coords[0].pc1_2);
+  gfits_modify (header, "PC002001", "%le", 1, coords[0].pc2_1);
+  gfits_modify (header, "PC002002", "%le", 1, coords[0].pc2_2);
+  gfits_modify (header, "NPLYTERM", "%d",  1, coords[0].Npolyterms);
 
   /* RA Terms */
   if (coords[0].Npolyterms > 1) {
-    fits_modify (header, "PCA1X2Y0", "%le", 1, coords[0].polyterms[0][0]);   /* polyterms[0]); */
-    fits_modify (header, "PCA1X1Y1", "%le", 1, coords[0].polyterms[1][0]);   /* polyterms[1]); */
-    fits_modify (header, "PCA1X0Y2", "%le", 1, coords[0].polyterms[2][0]);   /* polyterms[2]); */
+    gfits_modify (header, "PCA1X2Y0", "%le", 1, coords[0].polyterms[0][0]);   /* polyterms[0]); */
+    gfits_modify (header, "PCA1X1Y1", "%le", 1, coords[0].polyterms[1][0]);   /* polyterms[1]); */
+    gfits_modify (header, "PCA1X0Y2", "%le", 1, coords[0].polyterms[2][0]);   /* polyterms[2]); */
   }
   if (coords[0].Npolyterms > 2) {
-    fits_modify (header, "PCA1X3Y0", "%le", 1, coords[0].polyterms[3][0]);   /* polyterms[3]); */
-    fits_modify (header, "PCA1X2Y1", "%le", 1, coords[0].polyterms[4][0]);   /* polyterms[4]); */
-    fits_modify (header, "PCA1X1Y2", "%le", 1, coords[0].polyterms[5][0]);   /* polyterms[5]); */
-    fits_modify (header, "PCA1X0Y3", "%le", 1, coords[0].polyterms[6][0]);   /* polyterms[6]); */
+    gfits_modify (header, "PCA1X3Y0", "%le", 1, coords[0].polyterms[3][0]);   /* polyterms[3]); */
+    gfits_modify (header, "PCA1X2Y1", "%le", 1, coords[0].polyterms[4][0]);   /* polyterms[4]); */
+    gfits_modify (header, "PCA1X1Y2", "%le", 1, coords[0].polyterms[5][0]);   /* polyterms[5]); */
+    gfits_modify (header, "PCA1X0Y3", "%le", 1, coords[0].polyterms[6][0]);   /* polyterms[6]); */
   }
 
   /* Dec Terms */
   if (coords[0].Npolyterms > 1) {
-    fits_modify (header, "PCA2X2Y0", "%le", 1, coords[0].polyterms[0][1]);   /* polyterms[7]); */
-    fits_modify (header, "PCA2X1Y1", "%le", 1, coords[0].polyterms[1][1]);   /* polyterms[8]); */
-    fits_modify (header, "PCA2X0Y2", "%le", 1, coords[0].polyterms[2][1]);   /* polyterms[9]); */
+    gfits_modify (header, "PCA2X2Y0", "%le", 1, coords[0].polyterms[0][1]);   /* polyterms[7]); */
+    gfits_modify (header, "PCA2X1Y1", "%le", 1, coords[0].polyterms[1][1]);   /* polyterms[8]); */
+    gfits_modify (header, "PCA2X0Y2", "%le", 1, coords[0].polyterms[2][1]);   /* polyterms[9]); */
   }
   if (coords[0].Npolyterms > 2) {
-    fits_modify (header, "PCA2X3Y0", "%le", 1, coords[0].polyterms[3][1]);   /* polyterms[10]); */
-    fits_modify (header, "PCA2X2Y1", "%le", 1, coords[0].polyterms[4][1]);   /* polyterms[11]); */
-    fits_modify (header, "PCA2X1Y2", "%le", 1, coords[0].polyterms[5][1]);   /* polyterms[12]); */
-    fits_modify (header, "PCA2X0Y3", "%le", 1, coords[0].polyterms[6][1]);   /* polyterms[13]); */
+    gfits_modify (header, "PCA2X3Y0", "%le", 1, coords[0].polyterms[3][1]);   /* polyterms[10]); */
+    gfits_modify (header, "PCA2X2Y1", "%le", 1, coords[0].polyterms[4][1]);   /* polyterms[11]); */
+    gfits_modify (header, "PCA2X1Y2", "%le", 1, coords[0].polyterms[5][1]);   /* polyterms[12]); */
+    gfits_modify (header, "PCA2X0Y3", "%le", 1, coords[0].polyterms[6][1]);   /* polyterms[13]); */
   }
   return (TRUE);
Index: /trunk/Ohana/src/libdvo/src/dvo_catalog.c
===================================================================
--- /trunk/Ohana/src/libdvo/src/dvo_catalog.c	(revision 7079)
+++ /trunk/Ohana/src/libdvo/src/dvo_catalog.c	(revision 7080)
@@ -42,10 +42,10 @@
   /** we will have to check catmode for MYSQL before reading from the file **/
 
-  fits_fread_header (catalog[0].f, &catalog[0].header);
-  if (!fits_scan (&catalog[0].header, "NAXIS", "%d", 1, &Naxis)) {
+  gfits_fread_header (catalog[0].f, &catalog[0].header);
+  if (!gfits_scan (&catalog[0].header, "NAXIS", "%d", 1, &Naxis)) {
     if (VERBOSE) fprintf (stderr, "can't determine catalog db mode\n");
     return (FALSE);
   }
-  split = fits_scan (&catalog[0].header, "MEASURE", "%s", 1, measure);
+  split = gfits_scan (&catalog[0].header, "MEASURE", "%s", 1, measure);
 
   /* currenly, the catmode information is carried per table.
Index: /trunk/Ohana/src/libdvo/src/dvo_catalog_mef.c
===================================================================
--- /trunk/Ohana/src/libdvo/src/dvo_catalog_mef.c	(revision 7079)
+++ /trunk/Ohana/src/libdvo/src/dvo_catalog_mef.c	(revision 7080)
@@ -17,13 +17,13 @@
 
   /* matrix should be empty */
-  if (!fits_fread_matrix (f, &matrix, &catalog[0].header)) {
+  if (!gfits_fread_matrix (f, &matrix, &catalog[0].header)) {
     if (VERBOSE) fprintf (stderr, "can't read primary matrix");
     return (FALSE);
   }
   /* get the components from the header */
-  if (!fits_scan (&catalog[0].header, "NSTARS",   "%d", 1, &Naverage)) return (FALSE);
-  if (!fits_scan (&catalog[0].header, "NMEAS",    "%d", 1, &Nmeasure)) return (FALSE);
-  if (!fits_scan (&catalog[0].header, "NMISS",    "%d", 1, &Nmissing)) return (FALSE);
-  if (!fits_scan (&catalog[0].header, "NSECFILT", "%d", 1, &Nsecfilt)) Nsecfilt = 0;
+  if (!gfits_scan (&catalog[0].header, "NSTARS",   "%d", 1, &Naverage)) return (FALSE);
+  if (!gfits_scan (&catalog[0].header, "NMEAS",    "%d", 1, &Nmeasure)) return (FALSE);
+  if (!gfits_scan (&catalog[0].header, "NMISS",    "%d", 1, &Nmissing)) return (FALSE);
+  if (!gfits_scan (&catalog[0].header, "NSECFILT", "%d", 1, &Nsecfilt)) Nsecfilt = 0;
 
   /**  Nsecfilt is unusual: it does not list the number of data items in the table
@@ -34,5 +34,5 @@
 
   /* read Average table header */
-  if (!fits_fread_header (f, &header)) {
+  if (!gfits_fread_header (f, &header)) {
     if (VERBOSE) fprintf (stderr, "can't read table average header");
     return (FALSE);
@@ -40,5 +40,5 @@
   /* read Average table data (or skip) */
   if (catalog[0].catflags & LOAD_AVES) {
-    if (!fits_fread_ftable_data (f, &ftable)) {
+    if (!gfits_fread_ftable_data (f, &ftable)) {
       if (VERBOSE) fprintf (stderr, "can't read table average data");
       return (FALSE);
@@ -49,12 +49,12 @@
     }
   } else {
-    Nbytes = fits_matrix_size (&header);
-    fseek (f, Nbytes, SEEK_CUR);
-  }
-  fits_free_header (&header);
+    Nbytes = gfits_matrix_size (&header);
+    fseek (f, Nbytes, SEEK_CUR);
+  }
+  gfits_free_header (&header);
   /** free the ftable or not? data is being used still..? **/
 
   /* read Measure table header */
-  if (!fits_fread_header (f, &header)) {
+  if (!gfits_fread_header (f, &header)) {
     if (VERBOSE) fprintf (stderr, "can't read table measure header");
     return (FALSE);
@@ -62,5 +62,5 @@
   /* read Measure table data */
   if (catalog[0].catflags & LOAD_MEAS) {
-    if (!fits_fread_ftable_data (f, &ftable)) {
+    if (!gfits_fread_ftable_data (f, &ftable)) {
       if (VERBOSE) fprintf (stderr, "can't read table measure data");
       return (FALSE);
@@ -71,10 +71,10 @@
     }
   } else {
-    Nbytes = fits_matrix_size (&header);
+    Nbytes = gfits_matrix_size (&header);
     fseek (f, Nbytes, SEEK_CUR);
   }
 
   /* read Missing table header */
-  if (!fits_fread_header (f, &header)) {
+  if (!gfits_fread_header (f, &header)) {
     if (VERBOSE) fprintf (stderr, "can't read table missing header");
     return (FALSE);
@@ -82,23 +82,23 @@
   /* read Missing table data */
   if (catalog[0].catflags & LOAD_MISS) {
-    if (!fits_fread_ftable_data (f, &ftable)) {
+    if (!gfits_fread_ftable_data (f, &ftable)) {
       if (VERBOSE) fprintf (stderr, "can't read table missing data");
       return (FALSE);
     }
     /* no conversions currently defined */
-    catalog[0].missing = fits_table_get_Missing (&ftable, &catalog[0].Nmissing, NULL);
+    catalog[0].missing = gfits_table_get_Missing (&ftable, &catalog[0].Nmissing, NULL);
     if (Nmissing != catalog[0].Nmissing) {
       fprintf (stderr, "Warning: mismatch between Nmissing in PHU and Table headers (%d vs %d)\n", Nmissing, catalog[0].Nmissing);
     }
   } else {
-    Nbytes = fits_matrix_size (&header);
-    fseek (f, Nbytes, SEEK_CUR);
-  }
-
-  // catalog[0].secfilt = fits_table_get_SecFilt (&ftable, &Nitems, NULL);
+    Nbytes = gfits_matrix_size (&header);
+    fseek (f, Nbytes, SEEK_CUR);
+  }
+
+  // catalog[0].secfilt = gfits_table_get_SecFilt (&ftable, &Nitems, NULL);
   // catalog[0].Nsecfilt = Nitems / catalog[0].Naverage;
 
   /* read secfilt table header */
-  if (!fits_fread_header (f, &header)) {
+  if (!gfits_fread_header (f, &header)) {
     if (VERBOSE) fprintf (stderr, "can't read table secfilt header");
     return (FALSE);
@@ -106,5 +106,5 @@
   /* read secfilt table data */
   if (catalog[0].catflags & LOAD_SECF) {
-    if (!fits_fread_ftable_data (f, &ftable)) {
+    if (!gfits_fread_ftable_data (f, &ftable)) {
       if (VERBOSE) fprintf (stderr, "can't read table secfilt data");
       return (FALSE);
@@ -117,5 +117,5 @@
   } else {
     /* no real need to skip the data array here... */
-    Nbytes = fits_matrix_size (&header);
+    Nbytes = gfits_matrix_size (&header);
     fseek (f, Nbytes, SEEK_CUR);
   }
@@ -139,9 +139,9 @@
 
   /* make sure header is consistent with data */
-  fits_modify (&catalog[0].header, "NSTARS",   "%d", 1, catalog[0].Naverage);
-  fits_modify (&catalog[0].header, "NMEAS",    "%d", 1, catalog[0].Nmeasure);
-  fits_modify (&catalog[0].header, "NMISS",    "%d", 1, catalog[0].Nmissing);
-  fits_modify (&catalog[0].header, "NSECFILT", "%d", 1, catalog[0].Nsecfilt);
-  fits_modify (&catalog[0].header, "EXTEND",   "%t", 1, TRUE);
+  gfits_modify (&catalog[0].header, "NSTARS",   "%d", 1, catalog[0].Naverage);
+  gfits_modify (&catalog[0].header, "NMEAS",    "%d", 1, catalog[0].Nmeasure);
+  gfits_modify (&catalog[0].header, "NMISS",    "%d", 1, catalog[0].Nmissing);
+  gfits_modify (&catalog[0].header, "NSECFILT", "%d", 1, catalog[0].Nsecfilt);
+  gfits_modify (&catalog[0].header, "EXTEND",   "%t", 1, TRUE);
 
   f = catalog[0].f;
@@ -152,5 +152,5 @@
 
   /* write table PHU header */
-  if (!fits_fwrite_header  (catalog[0].f, &catalog[0].header)) {
+  if (!gfits_fwrite_header  (catalog[0].f, &catalog[0].header)) {
     fprintf (stderr, "can't write primary header");
     return (FALSE);
@@ -158,63 +158,63 @@
 
   /* this is probably a NOP, do I have to keep it in? */
-  fits_create_matrix (&catalog[0].header, &matrix);
-  if (!fits_fwrite_matrix  (catalog[0].f, &matrix)) {
+  gfits_create_matrix (&catalog[0].header, &matrix);
+  if (!gfits_fwrite_matrix  (catalog[0].f, &matrix)) {
     fprintf (stderr, "can't write primary matrix");
     return (FALSE);
   }
-  fits_free_matrix (&matrix);
+  gfits_free_matrix (&matrix);
 
   /* write out Average table (convert to FITS table format) */
   AverageToFtable (&ftable, catalog[0].average, catalog[0].Naverage, catalog[0].catformat);
-  if (!fits_fwrite_Theader (catalog[0].f, &header)) {
-    fprintf (stderr, "can't write table header");
-    return (FALSE);
-  }
-  if (!fits_fwrite_table (catalog[0].f, &ftable)) {
-    fprintf (stderr, "can't write table data");
-    return (FALSE);
-  }
-  fits_free_table (&ftable);
-  fits_free_header (&header);
+  if (!gfits_fwrite_Theader (catalog[0].f, &header)) {
+    fprintf (stderr, "can't write table header");
+    return (FALSE);
+  }
+  if (!gfits_fwrite_table (catalog[0].f, &ftable)) {
+    fprintf (stderr, "can't write table data");
+    return (FALSE);
+  }
+  gfits_free_table (&ftable);
+  gfits_free_header (&header);
 
   /* write out Measure table (convert to FITS table format) */
   MeasureToFtable (&ftable, catalog[0].measure, catalog[0].Nmeasure, catalog[0].catformat);
-  if (!fits_fwrite_Theader (catalog[0].f, &header)) {
-    fprintf (stderr, "can't write table header");
-    return (FALSE);
-  }
-  if (!fits_fwrite_table (catalog[0].f, &ftable)) {
-    fprintf (stderr, "can't write table data");
-    return (FALSE);
-  }
-  fits_free_table (&ftable);
-  fits_free_header (&header);
+  if (!gfits_fwrite_Theader (catalog[0].f, &header)) {
+    fprintf (stderr, "can't write table header");
+    return (FALSE);
+  }
+  if (!gfits_fwrite_table (catalog[0].f, &ftable)) {
+    fprintf (stderr, "can't write table data");
+    return (FALSE);
+  }
+  gfits_free_table (&ftable);
+  gfits_free_header (&header);
 
   /* write out Missing table (convert to FITS table format) */
-  fits_table_set_Missing (&ftable, catalog[0].missing, catalog[0].Nmissing);
-  if (!fits_fwrite_Theader (catalog[0].f, &header)) {
-    fprintf (stderr, "can't write table header");
-    return (FALSE);
-  }
-  if (!fits_fwrite_table (catalog[0].f, &ftable)) {
-    fprintf (stderr, "can't write table data");
-    return (FALSE);
-  }
-  fits_free_table (&ftable);
-  fits_free_header (&header);
+  gfits_table_set_Missing (&ftable, catalog[0].missing, catalog[0].Nmissing);
+  if (!gfits_fwrite_Theader (catalog[0].f, &header)) {
+    fprintf (stderr, "can't write table header");
+    return (FALSE);
+  }
+  if (!gfits_fwrite_table (catalog[0].f, &ftable)) {
+    fprintf (stderr, "can't write table data");
+    return (FALSE);
+  }
+  gfits_free_table (&ftable);
+  gfits_free_header (&header);
 
   /* write out SecFilt table (convert to FITS table format) */
   Nitems = catalog[0].Naverage * catalog[0].Nsecfilt;
   SecFiltToFtable (&ftable, catalog[0].secfilt, Nitems, catalog[0].catformat);
-  if (!fits_fwrite_Theader (catalog[0].f, &header)) {
-    fprintf (stderr, "can't write table header");
-    return (FALSE);
-  }
-  if (!fits_fwrite_table (catalog[0].f, &ftable)) {
-    fprintf (stderr, "can't write table data");
-    return (FALSE);
-  }
-  fits_free_table (&ftable);
-  fits_free_header (&header);
+  if (!gfits_fwrite_Theader (catalog[0].f, &header)) {
+    fprintf (stderr, "can't write table header");
+    return (FALSE);
+  }
+  if (!gfits_fwrite_table (catalog[0].f, &ftable)) {
+    fprintf (stderr, "can't write table data");
+    return (FALSE);
+  }
+  gfits_free_table (&ftable);
+  gfits_free_header (&header);
 
   return (TRUE);
Index: /trunk/Ohana/src/libdvo/src/dvo_catalog_raw.c
===================================================================
--- /trunk/Ohana/src/libdvo/src/dvo_catalog_raw.c	(revision 7079)
+++ /trunk/Ohana/src/libdvo/src/dvo_catalog_raw.c	(revision 7080)
@@ -20,12 +20,12 @@
   /* get the components from the header */
   catalog[0].Naverage = catalog[0].Nmeasure = catalog[0].Nmissing = catalog[0].Nsecfilt = 0;
-  if (!fits_scan (&catalog[0].header, "NSTARS",   "%d", 1, &catalog[0].Naverage)) return (FALSE);
-  if (!fits_scan (&catalog[0].header, "NMEAS",    "%d", 1, &catalog[0].Nmeasure)) return (FALSE);
-  if (!fits_scan (&catalog[0].header, "NMISS",    "%d", 1, &catalog[0].Nmissing)) return (FALSE);
-  if (!fits_scan (&catalog[0].header, "NSECFILT", "%d", 1, &catalog[0].Nsecfilt)) catalog[0].Nsecfilt = 0;
+  if (!gfits_scan (&catalog[0].header, "NSTARS",   "%d", 1, &catalog[0].Naverage)) return (FALSE);
+  if (!gfits_scan (&catalog[0].header, "NMEAS",    "%d", 1, &catalog[0].Nmeasure)) return (FALSE);
+  if (!gfits_scan (&catalog[0].header, "NMISS",    "%d", 1, &catalog[0].Nmissing)) return (FALSE);
+  if (!gfits_scan (&catalog[0].header, "NSECFILT", "%d", 1, &catalog[0].Nsecfilt)) catalog[0].Nsecfilt = 0;
 
   /* determine catalog format */
   catalog[0].catformat = DVO_FORMAT_UNDEF;
-  if (fits_scan (&catalog[0].header, "FORMAT",  "%s", 1, format)) {
+  if (gfits_scan (&catalog[0].header, "FORMAT",  "%s", 1, format)) {
     if (!strcmp (format, "INTERNAL")) catalog[0].catformat = DVO_FORMAT_INTERNAL;
     if (!strcmp (format, "LONEOS")) catalog[0].catformat = DVO_FORMAT_LONEOS;
@@ -35,9 +35,9 @@
     if (catalog[0].catformat != DVO_FORMAT_UNDEF) goto got_format;
   }
-  if (fits_scan (&catalog[0].header, "NEWMEAS",  "%t", 1, &NewMeasure)) {
+  if (gfits_scan (&catalog[0].header, "NEWMEAS",  "%t", 1, &NewMeasure)) {
     catalog[0].catformat = DVO_FORMAT_ELIXIR;
     goto got_format;
   }
-  if (fits_scan (&catalog[0].header, "TELESCOP",  "%s", 1, telescope)) {
+  if (gfits_scan (&catalog[0].header, "TELESCOP",  "%s", 1, telescope)) {
     if (!strncmp (telescope, "LONEOS", strlen("LONEOS"))) {
       catalog[0].catformat = DVO_FORMAT_LONEOS;
@@ -145,5 +145,5 @@
       return (FALSE);
     }
-    fits_convert_Missing (catalog[0].missing, MissingSize, Nitems);
+    gfits_convert_Missing (catalog[0].missing, MissingSize, Nitems);
   } else {
     /* skip over missings */
@@ -194,15 +194,15 @@
 
   /* make sure header is consistent with data */
-  fits_modify (&catalog[0].header, "NSTARS",   "%d", 1, catalog[0].Naverage);
-  fits_modify (&catalog[0].header, "NMEAS",    "%d", 1, catalog[0].Nmeasure);
-  fits_modify (&catalog[0].header, "NMISS",    "%d", 1, catalog[0].Nmissing);
-  fits_modify (&catalog[0].header, "NSECFILT", "%d", 1, catalog[0].Nsecfilt);
+  gfits_modify (&catalog[0].header, "NSTARS",   "%d", 1, catalog[0].Naverage);
+  gfits_modify (&catalog[0].header, "NMEAS",    "%d", 1, catalog[0].Nmeasure);
+  gfits_modify (&catalog[0].header, "NMISS",    "%d", 1, catalog[0].Nmissing);
+  gfits_modify (&catalog[0].header, "NSECFILT", "%d", 1, catalog[0].Nsecfilt);
 
   /* specify the appropriate data format */
-  if (catalog[0].catformat == DVO_FORMAT_INTERNAL)  fits_modify (&catalog[0].header, "FORMAT", "%s", 1, "INTERNAL");
-  if (catalog[0].catformat == DVO_FORMAT_LONEOS)    fits_modify (&catalog[0].header, "FORMAT", "%s", 1, "LONEOS");
-  if (catalog[0].catformat == DVO_FORMAT_ELIXIR)    fits_modify (&catalog[0].header, "FORMAT", "%s", 1, "ELIXIR");
-  if (catalog[0].catformat == DVO_FORMAT_PANSTARRS) fits_modify (&catalog[0].header, "FORMAT", "%s", 1, "PANSTARRS");
-  if (catalog[0].catformat == DVO_FORMAT_PMTEST)    fits_modify (&catalog[0].header, "FORMAT", "%s", 1, "PMTEST");
+  if (catalog[0].catformat == DVO_FORMAT_INTERNAL)  gfits_modify (&catalog[0].header, "FORMAT", "%s", 1, "INTERNAL");
+  if (catalog[0].catformat == DVO_FORMAT_LONEOS)    gfits_modify (&catalog[0].header, "FORMAT", "%s", 1, "LONEOS");
+  if (catalog[0].catformat == DVO_FORMAT_ELIXIR)    gfits_modify (&catalog[0].header, "FORMAT", "%s", 1, "ELIXIR");
+  if (catalog[0].catformat == DVO_FORMAT_PANSTARRS) gfits_modify (&catalog[0].header, "FORMAT", "%s", 1, "PANSTARRS");
+  if (catalog[0].catformat == DVO_FORMAT_PMTEST)    gfits_modify (&catalog[0].header, "FORMAT", "%s", 1, "PMTEST");
 
   /* rewind file pointers and truncate file */
@@ -211,5 +211,5 @@
   ftruncate (fileno (catalog[0].f), 0);
 
-  /* write header data (use fits_write_header?) */
+  /* write header data (use gfits_write_header?) */
   nitems = fwrite (catalog[0].header.buffer, 1, catalog[0].header.size, f);
   if (nitems != catalog[0].header.size) {
@@ -224,5 +224,5 @@
   /* write missing data */
   Nitems = catalog[0].Nmissing;
-  fits_convert_Missing (catalog[0].missing, sizeof(Missing), Nitems);
+  gfits_convert_Missing (catalog[0].missing, sizeof(Missing), Nitems);
   nitems = fwrite (catalog[0].missing, sizeof(Missing), Nitems, f);
   if (nitems != Nitems) {
@@ -260,5 +260,5 @@
 	return (NULL);
       }
-      fits_convert_Average (average, sizeof(Average), Naverage);
+      gfits_convert_Average (average, sizeof(Average), Naverage);
       break;
     case DVO_FORMAT_ELIXIR:
@@ -269,5 +269,5 @@
 	return (NULL);
       }
-      fits_convert_AverageElixir (tmpAverageElixir, sizeof(AverageElixir), Naverage);
+      gfits_convert_AverageElixir (tmpAverageElixir, sizeof(AverageElixir), Naverage);
       average = AverageElixirToInternal (tmpAverageElixir, Naverage);
       free (tmpAverageElixir);
@@ -280,5 +280,5 @@
 	return (NULL);
       }
-      fits_convert_AverageLoneos (tmpAverageLoneos, sizeof(AverageLoneos), Naverage);
+      gfits_convert_AverageLoneos (tmpAverageLoneos, sizeof(AverageLoneos), Naverage);
       average = AverageLoneosToInternal (tmpAverageLoneos, Naverage);
       free (tmpAverageLoneos);
@@ -291,5 +291,5 @@
 	return (NULL);
       }
-      fits_convert_AveragePanstarrs (tmpAveragePanstarrs, sizeof(AveragePanstarrs), Naverage);
+      gfits_convert_AveragePanstarrs (tmpAveragePanstarrs, sizeof(AveragePanstarrs), Naverage);
       average = AveragePanstarrsToInternal (tmpAveragePanstarrs, Naverage);
       free (tmpAveragePanstarrs);
@@ -302,5 +302,5 @@
 	return (NULL);
       }
-      fits_convert_AveragePMtest (tmpAveragePMtest, sizeof(AveragePMtest), Naverage);
+      gfits_convert_AveragePMtest (tmpAveragePMtest, sizeof(AveragePMtest), Naverage);
       average = AveragePMtestToInternal (tmpAveragePMtest, Naverage);
       free (tmpAveragePMtest);
@@ -325,5 +325,5 @@
   switch (format) {
     case DVO_FORMAT_INTERNAL:
-      fits_convert_Average (average, sizeof(Average), Naverage);
+      gfits_convert_Average (average, sizeof(Average), Naverage);
       nitems = fwrite (average, sizeof(Average), Naverage, f);
       if (nitems != Naverage) {
@@ -334,5 +334,5 @@
     case DVO_FORMAT_ELIXIR:
       tmpAverageElixir = AverageInternalToElixir (average, Naverage);
-      fits_convert_AverageElixir (tmpAverageElixir, sizeof(AverageElixir), Naverage);
+      gfits_convert_AverageElixir (tmpAverageElixir, sizeof(AverageElixir), Naverage);
       nitems = fwrite (tmpAverageElixir, sizeof(AverageElixir), Naverage, f);
       free (tmpAverageElixir);
@@ -344,5 +344,5 @@
     case DVO_FORMAT_LONEOS:
       tmpAverageLoneos = AverageInternalToLoneos (average, Naverage);
-      fits_convert_AverageLoneos (tmpAverageLoneos, sizeof(AverageLoneos), Naverage);
+      gfits_convert_AverageLoneos (tmpAverageLoneos, sizeof(AverageLoneos), Naverage);
       nitems = fwrite (tmpAverageLoneos, sizeof(AverageLoneos), Naverage, f);
       free (tmpAverageLoneos);
@@ -354,5 +354,5 @@
     case DVO_FORMAT_PANSTARRS:
       tmpAveragePanstarrs = AverageInternalToPanstarrs (average, Naverage);
-      fits_convert_AveragePanstarrs (tmpAveragePanstarrs, sizeof(AveragePanstarrs), Naverage);
+      gfits_convert_AveragePanstarrs (tmpAveragePanstarrs, sizeof(AveragePanstarrs), Naverage);
       nitems = fwrite (tmpAveragePanstarrs, sizeof(AveragePanstarrs), Naverage, f);
       free (tmpAveragePanstarrs);
@@ -364,5 +364,5 @@
     case DVO_FORMAT_PMTEST:
       tmpAveragePMtest = AverageInternalToPMtest (average, Naverage);
-      fits_convert_AveragePMtest (tmpAveragePMtest, sizeof(AveragePMtest), Naverage);
+      gfits_convert_AveragePMtest (tmpAveragePMtest, sizeof(AveragePMtest), Naverage);
       nitems = fwrite (tmpAveragePMtest, sizeof(AveragePMtest), Naverage, f);
       free (tmpAveragePMtest);
@@ -397,5 +397,5 @@
 	return (NULL);
       }
-      fits_convert_Measure (measure, sizeof(Measure), Nmeasure);
+      gfits_convert_Measure (measure, sizeof(Measure), Nmeasure);
       break;
     case DVO_FORMAT_ELIXIR:
@@ -406,5 +406,5 @@
 	return (NULL);
       }
-      fits_convert_MeasureElixir (tmpMeasureElixir, sizeof(MeasureElixir), Nmeasure);
+      gfits_convert_MeasureElixir (tmpMeasureElixir, sizeof(MeasureElixir), Nmeasure);
       measure = MeasureElixirToInternal (tmpMeasureElixir, Nmeasure);
       free (tmpMeasureElixir);
@@ -417,5 +417,5 @@
 	return (NULL);
       }
-      fits_convert_MeasureLoneos (tmpMeasureLoneos, sizeof(MeasureLoneos), Nmeasure);
+      gfits_convert_MeasureLoneos (tmpMeasureLoneos, sizeof(MeasureLoneos), Nmeasure);
       measure = MeasureLoneosToInternal (tmpMeasureLoneos, Nmeasure);
       free (tmpMeasureLoneos);
@@ -429,5 +429,5 @@
 	return (NULL);
       }
-      fits_convert_MeasurePanstarrs (tmpMeasurePanstarrs, sizeof(MeasurePanstarrs), Nmeasure);
+      gfits_convert_MeasurePanstarrs (tmpMeasurePanstarrs, sizeof(MeasurePanstarrs), Nmeasure);
       measure = MeasurePanstarrsToInternal (tmpMeasurePanstarrs, Nmeasure);
       free (tmpMeasurePanstarrs);
@@ -451,5 +451,5 @@
   switch (format) {
     case DVO_FORMAT_INTERNAL:
-      fits_convert_Measure (measure, sizeof(Measure), Nmeasure);
+      gfits_convert_Measure (measure, sizeof(Measure), Nmeasure);
       nitems = fwrite (measure, sizeof(Measure), Nmeasure, f);
       if (nitems != Nmeasure) {
@@ -460,5 +460,5 @@
     case DVO_FORMAT_ELIXIR:
       tmpMeasureElixir = MeasureInternalToElixir (measure, Nmeasure);
-      fits_convert_MeasureElixir (tmpMeasureElixir, sizeof(MeasureElixir), Nmeasure);
+      gfits_convert_MeasureElixir (tmpMeasureElixir, sizeof(MeasureElixir), Nmeasure);
       nitems = fwrite (tmpMeasureElixir, sizeof(MeasureElixir), Nmeasure, f);
       free (tmpMeasureElixir);
@@ -470,5 +470,5 @@
     case DVO_FORMAT_LONEOS:
       tmpMeasureLoneos = MeasureInternalToLoneos (measure, Nmeasure);
-      fits_convert_MeasureLoneos (tmpMeasureLoneos, sizeof(MeasureLoneos), Nmeasure);
+      gfits_convert_MeasureLoneos (tmpMeasureLoneos, sizeof(MeasureLoneos), Nmeasure);
       nitems = fwrite (tmpMeasureLoneos, sizeof(MeasureLoneos), Nmeasure, f);
       free (tmpMeasureLoneos);
@@ -481,5 +481,5 @@
     case DVO_FORMAT_PMTEST:
       tmpMeasurePanstarrs = MeasureInternalToPanstarrs (measure, Nmeasure);
-      fits_convert_MeasurePanstarrs (tmpMeasurePanstarrs, sizeof(MeasurePanstarrs), Nmeasure);
+      gfits_convert_MeasurePanstarrs (tmpMeasurePanstarrs, sizeof(MeasurePanstarrs), Nmeasure);
       nitems = fwrite (tmpMeasurePanstarrs, sizeof(MeasurePanstarrs), Nmeasure, f);
       free (tmpMeasurePanstarrs);
@@ -514,5 +514,5 @@
 	return (NULL);
       }
-      fits_convert_SecFilt (secfilt, sizeof(SecFilt), Nsecfilt);
+      gfits_convert_SecFilt (secfilt, sizeof(SecFilt), Nsecfilt);
       break;
     case DVO_FORMAT_ELIXIR:
@@ -523,5 +523,5 @@
 	return (NULL);
       }
-      fits_convert_SecFiltElixir (tmpSecFiltElixir, sizeof(SecFiltElixir), Nsecfilt);
+      gfits_convert_SecFiltElixir (tmpSecFiltElixir, sizeof(SecFiltElixir), Nsecfilt);
       secfilt = SecFiltElixirToInternal (tmpSecFiltElixir, Nsecfilt);
       free (tmpSecFiltElixir);
@@ -534,5 +534,5 @@
 	return (NULL);
       }
-      fits_convert_SecFiltLoneos (tmpSecFiltLoneos, sizeof(SecFiltLoneos), Nsecfilt);
+      gfits_convert_SecFiltLoneos (tmpSecFiltLoneos, sizeof(SecFiltLoneos), Nsecfilt);
       secfilt = SecFiltLoneosToInternal (tmpSecFiltLoneos, Nsecfilt);
       free (tmpSecFiltLoneos);
@@ -546,5 +546,5 @@
 	return (NULL);
       }
-      fits_convert_SecFiltPanstarrs (tmpSecFiltPanstarrs, sizeof(SecFiltPanstarrs), Nsecfilt);
+      gfits_convert_SecFiltPanstarrs (tmpSecFiltPanstarrs, sizeof(SecFiltPanstarrs), Nsecfilt);
       secfilt = SecFiltPanstarrsToInternal (tmpSecFiltPanstarrs, Nsecfilt);
       free (tmpSecFiltPanstarrs);
@@ -568,5 +568,5 @@
   switch (format) {
     case DVO_FORMAT_INTERNAL:
-      fits_convert_SecFilt (secfilt, sizeof(SecFilt), Nsecfilt);
+      gfits_convert_SecFilt (secfilt, sizeof(SecFilt), Nsecfilt);
       nitems = fwrite (secfilt, sizeof(SecFilt), Nsecfilt, f);
       if (nitems != Nsecfilt) {
@@ -577,5 +577,5 @@
     case DVO_FORMAT_ELIXIR:
       tmpSecFiltElixir = SecFiltInternalToElixir (secfilt, Nsecfilt);
-      fits_convert_SecFiltElixir (tmpSecFiltElixir, sizeof(SecFiltElixir), Nsecfilt);
+      gfits_convert_SecFiltElixir (tmpSecFiltElixir, sizeof(SecFiltElixir), Nsecfilt);
       nitems = fwrite (tmpSecFiltElixir, sizeof(SecFiltElixir), Nsecfilt, f);
       free (tmpSecFiltElixir);
@@ -587,5 +587,5 @@
     case DVO_FORMAT_LONEOS:
       tmpSecFiltLoneos = SecFiltInternalToLoneos (secfilt, Nsecfilt);
-      fits_convert_SecFiltLoneos (tmpSecFiltLoneos, sizeof(SecFiltLoneos), Nsecfilt);
+      gfits_convert_SecFiltLoneos (tmpSecFiltLoneos, sizeof(SecFiltLoneos), Nsecfilt);
       nitems = fwrite (tmpSecFiltLoneos, sizeof(SecFiltLoneos), Nsecfilt, f);
       free (tmpSecFiltLoneos);
@@ -598,5 +598,5 @@
     case DVO_FORMAT_PMTEST:
       tmpSecFiltPanstarrs = SecFiltInternalToPanstarrs (secfilt, Nsecfilt);
-      fits_convert_SecFiltPanstarrs (tmpSecFiltPanstarrs, sizeof(SecFiltPanstarrs), Nsecfilt);
+      gfits_convert_SecFiltPanstarrs (tmpSecFiltPanstarrs, sizeof(SecFiltPanstarrs), Nsecfilt);
       nitems = fwrite (tmpSecFiltPanstarrs, sizeof(SecFiltPanstarrs), Nsecfilt, f);
       free (tmpSecFiltPanstarrs);
Index: /trunk/Ohana/src/libdvo/src/dvo_catalog_split.c
===================================================================
--- /trunk/Ohana/src/libdvo/src/dvo_catalog_split.c	(revision 7079)
+++ /trunk/Ohana/src/libdvo/src/dvo_catalog_split.c	(revision 7080)
@@ -17,8 +17,8 @@
 
   /* get the components from the header - these duplicate information in the split files (NAXIS2) */
-  if (!fits_scan (&catalog[0].header, "NSTARS",   "%d", 1, &Naverage)) return (FALSE);
-  if (!fits_scan (&catalog[0].header, "NMEAS",    "%d", 1, &Nmeasure)) return (FALSE);
-  if (!fits_scan (&catalog[0].header, "NMISS",    "%d", 1, &Nmissing)) return (FALSE);
-  if (!fits_scan (&catalog[0].header, "NSECFILT", "%d", 1, &Nsecfilt)) Nsecfilt = 0;
+  if (!gfits_scan (&catalog[0].header, "NSTARS",   "%d", 1, &Naverage)) return (FALSE);
+  if (!gfits_scan (&catalog[0].header, "NMEAS",    "%d", 1, &Nmeasure)) return (FALSE);
+  if (!gfits_scan (&catalog[0].header, "NMISS",    "%d", 1, &Nmissing)) return (FALSE);
+  if (!gfits_scan (&catalog[0].header, "NSECFILT", "%d", 1, &Nsecfilt)) Nsecfilt = 0;
 
   /**  Nsecfilt is unusual: it does not list the number of data items in the table
@@ -40,15 +40,15 @@
     fseek (catalog[0].f, catalog[0].header.size, SEEK_SET);
     /* matrix should be empty */
-    if (!fits_fread_matrix (catalog[0].f, &matrix, &catalog[0].header)) {
+    if (!gfits_fread_matrix (catalog[0].f, &matrix, &catalog[0].header)) {
       if (VERBOSE) fprintf (stderr, "can't read primary matrix");
       return (FALSE);
     }
     /* read Average table header */
-    if (!fits_fread_header (catalog[0].f, &header)) {
+    if (!gfits_fread_header (catalog[0].f, &header)) {
       if (VERBOSE) fprintf (stderr, "can't read table average header");
       return (FALSE);
     }
     /* read Average table data */
-    if (!fits_fread_ftable_data (catalog[0].f, &ftable)) {
+    if (!gfits_fread_ftable_data (catalog[0].f, &ftable)) {
       if (VERBOSE) fprintf (stderr, "can't read table average data");
       return (FALSE);
@@ -58,5 +58,5 @@
       fprintf (stderr, "Warning: mismatch between Naverage in PHU and Table headers (%d vs %d)\n", Naverage, catalog[0].Naverage);
     }
-    fits_free_header (&header);
+    gfits_free_header (&header);
   } 
 
@@ -70,5 +70,5 @@
 
     /* get split filename from main header (paths relative to cpt file) */
-    if (!fits_scan (&catalog[0].header, "MEASURE",  "%s", 1, string)) return (FALSE);
+    if (!gfits_scan (&catalog[0].header, "MEASURE",  "%s", 1, string)) return (FALSE);
     ALLOCATE (measure[0].filename, char, strlen(path) + strlen(string) + 2);
     sprintf (measure[0].filename, "%s/%s", path, string);
@@ -81,20 +81,20 @@
 
     /* read PHU */
-    if (!fits_load_header (measure[0].f, &measure[0].header)) {
+    if (!gfits_load_header (measure[0].f, &measure[0].header)) {
       if (VERBOSE) fprintf (stderr, "catalog file does not exist: %s\n", measure[0].filename);
       return (FALSE);
     }
     /* matrix should be empty */
-    if (!fits_fread_matrix (measure[0].f, &matrix, &measure[0].header)) {
+    if (!gfits_fread_matrix (measure[0].f, &matrix, &measure[0].header)) {
       if (VERBOSE) fprintf (stderr, "can't read primary matrix");
       return (FALSE);
     }
     /* read Measure table header */
-    if (!fits_fread_header (measure[0].f, &header)) {
+    if (!gfits_fread_header (measure[0].f, &header)) {
       if (VERBOSE) fprintf (stderr, "can't read measure PHU header");
       return (FALSE);
     }
     /* read Measure table data */
-    if (!fits_fread_ftable_data (measure[0].f, &ftable)) {
+    if (!gfits_fread_ftable_data (measure[0].f, &ftable)) {
       if (VERBOSE) fprintf (stderr, "can't read table measure data");
       return (FALSE);
@@ -106,6 +106,6 @@
     }
     catalog[0].Nmeas_off = 0;
-    fits_free_header (&header);
-    fits_free_matrix (&matrix);
+    gfits_free_header (&header);
+    gfits_free_matrix (&matrix);
   }
 
@@ -115,5 +115,5 @@
 
     /* get split filename from main header (paths relative to cpt file) */
-    if (!fits_scan (&catalog[0].header, "MEASURE",  "%s", 1, string)) return (FALSE);
+    if (!gfits_scan (&catalog[0].header, "MEASURE",  "%s", 1, string)) return (FALSE);
     ALLOCATE (measure[0].filename, char, strlen(path) + strlen(string) + 2);
     sprintf (measure[0].filename, "%s/%s", path, string);
@@ -126,5 +126,5 @@
 
     /* read PHU */
-    if (!fits_load_header (measure[0].f, &measure[0].header)) {
+    if (!gfits_load_header (measure[0].f, &measure[0].header)) {
       if (VERBOSE) fprintf (stderr, "catalog file does not exist: %s\n", measure[0].filename);
       return (FALSE);
@@ -147,5 +147,5 @@
 
     /* get split filename from main header (paths relative to cpt file) */
-    if (!fits_scan (&catalog[0].header, "MISSING",  "%s", 1, string)) return (FALSE);
+    if (!gfits_scan (&catalog[0].header, "MISSING",  "%s", 1, string)) return (FALSE);
     ALLOCATE (missing[0].filename, char, strlen(path) + strlen(string) + 2);
     sprintf (missing[0].filename, "%s/%s", path, string);
@@ -158,30 +158,30 @@
 
     /* read PHU */
-    if (!fits_load_header (missing[0].f, &missing[0].header)) {
+    if (!gfits_load_header (missing[0].f, &missing[0].header)) {
       if (VERBOSE) fprintf (stderr, "catalog file does not exist: %s\n", missing[0].filename);
       return (FALSE);
     }
     /* matrix should be empty */
-    if (!fits_fread_matrix (missing[0].f, &matrix, &missing[0].header)) {
+    if (!gfits_fread_matrix (missing[0].f, &matrix, &missing[0].header)) {
       if (VERBOSE) fprintf (stderr, "can't read primary matrix");
       return (FALSE);
     }
     /* read Missing table header */
-    if (!fits_fread_header (missing[0].f, &header)) {
+    if (!gfits_fread_header (missing[0].f, &header)) {
       if (VERBOSE) fprintf (stderr, "can't read table missing header");
       return (FALSE);
     }
     /* read Missing table data */
-    if (!fits_fread_ftable_data (missing[0].f, &ftable)) {
+    if (!gfits_fread_ftable_data (missing[0].f, &ftable)) {
       if (VERBOSE) fprintf (stderr, "can't read table missing data");
       return (FALSE);
     }
     /* no conversions currently defined */
-    catalog[0].missing = fits_table_get_Missing (&ftable, &catalog[0].Nmissing, NULL);
+    catalog[0].missing = gfits_table_get_Missing (&ftable, &catalog[0].Nmissing, NULL);
     if (Nmissing != catalog[0].Nmissing) {
       fprintf (stderr, "Warning: mismatch between Nmissing in PHU and Table headers (%d vs %d)\n", Nmissing, catalog[0].Nmissing);
     }
-    fits_free_header (&header);
-    fits_free_matrix (&matrix);
+    gfits_free_header (&header);
+    gfits_free_matrix (&matrix);
   } 
   catalog[0].missing_catalog = missing;
@@ -194,5 +194,5 @@
   
     /* get split filename from main header (paths relative to cpt file) */
-    if (!fits_scan (&catalog[0].header, "SECFILT",  "%s", 1, string)) return (FALSE);
+    if (!gfits_scan (&catalog[0].header, "SECFILT",  "%s", 1, string)) return (FALSE);
     ALLOCATE (secfilt[0].filename, char, strlen(path) + strlen(string) + 2);
     sprintf (secfilt[0].filename, "%s/%s", path, string);
@@ -205,20 +205,20 @@
 
     /* read PHU */
-    if (!fits_load_header (secfilt[0].f, &secfilt[0].header)) {
+    if (!gfits_load_header (secfilt[0].f, &secfilt[0].header)) {
       if (VERBOSE) fprintf (stderr, "catalog file does not exist: %s\n", secfilt[0].filename);
       return (FALSE);
     }
     /* matrix should be empty */
-    if (!fits_fread_matrix (secfilt[0].f, &matrix, &secfilt[0].header)) {
+    if (!gfits_fread_matrix (secfilt[0].f, &matrix, &secfilt[0].header)) {
       if (VERBOSE) fprintf (stderr, "can't read primary matrix");
       return (FALSE);
     }
     /* read secfilt table header */
-    if (!fits_fread_header (secfilt[0].f, &header)) {
+    if (!gfits_fread_header (secfilt[0].f, &header)) {
       if (VERBOSE) fprintf (stderr, "can't read table secfilt header");
       return (FALSE);
     }
     /* read secfilt table data */
-    if (!fits_fread_ftable_data (secfilt[0].f, &ftable)) {
+    if (!gfits_fread_ftable_data (secfilt[0].f, &ftable)) {
       if (VERBOSE) fprintf (stderr, "can't read table secfilt data");
       return (FALSE);
@@ -229,6 +229,6 @@
       fprintf (stderr, "Warning: mismatch between Nsecfilt items in PHU and Table headers (%d vs %d)\n", Nexpect, Nitems);
     }
-    fits_free_header (&header);
-    fits_free_matrix (&matrix);
+    gfits_free_header (&header);
+    gfits_free_matrix (&matrix);
   } 
   catalog[0].secfilt_catalog = secfilt;
@@ -260,9 +260,9 @@
 
   /* make sure header is consistent with data */
-  fits_modify (&catalog[0].header, "NSTARS",   "%d", 1, catalog[0].Naverage);
-  fits_modify (&catalog[0].header, "NMEAS",    "%d", 1, catalog[0].Nmeasure);
-  fits_modify (&catalog[0].header, "NMISS",    "%d", 1, catalog[0].Nmissing);
-  fits_modify (&catalog[0].header, "NSECFILT", "%d", 1, catalog[0].Nsecfilt);
-  fits_modify (&catalog[0].header, "EXTEND",   "%t", 1, TRUE);
+  gfits_modify (&catalog[0].header, "NSTARS",   "%d", 1, catalog[0].Naverage);
+  gfits_modify (&catalog[0].header, "NMEAS",    "%d", 1, catalog[0].Nmeasure);
+  gfits_modify (&catalog[0].header, "NMISS",    "%d", 1, catalog[0].Nmissing);
+  gfits_modify (&catalog[0].header, "NSECFILT", "%d", 1, catalog[0].Nsecfilt);
+  gfits_modify (&catalog[0].header, "EXTEND",   "%t", 1, TRUE);
 
   /* rewind file pointers and truncate (file is still open) */
@@ -271,5 +271,5 @@
   /* write table PHU header - always write this out */
   /* XXX EAM : check if disk file size has changed */
-  if (!fits_fwrite_header  (catalog[0].f, &catalog[0].header)) {
+  if (!gfits_fwrite_header  (catalog[0].f, &catalog[0].header)) {
     fprintf (stderr, "can't write primary header");
     return (FALSE);
@@ -284,23 +284,23 @@
 
     /* this is probably a NOP, do I have to keep it in? */
-    fits_create_matrix (&catalog[0].header, &matrix);
-    if (!fits_fwrite_matrix  (catalog[0].f, &matrix)) {
+    gfits_create_matrix (&catalog[0].header, &matrix);
+    if (!gfits_fwrite_matrix  (catalog[0].f, &matrix)) {
       fprintf (stderr, "can't write primary matrix");
       return (FALSE);
     }
-    fits_free_matrix (&matrix);
+    gfits_free_matrix (&matrix);
 
     /* write out Average table (convert to FITS table format) */
     AverageToFtable (&ftable, catalog[0].average, catalog[0].Naverage, catalog[0].catformat);
-    if (!fits_fwrite_Theader (catalog[0].f, &header)) {
-      fprintf (stderr, "can't write table header");
-      return (FALSE);
-    }
-    if (!fits_fwrite_table (catalog[0].f, &ftable)) {
-      fprintf (stderr, "can't write table data");
-      return (FALSE);
-    }
-    fits_free_table (&ftable);
-    fits_free_header (&header);
+    if (!gfits_fwrite_Theader (catalog[0].f, &header)) {
+      fprintf (stderr, "can't write table header");
+      return (FALSE);
+    }
+    if (!gfits_fwrite_table (catalog[0].f, &ftable)) {
+      fprintf (stderr, "can't write table data");
+      return (FALSE);
+    }
+    gfits_free_table (&ftable);
+    gfits_free_header (&header);
   }
 
@@ -322,5 +322,5 @@
 
     /* write table PHU header */
-    if (!fits_fwrite_header  (measure[0].f, &measure[0].header)) {
+    if (!gfits_fwrite_header  (measure[0].f, &measure[0].header)) {
       fprintf (stderr, "can't write primary header");
       return (FALSE);
@@ -328,23 +328,23 @@
 
     /* this is probably a NOP, do I have to keep it in? */
-    fits_create_matrix (&measure[0].header, &matrix);
-    if (!fits_fwrite_matrix  (measure[0].f, &matrix)) {
+    gfits_create_matrix (&measure[0].header, &matrix);
+    if (!gfits_fwrite_matrix  (measure[0].f, &matrix)) {
       fprintf (stderr, "can't write primary matrix");
       return (FALSE);
     }
-    fits_free_matrix (&matrix);
+    gfits_free_matrix (&matrix);
 
     /* write out Measure table (convert to FITS table format) */
     MeasureToFtable (&ftable, catalog[0].measure, catalog[0].Nmeasure, catalog[0].catformat);
-    if (!fits_fwrite_Theader (measure[0].f, &header)) {
-      fprintf (stderr, "can't write table header");
-      return (FALSE);
-    }
-    if (!fits_fwrite_table (measure[0].f, &ftable)) {
-      fprintf (stderr, "can't write table data");
-      return (FALSE);
-    }
-    fits_free_table (&ftable);
-    fits_free_header (&header);
+    if (!gfits_fwrite_Theader (measure[0].f, &header)) {
+      fprintf (stderr, "can't write table header");
+      return (FALSE);
+    }
+    if (!gfits_fwrite_table (measure[0].f, &ftable)) {
+      fprintf (stderr, "can't write table data");
+      return (FALSE);
+    }
+    gfits_free_table (&ftable);
+    gfits_free_header (&header);
   }
 
@@ -360,5 +360,5 @@
 
     /* write table PHU header */
-    if (!fits_fwrite_header  (missing[0].f, &missing[0].header)) {
+    if (!gfits_fwrite_header  (missing[0].f, &missing[0].header)) {
       fprintf (stderr, "can't write primary header");
       return (FALSE);
@@ -366,23 +366,23 @@
 
     /* this is probably a NOP, do I have to keep it in? */
-    fits_create_matrix (&missing[0].header, &matrix);
-    if (!fits_fwrite_matrix  (missing[0].f, &matrix)) {
+    gfits_create_matrix (&missing[0].header, &matrix);
+    if (!gfits_fwrite_matrix  (missing[0].f, &matrix)) {
       fprintf (stderr, "can't write primary matrix");
       return (FALSE);
     }
-    fits_free_matrix (&matrix);
+    gfits_free_matrix (&matrix);
 
     /* write out Missing table (convert to FITS table format) */
-    fits_table_set_Missing (&ftable, catalog[0].missing, catalog[0].Nmissing);
-    if (!fits_fwrite_Theader (missing[0].f, &header)) {
-      fprintf (stderr, "can't write table header");
-      return (FALSE);
-    }
-    if (!fits_fwrite_table (missing[0].f, &ftable)) {
-      fprintf (stderr, "can't write table data");
-      return (FALSE);
-    }
-    fits_free_table (&ftable);
-    fits_free_header (&header);
+    gfits_table_set_Missing (&ftable, catalog[0].missing, catalog[0].Nmissing);
+    if (!gfits_fwrite_Theader (missing[0].f, &header)) {
+      fprintf (stderr, "can't write table header");
+      return (FALSE);
+    }
+    if (!gfits_fwrite_table (missing[0].f, &ftable)) {
+      fprintf (stderr, "can't write table data");
+      return (FALSE);
+    }
+    gfits_free_table (&ftable);
+    gfits_free_header (&header);
   }
 
@@ -398,5 +398,5 @@
 
     /* write table PHU header */
-    if (!fits_fwrite_header  (secfilt[0].f, &secfilt[0].header)) {
+    if (!gfits_fwrite_header  (secfilt[0].f, &secfilt[0].header)) {
       fprintf (stderr, "can't write primary header");
       return (FALSE);
@@ -404,24 +404,24 @@
 
     /* this is probably a NOP, do I have to keep it in? */
-    fits_create_matrix (&secfilt[0].header, &matrix);
-    if (!fits_fwrite_matrix  (secfilt[0].f, &matrix)) {
+    gfits_create_matrix (&secfilt[0].header, &matrix);
+    if (!gfits_fwrite_matrix  (secfilt[0].f, &matrix)) {
       fprintf (stderr, "can't write primary matrix");
       return (FALSE);
     }
-    fits_free_matrix (&matrix);
+    gfits_free_matrix (&matrix);
 
     /* write out SecFilt table (convert to FITS table format) */
     Nitems = catalog[0].Naverage * catalog[0].Nsecfilt;
     SecFiltToFtable (&ftable, catalog[0].secfilt, Nitems, catalog[0].catformat);
-    if (!fits_fwrite_Theader (secfilt[0].f, &header)) {
-      fprintf (stderr, "can't write table header");
-      return (FALSE);
-    }
-    if (!fits_fwrite_table (secfilt[0].f, &ftable)) {
-      fprintf (stderr, "can't write table data");
-      return (FALSE);
-    }
-    fits_free_table (&ftable);
-    fits_free_header (&header);
+    if (!gfits_fwrite_Theader (secfilt[0].f, &header)) {
+      fprintf (stderr, "can't write table header");
+      return (FALSE);
+    }
+    if (!gfits_fwrite_table (secfilt[0].f, &ftable)) {
+      fprintf (stderr, "can't write table data");
+      return (FALSE);
+    }
+    gfits_free_table (&ftable);
+    gfits_free_header (&header);
   }
 
@@ -453,9 +453,9 @@
 
   /* make sure header is consistent with data */
-  fits_modify (&catalog[0].header, "NSTARS",   "%d", 1, catalog[0].Naverage);
-  fits_modify (&catalog[0].header, "NMEAS",    "%d", 1, catalog[0].Nmeasure + catalog[0].Nmeas_off);
-  fits_modify (&catalog[0].header, "NMISS",    "%d", 1, catalog[0].Nmissing);
-  fits_modify (&catalog[0].header, "NSECFILT", "%d", 1, catalog[0].Nsecfilt);
-  fits_modify (&catalog[0].header, "EXTEND",   "%t", 1, TRUE);
+  gfits_modify (&catalog[0].header, "NSTARS",   "%d", 1, catalog[0].Naverage);
+  gfits_modify (&catalog[0].header, "NMEAS",    "%d", 1, catalog[0].Nmeasure + catalog[0].Nmeas_off);
+  gfits_modify (&catalog[0].header, "NMISS",    "%d", 1, catalog[0].Nmissing);
+  gfits_modify (&catalog[0].header, "NSECFILT", "%d", 1, catalog[0].Nsecfilt);
+  gfits_modify (&catalog[0].header, "EXTEND",   "%t", 1, TRUE);
 
   /* rewind file pointers and truncate (file is still open) */
@@ -464,5 +464,5 @@
   /* write table PHU header - always write this out */
   /* XXX EAM : check if disk file size has changed */
-  if (!fits_fwrite_header  (catalog[0].f, &catalog[0].header)) {
+  if (!gfits_fwrite_header  (catalog[0].f, &catalog[0].header)) {
     fprintf (stderr, "can't write primary header");
     return (FALSE);
@@ -474,5 +474,5 @@
 
     /* skip past matrix (already at end of header) */
-    Nskip = fits_matrix_size (&catalog[0].header);
+    Nskip = gfits_matrix_size (&catalog[0].header);
     fseek (catalog[0].f, Nskip, SEEK_CUR);
 
@@ -483,17 +483,17 @@
     AverageToFtable (&ftable, catalog[0].average, catalog[0].Naverage, catalog[0].catformat);
     /* convert only output rows to vtable */
-    fits_table_to_vtable (&ftable, &vtable, catalog[0].Nave_disk, Nout);
-
-    if (!fits_fwrite_Theader (catalog[0].f, &header)) {
-      fprintf (stderr, "can't write table header");
-      return (FALSE);
-    }
-    if (!fits_fwrite_vtable (catalog[0].f, &vtable)) {
-      fprintf (stderr, "can't write table data");
-      return (FALSE);
-    }
-    fits_free_vtable (&vtable);
-    fits_free_table (&ftable);
-    fits_free_header (&header);
+    gfits_table_to_vtable (&ftable, &vtable, catalog[0].Nave_disk, Nout);
+
+    if (!gfits_fwrite_Theader (catalog[0].f, &header)) {
+      fprintf (stderr, "can't write table header");
+      return (FALSE);
+    }
+    if (!gfits_fwrite_vtable (catalog[0].f, &vtable)) {
+      fprintf (stderr, "can't write table data");
+      return (FALSE);
+    }
+    gfits_free_vtable (&vtable);
+    gfits_free_table (&ftable);
+    gfits_free_header (&header);
   }
 
@@ -505,5 +505,5 @@
 
     /* skip past PHU header and matrix */
-    Nskip = measure[0].header.size + fits_matrix_size (&measure[0].header);
+    Nskip = measure[0].header.size + gfits_matrix_size (&measure[0].header);
     fseek (measure[0].f, Nskip, SEEK_SET);
 
@@ -516,6 +516,6 @@
     MeasureToFtable (&ftable, &catalog[0].measure[Nstart], Nout, catalog[0].catformat);
 
-    fits_scan (&header, "NAXIS1", "%d", 1, &Nx);
-    fits_scan (&header, "NAXIS2", "%d", 1, &Ny);
+    gfits_scan (&header, "NAXIS1", "%d", 1, &Nx);
+    gfits_scan (&header, "NAXIS2", "%d", 1, &Ny);
 
     /* convert all output rows to vtable */
@@ -529,22 +529,22 @@
 
     /* modify vtable to represent full disk table */
-    fits_modify (&header, "NAXIS2", "%d", 1, Nlines);
+    gfits_modify (&header, "NAXIS2", "%d", 1, Nlines);
     header.Naxis[1] = Nlines;
 
-    vtable.size = fits_matrix_size (&header);
+    vtable.size = gfits_matrix_size (&header);
     vtable.Nrow = Nout;
     vtable.pad = vtable.size - Nx*Ny;
 
-    if (!fits_fwrite_Theader (measure[0].f, &header)) {
-      fprintf (stderr, "can't write table header");
-      return (FALSE);
-    }
-    if (!fits_fwrite_vtable (measure[0].f, &vtable)) {
-      fprintf (stderr, "can't write table data");
-      return (FALSE);
-    }
-    fits_free_vtable (&vtable);
-    fits_free_table (&ftable);
-    fits_free_header (&header);
+    if (!gfits_fwrite_Theader (measure[0].f, &header)) {
+      fprintf (stderr, "can't write table header");
+      return (FALSE);
+    }
+    if (!gfits_fwrite_vtable (measure[0].f, &vtable)) {
+      fprintf (stderr, "can't write table data");
+      return (FALSE);
+    }
+    gfits_free_vtable (&vtable);
+    gfits_free_table (&ftable);
+    gfits_free_header (&header);
   }
 
@@ -562,5 +562,5 @@
 
     /* write table PHU header */
-    if (!fits_fwrite_header  (missing[0].f, &missing[0].header)) {
+    if (!gfits_fwrite_header  (missing[0].f, &missing[0].header)) {
       fprintf (stderr, "can't write primary header");
       return (FALSE);
@@ -568,23 +568,23 @@
 
     /* this is probably a NOP, do I have to keep it in? */
-    fits_create_matrix (&missing[0].header, &matrix);
-    if (!fits_fwrite_matrix  (missing[0].f, &matrix)) {
+    gfits_create_matrix (&missing[0].header, &matrix);
+    if (!gfits_fwrite_matrix  (missing[0].f, &matrix)) {
       fprintf (stderr, "can't write primary matrix");
       return (FALSE);
     }
-    fits_free_matrix (&matrix);
+    gfits_free_matrix (&matrix);
 
     /* write out Missing table (convert to FITS table format) */
-    fits_table_set_Missing (&ftable, catalog[0].missing, catalog[0].Nmissing);
-    if (!fits_fwrite_Theader (missing[0].f, &header)) {
-      fprintf (stderr, "can't write table header");
-      return (FALSE);
-    }
-    if (!fits_fwrite_table (missing[0].f, &ftable)) {
-      fprintf (stderr, "can't write table data");
-      return (FALSE);
-    }
-    fits_free_table (&ftable);
-    fits_free_header (&header);
+    gfits_table_set_Missing (&ftable, catalog[0].missing, catalog[0].Nmissing);
+    if (!gfits_fwrite_Theader (missing[0].f, &header)) {
+      fprintf (stderr, "can't write table header");
+      return (FALSE);
+    }
+    if (!gfits_fwrite_table (missing[0].f, &ftable)) {
+      fprintf (stderr, "can't write table data");
+      return (FALSE);
+    }
+    gfits_free_table (&ftable);
+    gfits_free_header (&header);
   }
 
@@ -596,5 +596,5 @@
 
     /* skip past PHU header and matrix */
-    Nskip = secfilt[0].header.size + fits_matrix_size (&secfilt[0].header);
+    Nskip = secfilt[0].header.size + gfits_matrix_size (&secfilt[0].header);
     fseek (secfilt[0].f, Nskip, SEEK_SET);
 
@@ -607,17 +607,17 @@
     SecFiltToFtable (&ftable, catalog[0].secfilt, Nitems, catalog[0].catformat);
     /* convert only output rows to vtable */
-    fits_table_to_vtable (&ftable, &vtable, Ndisk, Nout);
-
-    if (!fits_fwrite_Theader (secfilt[0].f, &header)) {
-      fprintf (stderr, "can't write table header");
-      return (FALSE);
-    }
-    if (!fits_fwrite_vtable (secfilt[0].f, &vtable)) {
-      fprintf (stderr, "can't write table data");
-      return (FALSE);
-    }
-    fits_free_vtable (&vtable);
-    fits_free_table (&ftable);
-    fits_free_header (&header);
+    gfits_table_to_vtable (&ftable, &vtable, Ndisk, Nout);
+
+    if (!gfits_fwrite_Theader (secfilt[0].f, &header)) {
+      fprintf (stderr, "can't write table header");
+      return (FALSE);
+    }
+    if (!gfits_fwrite_vtable (secfilt[0].f, &vtable)) {
+      fprintf (stderr, "can't write table data");
+      return (FALSE);
+    }
+    gfits_free_vtable (&vtable);
+    gfits_free_table (&ftable);
+    gfits_free_header (&header);
   }
 
Index: /trunk/Ohana/src/libdvo/src/dvo_convert.c
===================================================================
--- /trunk/Ohana/src/libdvo/src/dvo_convert.c	(revision 7079)
+++ /trunk/Ohana/src/libdvo/src/dvo_convert.c	(revision 7080)
@@ -19,10 +19,10 @@
 
   /* convert to the internal format */
-  if (!fits_scan (ftable[0].header, "EXTNAME", "%s", 1, extname)) {
+  if (!gfits_scan (ftable[0].header, "EXTNAME", "%s", 1, extname)) {
     fprintf (stderr, "EXTNAME missing for average table\n");
     return (FALSE);
   }
   if (!strcmp (extname, "DVO_AVERAGE")) {
-    average = fits_table_get_Average (ftable, Naverage, NULL);
+    average = gfits_table_get_Average (ftable, Naverage, NULL);
     *format = DVO_FORMAT_INTERNAL;
     return (average);
@@ -30,5 +30,5 @@
   if (!strcmp (extname, "DVO_AVERAGE_ELIXIR")) {
     AverageElixir *tmpAverage;
-    tmpAverage = fits_table_get_AverageElixir (ftable, Naverage, NULL);
+    tmpAverage = gfits_table_get_AverageElixir (ftable, Naverage, NULL);
     average = AverageElixirToInternal (tmpAverage, *Naverage);
     free (tmpAverage);
@@ -38,5 +38,5 @@
   if (!strcmp (extname, "DVO_AVERAGE_LONEOS")) {
     AverageLoneos *tmpAverage;
-    tmpAverage = fits_table_get_AverageLoneos (ftable, Naverage, NULL);
+    tmpAverage = gfits_table_get_AverageLoneos (ftable, Naverage, NULL);
     average = AverageLoneosToInternal (tmpAverage, *Naverage);
     free (tmpAverage);
@@ -46,5 +46,5 @@
   if (!strcmp (extname, "DVO_AVERAGE_PANSTARRS")) {
     AveragePanstarrs *tmpAverage;
-    tmpAverage = fits_table_get_AveragePanstarrs (ftable, Naverage, NULL);
+    tmpAverage = gfits_table_get_AveragePanstarrs (ftable, Naverage, NULL);
     average = AveragePanstarrsToInternal (tmpAverage, *Naverage);
     free (tmpAverage);
@@ -54,5 +54,5 @@
   if (!strcmp (extname, "DVO_AVERAGE_PMTEST")) {
     AveragePMtest *tmpAverage;
-    tmpAverage = fits_table_get_AveragePMtest (ftable, Naverage, NULL);
+    tmpAverage = gfits_table_get_AveragePMtest (ftable, Naverage, NULL);
     average = AveragePMtestToInternal (tmpAverage, *Naverage);
     free (tmpAverage);
@@ -77,24 +77,24 @@
   switch (format) {
     case DVO_FORMAT_INTERNAL:
-      fits_table_set_Average (ftable, average, Naverage);
+      gfits_table_set_Average (ftable, average, Naverage);
       break;
     case DVO_FORMAT_ELIXIR:
       tmpAverageElixir = AverageInternalToElixir (average, Naverage);
-      fits_table_set_AverageElixir (ftable, tmpAverageElixir, Naverage);
+      gfits_table_set_AverageElixir (ftable, tmpAverageElixir, Naverage);
       free (tmpAverageElixir);
       break;
     case DVO_FORMAT_LONEOS:
       tmpAverageLoneos  = AverageInternalToLoneos (average, Naverage);
-      fits_table_set_AverageLoneos (ftable, tmpAverageLoneos , Naverage);
+      gfits_table_set_AverageLoneos (ftable, tmpAverageLoneos , Naverage);
       free (tmpAverageLoneos );
       break;
     case DVO_FORMAT_PANSTARRS:
       tmpAveragePanstarrs = AverageInternalToPanstarrs (average, Naverage);
-      fits_table_set_AveragePanstarrs (ftable, tmpAveragePanstarrs, Naverage);
+      gfits_table_set_AveragePanstarrs (ftable, tmpAveragePanstarrs, Naverage);
       free (tmpAveragePanstarrs);
       break;
     case DVO_FORMAT_PMTEST:
       tmpAveragePMtest = AverageInternalToPMtest (average, Naverage);
-      fits_table_set_AveragePMtest (ftable, tmpAveragePMtest, Naverage);
+      gfits_table_set_AveragePMtest (ftable, tmpAveragePMtest, Naverage);
       free (tmpAveragePMtest);
       break;
@@ -114,10 +114,10 @@
 
   /* convert to the internal format */
-  if (!fits_scan (ftable[0].header, "EXTNAME", "%s", 1, extname)) {
+  if (!gfits_scan (ftable[0].header, "EXTNAME", "%s", 1, extname)) {
     fprintf (stderr, "EXTNAME missing for measure table\n");
     return (FALSE);
   }
   if (!strcmp (extname, "DVO_MEASURE")) {
-    measure = fits_table_get_Measure (ftable, Nmeasure, NULL);
+    measure = gfits_table_get_Measure (ftable, Nmeasure, NULL);
     *format = DVO_FORMAT_INTERNAL;
     return (measure);
@@ -125,5 +125,5 @@
   if (!strcmp (extname, "DVO_MEASURE_ELIXIR")) {
     MeasureElixir *tmpMeasure;
-    tmpMeasure = fits_table_get_MeasureElixir (ftable, Nmeasure, NULL);
+    tmpMeasure = gfits_table_get_MeasureElixir (ftable, Nmeasure, NULL);
     measure = MeasureElixirToInternal (tmpMeasure, *Nmeasure);
     free (tmpMeasure);
@@ -133,5 +133,5 @@
   if (!strcmp (extname, "DVO_MEASURE_LONEOS")) {
     MeasureLoneos *tmpMeasure;
-    tmpMeasure = fits_table_get_MeasureLoneos (ftable, Nmeasure, NULL);
+    tmpMeasure = gfits_table_get_MeasureLoneos (ftable, Nmeasure, NULL);
     measure = MeasureLoneosToInternal (tmpMeasure, *Nmeasure);
     free (tmpMeasure);
@@ -141,5 +141,5 @@
   if (!strcmp (extname, "DVO_MEASURE_PANSTARRS") || !strcmp (extname, "DVO_MEASURE_PMTEST")) {
     MeasurePanstarrs *tmpMeasure;
-    tmpMeasure = fits_table_get_MeasurePanstarrs (ftable, Nmeasure, NULL);
+    tmpMeasure = gfits_table_get_MeasurePanstarrs (ftable, Nmeasure, NULL);
     measure = MeasurePanstarrsToInternal (tmpMeasure, *Nmeasure);
     free (tmpMeasure);
@@ -163,14 +163,14 @@
   switch (format) {
     case DVO_FORMAT_INTERNAL:
-      fits_table_set_Measure (ftable, measure, Nmeasure);
+      gfits_table_set_Measure (ftable, measure, Nmeasure);
       break;
     case DVO_FORMAT_ELIXIR:
       tmpMeasureElixir = MeasureInternalToElixir (measure, Nmeasure);
-      fits_table_set_MeasureElixir (ftable, tmpMeasureElixir, Nmeasure);
+      gfits_table_set_MeasureElixir (ftable, tmpMeasureElixir, Nmeasure);
       free (tmpMeasureElixir);
       break;
     case DVO_FORMAT_LONEOS:
       tmpMeasureLoneos = MeasureInternalToLoneos (measure, Nmeasure);
-      fits_table_set_MeasureLoneos (ftable, tmpMeasureLoneos, Nmeasure);
+      gfits_table_set_MeasureLoneos (ftable, tmpMeasureLoneos, Nmeasure);
       free (tmpMeasureLoneos);
       break;
@@ -178,5 +178,5 @@
     case DVO_FORMAT_PMTEST:
       tmpMeasurePanstarrs = MeasureInternalToPanstarrs (measure, Nmeasure);
-      fits_table_set_MeasurePanstarrs (ftable, tmpMeasurePanstarrs, Nmeasure);
+      gfits_table_set_MeasurePanstarrs (ftable, tmpMeasurePanstarrs, Nmeasure);
       free (tmpMeasurePanstarrs);
       break;
@@ -196,10 +196,10 @@
 
   /* convert to the internal format */
-  if (!fits_scan (ftable[0].header, "EXTNAME", "%s", 1, extname)) {
+  if (!gfits_scan (ftable[0].header, "EXTNAME", "%s", 1, extname)) {
     fprintf (stderr, "EXTNAME missing for secfilt table\n");
     return (FALSE);
   }
   if (!strcmp (extname, "DVO_SECFILT")) {
-    secfilt = fits_table_get_SecFilt (ftable, Nsecfilt, NULL);
+    secfilt = gfits_table_get_SecFilt (ftable, Nsecfilt, NULL);
     *format = DVO_FORMAT_INTERNAL;
     return (secfilt);
@@ -207,5 +207,5 @@
   if (!strcmp (extname, "DVO_SECFILT_ELIXIR")) {
     SecFiltElixir *tmpSecFilt;
-    tmpSecFilt = fits_table_get_SecFiltElixir (ftable, Nsecfilt, NULL);
+    tmpSecFilt = gfits_table_get_SecFiltElixir (ftable, Nsecfilt, NULL);
     secfilt = SecFiltElixirToInternal (tmpSecFilt, *Nsecfilt);
     free (tmpSecFilt);
@@ -215,5 +215,5 @@
   if (!strcmp (extname, "DVO_SECFILT_LONEOS")) {
     SecFiltLoneos *tmpSecFilt;
-    tmpSecFilt = fits_table_get_SecFiltLoneos (ftable, Nsecfilt, NULL);
+    tmpSecFilt = gfits_table_get_SecFiltLoneos (ftable, Nsecfilt, NULL);
     secfilt = SecFiltLoneosToInternal (tmpSecFilt, *Nsecfilt);
     free (tmpSecFilt);
@@ -223,5 +223,5 @@
   if (!strcmp (extname, "DVO_SECFILT_PANSTARRS") || !strcmp (extname, "DVO_SECFILT_PMTEST")) {
     SecFiltPanstarrs *tmpSecFilt;
-    tmpSecFilt = fits_table_get_SecFiltPanstarrs (ftable, Nsecfilt, NULL);
+    tmpSecFilt = gfits_table_get_SecFiltPanstarrs (ftable, Nsecfilt, NULL);
     secfilt = SecFiltPanstarrsToInternal (tmpSecFilt, *Nsecfilt);
     free (tmpSecFilt);
@@ -245,14 +245,14 @@
   switch (format) {
     case DVO_FORMAT_INTERNAL:
-      fits_table_set_SecFilt (ftable, secfilt, Nsecfilt);
+      gfits_table_set_SecFilt (ftable, secfilt, Nsecfilt);
       break;
     case DVO_FORMAT_ELIXIR:
       tmpSecFiltElixir = SecFiltInternalToElixir (secfilt, Nsecfilt);
-      fits_table_set_SecFiltElixir (ftable, tmpSecFiltElixir, Nsecfilt);
+      gfits_table_set_SecFiltElixir (ftable, tmpSecFiltElixir, Nsecfilt);
       free (tmpSecFiltElixir);
       break;
     case DVO_FORMAT_LONEOS:
       tmpSecFiltLoneos = SecFiltInternalToLoneos (secfilt, Nsecfilt);
-      fits_table_set_SecFiltLoneos (ftable, tmpSecFiltLoneos, Nsecfilt);
+      gfits_table_set_SecFiltLoneos (ftable, tmpSecFiltLoneos, Nsecfilt);
       free (tmpSecFiltLoneos);
       break;
@@ -260,5 +260,5 @@
     case DVO_FORMAT_PMTEST:
       tmpSecFiltPanstarrs = SecFiltInternalToPanstarrs (secfilt, Nsecfilt);
-      fits_table_set_SecFiltPanstarrs (ftable, tmpSecFiltPanstarrs, Nsecfilt);
+      gfits_table_set_SecFiltPanstarrs (ftable, tmpSecFiltPanstarrs, Nsecfilt);
       free (tmpSecFiltPanstarrs);
       break;
@@ -280,5 +280,5 @@
   if (*format == DVO_FORMAT_ELIXIR) {
     ImageElixir *tmpimage;
-    tmpimage = fits_table_get_ImageElixir (ftable, &Nimage, NULL);
+    tmpimage = gfits_table_get_ImageElixir (ftable, &Nimage, NULL);
     ftable[0].buffer = (char *) ImageElixirToInternal (tmpimage, Nimage);
     free (tmpimage);
@@ -287,5 +287,5 @@
 
   /* convert to the internal format */
-  if (!fits_scan (ftable[0].header, "EXTNAME", "%s", 1, extname)) {
+  if (!gfits_scan (ftable[0].header, "EXTNAME", "%s", 1, extname)) {
     fprintf (stderr, "EXTNAME missing for image table\n");
     return (FALSE);
@@ -293,5 +293,5 @@
   if (!strcmp (extname, "DVO_IMAGE")) {
     Image *image;
-    image = fits_table_get_Image (ftable, &Nimage, NULL);
+    image = gfits_table_get_Image (ftable, &Nimage, NULL);
     *format = DVO_FORMAT_INTERNAL;
     return (TRUE);
@@ -300,5 +300,5 @@
     ImageElixir *tmpimage;
     *format = DVO_FORMAT_ELIXIR;
-    tmpimage = fits_table_get_ImageElixir (ftable, &Nimage, NULL);
+    tmpimage = gfits_table_get_ImageElixir (ftable, &Nimage, NULL);
     ftable[0].buffer = (char *) ImageElixirToInternal (tmpimage, Nimage);
     free (tmpimage);
@@ -308,5 +308,5 @@
     ImageLoneos *tmpimage;
     *format = DVO_FORMAT_LONEOS;
-    tmpimage = fits_table_get_ImageLoneos (ftable, &Nimage, NULL);
+    tmpimage = gfits_table_get_ImageLoneos (ftable, &Nimage, NULL);
     ftable[0].buffer = (char *) ImageLoneosToInternal (tmpimage, Nimage);
     free (tmpimage);
@@ -316,5 +316,5 @@
     ImagePanstarrs *tmpimage;
     *format = DVO_FORMAT_PANSTARRS;
-    tmpimage = fits_table_get_ImagePanstarrs (ftable, &Nimage, NULL);
+    tmpimage = gfits_table_get_ImagePanstarrs (ftable, &Nimage, NULL);
     ftable[0].buffer = (char *) ImagePanstarrsToInternal (tmpimage, Nimage);
     free (tmpimage);
@@ -325,9 +325,9 @@
 
 set_header:
-  fits_free_header (theader);
-  fits_table_mkheader_Image (theader);
-  fits_modify (theader, "NAXIS2", "%d", 1, Nimage);
+  gfits_free_header (theader);
+  gfits_table_mkheader_Image (theader);
+  gfits_modify (theader, "NAXIS2", "%d", 1, Nimage);
   theader[0].Naxis[1] = Nimage;
-  ftable[0].size = fits_matrix_size (theader);
+  ftable[0].size = gfits_matrix_size (theader);
   return (TRUE);
 }
@@ -345,10 +345,10 @@
   switch (format) {
     case DVO_FORMAT_INTERNAL:
-      fits_convert_Image ((Image *) ftable[0].buffer, sizeof(Image), Nimage);
+      gfits_convert_Image ((Image *) ftable[0].buffer, sizeof(Image), Nimage);
       break;
     case DVO_FORMAT_ELIXIR:
       tmpImageElixir = ImageInternalToElixir ((Image *) ftable[0].buffer, Nimage);
       free (ftable[0].buffer);
-      fits_table_set_ImageElixir (ftable, tmpImageElixir, Nimage);
+      gfits_table_set_ImageElixir (ftable, tmpImageElixir, Nimage);
       free (tmpImageElixir);
       break;
@@ -356,5 +356,5 @@
       tmpImageLoneos = ImageInternalToLoneos ((Image *) ftable[0].buffer, Nimage);
       free (ftable[0].buffer);
-      fits_table_set_ImageLoneos (ftable, tmpImageLoneos, Nimage);
+      gfits_table_set_ImageLoneos (ftable, tmpImageLoneos, Nimage);
       free (tmpImageLoneos);
       break;
@@ -363,5 +363,5 @@
       tmpImagePanstarrs = ImageInternalToPanstarrs ((Image *) ftable[0].buffer, Nimage);
       free (ftable[0].buffer);
-      fits_table_set_ImagePanstarrs (ftable, tmpImagePanstarrs, Nimage);
+      gfits_table_set_ImagePanstarrs (ftable, tmpImagePanstarrs, Nimage);
       free (tmpImagePanstarrs);
       break;
@@ -386,5 +386,5 @@
     case DVO_FORMAT_INTERNAL:
       for (i = 0; i < Nrow; i++) {
-	fits_convert_Image ((Image *) vtable[0].buffer[i], sizeof(Image), 1);
+	gfits_convert_Image ((Image *) vtable[0].buffer[i], sizeof(Image), 1);
       }
       return (TRUE);
@@ -393,5 +393,5 @@
       for (i = 0; i < Nrow; i++) {
 	tmpImageElixir = ImageInternalToElixir ((Image *) vtable[0].buffer[i], 1);
-	fits_convert_ImageElixir (tmpImageElixir, sizeof(ImageElixir), 1);
+	gfits_convert_ImageElixir (tmpImageElixir, sizeof(ImageElixir), 1);
 	free (vtable[0].buffer[i]);
 	vtable[0].buffer[i] = (char *) tmpImageElixir;
@@ -399,12 +399,12 @@
 
       /* convert header from old format to new format */
-      fits_scan (theader, "NAXIS2", "%d", 1, &Nimage);
-
-      fits_free_header (theader);
-      fits_table_mkheader_ImageElixir (theader);
-
-      fits_modify (theader, "NAXIS2", "%d", 1, Nimage);
+      gfits_scan (theader, "NAXIS2", "%d", 1, &Nimage);
+
+      gfits_free_header (theader);
+      gfits_table_mkheader_ImageElixir (theader);
+
+      gfits_modify (theader, "NAXIS2", "%d", 1, Nimage);
       theader[0].Naxis[1] = Nimage;
-      vtable[0].size = fits_matrix_size (theader);
+      vtable[0].size = gfits_matrix_size (theader);
       return (TRUE);
     case DVO_FORMAT_LONEOS:
@@ -412,5 +412,5 @@
       for (i = 0; i < Nrow; i++) {
 	tmpImageLoneos = ImageInternalToLoneos ((Image *) vtable[0].buffer[i], 1);
-	fits_convert_ImageLoneos (tmpImageLoneos, sizeof(ImageLoneos), 1);
+	gfits_convert_ImageLoneos (tmpImageLoneos, sizeof(ImageLoneos), 1);
 	free (vtable[0].buffer[i]);
 	vtable[0].buffer[i] = (char *) tmpImageLoneos;
@@ -418,12 +418,12 @@
 
       /* convert header from old format to new format */
-      fits_scan (theader, "NAXIS2", "%d", 1, &Nimage);
-
-      fits_free_header (theader);
-      fits_table_mkheader_ImageLoneos (theader);
-
-      fits_modify (theader, "NAXIS2", "%d", 1, Nimage);
+      gfits_scan (theader, "NAXIS2", "%d", 1, &Nimage);
+
+      gfits_free_header (theader);
+      gfits_table_mkheader_ImageLoneos (theader);
+
+      gfits_modify (theader, "NAXIS2", "%d", 1, Nimage);
       theader[0].Naxis[1] = Nimage;
-      vtable[0].size = fits_matrix_size (theader);
+      vtable[0].size = gfits_matrix_size (theader);
       return (TRUE);
     case DVO_FORMAT_PANSTARRS:
@@ -431,5 +431,5 @@
       for (i = 0; i < Nrow; i++) {
 	tmpImagePanstarrs = ImageInternalToPanstarrs ((Image *) vtable[0].buffer[i], 1);
-	fits_convert_ImagePanstarrs (tmpImagePanstarrs, sizeof(ImagePanstarrs), 1);
+	gfits_convert_ImagePanstarrs (tmpImagePanstarrs, sizeof(ImagePanstarrs), 1);
 	free (vtable[0].buffer[i]);
 	vtable[0].buffer[i] = (char *) tmpImagePanstarrs;
@@ -437,10 +437,10 @@
 
       /* convert header from old format to new format */
-      fits_scan (theader, "NAXIS2", "%d", 1, &Nimage);
-      fits_free_header (theader);
-      fits_table_mkheader_ImagePanstarrs (theader);
-      fits_modify (theader, "NAXIS2", "%d", 1, Nimage);
+      gfits_scan (theader, "NAXIS2", "%d", 1, &Nimage);
+      gfits_free_header (theader);
+      gfits_table_mkheader_ImagePanstarrs (theader);
+      gfits_modify (theader, "NAXIS2", "%d", 1, Nimage);
       theader[0].Naxis[1] = Nimage;
-      vtable[0].size = fits_matrix_size (theader);
+      vtable[0].size = gfits_matrix_size (theader);
       return (TRUE);
     default:
Index: /trunk/Ohana/src/libdvo/src/dvo_image.c
===================================================================
--- /trunk/Ohana/src/libdvo/src/dvo_image.c	(revision 7079)
+++ /trunk/Ohana/src/libdvo/src/dvo_image.c	(revision 7080)
@@ -9,7 +9,7 @@
   db[0].lockstate = lockstate;
   db[0].timeout   = timeout;
-  fits_db_init (db);
+  gfits_db_init (db);
 
-  if (!fits_db_lock (db, filename)) {
+  if (!gfits_db_lock (db, filename)) {
     fprintf (stderr, "ERROR: can't lock image catalog\n");
     return (FALSE);
@@ -22,5 +22,5 @@
   mode_t mode;
 
-  fits_db_close (db);
+  gfits_db_close (db);
 
   /* force permissions to 666 */
@@ -63,5 +63,5 @@
     case DVO_MODE_MEF:
       if (VERBOSE) fprintf (stderr, "reading images (mode DVO_MODE_MEF)\n");
-      status = fits_db_load (db);
+      status = gfits_db_load (db);
       break;
     case DVO_MODE_RAW:
@@ -91,5 +91,5 @@
     case DVO_MODE_MEF:
     case DVO_MODE_SPLIT:
-      status = fits_db_save (db);
+      status = gfits_db_save (db);
       break;
     case DVO_MODE_RAW:
@@ -109,10 +109,10 @@
   /* adjust header */
   Nimages = 0;
-  fits_scan (&db[0].header, "NIMAGES", "%d", 1, &Nimages);
+  gfits_scan (&db[0].header, "NIMAGES", "%d", 1, &Nimages);
   Nimages += Nnew;
-  fits_modify (&db[0].header, "NIMAGES", "%d", 1, Nimages);
+  gfits_modify (&db[0].header, "NIMAGES", "%d", 1, Nimages);
 
-  fits_table_to_vtable (&db[0].ftable, &db[0].vtable, 0, 0);
-  fits_vadd_rows (&db[0].vtable, (char *) new, Nnew, sizeof(Image));
+  gfits_table_to_vtable (&db[0].ftable, &db[0].vtable, 0, 0);
+  gfits_vadd_rows (&db[0].vtable, (char *) new, Nnew, sizeof(Image));
 
   /* check that primary header and table header agree */
@@ -137,5 +137,5 @@
     case DVO_MODE_MEF:
     case DVO_MODE_SPLIT:
-      status = fits_db_update (db);
+      status = gfits_db_update (db);
       break;
     case DVO_MODE_RAW:
Index: /trunk/Ohana/src/libdvo/src/dvo_image_raw.c
===================================================================
--- /trunk/Ohana/src/libdvo/src/dvo_image_raw.c	(revision 7079)
+++ /trunk/Ohana/src/libdvo/src/dvo_image_raw.c	(revision 7080)
@@ -12,5 +12,5 @@
 
   /* read fits header from file - return FALSE on error */
-  if (!fits_fread_header (db[0].f, &db[0].header)) {
+  if (!gfits_fread_header (db[0].f, &db[0].header)) {
     fprintf (stderr, "can't read primary header\n"); 
     return (FALSE);
@@ -19,5 +19,5 @@
   /* determine image table format */
   db[0].format = DVO_FORMAT_UNDEF;
-  if (fits_scan (&db[0].header, "FORMAT",  "%s", 1, format)) {
+  if (gfits_scan (&db[0].header, "FORMAT",  "%s", 1, format)) {
     if (!strcmp (format, "INTERNAL")) db[0].format = DVO_FORMAT_INTERNAL;
     if (!strcmp (format, "LONEOS")) db[0].format = DVO_FORMAT_LONEOS;
@@ -27,5 +27,5 @@
     if (db[0].format != DVO_FORMAT_UNDEF) goto got_format;
   }
-  if (fits_scan (&db[0].header, "TELESCOP",  "%s", 1, telescope)) {
+  if (gfits_scan (&db[0].header, "TELESCOP",  "%s", 1, telescope)) {
     if (!strncmp (telescope, "LONEOS", strlen("LONEOS"))) {
       db[0].format = DVO_FORMAT_LONEOS;
@@ -43,5 +43,5 @@
   /* find number of images */
   Nimage = 0;
-  fits_scan (&db[0].header, "NIMAGES", "%d", 1, &Nimage);
+  gfits_scan (&db[0].header, "NIMAGES", "%d", 1, &Nimage);
   if (stat (db[0].filename, &filestatus) == -1) {
     if (VERBOSE) fprintf (stderr, "ERROR: failed to get status of image catalog\n");
@@ -68,12 +68,12 @@
   /* create a dummy ftable, theader set for this data */
   /* (original table has NAXIS = 2, change to 0) */
-  /* fits_modify (&db[0].header, "NAXIS", "%d", 1, 0); */
-  fits_create_matrix (&db[0].header, &db[0].matrix);
+  /* gfits_modify (&db[0].header, "NAXIS", "%d", 1, 0); */
+  gfits_create_matrix (&db[0].header, &db[0].matrix);
   db[0].ftable.header = &db[0].theader;
 
-  if (db[0].format == DVO_FORMAT_INTERNAL)  fits_table_mkheader_Image (&db[0].theader);
-  if (db[0].format == DVO_FORMAT_LONEOS)    fits_table_mkheader_ImageLoneos (&db[0].theader);
-  if (db[0].format == DVO_FORMAT_ELIXIR)    fits_table_mkheader_ImageElixir (&db[0].theader);
-  if (db[0].format == DVO_FORMAT_PANSTARRS) fits_table_mkheader_ImagePanstarrs (&db[0].theader);
+  if (db[0].format == DVO_FORMAT_INTERNAL)  gfits_table_mkheader_Image (&db[0].theader);
+  if (db[0].format == DVO_FORMAT_LONEOS)    gfits_table_mkheader_ImageLoneos (&db[0].theader);
+  if (db[0].format == DVO_FORMAT_ELIXIR)    gfits_table_mkheader_ImageElixir (&db[0].theader);
+  if (db[0].format == DVO_FORMAT_PANSTARRS) gfits_table_mkheader_ImagePanstarrs (&db[0].theader);
     
   /* read data from file */
@@ -86,7 +86,7 @@
   } 
 
-  fits_modify (&db[0].theader, "NAXIS2", "%d", 1, Nimage);
+  gfits_modify (&db[0].theader, "NAXIS2", "%d", 1, Nimage);
   db[0].theader.Naxis[1] = Nimage;
-  db[0].ftable.size = fits_matrix_size (&db[0].theader);
+  db[0].ftable.size = gfits_matrix_size (&db[0].theader);
   db[0].swapped = FALSE;  /* table does not have internal byte-order */
   return (TRUE);
@@ -112,9 +112,9 @@
   }
 
-  /** this code is identical to fits_fwrite_vtable, except without padding */
+  /** this code is identical to gfits_fwrite_vtable, except without padding */
   Nrow = db[0].vtable.Nrow;
   row = db[0].vtable.row;
-  fits_scan (db[0].vtable.header, "NAXIS1", "%d", 1, &Nx);
-  fits_scan (db[0].vtable.header, "NAXIS2", "%d", 1, &Ny);
+  gfits_scan (db[0].vtable.header, "NAXIS1", "%d", 1, &Nx);
+  gfits_scan (db[0].vtable.header, "NAXIS2", "%d", 1, &Ny);
 
   /* file pointer is at beginning of desired table data */
@@ -147,6 +147,6 @@
   }
 
-  fits_scan (db[0].ftable.header, "NAXIS1", "%d", 1, &Nx);
-  fits_scan (db[0].ftable.header, "NAXIS2", "%d", 1, &Ny);
+  gfits_scan (db[0].ftable.header, "NAXIS1", "%d", 1, &Nx);
+  gfits_scan (db[0].ftable.header, "NAXIS2", "%d", 1, &Ny);
   size = Nx * Ny;
   Nbytes = fwrite (db[0].ftable.buffer, sizeof(char), size, db[0].f);
Index: /trunk/Ohana/src/libdvo/src/fits_db.c
===================================================================
--- /trunk/Ohana/src/libdvo/src/fits_db.c	(revision 7079)
+++ /trunk/Ohana/src/libdvo/src/fits_db.c	(revision 7080)
@@ -2,5 +2,5 @@
 
 /* init the db structure */
-int fits_db_init (FITS_DB *db) {
+int gfits_db_init (FITS_DB *db) {
 
   db[0].f             = NULL;
@@ -19,15 +19,15 @@
 
 /* create an empty db */
-int fits_db_create (FITS_DB *db) {
-  fits_init_header (&db[0].header);    
+int gfits_db_create (FITS_DB *db) {
+  gfits_init_header (&db[0].header);    
   db[0].header.extend = TRUE;
-  fits_create_header (&db[0].header);
-  fits_create_matrix (&db[0].header, &db[0].matrix);
-  fits_print (&db[0].header, "NEXTEND", "%d", 1, 1);
+  gfits_create_header (&db[0].header);
+  gfits_create_matrix (&db[0].header, &db[0].matrix);
+  gfits_print (&db[0].header, "NEXTEND", "%d", 1, 1);
   db[0].ftable.header = &db[0].theader;
   return (TRUE);
 }
 
-int fits_db_lock (FITS_DB *db, char *filename) {
+int gfits_db_lock (FITS_DB *db, char *filename) {
   
   /* database name must be set first */
@@ -59,5 +59,5 @@
 
 /* load the complete db table into memory - load first extension, do not validate EXTNAME */
-int fits_db_load (FITS_DB *db) {
+int gfits_db_load (FITS_DB *db) {
 
   /* database name must be set first */
@@ -68,17 +68,17 @@
 
   /* init & load in FITS table data - return FALSE on error */
-  if (!fits_fread_header (db[0].f, &db[0].header)) {
+  if (!gfits_fread_header (db[0].f, &db[0].header)) {
     fprintf (stderr, "can't read primary header\n"); 
     return (FALSE);
   }
-  if (!fits_fread_matrix (db[0].f, &db[0].matrix, &db[0].header)) {
+  if (!gfits_fread_matrix (db[0].f, &db[0].matrix, &db[0].header)) {
     fprintf (stderr, "can't read primary matrix");
     return (FALSE);
   }
-  if (!fits_fread_header (db[0].f, &db[0].theader)) {
+  if (!gfits_fread_header (db[0].f, &db[0].theader)) {
     fprintf (stderr, "can't read table header");
     return (FALSE);
   }
-  if (!fits_fread_ftable_data (db[0].f, &db[0].ftable)) {
+  if (!gfits_fread_ftable_data (db[0].f, &db[0].ftable)) {
     fprintf (stderr, "can't read table data");
     return (FALSE);
@@ -89,5 +89,5 @@
 
 /* load the data from Nrows from table starting at start; load header, etc if needed */
-int fits_db_load_segment (FITS_DB *db, int start, int Nrows) {
+int gfits_db_load_segment (FITS_DB *db, int start, int Nrows) {
 
   int Nskip;
@@ -110,5 +110,5 @@
   /* load or skip header */
   if (db[0].header.buffer == NULL) {
-    if (!fits_fread_header (db[0].f, &db[0].header)) {
+    if (!gfits_fread_header (db[0].f, &db[0].header)) {
       fprintf (stderr, "can't read primary header\n"); 
       return (FALSE);
@@ -121,10 +121,10 @@
   /* load or skip matrix */
   if (db[0].matrix.buffer == NULL) {
-    if (!fits_fread_matrix (db[0].f, &db[0].matrix, &db[0].header)) {
+    if (!gfits_fread_matrix (db[0].f, &db[0].matrix, &db[0].header)) {
       fprintf (stderr, "can't read primary matrix");
       return (FALSE);
     }
   } else {
-    Nskip = fits_matrix_size (&db[0].header);
+    Nskip = gfits_matrix_size (&db[0].header);
     Fseek (db[0].f, Nskip, SEEK_CUR);
   }
@@ -132,5 +132,5 @@
   /* load or skip table header */
   if (db[0].theader.buffer == NULL) {
-    if (!fits_fread_header (db[0].f, &db[0].theader)) {
+    if (!gfits_fread_header (db[0].f, &db[0].theader)) {
       fprintf (stderr, "can't read table header");
       return (FALSE);
@@ -142,5 +142,5 @@
 
   /* read table segment into vtable */
-  if (!fits_fread_vtable_range (db[0].f, &db[0].vtable, start, Nrows)) {
+  if (!gfits_fread_vtable_range (db[0].f, &db[0].vtable, start, Nrows)) {
     fprintf (stderr, "can't read table data");
     return (FALSE);
@@ -150,5 +150,5 @@
 
 /* write complete db file */
-int fits_db_save (FITS_DB *db) {
+int gfits_db_save (FITS_DB *db) {
 
   /* write all data to file */
@@ -156,17 +156,17 @@
   Fseek (db[0].f, 0, SEEK_SET);
 
-  if (!fits_fwrite_header  (db[0].f, &db[0].header)) {
+  if (!gfits_fwrite_header  (db[0].f, &db[0].header)) {
     fprintf (stderr, "can't write primary header");
     return (FALSE);
   }
-  if (!fits_fwrite_matrix  (db[0].f, &db[0].matrix)) {
+  if (!gfits_fwrite_matrix  (db[0].f, &db[0].matrix)) {
     fprintf (stderr, "can't write primary matrix");
     return (FALSE);
   }
-  if (!fits_fwrite_Theader (db[0].f, &db[0].theader)) {
+  if (!gfits_fwrite_Theader (db[0].f, &db[0].theader)) {
     fprintf (stderr, "can't write table header");
     return (FALSE);
   }
-  if (!fits_fwrite_table   (db[0].f, &db[0].ftable)) {
+  if (!gfits_fwrite_table   (db[0].f, &db[0].ftable)) {
     fprintf (stderr, "can't write table data");
     return (FALSE);
@@ -176,5 +176,5 @@
 
 /* write vtable to db file (also appends rows to the end of the table) */
-int fits_db_update (FITS_DB *db) {
+int gfits_db_update (FITS_DB *db) {
 
   /* this section is not valid if we have changed the size of header, matrix, theader */
@@ -185,17 +185,17 @@
 
   /* do we revert to the old version if this fails? */
-  if (!fits_fwrite_header   (db[0].f, &db[0].header))  {
+  if (!gfits_fwrite_header   (db[0].f, &db[0].header))  {
     fprintf (stderr, "can't update primary header");
     return (FALSE);
   }
-  if (!fits_fwrite_matrix   (db[0].f, &db[0].matrix))  {
+  if (!gfits_fwrite_matrix   (db[0].f, &db[0].matrix))  {
     fprintf (stderr, "can't update primary matrix");
     return (FALSE);
   }
-  if (!fits_fwrite_Theader  (db[0].f, &db[0].theader)) {
+  if (!gfits_fwrite_Theader  (db[0].f, &db[0].theader)) {
     fprintf (stderr, "can't update table header");
     return (FALSE);
   }
-  if (!fits_fwrite_vtable   (db[0].f, &db[0].vtable))  {
+  if (!gfits_fwrite_vtable   (db[0].f, &db[0].vtable))  {
     fprintf (stderr, "can't update table data");
     return (FALSE);
@@ -205,10 +205,10 @@
 
 /* free memory associated with db handle */
-int fits_db_free (FITS_DB *db) {
-  fits_free_header (&db[0].header);
-  fits_free_matrix (&db[0].matrix);
-  fits_free_header (&db[0].theader);
-  fits_free_table  (&db[0].ftable);
-  fits_free_vtable (&db[0].vtable);
+int gfits_db_free (FITS_DB *db) {
+  gfits_free_header (&db[0].header);
+  gfits_free_matrix (&db[0].matrix);
+  gfits_free_header (&db[0].theader);
+  gfits_free_table  (&db[0].ftable);
+  gfits_free_vtable (&db[0].vtable);
   if (db[0].filename != NULL) {
     free (db[0].filename);
@@ -219,5 +219,5 @@
 
 /* close the db files (close open file & unlock) */
-int fits_db_close (FITS_DB *db) {
+int gfits_db_close (FITS_DB *db) {
   if (db[0].f == NULL) return (TRUE);
   fclearlockfile (db[0].filename, db[0].f, db[0].lockstate, &db[0].dbstate);
Index: /trunk/Ohana/src/libdvo/src/skyregion_gsc.c
===================================================================
--- /trunk/Ohana/src/libdvo/src/skyregion_gsc.c	(revision 7079)
+++ /trunk/Ohana/src/libdvo/src/skyregion_gsc.c	(revision 7080)
@@ -33,5 +33,5 @@
   /* load in table data */
   ftable.header = &theader;
-  if (!fits_fread_ftable (f, &ftable, "REGIONS")) {
+  if (!gfits_fread_ftable (f, &ftable, "REGIONS")) {
     if (VERBOSE) fprintf (stderr, "can't read GSC Region table\n");
     fclose (f);
@@ -39,8 +39,8 @@
   }
 
-  fits_scan (ftable.header, "NAXIS1", "%d", 1, &Nx);
-  fits_scan (ftable.header, "NAXIS2", "%d", 1, &Ny);
-  
-  fits_free_header (&theader);
+  gfits_scan (ftable.header, "NAXIS1", "%d", 1, &Nx);
+  gfits_scan (ftable.header, "NAXIS2", "%d", 1, &Ny);
+  
+  gfits_free_header (&theader);
 
   /* build supporting level 0 and 1 regions */
Index: /trunk/Ohana/src/libdvo/src/skyregion_io.c
===================================================================
--- /trunk/Ohana/src/libdvo/src/skyregion_io.c	(revision 7079)
+++ /trunk/Ohana/src/libdvo/src/skyregion_io.c	(revision 7080)
@@ -19,19 +19,19 @@
   /* load in table data */
   ftable.header = &theader;
-  if (!fits_fread_header (f, &header)) {
+  if (!gfits_fread_header (f, &header)) {
     if (VERBOSE) fprintf (stderr, "can't read Sky Region header\n");
     fclose (f);
     return (NULL);
   }
-  if (!fits_fread_matrix (f, &matrix, &header)) {
+  if (!gfits_fread_matrix (f, &matrix, &header)) {
     if (VERBOSE) fprintf (stderr, "can't read Sky Region matrix\n");
-    fits_free_header (&header);
+    gfits_free_header (&header);
     fclose (f);
     return (NULL);
   }
-  if (!fits_fread_ftable (f, &ftable, "SKY_REGION")) {
+  if (!gfits_fread_ftable (f, &ftable, "SKY_REGION")) {
     if (VERBOSE) fprintf (stderr, "can't read Sky Region table\n");
-    fits_free_header (&header);
-    fits_free_matrix (&matrix);
+    gfits_free_header (&header);
+    gfits_free_matrix (&matrix);
     fclose (f);
     return (NULL);
@@ -39,5 +39,5 @@
 
   ALLOCATE (skytable, SkyTable, 1);
-  skytable[0].regions = fits_table_get_SkyRegion (&ftable, &skytable[0].Nregions, NULL);
+  skytable[0].regions = gfits_table_get_SkyRegion (&ftable, &skytable[0].Nregions, NULL);
   ALLOCATE (skytable[0].filename, char *, skytable[0].Nregions);
   for (i = 0; i < skytable[0].Nregions; i++) {
@@ -45,7 +45,7 @@
   }
   
-  fits_free_header (&header);
-  fits_free_matrix (&matrix);
-  fits_free_header (&theader);
+  gfits_free_header (&header);
+  gfits_free_matrix (&matrix);
+  gfits_free_header (&theader);
 
   return (skytable);
@@ -62,10 +62,10 @@
   /* make phu header (no matrix needed) */
   ftable.header = &theader;
-  fits_init_header (&header);
+  gfits_init_header (&header);
   header.extend = TRUE;
-  fits_create_header (&header);
-  fits_create_matrix (&header, &matrix);
+  gfits_create_header (&header);
+  gfits_create_matrix (&header, &matrix);
 
-  fits_table_set_SkyRegion (&ftable, skytable[0].regions, skytable[0].Nregions);
+  gfits_table_set_SkyRegion (&ftable, skytable[0].regions, skytable[0].Nregions);
 
   f = fopen (filename, "w");
@@ -75,8 +75,8 @@
   }
   
-  fits_fwrite_header  (f, &header);
-  fits_fwrite_matrix  (f, &matrix);
-  fits_fwrite_Theader (f, &theader);
-  fits_fwrite_table  (f, &ftable);
+  gfits_fwrite_header  (f, &header);
+  gfits_fwrite_matrix  (f, &matrix);
+  gfits_fwrite_Theader (f, &theader);
+  gfits_fwrite_table  (f, &ftable);
   fclose (f);
 
@@ -120,5 +120,5 @@
   if (!SkyTableSave (sky, filename)) return NULL;
 
-  fits_convert_SkyRegion (sky[0].regions, sizeof (SkyTable), sky[0].Nregions);
+  gfits_convert_SkyRegion (sky[0].regions, sizeof (SkyTable), sky[0].Nregions);
   return (sky);
 
@@ -136,5 +136,5 @@
   if (!SkyTableSave (sky, filename)) return NULL;
 
-  fits_convert_SkyRegion (sky[0].regions, sizeof (SkyRegion), sky[0].Nregions);
+  gfits_convert_SkyRegion (sky[0].regions, sizeof (SkyRegion), sky[0].Nregions);
   return (sky);
 }
Index: /trunk/Ohana/src/libdvo/src/skyregion_ops.c
===================================================================
--- /trunk/Ohana/src/libdvo/src/skyregion_ops.c	(revision 7079)
+++ /trunk/Ohana/src/libdvo/src/skyregion_ops.c	(revision 7080)
@@ -48,4 +48,39 @@
   list[0].filename[0] = table[0].filename[No];
   list[0].Nregions = 1;
+  return (list);
+}
+
+/* find regions at all levels which match name */
+/* XXX : need to add support for selected level / populated level */
+SkyList *SkyListByName (SkyTable *table, char *name) {
+
+  int i, Nchar, N, NREGIONS;
+  SkyList *list;
+  SkyRegion *region;
+  
+  N = 0;
+  NREGIONS = 10;
+  ALLOCATE (list, SkyList, 1);
+  ALLOCATE (list[0].regions, SkyRegion *, NREGIONS);
+  ALLOCATE (list[0].filename, char *, NREGIONS);
+  list[0].Nregions = N;
+
+  region = table[0].regions;
+
+  Nchar = strlen (name);
+
+  for (i = 0; i < table[0].Nregions; i++) {
+    if (strncasecmp (region[i].name, name, Nchar)) continue;
+
+    list[0].regions[N] = &region[i];
+    list[0].filename[N] = table[0].filename[i];
+    N++;
+    if (N >= NREGIONS) {
+	NREGIONS += 10;
+	REALLOCATE (list[0].regions, SkyRegion *, NREGIONS);
+	REALLOCATE (list[0].filename, char *, NREGIONS);
+    }
+  }
+  list[0].Nregions = N;
   return (list);
 }
Index: /trunk/Ohana/src/libkapa/include/kapa.h
===================================================================
--- /trunk/Ohana/src/libkapa/include/kapa.h	(revision 7079)
+++ /trunk/Ohana/src/libkapa/include/kapa.h	(revision 7080)
@@ -125,4 +125,5 @@
 int KapaColormapSize ();
 char *KapaColorRGBString (int N);
+char *KapaColorName (int N);
 png_color *KapaPNGPalette (int *Npalette);
 unsigned long *KapaX11colors (Display *display, Colormap colormap, unsigned long default_color, int *Ncolors);
Index: /trunk/Ohana/src/libkapa/src/KapaColors.c
===================================================================
--- /trunk/Ohana/src/libkapa/src/KapaColors.c	(revision 7079)
+++ /trunk/Ohana/src/libkapa/src/KapaColors.c	(revision 7080)
@@ -52,4 +52,8 @@
 }
 
+char *KapaColorName (int N) {
+  return (KAPA_COLORS[N][0]);
+}
+
 png_color *KapaPNGPalette (int *Npalette) {
 
Index: unk/Ohana/src/libohana/include/dvo.h
===================================================================
--- /trunk/Ohana/src/libohana/include/dvo.h	(revision 7079)
+++ 	(revision )
@@ -1,319 +1,0 @@
-# include <autocode.h>
-
-# ifndef DVO_H
-# define DVO_H
-
-# define ELIXIR 1
-# define PANSTARRS 0
-# define LONEOS 0
-
-/*** named data values (convert all to enums?) ***/
-
-/* DVO table modes */
-enum {DVO_MODE_UNDEF, DVO_MODE_RAW, DVO_MODE_MEF, DVO_MODE_SPLIT, DVO_MODE_MYSQL} DVOTableMode;
-
-/* DVO table formats */
-enum {DVO_FORMAT_UNDEF, DVO_FORMAT_INTERNAL, DVO_FORMAT_ELIXIR, DVO_FORMAT_LONEOS, DVO_FORMAT_PANSTARRS} DVOTableFormat;
-
-/* image data modes in RegImage */
-enum {T_UNDEF = -1, T_NONE, T_OBJECT, T_DARK, T_BIAS, T_FLAT, T_MASK, T_FRINGE, T_SCATTER, T_MODES, T_FRINGEPTS, T_ANY, N_TYPE};
-enum {M_UNDEF = -1, M_NONE, M_MEF, M_SPLIT, M_SINGLE, M_CUBE, M_SLICE, M_MODES, N_MODE};
-
-/* RegImage.flag values */
-# define IMREG_DIST  0x01 /* image distributed, only imregister-3.0 */
-
-/* catalog values to be loaded */
-# define LOAD_AVES 	0x01
-# define LOAD_MEAS 	0x02
-# define LOAD_MISS 	0x04
-# define LOAD_SECF 	0x08 
-# define LOAD_MEAS_META 0x10
-
-/* invalid mag value */
-# define NO_MAG    0x7fff
-# define NO_ERR    0xff
-
-/* photometry code types */
-# define PHOT_PRI 0x01
-# define PHOT_SEC 0x02
-# define PHOT_DEP 0x03
-# define PHOT_REF 0x04
-# define PHOT_ALT 0x05  /* never stored, only for look-ups */
-
-/* Image.code values.  these are codes to note bad images */
-# define ID_IMAGE_NEW   0x0000  /* no nrphot attempted */
-# define ID_IMAGE_NOCAL 0x0001  /* used within nrphot to mean "don't apply fit" */
-# define ID_IMAGE_POOR  0x0002  /* relphot says image is bad */
-# define ID_IMAGE_SKIP  0x0004  /* external information image is bad */
-# define ID_IMAGE_FEW   0x0008  /* currently too few measurements for good value */
-
-/* Measure.flags values */
-# define ID_MEAS_NOCAL        0x0001
-# define ID_MEAS_POOR         0x0002
-# define ID_MEAS_SKIP         0x0004
-# define ID_MEAS_AREA         0x0008
-# define BLEND_IMAGE          0x0100 
-# define BLEND_CATALOG        0x0200
-# define BLEND_IMAGE_NEIGHBOR 0x1000
-# define ID_MEAS_TRAIL        0x2000
-# define ID_MEAS_GHOST        0x4000
-
-/* some subtle distinctions between the blend flags:
-   BLEND_IMAGE: the star on an image is matched with more 
-      than one star in the catalog (image has worse seeing than catalog)
-   BLEND_CATALOG: the star in the catalog is matched with more 
-      than one star on the image (image has better seeing than catalog)
-   CALIBRATED: relative photometry has been performed on this measurement
-   BLEND_IMAGE_NEIGHBOR: the star on an image is matched with more 
-      than one star in the catalog, but not in the same catalog file.
-*/
-
-/* Average.code values */
-# define ID_STAR_FEW   0x0001 /* used within relphot: skip star */
-# define ID_STAR_POOR  0x0002 /* used within relphot: skip star */
-# define ID_PROPER     0x0400 /* star with large proper motion */
-# define ID_TRANSIENT  0x1000 /* is this mutually exclusive with USNO?  */
-# define ID_VARIABLE   0x2000 /* not currently set? */
-# define ID_ASTEROID   0x2000 /* identified with an asteroid */
-# define ID_BAD_OBJECT 0x4000 /* if all measurements are bad, set this bit */
-# define ID_MOVING     0x8000
-# define ID_ROCK       0xa000 /* 0x8000 + 0x2000 */
-# define ID_GHOST      0xc001 /* 0x8000 + 0x4000 + 0x0001 */
-# define ID_TRAIL      0xc002 /* 0x8000 + 0x4000 + 0x0002 */
-# define ID_BLEED      0xc003 /* 0x8000 + 0x4000 + 0x0003 */ 
-# define ID_COSMIC     0xc004 /* 0x8000 + 0x4000 + 0x0004 */ 
-
-/*** general dvo structures (internal use only / not IO) ***/
-
-/* FITS DB structure */
-typedef struct {
-  FILE  *f;
-  char  *filename;
-  int    dbstate;
-  int    lockstate;
-  double timeout;
-  Header header;
-  Matrix matrix;
-  Header theader;
-  FTable ftable;
-  VTable vtable;
-  int    mode;          /* what data storage mode is used for disk file? */
-  int    format;        /* what data format is used for disk file? */
-  int    virtual;       /* is table in ftable or vtable? */
-  int    swapped;       /* is table in internal byte-order? */
-} FITS_DB;
-
-/* structure for data on a catalog region */
-typedef struct {
-  char filename[256];
-  double DEC[2], RA[2];
-} GSCRegion;
-
-typedef struct {
-  int Ncode;
-  int Nsecfilt;
-  int hashcode[0x10000];
-  int hashNsec[0x10000];
-  PhotCode *code;
-} PhotCodeData;
-
-/* a catalog contains this data */
-typedef struct Catalog {
-  char *filename;			/* catalog file */
-  FILE *f;  				/* file descriptor */
-  Header  header;
-
-  /* data in the catalog file */
-  Average *average;
-  Measure *measure; 
-  Missing *missing; 
-  SecFilt *secfilt;
-  int Naverage, Nmeasure, Nmissing, Nsecfilt;   /* current number of each component */
-  int Nave_disk, Nmeas_disk, Nmiss_disk;        /* number of component on disk */
-  int Nmeas_off;			        /* dist seq of first loaded data value */
-  /* note the different counting for Nsecfilt */
-
-  /* pointers to split data files */
-  struct Catalog *measure_catalog;		/* measure catalog data (split) */
-  struct Catalog *missing_catalog;		/* missing catalog data (split) */
-  struct Catalog *secfilt_catalog;		/* secfilt catalog data (split) */
-
-  /* extra catalog information */
-  int lockmode;
-  int catmode;				/* storage mode (raw, mef, split, mysql) */
-  int catformat;			/* storage format (elixir, panstarrs, etc) */
-  int sorted;				/* is measure table average-sorted? */
-  
-  /* pointers for data manipulation */
-  int *found;
-  int *image;
-  int *mosaic;
-  float *X;
-  float *Y;
-
-} Catalog;
-
-/*** prototypes ***/
-
-/* in fits_db.c */
-int   fits_db_init                PROTO((FITS_DB *db));
-int   fits_db_create              PROTO((FITS_DB *db));
-int   fits_db_lock                PROTO((FITS_DB *db, char *filename));
-int   fits_db_load                PROTO((FITS_DB *db));
-int   fits_db_load_segment        PROTO((FITS_DB *db, int start, int Nrows));
-int   fits_db_save                PROTO((FITS_DB *db));
-int   fits_db_update              PROTO((FITS_DB *db));
-int   fits_db_close               PROTO((FITS_DB *db));
-int   fits_db_free                PROTO((FITS_DB *db));
-
-/* in coords.c, using libautocode/def/coords.d */
-int  XY_to_RD (double *ra, double *dec, double x,  double y,   Coords *coords);
-int  RD_to_XY (double *x,  double *y,   double ra, double dec, Coords *coords);
-int  fXY_to_RD (float *ra, float *dec, double x,  double y,   Coords *coords);
-int  fRD_to_XY (float *x,  float *y,   double ra, double dec, Coords *coords);
-int  GetCoords (Coords *coords, Header *header);
-int  PutCoords (Coords *coords, Header *header);
-void RegisterMosaic (Coords *coords);
-void coords_precess (double *ra, double *dec, double in_epoch, double out_epoch);
-
-int lock_catalog (Catalog *catalog, int lockmode);
-int unlock_catalog (Catalog *catalog);
-int load_catalog (Catalog *catalog, char mode, int VERBOSE);
-int save_catalog (Catalog *catalog, char VERBOSE);
-int update_catalog (Catalog *catalog, char VERBOSE);
-
-int FindMosaicForImage (Image *images, int Nimages, int entry);
-int FindMosaicForImage_TableSearch (Image *images, int Nimages, int entry);
-int FindMosaicForImage_MatchSearch (Image *images, int Nimages, int entry);
-int BuildChipMatch (Image *images, int Nimages);
-
-short int putMi (double value);
-double getMi (short int value);
-void returnMcal (Image *image, double *c);
-void assignMcal (Image *image, double *c, int order);
-double applyMcal (Image *image, double x, double y);
-double findscatter (double *X, double *Y, double *M, double *dM, int N, double *c, int order);
-
-PhotCode *GetPhotcodebyName (char *name);
-PhotCode *GetPhotcodeEquivbyName (char *name);
-PhotCode *GetPhotcodebyCode (int code);
-PhotCode *GetPhotcodebyNsec (int Nsec);
-PhotCode *GetPhotcodeEquivbyCode (int code);
-
-char     *GetPhotcodeNamebyCode (int code);
-
-float PhotInst (Measure *measure);
-float PhotCat (Measure *measure);
-float PhotSys (Measure *measure, Average *average, SecFilt *secfilt);
-float PhotRel (Measure *measure, Average *average, SecFilt *secfilt);
-float PhotCal (Measure *thisone, Average *average, SecFilt *secfilt, Measure *measure, PhotCode *code);
-float PhotAve (PhotCode *code, Average *average, SecFilt *secfilt);
-float PhotRef (PhotCode *code, Average *average, SecFilt *secfilt, Measure *measure);
-float PhotXm (PhotCode *code, Average *average, SecFilt *secfilt);
-float PhotdM (PhotCode *code, Average *average, SecFilt *secfilt);
-
-# if (0)
-short iPhotInst (Measure *measure);
-short iPhotAbs (Measure *measure);
-short iPhotCat (Measure *measure);
-short iPhotSys (Measure *measure, Average *average, SecFilt *secfilt);
-short iPhotRel (Measure *measure, Average *average, SecFilt *secfilt);
-short iPhotCal (Measure *thisone, Average *average, SecFilt *secfilt, Measure *measure, PhotCode *code);
-short iPhotAve (PhotCode *code, Average *average, SecFilt *secfilt);
-short iPhotRef (PhotCode *code, Average *average, SecFilt *secfilt, Measure *measure);
-short iPhotXm (PhotCode *code, Average *average, SecFilt *secfilt);
-short iPhotdM (PhotCode *code, Average *average, SecFilt *secfilt);
-# endif
-
-float iPhotColor (Average *average, SecFilt *secfilt, Measure *measure, PhotCode *code);
-int PhotColor (Average *average, SecFilt *secfilt, Measure *measure, int c1, int c2, double *color);
-
-int LoadPhotcodes (char *filename);
-int GetPhotcodeCodebyName (char *name);
-int GetPhotcodeEquivCodebyName (char *name);
-int GetPhotcodeEquivCodebyCode (int code);
-int GetPhotcodeNsec (int code);
-int GetPhotcodeNsecfilt ();
-void SetZeroPoint (double ZP);
-int *GetPhotcodeEquivList (int code, int *nlist);
-void ParseColorTerms (char *terms, float *X, int *N);
-
-int get_image_type (char *name);
-char *get_type_name (int type);
-int get_image_mode (char *name);
-char *get_mode_name (int mode);
-
-/* these functions refer to the DVO structures defined in the includes above
- *  they are being replaced with autocode entries (drop when totally autocoded)
- */
-
-int   Fread (void *ptr, int size, int nitems, FILE *f, char *type);
-int   Fwrite (void *ptr, int size, int nitems, FILE *f, char *type);
-int   ByteSwap (char *ptr, int size, int nitems, char *type);
-int   ConvertStruct (char *buffer, int size, int Nbytes, char *type);
-
-/*** conversion functions / I/O conversions ***/
-
-Average *ReadRawAverage (FILE *f, int Naverage, int format);
-Measure *ReadRawMeasure (FILE *f, int Nmeasure, int format);
-SecFilt *ReadRawSecFilt (FILE *f, int Nsecfilt, int format);
-int WriteRawAverage (FILE *f, Average *average, int Naverage, int format);
-int WriteRawMeasure (FILE *f, Measure *measure, int Nmeasure, int format);
-int WriteRawSecFilt (FILE *f, SecFilt *secfilt, int Nsecfilt, int format);
-
-Average *FtableToAverage (FTable *ftable, int *Naverage, int *format);
-Average *AverageLoneosToInternal (AverageLoneos *in, int Nvalues);
-Average *AverageElixirToInternal (AverageElixir *in, int Nvalues);
-Average *AveragePanstarrsToInternal (AveragePanstarrs *in, int Nvalues);
-AverageLoneos *AverageInternalToLoneos (Average *in, int Nvalues);
-AverageElixir *AverageInternalToElixir (Average *in, int Nvalues);
-AveragePanstarrs *AverageInternalToPanstarrs (Average *in, int Nvalues);
-
-Measure *FtableToMeasure (FTable *ftable, int *Nmeasure, int *format);
-Measure *MeasureLoneosToInternal (MeasureLoneos *in, int Nvalues);
-Measure *MeasureElixirToInternal (MeasureElixir *in, int Nvalues);
-Measure *MeasurePanstarrsToInternal (MeasurePanstarrs *in, int Nvalues);
-MeasureLoneos *MeasureInternalToLoneos (Measure *in, int Nvalues);
-MeasureElixir *MeasureInternalToElixir (Measure *in, int Nvalues);
-MeasurePanstarrs *MeasureInternalToPanstarrs (Measure *in, int Nvalues);
-
-SecFilt *FtableToSecFilt (FTable *ftable, int *Nsecfilt, int *format);
-SecFilt *SecFiltLoneosToInternal (SecFiltLoneos *in, int Nvalues);
-SecFilt *SecFiltElixirToInternal (SecFiltElixir *in, int Nvalues);
-SecFilt *SecFiltPanstarrsToInternal (SecFiltPanstarrs *in, int Nvalues);
-SecFiltLoneos *SecFiltInternalToLoneos (SecFilt *in, int Nvalues);
-SecFiltElixir *SecFiltInternalToElixir (SecFilt *in, int Nvalues);
-SecFiltPanstarrs *SecFiltInternalToPanstarrs (SecFilt *in, int Nvalues);
-
-int AverageToFtable (FTable *ftable, Average *average, int Naverage, int format);
-int MeasureToFtable (FTable *ftable, Measure *measure, int Nmeasure, int format);
-int SecFiltToFtable (FTable *ftable, SecFilt *secfilt, int Nsecfilt, int format);
-
-int load_catalog_raw (Catalog *catalog, char mode, int VERBOSE);
-int save_catalog_raw (Catalog *catalog, char VERBOSE);
-int load_catalog_mef (Catalog *catalog, char mode, int VERBOSE);
-int save_catalog_mef (Catalog *catalog, char VERBOSE);
-int load_catalog_split (Catalog *catalog, char mode, int VERBOSE);
-int save_catalog_split (Catalog *catalog, char VERBOSE);
-int update_catalog_split (Catalog *catalog, char VERBOSE);
-
-/*** DVO image db I/O Functions ***/
-int dvo_image_load (FITS_DB *db, int VERBOSE, int FORCE_READ);
-int dvo_image_save (FITS_DB *db, int VERBOSE);
-int dvo_image_update (FITS_DB *db, int VERBOSE);
-int dvo_image_load_raw (FITS_DB *db, int VERBOSE, int FORCE_READ);
-int dvo_image_update_raw (FITS_DB *db, int VERBOSE);
-int dvo_image_save_raw (FITS_DB *db, int VERBOSE);
-int dvo_image_addrows (FITS_DB *db, Image *new, int Nnew);
-
-int FtableToImage (FTable *ftable, Header *theader, int *format);
-int ImageToFtable (FTable *ftable, Header *theader, int format);
-int ImageToVtable (VTable *vtable, Header *theader, int format);
-Image *ImageElixirToInternal (ImageElixir *in, int Nvalues);
-ImageElixir *ImageInternalToElixir (Image *in, int Nvalues);
-Image *ImageLoneosToInternal (ImageLoneos *in, int Nvalues);
-ImageLoneos *ImageInternalToLoneos (Image *in, int Nvalues);
-Image *ImagePanstarrsToInternal (ImagePanstarrs *in, int Nvalues);
-ImagePanstarrs *ImageInternalToPanstarrs (Image *in, int Nvalues);
-
-# endif
Index: /trunk/Ohana/src/lightcurve/src/alter_headers.c
===================================================================
--- /trunk/Ohana/src/lightcurve/src/alter_headers.c	(revision 7079)
+++ /trunk/Ohana/src/lightcurve/src/alter_headers.c	(revision 7080)
@@ -29,5 +29,5 @@
     strcpy (head, images[i].name);
     strcpy (strchr(head, '.'), ".head");
-    fits_read_header (head, &header);
+    gfits_read_header (head, &header);
 
     sprintf (line, "mv %s %s~\0", head, head);
@@ -41,16 +41,16 @@
 	     images[i].Nunique, images[i].fixed, images[i].empty);
 
-    fits_modify (&header, "Mcal",   "%lf", 1, images[i].Mcal);
-    fits_modify (&header, "dMcal",  "%lf", 1, images[i].dMcal);
-    fits_modify (&header, "clouds", "%lf", 1, images[i].clouds);
-    fits_modify (&header, "NMcal",  "%d", 1,  images[i].Nstars);
+    gfits_modify (&header, "Mcal",   "%lf", 1, images[i].Mcal);
+    gfits_modify (&header, "dMcal",  "%lf", 1, images[i].dMcal);
+    gfits_modify (&header, "clouds", "%lf", 1, images[i].clouds);
+    gfits_modify (&header, "NMcal",  "%d", 1,  images[i].Nstars);
 
-    fits_modify (&header, "Mcal",   "%C", 1, "relphot: calibration magnitude");
-    fits_modify (&header, "dMcal",  "%C", 1, "relphot: calibration error");
-    fits_modify (&header, "clouds", "%C", 1, "relphot: cloud level");
-    fits_modify (&header, "NMcal",  "%C", 1, "relphot: number of stars");
+    gfits_modify (&header, "Mcal",   "%C", 1, "relphot: calibration magnitude");
+    gfits_modify (&header, "dMcal",  "%C", 1, "relphot: calibration error");
+    gfits_modify (&header, "clouds", "%C", 1, "relphot: cloud level");
+    gfits_modify (&header, "NMcal",  "%C", 1, "relphot: number of stars");
 
-    fits_write_header (head, &header);
-    fits_free_header (&header);
+    gfits_write_header (head, &header);
+    gfits_free_header (&header);
   }
   fclose (f);
Index: /trunk/Ohana/src/lightcurve/src/fix_header.c
===================================================================
--- /trunk/Ohana/src/lightcurve/src/fix_header.c	(revision 7079)
+++ /trunk/Ohana/src/lightcurve/src/fix_header.c	(revision 7080)
@@ -35,5 +35,5 @@
 
   header[0].size = Nbytes;
-  p1 = fits_header_field (header, "END", 1);
+  p1 = gfits_header_field (header, "END", 1);
   for (i = 3; i < 79; i++) 
     *(p1 + i) = ' ';
Index: /trunk/Ohana/src/lightcurve/src/get_info.c
===================================================================
--- /trunk/Ohana/src/lightcurve/src/get_info.c	(revision 7079)
+++ /trunk/Ohana/src/lightcurve/src/get_info.c	(revision 7080)
@@ -15,5 +15,5 @@
   strcpy (strchr(head, '.'), ".head");
 
-  status = fits_read_header (head, &header);
+  status = gfits_read_header (head, &header);
   if (!status) {
     fprintf (stderr, "could not open header file %s\n", head);
@@ -24,28 +24,28 @@
   switch (PIXELS) {
   case 0:
-    status &= fits_scan (&header, "RA_O",    "%lf", 1, &images[0].RA_O);
-    status &= fits_scan (&header, "RA_X",    "%lf", 1, &images[0].RA_X);
-    status &= fits_scan (&header, "RA_Y",    "%lf", 1, &images[0].RA_Y);
-    status &= fits_scan (&header, "DEC_O",   "%lf", 1, &images[0].DEC_O);
-    status &= fits_scan (&header, "DEC_X",   "%lf", 1, &images[0].DEC_X);
-    status &= fits_scan (&header, "DEC_Y",   "%lf", 1, &images[0].DEC_Y);
+    status &= gfits_scan (&header, "RA_O",    "%lf", 1, &images[0].RA_O);
+    status &= gfits_scan (&header, "RA_X",    "%lf", 1, &images[0].RA_X);
+    status &= gfits_scan (&header, "RA_Y",    "%lf", 1, &images[0].RA_Y);
+    status &= gfits_scan (&header, "DEC_O",   "%lf", 1, &images[0].DEC_O);
+    status &= gfits_scan (&header, "DEC_X",   "%lf", 1, &images[0].DEC_X);
+    status &= gfits_scan (&header, "DEC_Y",   "%lf", 1, &images[0].DEC_Y);
     COS = cos (RAD_DEG * images[0].DEC_O);
     break;
 
   case 1:
-    status &= fits_scan (&header, "X_O",    "%lf", 1, &images[0].RA_O);
-    status &= fits_scan (&header, "X_X",    "%lf", 1, &images[0].RA_X);
-    status &= fits_scan (&header, "X_Y",    "%lf", 1, &images[0].RA_Y);
-    status &= fits_scan (&header, "Y_O",    "%lf", 1, &images[0].DEC_O);
-    status &= fits_scan (&header, "Y_X",    "%lf", 1, &images[0].DEC_X);
-    status &= fits_scan (&header, "Y_Y",    "%lf", 1, &images[0].DEC_Y);
+    status &= gfits_scan (&header, "X_O",    "%lf", 1, &images[0].RA_O);
+    status &= gfits_scan (&header, "X_X",    "%lf", 1, &images[0].RA_X);
+    status &= gfits_scan (&header, "X_Y",    "%lf", 1, &images[0].RA_Y);
+    status &= gfits_scan (&header, "Y_O",    "%lf", 1, &images[0].DEC_O);
+    status &= gfits_scan (&header, "Y_X",    "%lf", 1, &images[0].DEC_X);
+    status &= gfits_scan (&header, "Y_Y",    "%lf", 1, &images[0].DEC_Y);
     COS = 1;
     break;
   }
   
-  fits_scan (&header, "ORIGIN", "%s", 1, line);
+  gfits_scan (&header, "ORIGIN", "%s", 1, line);
   /* interpret the silly way ESO / La Palma stores exposure time and duration   */
   if (!strcmp (line, "ESO-MIDAS")) { 
-    status &= fits_scan (&header, "DATE-OBS", "%s", 1, line);
+    status &= gfits_scan (&header, "DATE-OBS", "%s", 1, line);
     stripwhite (line);
     fprintf (stderr, "date line: %s\n", line);
@@ -53,28 +53,28 @@
     jd = atof(line);
     line[0] = 0;
-    status = fits_scan (&header, "TM-START", "%lf", 1, &sec);
+    status = gfits_scan (&header, "TM-START", "%lf", 1, &sec);
     fprintf (stderr, "date: %f, sec: %f\n", jd, sec);
     jd += (sec/86400.0) + 0.5;
     images[0].JD =  jd;
-    fits_scan (&header, "EXPTIME", "%lf", 1, &images[0].exptime);
+    gfits_scan (&header, "EXPTIME", "%lf", 1, &images[0].exptime);
   }
   else {
-    status &= fits_scan (&header, "JD", "%lf", 1, &images[0].JD);
+    status &= gfits_scan (&header, "JD", "%lf", 1, &images[0].JD);
     images[0].JD -= 2400000.5;   /* convert to MJD */
-    fits_scan (&header, "EXPTIME", "%lf", 1, &images[0].exptime);
+    gfits_scan (&header, "EXPTIME", "%lf", 1, &images[0].exptime);
   }
 
-  status &= fits_scan (&header, "Mcal", "%lf", 1, &images[0].Mcal);
-  status &= fits_scan (&header, "McalR", "%lf", 1, &images[0].McalR);
-  status &= fits_scan (&header, "McalD", "%lf", 1, &images[0].McalD);
-  status &= fits_scan (&header, "McalR2", "%lf", 1, &images[0].McalR2);
-  status &= fits_scan (&header, "McalD2", "%lf", 1, &images[0].McalD2);
-  status &= fits_scan (&header, "McalRD", "%lf", 1, &images[0].McalRD);
-  status &= fits_scan (&header, "dMcal", "%lf", 1, &images[0].dMcal);
+  status &= gfits_scan (&header, "Mcal", "%lf", 1, &images[0].Mcal);
+  status &= gfits_scan (&header, "McalR", "%lf", 1, &images[0].McalR);
+  status &= gfits_scan (&header, "McalD", "%lf", 1, &images[0].McalD);
+  status &= gfits_scan (&header, "McalR2", "%lf", 1, &images[0].McalR2);
+  status &= gfits_scan (&header, "McalD2", "%lf", 1, &images[0].McalD2);
+  status &= gfits_scan (&header, "McalRD", "%lf", 1, &images[0].McalRD);
+  status &= gfits_scan (&header, "dMcal", "%lf", 1, &images[0].dMcal);
 
   images[0].airmass = 1000;  
-  fits_scan (&header, "SECZ", "%lf", 1, &images[0].airmass);
-  fits_scan (&header, "AIRMASS", "%lf", 1, &images[0].airmass);
-  /* a stupid value as a flag (i hate flags!) but fits_scan will not alter the
+  gfits_scan (&header, "SECZ", "%lf", 1, &images[0].airmass);
+  gfits_scan (&header, "AIRMASS", "%lf", 1, &images[0].airmass);
+  /* a stupid value as a flag (i hate flags!) but gfits_scan will not alter the
      value if it fails to find the entry.  try a couple possibilities */
  
@@ -99,5 +99,5 @@
   images[0].clouds  = 0.0;
 
-  fits_free_header (&header);
+  gfits_free_header (&header);
   
 }
@@ -119,5 +119,5 @@
 /*
    code for using RA, DEC, ST info, if needed. 
-    status &= fits_scan (&header, "ST", "%lf", 1, &LST);
+    status &= gfits_scan (&header, "ST", "%lf", 1, &LST);
     ra  =  info[0].RA_O  + info[0].RA_X *CCD_X/2.0 + info[0].RA_Y *CCD_Y/2.0;
     dec =  info[0].DEC_O + info[0].DEC_X*CCD_X/2.0 + info[0].DEC_Y*CCD_Y/2.0;
Index: /trunk/Ohana/src/markrock/src/gcatstats.c
===================================================================
--- /trunk/Ohana/src/markrock/src/gcatstats.c	(revision 7079)
+++ /trunk/Ohana/src/markrock/src/gcatstats.c	(revision 7080)
@@ -13,8 +13,8 @@
   Coords tcoords;
   
-  fits_scan (&catalog[0].header, "RA0", "%lf", 1, &MinRA);
-  fits_scan (&catalog[0].header, "RA1", "%lf", 1, &MaxRA);
-  fits_scan (&catalog[0].header, "DEC0", "%lf", 1, &MinDEC);
-  fits_scan (&catalog[0].header, "DEC1", "%lf", 1, &MaxDEC);
+  gfits_scan (&catalog[0].header, "RA0", "%lf", 1, &MinRA);
+  gfits_scan (&catalog[0].header, "RA1", "%lf", 1, &MaxRA);
+  gfits_scan (&catalog[0].header, "DEC0", "%lf", 1, &MinDEC);
+  gfits_scan (&catalog[0].header, "DEC1", "%lf", 1, &MaxDEC);
 
  /* double check on region RA and DEC ranges */
Index: /trunk/Ohana/src/markrock/src/wcatalog.c
===================================================================
--- /trunk/Ohana/src/markrock/src/wcatalog.c	(revision 7079)
+++ /trunk/Ohana/src/markrock/src/wcatalog.c	(revision 7080)
@@ -35,5 +35,5 @@
     catalog[0].Nsecfilt = 0;
   }
-  fits_free_header (&catalog[0].header);
+  gfits_free_header (&catalog[0].header);
 }
 
Index: /trunk/Ohana/src/markstar/src/find_images.c
===================================================================
--- /trunk/Ohana/src/markstar/src/find_images.c	(revision 7079)
+++ /trunk/Ohana/src/markstar/src/find_images.c	(revision 7080)
@@ -25,5 +25,5 @@
   }
 
-  timage = fits_table_get_Image (&db[0].ftable, &Ntimage, &db[0].swapped);
+  timage = gfits_table_get_Image (&db[0].ftable, &Ntimage, &db[0].swapped);
 
   /* set up buffers for images, temporary storage */
Index: /trunk/Ohana/src/markstar/src/gcatstats.c
===================================================================
--- /trunk/Ohana/src/markstar/src/gcatstats.c	(revision 7079)
+++ /trunk/Ohana/src/markstar/src/gcatstats.c	(revision 7080)
@@ -13,8 +13,8 @@
   Coords tcoords;
   
-  fits_scan (&catalog[0].header, "RA0", "%lf", 1, &MinRA);
-  fits_scan (&catalog[0].header, "RA1", "%lf", 1, &MaxRA);
-  fits_scan (&catalog[0].header, "DEC0", "%lf", 1, &MinDEC);
-  fits_scan (&catalog[0].header, "DEC1", "%lf", 1, &MaxDEC);
+  gfits_scan (&catalog[0].header, "RA0", "%lf", 1, &MinRA);
+  gfits_scan (&catalog[0].header, "RA1", "%lf", 1, &MaxRA);
+  gfits_scan (&catalog[0].header, "DEC0", "%lf", 1, &MinDEC);
+  gfits_scan (&catalog[0].header, "DEC1", "%lf", 1, &MaxDEC);
 
   /* double check on region RA and DEC ranges */
Index: /trunk/Ohana/src/markstar/src/wcatalog.c
===================================================================
--- /trunk/Ohana/src/markstar/src/wcatalog.c	(revision 7079)
+++ /trunk/Ohana/src/markstar/src/wcatalog.c	(revision 7080)
@@ -33,5 +33,5 @@
     catalog[0].Nsecfilt = 0;
   }
-  fits_free_header (&catalog[0].header);
+  gfits_free_header (&catalog[0].header);
 }
 
Index: /trunk/Ohana/src/misc/doc/ChangeLog.txt
===================================================================
--- /trunk/Ohana/src/misc/doc/ChangeLog.txt	(revision 7079)
+++ /trunk/Ohana/src/misc/doc/ChangeLog.txt	(revision 7080)
@@ -1,2 +1,5 @@
+
+- misc-1-3
+  * converted to gfits APIs (forces libfits 1.6)
 
 misc-1-2:
Index: /trunk/Ohana/src/misc/src/SAOobjects.c
===================================================================
--- /trunk/Ohana/src/misc/src/SAOobjects.c	(revision 7079)
+++ /trunk/Ohana/src/misc/src/SAOobjects.c	(revision 7080)
@@ -18,5 +18,5 @@
   }
 
-  if (!fits_read_header (argv[1], &header)) {
+  if (!gfits_read_header (argv[1], &header)) {
     fprintf (stderr, "can't read header from file %s\n", argv[1]);
     exit (1);
Index: /trunk/Ohana/src/misc/src/addastro.c
===================================================================
--- /trunk/Ohana/src/misc/src/addastro.c	(revision 7079)
+++ /trunk/Ohana/src/misc/src/addastro.c	(revision 7080)
@@ -18,5 +18,5 @@
   }
 
-  if (!fits_read_header (argv[1], &header)) {
+  if (!gfits_read_header (argv[1], &header)) {
     fprintf (stderr, "ERROR: can't read header for %s\n", argv[1]);
     exit (1);
@@ -24,44 +24,44 @@
   oldsize = header.size;
 
-  if (!fits_read_header (argv[2], &refhead)) {
+  if (!gfits_read_header (argv[2], &refhead)) {
     fprintf (stderr, "ERROR: can't read header for %s\n", argv[2]);
     exit (1);
   }
 
-  fits_scan   (&refhead, "CDELT1",   "%lf", 1, &tmp);
-  fits_modify (&header,  "CDELT1",   "%le", 1, tmp);
-  fits_scan   (&refhead, "CDELT2",   "%lf", 1, &tmp);
-  fits_modify (&header,  "CDELT2",   "%le", 1, tmp);
-  fits_scan   (&refhead, "CRVAL1",   "%lf", 1, &tmp);
-  fits_modify (&header,  "CRVAL1",   "%lf", 1, tmp);
-  fits_scan   (&refhead, "CRVAL2",   "%lf", 1, &tmp);
-  fits_modify (&header,  "CRVAL2",   "%lf", 1, tmp);
-  fits_scan   (&refhead, "CRPIX1",   "%lf", 1, &tmp);
-  fits_modify (&header,  "CRPIX1",   "%lf", 1, tmp);
-  fits_scan   (&refhead, "CRPIX2",   "%lf", 1, &tmp);
-  fits_modify (&header,  "CRPIX2",   "%lf", 1, tmp);
-  fits_scan   (&refhead, "PC001001", "%lf", 1, &tmp);
-  fits_modify (&header,  "PC001001", "%le", 1, tmp);
-  fits_scan   (&refhead, "PC001002", "%lf", 1, &tmp);
-  fits_modify (&header,  "PC001002", "%le", 1, tmp);
-  fits_scan   (&refhead, "PC002001", "%lf", 1, &tmp);
-  fits_modify (&header,  "PC002001", "%le", 1, tmp);
-  fits_scan   (&refhead, "PC002002", "%lf", 1, &tmp);
-  fits_modify (&header,  "PC002002", "%le", 1, tmp);
-  fits_scan   (&refhead, "NPLYTERM", "%d",  1, &itmp);
-  fits_modify (&header,  "NPLYTERM", "%d",  1, itmp);
-  fits_scan   (&refhead, "NASTRO",   "%d",  1, &itmp);
-  fits_modify (&header,  "NASTRO",   "%d",  1, itmp);
-  fits_scan   (&refhead, "CERROR",   "%lf", 1, &tmp);
-  fits_modify (&header,  "CERROR",   "%lf", 1, tmp);
-  fits_scan   (&refhead, "CPRECISE", "%lf", 1, &tmp);
-  fits_modify (&header,  "CPRECISE", "%lf", 1, tmp);
+  gfits_scan   (&refhead, "CDELT1",   "%lf", 1, &tmp);
+  gfits_modify (&header,  "CDELT1",   "%le", 1, tmp);
+  gfits_scan   (&refhead, "CDELT2",   "%lf", 1, &tmp);
+  gfits_modify (&header,  "CDELT2",   "%le", 1, tmp);
+  gfits_scan   (&refhead, "CRVAL1",   "%lf", 1, &tmp);
+  gfits_modify (&header,  "CRVAL1",   "%lf", 1, tmp);
+  gfits_scan   (&refhead, "CRVAL2",   "%lf", 1, &tmp);
+  gfits_modify (&header,  "CRVAL2",   "%lf", 1, tmp);
+  gfits_scan   (&refhead, "CRPIX1",   "%lf", 1, &tmp);
+  gfits_modify (&header,  "CRPIX1",   "%lf", 1, tmp);
+  gfits_scan   (&refhead, "CRPIX2",   "%lf", 1, &tmp);
+  gfits_modify (&header,  "CRPIX2",   "%lf", 1, tmp);
+  gfits_scan   (&refhead, "PC001001", "%lf", 1, &tmp);
+  gfits_modify (&header,  "PC001001", "%le", 1, tmp);
+  gfits_scan   (&refhead, "PC001002", "%lf", 1, &tmp);
+  gfits_modify (&header,  "PC001002", "%le", 1, tmp);
+  gfits_scan   (&refhead, "PC002001", "%lf", 1, &tmp);
+  gfits_modify (&header,  "PC002001", "%le", 1, tmp);
+  gfits_scan   (&refhead, "PC002002", "%lf", 1, &tmp);
+  gfits_modify (&header,  "PC002002", "%le", 1, tmp);
+  gfits_scan   (&refhead, "NPLYTERM", "%d",  1, &itmp);
+  gfits_modify (&header,  "NPLYTERM", "%d",  1, itmp);
+  gfits_scan   (&refhead, "NASTRO",   "%d",  1, &itmp);
+  gfits_modify (&header,  "NASTRO",   "%d",  1, itmp);
+  gfits_scan   (&refhead, "CERROR",   "%lf", 1, &tmp);
+  gfits_modify (&header,  "CERROR",   "%lf", 1, tmp);
+  gfits_scan   (&refhead, "CPRECISE", "%lf", 1, &tmp);
+  gfits_modify (&header,  "CPRECISE", "%lf", 1, tmp);
 
-  fits_modify (&header, "CERROR", "%C", 1, "scatter in astrometry soln (arcsec)");
-  fits_modify (&header, "CPRECISE", "%C", 1, "precision of astrometry soln (arcsec)");
+  gfits_modify (&header, "CERROR", "%C", 1, "scatter in astrometry soln (arcsec)");
+  gfits_modify (&header, "CPRECISE", "%C", 1, "precision of astrometry soln (arcsec)");
 
   /* write to file */
   sprintf (filename, "%s.tmp", argv[1]);
-  if (!fits_write_header (filename, &header)) {
+  if (!gfits_write_header (filename, &header)) {
     fprintf (stderr, "ERROR: can't write header for %s\n", filename);
     exit (1);
Index: /trunk/Ohana/src/misc/src/applyscat.c
===================================================================
--- /trunk/Ohana/src/misc/src/applyscat.c	(revision 7079)
+++ /trunk/Ohana/src/misc/src/applyscat.c	(revision 7080)
@@ -20,5 +20,5 @@
 
   /* read smp header */
-  if (!fits_read_header (argv[1], &header)) {
+  if (!gfits_read_header (argv[1], &header)) {
     fprintf (stderr, "ERROR: can't find image file %s\n", argv[1]);
     exit (1);
@@ -34,5 +34,5 @@
 
   /* find expected number of stars */
-  fits_scan (&header, "NSTARS", "%d", 1, &Nstar);
+  gfits_scan (&header, "NSTARS", "%d", 1, &Nstar);
   if (Nstar == 0) {
     fprintf (stderr, "ERROR: can't get NSTARS from header\n");
@@ -60,5 +60,5 @@
   }
 
-  if (!fits_read_matrix (argv[2], &matrix)) {
+  if (!gfits_read_matrix (argv[2], &matrix)) {
     fprintf (stderr, "ERROR: can't open scatter image file %s\n", argv[2]);
     exit (1);
@@ -79,5 +79,5 @@
     x = stars[i].X;
     y = stars[i].Y;
-    ratio = fits_get_matrix_value (&matrix, x, y);
+    ratio = gfits_get_matrix_value (&matrix, x, y);
     dmag = -2.5*log10(ratio);
     dmag = (dmag > +1.0) ? 0.0 : dmag;
@@ -93,5 +93,5 @@
 
   /* write smp header */
-  if (!fits_write_header (argv[3], &header)) {
+  if (!gfits_write_header (argv[3], &header)) {
     fprintf (stderr, "ERROR: can't write output file header %s\n", argv[3]);
     exit (1);
Index: /trunk/Ohana/src/misc/src/ckfits.c
===================================================================
--- /trunk/Ohana/src/misc/src/ckfits.c	(revision 7079)
+++ /trunk/Ohana/src/misc/src/ckfits.c	(revision 7080)
@@ -14,5 +14,5 @@
   }
 
-  status = fits_read_header (argv[1], &header);
+  status = gfits_read_header (argv[1], &header);
   if (!status) { 
     fprintf (stdout, "%s: header\n", argv[1]);
@@ -20,5 +20,5 @@
   }
 
-  Ntotal = fits_matrix_size (&header);
+  Ntotal = gfits_matrix_size (&header);
 
   Ndata = abs(header.bitpix / 8);
Index: /trunk/Ohana/src/misc/src/cubefilter.c
===================================================================
--- /trunk/Ohana/src/misc/src/cubefilter.c	(revision 7079)
+++ /trunk/Ohana/src/misc/src/cubefilter.c	(revision 7080)
@@ -41,7 +41,7 @@
 
   /* load a header, setup output header, matrix */
-  fits_read_header (filename[0], &head);
-  fits_create_matrix (&head, &out);
-  fits_convert_format (&head, &out, -32, 1.0, 0.0, FALSE);
+  gfits_read_header (filename[0], &head);
+  gfits_create_matrix (&head, &out);
+  gfits_convert_format (&head, &out, -32, 1.0, 0.0, FALSE);
 
   /* find size of temporary images */
@@ -72,12 +72,12 @@
     for (i = 0; i < Nfiles; i++) {
       fprintf (stderr, ".");
-      if (!fits_read_header  (filename[i], &tmphead[i])) {
+      if (!gfits_read_header  (filename[i], &tmphead[i])) {
 	fprintf (stderr, "trouble reading file %s\n", filename[i]);
 	exit (1);
       }
-      fits_read_portion (filename[i], &tmpmatr[i], n*Npixin, Npixrd);
+      gfits_read_portion (filename[i], &tmpmatr[i], n*Npixin, Npixrd);
       tmphead[i].Naxis[0] = 1;
       tmphead[i].Naxis[1] = Npixrd;
-      fits_convert_format (&tmphead[i], &tmpmatr[i], -32, 1.0, 0.0, FALSE);
+      gfits_convert_format (&tmphead[i], &tmpmatr[i], -32, 1.0, 0.0, FALSE);
     }
     
@@ -98,12 +98,12 @@
     for (i = 0; i < Nfiles; i++) {
       fprintf (stderr, ",");
-      fits_free_header (&tmphead[i]);
-      fits_free_matrix (&tmpmatr[i]);
+      gfits_free_header (&tmphead[i]);
+      gfits_free_matrix (&tmpmatr[i]);
     }
     
   }
 
-  fits_write_header (argv[1], &head);
-  fits_write_matrix (argv[1], &out);
+  gfits_write_header (argv[1], &head);
+  gfits_write_matrix (argv[1], &out);
 
   return (0);
Index: /trunk/Ohana/src/misc/src/dastro.c
===================================================================
--- /trunk/Ohana/src/misc/src/dastro.c	(revision 7079)
+++ /trunk/Ohana/src/misc/src/dastro.c	(revision 7080)
@@ -24,21 +24,21 @@
   while (fscanf (stdin, "%s", filename) != EOF) {
     
-    status = fits_read_header (filename, &header);
+    status = gfits_read_header (filename, &header);
     if (!status) {
       fprintf (stderr, "error opening file %s\n", filename);
       continue;
     }
-    status = fits_scan (&header, "rREF", "%s", 1, reffile);
-    status &= fits_scan (&header, "X_O", "%lf", 1, &X_O);
-    status &= fits_scan (&header, "X_X", "%lf", 1, &X_X);
-    status &= fits_scan (&header, "X_Y", "%lf", 1, &X_Y);
-    status &= fits_scan (&header, "Y_O", "%lf", 1, &Y_O);
-    status &= fits_scan (&header, "Y_X", "%lf", 1, &Y_X);
-    status &= fits_scan (&header, "Y_Y", "%lf", 1, &Y_Y);
-    status &= fits_scan (&header, "dX", "%lf", 1, &dX);
-    status &= fits_scan (&header, "dY", "%lf", 1, &dY);
+    status = gfits_scan (&header, "rREF", "%s", 1, reffile);
+    status &= gfits_scan (&header, "X_O", "%lf", 1, &X_O);
+    status &= gfits_scan (&header, "X_X", "%lf", 1, &X_X);
+    status &= gfits_scan (&header, "X_Y", "%lf", 1, &X_Y);
+    status &= gfits_scan (&header, "Y_O", "%lf", 1, &Y_O);
+    status &= gfits_scan (&header, "Y_X", "%lf", 1, &Y_X);
+    status &= gfits_scan (&header, "Y_Y", "%lf", 1, &Y_Y);
+    status &= gfits_scan (&header, "dX", "%lf", 1, &dX);
+    status &= gfits_scan (&header, "dY", "%lf", 1, &dY);
     if (!status) {
       fprintf (stderr, "file missing rastro info: %s\n", filename);
-      fits_free_header (&header);
+      gfits_free_header (&header);
       continue;
     }
@@ -58,21 +58,21 @@
     }
 
-    status  = fits_read_header (reffile, &refhead);
+    status  = gfits_read_header (reffile, &refhead);
     if (!status) {
       fprintf (stderr, "error opening file %s\n", reffile);
       continue;
     }
-    status &= fits_scan (&refhead, "RA_O", "%lf", 1, &RA_O);
-    status &= fits_scan (&refhead, "RA_X", "%lf", 1, &RA_X);
-    status &= fits_scan (&refhead, "RA_Y", "%lf", 1, &RA_Y);
-    status &= fits_scan (&refhead, "DEC_O", "%lf", 1, &DEC_O);
-    status &= fits_scan (&refhead, "DEC_X", "%lf", 1, &DEC_X);
-    status &= fits_scan (&refhead, "DEC_Y", "%lf", 1, &DEC_Y);
-    status &= fits_scan (&refhead, "dRA",   "%lf", 1, &dRA);
-    status &= fits_scan (&refhead, "dDEC",  "%lf", 1, &dDEC);
+    status &= gfits_scan (&refhead, "RA_O", "%lf", 1, &RA_O);
+    status &= gfits_scan (&refhead, "RA_X", "%lf", 1, &RA_X);
+    status &= gfits_scan (&refhead, "RA_Y", "%lf", 1, &RA_Y);
+    status &= gfits_scan (&refhead, "DEC_O", "%lf", 1, &DEC_O);
+    status &= gfits_scan (&refhead, "DEC_X", "%lf", 1, &DEC_X);
+    status &= gfits_scan (&refhead, "DEC_Y", "%lf", 1, &DEC_Y);
+    status &= gfits_scan (&refhead, "dRA",   "%lf", 1, &dRA);
+    status &= gfits_scan (&refhead, "dDEC",  "%lf", 1, &dDEC);
     if (!status) {
       fprintf (stderr, "file missing rastro info: %s\n", reffile);
-      fits_free_header (&header);
-      fits_free_header (&refhead);
+      gfits_free_header (&header);
+      gfits_free_header (&refhead);
       continue;
     }
@@ -94,16 +94,16 @@
     ddec = sqrt(dDEC*dDEC + SQ(3600*dX*DEC_X) + SQ(3600*dY*DEC_Y));
 			   
-    status &= fits_modify (&header, "RA_O", "%lf", 1, ra_o);
-    status &= fits_modify (&header, "RA_X", "%le", 1, ra_x);
-    status &= fits_modify (&header, "RA_Y", "%le", 1, ra_y);
-    status &= fits_modify (&header, "DEC_O", "%lf", 1, dec_o);
-    status &= fits_modify (&header, "DEC_X", "%le", 1, dec_x);
-    status &= fits_modify (&header, "DEC_Y", "%le", 1, dec_y);
-    status &= fits_modify (&header, "dRA",   "%lf", 1, dra);
-    status &= fits_modify (&header, "dDEC",  "%lf", 1, ddec);
+    status &= gfits_modify (&header, "RA_O", "%lf", 1, ra_o);
+    status &= gfits_modify (&header, "RA_X", "%le", 1, ra_x);
+    status &= gfits_modify (&header, "RA_Y", "%le", 1, ra_y);
+    status &= gfits_modify (&header, "DEC_O", "%lf", 1, dec_o);
+    status &= gfits_modify (&header, "DEC_X", "%le", 1, dec_x);
+    status &= gfits_modify (&header, "DEC_Y", "%le", 1, dec_y);
+    status &= gfits_modify (&header, "dRA",   "%lf", 1, dra);
+    status &= gfits_modify (&header, "dDEC",  "%lf", 1, ddec);
     
-    fits_write_header (filename, &header);
-    fits_free_header (&header);
-    fits_free_header (&refhead);
+    gfits_write_header (filename, &header);
+    gfits_free_header (&header);
+    gfits_free_header (&refhead);
     
   }
Index: /trunk/Ohana/src/misc/src/fakecmp.c
===================================================================
--- /trunk/Ohana/src/misc/src/fakecmp.c	(revision 7079)
+++ /trunk/Ohana/src/misc/src/fakecmp.c	(revision 7080)
@@ -11,5 +11,5 @@
 
   if (argc != 4) {
-    fprintf (stderr, "USAGE: fits_insert (input) (template) (output)\n");
+    fprintf (stderr, "USAGE: gfits_insert (input) (template) (output)\n");
     exit (2);
   }
@@ -65,5 +65,5 @@
 
   /* load header from image file */
-  if (!fits_read_header (argv[1], &header)) {
+  if (!gfits_read_header (argv[1], &header)) {
     fprintf (stderr, "can't open fits file %s\n", argv[1]);
     exit (1);
@@ -84,5 +84,5 @@
     /* replace existing keywords, unless this is a COMMENT or HISTORY field */
     if (strncmp (keyword, "COMMENT ", 8) && strncmp (keyword, "HISTORY ", 8)) {
-      p = fits_header_field (&header, keyword, 1);
+      p = gfits_header_field (&header, keyword, 1);
       if (p != (char *) NULL) {
 	strncpy (p, line, 80);
Index: /trunk/Ohana/src/misc/src/fakedist.c
===================================================================
--- /trunk/Ohana/src/misc/src/fakedist.c	(revision 7079)
+++ /trunk/Ohana/src/misc/src/fakedist.c	(revision 7080)
@@ -49,5 +49,5 @@
   read_datafiles ();
 
-  fits_modify (&header, "SFR", "%s", 1, "Star Formation Rate (Mo / Myr)");
+  gfits_modify (&header, "SFR", "%s", 1, "Star Formation Rate (Mo / Myr)");
   for (i = 0; i < N_Av; i++) {
     for (j = 0; j < N_dist; j++) {
@@ -71,5 +71,5 @@
 	  /* mass is the total mass generated between 1 and 120 Mo for the NSTARS points in this matrix */
 	  sprintf (line, "SFR_%0d\0", n);
-	  fits_modify (&header, line, "%lf", 1, mass / (age[n+1] - age[n]));
+	  gfits_modify (&header, line, "%lf", 1, mass / (age[n+1] - age[n]));
 	  add_to_outmatrix (i, j, m, n, N_age, 0, mass);
 	  add_to_outmatrix (i, j, m, n, N_age, 1, Av[i]);
@@ -95,6 +95,6 @@
   */
 
-  fits_write_header (fakefile, &header);
-  fits_write_matrix (fakefile, &matrix);
+  gfits_write_header (fakefile, &header);
+  gfits_write_matrix (fakefile, &matrix);
 }
 
@@ -279,42 +279,42 @@
   header.extend = FALSE;
 
-  fits_create_header (&header);
-  fits_create_matrix (&header, &matrix);
-
-  fits_modify (&header, "PAR_1", "%s", 1, "mass (Mo)");
+  gfits_create_header (&header);
+  gfits_create_matrix (&header, &matrix);
+
+  gfits_modify (&header, "PAR_1", "%s", 1, "mass (Mo)");
   for (i = 0; i < NMASS + 1; i++) {
     sprintf (line, "PAR_1_%0d\0", i);
     value = 10.0 / SQ(4.5 - DMASS*i);
-    fits_modify (&header, line, "%lf", 1, value);
-  }
-  
-  fits_modify (&header, "PAR_2", "%s", 1, "age out (Myr)");
+    gfits_modify (&header, line, "%lf", 1, value);
+  }
+  
+  gfits_modify (&header, "PAR_2", "%s", 1, "age out (Myr)");
   for (i = 0; i < N_age + 1; i++) {
     sprintf (line, "PAR_2_%0d\0", i);
-    fits_modify (&header, line, "%lf", 1, age[i]);
-  }
-
-  fits_modify (&header, "PAR_3", "%s", 1, "age in (Myr)");
+    gfits_modify (&header, line, "%lf", 1, age[i]);
+  }
+
+  gfits_modify (&header, "PAR_3", "%s", 1, "age in (Myr)");
   for (i = 0; i < N_age + 1; i++) {
     sprintf (line, "PAR_3_%0d\0", i);
-    fits_modify (&header, line, "%lf", 1, age[i]);
-  }
-  
-  fits_modify (&header, "PAR_4", "%s", 1, "alpha");
+    gfits_modify (&header, line, "%lf", 1, age[i]);
+  }
+  
+  gfits_modify (&header, "PAR_4", "%s", 1, "alpha");
   for (i = 0; i < N_alpha; i++) {
     sprintf (line, "PAR_4_%0d\0", i);
-    fits_modify (&header, line, "%lf", 1, alpha[i]);
-  }
-
-  fits_modify (&header, "PAR_5", "%s", 1, "dist (mag)");
+    gfits_modify (&header, line, "%lf", 1, alpha[i]);
+  }
+
+  gfits_modify (&header, "PAR_5", "%s", 1, "dist (mag)");
   for (i = 0; i < N_dist; i++) {
     sprintf (line, "PAR_5_%0d\0", i);
-    fits_modify (&header, line, "%lf", 1, dist[i]);
-  }
-
-  fits_modify (&header, "PAR_6", "%s", 1, "A_V (mag)");
+    gfits_modify (&header, line, "%lf", 1, dist[i]);
+  }
+
+  gfits_modify (&header, "PAR_6", "%s", 1, "A_V (mag)");
   for (i = 0; i < N_Av; i++) {
     sprintf (line, "PAR_6_%0d\0", i);
-    fits_modify (&header, line, "%lf", 1, Av[i]);
+    gfits_modify (&header, line, "%lf", 1, Av[i]);
   }
 
@@ -383,8 +383,8 @@
 {
 
-  fits_read_header (colorfile, &UV_h);
-  fits_read_matrix (colorfile, &UV_i);
-  fits_read_header (magfile, &V_h);
-  fits_read_matrix (magfile, &V_i); 
+  gfits_read_header (colorfile, &UV_h);
+  gfits_read_matrix (colorfile, &UV_i);
+  gfits_read_header (magfile, &V_h);
+  gfits_read_matrix (magfile, &V_i); 
   UV_NX = UV_h.Naxis[0];
   UV_NY = UV_h.Naxis[1];
@@ -392,13 +392,13 @@
   Vbuffer = (float *)V_i.buffer;
 
-  fits_scan (&UV_h, "RA_O",  "%lf", 1, &lAo);
-  fits_scan (&UV_h, "RA_X",  "%lf", 1, &ldA);
-  fits_scan (&UV_h, "DEC_O", "%lf", 1, &lMo);
-  fits_scan (&UV_h, "DEC_Y", "%lf", 1, &ldM);
-
-  fits_read_header (massfile, &mass_h);
-  fits_read_matrix (massfile, &mass_i);
-  fits_read_header (agefile, &age_h);
-  fits_read_matrix (agefile, &age_i); 
+  gfits_scan (&UV_h, "RA_O",  "%lf", 1, &lAo);
+  gfits_scan (&UV_h, "RA_X",  "%lf", 1, &ldA);
+  gfits_scan (&UV_h, "DEC_O", "%lf", 1, &lMo);
+  gfits_scan (&UV_h, "DEC_Y", "%lf", 1, &ldM);
+
+  gfits_read_header (massfile, &mass_h);
+  gfits_read_matrix (massfile, &mass_i);
+  gfits_read_header (agefile, &age_h);
+  gfits_read_matrix (agefile, &age_i); 
   MS_NX = mass_h.Naxis[0];
   MS_NY = mass_h.Naxis[1];
@@ -406,8 +406,8 @@
   Abuffer = (float *)age_i.buffer;
 
-  fits_scan (&mass_h, "RA_O",  "%lf", 1, &UV0);
-  fits_scan (&mass_h, "RA_X",  "%lf", 1, &DUV);
-  fits_scan (&mass_h, "DEC_O", "%lf", 1, &V0);
-  fits_scan (&mass_h, "DEC_Y", "%lf", 1, &DV);
+  gfits_scan (&mass_h, "RA_O",  "%lf", 1, &UV0);
+  gfits_scan (&mass_h, "RA_X",  "%lf", 1, &DUV);
+  gfits_scan (&mass_h, "DEC_O", "%lf", 1, &V0);
+  gfits_scan (&mass_h, "DEC_Y", "%lf", 1, &DV);
 } 
 
Index: /trunk/Ohana/src/misc/src/fakedump.c
===================================================================
--- /trunk/Ohana/src/misc/src/fakedump.c	(revision 7079)
+++ /trunk/Ohana/src/misc/src/fakedump.c	(revision 7080)
@@ -21,6 +21,6 @@
   NAv = atof(argv[6]);
 
-  fits_read_header (argv[1], &in_h);
-  fits_read_matrix (argv[1], &in_m);
+  gfits_read_header (argv[1], &in_h);
+  gfits_read_matrix (argv[1], &in_m);
 
   if (Nage > in_h.Naxis[2] - 1) {
@@ -52,6 +52,6 @@
   out_h.unsign = FALSE;
   out_h.extend = FALSE;
-  fits_create_header (&out_h);
-  fits_create_matrix (&out_h, &out_m);
+  gfits_create_header (&out_h);
+  gfits_create_matrix (&out_h, &out_m);
   
   in = (float *)in_m.buffer;
@@ -65,5 +65,5 @@
   }
   
-  fits_write_header (argv[2], &out_h);
-  fits_write_matrix (argv[2], &out_m);
+  gfits_write_header (argv[2], &out_h);
+  gfits_write_matrix (argv[2], &out_m);
 }
Index: /trunk/Ohana/src/misc/src/fakepop.c
===================================================================
--- /trunk/Ohana/src/misc/src/fakepop.c	(revision 7079)
+++ /trunk/Ohana/src/misc/src/fakepop.c	(revision 7080)
@@ -37,13 +37,13 @@
   term = (pow((MMAX/MMIN), -alpha) - 1.0);
   
-  fits_read_header (colorfile, &UV_h);
-  fits_read_matrix (colorfile, &UV_i);
-  fits_read_header (magfile, &V_h);
-  fits_read_matrix (magfile, &V_i); 
-
-  fits_scan (&UV_h, "RA_O",  "%lf", 1, &lAo);
-  fits_scan (&UV_h, "RA_X",  "%lf", 1, &ldA);
-  fits_scan (&UV_h, "DEC_O", "%lf", 1, &lMo);
-  fits_scan (&UV_h, "DEC_Y", "%lf", 1, &ldM);
+  gfits_read_header (colorfile, &UV_h);
+  gfits_read_matrix (colorfile, &UV_i);
+  gfits_read_header (magfile, &V_h);
+  gfits_read_matrix (magfile, &V_i); 
+
+  gfits_scan (&UV_h, "RA_O",  "%lf", 1, &lAo);
+  gfits_scan (&UV_h, "RA_X",  "%lf", 1, &ldA);
+  gfits_scan (&UV_h, "DEC_O", "%lf", 1, &lMo);
+  gfits_scan (&UV_h, "DEC_Y", "%lf", 1, &ldM);
   
   gauss_init ();
@@ -63,8 +63,8 @@
     if ((X >= 0) && (X < UV_h.Naxis[0]) &&
 	(Y >= 0) && (Y < UV_h.Naxis[1])) {
-      uv = fits_get_matrix_value (&UV_i, X, Y); 
+      uv = gfits_get_matrix_value (&UV_i, X, Y); 
       if (uv != 100.0) {
 	uv += 0.7*Av;
-	v = fits_get_matrix_value (&V_i, X, Y) + d + Av; 
+	v = gfits_get_matrix_value (&V_i, X, Y) + d + Av; 
 	noise = dVo*sqrt(1.0 + pow (10.0, (0.4*(v - dVref)))); 
 	V = rnd_gauss (v, noise);
Index: /trunk/Ohana/src/misc/src/fakestars.c
===================================================================
--- /trunk/Ohana/src/misc/src/fakestars.c	(revision 7079)
+++ /trunk/Ohana/src/misc/src/fakestars.c	(revision 7080)
@@ -48,5 +48,5 @@
 
   /* load header, open file */
-  if (!fits_read_header (input, &header)) {
+  if (!gfits_read_header (input, &header)) {
     fprintf (stderr, "ERROR: can't read header for %s\n", input);
     exit (1);
@@ -60,5 +60,5 @@
 
   /* find expected number of stars */
-  fits_scan (&header, "NSTARS", "%d", 1, &Nstar);
+  gfits_scan (&header, "NSTARS", "%d", 1, &Nstar);
   if (Nstar == 0) {
     fprintf (stderr, "ERROR: can't get NSTARS from header\n");
@@ -102,5 +102,5 @@
   }
 
-  fits_write_header (output, &header);
+  gfits_write_header (output, &header);
   f = fopen (output, "a");
   if (f == NULL) {
Index: /trunk/Ohana/src/misc/src/fhead.c
===================================================================
--- /trunk/Ohana/src/misc/src/fhead.c	(revision 7079)
+++ /trunk/Ohana/src/misc/src/fhead.c	(revision 7080)
@@ -22,7 +22,7 @@
     
     if (Extend) {
-      status = fits_read_Xheader (argv[i], &head, Nextend);
+      status = gfits_read_Xheader (argv[i], &head, Nextend);
     } else {
-      status = fits_read_header (argv[i], &head);
+      status = gfits_read_header (argv[i], &head);
     }      
 
@@ -33,8 +33,8 @@
     }
 
-    p = fits_header_field (&head, "END", 1);
+    p = gfits_header_field (&head, "END", 1);
     nbytes = p - head.buffer;
     fwrite (head.buffer, nbytes, 1, stdout);
-    fits_free_header (&head);
+    gfits_free_header (&head);
 
   }
Index: /trunk/Ohana/src/misc/src/fields.c
===================================================================
--- /trunk/Ohana/src/misc/src/fields.c	(revision 7079)
+++ /trunk/Ohana/src/misc/src/fields.c	(revision 7080)
@@ -22,7 +22,7 @@
   while (fscanf (stdin, "%s", filename) != EOF) {
     if (Extend) {
-      status = fits_read_Xheader (filename, &header, Nextend);
+      status = gfits_read_Xheader (filename, &header, Nextend);
     } else {
-      status = fits_read_header (filename, &header);
+      status = gfits_read_header (filename, &header);
     }
     if (!status) {
@@ -34,5 +34,5 @@
     for (i = 1; i < argc; i++) {
       bzero (buffer, 1000);
-      status = fits_scan (&header, argv[i], "%s", 1, buffer);
+      status = gfits_scan (&header, argv[i], "%s", 1, buffer);
       if (!status) {
 	GotField = FALSE;
@@ -43,5 +43,5 @@
     fprintf (stdout, "\n");
 
-    fits_free_header (&header);
+    gfits_free_header (&header);
   }
 
Index: /trunk/Ohana/src/misc/src/fitdist.c
===================================================================
--- /trunk/Ohana/src/misc/src/fitdist.c	(revision 7079)
+++ /trunk/Ohana/src/misc/src/fitdist.c	(revision 7080)
@@ -306,8 +306,8 @@
   char line[1024];
 
-  fits_read_header (massfile, &mass_h);
-  fits_read_matrix (massfile, &mass_i);
-  fits_read_header (agefile, &age_h);
-  fits_read_matrix (agefile, &age_i); 
+  gfits_read_header (massfile, &mass_h);
+  gfits_read_matrix (massfile, &mass_i);
+  gfits_read_header (agefile, &age_h);
+  gfits_read_matrix (agefile, &age_i); 
   MS_NX = mass_h.Naxis[0];
   MS_NY = mass_h.Naxis[1];
@@ -315,16 +315,16 @@
   Abuffer = (float *)age_i.buffer;
 
-  fits_scan (&mass_h, "RA_O",  "%lf", 1, &UV0);
-  fits_scan (&mass_h, "RA_X",  "%lf", 1, &DUV);
-  fits_scan (&mass_h, "DEC_O", "%lf", 1, &V0);
-  fits_scan (&mass_h, "DEC_Y", "%lf", 1, &DV);
-
-  fits_read_header (fakefile, &fake_h);
-  fits_read_matrix (fakefile, &fake_m);
+  gfits_scan (&mass_h, "RA_O",  "%lf", 1, &UV0);
+  gfits_scan (&mass_h, "RA_X",  "%lf", 1, &DUV);
+  gfits_scan (&mass_h, "DEC_O", "%lf", 1, &V0);
+  gfits_scan (&mass_h, "DEC_Y", "%lf", 1, &DV);
+
+  gfits_read_header (fakefile, &fake_h);
+  gfits_read_matrix (fakefile, &fake_m);
   Nmass = fake_h.Naxis[0];
   ALLOCATE (Mass, double, Nmass + 1);
   for (i = 0; i < Nmass + 1; i++) {
     sprintf (line, "PAR_1_%0d\0", i);
-    fits_scan (&fake_h, line, "%lf", 1, &Mass[i]);
+    gfits_scan (&fake_h, line, "%lf", 1, &Mass[i]);
   }
   
@@ -332,5 +332,5 @@
   for (i = 0; i < N_age + 1; i++) {
     sprintf (line, "PAR_2_%0d\0", i);
-    fits_scan (&fake_h, line, "%lf", 1, &age[i]);
+    gfits_scan (&fake_h, line, "%lf", 1, &age[i]);
   }
 
@@ -338,5 +338,5 @@
   for (i = 0; i < N_alpha; i++) {
     sprintf (line, "PAR_4_%0d\0", i);
-    fits_scan (&fake_h, line, "%lf", 1, &alpha[i]);
+    gfits_scan (&fake_h, line, "%lf", 1, &alpha[i]);
   }
 
@@ -344,5 +344,5 @@
   for (i = 0; i < N_dist; i++) {
     sprintf (line, "PAR_5_%0d\0", i);
-    fits_scan (&fake_h, line, "%lf", 1, &dist[i]);
+    gfits_scan (&fake_h, line, "%lf", 1, &dist[i]);
   }
 
@@ -350,5 +350,5 @@
   for (i = 0; i < N_Av; i++) {
     sprintf (line, "PAR_6_%0d\0", i);
-    fits_scan (&fake_h, line, "%lf", 1, &Av[i]);
+    gfits_scan (&fake_h, line, "%lf", 1, &Av[i]);
   }
 
Index: /trunk/Ohana/src/misc/src/fits_insert.c
===================================================================
--- /trunk/Ohana/src/misc/src/fits_insert.c	(revision 7079)
+++ /trunk/Ohana/src/misc/src/fits_insert.c	(revision 7080)
@@ -35,10 +35,10 @@
 
   if (argc != 3) {
-    fprintf (stderr, "USAGE: fits_insert (image.fits) (header.hdx) [-X N] [-comment N line]\n");
+    fprintf (stderr, "USAGE: gfits_insert (image.fits) (header.hdx) [-X N] [-comment N line]\n");
     exit (2);
   }
   
   /* load header from image file */
-  Nbytes = fits_read_Xheader (argv[1], &header, EXTNUM);
+  Nbytes = gfits_read_Xheader (argv[1], &header, EXTNUM);
   if (!Nbytes) {
     fprintf (stderr, "can't open fits file %s\n", argv[1]);
@@ -61,5 +61,5 @@
     snprintf (line, 81, "COMMENT  %-71s", Cline);
 
-    p = fits_header_field (&header, "COMMENT", Cnumber);
+    p = gfits_header_field (&header, "COMMENT", Cnumber);
     if (p != (char *) NULL) {
       strncpy (p, line, 80);
@@ -80,5 +80,5 @@
     /* replace existing keywords, unless this is a COMMENT or HISTORY field */
     if (strncmp (keyword, "COMMENT ", 8) && strncmp (keyword, "HISTORY ", 8)) {
-      p = fits_header_field (&header, keyword, 1);
+      p = gfits_header_field (&header, keyword, 1);
       if (p != (char *) NULL) {
 	strncpy (p, line, 80);
@@ -110,5 +110,5 @@
     if (p == (char *) NULL) {
       fprintf (stdout, "no more reserved spaces, trying for extra space in block\n");
-      p = fits_header_field (&header, "END", 1);
+      p = gfits_header_field (&header, "END", 1);
       if (p == (char *) NULL) {
 	fprintf (stderr, "header is missing END\n");
Index: /trunk/Ohana/src/misc/src/fiximg.c
===================================================================
--- /trunk/Ohana/src/misc/src/fiximg.c	(revision 7079)
+++ /trunk/Ohana/src/misc/src/fiximg.c	(revision 7080)
@@ -15,9 +15,9 @@
 
   /* read catalog header */
-  if (!fits_read_header (argv[1], &header)) {
+  if (!gfits_read_header (argv[1], &header)) {
     fprintf (stderr, "error loading file %s\n", argv[1]);
     exit (1);
   }
-  if (!fits_read_matrix (argv[1], &matrix)) {
+  if (!gfits_read_matrix (argv[1], &matrix)) {
     fprintf (stderr, "error loading file %s\n", argv[1]);
     exit (1);
@@ -25,10 +25,10 @@
 
   N = 0;
-  while (fits_header_field (&header, "COMMENT", 1) != (char *) NULL) {
+  while (gfits_header_field (&header, "COMMENT", 1) != (char *) NULL) {
     N++;
-    fits_delete (&header, "COMMENT", 1);
+    gfits_delete (&header, "COMMENT", 1);
   }
   fprintf (stderr, "deleted %d comments\n", N);
-  p = fits_header_field (&header, "END", 1);
+  p = gfits_header_field (&header, "END", 1);
   for (i = 3; i < header.size - (int) (p - header.buffer); i++) { 
     p[i] = ' '; 
@@ -36,9 +36,9 @@
 
   /* read catalog header */
-  if (!fits_write_header (argv[2], &header)) {
+  if (!gfits_write_header (argv[2], &header)) {
     fprintf (stderr, "error writing file %s\n", argv[2]);
     exit (1);
   }
-  if (!fits_write_matrix (argv[2], &matrix)) {
+  if (!gfits_write_matrix (argv[2], &matrix)) {
     fprintf (stderr, "error writing file %s\n", argv[2]);
     exit (1);
Index: /trunk/Ohana/src/misc/src/fixsimple.c
===================================================================
--- /trunk/Ohana/src/misc/src/fixsimple.c	(revision 7079)
+++ /trunk/Ohana/src/misc/src/fixsimple.c	(revision 7080)
@@ -14,5 +14,5 @@
 
   /* read header */
-  if (!fits_read_header (argv[1], &header)) {
+  if (!gfits_read_header (argv[1], &header)) {
     fprintf (stderr, "error loading file %s\n", argv[1]);
     exit (1);
@@ -20,10 +20,10 @@
 
   N = 0;
-  while (fits_header_field (&header, "COMMENT", 1) != (char *) NULL) {
+  while (gfits_header_field (&header, "COMMENT", 1) != (char *) NULL) {
     N++;
-    fits_delete (&header, "COMMENT", 1);
+    gfits_delete (&header, "COMMENT", 1);
   }
   fprintf (stderr, "deleted %d comments\n", N);
-  p = fits_header_field (&header, "END", 1);
+  p = gfits_header_field (&header, "END", 1);
   for (i = 3; i < header.size - (int) (p - header.buffer); i++) { 
     p[i] = ' '; 
@@ -31,9 +31,9 @@
 
   /* read catalog header */
-  if (!fits_write_header (argv[2], &header)) {
+  if (!gfits_write_header (argv[2], &header)) {
     fprintf (stderr, "error writing file %s\n", argv[2]);
     exit (1);
   }
-  if (!fits_write_matrix (argv[2], &matrix)) {
+  if (!gfits_write_matrix (argv[2], &matrix)) {
     fprintf (stderr, "error writing file %s\n", argv[2]);
     exit (1);
Index: /trunk/Ohana/src/misc/src/ftable.c
===================================================================
--- /trunk/Ohana/src/misc/src/ftable.c	(revision 7079)
+++ /trunk/Ohana/src/misc/src/ftable.c	(revision 7080)
@@ -83,9 +83,9 @@
 
   Binary = FALSE;
-  fits_scan (table.header, "XTENSION", "%s", 1, ttype);
+  gfits_scan (table.header, "XTENSION", "%s", 1, ttype);
   if (!strcmp (ttype, "BINTABLE")) Binary = TRUE;
 
   /* load table data array */
-  Nbytes = fits_matrix_size (table.header);
+  Nbytes = gfits_matrix_size (table.header);
   ALLOCATE (table.buffer, char, Nbytes);
   Nread = fread (table.buffer, sizeof (char), Nbytes, f);
@@ -96,6 +96,6 @@
   table.size = Nbytes;
 
-  fits_scan (table.header, "NAXIS1",  "%d", 1, &Nx);
-  fits_scan (table.header, "NAXIS2",  "%d", 1, &Ny);
+  gfits_scan (table.header, "NAXIS1",  "%d", 1, &Nx);
+  gfits_scan (table.header, "NAXIS2",  "%d", 1, &Ny);
 
   /* print a column */
@@ -125,6 +125,6 @@
   char field[16], type[16], format[16], *line;
 
-  fits_scan (header, "NAXIS1",  "%d", 1, &Nx);
-  fits_scan (header, "TFIELDS", "%d", 1, &Nfields);
+  gfits_scan (header, "NAXIS1",  "%d", 1, &Nx);
+  gfits_scan (header, "TFIELDS", "%d", 1, &Nfields);
 
   /* assume we have one space per byte column */
@@ -134,6 +134,6 @@
   for (i = 1; i <= Nfields; i++) {
     sprintf (field, "TFORM%d", i);
-    fits_scan (header, field, "%s", 1, format); /* get field format */
-    fits_table_format (format, type, &Nvals, &Nbytes);    /* convert to c-style */
+    gfits_scan (header, field, "%s", 1, format); /* get field format */
+    gfits_table_format (format, type, &Nvals, &Nbytes);    /* convert to c-style */
     memcpy (&line[Oout], &row[Oin], Nvals*Nbytes);
     for (j = 0; j < Nvals*Nbytes; j++) if (line[Oout+j] == 0) line[Oout+j] = ' ';
@@ -170,5 +170,5 @@
   }
 
-  if (!fits_fread_header (f, &header)) {
+  if (!gfits_fread_header (f, &header)) {
     fprintf (stderr, "can't read header from %s\n", file);
     exit (1);
@@ -176,19 +176,19 @@
 
   extend = FALSE;
-  fits_scan (&header, "EXTEND", "%t", 1, &extend);
+  gfits_scan (&header, "EXTEND", "%t", 1, &extend);
   if (!extend) {
     fprintf (stderr, "no extensions listed in file\n");
   }
 
-  Nbytes = fits_matrix_size (&header);
+  Nbytes = gfits_matrix_size (&header);
   fseek (f, Nbytes, SEEK_CUR);
 
-  while (fits_fread_header (f, &header)) {
-    fits_scan (&header, "EXTNAME", "%s", 1, extname);
-    fits_scan (&header, "NAXIS1",  "%d", 1, &Nx);
-    fits_scan (&header, "NAXIS2",  "%d", 1, &Ny);
+  while (gfits_fread_header (f, &header)) {
+    gfits_scan (&header, "EXTNAME", "%s", 1, extname);
+    gfits_scan (&header, "NAXIS1",  "%d", 1, &Nx);
+    gfits_scan (&header, "NAXIS2",  "%d", 1, &Ny);
     fprintf (stdout, "%-30s %6d %6d\n", extname, Nx, Ny);
 
-    Nbytes = fits_matrix_size (&header);
+    Nbytes = gfits_matrix_size (&header);
     fseek (f, Nbytes, SEEK_CUR);
   }
@@ -211,5 +211,5 @@
 
   /* read PHU */
-  if (!fits_fread_header (f, header)) {
+  if (!gfits_fread_header (f, header)) {
     fprintf (stderr, "can't read header from %s\n", file);
     exit (1);
@@ -218,5 +218,5 @@
   /* check for existence of extensions */
   extend = FALSE;
-  fits_scan (header, "EXTEND", "%t", 1, &extend);
+  gfits_scan (header, "EXTEND", "%t", 1, &extend);
   if (!extend) {
     fprintf (stderr, "no extensions listed in file\n");
@@ -224,17 +224,17 @@
 
   /* skip first data array */
-  Nbytes = fits_matrix_size (header);
+  Nbytes = gfits_matrix_size (header);
   fseek (f, Nbytes, SEEK_CUR);
 
   /* search for extension of interest */
-  for (i = 0; fits_fread_Theader (f, header); i++) {
+  for (i = 0; gfits_fread_Theader (f, header); i++) {
     if ((Extname == NULL) && (Nextend == i)) return (f);
 
-    fits_scan (header, "EXTNAME", "%s", 1, extname);
+    gfits_scan (header, "EXTNAME", "%s", 1, extname);
     if ((Extname != NULL) && (!strcmp (Extname, extname))) return (f);
 
-    Nbytes = fits_matrix_size (header);
+    Nbytes = gfits_matrix_size (header);
     fseek (f, Nbytes, SEEK_CUR);
-    fits_free_header (header);
+    gfits_free_header (header);
   }
   fclose (f);
@@ -255,7 +255,7 @@
   data   =  table[0].buffer;
 
-  fits_scan (header, "TFIELDS", "%d", 1, &Nfields);
-  fits_scan (header, "NAXIS1",  "%d", 1, &Nx);
-  fits_scan (header, "NAXIS2",  "%d", 1, &Ny);
+  gfits_scan (header, "TFIELDS", "%d", 1, &Nfields);
+  gfits_scan (header, "NAXIS1",  "%d", 1, &Nx);
+  gfits_scan (header, "NAXIS2",  "%d", 1, &Ny);
 
   if (Colname != (char *) NULL) {
@@ -263,5 +263,5 @@
     for (i = 1; i <= Nfields; i++) {
       sprintf (field, "TTYPE%d", i);
-      fits_scan (header, field, "%s", 1, type);
+      gfits_scan (header, field, "%s", 1, type);
       if (!strcmp (type, Colname)) {
 	Column = i;
@@ -285,25 +285,25 @@
   for (i = 1; i < Column; i++) {
     sprintf (field, "TFORM%d", i);
-    fits_scan (header, field, "%s", 1, format);
+    gfits_scan (header, field, "%s", 1, format);
     if (Binary) 
-      fits_table_format (format, type, &Nv, &Nb);
+      gfits_table_format (format, type, &Nv, &Nb);
     else 
-      fits_bintable_format (format, type, &Nv, &Nb);
+      gfits_bintable_format (format, type, &Nv, &Nb);
     Nstart += Nv*Nb;
   }
 
   sprintf (field, "TFORM%d", Column);
-  fits_scan (header, field, "%s", 1, format);
+  gfits_scan (header, field, "%s", 1, format);
   if (Binary) 
-    fits_bintable_format (format, type, &Nv, &Nb);    /* convert to c-style */
+    gfits_bintable_format (format, type, &Nv, &Nb);    /* convert to c-style */
   else 
-    fits_table_format (format, type, &Nv, &Nb);    /* convert to c-style */
+    gfits_table_format (format, type, &Nv, &Nb);    /* convert to c-style */
 
   ALLOCATE (line, char, Nv*Nb + 1);
 
   if (Binary) {
-    if (!fits_get_bintable_column_type (header, Colname, type, &Nv)) return;
+    if (!gfits_get_bintable_column_type (header, Colname, type, &Nv)) return;
     if (!strcmp (type, "char")) return;
-    if (!fits_get_bintable_column (header, table, Colname, (void **)&data)) return;
+    if (!gfits_get_bintable_column (header, table, Colname, (void **)&data)) return;
 
     for (i = 0; i < Ny; i++) {
@@ -344,18 +344,18 @@
   char field[16], type[80], comment[80], format[80], unit[80], null[80], nval[80];
 
-  fits_scan (header, "TFIELDS", "%d", 1, &Nfields);
+  gfits_scan (header, "TFIELDS", "%d", 1, &Nfields);
 
   for (i = 1; i <= Nfields; i++) {
     sprintf (field, "TTYPE%d", i);
-    fits_scan (header, field, "%s", 1, type);
-    fits_scan (header, field, "%C", 1, comment);
+    gfits_scan (header, field, "%s", 1, type);
+    gfits_scan (header, field, "%C", 1, comment);
     sprintf (field, "TFORM%d", i);
-    fits_scan (header, field, "%s", 1, format);
+    gfits_scan (header, field, "%s", 1, format);
     sprintf (field, "TUNIT%d", i);
-    fits_scan (header, field, "%s", 1, unit);
+    gfits_scan (header, field, "%s", 1, unit);
     sprintf (field, "TNULL%d", i);
-    if (!fits_scan (header, field, "%s", 1, null)) strcpy (null, "none");
+    if (!gfits_scan (header, field, "%s", 1, null)) strcpy (null, "none");
     sprintf (field, "TNVAL%d", i);
-    if (!fits_scan (header, field, "%s", 1, nval)) strcpy (nval, "none");
+    if (!gfits_scan (header, field, "%s", 1, nval)) strcpy (nval, "none");
 
     fprintf (stdout, "%-18s %-32s %-18s %-6s %-8s %-8s\n", 
Index: /trunk/Ohana/src/misc/src/gtfringetable.c
===================================================================
--- /trunk/Ohana/src/misc/src/gtfringetable.c	(revision 7079)
+++ /trunk/Ohana/src/misc/src/gtfringetable.c	(revision 7080)
@@ -2,5 +2,5 @@
 # include <gfitsio.h>
 
-static char *version = "gtfringetable $Revision: 1.4 $";
+static char *version = "gtfringetable $Revision: 1.5 $";
 
 void get_version (int argc, char **argv, char *version);
@@ -30,5 +30,5 @@
   }
   table.header = &header;
-  if (!fits_fread_ftable (f, &table, argv[2])) {
+  if (!gfits_fread_ftable (f, &table, argv[2])) {
     fprintf (stderr, "error reading table %s\n", argv[2]);
     exit (1);
@@ -36,8 +36,8 @@
   fclose (f);
 
-  fits_get_table_column (&header, &table, "X_MIN", (void **) &xmin);
-  fits_get_table_column (&header, &table, "X_MAX", (void **) &xmax);
-  fits_get_table_column (&header, &table, "Y_MIN", (void **) &ymin);
-  fits_get_table_column (&header, &table, "Y_MAX", (void **) &ymax);
+  gfits_get_table_column (&header, &table, "X_MIN", (void **) &xmin);
+  gfits_get_table_column (&header, &table, "X_MAX", (void **) &xmax);
+  gfits_get_table_column (&header, &table, "Y_MIN", (void **) &ymin);
+  gfits_get_table_column (&header, &table, "Y_MAX", (void **) &ymax);
 
   for (i = 0; i < header.Naxis[1]; i++) {
Index: /trunk/Ohana/src/misc/src/magtoage.c
===================================================================
--- /trunk/Ohana/src/misc/src/magtoage.c	(revision 7079)
+++ /trunk/Ohana/src/misc/src/magtoage.c	(revision 7080)
@@ -57,13 +57,13 @@
   */
   
-  fits_read_header (argv[1], &mass_h);
-  fits_read_matrix (argv[1], &mass_i);
-  fits_read_header (argv[2], &age_h);
-  fits_read_matrix (argv[2], &age_i); 
-
-  fits_scan (&mass_h, "RA_O",  "%lf", 1, &UV0);
-  fits_scan (&mass_h, "RA_X",  "%lf", 1, &DUV);
-  fits_scan (&mass_h, "DEC_O", "%lf", 1, &V0);
-  fits_scan (&mass_h, "DEC_Y", "%lf", 1, &DV);
+  gfits_read_header (argv[1], &mass_h);
+  gfits_read_matrix (argv[1], &mass_i);
+  gfits_read_header (argv[2], &age_h);
+  gfits_read_matrix (argv[2], &age_i); 
+
+  gfits_scan (&mass_h, "RA_O",  "%lf", 1, &UV0);
+  gfits_scan (&mass_h, "RA_X",  "%lf", 1, &DUV);
+  gfits_scan (&mass_h, "DEC_O", "%lf", 1, &V0);
+  gfits_scan (&mass_h, "DEC_Y", "%lf", 1, &DV);
 
   ALLOCATE (Ages, double *, (Ntry+2));
@@ -86,7 +86,7 @@
   for (x = 0; x < age_h.Naxis[0]; x++) {
     for (y = 0; y < age_h.Naxis[1]; y++) {
-      mass = fits_get_matrix_value (&mass_i, x, y);
+      mass = gfits_get_matrix_value (&mass_i, x, y);
       if (mass == 0.0) continue;
-      age  = fits_get_matrix_value (&age_i, x, y);
+      age  = gfits_get_matrix_value (&age_i, x, y);
       uv = x*DUV + UV0 + 0.7*Av;
       v  = y*DV + V0 + Av + d;
@@ -125,7 +125,7 @@
       if ((x > 0) && (x < mass_h.Naxis[0]) &&
 	  (y > 0) && (y < mass_h.Naxis[1])) {
-	mass = fits_get_matrix_value (&mass_i, x, y);
+	mass = gfits_get_matrix_value (&mass_i, x, y);
 	if (mass > 0.0) {
-	  age = fits_get_matrix_value (&age_i, x, y); 
+	  age = gfits_get_matrix_value (&age_i, x, y); 
 	  j = (age - lAo) / ldA;
 	  if ((j >= 0) && (j < NAGE))
Index: /trunk/Ohana/src/misc/src/magtomass.c
===================================================================
--- /trunk/Ohana/src/misc/src/magtomass.c	(revision 7079)
+++ /trunk/Ohana/src/misc/src/magtomass.c	(revision 7080)
@@ -85,13 +85,13 @@
   Ntry = atof (argv[5]);
 
-  fits_read_header (argv[1], &mass_h);
-  fits_read_matrix (argv[1], &mass_i);
-  fits_read_header (argv[2], &age_h);
-  fits_read_matrix (argv[2], &age_i); 
-
-  fits_scan (&mass_h, "RA_O",  "%lf", 1, &UV0);
-  fits_scan (&mass_h, "RA_X",  "%lf", 1, &DUV);
-  fits_scan (&mass_h, "DEC_O", "%lf", 1, &V0);
-  fits_scan (&mass_h, "DEC_Y", "%lf", 1, &DV);
+  gfits_read_header (argv[1], &mass_h);
+  gfits_read_matrix (argv[1], &mass_i);
+  gfits_read_header (argv[2], &age_h);
+  gfits_read_matrix (argv[2], &age_i); 
+
+  gfits_scan (&mass_h, "RA_O",  "%lf", 1, &UV0);
+  gfits_scan (&mass_h, "RA_X",  "%lf", 1, &DUV);
+  gfits_scan (&mass_h, "DEC_O", "%lf", 1, &V0);
+  gfits_scan (&mass_h, "DEC_Y", "%lf", 1, &DV);
   Mbuffer = (float *)mass_i.buffer;
   Abuffer = (float *)age_i.buffer;
@@ -125,5 +125,5 @@
     if ((x > 0) && (x < mass_h.Naxis[0]) && (y > 0) && (y < mass_h.Naxis[1])) {
       mass = Mbuffer[x + NX*y];
-      /*      mass = fits_get_matrix_value (&mass_i, x, y); */
+      /*      mass = gfits_get_matrix_value (&mass_i, x, y); */
       if (mass > 0.0) {
 	age = Abuffer[x + NX*y];
@@ -138,5 +138,5 @@
 /*
 
-	**	age = fits_get_matrix_value (&age_i, x, y);  **
+	**	age = gfits_get_matrix_value (&age_i, x, y);  **
 	I = MAX (MIN ((log10(age) - lAo) / ldA, NAGE - 1), 0); 
 	if (NEWWAY) {
@@ -153,8 +153,8 @@
 	  if ((x > 0) && (x < mass_h.Naxis[0]) && (y > 0) && (y < mass_h.Naxis[1])) {
 	    mass = Mbuffer[x + NX*y];
-	    **	    mass = fits_get_matrix_value (&mass_i, x, y); **
+	    **	    mass = gfits_get_matrix_value (&mass_i, x, y); **
 	    if (mass > 0.0) {
 	      age = Abuffer[x + NX*y];
-	      ** age = fits_get_matrix_value (&age_i, x, y);  **
+	      ** age = gfits_get_matrix_value (&age_i, x, y);  **
 	      i = MAX (MIN ((log10(age) - lAo) / ldA, NAGE - 1), 0);
 	      if (NEWWAY) {
Index: /trunk/Ohana/src/misc/src/medianfilter.c
===================================================================
--- /trunk/Ohana/src/misc/src/medianfilter.c	(revision 7079)
+++ /trunk/Ohana/src/misc/src/medianfilter.c	(revision 7080)
@@ -45,7 +45,7 @@
 
   /* load a header, setup output header, matrix */
-  fits_read_header (filename[0], &head);
-  fits_create_matrix (&head, &out);
-  fits_convert_format (&head, &out, -32, 1.0, 0.0, FALSE);
+  gfits_read_header (filename[0], &head);
+  gfits_create_matrix (&head, &out);
+  gfits_convert_format (&head, &out, -32, 1.0, 0.0, FALSE);
 
   /* find size of temporary images */
@@ -76,12 +76,12 @@
     for (i = 0; i < Nfiles; i++) {
       fprintf (stderr, ".");
-      if (!fits_read_header  (filename[i], &tmphead[i])) {
+      if (!gfits_read_header  (filename[i], &tmphead[i])) {
 	fprintf (stderr, "trouble reading file %s\n", filename[i]);
 	exit (1);
       }
-      fits_read_portion (filename[i], &tmpmatr[i], n*Npixin, Npixrd);
+      gfits_read_portion (filename[i], &tmpmatr[i], n*Npixin, Npixrd);
       tmphead[i].Naxis[0] = 1;
       tmphead[i].Naxis[1] = Npixrd;
-      fits_convert_format (&tmphead[i], &tmpmatr[i], -32, 1.0, 0.0, FALSE);
+      gfits_convert_format (&tmphead[i], &tmpmatr[i], -32, 1.0, 0.0, FALSE);
     }
     
@@ -102,12 +102,12 @@
     for (i = 0; i < Nfiles; i++) {
       fprintf (stderr, ",");
-      fits_free_header (&tmphead[i]);
-      fits_free_matrix (&tmpmatr[i]);
+      gfits_free_header (&tmphead[i]);
+      gfits_free_matrix (&tmpmatr[i]);
     }
     
   }
 
-  fits_write_header (argv[1], &head);
-  fits_write_matrix (argv[1], &out);
+  gfits_write_header (argv[1], &head);
+  gfits_write_matrix (argv[1], &out);
 
   return (0);
Index: /trunk/Ohana/src/misc/src/mefhead.c
===================================================================
--- /trunk/Ohana/src/misc/src/mefhead.c	(revision 7079)
+++ /trunk/Ohana/src/misc/src/mefhead.c	(revision 7080)
@@ -36,5 +36,5 @@
 
   /* read PHU */
-  status = fits_fread_header (g, &header);
+  status = gfits_fread_header (g, &header);
   if (!status) {
     fprintf (stderr, "error: can't read primary header unit\n");
@@ -42,10 +42,10 @@
   }
   /* skip matrix */
-  Nmatrix = fits_matrix_size (&header);
+  Nmatrix = gfits_matrix_size (&header);
   fseek (g, Nmatrix, SEEK_CUR);
 
   /* write PHU */
-  fits_modify (&header, "NAXIS", "%d", 1, 0);
-  status = fits_fwrite_header (f, &header);
+  gfits_modify (&header, "NAXIS", "%d", 1, 0);
+  status = gfits_fwrite_header (f, &header);
   if (!status) {
     fprintf (stderr, "error: can't write primary header unit\n");
@@ -54,5 +54,5 @@
 
   /* check if NEXTEND is accurate */
-  fits_scan (&header, "NEXTEND", "%d", 1, &NEXTEND);
+  gfits_scan (&header, "NEXTEND", "%d", 1, &NEXTEND);
 
   Nextend = 0;
@@ -60,14 +60,14 @@
     
     /* read header */
-    status = fits_fread_header (g, &header);
+    status = gfits_fread_header (g, &header);
     if (!status) break;
 
     /* skip matrix */
-    Nmatrix = fits_matrix_size (&header);
+    Nmatrix = gfits_matrix_size (&header);
     fseek (g, Nmatrix, SEEK_CUR);
     
     /* write header */
-    fits_modify (&header, "NAXIS", "%d", 1, 0);
-    status = fits_fwrite_header (f, &header);
+    gfits_modify (&header, "NAXIS", "%d", 1, 0);
+    status = gfits_fwrite_header (f, &header);
     if (!status) {
       fprintf (stderr, "error: can't write header unit %d\n", Nextend);
@@ -75,5 +75,5 @@
     }
     Nextend ++;
-    fits_free_header (&header);
+    gfits_free_header (&header);
   }
 
Index: /trunk/Ohana/src/misc/src/mkfringetable.c
===================================================================
--- /trunk/Ohana/src/misc/src/mkfringetable.c	(revision 7079)
+++ /trunk/Ohana/src/misc/src/mkfringetable.c	(revision 7080)
@@ -2,5 +2,5 @@
 # include <gfitsio.h>
 
-static char *version = "mkfringetable $Revision: 1.7 $";
+static char *version = "mkfringetable $Revision: 1.8 $";
 
 void get_version (int argc, char **argv, char *version);
@@ -77,20 +77,20 @@
 
   /* make phu header (no matrix needed) */
-  fits_init_header (&header);    
+  gfits_init_header (&header);    
   header.extend = TRUE;
-  fits_create_header (&header);
-  fits_create_matrix (&header, &matrix);
+  gfits_create_header (&header);
+  gfits_create_matrix (&header, &matrix);
   
-  fits_modify (&header, "NEXTEND",        "%d", 1, Nccd);
-  fits_modify (&header, "DATE",           "%s", 1, datestr);
-  fits_modify (&header, "TVSTART",        "%s", 1, start);
-  fits_modify (&header, "TVSTOP",         "%s", 1, stop);
-  fits_modify (&header, "VERSION",        "%s", 1, version);
-  fits_modify (&header, CameraKeyword,    "%s", 1, camera);
-  fits_modify (&header, ImagetypeKeyword, "%s", 1, "FRPTS");
-  fits_modify (&header, FilterKeyword,    "%s", 1, filter);
-    
-  fits_fwrite_header  (g, &header);
-  fits_fwrite_matrix  (g, &matrix);
+  gfits_modify (&header, "NEXTEND",        "%d", 1, Nccd);
+  gfits_modify (&header, "DATE",           "%s", 1, datestr);
+  gfits_modify (&header, "TVSTART",        "%s", 1, start);
+  gfits_modify (&header, "TVSTOP",         "%s", 1, stop);
+  gfits_modify (&header, "VERSION",        "%s", 1, version);
+  gfits_modify (&header, CameraKeyword,    "%s", 1, camera);
+  gfits_modify (&header, ImagetypeKeyword, "%s", 1, "FRPTS");
+  gfits_modify (&header, FilterKeyword,    "%s", 1, filter);
+    
+  gfits_fwrite_header  (g, &header);
+  gfits_fwrite_matrix  (g, &matrix);
 
   ALLOCATE (xmin, double, 1);
@@ -144,32 +144,32 @@
 
     /* create table header */
-    fits_create_table_header (&theader, "TABLE", extname);
+    gfits_create_table_header (&theader, "TABLE", extname);
       
     /* add current date/time to header */
-    fits_modify (&theader, "DATE",          "%s", 1, datestr);
-    fits_modify (&theader, "TVSTART",       "%s", 1, start);
-    fits_modify (&theader, "TVSTOP",        "%s", 1, stop);
-    fits_modify (&header, CameraKeyword,    "%s", 1, camera);
-    fits_modify (&header, ImagetypeKeyword, "%s", 1, "FRPTS");
-    fits_modify (&header, FilterKeyword,    "%s", 1, filter);
-    fits_modify (&header, CCDnumKeyword,    "%s", 1, extname);
+    gfits_modify (&theader, "DATE",          "%s", 1, datestr);
+    gfits_modify (&theader, "TVSTART",       "%s", 1, start);
+    gfits_modify (&theader, "TVSTOP",        "%s", 1, stop);
+    gfits_modify (&header, CameraKeyword,    "%s", 1, camera);
+    gfits_modify (&header, ImagetypeKeyword, "%s", 1, "FRPTS");
+    gfits_modify (&header, FilterKeyword,    "%s", 1, filter);
+    gfits_modify (&header, CCDnumKeyword,    "%s", 1, extname);
     
     
     /* define table layout */
-    fits_define_table_column (&theader, "F6.1", "X_MIN", "min couple x", "pixels"); 
-    fits_define_table_column (&theader, "F6.1", "Y_MIN", "min couple y", "pixels"); 
-    fits_define_table_column (&theader, "F6.1", "X_MAX", "max couple x", "pixels"); 
-    fits_define_table_column (&theader, "F6.1", "Y_MAX", "max couple y", "pixels"); 
+    gfits_define_table_column (&theader, "F6.1", "X_MIN", "min couple x", "pixels"); 
+    gfits_define_table_column (&theader, "F6.1", "Y_MIN", "min couple y", "pixels"); 
+    gfits_define_table_column (&theader, "F6.1", "X_MAX", "max couple x", "pixels"); 
+    gfits_define_table_column (&theader, "F6.1", "Y_MAX", "max couple y", "pixels"); 
     
     /* create table, add data values */
-    fits_create_table (&theader, &table);
+    gfits_create_table (&theader, &table);
   
     for (j = 0; j < Npts; j++) {
-      row = fits_table_print (&table, xmin[j], ymin[j], xmax[j], ymax[j]);
-      fits_add_rows (&table, row, 1, strlen (row));
-    }
-
-    fits_fwrite_Theader (g, &theader);
-    fits_fwrite_table   (g, &table);
+      row = gfits_table_print (&table, xmin[j], ymin[j], xmax[j], ymax[j]);
+      gfits_add_rows (&table, row, 1, strlen (row));
+    }
+
+    gfits_fwrite_Theader (g, &theader);
+    gfits_fwrite_table   (g, &table);
   }
   exit (0);
Index: /trunk/Ohana/src/misc/src/posscontour.c
===================================================================
--- /trunk/Ohana/src/misc/src/posscontour.c	(revision 7079)
+++ /trunk/Ohana/src/misc/src/posscontour.c	(revision 7080)
@@ -54,5 +54,5 @@
   }
 
-  status = fits_read_header (argv[1], &header);
+  status = gfits_read_header (argv[1], &header);
   if (!status) {
     fprintf (stderr, "error opening file %s\n", argv[1]);
@@ -60,49 +60,49 @@
   }
 
-  fits_scan (&header, "NAXIS1", "%lf", 1, &NX);
-  fits_scan (&header, "NAXIS2", "%lf", 1, &NY);
-  fits_scan (&header, "PLTRAH", "%lf", 1, &PLTRAH);
-  fits_scan (&header, "PLTRAM", "%lf", 1, &PLTRAM);
-  fits_scan (&header, "PLTRAS", "%lf", 1, &PLTRAS);
-  fits_scan (&header, "PLTDECD", "%lf", 1, &PLTDECD);
-  fits_scan (&header, "PLTDECM", "%lf", 1, &PLTDECM);
-  fits_scan (&header, "PLTDECS", "%lf", 1, &PLTDECS);
-  fits_scan (&header, "PLTDECSN", "%s", 1, &PLTDECSN);
-  fits_scan (&header, "CNPIX1", "%lf", 1, &CNPIX1);
-  fits_scan (&header, "CNPIX2", "%lf", 1, &CNPIX2);
-  fits_scan (&header, "XPIXELSZ", "%lf", 1, &XPIXELSZ);
-  fits_scan (&header, "YPIXELSZ", "%lf", 1, &YPIXELSZ);
-  fits_scan (&header, "PPO1", "%lf", 1, &PPO1);
-  fits_scan (&header, "PPO2", "%lf", 1, &PPO2);
-  fits_scan (&header, "PPO3", "%lf", 1, &PPO3);
-  fits_scan (&header, "PPO4", "%lf", 1, &PPO4);
-  fits_scan (&header, "PPO5", "%lf", 1, &PPO5);
-  fits_scan (&header, "PPO6", "%lf", 1, &PPO6);
-  fits_scan (&header, "AMDX1", "%lf", 1, &AMDX1);
-  fits_scan (&header, "AMDX2", "%lf", 1, &AMDX2);
-  fits_scan (&header, "AMDX3", "%lf", 1, &AMDX3);
-  fits_scan (&header, "AMDX4", "%lf", 1, &AMDX4);
-  fits_scan (&header, "AMDX5", "%lf", 1, &AMDX5);
-  fits_scan (&header, "AMDX6", "%lf", 1, &AMDX6);
-  fits_scan (&header, "AMDX7", "%lf", 1, &AMDX7);
-  fits_scan (&header, "AMDX8", "%lf", 1, &AMDX8);
-  fits_scan (&header, "AMDX9", "%lf", 1, &AMDX9);
-  fits_scan (&header, "AMDX10", "%lf", 1, &AMDX10);
-  fits_scan (&header, "AMDX11", "%lf", 1, &AMDX11);
-  fits_scan (&header, "AMDX12", "%lf", 1, &AMDX12);
-  fits_scan (&header, "AMDX13", "%lf", 1, &AMDX13);
-  fits_scan (&header, "AMDY1", "%lf", 1, &AMDY1);
-  fits_scan (&header, "AMDY2", "%lf", 1, &AMDY2);
-  fits_scan (&header, "AMDY3", "%lf", 1, &AMDY3);
-  fits_scan (&header, "AMDY4", "%lf", 1, &AMDY4);
-  fits_scan (&header, "AMDY5", "%lf", 1, &AMDY5);
-  fits_scan (&header, "AMDY6", "%lf", 1, &AMDY6);
-  fits_scan (&header, "AMDY7", "%lf", 1, &AMDY7);
-  fits_scan (&header, "AMDY8", "%lf", 1, &AMDY8);
-  fits_scan (&header, "AMDY9", "%lf", 1, &AMDY9);
-  fits_scan (&header, "AMDY10", "%lf", 1, &AMDY10);
-  fits_scan (&header, "AMDY11", "%lf", 1, &AMDY11);
-  fits_scan (&header, "AMDY12", "%lf", 1, &AMDY12);
-  fits_scan (&header, "AMDY13", "%lf", 1, &AMDY13);
+  gfits_scan (&header, "NAXIS1", "%lf", 1, &NX);
+  gfits_scan (&header, "NAXIS2", "%lf", 1, &NY);
+  gfits_scan (&header, "PLTRAH", "%lf", 1, &PLTRAH);
+  gfits_scan (&header, "PLTRAM", "%lf", 1, &PLTRAM);
+  gfits_scan (&header, "PLTRAS", "%lf", 1, &PLTRAS);
+  gfits_scan (&header, "PLTDECD", "%lf", 1, &PLTDECD);
+  gfits_scan (&header, "PLTDECM", "%lf", 1, &PLTDECM);
+  gfits_scan (&header, "PLTDECS", "%lf", 1, &PLTDECS);
+  gfits_scan (&header, "PLTDECSN", "%s", 1, &PLTDECSN);
+  gfits_scan (&header, "CNPIX1", "%lf", 1, &CNPIX1);
+  gfits_scan (&header, "CNPIX2", "%lf", 1, &CNPIX2);
+  gfits_scan (&header, "XPIXELSZ", "%lf", 1, &XPIXELSZ);
+  gfits_scan (&header, "YPIXELSZ", "%lf", 1, &YPIXELSZ);
+  gfits_scan (&header, "PPO1", "%lf", 1, &PPO1);
+  gfits_scan (&header, "PPO2", "%lf", 1, &PPO2);
+  gfits_scan (&header, "PPO3", "%lf", 1, &PPO3);
+  gfits_scan (&header, "PPO4", "%lf", 1, &PPO4);
+  gfits_scan (&header, "PPO5", "%lf", 1, &PPO5);
+  gfits_scan (&header, "PPO6", "%lf", 1, &PPO6);
+  gfits_scan (&header, "AMDX1", "%lf", 1, &AMDX1);
+  gfits_scan (&header, "AMDX2", "%lf", 1, &AMDX2);
+  gfits_scan (&header, "AMDX3", "%lf", 1, &AMDX3);
+  gfits_scan (&header, "AMDX4", "%lf", 1, &AMDX4);
+  gfits_scan (&header, "AMDX5", "%lf", 1, &AMDX5);
+  gfits_scan (&header, "AMDX6", "%lf", 1, &AMDX6);
+  gfits_scan (&header, "AMDX7", "%lf", 1, &AMDX7);
+  gfits_scan (&header, "AMDX8", "%lf", 1, &AMDX8);
+  gfits_scan (&header, "AMDX9", "%lf", 1, &AMDX9);
+  gfits_scan (&header, "AMDX10", "%lf", 1, &AMDX10);
+  gfits_scan (&header, "AMDX11", "%lf", 1, &AMDX11);
+  gfits_scan (&header, "AMDX12", "%lf", 1, &AMDX12);
+  gfits_scan (&header, "AMDX13", "%lf", 1, &AMDX13);
+  gfits_scan (&header, "AMDY1", "%lf", 1, &AMDY1);
+  gfits_scan (&header, "AMDY2", "%lf", 1, &AMDY2);
+  gfits_scan (&header, "AMDY3", "%lf", 1, &AMDY3);
+  gfits_scan (&header, "AMDY4", "%lf", 1, &AMDY4);
+  gfits_scan (&header, "AMDY5", "%lf", 1, &AMDY5);
+  gfits_scan (&header, "AMDY6", "%lf", 1, &AMDY6);
+  gfits_scan (&header, "AMDY7", "%lf", 1, &AMDY7);
+  gfits_scan (&header, "AMDY8", "%lf", 1, &AMDY8);
+  gfits_scan (&header, "AMDY9", "%lf", 1, &AMDY9);
+  gfits_scan (&header, "AMDY10", "%lf", 1, &AMDY10);
+  gfits_scan (&header, "AMDY11", "%lf", 1, &AMDY11);
+  gfits_scan (&header, "AMDY12", "%lf", 1, &AMDY12);
+  gfits_scan (&header, "AMDY13", "%lf", 1, &AMDY13);
   Ro = 15.0*(PLTRAH + PLTRAM/60.0 + PLTRAS/3600.0);
   Do = (PLTDECD + PLTDECM/60.0 + PLTDECS/3600.0);
@@ -119,5 +119,5 @@
   }
   
-  fits_free_header (&header);
+  gfits_free_header (&header);
   
 }
Index: /trunk/Ohana/src/misc/src/smaeder.c
===================================================================
--- /trunk/Ohana/src/misc/src/smaeder.c	(revision 7079)
+++ /trunk/Ohana/src/misc/src/smaeder.c	(revision 7080)
@@ -318,8 +318,8 @@
   age_h.extend = FALSE;
 
-  fits_create_header (&mass_h);
-  fits_create_matrix (&mass_h, &mass_i);
-  fits_create_header (&age_h);
-  fits_create_matrix (&age_h, &age_i);
+  gfits_create_header (&mass_h);
+  gfits_create_matrix (&mass_h, &mass_i);
+  gfits_create_header (&age_h);
+  gfits_create_matrix (&age_h, &age_i);
   fprintf (stderr, "created FITS buffers\n");
 
@@ -358,6 +358,6 @@
 	    m = (v - Vs) * dM / DV + Ms;
 	    a = (v - Vs) * dA / DV + As;
-	    fits_set_matrix_value (&mass_i, Sx, k, m);
-	    fits_set_matrix_value (&age_i, Sx, k, a);
+	    gfits_set_matrix_value (&mass_i, Sx, k, m);
+	    gfits_set_matrix_value (&age_i, Sx, k, a);
 	  }
 	}
@@ -408,6 +408,6 @@
 	    a = d * (a2 - a1) / (d + tmp) + a1;
 	    m = d * (m2 - m1) / (d + tmp) + m1;
-	    fits_set_matrix_value (&mass_i, Sx, k, m);
-	    fits_set_matrix_value (&age_i, Sx, k, a);
+	    gfits_set_matrix_value (&mass_i, Sx, k, m);
+	    gfits_set_matrix_value (&age_i, Sx, k, a);
 	  }
 	}
@@ -425,6 +425,6 @@
 	Sx = (newtrack[i].model[j].UV  - UV0) / dUV;
 	Sy = (newtrack[i].model[j].V   -  V0) / dV;
-	fits_set_matrix_value (&age_i, Sx, Sy, 1000.0);
-	fits_set_matrix_value (&mass_i, Sx, Sy, 1000.0);
+	gfits_set_matrix_value (&age_i, Sx, Sy, 1000.0);
+	gfits_set_matrix_value (&mass_i, Sx, Sy, 1000.0);
       }
     }
@@ -432,23 +432,23 @@
   */
 
-  fits_modify (&mass_h, "RA_O", "%lf", 1, UV0);
-  fits_modify (&mass_h, "RA_X", "%lf", 1, dUV);
-  fits_modify (&mass_h, "RA_Y", "%lf", 1, 0.0);
-  fits_modify (&mass_h, "DEC_O", "%lf", 1, V0);
-  fits_modify (&mass_h, "DEC_Y", "%lf", 1, dV);
-  fits_modify (&mass_h, "DEC_X", "%lf", 1, 0.0);
-
-  fits_write_header (massfile, &mass_h);
-  fits_write_matrix (massfile, &mass_i);
-
-  fits_modify (&age_h, "RA_O",  "%lf", 1, UV0);
-  fits_modify (&age_h, "RA_X",  "%lf", 1, dUV);
-  fits_modify (&age_h, "RA_Y",  "%lf", 1, 0.0);
-  fits_modify (&age_h, "DEC_O", "%lf", 1, V0);
-  fits_modify (&age_h, "DEC_Y", "%lf", 1, dV);
-  fits_modify (&age_h, "DEC_X", "%lf", 1, 0.0);
-
-  fits_write_header (agefile, &age_h);
-  fits_write_matrix (agefile, &age_i);
+  gfits_modify (&mass_h, "RA_O", "%lf", 1, UV0);
+  gfits_modify (&mass_h, "RA_X", "%lf", 1, dUV);
+  gfits_modify (&mass_h, "RA_Y", "%lf", 1, 0.0);
+  gfits_modify (&mass_h, "DEC_O", "%lf", 1, V0);
+  gfits_modify (&mass_h, "DEC_Y", "%lf", 1, dV);
+  gfits_modify (&mass_h, "DEC_X", "%lf", 1, 0.0);
+
+  gfits_write_header (massfile, &mass_h);
+  gfits_write_matrix (massfile, &mass_i);
+
+  gfits_modify (&age_h, "RA_O",  "%lf", 1, UV0);
+  gfits_modify (&age_h, "RA_X",  "%lf", 1, dUV);
+  gfits_modify (&age_h, "RA_Y",  "%lf", 1, 0.0);
+  gfits_modify (&age_h, "DEC_O", "%lf", 1, V0);
+  gfits_modify (&age_h, "DEC_Y", "%lf", 1, dV);
+  gfits_modify (&age_h, "DEC_X", "%lf", 1, 0.0);
+
+  gfits_write_header (agefile, &age_h);
+  gfits_write_matrix (agefile, &age_i);
 
 }
@@ -503,7 +503,7 @@
 	  v = k*dV + V0;
 	  m = (v - Vs) * dM / DV + Ms;
-	  fits_set_matrix_value (&mass_i, Sx, k, m);
+	  gfits_set_matrix_value (&mass_i, Sx, k, m);
 	  a = (v - Vs) * dA / DV + As;
-	  fits_set_matrix_value (&age_i, Sx, k, a);
+	  gfits_set_matrix_value (&age_i, Sx, k, a);
 	}
       }
Index: /trunk/Ohana/src/misc/src/striphead.c
===================================================================
--- /trunk/Ohana/src/misc/src/striphead.c	(revision 7079)
+++ /trunk/Ohana/src/misc/src/striphead.c	(revision 7080)
@@ -46,5 +46,5 @@
     }
     
-    if (!fits_read_header (argv[i], &header)) {
+    if (!gfits_read_header (argv[i], &header)) {
       fprintf (stderr, "failed to open file %s\n", argv[i]);
       continue;
@@ -55,10 +55,10 @@
     }
 
-    if (!fits_write_header (head, &header)) {
+    if (!gfits_write_header (head, &header)) {
       fprintf (stderr, "failed to write file %s\n", head);
       continue;
     }
     
-    fits_free_header (&header);
+    gfits_free_header (&header);
   }
 }
Index: /trunk/Ohana/src/misc/src/test.c
===================================================================
--- /trunk/Ohana/src/misc/src/test.c	(revision 7079)
+++ /trunk/Ohana/src/misc/src/test.c	(revision 7080)
@@ -56,9 +56,9 @@
   /* fprintf (stderr, "starting\n"); */
   while (fscanf (stdin, "%s", filename) != EOF) {
-    if (!fits_read_header (filename, &header)) continue;
+    if (!gfits_read_header (filename, &header)) continue;
     fprintf (stdout, "%s  ", filename);
     for (i = 1; i < argc; i++) {
       bzero (buffer, 1000);
-      fits_scan (&header, argv[i], "%s", 1, buffer);
+      gfits_scan (&header, argv[i], "%s", 1, buffer);
       stripwhite (buffer);
       fprintf (stdout, "%s  ", buffer);
@@ -66,5 +66,5 @@
     fprintf (stdout, "\n");
 
-    fits_free_header (&header);
+    gfits_free_header (&header);
 
   }
Index: /trunk/Ohana/src/misc/src/usmaeder.c
===================================================================
--- /trunk/Ohana/src/misc/src/usmaeder.c	(revision 7079)
+++ /trunk/Ohana/src/misc/src/usmaeder.c	(revision 7080)
@@ -47,13 +47,13 @@
   }
 
-  fits_read_header (argv[1], &mass_h);
-  fits_read_matrix (argv[1], &mass_i);
-  fits_read_header (argv[2], &age_h);
-  fits_read_matrix (argv[2], &age_i); 
+  gfits_read_header (argv[1], &mass_h);
+  gfits_read_matrix (argv[1], &mass_i);
+  gfits_read_header (argv[2], &age_h);
+  gfits_read_matrix (argv[2], &age_i); 
 
-  fits_scan (&mass_h, "RA_O",  "%lf", 1, &UV0);
-  fits_scan (&mass_h, "RA_X",  "%lf", 1, &DUV);
-  fits_scan (&mass_h, "DEC_O", "%lf", 1, &V0);
-  fits_scan (&mass_h, "DEC_Y", "%lf", 1, &DV);
+  gfits_scan (&mass_h, "RA_O",  "%lf", 1, &UV0);
+  gfits_scan (&mass_h, "RA_X",  "%lf", 1, &DUV);
+  gfits_scan (&mass_h, "DEC_O", "%lf", 1, &V0);
+  gfits_scan (&mass_h, "DEC_Y", "%lf", 1, &DV);
 
   V_h.bitpix = -32;
@@ -75,23 +75,23 @@
   UV_h.extend = FALSE;
 
-  fits_create_header (&V_h);
-  fits_create_matrix (&V_h, &V_i);
-  fits_create_header (&UV_h);
-  fits_create_matrix (&UV_h, &UV_i);
+  gfits_create_header (&V_h);
+  gfits_create_matrix (&V_h, &V_i);
+  gfits_create_header (&UV_h);
+  gfits_create_matrix (&UV_h, &UV_i);
   fprintf (stderr, "created FITS buffers\n");
 
-  fits_modify (&V_h, "RA_O", "%lf", 1, lAo);
-  fits_modify (&V_h, "RA_X", "%lf", 1, ldA);
-  fits_modify (&V_h, "RA_Y", "%lf", 1, 0.0);
-  fits_modify (&V_h, "DEC_O", "%lf", 1, lMo);
-  fits_modify (&V_h, "DEC_Y", "%lf", 1, ldM);
-  fits_modify (&V_h, "DEC_X", "%lf", 1, 0.0);
+  gfits_modify (&V_h, "RA_O", "%lf", 1, lAo);
+  gfits_modify (&V_h, "RA_X", "%lf", 1, ldA);
+  gfits_modify (&V_h, "RA_Y", "%lf", 1, 0.0);
+  gfits_modify (&V_h, "DEC_O", "%lf", 1, lMo);
+  gfits_modify (&V_h, "DEC_Y", "%lf", 1, ldM);
+  gfits_modify (&V_h, "DEC_X", "%lf", 1, 0.0);
 
-  fits_modify (&UV_h, "RA_O",  "%lf", 1, lAo);
-  fits_modify (&UV_h, "RA_X",  "%lf", 1, ldA);
-  fits_modify (&UV_h, "RA_Y",  "%lf", 1, 0.0);
-  fits_modify (&UV_h, "DEC_O", "%lf", 1, lMo);
-  fits_modify (&UV_h, "DEC_Y", "%lf", 1, ldM);
-  fits_modify (&UV_h, "DEC_X", "%lf", 1, 0.0);
+  gfits_modify (&UV_h, "RA_O",  "%lf", 1, lAo);
+  gfits_modify (&UV_h, "RA_X",  "%lf", 1, ldA);
+  gfits_modify (&UV_h, "RA_Y",  "%lf", 1, 0.0);
+  gfits_modify (&UV_h, "DEC_O", "%lf", 1, lMo);
+  gfits_modify (&UV_h, "DEC_Y", "%lf", 1, ldM);
+  gfits_modify (&UV_h, "DEC_X", "%lf", 1, 0.0);
 
   /* the value of 100 is hard wired in this and the others as a bad color */
@@ -99,6 +99,6 @@
   for (x = 0; x < NAGE; x++) {
     for (y = 0; y < NMASS; y++) {
-      fits_set_matrix_value (&UV_i, x, y, 100.0); 
-      fits_set_matrix_value (&V_i, x, y, 100.0); 
+      gfits_set_matrix_value (&UV_i, x, y, 100.0); 
+      gfits_set_matrix_value (&V_i, x, y, 100.0); 
     }
   }
@@ -107,6 +107,6 @@
     fprintf (stderr, ".");
     for (y = 0; y < mass_h.Naxis[1]; y++) {
-      mass = fits_get_matrix_value (&mass_i, x, y);
-      age = fits_get_matrix_value (&age_i, x, y); 
+      mass = gfits_get_matrix_value (&mass_i, x, y);
+      age = gfits_get_matrix_value (&age_i, x, y); 
       if (mass > 0) {
 	X = (log10(age) - lAo) / ldA;
@@ -116,6 +116,6 @@
 	  uv = x*DUV + UV0;
 	  v  = y*DV + V0;
-	  fits_set_matrix_value (&UV_i, X, Y, uv); 
-	  fits_set_matrix_value (&V_i, X, Y, v); 
+	  gfits_set_matrix_value (&UV_i, X, Y, uv); 
+	  gfits_set_matrix_value (&V_i, X, Y, v); 
 	}
       }
@@ -127,5 +127,5 @@
   for (x = 0; x < NAGE; x++) {
     for (y = 0; y < NMASS; y++) {
-      uv = fits_get_matrix_value (&UV_i, x, y);
+      uv = gfits_get_matrix_value (&UV_i, x, y);
       if (uv == 100.0) {
 	/* find neighbors up and down */
@@ -133,5 +133,5 @@
 	X0 = Y0 = -1;
 	for (X = x + 1; X < NAGE; X++) {
-	  if ((fits_get_matrix_value (&UV_i, X, y)) != 100.0) {
+	  if ((gfits_get_matrix_value (&UV_i, X, y)) != 100.0) {
 	    X1 = X;
 	    break;
@@ -139,5 +139,5 @@
 	}
 	for (X = x - 1; X >= 0; X--) {
-	  if ((fits_get_matrix_value (&UV_i, X, y)) != 100.0) {
+	  if ((gfits_get_matrix_value (&UV_i, X, y)) != 100.0) {
 	    X0 = X;
 	    break;
@@ -145,5 +145,5 @@
 	}
 	for (Y = y + 1; Y < NMASS; Y++) {
-	  if ((fits_get_matrix_value (&UV_i, x, Y)) != 100.0) {
+	  if ((gfits_get_matrix_value (&UV_i, x, Y)) != 100.0) {
 	    Y1 = Y;
 	    break;
@@ -151,5 +151,5 @@
 	}
 	for (Y = y - 1; Y >= 0; Y--) {
-	  if ((fits_get_matrix_value (&UV_i, x, Y)) != 100.0) {
+	  if ((gfits_get_matrix_value (&UV_i, x, Y)) != 100.0) {
 	    Y0 = Y;
 	    break;
@@ -158,22 +158,22 @@
 	slope_x = slope_y = 100000.0;
 	if ((X1 < NAGE) && (X0 > -1)) {
-	  slope_x = (fits_get_matrix_value (&UV_i, X1, y) - fits_get_matrix_value (&UV_i, X0, y)) / (X1 - X0);
+	  slope_x = (gfits_get_matrix_value (&UV_i, X1, y) - gfits_get_matrix_value (&UV_i, X0, y)) / (X1 - X0);
 	}
 	if ((Y1 < NMASS) && (Y0 > -1)) {
-	  slope_y = (fits_get_matrix_value (&UV_i, x, Y1) - fits_get_matrix_value (&UV_i, x, Y0)) / (Y1 - Y0);
+	  slope_y = (gfits_get_matrix_value (&UV_i, x, Y1) - gfits_get_matrix_value (&UV_i, x, Y0)) / (Y1 - Y0);
 	}
 	if ((fabs(slope_x) < fabs(slope_y)) && (slope_x != 100000.0)) {
-	  uv = (x - X0) * slope_x + fits_get_matrix_value (&UV_i, X0, y);
-	  tmp = (fits_get_matrix_value (&V_i, X1, y) - fits_get_matrix_value (&V_i, X0, y)) / (X1 - X0);
-	  v  = (x - X0) * tmp + fits_get_matrix_value (&V_i, X0, y);
-	  fits_set_matrix_value (&UV_i, x, y, uv); 
-	  fits_set_matrix_value (&V_i, x, y, v); 
+	  uv = (x - X0) * slope_x + gfits_get_matrix_value (&UV_i, X0, y);
+	  tmp = (gfits_get_matrix_value (&V_i, X1, y) - gfits_get_matrix_value (&V_i, X0, y)) / (X1 - X0);
+	  v  = (x - X0) * tmp + gfits_get_matrix_value (&V_i, X0, y);
+	  gfits_set_matrix_value (&UV_i, x, y, uv); 
+	  gfits_set_matrix_value (&V_i, x, y, v); 
 	}	  
 	if ((fabs(slope_x) >= fabs(slope_y)) && (slope_y != 100000.0)) {
-	  uv = (y - Y0) * slope_y + fits_get_matrix_value (&UV_i, x, Y0);
-	  tmp = (fits_get_matrix_value (&V_i, x, Y1) - fits_get_matrix_value (&V_i, x, Y0)) / (Y1 - Y0);
-	  v  = (y - Y0) * tmp + fits_get_matrix_value (&V_i, x, Y0);
-	  fits_set_matrix_value (&UV_i, x, y, uv); 
-	  fits_set_matrix_value (&V_i, x, y, v); 
+	  uv = (y - Y0) * slope_y + gfits_get_matrix_value (&UV_i, x, Y0);
+	  tmp = (gfits_get_matrix_value (&V_i, x, Y1) - gfits_get_matrix_value (&V_i, x, Y0)) / (Y1 - Y0);
+	  v  = (y - Y0) * tmp + gfits_get_matrix_value (&V_i, x, Y0);
+	  gfits_set_matrix_value (&UV_i, x, y, uv); 
+	  gfits_set_matrix_value (&V_i, x, y, v); 
 	}	  
       }
@@ -183,8 +183,8 @@
 
 
-  fits_write_header (argv[3], &V_h);
-  fits_write_matrix (argv[3], &V_i);
-  fits_write_header (argv[4], &UV_h);
-  fits_write_matrix (argv[4], &UV_i);
+  gfits_write_header (argv[3], &V_h);
+  gfits_write_matrix (argv[3], &V_i);
+  gfits_write_header (argv[4], &UV_h);
+  gfits_write_matrix (argv[4], &UV_i);
 
 }
Index: /trunk/Ohana/src/mosastro/doc/ChangeLog.txt
===================================================================
--- /trunk/Ohana/src/mosastro/doc/ChangeLog.txt	(revision 7079)
+++ /trunk/Ohana/src/mosastro/doc/ChangeLog.txt	(revision 7080)
@@ -1,2 +1,5 @@
+
+- mosastro 1.3
+  * converted to gfits APIs (forces libfits 1.6)
 
 - mosastro 1.2
Index: /trunk/Ohana/src/mosastro/src/LoadStars.c
===================================================================
--- /trunk/Ohana/src/mosastro/src/LoadStars.c	(revision 7079)
+++ /trunk/Ohana/src/mosastro/src/LoadStars.c	(revision 7080)
@@ -16,5 +16,5 @@
 
     /* load header */
-    if (!fits_read_header (chip[Nchip].file, &chip[Nchip].header)) {
+    if (!gfits_read_header (chip[Nchip].file, &chip[Nchip].header)) {
       fprintf (stderr, "ERROR: can't read header for %s\n", file[i]);
       free (chip[Nchip].file);
@@ -23,6 +23,6 @@
 
     /* get image dimensions */
-    fits_scan (&chip[Nchip].header, "NAXIS1",   "%d", 1, &chip[Nchip].NX);
-    fits_scan (&chip[Nchip].header, "NAXIS2",   "%d", 1, &chip[Nchip].NY);
+    gfits_scan (&chip[Nchip].header, "NAXIS1",   "%d", 1, &chip[Nchip].NX);
+    gfits_scan (&chip[Nchip].header, "NAXIS2",   "%d", 1, &chip[Nchip].NY);
 
     /* get astrometry information */
@@ -30,5 +30,5 @@
       fprintf (stderr, "ERROR: no astrometric solution in header\n");
       free (chip[Nchip].file);
-      fits_free_header (&chip[Nchip].header);
+      gfits_free_header (&chip[Nchip].header);
       continue;
     }
@@ -37,9 +37,9 @@
 
     itmp = 0;
-    fits_scan (&chip[Nchip].header, "NASTRO",   "%d", 1, &itmp);
+    gfits_scan (&chip[Nchip].header, "NASTRO",   "%d", 1, &itmp);
     if (itmp == 0) {
       fprintf (stderr, "ERROR: bad astrometric solution in header %s\n", file[i]);
       free (chip[Nchip].file);
-      fits_free_header (&chip[Nchip].header);
+      gfits_free_header (&chip[Nchip].header);
       continue;
     }
@@ -51,5 +51,5 @@
 
     extend = FALSE;
-    fits_scan (&chip[Nchip].header, "EXTEND",  "%t", 1, &extend);
+    gfits_scan (&chip[Nchip].header, "EXTEND",  "%t", 1, &extend);
     if (extend) {
       status = rfits (&chip[Nchip]);
@@ -60,5 +60,5 @@
       /* skip on failure */
       free (chip[Nchip].file);
-      fits_free_header (&chip[Nchip].header);
+      gfits_free_header (&chip[Nchip].header);
       continue;
     }
Index: /trunk/Ohana/src/mosastro/src/SaveResiduals.c
===================================================================
--- /trunk/Ohana/src/mosastro/src/SaveResiduals.c	(revision 7079)
+++ /trunk/Ohana/src/mosastro/src/SaveResiduals.c	(revision 7080)
@@ -11,44 +11,44 @@
   header[0].extend = TRUE;
   header[0].Naxes = 0;
-  fits_modify (header, "NAXIS",   "%d", 1, 0);
-  fits_modify (header, "EXTEND",  "%t", 1, TRUE);
-  fits_modify (header, "NEXTEND", "%d", 1, 1);
+  gfits_modify (header, "NAXIS",   "%d", 1, 0);
+  gfits_modify (header, "EXTEND",  "%t", 1, TRUE);
+  gfits_modify (header, "NEXTEND", "%d", 1, 1);
 
   /* add in some keywords to specify the datatype & software version? */
 
   /* create (empty) data matrix */
-  fits_create_matrix (header, &matrix);
+  gfits_create_matrix (header, &matrix);
     
   /* create bintable header */
-  fits_create_table_header (&theader, "BINTABLE", "MOSASTRO_RESIDUALS");
+  gfits_create_table_header (&theader, "BINTABLE", "MOSASTRO_RESIDUALS");
 
   /* define bintable layout */
-  fits_define_bintable_column (&theader, "D",    "R_RAW",      "ra (raw)",             "degrees",                        1.0, 0.0); 
-  fits_define_bintable_column (&theader, "D",    "D_RAW",      "dec (raw)",            "degrees",                        1.0, 0.0); 
-  fits_define_bintable_column (&theader, "E",    "P_RAW",      "P coord (raw)",        "pixels",                         1.0, 0.0); 
-  fits_define_bintable_column (&theader, "E",    "Q_RAW",      "Q coord (raw)",        "pixels",                         1.0, 0.0); 
-  fits_define_bintable_column (&theader, "E",    "L_RAW",      "L coord (raw)",        "pixels",                         1.0, 0.0); 
-  fits_define_bintable_column (&theader, "E",    "M_RAW",      "M coord (raw)",        "pixels",                         1.0, 0.0); 
-  fits_define_bintable_column (&theader, "E",    "X_RAW",      "X coord (raw)",        "pixels",                         1.0, 0.0); 
-  fits_define_bintable_column (&theader, "E",    "Y_RAW",      "Y coord (raw)",        "pixels",                         1.0, 0.0); 
+  gfits_define_bintable_column (&theader, "D",    "R_RAW",      "ra (raw)",             "degrees",                        1.0, 0.0); 
+  gfits_define_bintable_column (&theader, "D",    "D_RAW",      "dec (raw)",            "degrees",                        1.0, 0.0); 
+  gfits_define_bintable_column (&theader, "E",    "P_RAW",      "P coord (raw)",        "pixels",                         1.0, 0.0); 
+  gfits_define_bintable_column (&theader, "E",    "Q_RAW",      "Q coord (raw)",        "pixels",                         1.0, 0.0); 
+  gfits_define_bintable_column (&theader, "E",    "L_RAW",      "L coord (raw)",        "pixels",                         1.0, 0.0); 
+  gfits_define_bintable_column (&theader, "E",    "M_RAW",      "M coord (raw)",        "pixels",                         1.0, 0.0); 
+  gfits_define_bintable_column (&theader, "E",    "X_RAW",      "X coord (raw)",        "pixels",                         1.0, 0.0); 
+  gfits_define_bintable_column (&theader, "E",    "Y_RAW",      "Y coord (raw)",        "pixels",                         1.0, 0.0); 
 
-  fits_define_bintable_column (&theader, "D",    "R_REF",      "ra (ref)",             "degrees",                        1.0, 0.0); 
-  fits_define_bintable_column (&theader, "D",    "D_REF",      "dec (ref)",            "degrees",                        1.0, 0.0); 
-  fits_define_bintable_column (&theader, "E",    "P_REF",      "P coord (ref)",        "pixels",                         1.0, 0.0); 
-  fits_define_bintable_column (&theader, "E",    "Q_REF",      "Q coord (ref)",        "pixels",                         1.0, 0.0); 
-  fits_define_bintable_column (&theader, "E",    "L_REF",      "L coord (ref)",        "pixels",                         1.0, 0.0); 
-  fits_define_bintable_column (&theader, "E",    "M_REF",      "M coord (ref)",        "pixels",                         1.0, 0.0); 
-  fits_define_bintable_column (&theader, "E",    "X_REF",      "X coord (ref)",        "pixels",                         1.0, 0.0); 
-  fits_define_bintable_column (&theader, "E",    "Y_REF",      "Y coord (ref)",        "pixels",                         1.0, 0.0); 
+  gfits_define_bintable_column (&theader, "D",    "R_REF",      "ra (ref)",             "degrees",                        1.0, 0.0); 
+  gfits_define_bintable_column (&theader, "D",    "D_REF",      "dec (ref)",            "degrees",                        1.0, 0.0); 
+  gfits_define_bintable_column (&theader, "E",    "P_REF",      "P coord (ref)",        "pixels",                         1.0, 0.0); 
+  gfits_define_bintable_column (&theader, "E",    "Q_REF",      "Q coord (ref)",        "pixels",                         1.0, 0.0); 
+  gfits_define_bintable_column (&theader, "E",    "L_REF",      "L coord (ref)",        "pixels",                         1.0, 0.0); 
+  gfits_define_bintable_column (&theader, "E",    "M_REF",      "M coord (ref)",        "pixels",                         1.0, 0.0); 
+  gfits_define_bintable_column (&theader, "E",    "X_REF",      "X coord (ref)",        "pixels",                         1.0, 0.0); 
+  gfits_define_bintable_column (&theader, "E",    "Y_REF",      "Y coord (ref)",        "pixels",                         1.0, 0.0); 
 
-  fits_define_bintable_column (&theader, "E",    "MAG_REF",    "catalog mag",          "pixels",                         1.0, 0.0); 
-  fits_define_bintable_column (&theader, "E",    "DMAG_REF",   "catalog mag err",      "pixels",                         1.0, 0.0); 
-  fits_define_bintable_column (&theader, "E",    "MAG_RAW",    "instrum mag",          "pixels",                         1.0, 0.0); 
-  fits_define_bintable_column (&theader, "E",    "DMAG_RAW",   "instrum mag err",      "pixels",                         1.0, 0.0); 
-  fits_define_bintable_column (&theader, "B",    "MASK",       "excluded from fit?",   "",                               1.0, 0.0);
-  fits_define_bintable_column (&theader, "7A",   "DUMMY",      "padding",              "",                               1.0, 0.0);
+  gfits_define_bintable_column (&theader, "E",    "MAG_REF",    "catalog mag",          "pixels",                         1.0, 0.0); 
+  gfits_define_bintable_column (&theader, "E",    "DMAG_REF",   "catalog mag err",      "pixels",                         1.0, 0.0); 
+  gfits_define_bintable_column (&theader, "E",    "MAG_RAW",    "instrum mag",          "pixels",                         1.0, 0.0); 
+  gfits_define_bintable_column (&theader, "E",    "DMAG_RAW",   "instrum mag err",      "pixels",                         1.0, 0.0); 
+  gfits_define_bintable_column (&theader, "B",    "MASK",       "excluded from fit?",   "",                               1.0, 0.0);
+  gfits_define_bintable_column (&theader, "7A",   "DUMMY",      "padding",              "",                               1.0, 0.0);
 
   /* create table, add data values */
-  fits_create_table (&theader, &table);
+  gfits_create_table (&theader, &table);
 
   /* create output data block and assign */
@@ -87,10 +87,10 @@
   /* fix byte order issues */
   ConvertMatch (match, sizeof (MatchData), Nmatch);
-  fits_add_rows (&table, (char *) match, Nmatch, sizeof (MatchData));
+  gfits_add_rows (&table, (char *) match, Nmatch, sizeof (MatchData));
 
-  fits_fwrite_header  (f, header);
-  fits_fwrite_matrix  (f, &matrix);
-  fits_fwrite_Theader (f, &theader);
-  fits_fwrite_table   (f, &table);
+  gfits_fwrite_header  (f, header);
+  gfits_fwrite_matrix  (f, &matrix);
+  gfits_fwrite_Theader (f, &theader);
+  gfits_fwrite_table   (f, &table);
   fclose (f);
   return;
Index: /trunk/Ohana/src/mosastro/src/field.c
===================================================================
--- /trunk/Ohana/src/mosastro/src/field.c	(revision 7079)
+++ /trunk/Ohana/src/mosastro/src/field.c	(revision 7080)
@@ -125,5 +125,5 @@
 
   /* load header */
-  if (!fits_read_header (filename, &header)) {
+  if (!gfits_read_header (filename, &header)) {
     fprintf (stderr, "ERROR: can't read header for %s\n", filename);
     exit (1);
Index: /trunk/Ohana/src/mosastro/src/mkheader.c
===================================================================
--- /trunk/Ohana/src/mosastro/src/mkheader.c	(revision 7079)
+++ /trunk/Ohana/src/mosastro/src/mkheader.c	(revision 7080)
@@ -16,16 +16,16 @@
   header[0].Naxis[1] = Ny;
 
-  fits_create_header (header);
+  gfits_create_header (header);
 
-  fits_modify (header, "NSTARS",   "%d", 1, Nstars);
-  fits_modify (header, "PHOTCODE", "%s", 1, "STD.R");
-  fits_modify (header, "DATE-OBS", "%s", 1, "2004-04-22");
-  fits_modify (header, "UTC-OBS",  "%s", 1, "14:27:45.30");
-  fits_modify (header, "ZERO_PT", "%lf", 1, 25.0);
-  fits_modify (header, "EXPTIME", "%lf", 1, 2.0);
+  gfits_modify (header, "NSTARS",   "%d", 1, Nstars);
+  gfits_modify (header, "PHOTCODE", "%s", 1, "STD.R");
+  gfits_modify (header, "DATE-OBS", "%s", 1, "2004-04-22");
+  gfits_modify (header, "UTC-OBS",  "%s", 1, "14:27:45.30");
+  gfits_modify (header, "ZERO_PT", "%lf", 1, 25.0);
+  gfits_modify (header, "EXPTIME", "%lf", 1, 2.0);
 
   PutCoords (coords, header);
 
-  fits_modify (header, "NASTRO",   "%d", 1, 1); 
+  gfits_modify (header, "NASTRO",   "%d", 1, 1); 
 
   return (header);
Index: /trunk/Ohana/src/mosastro/src/mkmosaic.c
===================================================================
--- /trunk/Ohana/src/mosastro/src/mkmosaic.c	(revision 7079)
+++ /trunk/Ohana/src/mosastro/src/mkmosaic.c	(revision 7080)
@@ -24,33 +24,33 @@
   header[0].Naxis[1] = Ymax - Ymin;
 
-  fits_create_header (header);
+  gfits_create_header (header);
 
   /* calculate image-wide astrometry scatter */
   Cerror   = GetScatter (&Nastro, &DL, &DM, FALSE);
   Cprecise = Cerror / sqrt (Nastro);
-  fits_modify (header, "CERROR",   "%lf", 1, Cerror);
-  fits_modify (header, "CERR_L",   "%lf", 1, DL*3600.0 * field.project.cdelt1);
-  fits_modify (header, "CERR_M",   "%lf", 1, DM*3600.0 * field.project.cdelt1);
+  gfits_modify (header, "CERROR",   "%lf", 1, Cerror);
+  gfits_modify (header, "CERR_L",   "%lf", 1, DL*3600.0 * field.project.cdelt1);
+  gfits_modify (header, "CERR_M",   "%lf", 1, DM*3600.0 * field.project.cdelt1);
 
-  fits_modify (header, "CPRECISE", "%lf", 1, Cprecise);
-  fits_modify (header, "NSTARS",   "%d",  1, 0);  /*** modify addstar to allow NSTARS = 0 ***/
-  fits_modify (header, "NASTRO",   "%d",  1, Nastro);
+  gfits_modify (header, "CPRECISE", "%lf", 1, Cprecise);
+  gfits_modify (header, "NSTARS",   "%d",  1, 0);  /*** modify addstar to allow NSTARS = 0 ***/
+  gfits_modify (header, "NASTRO",   "%d",  1, Nastro);
 
   GetScatter (&Nastro, &DL, &DM, TRUE);
-  fits_modify (header, "CERR_LB",  "%lf", 1, DL*3600.0 * field.project.cdelt1);
-  fits_modify (header, "CERR_MB",  "%lf", 1, DM*3600.0 * field.project.cdelt1);
-  fits_modify (header, "NBRIGHT",  "%d",  1, Nastro);
+  gfits_modify (header, "CERR_LB",  "%lf", 1, DL*3600.0 * field.project.cdelt1);
+  gfits_modify (header, "CERR_MB",  "%lf", 1, DM*3600.0 * field.project.cdelt1);
+  gfits_modify (header, "NBRIGHT",  "%d",  1, Nastro);
 
   fprintf (stderr, "bright: %f %f %d\n", DL*3600.0 * field.project.cdelt1, DM*3600.0 * field.project.cdelt1, Nastro);
 
   /* make a better selection for the mosaic photcode? */
-  fits_scan (&chip[0].header, "PHOTCODE", "%s", 1, line);
-  fits_modify (header, "PHOTCODE", "%s", 1, line);
+  gfits_scan (&chip[0].header, "PHOTCODE", "%s", 1, line);
+  gfits_modify (header, "PHOTCODE", "%s", 1, line);
 
-  fits_scan (&chip[0].header, "ZERO_PT", "%lf", 1, &tmp);
-  fits_modify (header, "ZERO_PT", "%lf", 1, tmp);
+  gfits_scan (&chip[0].header, "ZERO_PT", "%lf", 1, &tmp);
+  gfits_modify (header, "ZERO_PT", "%lf", 1, tmp);
 
-  fits_scan (&chip[0].header, ExptimeKeyword,  "%lf", 1, &tmp);
-  fits_modify (header, ExptimeKeyword,  "%lf", 1, tmp);
+  gfits_scan (&chip[0].header, ExptimeKeyword,  "%lf", 1, &tmp);
+  gfits_modify (header, ExptimeKeyword,  "%lf", 1, tmp);
 
   /* insert time data from chip[0] */
@@ -58,6 +58,6 @@
   if (strcasecmp (JDKeyword, "NONE")) {
     uppercase (JDKeyword);
-    fits_scan (&chip[0].header, JDKeyword, "%lf", 1, &tmp);
-    fits_modify (header, JDKeyword, "%lf", 1, tmp);
+    gfits_scan (&chip[0].header, JDKeyword, "%lf", 1, &tmp);
+    gfits_modify (header, JDKeyword, "%lf", 1, tmp);
     goto got_time;
   }
@@ -66,6 +66,6 @@
   if (strcasecmp (MJDKeyword, "NONE")) {
     uppercase (MJDKeyword);
-    fits_scan (&chip[0].header, MJDKeyword, "%lf", 1, &tmp);
-    fits_modify (header, MJDKeyword, "%lf", 1, tmp);
+    gfits_scan (&chip[0].header, MJDKeyword, "%lf", 1, &tmp);
+    gfits_modify (header, MJDKeyword, "%lf", 1, tmp);
     goto got_time;
   }
@@ -74,9 +74,9 @@
   if (strcasecmp (UTKeyword, "NONE") && strcasecmp (DateKeyword, "NONE")) {
     uppercase (UTKeyword);
-    fits_scan (&chip[0].header, UTKeyword, "%s", 1, line);
-    fits_modify (header, UTKeyword, "%s", 1, line);
+    gfits_scan (&chip[0].header, UTKeyword, "%s", 1, line);
+    gfits_modify (header, UTKeyword, "%s", 1, line);
     uppercase (DateKeyword);
-    fits_scan (&chip[0].header, DateKeyword, "%s",  1, line);
-    fits_modify (header, DateKeyword, "%s", 1, line);
+    gfits_scan (&chip[0].header, DateKeyword, "%s",  1, line);
+    gfits_modify (header, DateKeyword, "%s", 1, line);
     goto got_time;
   }
Index: /trunk/Ohana/src/mosastro/src/mkobs.c
===================================================================
--- /trunk/Ohana/src/mosastro/src/mkobs.c	(revision 7079)
+++ /trunk/Ohana/src/mosastro/src/mkobs.c	(revision 7080)
@@ -134,5 +134,5 @@
       sprintf (filename, "%s.%02d.fits", OUTPUT, Nchip);
       wstars (filename, stars, Nstars, header);
-      fits_free_header (header);
+      gfits_free_header (header);
       free (stars);
       Nchip ++;
Index: /trunk/Ohana/src/mosastro/src/mkstandards.c
===================================================================
--- /trunk/Ohana/src/mosastro/src/mkstandards.c	(revision 7079)
+++ /trunk/Ohana/src/mosastro/src/mkstandards.c	(revision 7080)
@@ -94,5 +94,5 @@
   header = mkheader (2*dX, 2*dY, Nstars, &coords);
   wstars (argv[4], stars, Nstars, header);
-  fits_free_header (header);
+  gfits_free_header (header);
 
   exit (0);
Index: /trunk/Ohana/src/mosastro/src/parse_time.c
===================================================================
--- /trunk/Ohana/src/mosastro/src/parse_time.c	(revision 7079)
+++ /trunk/Ohana/src/mosastro/src/parse_time.c	(revision 7080)
@@ -15,5 +15,5 @@
   if (strcasecmp (JDKeyword, "NONE")) {
     uppercase (JDKeyword);
-    fits_scan (header, JDKeyword, "%lf", 1, &jd);
+    gfits_scan (header, JDKeyword, "%lf", 1, &jd);
     Nsec = (jd - 2440587.5)*86400;
     return (Nsec);
@@ -23,5 +23,5 @@
   if (strcasecmp (MJDKeyword, "NONE")) {
     uppercase (MJDKeyword);
-    fits_scan (header, MJDKeyword, "%lf", 1, &jd);
+    gfits_scan (header, MJDKeyword, "%lf", 1, &jd);
     Nsec = (jd - 40587.0)*86400;
     return (Nsec);
@@ -30,5 +30,5 @@
   /* get UT and DATE */
   uppercase (UTKeyword);
-  fits_scan (header, UTKeyword, "%s", 1, line);
+  gfits_scan (header, UTKeyword, "%s", 1, line);
   /* remove ':' characters */
   for (c = strchr (line, 0x3a); c != (char *) NULL; c = strchr (line, 0x3a)) { *c = ' '; }
@@ -69,5 +69,5 @@
   /* parse date entry */
   uppercase (DateKeyword);
-  fits_scan (header, DateKeyword, "%s",  1, line);
+  gfits_scan (header, DateKeyword, "%s",  1, line);
   /* remove possible separators: ':', '/' '.', '-' */
   for (c = strchr (line, 0x3a); c != (char *) NULL; c = strchr (line, 0x3a)) { *c = ' '; }
Index: /trunk/Ohana/src/mosastro/src/rfits.c
===================================================================
--- /trunk/Ohana/src/mosastro/src/rfits.c	(revision 7079)
+++ /trunk/Ohana/src/mosastro/src/rfits.c	(revision 7080)
@@ -18,18 +18,18 @@
   /* init & load in table data */
   table.header   = &mychip[0].theader;
-  if (!fits_fread_matrix (f, &mychip[0].matrix, &mychip[0].header)) {
+  if (!gfits_fread_matrix (f, &mychip[0].matrix, &mychip[0].header)) {
     fprintf (stderr, "error reading file\n");
     fclose (f);
     return (FALSE);
   }
-  if (!fits_fread_ftable (f, &table, "SMPFILE")) {
+  if (!gfits_fread_ftable (f, &table, "SMPFILE")) {
     fprintf (stderr, "error reading file\n");
-    fits_free_matrix (&mychip[0].matrix);
+    gfits_free_matrix (&mychip[0].matrix);
     fclose (f);
     return (FALSE);
   }
 
-  stars = fits_table_get_SMPData (&table, &mychip[0].Nstars, NULL);
-  fits_scan (table.header, "NAXIS1", "%d", 1, &Nx);
+  stars = gfits_table_get_SMPData (&table, &mychip[0].Nstars, NULL);
+  gfits_scan (table.header, "NAXIS1", "%d", 1, &Nx);
 
   /* save raw data for output */
@@ -40,6 +40,6 @@
   if (mychip[0].Nstars < 5) { 
     fprintf (stderr, "Too few stars for reliable solution, only %d\n", mychip[0].Nstars);
-    fits_free_matrix (&mychip[0].matrix);
-    fits_free_table (&table);
+    gfits_free_matrix (&mychip[0].matrix);
+    gfits_free_table (&table);
     fclose (f);
     return (FALSE);
Index: /trunk/Ohana/src/mosastro/src/rtext.c
===================================================================
--- /trunk/Ohana/src/mosastro/src/rtext.c	(revision 7079)
+++ /trunk/Ohana/src/mosastro/src/rtext.c	(revision 7080)
@@ -15,5 +15,5 @@
 
   /* find expected number of stars */
-  fits_scan (&mychip[0].header, "NSTARS", "%d", 1, &mychip[0].Nstars);
+  gfits_scan (&mychip[0].header, "NSTARS", "%d", 1, &mychip[0].Nstars);
   if (mychip[0].Nstars == 0) {
     fprintf (stderr, "ERROR: can't get NSTARS from header for %s\n", mychip[0].file);
Index: /trunk/Ohana/src/mosastro/src/wfits.c
===================================================================
--- /trunk/Ohana/src/mosastro/src/wfits.c	(revision 7079)
+++ /trunk/Ohana/src/mosastro/src/wfits.c	(revision 7080)
@@ -9,20 +9,20 @@
   header[0].extend = TRUE;
   header[0].Naxes = 0;
-  fits_modify (header, "NAXIS",   "%d", 1, 0);
-  fits_modify (header, "EXTEND",  "%t", 1, TRUE);
-  fits_modify (header, "NEXTEND", "%d", 1, 1);
+  gfits_modify (header, "NAXIS",   "%d", 1, 0);
+  gfits_modify (header, "EXTEND",  "%t", 1, TRUE);
+  gfits_modify (header, "NEXTEND", "%d", 1, 1);
 
   /* add in some keywords to specify the datatype & software version? */
 
   /* create (empty) data matrix */
-  fits_create_matrix (header, &matrix);
+  gfits_create_matrix (header, &matrix);
     
   table.header = &theader;
-  fits_table_set_SMPData (&table, stars, Nstars);
+  gfits_table_set_SMPData (&table, stars, Nstars);
 
-  fits_write_header  (filename, header);
-  fits_write_matrix  (filename, &matrix);
-  fits_write_Theader (filename, &theader);
-  fits_write_table   (filename, &table);
+  gfits_write_header  (filename, header);
+  gfits_write_matrix  (filename, &matrix);
+  gfits_write_Theader (filename, &theader);
+  gfits_write_table   (filename, &table);
   return;
 }
Index: /trunk/Ohana/src/opihi/cmd.astro/cgrid.c
===================================================================
--- /trunk/Ohana/src/opihi/cmd.astro/cgrid.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/cmd.astro/cgrid.c	(revision 7080)
@@ -16,13 +16,12 @@
   int NorthPole, SouthPole, N, OnPic, LOnPic, status, NELEMENTS, First;
   Graphdata graphmode;
-  int Ngraph;
-
-  Ngraph = 0;
-  if (!GetGraph (&graphmode, NULL, &Ngraph)) return (FALSE);
+
+  if (!style_args (&graphmode, &argc, argv, 0)) return FALSE;
 
   if (argc != 1) {
-    fprintf (stderr, "USAGE: cgrid\n");
+    fprintf (stderr, "USAGE: cgrid [style]\n");
     return (FALSE);
   }
+  SetGraph (graphmode);
 
   /* are we plotting one of the poles? */
Index: /trunk/Ohana/src/opihi/cmd.astro/cplot.c
===================================================================
--- /trunk/Ohana/src/opihi/cmd.astro/cplot.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/cmd.astro/cplot.c	(revision 7080)
@@ -3,16 +3,16 @@
 int cplot (int argc, char **argv) {
   
-  int i, Npts, Ngraph;
+  int i, Npts;
   float *x, *y, *r, *d, Rmin, Rmax;
   Vector Xvec, Yvec, *xvec, *yvec;
   Graphdata graphmode;
 
+  if (!style_args (&graphmode, &argc, argv, 0)) return FALSE;
+
   if (argc != 3) {
-    fprintf (stderr, "USAGE: cplot <ra> <dec>\n");
+    fprintf (stderr, "USAGE: cplot <ra> <dec> [style]\n");
     return (FALSE);
   }
-  
-  Ngraph = 0;
-  if (!GetGraph (&graphmode, NULL, &Ngraph)) return (FALSE);
+  SetGraph (graphmode);
 
   Rmin = graphmode.coords.crval1 - 182.0;
@@ -45,5 +45,4 @@
   }
   
-  
   Npts = Xvec.Nelements;
   graphmode.etype = 0;
@@ -56,5 +55,4 @@
     
   return (TRUE);
-
 }
 
Index: /trunk/Ohana/src/opihi/cmd.astro/czplot.c
===================================================================
--- /trunk/Ohana/src/opihi/cmd.astro/czplot.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/cmd.astro/czplot.c	(revision 7080)
@@ -3,5 +3,5 @@
 int czplot (int argc, char **argv) {
   
-  int i, N, Npts, Ngraph;
+  int i, Npts;
   double min, range, Rmin, Rmax;
   float *in, *out, *r, *d, *x, *y;
@@ -9,11 +9,5 @@
   Graphdata graphmode;
 
-  Ngraph = -1;
-  if ((N = get_argument (argc, argv, "-n"))) {
-    remove_argument (N, &argc, argv);
-    Ngraph = atof (argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if (!GetGraph (&graphmode, NULL, &Ngraph)) return (FALSE);
+  if (!style_args (&graphmode, &argc, argv, 0)) return FALSE;
 
   if (argc != 6) {
@@ -21,4 +15,5 @@
     return (FALSE);
   }
+  SetGraph (graphmode);
 
   min = atof(argv[4]);
Index: /trunk/Ohana/src/opihi/cmd.astro/getvel.c
===================================================================
--- /trunk/Ohana/src/opihi/cmd.astro/getvel.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/cmd.astro/getvel.c	(revision 7080)
@@ -33,11 +33,11 @@
 
   /* we expect the input image to have units of velocity, lattitude, and longitude */
-  fits_scan (&buf[0].header, "CRVAL1", "%lf", 1, &Vo);
-  fits_scan (&buf[0].header, "CDELT1", "%lf", 1, &dV);
-  fits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &xo);
-  fits_scan (&buf[0].header, "CRVAL2", "%lf", 1, &Bo);
-  fits_scan (&buf[0].header, "CDELT2", "%lf", 1, &dB);
-  fits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &yo);
-  fits_scan (&buf[0].header, "CRVAL3", "%lf", 1, &L);
+  gfits_scan (&buf[0].header, "CRVAL1", "%lf", 1, &Vo);
+  gfits_scan (&buf[0].header, "CDELT1", "%lf", 1, &dV);
+  gfits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &xo);
+  gfits_scan (&buf[0].header, "CRVAL2", "%lf", 1, &Bo);
+  gfits_scan (&buf[0].header, "CDELT2", "%lf", 1, &dB);
+  gfits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &yo);
+  gfits_scan (&buf[0].header, "CRVAL3", "%lf", 1, &L);
   Vo *= 0.001;
   dV *= 0.001;
Index: /trunk/Ohana/src/opihi/cmd.astro/medianmap.c
===================================================================
--- /trunk/Ohana/src/opihi/cmd.astro/medianmap.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/cmd.astro/medianmap.c	(revision 7080)
@@ -47,16 +47,16 @@
   /* duplicate the (in) buffer to the (out), with different size */
   /* this should probably be a function in misc */
-  fits_free_matrix (&out[0].matrix);
-  fits_free_header (&out[0].header);
+  gfits_free_matrix (&out[0].matrix);
+  gfits_free_header (&out[0].header);
   out[0].bitpix = in[0].bitpix;
   out[0].unsign = in[0].unsign;
   out[0].bscale = in[0].bscale;
   out[0].bzero  = in[0].bzero;
-  fits_copy_header (&in[0].header, &out[0].header);
-  fits_modify (&out[0].header, "NAXIS1", "%d", 1, Nx);
-  fits_modify (&out[0].header, "NAXIS2", "%d", 1, Ny);
+  gfits_copy_header (&in[0].header, &out[0].header);
+  gfits_modify (&out[0].header, "NAXIS1", "%d", 1, Nx);
+  gfits_modify (&out[0].header, "NAXIS2", "%d", 1, Ny);
   out[0].header.Naxis[0] = Nx;
   out[0].header.Naxis[1] = Ny;
-  fits_create_matrix (&out[0].header, &out[0].matrix);
+  gfits_create_matrix (&out[0].header, &out[0].matrix);
 
   In = (float *) in[0].matrix.buffer;
Index: /trunk/Ohana/src/opihi/cmd.astro/polar.c
===================================================================
--- /trunk/Ohana/src/opihi/cmd.astro/polar.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/cmd.astro/polar.c	(revision 7080)
@@ -32,18 +32,18 @@
 
   /* we expect the output image to have units of longitude and distance */
-  fits_scan (&in[0].header, "CRVAL1", "%lf", 1, &Lo);
-  fits_scan (&in[0].header, "CDELT1", "%lf", 1, &dL);
-  fits_scan (&in[0].header, "CRPIX1", "%lf", 1, &xo);
-  fits_scan (&in[0].header, "CRVAL2", "%lf", 1, &Do);
-  fits_scan (&in[0].header, "CDELT2", "%lf", 1, &dD);
-  fits_scan (&in[0].header, "CRPIX2", "%lf", 1, &yo);
+  gfits_scan (&in[0].header, "CRVAL1", "%lf", 1, &Lo);
+  gfits_scan (&in[0].header, "CDELT1", "%lf", 1, &dL);
+  gfits_scan (&in[0].header, "CRPIX1", "%lf", 1, &xo);
+  gfits_scan (&in[0].header, "CRVAL2", "%lf", 1, &Do);
+  gfits_scan (&in[0].header, "CDELT2", "%lf", 1, &dD);
+  gfits_scan (&in[0].header, "CRPIX2", "%lf", 1, &yo);
 
   /* we expect the input image to have units of distance X and Y */
-  fits_scan (&out[0].header, "CRVAL1", "%lf", 1, &Mo);
-  fits_scan (&out[0].header, "CDELT1", "%lf", 1, &dM);
-  fits_scan (&out[0].header, "CRPIX1", "%lf", 1, &Xo);
-  fits_scan (&out[0].header, "CRVAL2", "%lf", 1, &No);
-  fits_scan (&out[0].header, "CDELT2", "%lf", 1, &dN);
-  fits_scan (&out[0].header, "CRPIX2", "%lf", 1, &Yo);
+  gfits_scan (&out[0].header, "CRVAL1", "%lf", 1, &Mo);
+  gfits_scan (&out[0].header, "CDELT1", "%lf", 1, &dM);
+  gfits_scan (&out[0].header, "CRPIX1", "%lf", 1, &Xo);
+  gfits_scan (&out[0].header, "CRVAL2", "%lf", 1, &No);
+  gfits_scan (&out[0].header, "CDELT2", "%lf", 1, &dN);
+  gfits_scan (&out[0].header, "CRPIX2", "%lf", 1, &Yo);
 
   Vin  = (float *)in[0].matrix.buffer;
Index: /trunk/Ohana/src/opihi/cmd.astro/rotcurve.c
===================================================================
--- /trunk/Ohana/src/opihi/cmd.astro/rotcurve.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/cmd.astro/rotcurve.c	(revision 7080)
@@ -52,21 +52,21 @@
 
   /* we expect the input image to have units of velocity, lattitude, and longitude */
-  fits_scan (&in[0].header, "CRVAL1", "%lf", 1, &Vo);
-  fits_scan (&in[0].header, "CDELT1", "%lf", 1, &dV);
-  fits_scan (&in[0].header, "CRPIX1", "%lf", 1, &xo);
-  fits_scan (&in[0].header, "CRVAL2", "%lf", 1, &Bo);
-  fits_scan (&in[0].header, "CDELT2", "%lf", 1, &dB);
-  fits_scan (&in[0].header, "CRPIX2", "%lf", 1, &yo);
-  fits_scan (&in[0].header, "CRVAL3", "%lf", 1, &L);
+  gfits_scan (&in[0].header, "CRVAL1", "%lf", 1, &Vo);
+  gfits_scan (&in[0].header, "CDELT1", "%lf", 1, &dV);
+  gfits_scan (&in[0].header, "CRPIX1", "%lf", 1, &xo);
+  gfits_scan (&in[0].header, "CRVAL2", "%lf", 1, &Bo);
+  gfits_scan (&in[0].header, "CDELT2", "%lf", 1, &dB);
+  gfits_scan (&in[0].header, "CRPIX2", "%lf", 1, &yo);
+  gfits_scan (&in[0].header, "CRVAL3", "%lf", 1, &L);
   Vo *= 0.001;
   dV *= 0.001;
 
   /* we expect the output image to have units of longitude and distance */
-  fits_scan (&out[0].header, "CRVAL1", "%lf", 1, &Lo);
-  fits_scan (&out[0].header, "CDELT1", "%lf", 1, &dL);
-  fits_scan (&out[0].header, "CRPIX1", "%lf", 1, &Xo);
-  fits_scan (&out[0].header, "CRVAL2", "%lf", 1, &Do);
-  fits_scan (&out[0].header, "CDELT2", "%lf", 1, &dD);
-  fits_scan (&out[0].header, "CRPIX2", "%lf", 1, &Yo);
+  gfits_scan (&out[0].header, "CRVAL1", "%lf", 1, &Lo);
+  gfits_scan (&out[0].header, "CDELT1", "%lf", 1, &dL);
+  gfits_scan (&out[0].header, "CRPIX1", "%lf", 1, &Xo);
+  gfits_scan (&out[0].header, "CRVAL2", "%lf", 1, &Do);
+  gfits_scan (&out[0].header, "CDELT2", "%lf", 1, &dD);
+  gfits_scan (&out[0].header, "CRPIX2", "%lf", 1, &Yo);
 
   while (L >= 360) {L -= 360.0;}
Index: /trunk/Ohana/src/opihi/cmd.data/create.c
===================================================================
--- /trunk/Ohana/src/opihi/cmd.data/create.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/cmd.data/create.c	(revision 7080)
@@ -55,6 +55,6 @@
 
   if ((buf = SelectBuffer (argv[1], ANYBUFFER, TRUE)) == NULL) return (FALSE);
-  fits_free_matrix (&buf[0].matrix);
-  fits_free_header (&buf[0].header);
+  gfits_free_matrix (&buf[0].matrix);
+  gfits_free_header (&buf[0].header);
 
   buf[0].bitpix = 16;
@@ -72,6 +72,6 @@
   buf[0].header.Naxis[1] = atoi (argv[3]);
 
-  fits_create_header (&buf[0].header);
-  fits_create_matrix (&buf[0].header, &buf[0].matrix);
+  gfits_create_header (&buf[0].header);
+  gfits_create_matrix (&buf[0].header, &buf[0].matrix);
 
   return (TRUE);
Index: /trunk/Ohana/src/opihi/cmd.data/cursor.c
===================================================================
--- /trunk/Ohana/src/opihi/cmd.data/cursor.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/cmd.data/cursor.c	(revision 7080)
@@ -58,5 +58,5 @@
     if (IsImage) {
       if (buf != NULL) { 
-	Z = fits_get_matrix_value (&buf[0].matrix, (int) X, (int) Y);
+	Z = gfits_get_matrix_value (&buf[0].matrix, (int) X, (int) Y);
       }
       fprintf (GetOutfile(), "%s %f %f  %f\n", key, X, Y, Z);
Index: /trunk/Ohana/src/opihi/cmd.data/dimenup.c
===================================================================
--- /trunk/Ohana/src/opihi/cmd.data/dimenup.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/cmd.data/dimenup.c	(revision 7080)
@@ -28,6 +28,6 @@
 
   /* I should encapsulate this in a create_default_buffer */
-  fits_free_matrix (&buf[0].matrix);
-  fits_free_header (&buf[0].header);
+  gfits_free_matrix (&buf[0].matrix);
+  gfits_free_header (&buf[0].header);
   buf[0].header.bitpix = buf[0].bitpix = -32;
   buf[0].header.unsign = buf[0].unsign = FALSE;
@@ -37,6 +37,6 @@
   buf[0].header.Naxis[0] = Nx;
   buf[0].header.Naxis[1] = Ny;
-  fits_create_header (&buf[0].header);
-  fits_create_matrix (&buf[0].header, &buf[0].matrix);
+  gfits_create_header (&buf[0].header);
+  gfits_create_matrix (&buf[0].header, &buf[0].matrix);
 
   out = (float *) buf[0].matrix.buffer;
Index: /trunk/Ohana/src/opihi/cmd.data/dot.c
===================================================================
--- /trunk/Ohana/src/opihi/cmd.data/dot.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/cmd.data/dot.c	(revision 7080)
@@ -3,53 +3,8 @@
 int dot (int argc, char **argv) {
   
-  int N, Ngraph;
   Graphdata graphmode;
   float x, y;
 
-  /* choose the appropriate graphing window */
-  Ngraph = -1;
-  if ((N = get_argument (argc, argv, "-n"))) {
-    remove_argument (N, &argc, argv);
-    Ngraph = atof (argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if (!GetGraph (&graphmode, NULL, &Ngraph)) return (FALSE);
-
-  /* evaluate various plotting options */
-  if ((N = get_argument (argc, argv, "-lt"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.ltype = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "-lw"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.lweight = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "-pt"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.ptype = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "+eb"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.ebar = TRUE;
-  }
-  if ((N = get_argument (argc, argv, "-eb"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.ebar = FALSE;
-  }
-  if ((N = get_argument (argc, argv, "-sz"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.size = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "-c"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.color = KapaColorByName (argv[N]);
-    if (graphmode.color == -1) return (FALSE);
-    remove_argument (N, &argc, argv);
-  }
-  graphmode.style = 2;
+  if (!style_args (&graphmode, &argc, argv, -1)) return FALSE;
 
   if (argc != 3) {
@@ -63,5 +18,6 @@
   SetGraph (graphmode);
 
-  /* set errorbar mode (these are NOT sticky) */
+  /* set point style and errorbar mode (these are NOT sticky) */
+  graphmode.style = 2;
   graphmode.etype = 0;
 
Index: /trunk/Ohana/src/opihi/cmd.data/extract.c
===================================================================
--- /trunk/Ohana/src/opihi/cmd.data/extract.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/cmd.data/extract.c	(revision 7080)
@@ -53,6 +53,6 @@
   if ((out = SelectBuffer (argv[2], OLDBUFFER, FALSE)) == NULL) {
     if ((out = SelectBuffer (argv[2], ANYBUFFER, TRUE)) == NULL) return (FALSE);
-    fits_free_matrix (&out[0].matrix);
-    fits_free_header (&out[0].header);
+    gfits_free_matrix (&out[0].matrix);
+    gfits_free_header (&out[0].header);
 
     out[0].bitpix = in[0].bitpix;
@@ -60,10 +60,10 @@
     out[0].bscale = in[0].bscale;
     out[0].bzero  = in[0].bzero;
-    fits_copy_header (&in[0].header, &out[0].header);
-    fits_modify (&out[0].header, "NAXIS1", "%d", 1, Nx);
-    fits_modify (&out[0].header, "NAXIS2", "%d", 1, Ny);
+    gfits_copy_header (&in[0].header, &out[0].header);
+    gfits_modify (&out[0].header, "NAXIS1", "%d", 1, Nx);
+    gfits_modify (&out[0].header, "NAXIS2", "%d", 1, Ny);
     out[0].header.Naxis[0] = Nx;
     out[0].header.Naxis[1] = Ny;
-    fits_create_matrix (&out[0].header, &out[0].matrix);
+    gfits_create_matrix (&out[0].header, &out[0].matrix);
   } else {
     if ((out[0].header.Naxis[1] != Ny) || (out[0].header.Naxis[0] != Nx)) {
Index: /trunk/Ohana/src/opihi/cmd.data/fft2d.c
===================================================================
--- /trunk/Ohana/src/opihi/cmd.data/fft2d.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/cmd.data/fft2d.c	(revision 7080)
@@ -32,8 +32,8 @@
 
   /* free up output space */
-  fits_free_matrix (&Ore[0].matrix);
-  fits_free_header (&Ore[0].header);
-  fits_free_matrix (&Oim[0].matrix);
-  fits_free_header (&Oim[0].header);
+  gfits_free_matrix (&Ore[0].matrix);
+  gfits_free_header (&Ore[0].header);
+  gfits_free_matrix (&Oim[0].matrix);
+  gfits_free_header (&Oim[0].header);
 
   /* get image dimensions, check value */
@@ -74,7 +74,7 @@
 
   /* fix up output headers (real) */
-  fits_copy_header (&Ire[0].header, &Ore[0].header);
-  fits_modify (&Ore[0].header, "NAXIS1", "%d", 1, Nx);
-  fits_modify (&Ore[0].header, "NAXIS2", "%d", 1, Ny);
+  gfits_copy_header (&Ire[0].header, &Ore[0].header);
+  gfits_modify (&Ore[0].header, "NAXIS1", "%d", 1, Nx);
+  gfits_modify (&Ore[0].header, "NAXIS2", "%d", 1, Ny);
   Ore[0].header.Naxis[0] = Nx;
   Ore[0].header.Naxis[1] = Ny;
@@ -83,10 +83,10 @@
   Ore[0].bscale = Ire[0].bscale;
   Ore[0].bzero  = Ire[0].bzero;
-  fits_create_matrix (&Ore[0].header, &Ore[0].matrix);
+  gfits_create_matrix (&Ore[0].header, &Ore[0].matrix);
 
   /* fix up output headers (imaginary) */
-  fits_copy_header (&Ire[0].header, &Oim[0].header);
-  fits_modify (&Oim[0].header, "NAXIS1", "%d", 1, Nx);
-  fits_modify (&Oim[0].header, "NAXIS2", "%d", 1, Ny);
+  gfits_copy_header (&Ire[0].header, &Oim[0].header);
+  gfits_modify (&Oim[0].header, "NAXIS1", "%d", 1, Nx);
+  gfits_modify (&Oim[0].header, "NAXIS2", "%d", 1, Ny);
   Oim[0].header.Naxis[0] = Nx;
   Oim[0].header.Naxis[1] = Ny;
@@ -95,5 +95,5 @@
   Oim[0].bscale = Ire[0].bscale;
   Oim[0].bzero  = Ire[0].bzero;
-  fits_create_matrix (&Oim[0].header, &Oim[0].matrix);
+  gfits_create_matrix (&Oim[0].header, &Oim[0].matrix);
 
   /* move data from working space to output buffers */
Index: /trunk/Ohana/src/opihi/cmd.data/gridify.c
===================================================================
--- /trunk/Ohana/src/opihi/cmd.data/gridify.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/cmd.data/gridify.c	(revision 7080)
@@ -56,6 +56,6 @@
   free (bf[0].header.buffer);  /* ALLOCATEd in SelectBuffer */
   free (bf[0].matrix.buffer);  /* ALLOCATEd in SelectBuffer */
-  fits_create_header (&bf[0].header);
-  fits_create_matrix (&bf[0].header, &bf[0].matrix);
+  gfits_create_header (&bf[0].header);
+  gfits_create_matrix (&bf[0].header, &bf[0].matrix);
 
   ALLOCATE (val, float, Nx*Ny);
Index: /trunk/Ohana/src/opihi/cmd.data/keyword.c
===================================================================
--- /trunk/Ohana/src/opihi/cmd.data/keyword.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/cmd.data/keyword.c	(revision 7080)
@@ -92,12 +92,12 @@
     switch (Wmode) {
     case STRING:
-      fits_modify (&buf[0].header, argv[2], "%s", 1, line);
+      gfits_modify (&buf[0].header, argv[2], "%s", 1, line);
       return (TRUE);
     case FLOAT:
       value = atof(line);
-      fits_modify (&buf[0].header, argv[2], "%lf", 1, value);
+      gfits_modify (&buf[0].header, argv[2], "%lf", 1, value);
       return (TRUE);
     case INT:
-      fits_modify (&buf[0].header, argv[2], "%d", 1, atoi(line));
+      gfits_modify (&buf[0].header, argv[2], "%d", 1, atoi(line));
       return (TRUE);
     case BOOLEAN:
@@ -107,11 +107,11 @@
       }
       ivalue = !strcasecmp (line, "T");
-      fits_modify (&buf[0].header, argv[2], "%t", 1, ivalue);
+      gfits_modify (&buf[0].header, argv[2], "%t", 1, ivalue);
       return (TRUE);
     case KEYCOMMENT:
-      fits_modify (&buf[0].header, argv[2], "%C", 1, line);
+      gfits_modify (&buf[0].header, argv[2], "%C", 1, line);
       return (TRUE);
     case COMMENT:
-      fits_modify (&buf[0].header, argv[2], "%S", 0, line);
+      gfits_modify (&buf[0].header, argv[2], "%S", 0, line);
       return (TRUE);
     }
@@ -119,5 +119,5 @@
   
   if (delete) {
-    fits_delete (&buf[0].header, argv[2], -1);
+    gfits_delete (&buf[0].header, argv[2], -1);
     return (TRUE);
   }
@@ -125,5 +125,5 @@
   /* grab the value in the given format, either a string or a digit */
   if (asfloat) {
-    status = fits_scan (&buf[0].header, argv[2], "%lf", 1, &value);
+    status = gfits_scan (&buf[0].header, argv[2], "%lf", 1, &value);
     if (!status) goto failure;
     if (argc == 4) 
@@ -135,5 +135,5 @@
 
   if (ascomment) {
-    status = fits_scan (&buf[0].header, argv[2], "%C", 1, line);
+    status = gfits_scan (&buf[0].header, argv[2], "%C", 1, line);
     if (!status) goto failure;
     if (argc == 4) 
@@ -145,5 +145,5 @@
 
   /* not-specified */
-  status = fits_scan (&buf[0].header, argv[2], "%s", 1, line);
+  status = gfits_scan (&buf[0].header, argv[2], "%s", 1, line);
   if (!status) goto failure;
   if (argc == 4) 
Index: /trunk/Ohana/src/opihi/cmd.data/line.c
===================================================================
--- /trunk/Ohana/src/opihi/cmd.data/line.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/cmd.data/line.c	(revision 7080)
@@ -3,57 +3,9 @@
 int line (int argc, char **argv) {
   
-  int N, Npts, Ngraph;
+  int N, Npts;
   Graphdata graphmode;
   Vector *vecx, *vecy, *dxm, *dxp, *dym, *dyp;
 
-  /* choose the appropriate graphing window */
-  Ngraph = -1;
-  if ((N = get_argument (argc, argv, "-n"))) {
-    remove_argument (N, &argc, argv);
-    Ngraph = atof (argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if (!GetGraph (&graphmode, NULL, &Ngraph)) return (FALSE);
-
-  /* evaluate various plotting options */
-  if ((N = get_argument (argc, argv, "-lt"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.ltype = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "-lw"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.lweight = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "-pt"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.ptype = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "+eb"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.ebar = TRUE;
-  }
-  if ((N = get_argument (argc, argv, "-eb"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.ebar = FALSE;
-  }
-  if ((N = get_argument (argc, argv, "-sz"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.size = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "-c"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.color = KapaColorByName (argv[N]);
-    if (graphmode.color == -1) return (FALSE);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "-x"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.style = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
+  if (!style_args (&graphmode, &argc, argv, -1)) return FALSE;
 
   /* decide on error bars */
@@ -84,6 +36,4 @@
     return (FALSE);
   }
-
-  /* set plotting options (these are sticky) */
   SetGraph (graphmode);
 
Index: /trunk/Ohana/src/opihi/cmd.data/list_header.c
===================================================================
--- /trunk/Ohana/src/opihi/cmd.data/list_header.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/cmd.data/list_header.c	(revision 7080)
@@ -36,18 +36,18 @@
     bscale = buf[0].header.bscale;
     unsign = buf[0].header.unsign;
-    fits_free_header (&buf[0].header);
+    gfits_free_header (&buf[0].header);
     
     strcpy (filename, buf[0].file);
     strcpy (buf[0].file, "*");
     strcat (buf[0].file, filename);
-    status = fits_read_header (argv[2], &buf[0].header);
+    status = gfits_read_header (argv[2], &buf[0].header);
     buf[0].header.bitpix = bitpix;     
     buf[0].header.bzero  = bzero;      
     buf[0].header.bscale = bscale;     
     buf[0].header.unsign = unsign;     
-    fits_modify (&buf[0].header, "BITPIX", "%d",  1, bitpix);
-    fits_modify (&buf[0].header, "BSCALE", "%lf", 1, bscale);
-    fits_modify (&buf[0].header, "BZERO",  "%lf", 1, bzero);
-    fits_modify (&buf[0].header, "UNSIGN", "%t",  1, unsign);
+    gfits_modify (&buf[0].header, "BITPIX", "%d",  1, bitpix);
+    gfits_modify (&buf[0].header, "BSCALE", "%lf", 1, bscale);
+    gfits_modify (&buf[0].header, "BZERO",  "%lf", 1, bzero);
+    gfits_modify (&buf[0].header, "UNSIGN", "%t",  1, unsign);
     
   } else {
@@ -55,5 +55,5 @@
     f = popen ("more", "w");
     
-    p = fits_header_field (&buf[0].header, "END", 1);
+    p = gfits_header_field (&buf[0].header, "END", 1);
     nlines = (p - buf[0].header.buffer) / 80;
     nbytes = 81*nlines;
Index: /trunk/Ohana/src/opihi/cmd.data/mcreate.c
===================================================================
--- /trunk/Ohana/src/opihi/cmd.data/mcreate.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/cmd.data/mcreate.c	(revision 7080)
@@ -19,6 +19,6 @@
 
   /* I should encapsulate this in a create_default_buffer */
-  fits_free_matrix (&buf[0].matrix);
-  fits_free_header (&buf[0].header);
+  gfits_free_matrix (&buf[0].matrix);
+  gfits_free_header (&buf[0].header);
   buf[0].header.bitpix = buf[0].bitpix = -32;
   buf[0].header.unsign = buf[0].unsign = FALSE;
@@ -28,6 +28,6 @@
   buf[0].header.Naxis[0] = Nx;
   buf[0].header.Naxis[1] = Ny;
-  fits_create_header (&buf[0].header);
-  fits_create_matrix (&buf[0].header, &buf[0].matrix);
+  gfits_create_header (&buf[0].header);
+  gfits_create_matrix (&buf[0].header, &buf[0].matrix);
   return (TRUE);
 
Index: /trunk/Ohana/src/opihi/cmd.data/minterpolate.c
===================================================================
--- /trunk/Ohana/src/opihi/cmd.data/minterpolate.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/cmd.data/minterpolate.c	(revision 7080)
@@ -26,6 +26,6 @@
   if ((out = SelectBuffer (argv[2], ANYBUFFER, TRUE)) == NULL) return (FALSE);
 
-  fits_free_matrix (&out[0].matrix);
-  fits_free_header (&out[0].header);
+  gfits_free_matrix (&out[0].matrix);
+  gfits_free_header (&out[0].header);
 
   scale  = atof (argv[3]);
@@ -41,28 +41,28 @@
   out[0].bscale = in[0].bscale;
   out[0].bzero  = in[0].bzero;
-  fits_copy_header (&in[0].header, &out[0].header);
+  gfits_copy_header (&in[0].header, &out[0].header);
 
-  fits_modify (&out[0].header, "NAXIS1", "%d", 1, nx);
-  fits_modify (&out[0].header, "NAXIS2", "%d", 1, ny);
+  gfits_modify (&out[0].header, "NAXIS1", "%d", 1, nx);
+  gfits_modify (&out[0].header, "NAXIS2", "%d", 1, ny);
   out[0].header.Naxis[0] = nx;
   out[0].header.Naxis[1] = ny;
-  fits_create_matrix (&out[0].header, &out[0].matrix);
+  gfits_create_matrix (&out[0].header, &out[0].matrix);
 
   /* fix astrometric terms */
-  status =  fits_scan (&out[0].header, "CDELT1", "%lf", 1, &dX);
-  status &= fits_scan (&out[0].header, "CDELT2", "%lf", 1, &dY);
+  status =  gfits_scan (&out[0].header, "CDELT1", "%lf", 1, &dX);
+  status &= gfits_scan (&out[0].header, "CDELT2", "%lf", 1, &dY);
   dX /= scale;
   dY /= scale;
   if (status) {
-    fits_modify (&out[0].header, "CDELT1", "%lf", 1, dX);
-    fits_modify (&out[0].header, "CDELT2", "%lf", 1, dY);
+    gfits_modify (&out[0].header, "CDELT1", "%lf", 1, dX);
+    gfits_modify (&out[0].header, "CDELT2", "%lf", 1, dY);
   }
-  status =  fits_scan (&out[0].header, "CRPIX1", "%lf", 1, &dX);
-  status &= fits_scan (&out[0].header, "CRPIX2", "%lf", 1, &dY);
+  status =  gfits_scan (&out[0].header, "CRPIX1", "%lf", 1, &dX);
+  status &= gfits_scan (&out[0].header, "CRPIX2", "%lf", 1, &dY);
   dX *= scale;
   dY *= scale;
   if (status) {
-    fits_modify (&out[0].header, "CRPIX1", "%lf", 1, dX);
-    fits_modify (&out[0].header, "CRPIX2", "%lf", 1, dY);
+    gfits_modify (&out[0].header, "CRPIX1", "%lf", 1, dX);
+    gfits_modify (&out[0].header, "CRPIX2", "%lf", 1, dY);
   }
 
Index: /trunk/Ohana/src/opihi/cmd.data/plot.c
===================================================================
--- /trunk/Ohana/src/opihi/cmd.data/plot.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/cmd.data/plot.c	(revision 7080)
@@ -3,57 +3,9 @@
 int plot (int argc, char **argv) {
   
-  int N, Npts, Ngraph;
+  int N, Npts;
   Graphdata graphmode;
   Vector *xvec, *yvec, *dxmvec, *dxpvec, *dymvec, *dypvec;
 
-  /* choose the appropriate graphing window */
-  Ngraph = -1;
-  if ((N = get_argument (argc, argv, "-n"))) {
-    remove_argument (N, &argc, argv);
-    Ngraph = atof (argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if (!GetGraph (&graphmode, NULL, &Ngraph)) return (FALSE);
-
-  /* evaluate various plotting options */
-  if ((N = get_argument (argc, argv, "-lt"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.ltype = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "-lw"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.lweight = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "-pt"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.ptype = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "+eb"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.ebar = TRUE;
-  }
-  if ((N = get_argument (argc, argv, "-eb"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.ebar = FALSE;
-  }
-  if ((N = get_argument (argc, argv, "-sz"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.size = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "-c"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.color = KapaColorByName (argv[N]);
-    if (graphmode.color == -1) return (FALSE);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "-x"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.style = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
+  if (!style_args (&graphmode, &argc, argv, -1)) return FALSE;
 
   /* decide on error bars */
@@ -81,9 +33,7 @@
 
   if (argc != 3) {
-    fprintf (stderr, "USAGE: plot <x> <y>\n");
+    fprintf (stderr, "USAGE: plot <x> <y> [style]\n");
     return (FALSE);
   }
-
-  /* set plotting options (these are sticky) */
   SetGraph (graphmode);
 
@@ -92,8 +42,8 @@
   if ((dymvec != NULL) && (dypvec == NULL)) dypvec = dymvec;
   if ((dypvec != NULL) && (dymvec == NULL)) dymvec = dypvec;
-  if (dypvec != NULL) graphmode.etype |= 0x01;
+  if ((dypvec != NULL) || (dymvec != NULL)) graphmode.etype |= 0x01;
   if ((dxmvec != NULL) && (dxpvec == NULL)) dxpvec = dxmvec;
   if ((dxpvec != NULL) && (dxmvec == NULL)) dxmvec = dxpvec;
-  if (dxpvec != NULL) graphmode.etype |= 0x02;
+  if ((dxpvec != NULL) || (dxmvec != NULL)) graphmode.etype |= 0x02;
   
   /* find vectors */
Index: /trunk/Ohana/src/opihi/cmd.data/rd.c
===================================================================
--- /trunk/Ohana/src/opihi/cmd.data/rd.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/cmd.data/rd.c	(revision 7080)
@@ -61,6 +61,6 @@
   /* find matrix, free old data */
   if ((buf = SelectBuffer (argv[1], ANYBUFFER, TRUE)) == NULL) return (FALSE);
-  fits_free_matrix (&buf[0].matrix);
-  fits_free_header (&buf[0].header);
+  gfits_free_matrix (&buf[0].matrix);
+  gfits_free_header (&buf[0].header);
 
   /* save file name */
@@ -73,5 +73,5 @@
   if (extend) {
     /* load in appropriate header */
-    Nskip = fits_read_Xheader (argv[2], &buf[0].header, Nextend);
+    Nskip = gfits_read_Xheader (argv[2], &buf[0].header, Nextend);
     if (!Nskip) {
       fprintf (stderr, "entry in %s not found\n", argv[2]);
@@ -113,5 +113,5 @@
     }
     fseek (f, Nskip, SEEK_SET);
-    status = fits_load_matrix (f, &buf[0].matrix, &buf[0].header);
+    status = gfits_load_matrix (f, &buf[0].matrix, &buf[0].header);
     fclose (f);
   } 
@@ -128,5 +128,5 @@
     done = FALSE;
     for (i = 0; !done; i++) {
-      Nskip = fits_read_Xheader (argv[2], &buf[0].header, i);
+      Nskip = gfits_read_Xheader (argv[2], &buf[0].header, i);
       if (!Nskip) {
 	fprintf (stderr, "extension %s in %s not found\n", ccdid, argv[2]);
@@ -135,5 +135,5 @@
 	return (FALSE);
       }
-      if (!fits_scan (&buf[0].header, CCDKeyword, "%s", 1, ID)) {
+      if (!gfits_scan (&buf[0].header, CCDKeyword, "%s", 1, ID)) {
 	fprintf (stderr, "%s not in header\n", CCDKeyword);
 	DeleteBuffer (buf);
@@ -145,5 +145,5 @@
       done = strnumcmp (ccdid, ID);
 
-      if (!done) fits_free_header (&buf[0].header);
+      if (!done) gfits_free_header (&buf[0].header);
     }
     free (CCDKeyword);
@@ -182,10 +182,10 @@
     }
     fseek (f, Nskip, SEEK_SET);
-    status = fits_load_matrix (f, &buf[0].matrix, &buf[0].header);
+    status = gfits_load_matrix (f, &buf[0].matrix, &buf[0].header);
     fclose (f);
   }
 
   if (!ccdsel && !extend) {
-    status = fits_read_header (argv[2], &buf[0].header);
+    status = gfits_read_header (argv[2], &buf[0].header);
     if (JustHead) {
       buf[0].header.Naxes = 0;
@@ -209,9 +209,9 @@
       buf[0].header.Naxis[2] = 0;
       buf[0].header.Naxes = 2;
-      fits_modify (&buf[0].header, "NAXIS", "%d", 1, 2);
-      fits_delete (&buf[0].header, "NAXIS3", 1);
+      gfits_modify (&buf[0].header, "NAXIS", "%d", 1, 2);
+      gfits_delete (&buf[0].header, "NAXIS3", 1);
     }
     sprintf (region, "-1 -1 -1 -1 %d %d", (plane - 1), plane);
-    status = fits_read_segment (argv[2], &buf[0].matrix, region);
+    status = gfits_read_segment (argv[2], &buf[0].matrix, region);
   }
 
@@ -236,5 +236,5 @@
 
   /** now - convert the matrix values to floats for internal use **/
-  fits_convert_format (&buf[0].header, &buf[0].matrix, -32, 1.0, 0.0, FT_UNSIGN_MODE);
+  gfits_convert_format (&buf[0].header, &buf[0].matrix, -32, 1.0, 0.0, FT_UNSIGN_MODE);
   
   return (TRUE);
Index: /trunk/Ohana/src/opihi/cmd.data/rdseg.c
===================================================================
--- /trunk/Ohana/src/opihi/cmd.data/rdseg.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/cmd.data/rdseg.c	(revision 7080)
@@ -28,6 +28,6 @@
   /* find matrix, free old data */
   if ((buf = SelectBuffer (argv[1], ANYBUFFER, TRUE)) == NULL) return (FALSE);
-  fits_free_matrix (&buf[0].matrix);
-  fits_free_header (&buf[0].header);
+  gfits_free_matrix (&buf[0].matrix);
+  gfits_free_header (&buf[0].header);
 
   /* save file name */
@@ -36,9 +36,9 @@
   free (filename);
 
-  status = fits_read_header (argv[2], &buf[0].header);
+  status = gfits_read_header (argv[2], &buf[0].header);
   sprintf (region, "%d %d %d %d 0 1", x, nx + x, y, ny + y);
-  status = fits_read_segment (argv[2], &buf[0].matrix, region);
-  fits_modify (&buf[0].header, "NAXIS1", "%d", 1, nx);
-  fits_modify (&buf[0].header, "NAXIS2", "%d", 1, ny);
+  status = gfits_read_segment (argv[2], &buf[0].matrix, region);
+  gfits_modify (&buf[0].header, "NAXIS1", "%d", 1, nx);
+  gfits_modify (&buf[0].header, "NAXIS2", "%d", 1, ny);
   buf[0].header.Naxis[0] = nx;
   buf[0].header.Naxis[1] = ny;
@@ -66,5 +66,5 @@
 
   /** now - convert the matrix values to floats for internal use **/
-  fits_convert_format (&buf[0].header, &buf[0].matrix, -32, 1.0, 0.0, FT_UNSIGN_MODE);
+  gfits_convert_format (&buf[0].header, &buf[0].matrix, -32, 1.0, 0.0, FT_UNSIGN_MODE);
   
   return (TRUE);
Index: /trunk/Ohana/src/opihi/cmd.data/read_vectors.c
===================================================================
--- /trunk/Ohana/src/opihi/cmd.data/read_vectors.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/cmd.data/read_vectors.c	(revision 7080)
@@ -171,10 +171,10 @@
 
     for (i = 0; i <= Nextend; i++) {
-      if (!fits_load_header (f, &header)) return (FALSE);
-      Nbytes = fits_matrix_size (&header);
+      if (!gfits_load_header (f, &header)) return (FALSE);
+      Nbytes = gfits_matrix_size (&header);
       /* skip the prior data buffers */
       if (i < Nextend) { 
 	fseek (f, Nbytes, SEEK_CUR);
-	fits_free_header (&header);
+	gfits_free_header (&header);
 	continue;
       }
@@ -183,6 +183,6 @@
       Nread = fread (table.buffer, sizeof (char), Nbytes, f);
       if (Nread != Nbytes) {
-	fits_free_table  (&table);
-	fits_free_header (&header);
+	gfits_free_table  (&table);
+	gfits_free_header (&header);
 	return (FALSE);
       }
@@ -190,10 +190,10 @@
     }
   } else {
-    if (!fits_fread_ftable (f, &table, extname)) return (FALSE);
+    if (!gfits_fread_ftable (f, &table, extname)) return (FALSE);
   }
 
   /* identify table type (ascii / binary) */
   Binary = FALSE;
-  fits_scan (&header, "XTENSION", "%s", 1, type);
+  gfits_scan (&header, "XTENSION", "%s", 1, type);
   if (!strcmp (type, "BINTABLE")) {
     Binary = TRUE;
@@ -214,9 +214,9 @@
     Nval = 0;
     if (Binary) {
-      if (!fits_get_bintable_column_type (&header, argv[i], type, &Nval)) return (FALSE);
-      if (!fits_get_bintable_column (&header, &table, argv[i], &data)) return (FALSE);
+      if (!gfits_get_bintable_column_type (&header, argv[i], type, &Nval)) return (FALSE);
+      if (!gfits_get_bintable_column (&header, &table, argv[i], &data)) return (FALSE);
     } else {
-      if (!fits_get_table_column_type (&header, argv[i], type)) return (FALSE);
-      if (!fits_get_table_column (&header, &table, argv[i], &data)) return (FALSE);
+      if (!gfits_get_table_column_type (&header, argv[i], type)) return (FALSE);
+      if (!gfits_get_table_column (&header, &table, argv[i], &data)) return (FALSE);
     }
     if (Nval == 0) return (FALSE);
@@ -276,6 +276,6 @@
     free (vec);
   }
-  fits_free_table (&table);
-  fits_free_header (&header);
+  gfits_free_table (&table);
+  gfits_free_header (&header);
   return (TRUE);
 }
Index: /trunk/Ohana/src/opihi/cmd.data/rebin.c
===================================================================
--- /trunk/Ohana/src/opihi/cmd.data/rebin.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/cmd.data/rebin.c	(revision 7080)
@@ -40,6 +40,6 @@
   if ((in  = SelectBuffer (argv[1], OLDBUFFER, TRUE)) == NULL) return (FALSE);
   if ((out = SelectBuffer (argv[2], ANYBUFFER, TRUE)) == NULL) return (FALSE);
-  fits_free_matrix (&out[0].matrix);
-  fits_free_header (&out[0].header);
+  gfits_free_matrix (&out[0].matrix);
+  gfits_free_header (&out[0].header);
 
   scale  = atof (argv[3]);
@@ -71,10 +71,10 @@
   out[0].bscale = in[0].bscale;
   out[0].bzero  = in[0].bzero;
-  fits_copy_header (&in[0].header, &out[0].header);
-  fits_modify (&out[0].header, "NAXIS1", "%d", 1, nx);
-  fits_modify (&out[0].header, "NAXIS2", "%d", 1, ny);
-
-  status =  fits_scan (&out[0].header, "CDELT1", "%lf", 1, &dX);
-  status &= fits_scan (&out[0].header, "CDELT2", "%lf", 1, &dY);
+  gfits_copy_header (&in[0].header, &out[0].header);
+  gfits_modify (&out[0].header, "NAXIS1", "%d", 1, nx);
+  gfits_modify (&out[0].header, "NAXIS2", "%d", 1, ny);
+
+  status =  gfits_scan (&out[0].header, "CDELT1", "%lf", 1, &dX);
+  status &= gfits_scan (&out[0].header, "CDELT2", "%lf", 1, &dY);
   if (scale > 0) {
     dX *= scale;
@@ -85,10 +85,10 @@
   }    
   if (status) {
-    fits_modify (&out[0].header, "CDELT1", "%lf", 1, dX);
-    fits_modify (&out[0].header, "CDELT2", "%lf", 1, dY);
-  }
-
-  status =  fits_scan (&out[0].header, "CRPIX1", "%lf", 1, &dX);
-  status &= fits_scan (&out[0].header, "CRPIX2", "%lf", 1, &dY);
+    gfits_modify (&out[0].header, "CDELT1", "%lf", 1, dX);
+    gfits_modify (&out[0].header, "CDELT2", "%lf", 1, dY);
+  }
+
+  status =  gfits_scan (&out[0].header, "CRPIX1", "%lf", 1, &dX);
+  status &= gfits_scan (&out[0].header, "CRPIX2", "%lf", 1, &dY);
   if (scale > 0) {
     dX /= scale;
@@ -99,11 +99,11 @@
   }    
   if (status) {
-    fits_modify (&out[0].header, "CRPIX1", "%lf", 1, dX);
-    fits_modify (&out[0].header, "CRPIX2", "%lf", 1, dY);
+    gfits_modify (&out[0].header, "CRPIX1", "%lf", 1, dX);
+    gfits_modify (&out[0].header, "CRPIX2", "%lf", 1, dY);
   }
 
   out[0].header.Naxis[0] = nx;
   out[0].header.Naxis[1] = ny;
-  fits_create_matrix (&out[0].header, &out[0].matrix);
+  gfits_create_matrix (&out[0].header, &out[0].matrix);
   temp[0] = 0;
   if ((in[0].file[0] != '*') && (in[0].file[0] != '(')) {
Index: /trunk/Ohana/src/opihi/cmd.data/rotate.c
===================================================================
--- /trunk/Ohana/src/opihi/cmd.data/rotate.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/cmd.data/rotate.c	(revision 7080)
@@ -41,8 +41,8 @@
     buf[0].header.Naxis[0] = NY;
     buf[0].header.Naxis[1] = NX;
-    fits_modify (&buf[0].header, "NAXIS1", "%d", 1, NY);
-    fits_modify (&buf[0].header, "NAXIS2", "%d", 1, NX);
-    fits_print  (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");
-    fits_create_matrix (&buf[0].header, &buf[0].matrix);
+    gfits_modify (&buf[0].header, "NAXIS1", "%d", 1, NY);
+    gfits_modify (&buf[0].header, "NAXIS2", "%d", 1, NX);
+    gfits_print  (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");
+    gfits_create_matrix (&buf[0].header, &buf[0].matrix);
     out_buff = (float *)buf[0].matrix.buffer;
     for (i = NX - 1; i > -1; i--) {
@@ -52,24 +52,24 @@
     }
     /* fix reference pixel */
-    fits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &Xo);
-    fits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &Yo);
+    gfits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &Xo);
+    gfits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &Yo);
     X1 = Yo;
     Y1 = NX - Xo;
-    fits_modify (&buf[0].header, "CRPIX1", "%lf", 1, X1);
-    fits_modify (&buf[0].header, "CRPIX2", "%lf", 1, Y1);
-    
-    /* fix rotate matrix */
-    fits_scan (&buf[0].header, "PC001001", "%lf", 1, &pc11);
-    fits_scan (&buf[0].header, "PC001002", "%lf", 1, &pc12);
-    fits_scan (&buf[0].header, "PC002001", "%lf", 1, &pc21);
-    fits_scan (&buf[0].header, "PC002002", "%lf", 1, &pc22);
+    gfits_modify (&buf[0].header, "CRPIX1", "%lf", 1, X1);
+    gfits_modify (&buf[0].header, "CRPIX2", "%lf", 1, Y1);
+    
+    /* fix rotate matrix */
+    gfits_scan (&buf[0].header, "PC001001", "%lf", 1, &pc11);
+    gfits_scan (&buf[0].header, "PC001002", "%lf", 1, &pc12);
+    gfits_scan (&buf[0].header, "PC002001", "%lf", 1, &pc21);
+    gfits_scan (&buf[0].header, "PC002002", "%lf", 1, &pc22);
     PC11 = pc21;
     PC12 = pc22;
     PC21 = -pc11;
     PC22 = -pc12;
-    fits_modify (&buf[0].header, "PC001001", "%le", 1, PC11);
-    fits_modify (&buf[0].header, "PC001002", "%le", 1, PC12);
-    fits_modify (&buf[0].header, "PC002001", "%le", 1, PC21);
-    fits_modify (&buf[0].header, "PC002002", "%le", 1, PC22);
+    gfits_modify (&buf[0].header, "PC001001", "%le", 1, PC11);
+    gfits_modify (&buf[0].header, "PC001002", "%le", 1, PC12);
+    gfits_modify (&buf[0].header, "PC002001", "%le", 1, PC21);
+    gfits_modify (&buf[0].header, "PC002002", "%le", 1, PC22);
 
     free (in_buff);
@@ -80,8 +80,8 @@
     buf[0].header.Naxis[0] = NY;
     buf[0].header.Naxis[1] = NX;
-    fits_modify (&buf[0].header, "NAXIS1", "%d", 1, NY);
-    fits_modify (&buf[0].header, "NAXIS2", "%d", 1, NX);
-    fits_print  (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");
-    fits_create_matrix (&buf[0].header, &buf[0].matrix);
+    gfits_modify (&buf[0].header, "NAXIS1", "%d", 1, NY);
+    gfits_modify (&buf[0].header, "NAXIS2", "%d", 1, NX);
+    gfits_print  (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");
+    gfits_create_matrix (&buf[0].header, &buf[0].matrix);
     out_buff = (float *)buf[0].matrix.buffer;
     for (i = 0; i < NX; i++) {
@@ -91,17 +91,17 @@
     }
     /* fix reference pixel */
-    fits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &Xo);
-    fits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &Yo);
+    gfits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &Xo);
+    gfits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &Yo);
     X1 = NY - Yo;
     Y1 = Xo;
     fprintf (stderr, "%f %f -> %f %f\n", Xo, Yo, X1, Y1);
-    fits_modify (&buf[0].header, "CRPIX1", "%lf", 1, X1);
-    fits_modify (&buf[0].header, "CRPIX2", "%lf", 1, Y1);
-    
-    /* fix rotate matrix */
-    fits_scan (&buf[0].header, "PC001001", "%lf", 1, &pc11);
-    fits_scan (&buf[0].header, "PC001002", "%lf", 1, &pc12);
-    fits_scan (&buf[0].header, "PC002001", "%lf", 1, &pc21);
-    fits_scan (&buf[0].header, "PC002002", "%lf", 1, &pc22);
+    gfits_modify (&buf[0].header, "CRPIX1", "%lf", 1, X1);
+    gfits_modify (&buf[0].header, "CRPIX2", "%lf", 1, Y1);
+    
+    /* fix rotate matrix */
+    gfits_scan (&buf[0].header, "PC001001", "%lf", 1, &pc11);
+    gfits_scan (&buf[0].header, "PC001002", "%lf", 1, &pc12);
+    gfits_scan (&buf[0].header, "PC002001", "%lf", 1, &pc21);
+    gfits_scan (&buf[0].header, "PC002002", "%lf", 1, &pc22);
     PC11 = -pc21;
     PC12 = -pc22;
@@ -110,8 +110,8 @@
     fprintf (stderr, "%f %f  ->  %f %f\n", pc11, pc12, PC11, PC12);
     fprintf (stderr, "%f %f  ->  %f %f\n", pc21, pc22, PC21, PC22);
-    fits_modify (&buf[0].header, "PC001001", "%le", 1, PC11);
-    fits_modify (&buf[0].header, "PC001002", "%le", 1, PC12);
-    fits_modify (&buf[0].header, "PC002001", "%le", 1, PC21);
-    fits_modify (&buf[0].header, "PC002002", "%le", 1, PC22);
+    gfits_modify (&buf[0].header, "PC001001", "%le", 1, PC11);
+    gfits_modify (&buf[0].header, "PC001002", "%le", 1, PC12);
+    gfits_modify (&buf[0].header, "PC002001", "%le", 1, PC21);
+    gfits_modify (&buf[0].header, "PC002002", "%le", 1, PC22);
 
     free (in_buff);
@@ -120,6 +120,6 @@
 
   if (!strcasecmp (argv[2], "UPSIDE") || (atof (argv[2]) == -180) || (atof (argv[2]) == 180)) {
-    fits_print  (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");
-    fits_create_matrix (&buf[0].header, &buf[0].matrix);
+    gfits_print  (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");
+    gfits_create_matrix (&buf[0].header, &buf[0].matrix);
     out_buff = (float *)buf[0].matrix.buffer;
     for (j = NY - 1; j > -1; j--) {
@@ -129,24 +129,24 @@
     }
     /* fix reference pixel */
-    fits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &Xo);
-    fits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &Yo);
+    gfits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &Xo);
+    gfits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &Yo);
     X1 = NX - Xo;
     Y1 = NY - Yo;
-    fits_modify (&buf[0].header, "CRPIX1", "%lf", 1, X1);
-    fits_modify (&buf[0].header, "CRPIX2", "%lf", 1, Y1);
-    
-    /* fix rotate matrix */
-    fits_scan (&buf[0].header, "PC001001", "%lf", 1, &pc11);
-    fits_scan (&buf[0].header, "PC001002", "%lf", 1, &pc12);
-    fits_scan (&buf[0].header, "PC002001", "%lf", 1, &pc21);
-    fits_scan (&buf[0].header, "PC002002", "%lf", 1, &pc22);
+    gfits_modify (&buf[0].header, "CRPIX1", "%lf", 1, X1);
+    gfits_modify (&buf[0].header, "CRPIX2", "%lf", 1, Y1);
+    
+    /* fix rotate matrix */
+    gfits_scan (&buf[0].header, "PC001001", "%lf", 1, &pc11);
+    gfits_scan (&buf[0].header, "PC001002", "%lf", 1, &pc12);
+    gfits_scan (&buf[0].header, "PC002001", "%lf", 1, &pc21);
+    gfits_scan (&buf[0].header, "PC002002", "%lf", 1, &pc22);
     PC11 = -pc11;
     PC12 = -pc12;
     PC21 = -pc21;
     PC22 = -pc22;
-    fits_modify (&buf[0].header, "PC001001", "%le", 1, PC11);
-    fits_modify (&buf[0].header, "PC001002", "%le", 1, PC12);
-    fits_modify (&buf[0].header, "PC002001", "%le", 1, PC21);
-    fits_modify (&buf[0].header, "PC002002", "%le", 1, PC22);
+    gfits_modify (&buf[0].header, "PC001001", "%le", 1, PC11);
+    gfits_modify (&buf[0].header, "PC001002", "%le", 1, PC12);
+    gfits_modify (&buf[0].header, "PC002001", "%le", 1, PC21);
+    gfits_modify (&buf[0].header, "PC002002", "%le", 1, PC22);
 
     free (in_buff);
@@ -155,6 +155,6 @@
 
   if (!strcasecmp (argv[2], "FLIPY")) {
-    fits_print  (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");
-    fits_create_matrix (&buf[0].header, &buf[0].matrix);
+    gfits_print  (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");
+    gfits_create_matrix (&buf[0].header, &buf[0].matrix);
     out_buff = (float *)buf[0].matrix.buffer;
     for (j = NY - 1; j > -1; j--) {
@@ -164,24 +164,24 @@
     }
     /* fix reference pixel */
-    fits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &Xo);
-    fits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &Yo);
+    gfits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &Xo);
+    gfits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &Yo);
     X1 = Xo;
     Y1 = NY - Yo;
-    fits_modify (&buf[0].header, "CRPIX1", "%lf", 1, X1);
-    fits_modify (&buf[0].header, "CRPIX2", "%lf", 1, Y1);
-    
-    /* fix rotate matrix */
-    fits_scan (&buf[0].header, "PC001001", "%lf", 1, &pc11);
-    fits_scan (&buf[0].header, "PC001002", "%lf", 1, &pc12);
-    fits_scan (&buf[0].header, "PC002001", "%lf", 1, &pc21);
-    fits_scan (&buf[0].header, "PC002002", "%lf", 1, &pc22);
+    gfits_modify (&buf[0].header, "CRPIX1", "%lf", 1, X1);
+    gfits_modify (&buf[0].header, "CRPIX2", "%lf", 1, Y1);
+    
+    /* fix rotate matrix */
+    gfits_scan (&buf[0].header, "PC001001", "%lf", 1, &pc11);
+    gfits_scan (&buf[0].header, "PC001002", "%lf", 1, &pc12);
+    gfits_scan (&buf[0].header, "PC002001", "%lf", 1, &pc21);
+    gfits_scan (&buf[0].header, "PC002002", "%lf", 1, &pc22);
     PC11 = pc11;
     PC12 = -pc12;
     PC21 = pc21;
     PC22 = -pc22;
-    fits_modify (&buf[0].header, "PC001001", "%le", 1, PC11);
-    fits_modify (&buf[0].header, "PC001002", "%le", 1, PC12);
-    fits_modify (&buf[0].header, "PC002001", "%le", 1, PC21);
-    fits_modify (&buf[0].header, "PC002002", "%le", 1, PC22);
+    gfits_modify (&buf[0].header, "PC001001", "%le", 1, PC11);
+    gfits_modify (&buf[0].header, "PC001002", "%le", 1, PC12);
+    gfits_modify (&buf[0].header, "PC002001", "%le", 1, PC21);
+    gfits_modify (&buf[0].header, "PC002002", "%le", 1, PC22);
 
     free (in_buff);
@@ -190,6 +190,6 @@
 
   if (!strcasecmp (argv[2], "FLIPX")) {
-    fits_print  (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");
-    fits_create_matrix (&buf[0].header, &buf[0].matrix);
+    gfits_print  (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");
+    gfits_create_matrix (&buf[0].header, &buf[0].matrix);
     out_buff = (float *)buf[0].matrix.buffer;
     for (j = 0; j < NY; j++) {
@@ -199,24 +199,24 @@
     }
     /* fix reference pixel */
-    fits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &Xo);
-    fits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &Yo);
+    gfits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &Xo);
+    gfits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &Yo);
     X1 = NX - Xo;
     Y1 = Yo;
-    fits_modify (&buf[0].header, "CRPIX1", "%lf", 1, X1);
-    fits_modify (&buf[0].header, "CRPIX2", "%lf", 1, Y1);
-    
-    /* fix rotate matrix */
-    fits_scan (&buf[0].header, "PC001001", "%lf", 1, &pc11);
-    fits_scan (&buf[0].header, "PC001002", "%lf", 1, &pc12);
-    fits_scan (&buf[0].header, "PC002001", "%lf", 1, &pc21);
-    fits_scan (&buf[0].header, "PC002002", "%lf", 1, &pc22);
+    gfits_modify (&buf[0].header, "CRPIX1", "%lf", 1, X1);
+    gfits_modify (&buf[0].header, "CRPIX2", "%lf", 1, Y1);
+    
+    /* fix rotate matrix */
+    gfits_scan (&buf[0].header, "PC001001", "%lf", 1, &pc11);
+    gfits_scan (&buf[0].header, "PC001002", "%lf", 1, &pc12);
+    gfits_scan (&buf[0].header, "PC002001", "%lf", 1, &pc21);
+    gfits_scan (&buf[0].header, "PC002002", "%lf", 1, &pc22);
     PC11 = -pc11;
     PC12 = pc12;
     PC21 = -pc21;
     PC22 = pc22;
-    fits_modify (&buf[0].header, "PC001001", "%le", 1, PC11);
-    fits_modify (&buf[0].header, "PC001002", "%le", 1, PC12);
-    fits_modify (&buf[0].header, "PC002001", "%le", 1, PC21);
-    fits_modify (&buf[0].header, "PC002002", "%le", 1, PC22);
+    gfits_modify (&buf[0].header, "PC001001", "%le", 1, PC11);
+    gfits_modify (&buf[0].header, "PC001002", "%le", 1, PC12);
+    gfits_modify (&buf[0].header, "PC002001", "%le", 1, PC21);
+    gfits_modify (&buf[0].header, "PC002002", "%le", 1, PC22);
 
     free (in_buff);
@@ -242,6 +242,6 @@
 
   /* fix reference pixel */
-  fits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &Xo);
-  fits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &Yo);
+  gfits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &Xo);
+  gfits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &Yo);
   /*
   X1 = (Xo - dX)*CosAngle - (Yo - dY)*SinAngle;
@@ -250,27 +250,27 @@
   X1 = Xo*CosAngle - Yo*SinAngle + dX;
   Y1 =  Xo*SinAngle + Yo*CosAngle + dY;
-  fits_modify (&buf[0].header, "CRPIX1", "%lf", 1, X1);
-  fits_modify (&buf[0].header, "CRPIX2", "%lf", 1, Y1);
+  gfits_modify (&buf[0].header, "CRPIX1", "%lf", 1, X1);
+  gfits_modify (&buf[0].header, "CRPIX2", "%lf", 1, Y1);
 
   /* fix rotate matrix */
-  fits_scan (&buf[0].header, "PC001001", "%lf", 1, &pc11);
-  fits_scan (&buf[0].header, "PC001002", "%lf", 1, &pc12);
-  fits_scan (&buf[0].header, "PC002001", "%lf", 1, &pc21);
-  fits_scan (&buf[0].header, "PC002002", "%lf", 1, &pc22);
+  gfits_scan (&buf[0].header, "PC001001", "%lf", 1, &pc11);
+  gfits_scan (&buf[0].header, "PC001002", "%lf", 1, &pc12);
+  gfits_scan (&buf[0].header, "PC002001", "%lf", 1, &pc21);
+  gfits_scan (&buf[0].header, "PC002002", "%lf", 1, &pc22);
   PC11 = pc11*CosAngle - pc21*SinAngle;
   PC12 = pc12*CosAngle - pc22*SinAngle;
   PC21 = pc21*CosAngle + pc11*SinAngle;
   PC22 = pc22*CosAngle + pc12*SinAngle;
-  fits_modify (&buf[0].header, "PC001001", "%le", 1, PC11);
-  fits_modify (&buf[0].header, "PC001002", "%le", 1, PC12);
-  fits_modify (&buf[0].header, "PC002001", "%le", 1, PC21);
-  fits_modify (&buf[0].header, "PC002002", "%le", 1, PC22);
+  gfits_modify (&buf[0].header, "PC001001", "%le", 1, PC11);
+  gfits_modify (&buf[0].header, "PC001002", "%le", 1, PC12);
+  gfits_modify (&buf[0].header, "PC002001", "%le", 1, PC21);
+  gfits_modify (&buf[0].header, "PC002002", "%le", 1, PC22);
 
   buf[0].header.Naxis[0] = Lx;
   buf[0].header.Naxis[1] = Ly;
-  fits_modify (&buf[0].header, "NAXIS1", "%d", 1, Lx);
-  fits_modify (&buf[0].header, "NAXIS2", "%d", 1, Ly);
-  fits_create_matrix (&buf[0].header, &buf[0].matrix);
-  fits_print  (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");
+  gfits_modify (&buf[0].header, "NAXIS1", "%d", 1, Lx);
+  gfits_modify (&buf[0].header, "NAXIS2", "%d", 1, Ly);
+  gfits_create_matrix (&buf[0].header, &buf[0].matrix);
+  gfits_print  (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");
   out_buff = (float *)buf[0].matrix.buffer;
   for (j = 0; j < Ly; j++) {
Index: /trunk/Ohana/src/opihi/cmd.data/spline_apply.c
===================================================================
--- /trunk/Ohana/src/opihi/cmd.data/spline_apply.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/cmd.data/spline_apply.c	(revision 7080)
@@ -34,6 +34,6 @@
 
   /* create an output matrix buffer with desired nx, ny */
-  fits_free_matrix (&out[0].matrix);
-  fits_free_header (&out[0].header);
+  gfits_free_matrix (&out[0].matrix);
+  gfits_free_header (&out[0].header);
 
   out[0].bitpix = y1[0].bitpix;
@@ -41,11 +41,11 @@
   out[0].bscale = y1[0].bscale;
   out[0].bzero  = y1[0].bzero;
-  fits_copy_header (&y1[0].header, &out[0].header);
-  fits_modify (&out[0].header, "NAXIS1", "%d", 1, nx);
-  fits_modify (&out[0].header, "NAXIS2", "%d", 1, ny);
+  gfits_copy_header (&y1[0].header, &out[0].header);
+  gfits_modify (&out[0].header, "NAXIS1", "%d", 1, nx);
+  gfits_modify (&out[0].header, "NAXIS2", "%d", 1, ny);
 
   out[0].header.Naxis[0] = nx;
   out[0].header.Naxis[1] = ny;
-  fits_create_matrix (&out[0].header, &out[0].matrix);
+  gfits_create_matrix (&out[0].header, &out[0].matrix);
   if ((y1[0].file[0] != '*') && (y1[0].file[0] != '(')) {
     sprintf (out[0].file, "*%s", y1[0].file);
Index: /trunk/Ohana/src/opihi/cmd.data/spline_construct.c
===================================================================
--- /trunk/Ohana/src/opihi/cmd.data/spline_construct.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/cmd.data/spline_construct.c	(revision 7080)
@@ -26,7 +26,7 @@
   out[0].bscale = in[0].bscale;
   out[0].bzero  = in[0].bzero;
-  fits_copy_matrix_info (&in[0].matrix, &out[0].matrix);
-  fits_copy_header (&in[0].header, &out[0].header);
-  fits_create_matrix (&out[0].header, &out[0].matrix);
+  gfits_copy_matrix_info (&in[0].matrix, &out[0].matrix);
+  gfits_copy_header (&in[0].header, &out[0].header);
+  gfits_create_matrix (&out[0].header, &out[0].matrix);
 
   xdir = FALSE;
Index: /trunk/Ohana/src/opihi/cmd.data/style.c
===================================================================
--- /trunk/Ohana/src/opihi/cmd.data/style.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/cmd.data/style.c	(revision 7080)
@@ -1,68 +1,9 @@
 # include "data.h"
-# define NCOLORS 9
-static char colors[9][10] = {"black", "white", "red", "orange", "yellow", "green", "blue", "indigo", "violet"};
 
 int style (int argc, char **argv) {
   
-  int N, Ngraph;
   Graphdata graphmode;
 
-  Ngraph = -1;
-  if ((N = get_argument (argc, argv, "-n"))) {
-    remove_argument (N, &argc, argv);
-    Ngraph = atof (argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if (!GetGraph (&graphmode, NULL, &Ngraph)) return (FALSE);
-
-  if (argc == 1) {
-    fprintf (stderr, "current style (%d): -x %d -c %s -pt %d -lt %d -lw %f -sz %f\n", Ngraph,
-	     graphmode.style, colors[graphmode.color], graphmode.ptype, 
-	     graphmode.ltype, graphmode.lweight,
-	     graphmode.size);
-    return (TRUE);
-  }
-
-  if ((N = get_argument (argc, argv, "-lt"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.ltype = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "-lw"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.lweight = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "-pt"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.ptype = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "+eb"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.ebar = TRUE;
-  }
-  if ((N = get_argument (argc, argv, "-eb"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.ebar = FALSE;
-  }
-  if ((N = get_argument (argc, argv, "-sz"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.size = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "-c"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.color = KapaColorByName (argv[N]);
-    if (graphmode.color == -1) return (FALSE);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "-x"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.style = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-
-  SetGraph (graphmode);
+  if (!style_args (&graphmode, &argc, argv, -1)) return FALSE;
 
   if (argc > 1) {
@@ -70,7 +11,6 @@
     return (FALSE);
   }
+  SetGraph (graphmode);
 
   return (TRUE);
-
 }
-
Index: /trunk/Ohana/src/opihi/cmd.data/subraster.c
===================================================================
--- /trunk/Ohana/src/opihi/cmd.data/subraster.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/cmd.data/subraster.c	(revision 7080)
@@ -53,6 +53,6 @@
 
   if ((obuf = SelectBuffer (argv[2], ANYBUFFER, TRUE)) == NULL) return (FALSE);
-  fits_free_matrix (&obuf[0].matrix);
-  fits_free_header (&obuf[0].header);
+  gfits_free_matrix (&obuf[0].matrix);
+  gfits_free_header (&obuf[0].header);
 
   obuf[0].bitpix = ibuf[0].bitpix;
@@ -62,10 +62,10 @@
   /* strcpy (obuf[0].name, ibuf[0].name); */
   strcpy (obuf[0].file, ibuf[0].file);
-  fits_copy_header (&ibuf[0].header, &obuf[0].header);
-  fits_modify (&obuf[0].header, "NAXIS1", "%d", 1, Nx);
-  fits_modify (&obuf[0].header, "NAXIS2", "%d", 1, Ny);
+  gfits_copy_header (&ibuf[0].header, &obuf[0].header);
+  gfits_modify (&obuf[0].header, "NAXIS1", "%d", 1, Nx);
+  gfits_modify (&obuf[0].header, "NAXIS2", "%d", 1, Ny);
   obuf[0].header.Naxis[0] = Nx;
   obuf[0].header.Naxis[1] = Ny;
-  fits_create_matrix (&obuf[0].header, &obuf[0].matrix);
+  gfits_create_matrix (&obuf[0].header, &obuf[0].matrix);
 
   for (j = 0; j < ny; j++) {
Index: /trunk/Ohana/src/opihi/cmd.data/svd.c
===================================================================
--- /trunk/Ohana/src/opihi/cmd.data/svd.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/cmd.data/svd.c	(revision 7080)
@@ -20,24 +20,24 @@
 
   /* U is Nx, Ny */
-  fits_free_matrix (&Mu[0].matrix);
-  fits_free_header (&Mu[0].header);
+  gfits_free_matrix (&Mu[0].matrix);
+  gfits_free_header (&Mu[0].header);
   Mu[0].bitpix = Ma[0].bitpix;
   Mu[0].unsign = Ma[0].unsign;
   Mu[0].bscale = Ma[0].bscale;
   Mu[0].bzero  = Ma[0].bzero;
-  fits_copy_header (&Ma[0].header, &Mu[0].header);
-  fits_create_matrix (&Mu[0].header, &Mu[0].matrix);
+  gfits_copy_header (&Ma[0].header, &Mu[0].header);
+  gfits_create_matrix (&Mu[0].header, &Mu[0].matrix);
   
   /* V is Nx, Nx */
-  fits_free_matrix (&Mv[0].matrix);
-  fits_free_header (&Mv[0].header);
+  gfits_free_matrix (&Mv[0].matrix);
+  gfits_free_header (&Mv[0].header);
   Mv[0].bitpix = Ma[0].bitpix;
   Mv[0].unsign = Ma[0].unsign;
   Mv[0].bscale = Ma[0].bscale;
   Mv[0].bzero  = Ma[0].bzero;
-  fits_copy_header (&Ma[0].header, &Mv[0].header);
-  fits_modify (&Mv[0].header, "NAXIS2", "%d", 1, Nx);
+  gfits_copy_header (&Ma[0].header, &Mv[0].header);
+  gfits_modify (&Mv[0].header, "NAXIS2", "%d", 1, Nx);
   Mv[0].header.Naxis[1] = Nx;
-  fits_create_matrix (&Mv[0].header, &Mv[0].matrix);
+  gfits_create_matrix (&Mv[0].header, &Mv[0].matrix);
 
   /* w is Nx */
Index: /trunk/Ohana/src/opihi/cmd.data/vgrid.c
===================================================================
--- /trunk/Ohana/src/opihi/cmd.data/vgrid.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/cmd.data/vgrid.c	(revision 7080)
@@ -50,6 +50,6 @@
   free (bf[0].header.buffer);  /* ALLOCATEd in SelectBuffer */
   free (bf[0].matrix.buffer);  /* ALLOCATEd in SelectBuffer */
-  fits_create_header (&bf[0].header);
-  fits_create_matrix (&bf[0].header, &bf[0].matrix);
+  gfits_create_header (&bf[0].header);
+  gfits_create_matrix (&bf[0].header, &bf[0].matrix);
 
   ALLOCATE (val, float, Nx*Ny);
Index: /trunk/Ohana/src/opihi/cmd.data/wd.c
===================================================================
--- /trunk/Ohana/src/opihi/cmd.data/wd.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/cmd.data/wd.c	(revision 7080)
@@ -80,5 +80,5 @@
   memcpy (temp_header.buffer, buf[0].header.buffer, temp_header.size);
 
-  if (temp_header.Naxes) fits_convert_format (&temp_header, &temp_matrix, outBitpix, outScale, outZero, outUnsign);
+  if (temp_header.Naxes) gfits_convert_format (&temp_header, &temp_matrix, outBitpix, outScale, outZero, outUnsign);
 
   if (Extend) {
@@ -88,5 +88,5 @@
 
     /* assume failure means non-existent file */
-    if (!fits_read_header (argv[2], &Xhead)) {
+    if (!gfits_read_header (argv[2], &Xhead)) {
 
       Xhead.simple = TRUE;
@@ -99,16 +99,16 @@
       Xhead.unsign = FALSE;
       
-      fits_create_header (&Xhead);
-      fits_modify (&Xhead, "NEXTEND", "%d", 1, 0);
+      gfits_create_header (&Xhead);
+      gfits_modify (&Xhead, "NEXTEND", "%d", 1, 0);
       f = fopen (argv[2], "w");
       fclose (f);
     }
 
-    fits_modify (&Xhead, "EXTEND", "%t", 1, TRUE);
+    gfits_modify (&Xhead, "EXTEND", "%t", 1, TRUE);
 
     Nextend = 0;
-    fits_scan (&Xhead, "NEXTEND", "%d", 1, &Nextend);
+    gfits_scan (&Xhead, "NEXTEND", "%d", 1, &Nextend);
     Nextend ++;
-    fits_modify (&Xhead, "NEXTEND", "%d", 1, Nextend);
+    gfits_modify (&Xhead, "NEXTEND", "%d", 1, Nextend);
 
     /* write the main header to the start of the file */
@@ -149,5 +149,5 @@
     }
     /* write the matrix buffer (automatically goes to end of file */
-    if (!fits_write_matrix (argv[2], &temp_matrix)) {
+    if (!gfits_write_matrix (argv[2], &temp_matrix)) {
       fprintf (stderr, "failed to write file\n");
       status = FALSE;
@@ -156,27 +156,27 @@
     status = TRUE;
   done1:
-    fits_free_header (&Xhead);
-    fits_free_header (&temp_header);
-    fits_free_matrix (&temp_matrix);
+    gfits_free_header (&Xhead);
+    gfits_free_header (&temp_header);
+    gfits_free_matrix (&temp_matrix);
     return (status);
   }
   
   /* the actual write-to-disk goes here */
-  if (!fits_write_header (argv[2], &temp_header)) {
+  if (!gfits_write_header (argv[2], &temp_header)) {
     fprintf (stderr, "failed to write header\n");
-    fits_free_header (&temp_header);
-    fits_free_matrix (&temp_matrix);
+    gfits_free_header (&temp_header);
+    gfits_free_matrix (&temp_matrix);
     return (FALSE);
   }
   
-  if (!fits_write_matrix (argv[2], &temp_matrix)) {
+  if (!gfits_write_matrix (argv[2], &temp_matrix)) {
     fprintf (stderr, "failed to write matrix\n");
-    fits_free_header (&temp_header);
-    fits_free_matrix (&temp_matrix);
+    gfits_free_header (&temp_header);
+    gfits_free_matrix (&temp_matrix);
     return (FALSE);
   }
 
-  fits_free_header (&temp_header);
-  fits_free_matrix (&temp_matrix);
+  gfits_free_header (&temp_header);
+  gfits_free_matrix (&temp_matrix);
   
   return (TRUE);
Index: /trunk/Ohana/src/opihi/dimm/Image.c
===================================================================
--- /trunk/Ohana/src/opihi/dimm/Image.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/dimm/Image.c	(revision 7080)
@@ -62,6 +62,6 @@
   header.bscale = 1;
 
-  fits_create_header (&header);
-  fits_create_matrix (&header, &matrix);
+  gfits_create_header (&header);
+  gfits_create_matrix (&header, &matrix);
   free (matrix.buffer);
 
@@ -69,15 +69,15 @@
   
   /* write meta-data to header */
-  fits_print (&header, "RA", "%lf", 1, image[0].ra);
-  fits_print (&header, "DEC", "%lf", 1, image[0].dec);
-  fits_print (&header, "EQUINOX", "%lf", 1, 2000.0);
+  gfits_print (&header, "RA", "%lf", 1, image[0].ra);
+  gfits_print (&header, "DEC", "%lf", 1, image[0].dec);
+  gfits_print (&header, "EQUINOX", "%lf", 1, 2000.0);
 
-  fits_print (&header, "AIRMASS", "%lf", 1, image[0].airmass);
-  fits_print (&header, "CCDTEMP", "%lf", 1, image[0].ccdtemp);
-  fits_print (&header, "AIRTEMP", "%lf", 1, image[0].airtemp);
-  fits_print (&header, "EXPTIME", "%lf", 1, image[0].exptime);
+  gfits_print (&header, "AIRMASS", "%lf", 1, image[0].airmass);
+  gfits_print (&header, "CCDTEMP", "%lf", 1, image[0].ccdtemp);
+  gfits_print (&header, "AIRTEMP", "%lf", 1, image[0].airtemp);
+  gfits_print (&header, "EXPTIME", "%lf", 1, image[0].exptime);
 
-  fits_write_header (filename, &header);
-  fits_write_matrix (filename, &matrix);
+  gfits_write_header (filename, &header);
+  gfits_write_matrix (filename, &matrix);
   
   return (TRUE);
Index: /trunk/Ohana/src/opihi/dimm/camera.c
===================================================================
--- /trunk/Ohana/src/opihi/dimm/camera.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/dimm/camera.c	(revision 7080)
@@ -105,6 +105,6 @@
 
     /* generate a buffer to store the image */
-    fits_free_matrix (&buf[0].matrix);
-    fits_free_header (&buf[0].header);
+    gfits_free_matrix (&buf[0].matrix);
+    gfits_free_header (&buf[0].header);
     buf[0].header.bitpix = buf[0].bitpix = 16;
     buf[0].header.unsign = buf[0].unsign = FALSE;
@@ -114,10 +114,10 @@
     buf[0].header.Naxis[0] = dx;
     buf[0].header.Naxis[1] = dy;
-    fits_create_header (&buf[0].header);
-    fits_create_matrix (&buf[0].header, &buf[0].matrix);
+    gfits_create_header (&buf[0].header);
+    gfits_create_matrix (&buf[0].header, &buf[0].matrix);
 
     ReadOut (x, y, dx, dy, 1, buf[0].matrix.buffer);
 
-    fits_convert_format (&buf[0].header, &buf[0].matrix, -32, 1.0, 0.0, FT_UNSIGN_MODE);
+    gfits_convert_format (&buf[0].header, &buf[0].matrix, -32, 1.0, 0.0, FT_UNSIGN_MODE);
 
     EXIT_STATUS (TRUE);
Index: /trunk/Ohana/src/opihi/dimm/version.c
===================================================================
--- /trunk/Ohana/src/opihi/dimm/version.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/dimm/version.c	(revision 7080)
@@ -8,5 +8,5 @@
   fprintf (stderr, "%s\n", opihi_version());
   fprintf (stderr, "%s\n", ohana_version());
-  fprintf (stderr, "%s\n", fits_version());
+  fprintf (stderr, "%s\n", gfits_version());
 
   fprintf (stderr, "compiled on %s %s\n", __DATE__, __TIME__);
Index: /trunk/Ohana/src/opihi/doc/ChangeLog.txt
===================================================================
--- /trunk/Ohana/src/opihi/doc/ChangeLog.txt	(revision 7079)
+++ /trunk/Ohana/src/opihi/doc/ChangeLog.txt	(revision 7080)
@@ -1,2 +1,17 @@
+
+2006.05.03:
+
+  opihi-2-7 : converted to gfits APIs (forces libfits 1.6)
+	      consolidated style argument parsing
+	      added style arguments to astro plotting
+
+  mana-1-5  : converted to gfits APIs (forces libfits 1.6)
+  dvo-0-5   : converted to gfits APIs (forces libfits 1.6)
+      	      consolidated style argument parsing
+  pantasks-0-5 converted to gfits APIs (forces libfits 1.6)
+  pcontrol-0-5 converted to gfits APIs (forces libfits 1.6)
+  pclient-0-5  converted to gfits APIs (forces libfits 1.6)
+  dimm-0-4     converted to gfits APIs (forces libfits 1.6)
+
 
 2006.03.26:
Index: /trunk/Ohana/src/opihi/dvo/LoadImages.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/LoadImages.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/dvo/LoadImages.c	(revision 7080)
@@ -12,9 +12,9 @@
   sprintf (filename, "%s/Images.dat", catdir);
 
-  fits_db_init (&db);
+  gfits_db_init (&db);
   db.lockstate = LCK_SOFT;
   db.timeout   = 120.0;
 
-  if (!fits_db_lock (&db, filename)) {
+  if (!gfits_db_lock (&db, filename)) {
     fprintf (stderr, "error opening image catalog %s (1)\n", filename);
     return (NULL);
@@ -29,7 +29,7 @@
 
   dvo_image_load (&db, TRUE, FALSE);
-  fits_db_close (&db);
+  gfits_db_close (&db);
 
-  image = fits_table_get_Image (&db.ftable, nimage, &db.swapped);
+  image = gfits_table_get_Image (&db.ftable, nimage, &db.swapped);
   return (image);
 }
Index: /trunk/Ohana/src/opihi/dvo/cmpRead.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/cmpRead.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/dvo/cmpRead.c	(revision 7080)
@@ -17,7 +17,7 @@
   /* init & load in table data */
   table.header   = &theader;
-  if (!fits_fread_ftable (f, &table, "SMPFILE")) goto escape;
+  if (!gfits_fread_ftable (f, &table, "SMPFILE")) goto escape;
 
-  smpdata = fits_table_get_SMPData (&table, &Nstars, NULL);
+  smpdata = gfits_table_get_SMPData (&table, &Nstars, NULL);
 
   ALLOCATE (stars, CMPstars, Nstars);
Index: /trunk/Ohana/src/opihi/dvo/cmpload.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/cmpload.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/dvo/cmpload.c	(revision 7080)
@@ -36,5 +36,5 @@
   }
 
-  if (!fits_read_header (argv[2], &header)) {
+  if (!gfits_read_header (argv[2], &header)) {
     fprintf (stderr, "ERROR: can't read header for %s\n", argv[2]);
     return (FALSE);
@@ -42,8 +42,8 @@
 
   /* find expected number of stars */
-  fits_scan (&header, "NSTARS", "%d", 1, &Nstar);
+  gfits_scan (&header, "NSTARS", "%d", 1, &Nstar);
   if (Nstar == 0) {
     fprintf (stderr, "ERROR: can't get NSTARS from header\n");
-    fits_free_header (&header);
+    gfits_free_header (&header);
     return (FALSE);
   }
@@ -52,5 +52,5 @@
   if (f == NULL) {
     fprintf (stderr, "ERROR: can't read data from %s\n", argv[2]);
-    fits_free_header (&header);
+    gfits_free_header (&header);
     return (FALSE);
   }
@@ -134,5 +134,5 @@
   free (overlay);
 
-  fits_free_header (&header);
+  gfits_free_header (&header);
   free (buffer);
 
Index: /trunk/Ohana/src/opihi/dvo/cmpread.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/cmpread.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/dvo/cmpread.c	(revision 7080)
@@ -41,5 +41,5 @@
 
   /* load FITS header */
-  if (!fits_read_header (argv[2], &header)) {
+  if (!gfits_read_header (argv[2], &header)) {
     fprintf (stderr, "ERROR: can't read header for %s\n", argv[2]);
     return (FALSE);
@@ -49,5 +49,5 @@
     if (!GetCoords (&coords, &header)) {
       fprintf (stderr, "can't get WCS info from header\n");
-      fits_free_header (&header);
+      gfits_free_header (&header);
       return (FALSE);
     }
@@ -58,5 +58,5 @@
   if (f == NULL) {
     fprintf (stderr, "ERROR: can't read data from %s\n", argv[2]);
-    fits_free_header (&header);
+    gfits_free_header (&header);
     return (FALSE);
   }
@@ -64,7 +64,7 @@
 
   /* find expected number of stars */
-  if (!fits_scan (&header, "NSTARS", "%d", 1, &Nstars)) {
+  if (!gfits_scan (&header, "NSTARS", "%d", 1, &Nstars)) {
     fprintf (stderr, "ERROR: can't get NSTARS from header\n");
-    fits_free_header (&header);
+    gfits_free_header (&header);
     return (FALSE);
   }
@@ -72,8 +72,8 @@
   /* read from FITS table or from text table */
   extend = FALSE;
-  fits_scan (&header, "EXTEND",  "%t", 1, &extend);
+  gfits_scan (&header, "EXTEND",  "%t", 1, &extend);
   if (extend) {
     fprintf (stderr, "reading from FITS cmp file %s\n", argv[2]);
-    Nbytes = fits_matrix_size (&header);
+    Nbytes = gfits_matrix_size (&header);
     fseek (f, Nbytes, SEEK_CUR); 
     stars = cmpReadFits (f, &Nstars);
@@ -81,5 +81,5 @@
     /* allocate space for stars */
     fprintf (stderr, "reading from TEXT cmp file %s\n", argv[2]);
-    if (!fits_scan (&header, "NSTARS", "%d", 1, &Nstars)) {
+    if (!gfits_scan (&header, "NSTARS", "%d", 1, &Nstars)) {
       fprintf (stderr, "ERROR: failed to find NSTARS\n");
       exit (1);
@@ -138,5 +138,5 @@
   }      
   free (stars);
-  fits_free_header (&header);
+  gfits_free_header (&header);
   fprintf (stderr, "loaded %d objects\n", Nstars);
   return (TRUE);
Index: /trunk/Ohana/src/opihi/dvo/ddmags.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/ddmags.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/dvo/ddmags.c	(revision 7080)
@@ -20,4 +20,5 @@
   RegionName = NULL;
   RegionList = NULL;
+  skylist = NULL;
 
   /* load photcode information */
@@ -66,9 +67,11 @@
     }
     catalog.catflags = LOAD_AVES | LOAD_MEAS | LOAD_SECF;
-    if (!load_catalog (&catalog, FALSE)) {
+    if (!load_catalog (&catalog, TRUE)) {
       unlock_catalog (&catalog);
       continue;
     }
     unlock_catalog (&catalog);
+    // fprintf (stderr, "seaching %s with %d stars\n", catalog.filename, catalog.Naverage);
+    // ListPhotSelections ();
 
     /* get correct mags, convert to X,Y */
@@ -109,4 +112,6 @@
       if (M2 != NULL) free (M2);
     }
+    // fprintf (stderr, "selected %d stars\n", Npts);
+
     if (catalog.average != NULL) free (catalog.average);
     if (catalog.secfilt != NULL) free (catalog.secfilt);
Index: /trunk/Ohana/src/opihi/dvo/detrend.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/detrend.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/dvo/detrend.c	(revision 7080)
@@ -122,5 +122,5 @@
 
   /* load in database header */
-  if (!fits_read_header (DataBase, &header)) {
+  if (!gfits_read_header (DataBase, &header)) {
     fprintf (stderr, "ERROR: trouble reading database header\n");
     return (FALSE);
@@ -136,5 +136,5 @@
 
   /* load existing data from database */
-  fits_scan (&header, "NIMAGES", "%d", 1, &Nimage);
+  gfits_scan (&header, "NIMAGES", "%d", 1, &Nimage);
   ALLOCATE (pimage, RegImage, Nimage);
   status = fread (pimage, sizeof(RegImage), Nimage, f);
@@ -143,9 +143,9 @@
   if (status != Nimage) {
     fprintf (stderr, "ERROR: header and data in dB don't match (%d vs %d)\n", Nimage, status);
-    fits_free_header (&header);
+    gfits_free_header (&header);
     free (pimage);
     return (FALSE);
   }
-  fits_convert_RegImage (pimage, sizeof (RegImage), Nimage);
+  gfits_convert_RegImage (pimage, sizeof (RegImage), Nimage);
 
   N = 0;
@@ -202,5 +202,5 @@
 
   free (pimage);
-  fits_free_header (&header);
+  gfits_free_header (&header);
   return (TRUE);
 
Index: /trunk/Ohana/src/opihi/dvo/dmags.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/dmags.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/dvo/dmags.c	(revision 7080)
@@ -20,4 +20,5 @@
   RegionName = NULL;
   RegionList = NULL;
+  skylist = NULL;
 
   /* load photcode information */
Index: /trunk/Ohana/src/opihi/dvo/fitcolors.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/fitcolors.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/dvo/fitcolors.c	(revision 7080)
@@ -11,11 +11,13 @@
   
   int *list, Nlist;
-  int i, k, m, NP1, NP2, NP, Np, Npts, NPTS;
+  int i, k, m, N, NP1, NP2, NP, Np, Npts, NPTS;
   int N1, N2, i1, i2, mode[4];
   int Nsec, status;
+  void *oldsignal;
   char *RegionName, *RegionList;
   char *cmd, *outcmd, *camera;
   double *M1, *M2;
   float *out;
+  float minDelta, maxDelta, minColor, maxColor;
 
   Catalog *catalog;
@@ -27,6 +29,10 @@
   /* defaults */
   catalog  = NULL;
+  skylist  = NULL;
   codelist = NULL;
   xvec = yvec = NULL;
+
+  oldsignal = signal (SIGINT, handle_interrupt);
+  interrupt = FALSE;
 
   /* load photcode information */
@@ -36,5 +42,25 @@
   /* interpret command-line options */
   if (!SetRegionSelection (&argc, argv, &RegionName, &RegionList)) goto escape;
-  if (!SetPhotSelections (&argc, argv, 1)) goto usage;
+  if (!SetPhotSelections (&argc, argv, 4)) goto usage;
+
+  // range for valid data points (exclude extreme outliers)
+  minDelta = -0.2;
+  maxDelta = +0.2;
+  minColor = -1.0;
+  maxColor = +3.0;
+  if ((N = get_argument (argc, argv, "-color-range"))) {
+    remove_argument (N, &argc, argv);
+    minColor = atof (argv[N]);
+    remove_argument (N, &argc, argv);
+    maxColor = atof (argv[N]);
+    remove_argument (N, &argc, argv);
+  }
+  if ((N = get_argument (argc, argv, "-delta-range"))) {
+    remove_argument (N, &argc, argv);
+    minDelta = atof (argv[N]);
+    remove_argument (N, &argc, argv);
+    maxDelta = atof (argv[N]);
+    remove_argument (N, &argc, argv);
+  }
 
   /* interpret command-line options */
@@ -44,5 +70,5 @@
   if (!(Np = GetPhotcodeCodebyName (argv[2]))) {
     fprintf (stderr, "ERROR: photcode not found in photcode table\n");
-    return (FALSE);
+    goto usage;
   }
   camera = argv[3];
@@ -59,7 +85,10 @@
   mode[0] = mode[1] = MAG_REL;  /* we should be applying any relative photometry corrections here */
   mode[2] = mode[3] = MAG_AVE;
+
   /* set the reference colors */
   code[2] = GetPhotcodebyCode (codelist[0][0].c1);
   code[3] = GetPhotcodebyCode (codelist[0][0].c2);
+  if ((code[2] == NULL) || (code[3] == NULL)) goto color_missing;
+
   /* all codes must have the same colors (validate) */
   for (i = 0; i < NP; i++) {
@@ -70,11 +99,11 @@
 
   /* output is a named buffer */
-  if ((buf = SelectBuffer (argv[1], ANYVECTOR, TRUE)) == NULL) return (FALSE);
+  if ((buf = SelectBuffer (argv[1], ANYVECTOR, TRUE)) == NULL) goto usage;
   buf[0].matrix.Naxis[0] = NP;
   buf[0].matrix.Naxis[1] = NP;
 
   /* I should encapsulate this in a create_default_buffer */
-  fits_free_matrix (&buf[0].matrix);
-  fits_free_header (&buf[0].header);
+  gfits_free_matrix (&buf[0].matrix);
+  gfits_free_header (&buf[0].header);
   buf[0].header.bitpix = buf[0].bitpix = -32;
   buf[0].header.unsign = buf[0].unsign = FALSE;
@@ -84,6 +113,6 @@
   buf[0].header.Naxis[0] = NP;
   buf[0].header.Naxis[1] = NP;
-  fits_create_header (&buf[0].header);
-  fits_create_matrix (&buf[0].header, &buf[0].matrix);
+  gfits_create_header (&buf[0].header);
+  gfits_create_matrix (&buf[0].header, &buf[0].matrix);
   out = (float *) buf[0].matrix.buffer;
   /* we set a default flag value of -1 */
@@ -114,6 +143,8 @@
     }
     unlock_catalog (&catalog[k]);
-  }
-  fprintf (stderr, "using %d regions\n", skylist[0].Nregions);
+    // XXX make a subset catalog consisting of only Average and Measure values which meet
+    // the selection criteria
+  }
+  fprintf (stderr, "using %d possible regions\n", skylist[0].Nregions);
 
   /* vectors to save data */
@@ -124,4 +155,6 @@
 
   /*** generate the color-color vectors for the pairs ***/
+  // XXXX this function also needs to check for interrupts
+  // XXX exclude obvious outliers (eg, fabs(dM) > 0.2)
   /* loop over chip photcode pairs */
   for (NP1 = 0; NP1 < NP; NP1++) {
@@ -135,12 +168,19 @@
 	if (catalog[k].Naverage == 0) continue;
 
+	// fprintf (stderr, "seaching %s with %d stars\n", catalog[k].filename, catalog[k].Naverage);
+	// ListPhotSelections ();
+
 	/* get correct mags, convert to X,Y */
 	for (i = 0; i < catalog[k].Naverage; i++) {
+	  if (interrupt) goto escape;
+
 	  M1 = M2 = NULL;
 	  m = catalog[k].average[i].offset;
 
+	  SetSelectionParam (0);
 	  M1 = ExtractDMag (&code[0], &mode[0], &catalog[k].average[i], &catalog[k].secfilt[i*Nsec], &catalog[k].measure[m], &N1);
 	  if (N1 == 0) goto skip_star;
 
+	  SetSelectionParam (2);
 	  M2 = ExtractDMag (&code[2], &mode[2], &catalog[k].average[i], &catalog[k].secfilt[i*Nsec], &catalog[k].measure[m], &N2);
 	  if (N2 == 0) goto skip_star;
@@ -148,4 +188,8 @@
 	  for (i1 = 0; i1 < N1; i1++) {
 	    for (i2 = 0; i2 < N2; i2++) {
+	      if (M1[i1] < minDelta) continue;
+	      if (M1[i1] > maxDelta) continue;
+	      if (M2[i2] < minColor) continue;
+	      if (M2[i2] > maxColor) continue;
 	      yvec[0].elements[Npts] = M1[i1];
 	      xvec[0].elements[Npts] = M2[i2];
@@ -162,4 +206,5 @@
 	  if (M2 != NULL) free (M2);
 	}
+	// fprintf (stderr, "selected %d stars\n", Npts);
       }
 
@@ -184,4 +229,5 @@
   if (RegionName != NULL) free (RegionName);
   if (RegionList != NULL) free (RegionList);
+  signal (SIGINT, oldsignal);
   return (TRUE);
 
@@ -190,10 +236,15 @@
   goto escape;
 
+color_missing:
+  fprintf (stderr, "error: chips are missing a color reference\n");
+  goto escape;
+
 color_mismatch:
   fprintf (stderr, "error: all chips must have the same colors\n");
+  goto escape;
 
 escape:
-  free_catalog (catalog, skylist[0].Nregions);
-  SkyListFree (skylist, ((RegionName != NULL) || (RegionList != NULL)));
+  if (skylist != NULL) free_catalog (catalog, skylist[0].Nregions);
+  if (skylist != NULL) SkyListFree (skylist, ((RegionName != NULL) || (RegionList != NULL)));
   if (RegionName != NULL) free (RegionName);
   if (RegionList != NULL) free (RegionList);
@@ -201,4 +252,5 @@
   DeleteVector (xvec);
   DeleteVector (yvec);
+  signal (SIGINT, oldsignal);
   return (FALSE);
 }
Index: /trunk/Ohana/src/opihi/dvo/gstar.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/gstar.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/dvo/gstar.c	(revision 7080)
@@ -2,4 +2,7 @@
 
 void print_value (FILE *f, double value, short int ival);
+void initPhotcodeSequence (int Nsec);
+void freePhotcodeSequence ();
+void printPhotcodeSequence (Average *average, SecFilt *secfilt, int entry, int type);
 
 int gstar (int argc, char **argv) {
@@ -16,5 +19,4 @@
   SkyList *skylist;
   Catalog catalog;
-  PhotCode *code;
   int TimeFormat;
   time_t TimeReference;
@@ -128,4 +130,6 @@
     ALLOCATE (vec4[0].elements, float, NPTS);
   }
+
+  initPhotcodeSequence (Nsec);
 
   for (i = Nlo; (i < catalog.Naverage) && !found; i++) {
@@ -143,24 +147,18 @@
 		 0.01*catalog.average[k].Xp, catalog.average[k].code);
       
-	/* filter names -- primary code is 0 in this function */
-	for (j = 0; j < Nsec + 1; j++) {
-	  code = GetPhotcodebyNsec (j);
-	  fprintf (GetOutfile (), "%s ", code[0].name);
-	}
+	/* filter names */
+	for (j = 0; j < Nsec + 1; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsec*k], j, 3);
 	fprintf (GetOutfile (), "\n");
 
 	/* average mags */
-	print_value (GetOutfile(), catalog.average[k].M, catalog.average[k].M);
-	for (j = 0; j < Nsec; j++) print_value (GetOutfile(), catalog.secfilt[j + Nsec*k].M_PS, catalog.secfilt[j + Nsec*k].M_PS);
+	for (j = 0; j < Nsec + 1; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsec*k], j, 0);
 	fprintf (GetOutfile(), "\n");
 
 	/* average mag errors */
-	print_value (GetOutfile(), catalog.average[k].dM, catalog.average[k].dM);
-	for (j = 0; j < Nsec; j++) print_value (GetOutfile(), catalog.secfilt[j + Nsec*k].dM_PS, catalog.secfilt[j + Nsec*k].dM_PS);
+	for (j = 0; j < Nsec + 1; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsec*k], j, 1);
 	fprintf (GetOutfile(), "\n");
 
 	/* average mag chisq */
-	print_value (GetOutfile(), pow (10.0, 0.01*catalog.average[k].Xm), catalog.average[k].Xm);
-	for (j = 0; j < Nsec; j++) print_value (GetOutfile(), pow (10.0, 0.01*catalog.secfilt[j + Nsec*k].Xm), catalog.secfilt[j + Nsec*k].Xm);
+	for (j = 0; j < Nsec + 1; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsec*k], j, 2);
 	fprintf (GetOutfile(), "\n");
       }
@@ -216,8 +214,8 @@
   if (catalog.secfilt != 0) free (catalog.secfilt);
 
+  freePhotcodeSequence ();
   return (TRUE);
 
 }
-
 
 void print_value (FILE *f, double value, short int ival) {
@@ -227,2 +225,70 @@
     fprintf (f, "%6.3f ", value);
 }
+
+// XXX fix printing to be in photcode numerical order for PRI/SEC data
+static int *sequence = NULL;
+
+void initPhotcodeSequence (int Nsec) {
+
+  int j;
+  int *codeNumber;
+  PhotCode *code;
+
+  // sequence contains, in desired order, secfilt number (0 == pri)
+  ALLOCATE (sequence, int, Nsec + 1);
+  ALLOCATE (codeNumber, int, Nsec + 1);
+  
+  /* filter names -- primary code is 0 in this function */
+  for (j = 0; j < Nsec + 1; j++) {
+    code = GetPhotcodebyNsec (j);
+    codeNumber[j] = code[0].code;
+    sequence[j] = j;
+  }
+
+  isort_pair (codeNumber, sequence, Nsec + 1);
+  free (codeNumber);
+}
+
+void freePhotcodeSequence () {
+  free (sequence);
+}
+
+
+void printPhotcodeSequence (Average *average, SecFilt *secfilt, int entry, int type) {
+
+  int seq;
+  PhotCode *code;
+
+  seq = sequence[entry] - 1;
+
+  switch (type) {
+    case 0: /* average mags */
+      if (seq == -1) {
+	print_value (GetOutfile(), average[0].M, average[0].M);
+      } else {
+	print_value (GetOutfile(), secfilt[seq].M_PS, secfilt[seq].M_PS);
+      }
+      break;
+
+    case 1: /* average mags errors */
+      if (seq == -1) {
+	print_value (GetOutfile(), average[0].dM, average[0].dM);
+      } else {
+	print_value (GetOutfile(), secfilt[seq].dM_PS, secfilt[seq].dM_PS);
+      }
+      break;
+
+    case 2: /* average mag chisq */
+      if (seq == -1) {
+	print_value (GetOutfile(), pow (10.0, 0.01*average[0].Xm), average[0].Xm);
+      } else {
+	print_value (GetOutfile(), pow (10.0, 0.01*secfilt[seq].Xm), secfilt[seq].Xm);
+      }
+      break;
+
+    case 3: /* filter names */
+      code = GetPhotcodebyNsec (seq + 1);
+      fprintf (GetOutfile (), "%6s ", code[0].name);
+      break;
+  }
+}
Index: /trunk/Ohana/src/opihi/dvo/images.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/images.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/dvo/images.c	(revision 7080)
@@ -11,8 +11,6 @@
   Graphdata graphmode;
   char name[256];
-  int Ngraph;
 
-  Ngraph = 0;
-  if (!GetGraph (&graphmode, NULL, &Ngraph)) return (FALSE);
+  if (!style_args (&graphmode, &argc, argv, 0)) return FALSE;
 
   ByName = FALSE;
@@ -67,4 +65,5 @@
     return (FALSE);
   }
+  SetGraph (graphmode);
   
   if ((image = LoadImages (&Nimage)) == NULL) return (FALSE);
Index: /trunk/Ohana/src/opihi/dvo/imbox.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/imbox.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/dvo/imbox.c	(revision 7080)
@@ -9,5 +9,6 @@
   Coords coords;
   Graphdata graphmode;
-  int Ngraph;
+
+  if (!style_args (&graphmode, &argc, argv, 0)) return FALSE;
 
   if (argc != 2) {
@@ -15,8 +16,7 @@
     return (FALSE);
   }
-  Ngraph = 0;
-  if (!GetGraph (&graphmode, NULL, &Ngraph)) return (FALSE);
+  SetGraph (graphmode);
 
-  if (!fits_read_header (argv[1], &header)) {
+  if (!gfits_read_header (argv[1], &header)) {
     fprintf (stderr, "file not found\n");
     return (FALSE);
@@ -25,5 +25,5 @@
   Nextend = 0;
   if (header.Naxes == 0) {
-    fits_scan (&header, "NEXTEND", "%d", 1, &Nextend);
+    gfits_scan (&header, "NEXTEND", "%d", 1, &Nextend);
   }
   
@@ -38,5 +38,5 @@
   for (i = Nextend ? 0 : -1; i < Nextend; i++) {
     if (Nextend) {
-      fits_read_Xheader (argv[1], &header, i);
+      gfits_read_Xheader (argv[1], &header, i);
     }
     if (!GetCoords (&coords, &header)) {
@@ -86,5 +86,5 @@
   }
 
-  fits_free_header (&header);
+  gfits_free_header (&header);
   free (Xvec.elements);
   free (Yvec.elements);
Index: /trunk/Ohana/src/opihi/dvo/imrough.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/imrough.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/dvo/imrough.c	(revision 7080)
@@ -249,7 +249,7 @@
 
   /* load in database header */
-  if (!fits_fread_header (f, &header)) {
+  if (!gfits_fread_header (f, &header)) {
     fclose (f);
-    fits_free_header (&header);
+    gfits_free_header (&header);
     fprintf (stderr, "ERROR: trouble reading database header\n");
     return ((RegImage *) NULL);
@@ -257,5 +257,5 @@
 
   /* check for database v1, v2 */
-  fits_scan (&header, "ORIGIN", "%s", 1, line);
+  gfits_scan (&header, "ORIGIN", "%s", 1, line);
   if (!strcmp (line, "MDM Observatory")) {
 
@@ -263,5 +263,5 @@
     
     /* load existing data from database */
-    fits_scan (&header, "NIMAGES", "%d", 1, &Nimage);
+    gfits_scan (&header, "NIMAGES", "%d", 1, &Nimage);
     ALLOCATE (image, RegImage, Nimage);
     status = fread (image, sizeof(RegImage), Nimage, f);
@@ -270,9 +270,9 @@
     if (status != Nimage) {
       fprintf (stderr, "ERROR: header and data in dB don't match (%d vs %d)\n", Nimage, status);
-      fits_free_header (&header);
+      gfits_free_header (&header);
       free (image);
       return ((RegImage *) NULL);
     }
-    fits_convert_RegImage (image, sizeof (RegImage), Nimage);
+    gfits_convert_RegImage (image, sizeof (RegImage), Nimage);
 
     *nimage = Nimage;
@@ -281,8 +281,8 @@
 
   /* we probably have v3 */
-  if (!fits_fread_matrix (f, &matrix, &header)) {
+  if (!gfits_fread_matrix (f, &matrix, &header)) {
     fclose (f);
-    fits_free_header (&header);
-    fits_free_matrix (&matrix);
+    gfits_free_header (&header);
+    gfits_free_matrix (&matrix);
     fprintf (stderr, "ERROR: trouble reading database matrix\n");
     return ((RegImage *) NULL);
@@ -290,8 +290,8 @@
 
   table.header = &theader;
-  if (!fits_fread_ftable  (f, &table, "IMAGE_DATABASE")) {
+  if (!gfits_fread_ftable  (f, &table, "IMAGE_DATABASE")) {
     fclose (f);
-    fits_free_header (&header);
-    fits_free_matrix (&matrix);
+    gfits_free_header (&header);
+    gfits_free_matrix (&matrix);
     fprintf (stderr, "ERROR: trouble reading database table\n");
     return ((RegImage *) NULL);
@@ -300,9 +300,9 @@
   /* convert to internal format */
   image = (RegImage *) table.buffer;
-  fits_scan (table.header, "NAXIS2", "%d", 1, &Nimage);
-  fits_convert_RegImage (image, sizeof (RegImage), Nimage);
-
-  fits_free_header (&header);
-  fits_free_matrix (&matrix);
+  gfits_scan (table.header, "NAXIS2", "%d", 1, &Nimage);
+  gfits_convert_RegImage (image, sizeof (RegImage), Nimage);
+
+  gfits_free_header (&header);
+  gfits_free_matrix (&matrix);
 
   *nimage = Nimage;
Index: /trunk/Ohana/src/opihi/dvo/imsearch.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/imsearch.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/dvo/imsearch.c	(revision 7080)
@@ -91,5 +91,5 @@
 
   /* load in database header */
-  if (!fits_read_header (DataBase, &header)) {
+  if (!gfits_read_header (DataBase, &header)) {
     fprintf (stderr, "ERROR: trouble reading database header\n");
     return (FALSE);
@@ -105,5 +105,5 @@
 
   /* load existing data from database */
-  fits_scan (&header, "NIMAGES", "%d", 1, &Nimage);
+  gfits_scan (&header, "NIMAGES", "%d", 1, &Nimage);
   ALLOCATE (pimage, RegImage, Nimage);
   status = fread (pimage, sizeof(RegImage), Nimage, f);
@@ -111,9 +111,9 @@
   if (status != Nimage) {
     fprintf (stderr, "ERROR: header and data in dB don't match (%d vs %d)\n", Nimage, status);
-    fits_free_header (&header);
+    gfits_free_header (&header);
     free (pimage);
     return (FALSE);
   }
-  fits_convert_RegImage (pimage, sizeof (RegImage), Nimage);
+  gfits_convert_RegImage (pimage, sizeof (RegImage), Nimage);
 
   /* print out all data */
@@ -149,5 +149,5 @@
 
   free (pimage);
-  fits_free_header (&header);
+  gfits_free_header (&header);
   return (TRUE);
 }
Index: /trunk/Ohana/src/opihi/dvo/photometry.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/photometry.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/dvo/photometry.c	(revision 7080)
@@ -49,5 +49,6 @@
 static double MagMax, MagMin;
 static int TypeSelect, TypeValue;
-static int ErrSelect, ErrValue;
+static int ErrSelect;
+static double ErrValue;
 static int iMagSelect;
 static double iMagMin;
@@ -334,4 +335,25 @@
 }
 
+int ListPhotSelections () {
+
+  fprintf (stderr, "TimeSelect: %d, %d - %d\n",      TimeSelect, tzero, tend);
+  fprintf (stderr, "MagSelect: %d, %f - %f\n",       MagSelect, MagMax, MagMin);
+  fprintf (stderr, "TypeSelect: %d, %d\n",           TypeSelect, TypeValue);
+  fprintf (stderr, "ErrSelect: %d, %f\n",            ErrSelect, ErrValue);
+  fprintf (stderr, "iMagSelect: %d, %f\n",           iMagSelect, iMagMin);
+  fprintf (stderr, "FlagSelect: %d, %x\n",           FlagSelect, FlagValue);
+  fprintf (stderr, "TypefracSelect: %d, %d %d %f\n", TypefracSelect, TypefracType, TypefracSign, TypefracValue);
+  fprintf (stderr, "ApplySelections: %d,%d,%d,%d : %d\n", ApplySelections[0], ApplySelections[1], ApplySelections[2], ApplySelections[3], SelectionParam);
+  if (PhotcodeSelect) {
+    fprintf (stderr, "PhotcodeSelect: %d, %s\n",       PhotcodeSelect, PhotcodeValue[0].name);
+  } else {
+    fprintf (stderr, "PhotcodeSelect: %d, none\n",       PhotcodeSelect);
+  }
+  fprintf (stderr, "ChiSelect: %d, %f\n",            ChiSelect, ChiLimit);
+  fprintf (stderr, "NphotSelect: %d, %d - %d\n",     NphotSelect, NphotSign, NphotValue);
+  fprintf (stderr, "NcodeSelect: %d, %d - %d\n",     NcodeSelect, NcodeSign, NcodeValue);
+  fprintf (stderr, "FWHMSelect: %d, %d %f %f\n",     FWHMSelect, FWHMsign, FWHMvalue, FWHMfrac);
+}
+
 /* remove standard photometry filtering options, set selections */
 /* not all functions respect all selections... */
@@ -386,4 +408,5 @@
 
   /* select on value of Chisq (AVERAGE ONLY) */
+  SelectionParam = 0;
   for (i = 0; i < 4; i++) ApplySelections[i] = TRUE;
   if ((N = get_argument (*argc, argv, "-apply"))) {
Index: /trunk/Ohana/src/opihi/dvo/pmeasure.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/pmeasure.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/dvo/pmeasure.c	(revision 7080)
@@ -5,5 +5,4 @@
   FILE *f;
   int i, j, k, m, N;
-  int Ngraph;
   double Mz, Mr, mag;
   double Radius, Rmin, Rmax;
@@ -18,7 +17,6 @@
   Vector Xvec, Yvec, Zvec;
 
-  Ngraph = -1;
   if (!InitPhotcodes ()) return (FALSE);
-  if (!GetGraph (&graphmode, NULL, &Ngraph)) return (FALSE);
+  if (!style_args (&graphmode, &argc, argv, 0)) return FALSE;
 
   f = (FILE *) NULL;
@@ -70,5 +68,6 @@
     return (FALSE);
   }
-  
+  SetGraph (graphmode);
+
   Radius = MAX (fabs(graphmode.xmax), fabs(graphmode.ymax));
 
Index: /trunk/Ohana/src/opihi/dvo/simage.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/simage.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/dvo/simage.c	(revision 7080)
@@ -39,5 +39,5 @@
   
   /* read header */
-  if (!fits_read_header (argv[1], &header)) {
+  if (!gfits_read_header (argv[1], &header)) {
     fprintf (stderr, "ERROR: can't find image file %s\n", argv[1]);
     return (FALSE);
@@ -45,39 +45,39 @@
   /* get astrometry information */
   strcpy (coords.ctype, "NONE");
-  fits_scan (&header, "CTYPE1",   "%s",  1, coords.ctype);
+  gfits_scan (&header, "CTYPE1",   "%s",  1, coords.ctype);
   if (strcmp (coords.ctype, "RA---PLY")) {
     fprintf (stderr, "ERROR: wrong astrometric info in header\n");
     return (FALSE);
   }
-  fits_scan (&header, "CDELT1",   "%f", 1, &coords.cdelt1); 
-  fits_scan (&header, "CDELT2",   "%f", 1, &coords.cdelt2);
-  fits_scan (&header, "CRVAL1",   "%lf", 1, &coords.crval1);
-  fits_scan (&header, "CRVAL2",   "%lf", 1, &coords.crval2);  
-  fits_scan (&header, "CRPIX1",   "%f", 1, &coords.crpix1);
-  fits_scan (&header, "CRPIX2",   "%f", 1, &coords.crpix2);
-  fits_scan (&header, "PC001001", "%f", 1, &coords.pc1_1);
-  fits_scan (&header, "PC001002", "%f", 1, &coords.pc1_2);
-  fits_scan (&header, "PC002001", "%f", 1, &coords.pc2_1);
-  fits_scan (&header, "PC002002", "%f", 1, &coords.pc2_2);
+  gfits_scan (&header, "CDELT1",   "%f", 1, &coords.cdelt1); 
+  gfits_scan (&header, "CDELT2",   "%f", 1, &coords.cdelt2);
+  gfits_scan (&header, "CRVAL1",   "%lf", 1, &coords.crval1);
+  gfits_scan (&header, "CRVAL2",   "%lf", 1, &coords.crval2);  
+  gfits_scan (&header, "CRPIX1",   "%f", 1, &coords.crpix1);
+  gfits_scan (&header, "CRPIX2",   "%f", 1, &coords.crpix2);
+  gfits_scan (&header, "PC001001", "%f", 1, &coords.pc1_1);
+  gfits_scan (&header, "PC001002", "%f", 1, &coords.pc1_2);
+  gfits_scan (&header, "PC002001", "%f", 1, &coords.pc2_1);
+  gfits_scan (&header, "PC002002", "%f", 1, &coords.pc2_2);
   /* RA Terms */
-  fits_scan (&header, "PCA1X2Y0", "%f", 1, &coords.polyterms[0][0]);
-  fits_scan (&header, "PCA1X1Y1", "%f", 1, &coords.polyterms[1][0]);
-  fits_scan (&header, "PCA1X0Y2", "%f", 1, &coords.polyterms[2][0]);
-  fits_scan (&header, "PCA1X3Y0", "%f", 1, &coords.polyterms[3][0]);
-  fits_scan (&header, "PCA1X2Y1", "%f", 1, &coords.polyterms[4][0]);
-  fits_scan (&header, "PCA1X1Y2", "%f", 1, &coords.polyterms[5][0]);
-  fits_scan (&header, "PCA1X0Y3", "%f", 1, &coords.polyterms[6][0]);
+  gfits_scan (&header, "PCA1X2Y0", "%f", 1, &coords.polyterms[0][0]);
+  gfits_scan (&header, "PCA1X1Y1", "%f", 1, &coords.polyterms[1][0]);
+  gfits_scan (&header, "PCA1X0Y2", "%f", 1, &coords.polyterms[2][0]);
+  gfits_scan (&header, "PCA1X3Y0", "%f", 1, &coords.polyterms[3][0]);
+  gfits_scan (&header, "PCA1X2Y1", "%f", 1, &coords.polyterms[4][0]);
+  gfits_scan (&header, "PCA1X1Y2", "%f", 1, &coords.polyterms[5][0]);
+  gfits_scan (&header, "PCA1X0Y3", "%f", 1, &coords.polyterms[6][0]);
   /* Dec Terms */			    
-  fits_scan (&header, "PCA2X2Y0", "%f", 1, &coords.polyterms[0][1]);
-  fits_scan (&header, "PCA2X1Y1", "%f", 1, &coords.polyterms[1][1]);
-  fits_scan (&header, "PCA2X0Y2", "%f", 1, &coords.polyterms[2][1]);
-  fits_scan (&header, "PCA2X3Y0", "%f", 1, &coords.polyterms[3][1]);
-  fits_scan (&header, "PCA2X2Y1", "%f", 1, &coords.polyterms[4][1]);
-  fits_scan (&header, "PCA2X1Y2", "%f", 1, &coords.polyterms[5][1]);
-  fits_scan (&header, "PCA2X0Y3", "%f", 1, &coords.polyterms[6][1]);
+  gfits_scan (&header, "PCA2X2Y0", "%f", 1, &coords.polyterms[0][1]);
+  gfits_scan (&header, "PCA2X1Y1", "%f", 1, &coords.polyterms[1][1]);
+  gfits_scan (&header, "PCA2X0Y2", "%f", 1, &coords.polyterms[2][1]);
+  gfits_scan (&header, "PCA2X3Y0", "%f", 1, &coords.polyterms[3][1]);
+  gfits_scan (&header, "PCA2X2Y1", "%f", 1, &coords.polyterms[4][1]);
+  gfits_scan (&header, "PCA2X1Y2", "%f", 1, &coords.polyterms[5][1]);
+  gfits_scan (&header, "PCA2X0Y3", "%f", 1, &coords.polyterms[6][1]);
   coords.Npolyterms = 2; /* how many do we use? */
 
   /* find number of stars */
-  fits_scan (&header, "NSTARS", "%d", 1, &Nstars);
+  gfits_scan (&header, "NSTARS", "%d", 1, &Nstars);
   if (Nstars == 0) {
     fprintf (stderr, "no stars in file\n");
Index: /trunk/Ohana/src/opihi/dvo/skycat.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/skycat.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/dvo/skycat.c	(revision 7080)
@@ -6,10 +6,9 @@
   
   double Radius;
-  int i, j, N, Nregions, ShowAll, NPTS, Npts, leftside, Depth, TableDepth;
+  int i, j, N, Nregions, ShowAll, NPTS, Npts, leftside, Depth, TableDepth, VERBOSE;
   struct stat filestat;
   Vector Xvec, Yvec;
   Graphdata graphmode;
   double X[4], Y[4], Rmin, Rmax, Rmid;
-  int Ngraph, VERBOSE;
   SkyTable *sky;
   SkyList *skylist;
@@ -33,11 +32,13 @@
   }
 
+  if (!style_args (&graphmode, &argc, argv, 0)) return FALSE;
+
   if (argc != 1) {
     fprintf (stderr, "USAGE: skycat [-all]\n");
     return (FALSE);
   }
+  SetGraph (graphmode);
+
   TableDepth = (Depth == 3) ? 3 : 2;
-  Ngraph = 0;
-  if (!GetGraph (&graphmode, NULL, &Ngraph)) return (FALSE);
 
   Radius = MAX (fabs(graphmode.xmax), fabs(graphmode.ymax));
Index: /trunk/Ohana/src/opihi/dvo/skycoverage.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/skycoverage.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/dvo/skycoverage.c	(revision 7080)
@@ -79,6 +79,6 @@
 
   /* I should encapsulate this in a create_default_buffer */
-  fits_free_matrix (&buf[0].matrix);
-  fits_free_header (&buf[0].header);
+  gfits_free_matrix (&buf[0].matrix);
+  gfits_free_header (&buf[0].header);
   buf[0].header.bitpix = buf[0].bitpix = -32;
   buf[0].header.unsign = buf[0].unsign = FALSE;
@@ -88,6 +88,6 @@
   buf[0].header.Naxis[0] = Nx;
   buf[0].header.Naxis[1] = Ny;
-  fits_create_header (&buf[0].header);
-  fits_create_matrix (&buf[0].header, &buf[0].matrix);
+  gfits_create_header (&buf[0].header);
+  gfits_create_matrix (&buf[0].header, &buf[0].matrix);
 
   coords.crval1 = 180;
Index: /trunk/Ohana/src/opihi/dvo/version.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/version.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/dvo/version.c	(revision 7080)
@@ -8,5 +8,5 @@
   fprintf (stderr, "%s\n", opihi_version());
   fprintf (stderr, "%s\n", ohana_version());
-  fprintf (stderr, "%s\n", fits_version());
+  fprintf (stderr, "%s\n", gfits_version());
 
   fprintf (stderr, "compiled on %s %s\n", __DATE__, __TIME__);
Index: /trunk/Ohana/src/opihi/include/data.h
===================================================================
--- /trunk/Ohana/src/opihi/include/data.h	(revision 7079)
+++ /trunk/Ohana/src/opihi/include/data.h	(revision 7080)
@@ -41,4 +41,5 @@
 void sort_lists (float *X, float *Y, int *S, int N);
 void dsort_lists (double *X, double *Y, int *S, int N);
+void isort_pair (int *X, int *Y, int N);
 
 /* in fft.c */
@@ -120,4 +121,5 @@
 void          SetLimits             PROTO((Vector *xvec, Vector *yvec, Graphdata *graphmode));
 void          ApplyLimits           PROTO((int Xgraph, Graphdata *graphmode, int apply));
+int           style_args            PROTO((Graphdata *graphmode, int *argc, char **argv, int Nforce));
 
 int read_table_vectors (int argc, char **argv, char *extname);
Index: /trunk/Ohana/src/opihi/include/dvomath.h
===================================================================
--- /trunk/Ohana/src/opihi/include/dvomath.h	(revision 7079)
+++ /trunk/Ohana/src/opihi/include/dvomath.h	(revision 7080)
@@ -110,5 +110,5 @@
 
 /* why are these in here? */
-int           fits_copy_matrix_info (Matrix *matrix1, Matrix *matrix2);
+int           gfits_copy_matrix_info (Matrix *matrix1, Matrix *matrix2);
 int           GetTimeFormat         PROTO((time_t *TimeReference, int *TimeFormat));
 
Index: /trunk/Ohana/src/opihi/lib.data/Makefile
===================================================================
--- /trunk/Ohana/src/opihi/lib.data/Makefile	(revision 7079)
+++ /trunk/Ohana/src/opihi/lib.data/Makefile	(revision 7080)
@@ -34,5 +34,6 @@
 $(SDIR)/open_image.$(ARCH).o            \
 $(SDIR)/queues.$(ARCH).o		\
-$(SDIR)/PlotVectors.$(ARCH).o
+$(SDIR)/PlotVectors.$(ARCH).o		\
+$(SDIR)/style_args.$(ARCH).o
 
 # dependancy rules for include files ########################
Index: /trunk/Ohana/src/opihi/lib.data/sort.c
===================================================================
--- /trunk/Ohana/src/opihi/lib.data/sort.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/lib.data/sort.c	(revision 7080)
@@ -291,2 +291,44 @@
   }
 }
+
+// sort two int vectors by first vector
+void isort_pair (int *X, int *Y, int N) {
+
+  int l,j,ir,i;
+  int tX, tY;
+  
+  if (N < 2) return;
+  l = N >> 1;
+  ir = N - 1;
+  for (;;) {
+    if (l > 0) {
+      l--;
+      tX = X[l];
+      tY = Y[l];
+    }
+    else {
+      tX = X[ir];
+      X[ir] = X[0];
+      tY = Y[ir];
+      Y[ir] = Y[0];
+      if (--ir == 0) {
+	X[0] = tX;
+	Y[0] = tY;
+	return;
+      }
+    }
+    i = l;
+    j = (l << 1) + 1;
+    while (j <= ir) {
+      if (j < ir && X[j] < X[j+1]) j++;
+      if (tX < X[j]) {
+	X[i] = X[j];
+	Y[i] = Y[j];
+	j += (i=j) + 1;
+      }
+      else j = ir + 1;
+    }
+    X[i] = tX;
+    Y[i] = tY;
+  }
+}
Index: /trunk/Ohana/src/opihi/lib.data/starfuncs.c
===================================================================
--- /trunk/Ohana/src/opihi/lib.data/starfuncs.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/lib.data/starfuncs.c	(revision 7080)
@@ -28,10 +28,10 @@
   for (j = 0; j < Nborder; j++) {
     for (i = X - Npix2 - Nborder; i < X + Npix2 + Nborder + 1; i++, n+=2) {
-      ring[n]   = fits_get_matrix_value (matrix, i, (int)(Y - Npix2 - j));
-      ring[n+1] = fits_get_matrix_value (matrix, i, (int)(Y + Npix2 + j));
+      ring[n]   = gfits_get_matrix_value (matrix, i, (int)(Y - Npix2 - j));
+      ring[n+1] = gfits_get_matrix_value (matrix, i, (int)(Y + Npix2 + j));
     }
     for (i = Y - Npix2; i < Y + Npix2 + 1; i++, n+=2) {
-      ring[n]   = fits_get_matrix_value (matrix, (int)(X - Npix2 - j), i);
-      ring[n+1] = fits_get_matrix_value (matrix, (int)(X + Npix2 + j), i);
+      ring[n]   = gfits_get_matrix_value (matrix, (int)(X - Npix2 - j), i);
+      ring[n+1] = gfits_get_matrix_value (matrix, (int)(X + Npix2 + j), i);
     }
   }
@@ -50,5 +50,5 @@
   for (i = X - Npix2; i < X + Npix2 + 1; i++) {
     for (j = Y - Npix2; j < Y + Npix2 + 1; j++) {
-      value = fits_get_matrix_value (matrix, i, j);
+      value = gfits_get_matrix_value (matrix, i, j);
       offset = value - sky;
       x  += i*offset;
Index: /trunk/Ohana/src/opihi/lib.shell/BufferOps.c
===================================================================
--- /trunk/Ohana/src/opihi/lib.shell/BufferOps.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/lib.shell/BufferOps.c	(revision 7080)
@@ -86,6 +86,6 @@
 
   /* create the appropriate header and matrix */
-  fits_create_header (&buf[0].header);
-  fits_create_matrix (&buf[0].header, &buf[0].matrix);
+  gfits_create_header (&buf[0].header);
+  gfits_create_matrix (&buf[0].header, &buf[0].matrix);
 
   return (TRUE);
@@ -109,6 +109,6 @@
   out[0].bzero  = in[0].bzero;
   strcpy (out[0].file, in[0].file);
-  fits_copy_matrix (&in[0].matrix, &out[0].matrix);
-  fits_copy_header (&in[0].header, &out[0].header);
+  gfits_copy_matrix (&in[0].matrix, &out[0].matrix);
+  gfits_copy_header (&in[0].header, &out[0].header);
   return (TRUE);
 }
@@ -158,6 +158,6 @@
   if (i == Nbuffers) return (FALSE);
 
-  fits_free_header (&buffers[i][0].header);
-  fits_free_matrix (&buffers[i][0].matrix);
+  gfits_free_header (&buffers[i][0].header);
+  gfits_free_matrix (&buffers[i][0].matrix);
   free (buffers[i]);
 
@@ -178,6 +178,6 @@
   if (i == Nbuffers) return (FALSE);
 
-  fits_free_header (&buffers[i][0].header);
-  fits_free_matrix (&buffers[i][0].matrix);
+  gfits_free_header (&buffers[i][0].header);
+  gfits_free_matrix (&buffers[i][0].matrix);
   free (buffers[i]);
 
Index: /trunk/Ohana/src/opihi/lib.shell/stack_math.c
===================================================================
--- /trunk/Ohana/src/opihi/lib.shell/stack_math.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/lib.shell/stack_math.c	(revision 7080)
@@ -1385,5 +1385,5 @@
 
 /*********************** fits copy header ***********************************/
-int fits_copy_matrix_info (Matrix *matrix1, Matrix *matrix2) {
+int gfits_copy_matrix_info (Matrix *matrix1, Matrix *matrix2) {
 
   int i;
Index: /trunk/Ohana/src/opihi/mana/version.c
===================================================================
--- /trunk/Ohana/src/opihi/mana/version.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/mana/version.c	(revision 7080)
@@ -8,5 +8,5 @@
   fprintf (stderr, "%s\n", opihi_version());
   fprintf (stderr, "%s\n", ohana_version());
-  fprintf (stderr, "%s\n", fits_version());
+  fprintf (stderr, "%s\n", gfits_version());
 
   fprintf (stderr, "compiled on %s %s\n", __DATE__, __TIME__);
Index: /trunk/Ohana/src/opihi/pantasks/version.c
===================================================================
--- /trunk/Ohana/src/opihi/pantasks/version.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/pantasks/version.c	(revision 7080)
@@ -8,5 +8,5 @@
   fprintf (stderr, "%s\n", opihi_version());
   fprintf (stderr, "%s\n", ohana_version());
-  fprintf (stderr, "%s\n", fits_version());
+  fprintf (stderr, "%s\n", gfits_version());
 
   fprintf (stderr, "compiled on %s %s\n", __DATE__, __TIME__);
Index: /trunk/Ohana/src/opihi/pclient/version.c
===================================================================
--- /trunk/Ohana/src/opihi/pclient/version.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/pclient/version.c	(revision 7080)
@@ -8,5 +8,5 @@
   fprintf (stderr, "%s\n", opihi_version());
   fprintf (stderr, "%s\n", ohana_version());
-  fprintf (stderr, "%s\n", fits_version());
+  fprintf (stderr, "%s\n", gfits_version());
 
   fprintf (stderr, "compiled on %s %s\n", __DATE__, __TIME__);
Index: /trunk/Ohana/src/opihi/pcontrol/version.c
===================================================================
--- /trunk/Ohana/src/opihi/pcontrol/version.c	(revision 7079)
+++ /trunk/Ohana/src/opihi/pcontrol/version.c	(revision 7080)
@@ -8,5 +8,5 @@
   fprintf (stderr, "%s\n", opihi_version());
   fprintf (stderr, "%s\n", ohana_version());
-  fprintf (stderr, "%s\n", fits_version());
+  fprintf (stderr, "%s\n", gfits_version());
 
   fprintf (stderr, "compiled on %s %s\n", __DATE__, __TIME__);
Index: /trunk/Ohana/src/photdbc/src/Shutdown.c
===================================================================
--- /trunk/Ohana/src/photdbc/src/Shutdown.c	(revision 7079)
+++ /trunk/Ohana/src/photdbc/src/Shutdown.c	(revision 7080)
@@ -22,5 +22,5 @@
 
   SetProtect (TRUE);
-  fits_db_close (db);
+  gfits_db_close (db);
   fprintf (stderr, "ERROR: addstar halted\n");
   exit (1);
Index: /trunk/Ohana/src/photdbc/src/find_images.c
===================================================================
--- /trunk/Ohana/src/photdbc/src/find_images.c	(revision 7079)
+++ /trunk/Ohana/src/photdbc/src/find_images.c	(revision 7080)
@@ -27,5 +27,5 @@
   strcpy (tcoords.ctype, "RA---TAN");
 
-  timage = fits_table_get_Image (&db[0].ftable, &Ntimage, &db[0].swapped);
+  timage = gfits_table_get_Image (&db[0].ftable, &Ntimage, &db[0].swapped);
 
   nimage = 0;
Index: /trunk/Ohana/src/photdbc/src/flag_measures.c
===================================================================
--- /trunk/Ohana/src/photdbc/src/flag_measures.c	(revision 7079)
+++ /trunk/Ohana/src/photdbc/src/flag_measures.c	(revision 7080)
@@ -15,5 +15,5 @@
   if (VERBOSE) fprintf (stderr, "flagging bad measurements\n");
 
-  image = fits_table_get_Image (&db[0].ftable, &Nimage, &db[0].swapped);
+  image = gfits_table_get_Image (&db[0].ftable, &Nimage, &db[0].swapped);
 
   PhotNsec = GetPhotcodeNsecfilt ();
Index: /trunk/Ohana/src/photdbc/src/load_images.c
===================================================================
--- /trunk/Ohana/src/photdbc/src/load_images.c	(revision 7079)
+++ /trunk/Ohana/src/photdbc/src/load_images.c	(revision 7080)
@@ -18,5 +18,5 @@
   *nregion = Nregion;
   
-  fits_vtable_from_ftable (&db[0].ftable, &db[0].vtable, Line, Nimage);
+  gfits_vtable_from_ftable (&db[0].ftable, &db[0].vtable, Line, Nimage);
 
   return (region);
Index: /trunk/Ohana/src/photdbc/src/name_region.c
===================================================================
--- /trunk/Ohana/src/photdbc/src/name_region.c	(revision 7079)
+++ /trunk/Ohana/src/photdbc/src/name_region.c	(revision 7080)
@@ -9,13 +9,13 @@
 
   sprintf (region[0].filename, "%s/%s", CATDIR, name);
-  if (!fits_read_header (region[0].filename, &header)) {
+  if (!gfits_read_header (region[0].filename, &header)) {
     if (VERBOSE) fprintf (stderr, "catalog file not yet available: %s\n", region[0].filename);
     exit (0);
   }
-  fits_scan (&header, "RA0", "%lf", 1, &region[0].RA[0]);
-  fits_scan (&header, "RA1", "%lf", 1, &region[0].RA[1]);
-  fits_scan (&header, "DEC0", "%lf", 1, &region[0].DEC[0]);
-  fits_scan (&header, "DEC1", "%lf", 1, &region[0].DEC[1]);
-  fits_free_header (&header);
+  gfits_scan (&header, "RA0", "%lf", 1, &region[0].RA[0]);
+  gfits_scan (&header, "RA1", "%lf", 1, &region[0].RA[1]);
+  gfits_scan (&header, "DEC0", "%lf", 1, &region[0].DEC[0]);
+  gfits_scan (&header, "DEC1", "%lf", 1, &region[0].DEC[1]);
+  gfits_free_header (&header);
 
   *Nregions = 1;
Index: /trunk/Ohana/src/photdbc/src/wcatalog.c
===================================================================
--- /trunk/Ohana/src/photdbc/src/wcatalog.c	(revision 7079)
+++ /trunk/Ohana/src/photdbc/src/wcatalog.c	(revision 7080)
@@ -33,4 +33,4 @@
     catalog[0].Nsecfilt = 0;
   }
-  fits_free_header (&catalog[0].header);
+  gfits_free_header (&catalog[0].header);
 }
Index: /trunk/Ohana/src/relastro/src/GridOps.v1.c
===================================================================
--- /trunk/Ohana/src/relastro/src/GridOps.v1.c	(revision 7079)
+++ /trunk/Ohana/src/relastro/src/GridOps.v1.c	(revision 7080)
@@ -269,62 +269,62 @@
 
   /* create empty phu */
-  fits_init_header (&header);
+  gfits_init_header (&header);
   header.extend = TRUE;
-  fits_create_header (&header);
-  fits_create_matrix (&header, &matrix);
-  fits_modify (&header, "NEXTEND", "%d", 1, Nimage + 3);
-  fits_modify (&header, "FILTER", "%s", 1, photcode[0].name);
-  fits_modify (&header, "COMMENT", "%S", 1, "Mosaic Photometry Grid Analysis");
-  fits_fwrite_header (f, &header);
-  fits_fwrite_matrix (f, &matrix);
-  fits_free_matrix (&matrix);
+  gfits_create_header (&header);
+  gfits_create_matrix (&header, &matrix);
+  gfits_modify (&header, "NEXTEND", "%d", 1, Nimage + 3);
+  gfits_modify (&header, "FILTER", "%s", 1, photcode[0].name);
+  gfits_modify (&header, "COMMENT", "%S", 1, "Mosaic Photometry Grid Analysis");
+  gfits_fwrite_header (f, &header);
+  gfits_fwrite_matrix (f, &matrix);
+  gfits_free_matrix (&matrix);
 
   /* save grid mag values */
-  fits_init_header (&theader);
+  gfits_init_header (&theader);
   theader.Naxes = 2;
   theader.Naxis[0] = gridX;
   theader.Naxis[1] = gridY;
   theader.bitpix   = -32;
-  fits_create_Theader (&theader, "IMAGE");
-  fits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
-  fits_modify (&theader, "EXTNAME", "%s", 1, "MAG_OFFSET");
-  fits_create_matrix  (&theader, &matrix);
+  gfits_create_Theader (&theader, "IMAGE");
+  gfits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
+  gfits_modify (&theader, "EXTNAME", "%s", 1, "MAG_OFFSET");
+  gfits_create_matrix  (&theader, &matrix);
   for (i = 0; i < gridX; i++) {
     for (j = 0; j < gridY; j++) {
-      fits_set_matrix_value (&matrix, i, j, (double) gridM[i + j*gridX]);
+      gfits_set_matrix_value (&matrix, i, j, (double) gridM[i + j*gridX]);
     }
   }
   write_coords (&theader, &refmosaic[0].coords);
-  fits_fwrite_header (f, &theader);
-  fits_fwrite_matrix (f, &matrix);
-  fits_free_matrix (&matrix);
+  gfits_fwrite_header (f, &theader);
+  gfits_fwrite_matrix (f, &matrix);
+  gfits_free_matrix (&matrix);
 
   /* save grid Nmeas values */
-  fits_modify (&theader, "EXTNAME", "%s", 1, "NMEAS");
-  fits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
-  fits_create_matrix  (&theader, &matrix);
+  gfits_modify (&theader, "EXTNAME", "%s", 1, "NMEAS");
+  gfits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
+  gfits_create_matrix  (&theader, &matrix);
   for (i = 0; i < gridX; i++) {
     for (j = 0; j < gridY; j++) {
-      fits_set_matrix_value (&matrix, i, j, (double) gridN[i + j*gridX]);
+      gfits_set_matrix_value (&matrix, i, j, (double) gridN[i + j*gridX]);
     }
   }
   write_coords (&theader, &refmosaic[0].coords);
-  fits_fwrite_header (f, &theader);
-  fits_fwrite_matrix (f, &matrix);
-  fits_free_matrix (&matrix);
+  gfits_fwrite_header (f, &theader);
+  gfits_fwrite_matrix (f, &matrix);
+  gfits_free_matrix (&matrix);
 
   /* save grid sigma values */
-  fits_modify (&theader, "EXTNAME", "%s", 1, "SIGMA");
-  fits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
-  fits_create_matrix  (&theader, &matrix);
+  gfits_modify (&theader, "EXTNAME", "%s", 1, "SIGMA");
+  gfits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
+  gfits_create_matrix  (&theader, &matrix);
   for (i = 0; i < gridX; i++) {
     for (j = 0; j < gridY; j++) {
-      fits_set_matrix_value (&matrix, i, j, (double) gridS[i + j*gridX]);
+      gfits_set_matrix_value (&matrix, i, j, (double) gridS[i + j*gridX]);
     }
   }
   write_coords (&theader, &refmosaic[0].coords);
-  fits_fwrite_header (f, &theader);
-  fits_fwrite_matrix (f, &matrix);
-  fits_free_matrix (&matrix);
+  gfits_fwrite_header (f, &theader);
+  gfits_fwrite_matrix (f, &matrix);
+  gfits_free_matrix (&matrix);
 
   /* calculate value for each CCD pixel, write out CCD images */
@@ -343,9 +343,9 @@
     sprintf (ccdname, "ccd%s", p);
 
-    fits_modify (&theader, "EXTNAME", "%s", 1, ccdname);
-    fits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
-    fits_modify (&theader, "PHOTCODE", "%s", 1, pname);
-    fits_modify (&theader, "NX", "%d", 1, image[i].NX);
-    fits_modify (&theader, "NY", "%d", 1, image[i].NY);
+    gfits_modify (&theader, "EXTNAME", "%s", 1, ccdname);
+    gfits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
+    gfits_modify (&theader, "PHOTCODE", "%s", 1, pname);
+    gfits_modify (&theader, "NX", "%d", 1, image[i].NX);
+    gfits_modify (&theader, "NY", "%d", 1, image[i].NY);
     write_coords (&theader, &image[0].coords);
 
@@ -354,12 +354,12 @@
     theader.Naxis[0] = Nx;
     theader.Naxis[1] = Ny;
-    fits_modify (&theader, "NAXIS1", "%d", 1, Nx);
-    fits_modify (&theader, "NAXIS2", "%d", 1, Ny);
-    fits_create_matrix  (&theader, &matrix);
+    gfits_modify (&theader, "NAXIS1", "%d", 1, Nx);
+    gfits_modify (&theader, "NAXIS2", "%d", 1, Ny);
+    gfits_create_matrix  (&theader, &matrix);
 
     InterpolateGrid ((float *)matrix.buffer, Nx, Ny, &image[0].coords, &refmosaic[0].coords);
-    fits_fwrite_header (f, &theader);
-    fits_fwrite_matrix (f, &matrix);
-    fits_free_matrix (&matrix);
+    gfits_fwrite_header (f, &theader);
+    gfits_fwrite_matrix (f, &matrix);
+    gfits_free_matrix (&matrix);
   }
 }
Index: /trunk/Ohana/src/relastro/src/GridOps.v2.c
===================================================================
--- /trunk/Ohana/src/relastro/src/GridOps.v2.c	(revision 7079)
+++ /trunk/Ohana/src/relastro/src/GridOps.v2.c	(revision 7080)
@@ -375,62 +375,62 @@
 
   /* create empty phu */
-  fits_init_header (&header);
+  gfits_init_header (&header);
   header.extend = TRUE;
-  fits_create_header (&header);
-  fits_create_matrix (&header, &matrix);
-  fits_modify (&header, "NEXTEND", "%d", 1, Nimage + 3);
-  fits_modify (&header, "FILTER", "%s", 1, photcode[0].name);
-  fits_modify (&header, "COMMENT", "%S", 1, "Mosaic Photometry Grid Analysis");
-  fits_fwrite_header (f, &header);
-  fits_fwrite_matrix (f, &matrix);
-  fits_free_matrix (&matrix);
+  gfits_create_header (&header);
+  gfits_create_matrix (&header, &matrix);
+  gfits_modify (&header, "NEXTEND", "%d", 1, Nimage + 3);
+  gfits_modify (&header, "FILTER", "%s", 1, photcode[0].name);
+  gfits_modify (&header, "COMMENT", "%S", 1, "Mosaic Photometry Grid Analysis");
+  gfits_fwrite_header (f, &header);
+  gfits_fwrite_matrix (f, &matrix);
+  gfits_free_matrix (&matrix);
 
   /* save grid mag values */
-  fits_init_header (&theader);
+  gfits_init_header (&theader);
   theader.Naxes = 2;
   theader.Naxis[0] = gridX;
   theader.Naxis[1] = gridY;
   theader.bitpix   = -32;
-  fits_create_Theader (&theader, "IMAGE");
-  fits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
-  fits_modify (&theader, "EXTNAME", "%s", 1, "MAG_OFFSET");
-  fits_create_matrix  (&theader, &matrix);
+  gfits_create_Theader (&theader, "IMAGE");
+  gfits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
+  gfits_modify (&theader, "EXTNAME", "%s", 1, "MAG_OFFSET");
+  gfits_create_matrix  (&theader, &matrix);
   for (i = 0; i < gridX; i++) {
     for (j = 0; j < gridY; j++) {
-      fits_set_matrix_value (&matrix, i, j, (double) gridM[i + j*gridX]);
+      gfits_set_matrix_value (&matrix, i, j, (double) gridM[i + j*gridX]);
     }
   }
   write_coords (&theader, &refmosaic[0].coords);
-  fits_fwrite_header (f, &theader);
-  fits_fwrite_matrix (f, &matrix);
-  fits_free_matrix (&matrix);
+  gfits_fwrite_header (f, &theader);
+  gfits_fwrite_matrix (f, &matrix);
+  gfits_free_matrix (&matrix);
 
   /* save grid Nmeas values */
-  fits_modify (&theader, "EXTNAME", "%s", 1, "NMEAS");
-  fits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
-  fits_create_matrix  (&theader, &matrix);
+  gfits_modify (&theader, "EXTNAME", "%s", 1, "NMEAS");
+  gfits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
+  gfits_create_matrix  (&theader, &matrix);
   for (i = 0; i < gridX; i++) {
     for (j = 0; j < gridY; j++) {
-      fits_set_matrix_value (&matrix, i, j, (double) gridN[i + j*gridX]);
+      gfits_set_matrix_value (&matrix, i, j, (double) gridN[i + j*gridX]);
     }
   }
   write_coords (&theader, &refmosaic[0].coords);
-  fits_fwrite_header (f, &theader);
-  fits_fwrite_matrix (f, &matrix);
-  fits_free_matrix (&matrix);
+  gfits_fwrite_header (f, &theader);
+  gfits_fwrite_matrix (f, &matrix);
+  gfits_free_matrix (&matrix);
 
   /* save grid sigma values */
-  fits_modify (&theader, "EXTNAME", "%s", 1, "SIGMA");
-  fits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
-  fits_create_matrix  (&theader, &matrix);
+  gfits_modify (&theader, "EXTNAME", "%s", 1, "SIGMA");
+  gfits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
+  gfits_create_matrix  (&theader, &matrix);
   for (i = 0; i < gridX; i++) {
     for (j = 0; j < gridY; j++) {
-      fits_set_matrix_value (&matrix, i, j, (double) gridS[i + j*gridX]);
+      gfits_set_matrix_value (&matrix, i, j, (double) gridS[i + j*gridX]);
     }
   }
   write_coords (&theader, &refmosaic[0].coords);
-  fits_fwrite_header (f, &theader);
-  fits_fwrite_matrix (f, &matrix);
-  fits_free_matrix (&matrix);
+  gfits_fwrite_header (f, &theader);
+  gfits_fwrite_matrix (f, &matrix);
+  gfits_free_matrix (&matrix);
 
 # ifdef GRID_V1
@@ -451,9 +451,9 @@
     sprintf (ccdname, "ccd%s", p);
 
-    fits_modify (&theader, "EXTNAME", "%s", 1, ccdname);
-    fits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
-    fits_modify (&theader, "PHOTCODE", "%s", 1, pname);
-    fits_modify (&theader, "NX", "%d", 1, image[i].NX);
-    fits_modify (&theader, "NY", "%d", 1, image[i].NY);
+    gfits_modify (&theader, "EXTNAME", "%s", 1, ccdname);
+    gfits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
+    gfits_modify (&theader, "PHOTCODE", "%s", 1, pname);
+    gfits_modify (&theader, "NX", "%d", 1, image[i].NX);
+    gfits_modify (&theader, "NY", "%d", 1, image[i].NY);
     write_coords (&theader, &image[0].coords);
 
@@ -462,12 +462,12 @@
     theader.Naxis[0] = Nx;
     theader.Naxis[1] = Ny;
-    fits_modify (&theader, "NAXIS1", "%d", 1, Nx);
-    fits_modify (&theader, "NAXIS2", "%d", 1, Ny);
-    fits_create_matrix  (&theader, &matrix);
+    gfits_modify (&theader, "NAXIS1", "%d", 1, Nx);
+    gfits_modify (&theader, "NAXIS2", "%d", 1, Ny);
+    gfits_create_matrix  (&theader, &matrix);
 
     InterpolateGrid ((float *)matrix.buffer, Nx, Ny, &image[0].coords, &refmosaic[0].coords);
-    fits_fwrite_header (f, &theader);
-    fits_fwrite_matrix (f, &matrix);
-    fits_free_matrix (&matrix);
+    gfits_fwrite_header (f, &theader);
+    gfits_fwrite_matrix (f, &matrix);
+    gfits_free_matrix (&matrix);
   }
 # endif
@@ -479,14 +479,14 @@
     int ix, iy, x, y, X, Y, bin;
 
-    fits_modify (&theader, "EXTNAME", "%s", 1, camera.ccdname[i]);
-    fits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
-    fits_modify (&theader, "NX", "%d", 1, camera.Nx);
-    fits_modify (&theader, "NY", "%d", 1, camera.Ny);
+    gfits_modify (&theader, "EXTNAME", "%s", 1, camera.ccdname[i]);
+    gfits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
+    gfits_modify (&theader, "NX", "%d", 1, camera.Nx);
+    gfits_modify (&theader, "NY", "%d", 1, camera.Ny);
       
     theader.Naxis[0] = RELPHOT_GRID_X;
     theader.Naxis[1] = RELPHOT_GRID_Y;
-    fits_modify (&theader, "NAXIS1", "%d", 1, RELPHOT_GRID_X);
-    fits_modify (&theader, "NAXIS2", "%d", 1, RELPHOT_GRID_Y);
-    fits_create_matrix  (&theader, &matrix);
+    gfits_modify (&theader, "NAXIS1", "%d", 1, RELPHOT_GRID_X);
+    gfits_modify (&theader, "NAXIS2", "%d", 1, RELPHOT_GRID_Y);
+    gfits_create_matrix  (&theader, &matrix);
 
     for (Y = 0; Y < RELPHOT_GRID_Y; Y++) {
@@ -504,10 +504,10 @@
 	      
 	bin = ix + iy*gridX;
-	fits_set_matrix_value (&matrix, X, Y, (double) gridM[bin]);
+	gfits_set_matrix_value (&matrix, X, Y, (double) gridM[bin]);
       }
     }
-    fits_fwrite_header (f, &theader);
-    fits_fwrite_matrix (f, &matrix);
-    fits_free_matrix (&matrix);
+    gfits_fwrite_header (f, &theader);
+    gfits_fwrite_matrix (f, &matrix);
+    gfits_free_matrix (&matrix);
   }
 # endif
Index: /trunk/Ohana/src/relastro/src/Shutdown.c
===================================================================
--- /trunk/Ohana/src/relastro/src/Shutdown.c	(revision 7079)
+++ /trunk/Ohana/src/relastro/src/Shutdown.c	(revision 7080)
@@ -22,5 +22,5 @@
 
   SetProtect (TRUE);
-  fits_db_close (db);
+  gfits_db_close (db);
   fprintf (stderr, "ERROR: addstar halted\n");
   exit (1);
Index: /trunk/Ohana/src/relastro/src/find_images.c
===================================================================
--- /trunk/Ohana/src/relastro/src/find_images.c	(revision 7079)
+++ /trunk/Ohana/src/relastro/src/find_images.c	(revision 7080)
@@ -27,5 +27,5 @@
   strcpy (tcoords.ctype, "RA---TAN");
 
-  timage = fits_table_get_Image (&db[0].ftable, &Ntimage, &db[0].swapped);
+  timage = gfits_table_get_Image (&db[0].ftable, &Ntimage, &db[0].swapped);
 
   nimage = 0;
Index: /trunk/Ohana/src/relastro/src/load_images.c
===================================================================
--- /trunk/Ohana/src/relastro/src/load_images.c	(revision 7079)
+++ /trunk/Ohana/src/relastro/src/load_images.c	(revision 7080)
@@ -26,5 +26,5 @@
   getfullregion (image, Nimage, fullregion);
 
-  fits_vtable_from_ftable (&db[0].ftable, &db[0].vtable, Line, Nimage);
+  gfits_vtable_from_ftable (&db[0].ftable, &db[0].vtable, Line, Nimage);
 
   initImages (image, Nimage);
Index: /trunk/Ohana/src/relastro/src/name_region.c
===================================================================
--- /trunk/Ohana/src/relastro/src/name_region.c	(revision 7079)
+++ /trunk/Ohana/src/relastro/src/name_region.c	(revision 7080)
@@ -9,13 +9,13 @@
 
   sprintf (region[0].filename, "%s/%s", CATDIR, name);
-  if (!fits_read_header (region[0].filename, &header)) {
+  if (!gfits_read_header (region[0].filename, &header)) {
     if (VERBOSE) fprintf (stderr, "catalog file not yet available: %s\n", region[0].filename);
     exit (0);
   }
-  fits_scan (&header, "RA0", "%lf", 1, &region[0].RA[0]);
-  fits_scan (&header, "RA1", "%lf", 1, &region[0].RA[1]);
-  fits_scan (&header, "DEC0", "%lf", 1, &region[0].DEC[0]);
-  fits_scan (&header, "DEC1", "%lf", 1, &region[0].DEC[1]);
-  fits_free_header (&header);
+  gfits_scan (&header, "RA0", "%lf", 1, &region[0].RA[0]);
+  gfits_scan (&header, "RA1", "%lf", 1, &region[0].RA[1]);
+  gfits_scan (&header, "DEC0", "%lf", 1, &region[0].DEC[0]);
+  gfits_scan (&header, "DEC1", "%lf", 1, &region[0].DEC[1]);
+  gfits_free_header (&header);
 
   *Nregions = 1;
Index: /trunk/Ohana/src/relastro/src/wcatalog.c
===================================================================
--- /trunk/Ohana/src/relastro/src/wcatalog.c	(revision 7079)
+++ /trunk/Ohana/src/relastro/src/wcatalog.c	(revision 7080)
@@ -26,4 +26,4 @@
     catalog[0].Nsecfilt = 0;
   }
-  fits_free_header (&catalog[0].header);
+  gfits_free_header (&catalog[0].header);
 }
Index: /trunk/Ohana/src/relastro/src/wimages.c
===================================================================
--- /trunk/Ohana/src/relastro/src/wimages.c	(revision 7079)
+++ /trunk/Ohana/src/relastro/src/wimages.c	(revision 7080)
@@ -12,11 +12,11 @@
   /* adjust header */
   Nimages = 0;
-  fits_scan (&db[0].header, "NIMAGES", "%d", 1, &Nimages);
+  gfits_scan (&db[0].header, "NIMAGES", "%d", 1, &Nimages);
   Nimages ++;
-  fits_modify (&db[0].header, "NIMAGES", "%d", 1, Nimages);
+  gfits_modify (&db[0].header, "NIMAGES", "%d", 1, Nimages);
 
-  fits_table_to_vtable (&db[0].ftable, &db[0].vtable, 0, 0);
+  gfits_table_to_vtable (&db[0].ftable, &db[0].vtable, 0, 0);
   for (i = 0; i < Nimage; i++) {
-    fits_vadd_rows (&db[0].vtable, (char *) image, 1, sizeof(Image));
+    gfits_vadd_rows (&db[0].vtable, (char *) image, 1, sizeof(Image));
   }
 
Index: /trunk/Ohana/src/relastro/src/write_coords.c
===================================================================
--- /trunk/Ohana/src/relastro/src/write_coords.c	(revision 7079)
+++ /trunk/Ohana/src/relastro/src/write_coords.c	(revision 7080)
@@ -5,25 +5,25 @@
 void write_coords (Header *header, Coords *coords) {
 
-  fits_modify (header, "CTYPE1",   "%s",  1, "RA---TAN");
-  fits_modify (header, "CTYPE2",   "%s",  1, "DEC--TAN");
+  gfits_modify (header, "CTYPE1",   "%s",  1, "RA---TAN");
+  gfits_modify (header, "CTYPE2",   "%s",  1, "DEC--TAN");
 
-  fits_modify (header, "CRVAL1",   "%lf", 1, coords[0].crval1);
-  fits_modify (header, "CRVAL2",   "%lf", 1, coords[0].crval2);  
+  gfits_modify (header, "CRVAL1",   "%lf", 1, coords[0].crval1);
+  gfits_modify (header, "CRVAL2",   "%lf", 1, coords[0].crval2);  
 
-  fits_modify (header, "CRPIX1",   "%lf", 1, coords[0].crpix1);
-  fits_modify (header, "CRPIX2",   "%lf", 1, coords[0].crpix2);
+  gfits_modify (header, "CRPIX1",   "%lf", 1, coords[0].crpix1);
+  gfits_modify (header, "CRPIX2",   "%lf", 1, coords[0].crpix2);
 
 # if (CD_COORDS)  
-  fits_modify (header, "CD1_1",    "%le", 1, coords[0].pc1_1 * coords[0].cdelt1);
-  fits_modify (header, "CD2_1",    "%le", 1, coords[0].pc2_1 * coords[0].cdelt1);
-  fits_modify (header, "CD1_2",    "%le", 1, coords[0].pc1_2 * coords[0].cdelt2);
-  fits_modify (header, "CD2_2",    "%le", 1, coords[0].pc2_2 * coords[0].cdelt2);
+  gfits_modify (header, "CD1_1",    "%le", 1, coords[0].pc1_1 * coords[0].cdelt1);
+  gfits_modify (header, "CD2_1",    "%le", 1, coords[0].pc2_1 * coords[0].cdelt1);
+  gfits_modify (header, "CD1_2",    "%le", 1, coords[0].pc1_2 * coords[0].cdelt2);
+  gfits_modify (header, "CD2_2",    "%le", 1, coords[0].pc2_2 * coords[0].cdelt2);
 # else
-  fits_modify (header, "CDELT1",   "%le", 1, coords[0].cdelt1); 
-  fits_modify (header, "CDELT2",   "%le", 1, coords[0].cdelt2);
-  fits_modify (header, "PC001001", "%le", 1, coords[0].pc1_1);
-  fits_modify (header, "PC001002", "%le", 1, coords[0].pc1_2);
-  fits_modify (header, "PC002001", "%le", 1, coords[0].pc2_1);
-  fits_modify (header, "PC002002", "%le", 1, coords[0].pc2_2);
+  gfits_modify (header, "CDELT1",   "%le", 1, coords[0].cdelt1); 
+  gfits_modify (header, "CDELT2",   "%le", 1, coords[0].cdelt2);
+  gfits_modify (header, "PC001001", "%le", 1, coords[0].pc1_1);
+  gfits_modify (header, "PC001002", "%le", 1, coords[0].pc1_2);
+  gfits_modify (header, "PC002001", "%le", 1, coords[0].pc2_1);
+  gfits_modify (header, "PC002002", "%le", 1, coords[0].pc2_2);
 # endif
 }
Index: /trunk/Ohana/src/relphot/Makefile
===================================================================
--- /trunk/Ohana/src/relphot/Makefile	(revision 7079)
+++ /trunk/Ohana/src/relphot/Makefile	(revision 7080)
@@ -26,8 +26,5 @@
 $(SRC)/liststats.$(ARCH).o	 \
 $(SRC)/load_images.$(ARCH).o	 \
-$(SRC)/name_region.$(ARCH).o	 \
-$(SRC)/find_images.$(ARCH).o	 \
-$(SRC)/find_regions.$(ARCH).o	 \
-$(SRC)/get_regions.$(ARCH).o	 \
+$(SRC)/select_images.$(ARCH).o	 \
 $(SRC)/load_catalogs.$(ARCH).o	 \
 $(SRC)/gcatalog.$(ARCH).o 	 \
@@ -44,5 +41,4 @@
 $(SRC)/image-db.$(ARCH).o \
 $(SRC)/free_catalogs.$(ARCH).o   \
-$(SRC)/check_permissions.$(ARCH).o   \
 $(SRC)/setMrelFinal.$(ARCH).o 	 \
 $(SRC)/write_coords.$(ARCH).o 	 \
@@ -51,4 +47,11 @@
 $(SRC)/SetSignals.$(ARCH).o 	 \
 $(SRC)/wcatalog.$(ARCH).o
+
+OLD = \
+$(SRC)/find_images.$(ARCH).o	 \
+$(SRC)/find_regions.$(ARCH).o	 \
+$(SRC)/get_regions.$(ARCH).o	 \
+$(SRC)/name_region.$(ARCH).o	 \
+$(SRC)/check_permissions.$(ARCH).o
 
 OBJ = $(RELPHOT)
Index: /trunk/Ohana/src/relphot/doc/ChangeLog.txt
===================================================================
--- /trunk/Ohana/src/relphot/doc/ChangeLog.txt	(revision 7079)
+++ /trunk/Ohana/src/relphot/doc/ChangeLog.txt	(revision 7080)
@@ -1,2 +1,6 @@
+
+- relphot-1-4:
+  * converted to gfits APIs (forces libfits 1.6)
+  * added time range to time selections
 
 - relphot-1-3:
Index: /trunk/Ohana/src/relphot/doc/notes.txt
===================================================================
--- /trunk/Ohana/src/relphot/doc/notes.txt	(revision 7079)
+++ /trunk/Ohana/src/relphot/doc/notes.txt	(revision 7080)
@@ -1,2 +1,10 @@
+
+2006.05.03
+
+  I am upgrading relphot to accept as input an arbitrary region (using
+  the standard ohana SkyRegion concept of a RA & DEC bounded patch on
+  the sky).  This modification has a few implications.  First, the
+  analysis is in fact performed on the populated SkyRegions which
+  overlap the requested area on the sky.
 
 - select different calibration options
Index: /trunk/Ohana/src/relphot/include/relphot.h
===================================================================
--- /trunk/Ohana/src/relphot/include/relphot.h	(revision 7079)
+++ /trunk/Ohana/src/relphot/include/relphot.h	(revision 7080)
@@ -47,4 +47,6 @@
 char   CATFORMAT[16];  /* internal, elixir, loneos, panstarrs */
 char   CameraConfig[256];
+char   SKY_TABLE[256];
+int    SKY_DEPTH;  /** XXX EAM : depth of catalog tables, fix usage */
 
 double MAG_LIM;
@@ -96,4 +98,7 @@
 time_t TSTART, TSTOP;
 
+SkyRegion UserPatch;
+int UserPatchSelect;
+
 # ifdef GRID_V1
 int setGridMeasure (int meas, int cat, double X, double Y);
@@ -111,5 +116,5 @@
 int          *SelectRefMosaic     PROTO((Mosaic **refmosaic, int *Nimage));
 int           args                PROTO((int argc, char **argv));
-int           bcatalog            PROTO((Catalog *subcatalog, Catalog *catalog, GSCRegion *fullregion));
+int           bcatalog            PROTO((Catalog *subcatalog, Catalog *catalog));
 void          clean_images        PROTO(());
 void          clean_measures      PROTO((Catalog *catalog, int Ncatalog, int final));
@@ -122,5 +127,5 @@
 void          findImages          PROTO((Catalog *catalog, int Ncatalog));
 int           findMosaics         PROTO((Catalog *catalog, int Ncatalog));
-Image        *find_images         PROTO((FITS_DB *db, GSCRegion *region, int Nregion, int *Nimage, int **LineNum));
+
 void set_db (FITS_DB *in);
 int Shutdown (char *format, ...);
@@ -129,5 +134,4 @@
 int SetSignals ();
 
-GSCRegion    *find_regions        PROTO((Image *image, int Nimage, int *Nregions, GSCRegion *fullregion));
 void          freeGridBins        PROTO((int Ncatalog));
 void          freeImageBins       PROTO((int Ncatalog));
@@ -140,6 +144,4 @@
 float         getMmos             PROTO((int meas, int cat));
 float         getMrel             PROTO((Catalog *catalog, int meas, int cat));
-GSCRegion    *get_regions         PROTO((double minRa, double maxRa, double minDec, double maxDec, int *Nregions));
-void          getfullregion       PROTO((Image *image, int Nimage, GSCRegion *fullregion));
 Image        *getimage            PROTO((int N));
 Image        *getimages           PROTO((int *N));
@@ -156,11 +158,7 @@
 void          initstats           PROTO((char *mode));
 int           liststats           PROTO((double *value, double *dvalue, int N, StatType *stats));
-Catalog      *load_catalogs       PROTO((GSCRegion *region, int Nregion, GSCRegion *fullregion));
-GSCRegion    *load_images         PROTO((FITS_DB *db, char *seed, int *nregion, GSCRegion *fullregion));
-
-void check_permissions (char *basefile);
-void lock_image_db (FITS_DB *db, char *filename);
-void unlock_image_db (FITS_DB *db);
-void create_image_db (FITS_DB *db);
+Catalog       *load_catalogs      PROTO((SkyList *skylist, int *Ncatalog));
+SkyList      *load_images         PROTO((FITS_DB *db, char *regionName, SkyRegion *region, int RegionSelect));
+Image         *select_images      PROTO((SkyList *skylist, Image *timage, int Ntimage, int **LineNumber, int *Nimage));
 
 int           main                PROTO((int argc, char **argv));
@@ -168,5 +166,4 @@
 void          matchImage          PROTO((Catalog *catalog, int meas, int cat));
 void          matchMosaics        PROTO((Catalog *catalog, int meas, int cat));
-GSCRegion    *name_region         PROTO((char *name, int *Nregions));
 double        opening_angle       PROTO((double x1, double y1, double x2, double y2, double x3, double y3));
 void          plot_chisq          PROTO((Catalog *catalog, int Ncatalog));
@@ -180,5 +177,5 @@
 void          plot_star_coords    PROTO((Catalog *catalog, int Ncatalog));
 void          plot_stars          PROTO((Catalog *catalog, int Ncatalog));
-void          reload_catalogs     PROTO((GSCRegion *region, int Nregion, GSCRegion *fullregion));
+void          reload_catalogs     PROTO((SkyList *skylist));
 int           setExclusions       PROTO((Catalog *catalog, int Ncatalog));
 void          setMcal             PROTO((Catalog *catalog, int Poor));
@@ -211,2 +208,8 @@
 void          wimages             PROTO(());
 void          write_coords        PROTO((Header *header, Coords *coords));
+
+//Image        *find_images         PROTO((FITS_DB *db, GSCRegion *region, int Nregion, int *Nimage, int **LineNum));
+//GSCRegion    *find_regions        PROTO((Image *image, int Nimage, int *Nregions, GSCRegion *fullregion));
+//GSCRegion    *get_regions         PROTO((double minRa, double maxRa, double minDec, double maxDec, int *Nregions));
+//void          getfullregion       PROTO((Image *image, int Nimage, GSCRegion *fullregion));
+//GSCRegion    *name_region         PROTO((char *name, int *Nregions));
Index: /trunk/Ohana/src/relphot/src/ConfigInit.c
===================================================================
--- /trunk/Ohana/src/relphot/src/ConfigInit.c	(revision 7079)
+++ /trunk/Ohana/src/relphot/src/ConfigInit.c	(revision 7080)
@@ -34,4 +34,11 @@
   sprintf (ImageCat, "%s/Images.dat", CATDIR);
 
+  if (!ScanConfig (config, "SKY_DEPTH",         "%d",  0, &SKY_DEPTH)) {
+    SKY_DEPTH = 2;
+  }
+  if (!ScanConfig (config, "SKY_TABLE",         "%s",  0, SKY_TABLE)) {
+    SKY_TABLE[0] = 0;
+  }
+
   GetConfig (config, "PHOTCODE_FILE",          "%s",  0, PhotCodeFile);
   GetConfig (config, "ZERO_PT",                "%lf", 0, &ZERO_POINT);
Index: /trunk/Ohana/src/relphot/src/GridOps.v1.c
===================================================================
--- /trunk/Ohana/src/relphot/src/GridOps.v1.c	(revision 7079)
+++ /trunk/Ohana/src/relphot/src/GridOps.v1.c	(revision 7080)
@@ -269,62 +269,62 @@
 
   /* create empty phu */
-  fits_init_header (&header);
+  gfits_init_header (&header);
   header.extend = TRUE;
-  fits_create_header (&header);
-  fits_create_matrix (&header, &matrix);
-  fits_modify (&header, "NEXTEND", "%d", 1, Nimage + 3);
-  fits_modify (&header, "FILTER", "%s", 1, photcode[0].name);
-  fits_modify (&header, "COMMENT", "%S", 1, "Mosaic Photometry Grid Analysis");
-  fits_fwrite_header (f, &header);
-  fits_fwrite_matrix (f, &matrix);
-  fits_free_matrix (&matrix);
+  gfits_create_header (&header);
+  gfits_create_matrix (&header, &matrix);
+  gfits_modify (&header, "NEXTEND", "%d", 1, Nimage + 3);
+  gfits_modify (&header, "FILTER", "%s", 1, photcode[0].name);
+  gfits_modify (&header, "COMMENT", "%S", 1, "Mosaic Photometry Grid Analysis");
+  gfits_fwrite_header (f, &header);
+  gfits_fwrite_matrix (f, &matrix);
+  gfits_free_matrix (&matrix);
 
   /* save grid mag values */
-  fits_init_header (&theader);
+  gfits_init_header (&theader);
   theader.Naxes = 2;
   theader.Naxis[0] = gridX;
   theader.Naxis[1] = gridY;
   theader.bitpix   = -32;
-  fits_create_Theader (&theader, "IMAGE");
-  fits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
-  fits_modify (&theader, "EXTNAME", "%s", 1, "MAG_OFFSET");
-  fits_create_matrix  (&theader, &matrix);
+  gfits_create_Theader (&theader, "IMAGE");
+  gfits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
+  gfits_modify (&theader, "EXTNAME", "%s", 1, "MAG_OFFSET");
+  gfits_create_matrix  (&theader, &matrix);
   for (i = 0; i < gridX; i++) {
     for (j = 0; j < gridY; j++) {
-      fits_set_matrix_value (&matrix, i, j, (double) gridM[i + j*gridX]);
+      gfits_set_matrix_value (&matrix, i, j, (double) gridM[i + j*gridX]);
     }
   }
   write_coords (&theader, &refmosaic[0].coords);
-  fits_fwrite_header (f, &theader);
-  fits_fwrite_matrix (f, &matrix);
-  fits_free_matrix (&matrix);
+  gfits_fwrite_header (f, &theader);
+  gfits_fwrite_matrix (f, &matrix);
+  gfits_free_matrix (&matrix);
 
   /* save grid Nmeas values */
-  fits_modify (&theader, "EXTNAME", "%s", 1, "NMEAS");
-  fits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
-  fits_create_matrix  (&theader, &matrix);
+  gfits_modify (&theader, "EXTNAME", "%s", 1, "NMEAS");
+  gfits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
+  gfits_create_matrix  (&theader, &matrix);
   for (i = 0; i < gridX; i++) {
     for (j = 0; j < gridY; j++) {
-      fits_set_matrix_value (&matrix, i, j, (double) gridN[i + j*gridX]);
+      gfits_set_matrix_value (&matrix, i, j, (double) gridN[i + j*gridX]);
     }
   }
   write_coords (&theader, &refmosaic[0].coords);
-  fits_fwrite_header (f, &theader);
-  fits_fwrite_matrix (f, &matrix);
-  fits_free_matrix (&matrix);
+  gfits_fwrite_header (f, &theader);
+  gfits_fwrite_matrix (f, &matrix);
+  gfits_free_matrix (&matrix);
 
   /* save grid sigma values */
-  fits_modify (&theader, "EXTNAME", "%s", 1, "SIGMA");
-  fits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
-  fits_create_matrix  (&theader, &matrix);
+  gfits_modify (&theader, "EXTNAME", "%s", 1, "SIGMA");
+  gfits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
+  gfits_create_matrix  (&theader, &matrix);
   for (i = 0; i < gridX; i++) {
     for (j = 0; j < gridY; j++) {
-      fits_set_matrix_value (&matrix, i, j, (double) gridS[i + j*gridX]);
+      gfits_set_matrix_value (&matrix, i, j, (double) gridS[i + j*gridX]);
     }
   }
   write_coords (&theader, &refmosaic[0].coords);
-  fits_fwrite_header (f, &theader);
-  fits_fwrite_matrix (f, &matrix);
-  fits_free_matrix (&matrix);
+  gfits_fwrite_header (f, &theader);
+  gfits_fwrite_matrix (f, &matrix);
+  gfits_free_matrix (&matrix);
 
   /* calculate value for each CCD pixel, write out CCD images */
@@ -343,9 +343,9 @@
     sprintf (ccdname, "ccd%s", p);
 
-    fits_modify (&theader, "EXTNAME", "%s", 1, ccdname);
-    fits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
-    fits_modify (&theader, "PHOTCODE", "%s", 1, pname);
-    fits_modify (&theader, "NX", "%d", 1, image[i].NX);
-    fits_modify (&theader, "NY", "%d", 1, image[i].NY);
+    gfits_modify (&theader, "EXTNAME", "%s", 1, ccdname);
+    gfits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
+    gfits_modify (&theader, "PHOTCODE", "%s", 1, pname);
+    gfits_modify (&theader, "NX", "%d", 1, image[i].NX);
+    gfits_modify (&theader, "NY", "%d", 1, image[i].NY);
     write_coords (&theader, &image[0].coords);
 
@@ -354,12 +354,12 @@
     theader.Naxis[0] = Nx;
     theader.Naxis[1] = Ny;
-    fits_modify (&theader, "NAXIS1", "%d", 1, Nx);
-    fits_modify (&theader, "NAXIS2", "%d", 1, Ny);
-    fits_create_matrix  (&theader, &matrix);
+    gfits_modify (&theader, "NAXIS1", "%d", 1, Nx);
+    gfits_modify (&theader, "NAXIS2", "%d", 1, Ny);
+    gfits_create_matrix  (&theader, &matrix);
 
     InterpolateGrid ((float *)matrix.buffer, Nx, Ny, &image[0].coords, &refmosaic[0].coords);
-    fits_fwrite_header (f, &theader);
-    fits_fwrite_matrix (f, &matrix);
-    fits_free_matrix (&matrix);
+    gfits_fwrite_header (f, &theader);
+    gfits_fwrite_matrix (f, &matrix);
+    gfits_free_matrix (&matrix);
   }
 }
Index: /trunk/Ohana/src/relphot/src/GridOps.v2.c
===================================================================
--- /trunk/Ohana/src/relphot/src/GridOps.v2.c	(revision 7079)
+++ /trunk/Ohana/src/relphot/src/GridOps.v2.c	(revision 7080)
@@ -375,62 +375,62 @@
 
   /* create empty phu */
-  fits_init_header (&header);
+  gfits_init_header (&header);
   header.extend = TRUE;
-  fits_create_header (&header);
-  fits_create_matrix (&header, &matrix);
-  fits_modify (&header, "NEXTEND", "%d", 1, Nimage + 3);
-  fits_modify (&header, "FILTER", "%s", 1, photcode[0].name);
-  fits_modify (&header, "COMMENT", "%S", 1, "Mosaic Photometry Grid Analysis");
-  fits_fwrite_header (f, &header);
-  fits_fwrite_matrix (f, &matrix);
-  fits_free_matrix (&matrix);
+  gfits_create_header (&header);
+  gfits_create_matrix (&header, &matrix);
+  gfits_modify (&header, "NEXTEND", "%d", 1, Nimage + 3);
+  gfits_modify (&header, "FILTER", "%s", 1, photcode[0].name);
+  gfits_modify (&header, "COMMENT", "%S", 1, "Mosaic Photometry Grid Analysis");
+  gfits_fwrite_header (f, &header);
+  gfits_fwrite_matrix (f, &matrix);
+  gfits_free_matrix (&matrix);
 
   /* save grid mag values */
-  fits_init_header (&theader);
+  gfits_init_header (&theader);
   theader.Naxes = 2;
   theader.Naxis[0] = gridX;
   theader.Naxis[1] = gridY;
   theader.bitpix   = -32;
-  fits_create_Theader (&theader, "IMAGE");
-  fits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
-  fits_modify (&theader, "EXTNAME", "%s", 1, "MAG_OFFSET");
-  fits_create_matrix  (&theader, &matrix);
+  gfits_create_Theader (&theader, "IMAGE");
+  gfits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
+  gfits_modify (&theader, "EXTNAME", "%s", 1, "MAG_OFFSET");
+  gfits_create_matrix  (&theader, &matrix);
   for (i = 0; i < gridX; i++) {
     for (j = 0; j < gridY; j++) {
-      fits_set_matrix_value (&matrix, i, j, (double) gridM[i + j*gridX]);
+      gfits_set_matrix_value (&matrix, i, j, (double) gridM[i + j*gridX]);
     }
   }
   write_coords (&theader, &refmosaic[0].coords);
-  fits_fwrite_header (f, &theader);
-  fits_fwrite_matrix (f, &matrix);
-  fits_free_matrix (&matrix);
+  gfits_fwrite_header (f, &theader);
+  gfits_fwrite_matrix (f, &matrix);
+  gfits_free_matrix (&matrix);
 
   /* save grid Nmeas values */
-  fits_modify (&theader, "EXTNAME", "%s", 1, "NMEAS");
-  fits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
-  fits_create_matrix  (&theader, &matrix);
+  gfits_modify (&theader, "EXTNAME", "%s", 1, "NMEAS");
+  gfits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
+  gfits_create_matrix  (&theader, &matrix);
   for (i = 0; i < gridX; i++) {
     for (j = 0; j < gridY; j++) {
-      fits_set_matrix_value (&matrix, i, j, (double) gridN[i + j*gridX]);
+      gfits_set_matrix_value (&matrix, i, j, (double) gridN[i + j*gridX]);
     }
   }
   write_coords (&theader, &refmosaic[0].coords);
-  fits_fwrite_header (f, &theader);
-  fits_fwrite_matrix (f, &matrix);
-  fits_free_matrix (&matrix);
+  gfits_fwrite_header (f, &theader);
+  gfits_fwrite_matrix (f, &matrix);
+  gfits_free_matrix (&matrix);
 
   /* save grid sigma values */
-  fits_modify (&theader, "EXTNAME", "%s", 1, "SIGMA");
-  fits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
-  fits_create_matrix  (&theader, &matrix);
+  gfits_modify (&theader, "EXTNAME", "%s", 1, "SIGMA");
+  gfits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
+  gfits_create_matrix  (&theader, &matrix);
   for (i = 0; i < gridX; i++) {
     for (j = 0; j < gridY; j++) {
-      fits_set_matrix_value (&matrix, i, j, (double) gridS[i + j*gridX]);
+      gfits_set_matrix_value (&matrix, i, j, (double) gridS[i + j*gridX]);
     }
   }
   write_coords (&theader, &refmosaic[0].coords);
-  fits_fwrite_header (f, &theader);
-  fits_fwrite_matrix (f, &matrix);
-  fits_free_matrix (&matrix);
+  gfits_fwrite_header (f, &theader);
+  gfits_fwrite_matrix (f, &matrix);
+  gfits_free_matrix (&matrix);
 
 # ifdef GRID_V1
@@ -451,9 +451,9 @@
     sprintf (ccdname, "ccd%s", p);
 
-    fits_modify (&theader, "EXTNAME", "%s", 1, ccdname);
-    fits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
-    fits_modify (&theader, "PHOTCODE", "%s", 1, pname);
-    fits_modify (&theader, "NX", "%d", 1, image[i].NX);
-    fits_modify (&theader, "NY", "%d", 1, image[i].NY);
+    gfits_modify (&theader, "EXTNAME", "%s", 1, ccdname);
+    gfits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
+    gfits_modify (&theader, "PHOTCODE", "%s", 1, pname);
+    gfits_modify (&theader, "NX", "%d", 1, image[i].NX);
+    gfits_modify (&theader, "NY", "%d", 1, image[i].NY);
     write_coords (&theader, &image[0].coords);
 
@@ -462,12 +462,12 @@
     theader.Naxis[0] = Nx;
     theader.Naxis[1] = Ny;
-    fits_modify (&theader, "NAXIS1", "%d", 1, Nx);
-    fits_modify (&theader, "NAXIS2", "%d", 1, Ny);
-    fits_create_matrix  (&theader, &matrix);
+    gfits_modify (&theader, "NAXIS1", "%d", 1, Nx);
+    gfits_modify (&theader, "NAXIS2", "%d", 1, Ny);
+    gfits_create_matrix  (&theader, &matrix);
 
     InterpolateGrid ((float *)matrix.buffer, Nx, Ny, &image[0].coords, &refmosaic[0].coords);
-    fits_fwrite_header (f, &theader);
-    fits_fwrite_matrix (f, &matrix);
-    fits_free_matrix (&matrix);
+    gfits_fwrite_header (f, &theader);
+    gfits_fwrite_matrix (f, &matrix);
+    gfits_free_matrix (&matrix);
   }
 # endif
@@ -479,14 +479,14 @@
     int ix, iy, x, y, X, Y, bin;
 
-    fits_modify (&theader, "EXTNAME", "%s", 1, camera.ccdname[i]);
-    fits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
-    fits_modify (&theader, "NX", "%d", 1, camera.Nx);
-    fits_modify (&theader, "NY", "%d", 1, camera.Ny);
+    gfits_modify (&theader, "EXTNAME", "%s", 1, camera.ccdname[i]);
+    gfits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
+    gfits_modify (&theader, "NX", "%d", 1, camera.Nx);
+    gfits_modify (&theader, "NY", "%d", 1, camera.Ny);
       
     theader.Naxis[0] = RELPHOT_GRID_X;
     theader.Naxis[1] = RELPHOT_GRID_Y;
-    fits_modify (&theader, "NAXIS1", "%d", 1, RELPHOT_GRID_X);
-    fits_modify (&theader, "NAXIS2", "%d", 1, RELPHOT_GRID_Y);
-    fits_create_matrix  (&theader, &matrix);
+    gfits_modify (&theader, "NAXIS1", "%d", 1, RELPHOT_GRID_X);
+    gfits_modify (&theader, "NAXIS2", "%d", 1, RELPHOT_GRID_Y);
+    gfits_create_matrix  (&theader, &matrix);
 
     for (Y = 0; Y < RELPHOT_GRID_Y; Y++) {
@@ -504,10 +504,10 @@
 	      
 	bin = ix + iy*gridX;
-	fits_set_matrix_value (&matrix, X, Y, (double) gridM[bin]);
+	gfits_set_matrix_value (&matrix, X, Y, (double) gridM[bin]);
       }
     }
-    fits_fwrite_header (f, &theader);
-    fits_fwrite_matrix (f, &matrix);
-    fits_free_matrix (&matrix);
+    gfits_fwrite_header (f, &theader);
+    gfits_fwrite_matrix (f, &matrix);
+    gfits_free_matrix (&matrix);
   }
 # endif
Index: /trunk/Ohana/src/relphot/src/Shutdown.c
===================================================================
--- /trunk/Ohana/src/relphot/src/Shutdown.c	(revision 7079)
+++ /trunk/Ohana/src/relphot/src/Shutdown.c	(revision 7080)
@@ -22,5 +22,5 @@
 
   SetProtect (TRUE);
-  fits_db_close (db);
+  gfits_db_close (db);
   fprintf (stderr, "ERROR: addstar halted\n");
   exit (1);
Index: /trunk/Ohana/src/relphot/src/args.c
===================================================================
--- /trunk/Ohana/src/relphot/src/args.c	(revision 7079)
+++ /trunk/Ohana/src/relphot/src/args.c	(revision 7080)
@@ -1,3 +1,4 @@
 # include "relphot.h"
+void usage (void);
 
 int args (int argc, char **argv) {
@@ -33,4 +34,23 @@
   }
 
+  /* specify portion of the sky */
+  UserPatch.Rmin = 0;
+  UserPatch.Rmax = 360;
+  UserPatch.Dmin = -90;
+  UserPatch.Dmax = +90;
+  UserPatchSelect = FALSE;
+  if ((N = get_argument (argc, argv, "-region"))) {
+    remove_argument (N, &argc, argv);
+    UserPatch.Rmin = atof (argv[N]);
+    remove_argument (N, &argc, argv);
+    UserPatch.Rmax = atof (argv[N]);
+    remove_argument (N, &argc, argv);
+    UserPatch.Dmin = atof (argv[N]);
+    remove_argument (N, &argc, argv);
+    UserPatch.Dmax = atof (argv[N]);
+    remove_argument (N, &argc, argv);
+    UserPatchSelect = TRUE;
+  }
+
   VERBOSE = FALSE;
   if ((N = get_argument (argc, argv, "-v"))) {
@@ -153,25 +173,29 @@
   }
 
-  if (argc != 3) {
-    fprintf (stderr, "ERROR: USAGE: nrphot (region) (photcode)\n");
-    fprintf (stderr, "  options: \n");
-    fprintf (stderr, "  -time (start) (stop)\n");
-    fprintf (stderr, "  -v\n");
-    fprintf (stderr, "  -plot\n");
-    fprintf (stderr, "  -plotdelay (seconds)\n");
-    fprintf (stderr, "  -statmode (mode)\n");
-    fprintf (stderr, "  -n (nloop)\n");
-    fprintf (stderr, "  -reset\n");
-    fprintf (stderr, "  -update\n");
-    fprintf (stderr, "  -params\n");
-    fprintf (stderr, "  -mosaic (mosaic)\n");
-    fprintf (stderr, "  -imfreeze\n");
-    fprintf (stderr, "  -grid\n");
-    fprintf (stderr, "  -area Xmin Xmax Ymin Ymax\n");
-    fprintf (stderr, "  -instmag min max\n");
-    fprintf (stderr, "  \n");
-    exit (2);
-  } 
-  return (TRUE);
+  if ( UserPatchSelect && (argc != 2)) usage ();
+  if (!UserPatchSelect && (argc != 3)) usage ();
+
+  return TRUE;
 }
 
+void usage () {
+  fprintf (stderr, "ERROR: USAGE: relphot (region) (photcode)\n");
+  fprintf (stderr, "       or:    relphot (photcode) -region RA RA DEC DEC\n");
+  fprintf (stderr, "  options: \n");
+  fprintf (stderr, "  -time (start) (stop)\n");
+  fprintf (stderr, "  -v\n");
+  fprintf (stderr, "  -plot\n");
+  fprintf (stderr, "  -plotdelay (seconds)\n");
+  fprintf (stderr, "  -statmode (mode)\n");
+  fprintf (stderr, "  -n (nloop)\n");
+  fprintf (stderr, "  -reset\n");
+  fprintf (stderr, "  -update\n");
+  fprintf (stderr, "  -params\n");
+  fprintf (stderr, "  -mosaic (mosaic)\n");
+  fprintf (stderr, "  -imfreeze\n");
+  fprintf (stderr, "  -grid\n");
+  fprintf (stderr, "  -area Xmin Xmax Ymin Ymax\n");
+  fprintf (stderr, "  -instmag min max\n");
+  fprintf (stderr, "  \n");
+  exit (2);
+} 
Index: /trunk/Ohana/src/relphot/src/bcatalog.c
===================================================================
--- /trunk/Ohana/src/relphot/src/bcatalog.c	(revision 7079)
+++ /trunk/Ohana/src/relphot/src/bcatalog.c	(revision 7080)
@@ -1,5 +1,5 @@
 # include "relphot.h"
 
-int bcatalog (Catalog *subcatalog, Catalog *catalog, GSCRegion *fullregion) {
+int bcatalog (Catalog *subcatalog, Catalog *catalog) {
   
   int i, j, offset, ecode;
@@ -18,8 +18,11 @@
   for (i = 0; i < catalog[0].Naverage; i++) {
     if (catalog[0].average[i].Nm < 2) continue; 
+
+    /* XXX this limitation is absurd
     if (catalog[0].average[i].R < fullregion[0].RA[0]) continue;
     if (catalog[0].average[i].R > fullregion[0].RA[1]) continue;
     if (catalog[0].average[i].D < fullregion[0].DEC[0]) continue;
     if (catalog[0].average[i].D > fullregion[0].DEC[1]) continue;
+    */
 
     /* start with all stars good */
Index: /trunk/Ohana/src/relphot/src/find_images.c
===================================================================
--- /trunk/Ohana/src/relphot/src/find_images.c	(revision 7079)
+++ /trunk/Ohana/src/relphot/src/find_images.c	(revision 7080)
@@ -27,5 +27,5 @@
   strcpy (tcoords.ctype, "RA---TAN");
 
-  timage = fits_table_get_Image (&db[0].ftable, &Ntimage, &db[0].swapped);
+  timage = gfits_table_get_Image (&db[0].ftable, &Ntimage, &db[0].swapped);
 
   nimage = 0;
Index: /trunk/Ohana/src/relphot/src/initialize.c
===================================================================
--- /trunk/Ohana/src/relphot/src/initialize.c	(revision 7079)
+++ /trunk/Ohana/src/relphot/src/initialize.c	(revision 7080)
@@ -3,14 +3,16 @@
 void initialize (int argc, char **argv) {
 
-  /* are these set correctly? */
+  int N;
+
   ConfigInit (&argc, argv);
   args (argc, argv);
 
-  if ((photcode = GetPhotcodebyName (argv[2])) == NULL) {
-    fprintf (stderr, "ERROR: photcode %s not found in photcode table\n", argv[2]);
+  N = UserPatchSelect ? 1 : 2;
+  if ((photcode = GetPhotcodebyName (argv[N])) == NULL) {
+    fprintf (stderr, "ERROR: photcode %s not found in photcode table\n", argv[N]);
     exit (1);
   }
   if ((photcode[0].type != PHOT_PRI) && (photcode[0].type != PHOT_SEC)) {
-    fprintf (stderr, "photcode %s is not a primary or secondary filter\n", argv[2]);
+    fprintf (stderr, "photcode %s is not a primary or secondary filter\n", argv[N]);
     exit (1);
   }
Index: /trunk/Ohana/src/relphot/src/load_catalogs.c
===================================================================
--- /trunk/Ohana/src/relphot/src/load_catalogs.c	(revision 7079)
+++ /trunk/Ohana/src/relphot/src/load_catalogs.c	(revision 7080)
@@ -1,21 +1,21 @@
 # include "relphot.h"
 
-Catalog *load_catalogs (GSCRegion *region, int Nregion, GSCRegion *fullregion) {
+Catalog *load_catalogs (SkyList *skylist, int *Ncatalog) {
 
   int i, Nstar;
-  char filename[256];
   Catalog *catalog, tcatalog;
 
   if (VERBOSE) fprintf (stderr, "loading catalog data\n");
 
-  ALLOCATE (catalog, Catalog, Nregion);
+  // XXX skip over the empty catalogs? don't add to the list?
+  ALLOCATE (catalog, Catalog, skylist[0].Nregions);
 
   /* load data from each region file, only use bright stars */
-  for (i = 0; i < Nregion; i++) {
-    sprintf (filename, "%s/%s", CATDIR, region[i].filename);
-    tcatalog.filename = filename;  /* don't free region before catalog! */
+  // we use LCK_SOFT since we assume the image is locked 
+  for (i = 0; i < skylist[0].Nregions; i++) {
+    tcatalog.filename = skylist[0].filename[i];
     switch (lock_catalog (&tcatalog, LCK_SOFT)) {
     case 0:
-      fprintf (stderr, "ERROR: can't lock file %s\n", region[i].filename);
+      fprintf (stderr, "ERROR: can't lock file %s\n", tcatalog.filename);
       exit (1);
     case 1:
@@ -31,9 +31,9 @@
       exit (1);
     }
-    bcatalog (&catalog[i], &tcatalog, fullregion);
+    bcatalog (&catalog[i], &tcatalog);
   }
 
   Nstar = 0;
-  for (i = 0; i < Nregion; i++) {
+  for (i = 0; i < skylist[0].Nregions; i++) {
     Nstar += catalog[i].Naverage;
   }
@@ -42,4 +42,6 @@
     exit (0);
   }
+
+  *Ncatalog = skylist[0].Nregions;
   return (catalog);
 }
Index: /trunk/Ohana/src/relphot/src/load_images.c
===================================================================
--- /trunk/Ohana/src/relphot/src/load_images.c	(revision 7079)
+++ /trunk/Ohana/src/relphot/src/load_images.c	(revision 7080)
@@ -1,35 +1,37 @@
 # include "relphot.h"
 
-GSCRegion *load_images (FITS_DB *db, char *seed, int *nregion, GSCRegion *fullregion) {
+SkyList *load_images (FITS_DB *db, char *regionName, SkyRegion *region, int RegionSelect) {
 
-  GSCRegion *region;
-  int        Nregion;
-  Image     *image;
-  int       *Line;
-  int        Nimage;
+  Image     *image, *subset;
+  int        Nimage, Nsubset, Nchar;
+  int       *LineNumber;
 
-  /* read entire db table */
-  if (!dvo_image_load (db, VERBOSE, FALSE)) Shutdown ("can't read image catalog %s", db[0].filename);
+  SkyTable *sky = NULL;
+  SkyList *skylist = NULL;
 
-  region = name_region (seed, &Nregion);
+  // load the current sky table (layout of all SkyRegions) 
+  sky = SkyTableLoadOptimal (CATDIR, SKY_TABLE, GSCFILE, SKY_DEPTH, VERBOSE);
+  SkyTableSetFilenames (sky, CATDIR, "cpt");
+  
+  // determine the populated SkyRegions overlapping the requested area
+  if (RegionSelect) {
+    skylist = SkyListByPatch (sky, -1, region);
+  } else {
+    Nchar = strlen(regionName);
+    if (!strcmp (&regionName[Nchar-4], ".cpt")) regionName[Nchar-4] = 0;
+    skylist = SkyListByName (sky, regionName);
+  }
 
-  /* find images which supplied all measurements */
-  image = find_images (db, region, Nregion, &Nimage, &Line);
-  free (Line);
+  // convert database table to internal structure
+  image = gfits_table_get_Image (&db[0].ftable, &Nimage, &db[0].swapped);
 
-  /* find all region files which touch images */
-  region = find_regions (image, Nimage, &Nregion, fullregion);
-  free (image);
+  // select the images which overlap the selected sky regions
+  subset = select_images (skylist, image, Nimage, &LineNumber, &Nsubset);
 
-  /* find images which supplied all measurements for all regions */
-  image = find_images (db, region, Nregion, &Nimage, &Line);
-  getfullregion (image, Nimage, fullregion);
+  gfits_vtable_from_ftable (&db[0].ftable, &db[0].vtable, LineNumber, Nsubset);
 
-  fits_vtable_from_ftable (&db[0].ftable, &db[0].vtable, Line, Nimage);
-
-  initImages (image, Nimage);
-  initMosaics (image, Nimage);
+  initImages (subset, Nsubset);
+  initMosaics (subset, Nsubset);
   
-  *nregion = Nregion;
-  return (region);
+  return (skylist);
 }
Index: /trunk/Ohana/src/relphot/src/name_region.c
===================================================================
--- /trunk/Ohana/src/relphot/src/name_region.c	(revision 7079)
+++ /trunk/Ohana/src/relphot/src/name_region.c	(revision 7080)
@@ -9,13 +9,13 @@
 
   sprintf (region[0].filename, "%s/%s", CATDIR, name);
-  if (!fits_read_header (region[0].filename, &header)) {
+  if (!gfits_read_header (region[0].filename, &header)) {
     if (VERBOSE) fprintf (stderr, "catalog file not yet available: %s\n", region[0].filename);
     exit (0);
   }
-  fits_scan (&header, "RA0", "%lf", 1, &region[0].RA[0]);
-  fits_scan (&header, "RA1", "%lf", 1, &region[0].RA[1]);
-  fits_scan (&header, "DEC0", "%lf", 1, &region[0].DEC[0]);
-  fits_scan (&header, "DEC1", "%lf", 1, &region[0].DEC[1]);
-  fits_free_header (&header);
+  gfits_scan (&header, "RA0", "%lf", 1, &region[0].RA[0]);
+  gfits_scan (&header, "RA1", "%lf", 1, &region[0].RA[1]);
+  gfits_scan (&header, "DEC0", "%lf", 1, &region[0].DEC[0]);
+  gfits_scan (&header, "DEC1", "%lf", 1, &region[0].DEC[1]);
+  gfits_free_header (&header);
 
   *Nregions = 1;
Index: /trunk/Ohana/src/relphot/src/reload_catalogs.c
===================================================================
--- /trunk/Ohana/src/relphot/src/reload_catalogs.c	(revision 7079)
+++ /trunk/Ohana/src/relphot/src/reload_catalogs.c	(revision 7080)
@@ -1,8 +1,7 @@
 # include "relphot.h"
 
-void reload_catalogs (GSCRegion *region, int Nregion, GSCRegion *fullregion) {
+void reload_catalogs (SkyList *skylist) {
 
   int i;
-  char filename[256];
   Catalog catalog;
 
@@ -10,10 +9,9 @@
 
   /* load data from each region file */
-  for (i = 0; i < Nregion; i++) {
-    sprintf (filename, "%s/%s", CATDIR, region[i].filename);
-    catalog.filename = filename;  /* don't free region before catalog! */
+  for (i = 0; i < skylist[0].Nregions; i++) {
+    catalog.filename = skylist[0].filename[i];
     switch (lock_catalog (&catalog, LCK_XCLD)) {
     case 0:
-      fprintf (stderr, "ERROR: can't lock file %s\n", region[i].filename);
+      fprintf (stderr, "ERROR: can't lock file %s\n", catalog.filename);
       exit (1);
     case 1:
Index: /trunk/Ohana/src/relphot/src/relphot.c
===================================================================
--- /trunk/Ohana/src/relphot/src/relphot.c	(revision 7079)
+++ /trunk/Ohana/src/relphot/src/relphot.c	(revision 7080)
@@ -1,4 +1,3 @@
 # include "relphot.h"
-/** I'm not currently setting the lockfiles.  this should be fixed! **/
 
 int main (int argc, char **argv) {
@@ -6,22 +5,31 @@
   int i, status, Ncatalog;
   Catalog *catalog;
-  GSCRegion fullregion, *region;
   FITS_DB db;
+
+  SkyList *skylist = NULL;
 
   /* get configuration info, args */
   initialize (argc, argv);
 
+  /* register database handle with shutdown procedure */
   set_db (&db);
+
+  /* lock and load the image db table */
   status = dvo_image_lock (&db, ImageCat, 60.0, (UPDATE ? LCK_XCLD : LCK_SOFT));
   if (!status) Shutdown ("ERROR: failure to lock image catalog %s", db.filename);
   if (db.dbstate == LCK_EMPTY) Shutdown ("ERROR: No images in catalog %s (1)", db.filename);
+  if (!dvo_image_load (&db, VERBOSE, FALSE)) Shutdown ("can't read image catalog %s", db.filename);
 
-  /* load regions and images based on seed region */
-  // XXX EAM : load images and regions based on bounds, not name
-  region = load_images (&db, argv[1], &Ncatalog, &fullregion);
+  /* load regions and images based on specified sky patch */
+  // XXX need to mimic old-style load by passing patch name
+  // XXX need to reduce number of global variables in use.
+  // XXX this is fairly lame: argv[1] is photcode if UserPatchSelect is true
+  skylist = load_images (&db, argv[1], &UserPatch, UserPatchSelect);
+
+  /* unlock, if we can (else, unlocked below) */
   if (!UPDATE) dvo_image_unlock (&db); 
 
   /* load catalog data from region files */
-  catalog = load_catalogs (region, Ncatalog, &fullregion);
+  catalog = load_catalogs (skylist, &Ncatalog);
 
   /* match measurements with images, mosaics */
@@ -86,5 +94,5 @@
 
   /* load catalog data from region files, update Mrel include all data */
-  reload_catalogs (region, Ncatalog, &fullregion);
+  reload_catalogs (skylist);
   setMcalFinal ();
   dvo_image_update (&db, VERBOSE);
Index: /trunk/Ohana/src/relphot/src/wcatalog.c
===================================================================
--- /trunk/Ohana/src/relphot/src/wcatalog.c	(revision 7079)
+++ /trunk/Ohana/src/relphot/src/wcatalog.c	(revision 7080)
@@ -26,4 +26,4 @@
     catalog[0].Nsecfilt = 0;
   }
-  fits_free_header (&catalog[0].header);
+  gfits_free_header (&catalog[0].header);
 }
Index: /trunk/Ohana/src/relphot/src/wimages.c
===================================================================
--- /trunk/Ohana/src/relphot/src/wimages.c	(revision 7079)
+++ /trunk/Ohana/src/relphot/src/wimages.c	(revision 7080)
@@ -12,11 +12,11 @@
   /* adjust header */
   Nimages = 0;
-  fits_scan (&db[0].header, "NIMAGES", "%d", 1, &Nimages);
+  gfits_scan (&db[0].header, "NIMAGES", "%d", 1, &Nimages);
   Nimages ++;
-  fits_modify (&db[0].header, "NIMAGES", "%d", 1, Nimages);
+  gfits_modify (&db[0].header, "NIMAGES", "%d", 1, Nimages);
 
-  fits_table_to_vtable (&db[0].ftable, &db[0].vtable, 0, 0);
+  gfits_table_to_vtable (&db[0].ftable, &db[0].vtable, 0, 0);
   for (i = 0; i < Nimage; i++) {
-    fits_vadd_rows (&db[0].vtable, (char *) image, 1, sizeof(Image));
+    gfits_vadd_rows (&db[0].vtable, (char *) image, 1, sizeof(Image));
   }
 
Index: /trunk/Ohana/src/relphot/src/write_coords.c
===================================================================
--- /trunk/Ohana/src/relphot/src/write_coords.c	(revision 7079)
+++ /trunk/Ohana/src/relphot/src/write_coords.c	(revision 7080)
@@ -5,25 +5,25 @@
 void write_coords (Header *header, Coords *coords) {
 
-  fits_modify (header, "CTYPE1",   "%s",  1, "RA---TAN");
-  fits_modify (header, "CTYPE2",   "%s",  1, "DEC--TAN");
+  gfits_modify (header, "CTYPE1",   "%s",  1, "RA---TAN");
+  gfits_modify (header, "CTYPE2",   "%s",  1, "DEC--TAN");
 
-  fits_modify (header, "CRVAL1",   "%lf", 1, coords[0].crval1);
-  fits_modify (header, "CRVAL2",   "%lf", 1, coords[0].crval2);  
+  gfits_modify (header, "CRVAL1",   "%lf", 1, coords[0].crval1);
+  gfits_modify (header, "CRVAL2",   "%lf", 1, coords[0].crval2);  
 
-  fits_modify (header, "CRPIX1",   "%lf", 1, coords[0].crpix1);
-  fits_modify (header, "CRPIX2",   "%lf", 1, coords[0].crpix2);
+  gfits_modify (header, "CRPIX1",   "%lf", 1, coords[0].crpix1);
+  gfits_modify (header, "CRPIX2",   "%lf", 1, coords[0].crpix2);
 
 # if (CD_COORDS)  
-  fits_modify (header, "CD1_1",    "%le", 1, coords[0].pc1_1 * coords[0].cdelt1);
-  fits_modify (header, "CD2_1",    "%le", 1, coords[0].pc2_1 * coords[0].cdelt1);
-  fits_modify (header, "CD1_2",    "%le", 1, coords[0].pc1_2 * coords[0].cdelt2);
-  fits_modify (header, "CD2_2",    "%le", 1, coords[0].pc2_2 * coords[0].cdelt2);
+  gfits_modify (header, "CD1_1",    "%le", 1, coords[0].pc1_1 * coords[0].cdelt1);
+  gfits_modify (header, "CD2_1",    "%le", 1, coords[0].pc2_1 * coords[0].cdelt1);
+  gfits_modify (header, "CD1_2",    "%le", 1, coords[0].pc1_2 * coords[0].cdelt2);
+  gfits_modify (header, "CD2_2",    "%le", 1, coords[0].pc2_2 * coords[0].cdelt2);
 # else
-  fits_modify (header, "CDELT1",   "%le", 1, coords[0].cdelt1); 
-  fits_modify (header, "CDELT2",   "%le", 1, coords[0].cdelt2);
-  fits_modify (header, "PC001001", "%le", 1, coords[0].pc1_1);
-  fits_modify (header, "PC001002", "%le", 1, coords[0].pc1_2);
-  fits_modify (header, "PC002001", "%le", 1, coords[0].pc2_1);
-  fits_modify (header, "PC002002", "%le", 1, coords[0].pc2_2);
+  gfits_modify (header, "CDELT1",   "%le", 1, coords[0].cdelt1); 
+  gfits_modify (header, "CDELT2",   "%le", 1, coords[0].cdelt2);
+  gfits_modify (header, "PC001001", "%le", 1, coords[0].pc1_1);
+  gfits_modify (header, "PC001002", "%le", 1, coords[0].pc1_2);
+  gfits_modify (header, "PC002001", "%le", 1, coords[0].pc2_1);
+  gfits_modify (header, "PC002002", "%le", 1, coords[0].pc2_2);
 # endif
 }
Index: /trunk/Ohana/src/uniphot/doc/ChangeLog.txt
===================================================================
--- /trunk/Ohana/src/uniphot/doc/ChangeLog.txt	(revision 7079)
+++ /trunk/Ohana/src/uniphot/doc/ChangeLog.txt	(revision 7080)
@@ -1,3 +1,5 @@
 
+- uniphot-1-4:
+  * converted to gfits APIs (forces libfits 1.6)
 
 - uniphot-1-3:
Index: /trunk/Ohana/src/uniphot/src/Shutdown.c
===================================================================
--- /trunk/Ohana/src/uniphot/src/Shutdown.c	(revision 7079)
+++ /trunk/Ohana/src/uniphot/src/Shutdown.c	(revision 7080)
@@ -22,5 +22,5 @@
 
   SetProtect (TRUE);
-  fits_db_close (db);
+  gfits_db_close (db);
   fprintf (stderr, "ERROR: addstar halted\n");
   exit (1);
Index: /trunk/Ohana/src/uniphot/src/find_image_sgroups.c
===================================================================
--- /trunk/Ohana/src/uniphot/src/find_image_sgroups.c	(revision 7079)
+++ /trunk/Ohana/src/uniphot/src/find_image_sgroups.c	(revision 7080)
@@ -11,5 +11,5 @@
 
   imlink = *Imlink;
-  image = fits_table_get_Image (&db[0].ftable, &Nimage, &db[0].swapped);
+  image = gfits_table_get_Image (&db[0].ftable, &Nimage, &db[0].swapped);
 
   coords.crpix1 = coords.crpix2 = 0.0;
Index: /trunk/Ohana/src/uniphot/src/find_image_tgroups.c
===================================================================
--- /trunk/Ohana/src/uniphot/src/find_image_tgroups.c	(revision 7079)
+++ /trunk/Ohana/src/uniphot/src/find_image_tgroups.c	(revision 7080)
@@ -10,5 +10,5 @@
   ImageLink *imlink;
 
-  image = fits_table_get_Image (&db[0].ftable, &Nimage, &db[0].swapped);
+  image = gfits_table_get_Image (&db[0].ftable, &Nimage, &db[0].swapped);
   ALLOCATE (imlink, ImageLink, Nimage);
 
Index: /trunk/Ohana/src/uniphot/src/subset_images.c
===================================================================
--- /trunk/Ohana/src/uniphot/src/subset_images.c	(revision 7079)
+++ /trunk/Ohana/src/uniphot/src/subset_images.c	(revision 7080)
@@ -8,5 +8,5 @@
 
   /* use a vtable to keep the images to be calibrated */
-  image = fits_table_get_Image (&db[0].ftable, &Nimage, &db[0].swapped);
+  image = gfits_table_get_Image (&db[0].ftable, &Nimage, &db[0].swapped);
 
   Nkeep = 0;
@@ -32,5 +32,5 @@
   }
 
-  fits_vtable_from_ftable (&db[0].ftable, &db[0].vtable, keep, Nkeep);
+  gfits_vtable_from_ftable (&db[0].ftable, &db[0].vtable, keep, Nkeep);
   return (TRUE);
 }
Index: /trunk/Ohana/src/uniphot/src/update.c
===================================================================
--- /trunk/Ohana/src/uniphot/src/update.c	(revision 7079)
+++ /trunk/Ohana/src/uniphot/src/update.c	(revision 7080)
@@ -12,5 +12,5 @@
   Coords coords;
 
-  image = fits_table_get_Image (&db[0].ftable, &Nimage, &db[0].swapped);
+  image = gfits_table_get_Image (&db[0].ftable, &Nimage, &db[0].swapped);
 
   /* clear the NOCAL flags */
@@ -44,8 +44,8 @@
     if (!gcatalog (&catalog)) continue;
 
-    fits_scan (&catalog.header, "RA0", "%lf",  1, &Rmin);
-    fits_scan (&catalog.header, "RA1", "%lf",  1, &Rmax);
-    fits_scan (&catalog.header, "DEC0", "%lf", 1, &Dmin);
-    fits_scan (&catalog.header, "DEC1", "%lf", 1, &Dmax);
+    gfits_scan (&catalog.header, "RA0", "%lf",  1, &Rmin);
+    gfits_scan (&catalog.header, "RA1", "%lf",  1, &Rmax);
+    gfits_scan (&catalog.header, "DEC0", "%lf", 1, &Dmin);
+    gfits_scan (&catalog.header, "DEC1", "%lf", 1, &Dmax);
     while (Rmin <   0.0) { Rmin += 360.0; }
     while (Rmin > 360.0) { Rmin -= 360.0; }
Index: /trunk/Ohana/src/uniphot/src/wcatalog.c
===================================================================
--- /trunk/Ohana/src/uniphot/src/wcatalog.c	(revision 7079)
+++ /trunk/Ohana/src/uniphot/src/wcatalog.c	(revision 7080)
@@ -27,5 +27,5 @@
     catalog[0].Nsecfilt = 0;
   }
-  fits_free_header (&catalog[0].header);
+  gfits_free_header (&catalog[0].header);
   unlock_catalog (catalog);
 }
Index: /trunk/Ohana/src/uniphot/src/wimages.c
===================================================================
--- /trunk/Ohana/src/uniphot/src/wimages.c	(revision 7079)
+++ /trunk/Ohana/src/uniphot/src/wimages.c	(revision 7080)
@@ -23,5 +23,5 @@
     exit (1);
   }
-  if (!fits_fread_header (f, &header)) {
+  if (!gfits_fread_header (f, &header)) {
     fprintf (stderr, "ERROR: can't read header %s\n", ImageCat);
     exit (1);
