Index: trunk/SophyaProg/Tests/Makefile
===================================================================
--- trunk/SophyaProg/Tests/Makefile	(revision 2782)
+++ trunk/SophyaProg/Tests/Makefile	(revision 2783)
@@ -1,5 +1,5 @@
 include ../BuildMgr/sophyamake.inc
  
-PROGS = $(SOPHYAEXEP)arrt $(SOPHYAEXEP)carrt $(SOPHYAEXEP)lpk $(SOPHYAEXEP)obj_fits $(SOPHYAEXEP)ovharr $(SOPHYAEXEP)pizthr $(SOPHYAEXEP)ppftswap $(SOPHYAEXEP)spar $(SOPHYAEXEP)sphg0 $(SOPHYAEXEP)sph2lm $(SOPHYAEXEP)tcmd $(SOPHYAEXEP)tcxxcmpldynl $(SOPHYAEXEP)tdcr $(SOPHYAEXEP)tdynl $(SOPHYAEXEP)tfft $(SOPHYAEXEP)thash $(SOPHYAEXEP)timg $(SOPHYAEXEP)tmxv $(SOPHYAEXEP)tnt $(SOPHYAEXEP)tobjio2 $(SOPHYAEXEP)tobjio $(SOPHYAEXEP)tpipe $(SOPHYAEXEP)tsimplex $(SOPHYAEXEP)tsphereecp $(SOPHYAEXEP)tspm2 $(SOPHYAEXEP)tspm $(SOPHYAEXEP)tstboloread $(SOPHYAEXEP)tstcolread $(SOPHYAEXEP)tstdtable $(SOPHYAEXEP)tstndblk $(SOPHYAEXEP)tstppfwrapstl $(SOPHYAEXEP)tstsegdb $(SOPHYAEXEP)tsttmat $(SOPHYAEXEP)tsttminv $(SOPHYAEXEP)tsttvec $(SOPHYAEXEP)ttimestamp $(SOPHYAEXEP)zthr
+PROGS = $(SOPHYAEXEP)arrt $(SOPHYAEXEP)carrt $(SOPHYAEXEP)lpk $(SOPHYAEXEP)obj_fits $(SOPHYAEXEP)ovharr $(SOPHYAEXEP)pizthr $(SOPHYAEXEP)ppftswap $(SOPHYAEXEP)spar $(SOPHYAEXEP)sphg0 $(SOPHYAEXEP)sph2lm $(SOPHYAEXEP)tcmd $(SOPHYAEXEP)tcxxcmpldynl $(SOPHYAEXEP)tdcr $(SOPHYAEXEP)tdynl $(SOPHYAEXEP)tfft $(SOPHYAEXEP)thash $(SOPHYAEXEP)timg $(SOPHYAEXEP)tmxv $(SOPHYAEXEP)tnt $(SOPHYAEXEP)tobjio2 $(SOPHYAEXEP)tobjio $(SOPHYAEXEP)tpipe $(SOPHYAEXEP)tsimplex $(SOPHYAEXEP)tsphereecp $(SOPHYAEXEP)tspm2 $(SOPHYAEXEP)tspm $(SOPHYAEXEP)tstboloread $(SOPHYAEXEP)tstcolread $(SOPHYAEXEP)tstdtable $(SOPHYAEXEP)tstndblk $(SOPHYAEXEP)tstppfwrapstl $(SOPHYAEXEP)tstsegdb $(SOPHYAEXEP)tswfits $(SOPHYAEXEP)tsttmat $(SOPHYAEXEP)tsttminv $(SOPHYAEXEP)tsttvec $(SOPHYAEXEP)ttimestamp $(SOPHYAEXEP)zthr
  
 all: $(PROGS)
@@ -7,5 +7,5 @@
 clean:
 	rm -f $(PROGS)
-	rm -f $(SOPHYAOBJP)zthr.o $(SOPHYAOBJP)ttimestamp.o $(SOPHYAOBJP)tsttvec.o $(SOPHYAOBJP)tsttminv.o $(SOPHYAOBJP)tsttmat.o $(SOPHYAOBJP)tstsegdb.o $(SOPHYAOBJP)tstppfwrapstl.o $(SOPHYAOBJP)tstndblk.o $(SOPHYAOBJP)tstdtable.o $(SOPHYAOBJP)tstcolread.o $(SOPHYAOBJP)tstboloread.o $(SOPHYAOBJP)tspm.o $(SOPHYAOBJP)tspm2.o $(SOPHYAOBJP)tsphereecp.o $(SOPHYAOBJP)tsimplex.o $(SOPHYAOBJP)tpipe.o $(SOPHYAOBJP)tobjio.o $(SOPHYAOBJP)tobjio2.o $(SOPHYAOBJP)tnt.o $(SOPHYAOBJP)tmxv.o $(SOPHYAOBJP)timg.o $(SOPHYAOBJP)thash.o $(SOPHYAOBJP)tfft.o $(SOPHYAOBJP)tdynl.o $(SOPHYAOBJP)tdcr.o $(SOPHYAOBJP)tcxxcmpldynl.o $(SOPHYAOBJP)tcmd.o $(SOPHYAOBJP)sph2lm.o $(SOPHYAOBJP)sphg0.o $(SOPHYAOBJP)spar.o $(SOPHYAOBJP)ppftswap.o $(SOPHYAOBJP)pizthr.o $(SOPHYAOBJP)ovharr.o $(SOPHYAOBJP)obj_fits.o $(SOPHYAOBJP)lpk.o $(SOPHYAOBJP)carrt.o $(SOPHYAOBJP)arrt.o
+	rm -f $(SOPHYAOBJP)zthr.o $(SOPHYAOBJP)ttimestamp.o $(SOPHYAOBJP)tsttvec.o $(SOPHYAOBJP)tsttminv.o $(SOPHYAOBJP)tsttmat.o $(SOPHYAOBJP)tswfits.o $(SOPHYAOBJP)tstsegdb.o $(SOPHYAOBJP)tstppfwrapstl.o $(SOPHYAOBJP)tstndblk.o $(SOPHYAOBJP)tstdtable.o $(SOPHYAOBJP)tstcolread.o $(SOPHYAOBJP)tstboloread.o $(SOPHYAOBJP)tspm.o $(SOPHYAOBJP)tspm2.o $(SOPHYAOBJP)tsphereecp.o $(SOPHYAOBJP)tsimplex.o $(SOPHYAOBJP)tpipe.o $(SOPHYAOBJP)tobjio.o $(SOPHYAOBJP)tobjio2.o $(SOPHYAOBJP)tnt.o $(SOPHYAOBJP)tmxv.o $(SOPHYAOBJP)timg.o $(SOPHYAOBJP)thash.o $(SOPHYAOBJP)tfft.o $(SOPHYAOBJP)tdynl.o $(SOPHYAOBJP)tdcr.o $(SOPHYAOBJP)tcxxcmpldynl.o $(SOPHYAOBJP)tcmd.o $(SOPHYAOBJP)sph2lm.o $(SOPHYAOBJP)sphg0.o $(SOPHYAOBJP)spar.o $(SOPHYAOBJP)ppftswap.o $(SOPHYAOBJP)pizthr.o $(SOPHYAOBJP)ovharr.o $(SOPHYAOBJP)obj_fits.o $(SOPHYAOBJP)lpk.o $(SOPHYAOBJP)carrt.o $(SOPHYAOBJP)arrt.o
  
 arrt: $(SOPHYAEXEP)arrt
