* * $Id: sfact.inc,v 1.2 1999/09/08 08:05:21 mclareni Exp $ * * $Log: sfact.inc,v $ * Revision 1.2 1999/09/08 08:05:21 mclareni * A problem was reported in DSINV which failed on very small numbers, probably * due to converting to single before a test. The conversion has been removed here * and also in DSFACT. This resulted in mods to sfact.inc and sfactd.inc which * meant that some other routines had to be tidied also. * * Revision 1.1.1.1 1996/02/15 17:49:04 mclareni * Kernlib * * * * sfact.inc * IFAIL = 0 DO 144 J = 1, N IF((A(J,J)) .LE. ZERO) GOTO 150 A(J,J) = ONE / A(J,J) IF(J .EQ. N) GOTO 199 140 JP1 = J+1 DO 143 L = JP1, N A(J,L) = A(J,J)*A(L,J) S1 = -A(L,J+1) DO 141 I = 1, J S1 = DOTF(A(L,I),A(I,J+1),S1) 141 CONTINUE A(L,J+1) = -S1 143 CONTINUE 144 CONTINUE 150 IFAIL = -1 RETURN 199 CONTINUE