Index: trunk/psModules/src/objects/pmSourceIO_SMPDATA.c
===================================================================
--- trunk/psModules/src/objects/pmSourceIO_SMPDATA.c	(revision 13034)
+++ trunk/psModules/src/objects/pmSourceIO_SMPDATA.c	(revision 13064)
@@ -3,6 +3,6 @@
  *  @author EAM, IfA
  *
- *  @version $Revision: 1.7 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2007-04-26 01:20:29 $
+ *  @version $Revision: 1.8 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2007-04-27 22:14:08 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -49,5 +49,4 @@
     psF32 *PAR, *dPAR;
     bool status;
-    psEllipseShape shape;
     psEllipseAxes axes;
     psF32 xPos, yPos;
@@ -74,14 +73,6 @@
 	    lsky = (source->sky < 1.0) ? 0.0 : log10(source->sky);
 
-	    shape.sx  = PAR[PM_PAR_SXX];
-	    shape.sy  = PAR[PM_PAR_SYY];
-	    shape.sxy = PAR[PM_PAR_SXY];
-	    if ((shape.sx == 0) || (shape.sy == 0)) {
-		axes.major = 0.0;
-		axes.minor = 0.0;
-		axes.theta = 0.0;
-	    } else {
-		axes = psEllipseShapeToAxes (shape, 20.0);
-	    }
+	    axes = pmPSF_ModelToAxes (PAR, 20.0);
+
 	} else {
 	    xPos = source->peak->xf;
@@ -134,5 +125,4 @@
     bool status;
     psF32 *PAR, *dPAR;
-    psEllipseShape shape;
     psEllipseAxes axes;
     float lsky;
@@ -177,17 +167,5 @@
         axes.theta       = psMetadataLookupF32 (&status, row, "THETA");
 
-	bool skip = false;
-	skip |= (axes.major <= 0);
-	skip |= (axes.minor <= 0);
-	if (!skip) {
-	    shape = psEllipseAxesToShape (axes);
-	    PAR[PM_PAR_SXX] = shape.sx;
-	    PAR[PM_PAR_SYY] = shape.sy;
-	    PAR[PM_PAR_SXY] = shape.sxy;
-	} else {
-	    PAR[PM_PAR_SXX] = 0.0;
-	    PAR[PM_PAR_SYY] = 0.0;
-	    PAR[PM_PAR_SXY] = 0.0;
-	}
+	pmPSF_AxesToModel (PAR, axes);
 
         source->psfMag = psMetadataLookupF32 (&status, row, "MAG_RAW") - ZERO_POINT;