@@ -169,4 +169,9 @@
 	$(CXXLINK) $(CXXTEMPFLG) -o $@ $(SOPHYAOBJP)tstsegdb.o $(SOPHYAALLSLBLIST)
  
+tswfits: $(SOPHYAEXEP)tswfits
+	echo $@ " done"
+$(SOPHYAEXEP)tswfits: $(SOPHYAOBJP)tswfits.o
+	$(CXXLINK) $(CXXTEMPFLG) -o $@ $(SOPHYAOBJP)tswfits.o $(SOPHYAALLSLBLIST)
+ 
 tsttmat: $(SOPHYAEXEP)tsttmat
 	echo $@ " done"
@@ -194,6 +199,5 @@
 	$(CXXLINK) $(CXXTEMPFLG) -o $@ $(SOPHYAOBJP)zthr.o $(SOPHYAALLSLBLIST)
  
-$(SOPHYAOBJP)arrt.o: arrt.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)arrt.o: arrt.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)machdefs.h \
   $(SOPHYAINCP)tarrinit.h \
@@ -222,6 +226,5 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  arrt.cc
  
-$(SOPHYAOBJP)carrt.o: carrt.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)carrt.o: carrt.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)machdefs.h \
   $(SOPHYAINCP)tarrinit.h \
@@ -250,6 +253,5 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  carrt.cc
  
-$(SOPHYAOBJP)lpk.o: lpk.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)lpk.o: lpk.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)machdefs.h \
   $(SOPHYAINCP)srandgen.h \
@@ -318,6 +320,5 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  obj_fits.cc
  
-$(SOPHYAOBJP)ovharr.o: ovharr.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)ovharr.o: ovharr.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)machdefs.h \
   $(SOPHYAINCP)tarrinit.h \
@@ -348,6 +349,5 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  ovharr.cc
  
-$(SOPHYAOBJP)pizthr.o: pizthr.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)pizthr.o: pizthr.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)machdefs.h \
   $(SOPHYAINCP)zthread.h \
@@ -440,6 +440,5 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  ppftswap.cc
  
-$(SOPHYAOBJP)spar.o: spar.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)spar.o: spar.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)machdefs.h \
   $(SOPHYAINCP)tarrinit.h \
@@ -469,6 +468,5 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  spar.cc
  
-$(SOPHYAOBJP)sph2lm.o: sph2lm.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)sph2lm.o: sph2lm.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)tarray.h \
   $(SOPHYAINCP)machdefs.h \
@@ -518,6 +516,5 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  sph2lm.cc
  
-$(SOPHYAOBJP)sphg0.o: sphg0.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)sphg0.o: sphg0.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)sambainit.h \
   $(SOPHYAINCP)skymapinit.h \
@@ -556,6 +553,5 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  sphg0.cc
  
-$(SOPHYAOBJP)tcmd.o: tcmd.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)tcmd.o: tcmd.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)machdefs.h \
   $(SOPHYAINCP)sophyainit.h \
@@ -610,7 +606,6 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tcxxcmpldynl.cc
  
-$(SOPHYAOBJP)tdcr.o: tdcr.cc \
-  $(SOPHYAINCP)sopnamsp.h \
-  $(SOPHYAINCP)histinit.h \
+$(SOPHYAOBJP)tdcr.o: tdcr.cc $(SOPHYAINCP)sopnamsp.h \
+  /usr/include/math.h $(SOPHYAINCP)histinit.h \
   $(SOPHYAINCP)ntoolsinit.h \
   $(SOPHYAINCP)tarrinit.h \
@@ -644,6 +639,5 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tdcr.cc
  
-$(SOPHYAOBJP)tdynl.o: tdynl.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)tdynl.o: tdynl.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)tarrinit.h \
   $(SOPHYAINCP)sophyainit.h \
@@ -673,6 +667,5 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tdynl.cc
  
-$(SOPHYAOBJP)tfft.o: tfft.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)tfft.o: tfft.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)machdefs.h \
   $(SOPHYAINCP)nbrandom.h \
@@ -705,6 +698,5 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tfft.cc
  
-$(SOPHYAOBJP)thash.o: thash.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)thash.o: thash.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)ppersist.h \
   $(SOPHYAINCP)machdefs.h \
@@ -716,6 +708,5 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  thash.cc
  
-$(SOPHYAOBJP)timg.o: timg.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)timg.o: timg.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)ntoolsinit.h \
   $(SOPHYAINCP)tarrinit.h \
@@ -748,6 +739,5 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  timg.cc
  
-$(SOPHYAOBJP)tmxv.o: tmxv.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)tmxv.o: tmxv.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)machdefs.h \
   $(SOPHYAINCP)srandgen.h \
@@ -774,6 +764,5 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tmxv.cc
  
-$(SOPHYAOBJP)tnt.o: tnt.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)tnt.o: tnt.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)histinit.h \
   $(SOPHYAINCP)ntoolsinit.h \
@@ -803,42 +792,6 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tnt.cc
  
-$(SOPHYAOBJP)tobjio2.o: tobjio2.cc \
-  $(SOPHYAINCP)sopnamsp.h \
-  $(SOPHYAINCP)histinit.h \
-  $(SOPHYAINCP)ntoolsinit.h \
-  $(SOPHYAINCP)tarrinit.h \
-  $(SOPHYAINCP)sophyainit.h \
-  $(SOPHYAINCP)machdefs.h \
-  $(SOPHYAINCP)histos.h \
-  $(SOPHYAINCP)objfio.h \
-  $(SOPHYAINCP)anydataobj.h \
-  $(SOPHYAINCP)ppersist.h \
-  $(SOPHYAINCP)pexceptions.h \
-  $(SOPHYAINCP)gnumd5.h \
-  $(SOPHYAINCP)ppfbinstream.h \
-  $(SOPHYAINCP)rawstream.h \
-  $(SOPHYAINCP)ppfnametag.h \
-  $(SOPHYAINCP)peida.h \
-  $(SOPHYAINCP)utils.h \
-  $(SOPHYAINCP)perrors.h \
-  $(SOPHYAINCP)fmath.h \
-  $(SOPHYAINCP)tvector.h \
-  $(SOPHYAINCP)tmatrix.h \
-  $(SOPHYAINCP)tarray.h \
-  $(SOPHYAINCP)basarr.h \
-  $(SOPHYAINCP)mutyv.h \
-  $(SOPHYAINCP)dvlist.h \
-  $(SOPHYAINCP)ndatablock.h \
-  $(SOPHYAINCP)utilarr.h \
-  $(SOPHYAINCP)histos2.h \
-  $(SOPHYAINCP)ntuple.h \
-  $(SOPHYAINCP)ntupintf.h \
-  $(SOPHYAINCP)nbrandom.h \
-  $(SOPHYAINCP)srandgen.h
-	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tobjio2.cc
- 
-$(SOPHYAOBJP)tobjio.o: tobjio.cc \
-  $(SOPHYAINCP)sopnamsp.h \
-  $(SOPHYAINCP)histinit.h \
+$(SOPHYAOBJP)tobjio.o: tobjio.cc $(SOPHYAINCP)sopnamsp.h \
+  /usr/include/math.h $(SOPHYAINCP)histinit.h \
   $(SOPHYAINCP)ntoolsinit.h \
   $(SOPHYAINCP)tarrinit.h \
