ADDED   mttroot/mtt/bin/trans/p/mtt_solve_lud.p
Index: mttroot/mtt/bin/trans/p/mtt_solve_lud.p
==================================================================
--- /dev/null
+++ mttroot/mtt/bin/trans/p/mtt_solve_lud.p
@@ -0,0 +1,50 @@
+PROCEDURE mtt_solve_lud.p(VAR x     : StateVector;
+			A     : StateMatrix;
+		        B     : StateVector;
+			n     : integer);
+
+{
+Linear equation solution via LU factorisation}
+
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % Version control history
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % $Id$
+% % $Log$
+% % Revision 1.1  1998/08/17 12:41:37  peterg
+% % Initial revision
+% %
+% % Revision 1.2  1998/08/14 12:09:13  peterg
+% % A passed by value - its destroyed by SVDcm
+% %
+% % Revision 1.1  1998/08/13 08:51:57  peterg
+% % Initial revision
+% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ }
+
+VAR
+   i : integer;
+   d : real;
+
+(*$I ludcmp.p *)
+(*$I lubksb.p *)
+
+BEGIN{mtt_solve}
+   (* decompose matrix A using LU decomposition *)
+   ludcmp(A,n,Index,d);
+   
+   (* backsubstitute for B *)
+   lubksb(A,n,Index,B);
+
+   (* x now lives in B *)
+   FOR i := 1 TO n DO
+      x[i] := B[i];
+   
+END{mtt_solve};
+
+
+
+
+
+