Index: trunk/Ohana/src/opihi/dvo/ccd.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/ccd.c	(revision 3462)
+++ trunk/Ohana/src/opihi/dvo/ccd.c	(revision 4470)
@@ -9,8 +9,8 @@
   Vector *xvec, *yvec;
 
-  char filename[256], catdir[256];
+  char filename[256], catdir[256], *CPTfile;
   double Radius;
   double *M1, *M2;
-  int i, m, k, Npts, NPTS;
+  int i, m, k, Npts, NPTS, N;
   int N1, N2, i1, i2, mode[4];
   int Ngraph, Nsec, Nregions, UseAverages;
@@ -33,4 +33,12 @@
   VarConfig ("CATDIR", "%s", catdir);
 
+  /* check for CPT selection */
+  CPTfile = NULL;
+  if (N = get_argument (argc, argv, "-cpt")) {
+    remove_argument (N, &argc, argv);
+    CPTfile = strcreate (argv[N]);
+    remove_argument (N, &argc, argv);
+  }    
+
   /* interpret command-line options */
   if (!SetPhotSelections (&argc, argv)) goto usage;
@@ -47,7 +55,14 @@
   if ((mode[2] == MAG_AVE) || (mode[2] == MAG_REF)) UseAverages = TRUE;
 
-  /* find catalog files which overlap this region */
-  Radius = MAX (fabs(graphsky.xmax), fabs(graphsky.ymax));
-  regions = find_regions (graphsky.coords.crval1, graphsky.coords.crval2, Radius, &Nregions);
+  /* determine region-file names */
+  if (CPTfile == NULL) {
+    float Radius;
+    Radius = MAX (fabs(graphsky.xmax), fabs(graphsky.ymax));
+    regions = find_regions (graphsky.coords.crval1, graphsky.coords.crval2, Radius, &Nregions);
+  } else {
+    Nregions = 1;
+    ALLOCATE (regions, RegionFile, 1);
+    strcpy (regions[0].name, CPTfile);
+  }
 
   /* init vectors to save data */