@@ -874,6 +827,39 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tobjio.cc
  
-$(SOPHYAOBJP)tpipe.o: tpipe.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)tobjio2.o: tobjio2.cc $(SOPHYAINCP)sopnamsp.h \
+  $(SOPHYAINCP)histinit.h \
+  $(SOPHYAINCP)ntoolsinit.h \
+  $(SOPHYAINCP)tarrinit.h \
+  $(SOPHYAINCP)sophyainit.h \
+  $(SOPHYAINCP)machdefs.h \
+  $(SOPHYAINCP)histos.h \
+  $(SOPHYAINCP)objfio.h \
+  $(SOPHYAINCP)anydataobj.h \
+  $(SOPHYAINCP)ppersist.h \
+  $(SOPHYAINCP)pexceptions.h \
+  $(SOPHYAINCP)gnumd5.h \
+  $(SOPHYAINCP)ppfbinstream.h \
+  $(SOPHYAINCP)rawstream.h \
+  $(SOPHYAINCP)ppfnametag.h \
+  $(SOPHYAINCP)peida.h \
+  $(SOPHYAINCP)utils.h \
+  $(SOPHYAINCP)perrors.h \
+  $(SOPHYAINCP)fmath.h \
+  $(SOPHYAINCP)tvector.h \
+  $(SOPHYAINCP)tmatrix.h \
+  $(SOPHYAINCP)tarray.h \
+  $(SOPHYAINCP)basarr.h \
+  $(SOPHYAINCP)mutyv.h \
+  $(SOPHYAINCP)dvlist.h \
+  $(SOPHYAINCP)ndatablock.h \
+  $(SOPHYAINCP)utilarr.h \
+  $(SOPHYAINCP)histos2.h \
+  $(SOPHYAINCP)ntuple.h \
+  $(SOPHYAINCP)ntupintf.h \
+  $(SOPHYAINCP)nbrandom.h \
+  $(SOPHYAINCP)srandgen.h
+	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tobjio2.cc
+ 
+$(SOPHYAOBJP)tpipe.o: tpipe.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)zthread.h \
   $(SOPHYAINCP)machdefs.h \
@@ -882,5 +868,5 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tpipe.cc
  
-$(SOPHYAOBJP)tsimplex.o: tsimplex.cc \
+$(SOPHYAOBJP)tsimplex.o: tsimplex.cc /usr/include/math.h \
   $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)simplex.h \
@@ -918,5 +904,5 @@
  
 $(SOPHYAOBJP)tsphereecp.o: tsphereecp.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+  $(SOPHYAINCP)sopnamsp.h /usr/include/math.h \
   $(SOPHYAINCP)sambainit.h \
   $(SOPHYAINCP)skymapinit.h \
@@ -976,6 +962,48 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tsphereecp.cc
  
-$(SOPHYAOBJP)tspm2.o: tspm2.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)tspm.o: tspm.cc $(SOPHYAINCP)sopnamsp.h \
+  $(SOPHYAINCP)skymapinit.h \
+  $(SOPHYAINCP)sophyainit.h \
+  $(SOPHYAINCP)machdefs.h \
+  $(SOPHYAINCP)skymap.h \
+  $(SOPHYAINCP)spherethetaphi.h \
+  $(SOPHYAINCP)sphericalmap.h \
+  $(SOPHYAINCP)smathconst.h \
+  $(SOPHYAINCP)pixelmap.h \
+  $(SOPHYAINCP)ppersist.h \
+  $(SOPHYAINCP)pexceptions.h \
+  $(SOPHYAINCP)gnumd5.h \
+  $(SOPHYAINCP)ppfbinstream.h \
+  $(SOPHYAINCP)rawstream.h \
+  $(SOPHYAINCP)ppfnametag.h \
+  $(SOPHYAINCP)dvlist.h \
+  $(SOPHYAINCP)objfio.h \
+  $(SOPHYAINCP)anydataobj.h \
+  $(SOPHYAINCP)mutyv.h \
+  $(SOPHYAINCP)spherepos.h \
+  $(SOPHYAINCP)unitvector.h \
+  $(SOPHYAINCP)vector3d.h \
+  $(SOPHYAINCP)longlat.h \
+  $(SOPHYAINCP)utilgeom.h \
+  $(SOPHYAINCP)tvector.h \
+  $(SOPHYAINCP)tmatrix.h \
+  $(SOPHYAINCP)tarray.h \
+  $(SOPHYAINCP)basarr.h \
+  $(SOPHYAINCP)ndatablock.h \
+  $(SOPHYAINCP)utilarr.h \
+  $(SOPHYAINCP)spherehealpix.h \
+  $(SOPHYAINCP)HEALPixUtils.h \
+  $(SOPHYAINCP)localmap.h \
+  $(SOPHYAINCP)sphereecp.h \
+  $(SOPHYAINCP)fiospherethetaphi.h \
+  $(SOPHYAINCP)fiospherehealpix.h \
+  $(SOPHYAINCP)fiolocalmap.h \
+  $(SOPHYAINCP)fiosphereecp.h \
+  $(SOPHYAINCP)tod.h \
+  $(SOPHYAINCP)misstime.h \
+  $(SOPHYAINCP)timing.h
+	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tspm.cc
+ 
+$(SOPHYAOBJP)tspm2.o: tspm2.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)sambainit.h \
   $(SOPHYAINCP)skymapinit.h \
@@ -1030,48 +1058,4 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tspm2.cc
  
-$(SOPHYAOBJP)tspm.o: tspm.cc \
-  $(SOPHYAINCP)sopnamsp.h \
-  $(SOPHYAINCP)skymapinit.h \
-  $(SOPHYAINCP)sophyainit.h \
-  $(SOPHYAINCP)machdefs.h \
-  $(SOPHYAINCP)skymap.h \
-  $(SOPHYAINCP)spherethetaphi.h \
-  $(SOPHYAINCP)sphericalmap.h \
-  $(SOPHYAINCP)smathconst.h \
-  $(SOPHYAINCP)pixelmap.h \
-  $(SOPHYAINCP)ppersist.h \
-  $(SOPHYAINCP)pexceptions.h \
-  $(SOPHYAINCP)gnumd5.h \
-  $(SOPHYAINCP)ppfbinstream.h \
-  $(SOPHYAINCP)rawstream.h \
-  $(SOPHYAINCP)ppfnametag.h \
-  $(SOPHYAINCP)dvlist.h \
-  $(SOPHYAINCP)objfio.h \
-  $(SOPHYAINCP)anydataobj.h \
-  $(SOPHYAINCP)mutyv.h \
-  $(SOPHYAINCP)spherepos.h \
-  $(SOPHYAINCP)unitvector.h \
-  $(SOPHYAINCP)vector3d.h \
-  $(SOPHYAINCP)longlat.h \
-  $(SOPHYAINCP)utilgeom.h \
-  $(SOPHYAINCP)tvector.h \
-  $(SOPHYAINCP)tmatrix.h \
-  $(SOPHYAINCP)tarray.h \
-  $(SOPHYAINCP)basarr.h \
-  $(SOPHYAINCP)ndatablock.h \
-  $(SOPHYAINCP)utilarr.h \
-  $(SOPHYAINCP)spherehealpix.h \
-  $(SOPHYAINCP)HEALPixUtils.h \
-  $(SOPHYAINCP)localmap.h \
-  $(SOPHYAINCP)sphereecp.h \
-  $(SOPHYAINCP)fiospherethetaphi.h \
-  $(SOPHYAINCP)fiospherehealpix.h \
-  $(SOPHYAINCP)fiolocalmap.h \
-  $(SOPHYAINCP)fiosphereecp.h \
-  $(SOPHYAINCP)tod.h \
-  $(SOPHYAINCP)misstime.h \
-  $(SOPHYAINCP)timing.h
-	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tspm.cc
- 
 $(SOPHYAOBJP)tstboloread.o: tstboloread.cc \
   $(SOPHYAINCP)sopnamsp.h \
