Index: trunk/SophyaProg/PrgUtil/runcxx.cc
===================================================================
--- trunk/SophyaProg/PrgUtil/runcxx.cc	(revision 1432)
+++ trunk/SophyaProg/PrgUtil/runcxx.cc	(revision 1441)
@@ -18,4 +18,23 @@
 #include "pdlmgr.h"
 #include "timing.h"
+
+/*!
+  \ingroup PrgUtil
+  \file runcxx.cc
+  \brief \b runcxx: Compile and run simple C++ code using SOPHYA 
+
+  \verbatim
+  csh> runcxx -h
+  SOPHYA Version  1.1 Revision 0 (V_Fev2001) -- Mar  9 2001 15:45:31 cxx
+  runcxx : compiling and running of a piece of C++ code
+    Usage: runcxx [-compopt CompileOptions] [-linkopt LinkOptions]
+                  [-tmpdir TmpDirectory] [-f C++CodeFileName]
+                  [-inc includefile] [-inc includefile ...]
+                  [-import modulename] [-import modulename ...]
+                  [-uarg UserArg1 UserArg2 ...]
+   if no file name is specified, read from standard input
+   modulenames: SkyMap, Samba, SkyT, FitsIOServer, LinAlg, IFFTW
+  \endverbatim
+*/
 
 typedef void (* DlFunctionOfVecStr) (vector<string> & args, int & rc);
Index: trunk/SophyaProg/PrgUtil/scanfits.cc
===================================================================
--- trunk/SophyaProg/PrgUtil/scanfits.cc	(revision 1432)
+++ trunk/SophyaProg/PrgUtil/scanfits.cc	(revision 1441)
@@ -11,4 +11,40 @@
 #include "fitsntuple.h"
 
