Index: trunk/BNC/bncmodel.cpp
===================================================================
--- trunk/BNC/bncmodel.cpp	(revision 2080)
+++ trunk/BNC/bncmodel.cpp	(revision 2081)
@@ -57,4 +57,6 @@
 const double   sig_clk_0 = 1000.0;
 const double   sig_amb_0 =  100.0;
+const double   sig_P3    =    1.0;
+const double   sig_L3    =   0.01;
 
 // Constructor
@@ -392,6 +394,7 @@
   // Create First-Design Matrix
   // --------------------------
-  Matrix       AA(nObs, nPar);  // first design matrix
-  ColumnVector ll(nObs);        // tems observed-computed
+  Matrix          AA(nObs, nPar);  // first design matrix
+  ColumnVector    ll(nObs);        // tems observed-computed
+  SymmetricMatrix PP(nObs); PP = 0.0;
 
   unsigned iObs = 0;
@@ -405,5 +408,6 @@
     double rhoCmp = cmpValue(satData);
 
-    ll(iObs) = satData->P3 - rhoCmp;
+    ll(iObs)      = satData->P3 - rhoCmp;
+    PP(iObs,iObs) = 1.0 / (sig_P3 * sig_P3);
     for (int iPar = 1; iPar <= _params.size(); iPar++) {
       AA(iObs, iPar) = _params[iPar-1]->partial(satData, "");
@@ -411,5 +415,6 @@
 
     ++iObs;
-    ll(iObs) = satData->L3 - rhoCmp;
+    ll(iObs)      = satData->L3 - rhoCmp;
+    PP(iObs,iObs) = 1.0 / (sig_L3 * sig_L3);
     for (int iPar = 1; iPar <= _params.size(); iPar++) {
       if (_params[iPar-1]->type == bncParam::AMB_L3 &&
@@ -424,5 +429,4 @@
   // ---------------------
   if (false) {
-    IdentityMatrix  PP(nObs);
     SymmetricMatrix HH; HH << PP + AA * _QQ * AA.t();
     SymmetricMatrix Hi = HH.i();
@@ -434,5 +438,4 @@
   }
   else {
-    IdentityMatrix PP(nObs);
     Matrix ATP = AA.t() * PP;
     SymmetricMatrix NN = _QQ.i();