@@ -1168,5 +1152,5 @@
 $(SOPHYAOBJP)tstppfwrapstl.o: tstppfwrapstl.cc \
   $(SOPHYAINCP)sopnamsp.h \
-  $(SOPHYAINCP)machdefs.h \
+  $(SOPHYAINCP)machdefs.h /usr/include/math.h \
   $(SOPHYAINCP)timing.h \
   $(SOPHYAINCP)histinit.h \
@@ -1186,5 +1170,5 @@
 $(SOPHYAOBJP)tstsegdb.o: tstsegdb.cc \
   $(SOPHYAINCP)sopnamsp.h \
-  $(SOPHYAINCP)machdefs.h \
+  $(SOPHYAINCP)machdefs.h /usr/include/math.h \
   $(SOPHYAINCP)timing.h \
   $(SOPHYAINCP)histinit.h \
@@ -1207,6 +1191,5 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tstsegdb.cc
  
-$(SOPHYAOBJP)tsttmat.o: tsttmat.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)tsttmat.o: tsttmat.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)machdefs.h \
   $(SOPHYAINCP)ntoolsinit.h \
@@ -1267,6 +1250,5 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tsttminv.cc
  
-$(SOPHYAOBJP)tsttvec.o: tsttvec.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)tsttvec.o: tsttvec.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)machdefs.h \
   $(SOPHYAINCP)ntoolsinit.h \
@@ -1296,7 +1278,44 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tsttvec.cc
  
+$(SOPHYAOBJP)tswfits.o: tswfits.cc $(SOPHYAINCP)sopnamsp.h \
+  $(SOPHYAINCP)histinit.h \
+  $(SOPHYAINCP)ntoolsinit.h \
+  $(SOPHYAINCP)tarrinit.h \
+  $(SOPHYAINCP)sophyainit.h \
+  $(SOPHYAINCP)machdefs.h \
+  $(SOPHYAINCP)dvlist.h \
+  $(SOPHYAINCP)objfio.h \
+  $(SOPHYAINCP)anydataobj.h \
+  $(SOPHYAINCP)ppersist.h \
+  $(SOPHYAINCP)pexceptions.h \
+  $(SOPHYAINCP)gnumd5.h \
+  $(SOPHYAINCP)ppfbinstream.h \
+  $(SOPHYAINCP)rawstream.h \
+  $(SOPHYAINCP)ppfnametag.h \
+  $(SOPHYAINCP)mutyv.h \
+  $(SOPHYAINCP)datatable.h \
+  $(SOPHYAINCP)basedtable.h \
+  $(SOPHYAINCP)ntupintf.h \
+  $(SOPHYAINCP)segdatablock.h \
+  $(SOPHYAINCP)swppfdtable.h \
+  $(SOPHYAINCP)swsegdb.h \
+  $(SOPHYAINCP)ppfswapper.h \
+  $(SOPHYAINCP)ppftpointerio.h \
+  $(SOPHYAINCP)fabtwriter.h \
+  $(SOPHYAINCP)tvector.h \
+  $(SOPHYAINCP)tmatrix.h \
+  $(SOPHYAINCP)tarray.h \
+  $(SOPHYAINCP)basarr.h \
+  $(SOPHYAINCP)ndatablock.h \
+  $(SOPHYAINCP)utilarr.h \
+  $(SOPHYAINCP)FitsIO/fitsio.h \
+  $(SOPHYAINCP)FitsIO/longnam.h \
+  $(SOPHYAINCP)fabtcolread.h \
+  $(SOPHYAINCP)fitsswapper.h
+	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tswfits.cc
+ 
 $(SOPHYAOBJP)ttimestamp.o: ttimestamp.cc \
   $(SOPHYAINCP)sopnamsp.h \
-  $(SOPHYAINCP)machdefs.h \
+  $(SOPHYAINCP)machdefs.h /usr/include/math.h \
   $(SOPHYAINCP)timing.h \
   $(SOPHYAINCP)timestamp.h \
@@ -1308,6 +1327,5 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  ttimestamp.cc
  
-$(SOPHYAOBJP)zthr.o: zthr.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)zthr.o: zthr.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)zthread.h \
   $(SOPHYAINCP)machdefs.h \
Index: trunk/SophyaProg/Tests/programs
===================================================================
--- trunk/SophyaProg/Tests/programs	(revision 2782)
+++ trunk/SophyaProg/Tests/programs	(revision 2783)
@@ -31,4 +31,5 @@
 tstppfwrapstl tstppfwrapstl.o
 tstsegdb tstsegdb.o
+tswfits tswfits.o
 tsttmat tsttmat.o
 tsttminv tsttminv.o
Index: trunk/SophyaProg/Tests/smakefile
===================================================================
--- trunk/SophyaProg/Tests/smakefile	(revision 2782)
+++ trunk/SophyaProg/Tests/smakefile	(revision 2783)
@@ -1,5 +1,6 @@
 include $(SOPHYABASE)/include/sophyamake.inc