+/*!
+  \ingroup PrgUtil
+  \file scanfits.cc
+  \brief \b scanfits: Check and scan FITS files 
+
+  Scan FITS files and prints information on each FITS bloc in file.
+  Uses the FitsIOServer module. 
+
+  \verbatim
+  Usage: scanfits FITSFilename
+  \endverbatim
+ */
+
+string FITSExtType2String(FitsFile::FitsExtensionType exttype)
+{
+  if (exttype == FitsFile::FitsExtensionType_IMAGE) return("IMAGE");
+  else if (exttype == FitsFile::FitsExtensionType_ASCII_TBL) return("ASCII_TBL");
+  else if (exttype == FitsFile::FitsExtensionType_BINARY_TBL) return("BINARY_TBL");
+  else if (exttype == FitsFile::FitsExtensionType_EOF) return("EOF");
+  else if (exttype == FitsFile::FitsExtensionType_ERROR) return("ERROR");
+  else return("Unknown?");
+}
+
+string FITSDataType2String(FitsFile::FitsDataType datatype)
+{
+  if (datatype == FitsFile::FitsDataType_double) return("double");
+  else if (datatype == FitsFile::FitsDataType_float) return("float");
+  else if (datatype == FitsFile::FitsDataType_int) return("int");
+  else if (datatype == FitsFile::FitsDataType_long) return("long");
+  else if (datatype == FitsFile::FitsDataType_byte) return("byte");
+  else if (datatype == FitsFile::FitsDataType_char) return("char");
+  else if (datatype == FitsFile::FitsDataType_ASCII) return("ASCII");
+  else if (datatype == FitsFile::FitsDataType_NULL) return("NULL");
+  else return("Unknown?");
+}
+
 int main(int narg, char *arg[])
 {
@@ -21,37 +57,47 @@
     string flnm = arg[1];
     int nbblk = FitsInFile::NbBlocks(arg[1]);
-    cout << " :::: File " << flnm << " has " << nbblk << " blocks " << endl;
-    DVList header;
-    FitsFile::FitsExtensionType exttype;
-    FitsFile::FitsDataType datatype;
+    cout << " :::::::: File " << flnm << " has " << nbblk << " blocks " 
+	 << " :::::::: " << endl;
 
-    cout << " FitsFile::FitsExtensionType : FitsExtensionType_IMAGE= " <<
-      (int)FitsFile::FitsExtensionType_IMAGE << 
-      "  FitsExtensionType_ASCII_TBL= " << (int)FitsFile::FitsExtensionType_ASCII_TBL <<
-      "  FitsExtensionType_BINARY_TBL= " << (int)FitsFile::FitsExtensionType_BINARY_TBL << endl;
-    cout << " FitsFile::FitsDataType: FitsDataType_double= " <<
-      (int)FitsFile::FitsDataType_double << 
-      " FitsDataType_float= " << (int)FitsFile::FitsDataType_float <<
-      " FitsDataType_int= " << (int)FitsFile::FitsDataType_int <<
-      " FitsDataType_char= " << (int)FitsFile::FitsDataType_char <<
-      " FitsDataType_ASCII= " << (int)FitsFile::FitsDataType_ASCII << endl << endl;
+    //    cout << " FitsFile::FitsExtensionType : FitsExtensionType_IMAGE= " <<
+    //      (int)FitsFile::FitsExtensionType_IMAGE << 
+    //      "  FitsExtensionType_ASCII_TBL= " << (int)FitsFile::FitsExtensionType_ASCII_TBL <<
+    //      "  FitsExtensionType_BINARY_TBL= " << (int)FitsFile::FitsExtensionType_BINARY_TBL << endl;
+    //    cout << " FitsFile::FitsDataType: FitsDataType_double= " <<
+    //      (int)FitsFile::FitsDataType_double << 
+    //      " FitsDataType_float= " << (int)FitsFile::FitsDataType_float <<
+    //      " FitsDataType_int= " << (int)FitsFile::FitsDataType_int <<
+    //      " FitsDataType_char= " << (int)FitsFile::FitsDataType_char <<
+    //      " FitsDataType_ASCII= " << (int)FitsFile::FitsDataType_ASCII << endl << endl;
 
-    int naxis;
-    vector<int> axis;
     for(int i=1; i<=nbblk; i++) {
+      int naxis;
+      vector<int> axis;
+      DVList header;
+      FitsFile::FitsExtensionType exttype;
+      FitsFile::FitsDataType datatype;
+
       FitsInFile::GetBlockType(arg[1], i, exttype, naxis, axis, datatype, header);
-      cout << " --------- Header Num " << i << " Type " << (int)exttype 
-	   << " NAxis= " << naxis << " (" << axis.size() << " )" 
-	   << " DataType= " << (int)datatype << endl;
-      for(int j=0; j<axis.size(); j++) cout  << axis[j] << " x "  ;
-      cout << endl;
+      cout << "\n--------- Header Num " << i << " Type " << FITSExtType2String(exttype) 
+	   << "  --- NAxis= " << naxis 
+	   << " DataType= " << FITSDataType2String(datatype) << endl;
+      if (axis.size() > 0) { 
+	cout << " >> Axis Sizes: " ;
+	for(int j=0; j<axis.size(); j++) { 
+	  if (j > 0) cout << " x " ;
+	  cout  << axis[j] ;
+	}
+	cout << endl;
+      }
+      cout << " >>> Header info : " ;
       cout << header << endl;
-      cout << "----------------------------------------------------" << endl;
+      cout << "----------------------------------------------------------------------" 
+	   << endl;
     } 
  
   }
   catch (PThrowable & exc) {
-    cerr << " Catched Exception " << (string)typeid(exc).name()
-         << " - Msg= " << exc.Msg() << endl;
+    cerr << "sanfits: Catched Exception " << (string)typeid(exc).name()
+         << "\n .... Msg= " << exc.Msg() << endl;
   }
   catch (...) {
Index: trunk/SophyaProg/PrgUtil/scanppf.cc
===================================================================
--- trunk/SophyaProg/PrgUtil/scanppf.cc	(revision 1432)
+++ trunk/SophyaProg/PrgUtil/scanppf.cc	(revision 1441)
@@ -12,4 +12,35 @@
 #include <console.h>
 #endif
+
+
+/*!
+  \defgroup PrgUtil PrgUtil module
+  This module contains simple programs to perform various utility tasks:
+  <UL>
+  <LI> scanppf : Check and scan PPF files (scanppf.cc)
+  <LI> scanfits : Check and scan FITS files (scanfits.cc)
+  <LI> runcxx : Compile and run simple C++ code using SOPHYA (runcxx.cc)
+  <LI> prjsmap : Molleweide and sinus projection of sky maps (prjsmap.cc)
+  <LI> map2cl : Computes power spectra (C(l)) on spherical maps (map2cl.cc)
+  <LI> cl2map : generates spherical maps from power spectra (C(l)) (cl2map.cc)
+  </UL>
+*/
+
+/*!
+  \ingroup PrgUtil
+  \file scanppf.cc
+  \brief \b scanppf: Check and scan PPF files
+
+  \verbatim
+
+  csh> scanppf -h
+  SOPHYA Version  1.1 Revision 0 (V_Fev2001) -- Mar  9 2001 15:45:31 cxx
+  Usage: scanppf filename [s/n/a0/a1/a2/a3]
+     s[=default} : Sequential reading of objects
+     n : Object reading at NameTags
+     a0...a3 : Tag List with PInPersist.AnalyseTags(0...3)
+
+  \endverbatim
+*/
 
 int main(int narg, char* arg[])