- 
-PROGS = $(SOPHYAEXEP)arrt $(SOPHYAEXEP)carrt $(SOPHYAEXEP)lpk $(SOPHYAEXEP)obj_fits $(SOPHYAEXEP)ovharr $(SOPHYAEXEP)pizthr $(SOPHYAEXEP)ppftswap $(SOPHYAEXEP)spar $(SOPHYAEXEP)sphg0 $(SOPHYAEXEP)sph2lm $(SOPHYAEXEP)tcmd $(SOPHYAEXEP)tcxxcmpldynl $(SOPHYAEXEP)tdcr $(SOPHYAEXEP)tdynl $(SOPHYAEXEP)tfft $(SOPHYAEXEP)thash $(SOPHYAEXEP)timg $(SOPHYAEXEP)tmxv $(SOPHYAEXEP)tnt $(SOPHYAEXEP)tobjio2 $(SOPHYAEXEP)tobjio $(SOPHYAEXEP)tpipe $(SOPHYAEXEP)tsimplex $(SOPHYAEXEP)tsphereecp $(SOPHYAEXEP)tspm2 $(SOPHYAEXEP)tspm $(SOPHYAEXEP)tstboloread $(SOPHYAEXEP)tstcolread $(SOPHYAEXEP)tstdtable $(SOPHYAEXEP)tstndblk $(SOPHYAEXEP)tstppfwrapstl $(SOPHYAEXEP)tstsegdb $(SOPHYAEXEP)tsttmat $(SOPHYAEXEP)tsttminv $(SOPHYAEXEP)tsttvec $(SOPHYAEXEP)ttimestamp $(SOPHYAEXEP)zthr
+
+ 
+PROGS = $(SOPHYAEXEP)arrt $(SOPHYAEXEP)carrt $(SOPHYAEXEP)lpk $(SOPHYAEXEP)obj_fits $(SOPHYAEXEP)ovharr $(SOPHYAEXEP)pizthr $(SOPHYAEXEP)ppftswap $(SOPHYAEXEP)spar $(SOPHYAEXEP)sphg0 $(SOPHYAEXEP)sph2lm $(SOPHYAEXEP)tcmd $(SOPHYAEXEP)tcxxcmpldynl $(SOPHYAEXEP)tdcr $(SOPHYAEXEP)tdynl $(SOPHYAEXEP)tfft $(SOPHYAEXEP)thash $(SOPHYAEXEP)timg $(SOPHYAEXEP)tmxv $(SOPHYAEXEP)tnt $(SOPHYAEXEP)tobjio2 $(SOPHYAEXEP)tobjio $(SOPHYAEXEP)tpipe $(SOPHYAEXEP)tsimplex $(SOPHYAEXEP)tsphereecp $(SOPHYAEXEP)tspm2 $(SOPHYAEXEP)tspm $(SOPHYAEXEP)tstboloread $(SOPHYAEXEP)tstcolread $(SOPHYAEXEP)tstdtable $(SOPHYAEXEP)tstndblk $(SOPHYAEXEP)tstppfwrapstl $(SOPHYAEXEP)tstsegdb $(SOPHYAEXEP)tswfits $(SOPHYAEXEP)tsttmat $(SOPHYAEXEP)tsttminv $(SOPHYAEXEP)tsttvec $(SOPHYAEXEP)ttimestamp $(SOPHYAEXEP)zthr
  
 all: $(PROGS)
@@ -7,5 +8,5 @@
 clean:
 	rm -f $(PROGS)
-	rm -f $(SOPHYAOBJP)zthr.o $(SOPHYAOBJP)ttimestamp.o $(SOPHYAOBJP)tsttvec.o $(SOPHYAOBJP)tsttminv.o $(SOPHYAOBJP)tsttmat.o $(SOPHYAOBJP)tstsegdb.o $(SOPHYAOBJP)tstppfwrapstl.o $(SOPHYAOBJP)tstndblk.o $(SOPHYAOBJP)tstdtable.o $(SOPHYAOBJP)tstcolread.o $(SOPHYAOBJP)tstboloread.o $(SOPHYAOBJP)tspm.o $(SOPHYAOBJP)tspm2.o $(SOPHYAOBJP)tsphereecp.o $(SOPHYAOBJP)tsimplex.o $(SOPHYAOBJP)tpipe.o $(SOPHYAOBJP)tobjio.o $(SOPHYAOBJP)tobjio2.o $(SOPHYAOBJP)tnt.o $(SOPHYAOBJP)tmxv.o $(SOPHYAOBJP)timg.o $(SOPHYAOBJP)thash.o $(SOPHYAOBJP)tfft.o $(SOPHYAOBJP)tdynl.o $(SOPHYAOBJP)tdcr.o $(SOPHYAOBJP)tcxxcmpldynl.o $(SOPHYAOBJP)tcmd.o $(SOPHYAOBJP)sph2lm.o $(SOPHYAOBJP)sphg0.o $(SOPHYAOBJP)spar.o $(SOPHYAOBJP)ppftswap.o $(SOPHYAOBJP)pizthr.o $(SOPHYAOBJP)ovharr.o $(SOPHYAOBJP)obj_fits.o $(SOPHYAOBJP)lpk.o $(SOPHYAOBJP)carrt.o $(SOPHYAOBJP)arrt.o
+	rm -f $(SOPHYAOBJP)zthr.o $(SOPHYAOBJP)ttimestamp.o $(SOPHYAOBJP)tsttvec.o $(SOPHYAOBJP)tsttminv.o $(SOPHYAOBJP)tsttmat.o $(SOPHYAOBJP)tswfits.o $(SOPHYAOBJP)tstsegdb.o $(SOPHYAOBJP)tstppfwrapstl.o $(SOPHYAOBJP)tstndblk.o $(SOPHYAOBJP)tstdtable.o $(SOPHYAOBJP)tstcolread.o $(SOPHYAOBJP)tstboloread.o $(SOPHYAOBJP)tspm.o $(SOPHYAOBJP)tspm2.o $(SOPHYAOBJP)tsphereecp.o $(SOPHYAOBJP)tsimplex.o $(SOPHYAOBJP)tpipe.o $(SOPHYAOBJP)tobjio.o $(SOPHYAOBJP)tobjio2.o $(SOPHYAOBJP)tnt.o $(SOPHYAOBJP)tmxv.o $(SOPHYAOBJP)timg.o $(SOPHYAOBJP)thash.o $(SOPHYAOBJP)tfft.o $(SOPHYAOBJP)tdynl.o $(SOPHYAOBJP)tdcr.o $(SOPHYAOBJP)tcxxcmpldynl.o $(SOPHYAOBJP)tcmd.o $(SOPHYAOBJP)sph2lm.o $(SOPHYAOBJP)sphg0.o $(SOPHYAOBJP)spar.o $(SOPHYAOBJP)ppftswap.o $(SOPHYAOBJP)pizthr.o $(SOPHYAOBJP)ovharr.o $(SOPHYAOBJP)obj_fits.o $(SOPHYAOBJP)lpk.o $(SOPHYAOBJP)carrt.o $(SOPHYAOBJP)arrt.o
  
 arrt: $(SOPHYAEXEP)arrt
@@ -169,4 +170,9 @@
 	$(CXXLINK) $(CXXTEMPFLG) -o $@ $(SOPHYAOBJP)tstsegdb.o $(SOPHYAALLSLBLIST)
  
+tswfits: $(SOPHYAEXEP)tswfits
+	echo $@ " done"
+$(SOPHYAEXEP)tswfits: $(SOPHYAOBJP)tswfits.o
+	$(CXXLINK) $(CXXTEMPFLG) -o $@ $(SOPHYAOBJP)tswfits.o $(SOPHYAALLSLBLIST)
+ 
 tsttmat: $(SOPHYAEXEP)tsttmat
 	echo $@ " done"
@@ -194,6 +200,5 @@
 	$(CXXLINK) $(CXXTEMPFLG) -o $@ $(SOPHYAOBJP)zthr.o $(SOPHYAALLSLBLIST)
  
-$(SOPHYAOBJP)arrt.o: arrt.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)arrt.o: arrt.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)machdefs.h \
   $(SOPHYAINCP)tarrinit.h \
@@ -222,6 +227,5 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  arrt.cc
  
-$(SOPHYAOBJP)carrt.o: carrt.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)carrt.o: carrt.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)machdefs.h \
   $(SOPHYAINCP)tarrinit.h \
@@ -250,6 +254,5 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  carrt.cc
  
-$(SOPHYAOBJP)lpk.o: lpk.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)lpk.o: lpk.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)machdefs.h \
   $(SOPHYAINCP)srandgen.h \
@@ -318,6 +321,5 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  obj_fits.cc
  
-$(SOPHYAOBJP)ovharr.o: ovharr.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)ovharr.o: ovharr.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)machdefs.h \
   $(SOPHYAINCP)tarrinit.h \
@@ -348,6 +350,5 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  ovharr.cc
  
-$(SOPHYAOBJP)pizthr.o: pizthr.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)pizthr.o: pizthr.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)machdefs.h \
   $(SOPHYAINCP)zthread.h \
@@ -440,6 +441,5 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  ppftswap.cc
  
-$(SOPHYAOBJP)spar.o: spar.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)spar.o: spar.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)machdefs.h \
   $(SOPHYAINCP)tarrinit.h \
@@ -469,6 +469,5 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  spar.cc
  
-$(SOPHYAOBJP)sph2lm.o: sph2lm.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)sph2lm.o: sph2lm.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)tarray.h \
   $(SOPHYAINCP)machdefs.h \
@@ -518,6 +517,5 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  sph2lm.cc
  
-$(SOPHYAOBJP)sphg0.o: sphg0.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)sphg0.o: sphg0.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)sambainit.h \
   $(SOPHYAINCP)skymapinit.h \
@@ -556,6 +554,5 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  sphg0.cc
  
-$(SOPHYAOBJP)tcmd.o: tcmd.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)tcmd.o: tcmd.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)machdefs.h \
   $(SOPHYAINCP)sophyainit.h \
@@ -610,7 +607,6 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tcxxcmpldynl.cc
  
-$(SOPHYAOBJP)tdcr.o: tdcr.cc \
-  $(SOPHYAINCP)sopnamsp.h \
-  $(SOPHYAINCP)histinit.h \
+$(SOPHYAOBJP)tdcr.o: tdcr.cc $(SOPHYAINCP)sopnamsp.h \
+  /usr/include/math.h $(SOPHYAINCP)histinit.h \
   $(SOPHYAINCP)ntoolsinit.h \
   $(SOPHYAINCP)tarrinit.h \
@@ -644,6 +640,5 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tdcr.cc
  
-$(SOPHYAOBJP)tdynl.o: tdynl.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)tdynl.o: tdynl.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)tarrinit.h \
   $(SOPHYAINCP)sophyainit.h \
@@ -673,6 +668,5 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tdynl.cc
  
-$(SOPHYAOBJP)tfft.o: tfft.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)tfft.o: tfft.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)machdefs.h \
   $(SOPHYAINCP)nbrandom.h \
@@ -705,6 +699,5 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tfft.cc
  
-$(SOPHYAOBJP)thash.o: thash.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)thash.o: thash.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)ppersist.h \
   $(SOPHYAINCP)machdefs.h \
@@ -716,6 +709,5 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  thash.cc
  
-$(SOPHYAOBJP)timg.o: timg.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)timg.o: timg.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)ntoolsinit.h \
   $(SOPHYAINCP)tarrinit.h \
@@ -748,6 +740,5 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  timg.cc
  
-$(SOPHYAOBJP)tmxv.o: tmxv.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)tmxv.o: tmxv.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)machdefs.h \
   $(SOPHYAINCP)srandgen.h \
@@ -774,6 +765,5 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tmxv.cc
  
-$(SOPHYAOBJP)tnt.o: tnt.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)tnt.o: tnt.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)histinit.h \
   $(SOPHYAINCP)ntoolsinit.h \
@@ -803,42 +793,6 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tnt.cc
  
-$(SOPHYAOBJP)tobjio2.o: tobjio2.cc \
-  $(SOPHYAINCP)sopnamsp.h \
-  $(SOPHYAINCP)histinit.h \
-  $(SOPHYAINCP)ntoolsinit.h \
-  $(SOPHYAINCP)tarrinit.h \
-  $(SOPHYAINCP)sophyainit.h \
-  $(SOPHYAINCP)machdefs.h \
-  $(SOPHYAINCP)histos.h \
-  $(SOPHYAINCP)objfio.h \
-  $(SOPHYAINCP)anydataobj.h \
-  $(SOPHYAINCP)ppersist.h \
-  $(SOPHYAINCP)pexceptions.h \
-  $(SOPHYAINCP)gnumd5.h \
-  $(SOPHYAINCP)ppfbinstream.h \
-  $(SOPHYAINCP)rawstream.h \
-  $(SOPHYAINCP)ppfnametag.h \
-  $(SOPHYAINCP)peida.h \
-  $(SOPHYAINCP)utils.h \
-  $(SOPHYAINCP)perrors.h \
-  $(SOPHYAINCP)fmath.h \
-  $(SOPHYAINCP)tvector.h \
-  $(SOPHYAINCP)tmatrix.h \
-  $(SOPHYAINCP)tarray.h \
-  $(SOPHYAINCP)basarr.h \
-  $(SOPHYAINCP)mutyv.h \
-  $(SOPHYAINCP)dvlist.h \
-  $(SOPHYAINCP)ndatablock.h \
-  $(SOPHYAINCP)utilarr.h \
-  $(SOPHYAINCP)histos2.h \
-  $(SOPHYAINCP)ntuple.h \
-  $(SOPHYAINCP)ntupintf.h \
-  $(SOPHYAINCP)nbrandom.h \
-  $(SOPHYAINCP)srandgen.h
-	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tobjio2.cc
- 
-$(SOPHYAOBJP)tobjio.o: tobjio.cc \
-  $(SOPHYAINCP)sopnamsp.h \
-  $(SOPHYAINCP)histinit.h \
+$(SOPHYAOBJP)tobjio.o: tobjio.cc $(SOPHYAINCP)sopnamsp.h \
+  /usr/include/math.h $(SOPHYAINCP)histinit.h \
   $(SOPHYAINCP)ntoolsinit.h \
   $(SOPHYAINCP)tarrinit.h \
@@ -874,6 +828,39 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tobjio.cc
  
-$(SOPHYAOBJP)tpipe.o: tpipe.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)tobjio2.o: tobjio2.cc $(SOPHYAINCP)sopnamsp.h \
+  $(SOPHYAINCP)histinit.h \
+  $(SOPHYAINCP)ntoolsinit.h \
+  $(SOPHYAINCP)tarrinit.h \
+  $(SOPHYAINCP)sophyainit.h \
+  $(SOPHYAINCP)machdefs.h \
+  $(SOPHYAINCP)histos.h \
+  $(SOPHYAINCP)objfio.h \
+  $(SOPHYAINCP)anydataobj.h \
+  $(SOPHYAINCP)ppersist.h \
+  $(SOPHYAINCP)pexceptions.h \
+  $(SOPHYAINCP)gnumd5.h \
+  $(SOPHYAINCP)ppfbinstream.h \
+  $(SOPHYAINCP)rawstream.h \
+  $(SOPHYAINCP)ppfnametag.h \
+  $(SOPHYAINCP)peida.h \
+  $(SOPHYAINCP)utils.h \
+  $(SOPHYAINCP)perrors.h \
+  $(SOPHYAINCP)fmath.h \
+  $(SOPHYAINCP)tvector.h \
+  $(SOPHYAINCP)tmatrix.h \
+  $(SOPHYAINCP)tarray.h \
+  $(SOPHYAINCP)basarr.h \
+  $(SOPHYAINCP)mutyv.h \
+  $(SOPHYAINCP)dvlist.h \
+  $(SOPHYAINCP)ndatablock.h \
+  $(SOPHYAINCP)utilarr.h \
+  $(SOPHYAINCP)histos2.h \
+  $(SOPHYAINCP)ntuple.h \
+  $(SOPHYAINCP)ntupintf.h \
+  $(SOPHYAINCP)nbrandom.h \
+  $(SOPHYAINCP)srandgen.h
+	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tobjio2.cc
+ 
+$(SOPHYAOBJP)tpipe.o: tpipe.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)zthread.h \
   $(SOPHYAINCP)machdefs.h \
@@ -882,5 +869,5 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tpipe.cc
  
-$(SOPHYAOBJP)tsimplex.o: tsimplex.cc \
+$(SOPHYAOBJP)tsimplex.o: tsimplex.cc /usr/include/math.h \
   $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)simplex.h \
@@ -918,5 +905,5 @@
  
 $(SOPHYAOBJP)tsphereecp.o: tsphereecp.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+  $(SOPHYAINCP)sopnamsp.h /usr/include/math.h \
   $(SOPHYAINCP)sambainit.h \
   $(SOPHYAINCP)skymapinit.h \
@@ -976,6 +963,48 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tsphereecp.cc
  
-$(SOPHYAOBJP)tspm2.o: tspm2.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)tspm.o: tspm.cc $(SOPHYAINCP)sopnamsp.h \
+  $(SOPHYAINCP)skymapinit.h \
+  $(SOPHYAINCP)sophyainit.h \
+  $(SOPHYAINCP)machdefs.h \
+  $(SOPHYAINCP)skymap.h \
+  $(SOPHYAINCP)spherethetaphi.h \
+  $(SOPHYAINCP)sphericalmap.h \
+  $(SOPHYAINCP)smathconst.h \
+  $(SOPHYAINCP)pixelmap.h \
+  $(SOPHYAINCP)ppersist.h \
+  $(SOPHYAINCP)pexceptions.h \
+  $(SOPHYAINCP)gnumd5.h \
+  $(SOPHYAINCP)ppfbinstream.h \
+  $(SOPHYAINCP)rawstream.h \
+  $(SOPHYAINCP)ppfnametag.h \
+  $(SOPHYAINCP)dvlist.h \
+  $(SOPHYAINCP)objfio.h \
+  $(SOPHYAINCP)anydataobj.h \
+  $(SOPHYAINCP)mutyv.h \
+  $(SOPHYAINCP)spherepos.h \
+  $(SOPHYAINCP)unitvector.h \
+  $(SOPHYAINCP)vector3d.h \
+  $(SOPHYAINCP)longlat.h \
+  $(SOPHYAINCP)utilgeom.h \
+  $(SOPHYAINCP)tvector.h \
+  $(SOPHYAINCP)tmatrix.h \
+  $(SOPHYAINCP)tarray.h \
+  $(SOPHYAINCP)basarr.h \
+  $(SOPHYAINCP)ndatablock.h \
+  $(SOPHYAINCP)utilarr.h \
+  $(SOPHYAINCP)spherehealpix.h \
+  $(SOPHYAINCP)HEALPixUtils.h \
+  $(SOPHYAINCP)localmap.h \
+  $(SOPHYAINCP)sphereecp.h \
+  $(SOPHYAINCP)fiospherethetaphi.h \
+  $(SOPHYAINCP)fiospherehealpix.h \
+  $(SOPHYAINCP)fiolocalmap.h \
+  $(SOPHYAINCP)fiosphereecp.h \
+  $(SOPHYAINCP)tod.h \
+  $(SOPHYAINCP)misstime.h \
+  $(SOPHYAINCP)timing.h
+	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tspm.cc
+ 
+$(SOPHYAOBJP)tspm2.o: tspm2.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)sambainit.h \
   $(SOPHYAINCP)skymapinit.h \
@@ -1030,48 +1059,4 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tspm2.cc
  
-$(SOPHYAOBJP)tspm.o: tspm.cc \
-  $(SOPHYAINCP)sopnamsp.h \
-  $(SOPHYAINCP)skymapinit.h \
-  $(SOPHYAINCP)sophyainit.h \
-  $(SOPHYAINCP)machdefs.h \
-  $(SOPHYAINCP)skymap.h \
-  $(SOPHYAINCP)spherethetaphi.h \
-  $(SOPHYAINCP)sphericalmap.h \
-  $(SOPHYAINCP)smathconst.h \
-  $(SOPHYAINCP)pixelmap.h \
-  $(SOPHYAINCP)ppersist.h \
-  $(SOPHYAINCP)pexceptions.h \
-  $(SOPHYAINCP)gnumd5.h \
-  $(SOPHYAINCP)ppfbinstream.h \
-  $(SOPHYAINCP)rawstream.h \
-  $(SOPHYAINCP)ppfnametag.h \
-  $(SOPHYAINCP)dvlist.h \
-  $(SOPHYAINCP)objfio.h \
-  $(SOPHYAINCP)anydataobj.h \
-  $(SOPHYAINCP)mutyv.h \
-  $(SOPHYAINCP)spherepos.h \
-  $(SOPHYAINCP)unitvector.h \
-  $(SOPHYAINCP)vector3d.h \
-  $(SOPHYAINCP)longlat.h \
-  $(SOPHYAINCP)utilgeom.h \
-  $(SOPHYAINCP)tvector.h \
-  $(SOPHYAINCP)tmatrix.h \
-  $(SOPHYAINCP)tarray.h \
-  $(SOPHYAINCP)basarr.h \
-  $(SOPHYAINCP)ndatablock.h \
-  $(SOPHYAINCP)utilarr.h \
-  $(SOPHYAINCP)spherehealpix.h \
-  $(SOPHYAINCP)HEALPixUtils.h \
-  $(SOPHYAINCP)localmap.h \
-  $(SOPHYAINCP)sphereecp.h \
-  $(SOPHYAINCP)fiospherethetaphi.h \
-  $(SOPHYAINCP)fiospherehealpix.h \
-  $(SOPHYAINCP)fiolocalmap.h \
-  $(SOPHYAINCP)fiosphereecp.h \
-  $(SOPHYAINCP)tod.h \
-  $(SOPHYAINCP)misstime.h \
-  $(SOPHYAINCP)timing.h
-	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tspm.cc
- 
 $(SOPHYAOBJP)tstboloread.o: tstboloread.cc \
   $(SOPHYAINCP)sopnamsp.h \
@@ -1168,5 +1153,5 @@
 $(SOPHYAOBJP)tstppfwrapstl.o: tstppfwrapstl.cc \
   $(SOPHYAINCP)sopnamsp.h \
-  $(SOPHYAINCP)machdefs.h \
+  $(SOPHYAINCP)machdefs.h /usr/include/math.h \
   $(SOPHYAINCP)timing.h \
   $(SOPHYAINCP)histinit.h \
@@ -1186,5 +1171,5 @@
 $(SOPHYAOBJP)tstsegdb.o: tstsegdb.cc \
   $(SOPHYAINCP)sopnamsp.h \
-  $(SOPHYAINCP)machdefs.h \
+  $(SOPHYAINCP)machdefs.h /usr/include/math.h \
   $(SOPHYAINCP)timing.h \
   $(SOPHYAINCP)histinit.h \
@@ -1207,6 +1192,5 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tstsegdb.cc
  
-$(SOPHYAOBJP)tsttmat.o: tsttmat.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)tsttmat.o: tsttmat.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)machdefs.h \
   $(SOPHYAINCP)ntoolsinit.h \
@@ -1267,6 +1251,5 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tsttminv.cc
  
-$(SOPHYAOBJP)tsttvec.o: tsttvec.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)tsttvec.o: tsttvec.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)machdefs.h \
   $(SOPHYAINCP)ntoolsinit.h \
@@ -1296,7 +1279,44 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tsttvec.cc
  
+$(SOPHYAOBJP)tswfits.o: tswfits.cc $(SOPHYAINCP)sopnamsp.h \
+  $(SOPHYAINCP)histinit.h \
+  $(SOPHYAINCP)ntoolsinit.h \
+  $(SOPHYAINCP)tarrinit.h \
+  $(SOPHYAINCP)sophyainit.h \
+  $(SOPHYAINCP)machdefs.h \
+  $(SOPHYAINCP)dvlist.h \
+  $(SOPHYAINCP)objfio.h \
+  $(SOPHYAINCP)anydataobj.h \
+  $(SOPHYAINCP)ppersist.h \
+  $(SOPHYAINCP)pexceptions.h \
+  $(SOPHYAINCP)gnumd5.h \
+  $(SOPHYAINCP)ppfbinstream.h \
+  $(SOPHYAINCP)rawstream.h \
+  $(SOPHYAINCP)ppfnametag.h \
+  $(SOPHYAINCP)mutyv.h \
+  $(SOPHYAINCP)datatable.h \
+  $(SOPHYAINCP)basedtable.h \
+  $(SOPHYAINCP)ntupintf.h \
+  $(SOPHYAINCP)segdatablock.h \
+  $(SOPHYAINCP)swppfdtable.h \
+  $(SOPHYAINCP)swsegdb.h \
+  $(SOPHYAINCP)ppfswapper.h \
+  $(SOPHYAINCP)ppftpointerio.h \
+  $(SOPHYAINCP)fabtwriter.h \
+  $(SOPHYAINCP)tvector.h \
+  $(SOPHYAINCP)tmatrix.h \
+  $(SOPHYAINCP)tarray.h \
+  $(SOPHYAINCP)basarr.h \
+  $(SOPHYAINCP)ndatablock.h \
+  $(SOPHYAINCP)utilarr.h \
+  $(SOPHYAINCP)FitsIO/fitsio.h \
+  $(SOPHYAINCP)FitsIO/longnam.h \
+  $(SOPHYAINCP)fabtcolread.h \
+  $(SOPHYAINCP)fitsswapper.h
+	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tswfits.cc
+ 
 $(SOPHYAOBJP)ttimestamp.o: ttimestamp.cc \
   $(SOPHYAINCP)sopnamsp.h \
-  $(SOPHYAINCP)machdefs.h \
+  $(SOPHYAINCP)machdefs.h /usr/include/math.h \
   $(SOPHYAINCP)timing.h \
   $(SOPHYAINCP)timestamp.h \
@@ -1308,6 +1328,5 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  ttimestamp.cc
  
-$(SOPHYAOBJP)zthr.o: zthr.cc \
-  $(SOPHYAINCP)sopnamsp.h \
+$(SOPHYAOBJP)zthr.o: zthr.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)zthread.h \
   $(SOPHYAINCP)machdefs.h \
Index: trunk/SophyaProg/Tests/tswfits.cc
===================================================================
--- trunk/SophyaProg/Tests/tswfits.cc	(revision 2783)
+++ trunk/SophyaProg/Tests/tswfits.cc	(revision 2783)
@@ -0,0 +1,84 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include <iostream>
+
+#include "sopnamsp.h"
+#include "histinit.h"
+#include "dvlist.h"
+#include "datatable.h"
+#include "swppfdtable.h"
+#include "fabtwriter.h"
+#include "fabtcolread.h"
+#include "fitsswapper.h"
+
+void test_fdtable() ; 
+
+int main(int narg, char *arg[])
+{
+  SophyaInit();
+  try {
+    /*
+    if (*arg[1] == 'd')  test_dvl();
+    else if (*arg[1] == 'n')  test_ntuple();
+    //    else if (*arg[1] == 'x')  test_xntuple();
+    else if (*arg[1] == 'X')  test_Xntuple();
+    */
+    test_fdtable();
+  }
+  catch(PThrowable exc ) {
+    cerr << "tnt-main() , Catched exception: \n" << exc.Msg() << endl;
+  }
+  catch(std::exception ex) {
+    cerr << "tnt-main() , Catched exception ! " << (string)(ex.what()) << endl;
+  }
+  catch(...) {
+    cerr << "tnt-main() , Catched ... ! " << endl;
+  }
+}
+
+
+void test_fdtable() 
+{
+  cout << "======= test_fdtable:  simple DataTable+FITS test ======= " << endl;
+    int SWSEGSZ = 4;
+    vector<int_8> tags;
+    {
+      cout << " Creation FITSDataSwapper<double> swout(so) avec swseg.fits " << endl;
+      FitsABTWriter so("!swseg.fits", BINARY_TBL, 0);
+      so.SetExtName("SwapMyExt");
+      int col = so.AddCol("SwapColD", NULL, "unit1", TDOUBLE);  
+      so.Write(col, 0, 88888);
+      so.Print();
+      cout << " ---- Appel a FITSDataSwapper<double> --- " << endl;
+      FITSDataSwapper<double> swout(so.GetFitsPtr(),0 );
+      SwSegDataBlock<double> swsd(swout, SWSEGSZ, 3);
+      double * fp = swsd.GetSegment(0);
+      fp[0] = 6.54321;   fp[1] = 65.4321;  fp[2] = 654.321;  fp[3] = 6543.21;
+      fp = swsd.GetSegment(1);
+      fp[0] = 2.56789;   fp[1] = 25.6789;  fp[2] = 256.789;  fp[3] = 2567.89;
+      fp = swsd.GetSegment(2);
+      fp[0] = 12.567;   fp[1] = 225.67;  fp[2] = 3256.7;  fp[3] = 42567.;
+      tags = swsd.GetSwapPosTagTable();
+      cout << " Les pos-tags du FITS NbTag=" << tags.size() << endl;
+      for (int kk=0; kk<tags.size(); kk++)  cout << tags[kk] << " ," ;
+      cout << endl;
+    }
+    {
+      cout << "6/ Creation PPFDataSwapper<float> avec lecture depuis swseg.ppf " << endl;
+      FitsOpenFile si("swseg.fits");
+      si.MoveToFirst(BINARY_TBL);
+      FITSDataSwapper<double> swin(si.GetFitsPtr(), 0);
+      SwSegDataBlock<double> swsd(swin, tags, SWSEGSZ);
+      cout <<"7/ Recopie ds SegDataBlock<float> depuis SwSegDataBlock<float> et print" << endl;
+      SegDataBlock<double> segd;
+      segd = swsd;
+      segd.Print(cout, 4, "  ");
+    }
+    
+  cout << "============ FIN  test_fdtable ======== ======= " << endl;  
+}
+
+
+
+
