C MINV23    SOURCE    CHAT      05/01/13    01:45:24     5004
      SUBROUTINE MINV23(A,B,NMAX,N,KERRE)
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)
      DIMENSION A(NMAX,*),B(*)
      KERRE=0
      GO TO (10,20,30),N
10    DUM1=A(1,1)
      IF(DUM1.EQ.0.) GO TO 999
      B(1)=B(1)/DUM1
      RETURN
20    DUM1=A(1,1)*A(2,2)-A(1,2)*A(1,2)
      IF(DUM1.EQ.0.) GO TO 999
      DUM2=(B(1)*A(2,2)-B(2)*A(1,2))/DUM1
      B(2)=(B(2)*A(1,1)-B(1)*A(1,2))/DUM1
      B(1)=DUM2
      RETURN
30    DUM1=A(1,1)
      IF(DUM1.EQ.0.) GO TO 999
      DO 1 I=2,3
      DUM2=A(1,I)/DUM1
      B(I)=B(I)-B(1)*DUM2
      DO 2 J=I,3
  2   A(I,J)=A(I,J)-A(1,J)*DUM2
   1  A(1,I)=DUM2
      B(1)=B(1)/DUM1
      A(2,1)=A(1,2)
      DUM1=A(2,2)
      IF(DUM1.EQ.0.) GO TO 999
      DO 3 I=1,3,2
      DUM2=A(2,I)/DUM1
      B(I)=B(I)-B(2)*DUM2
   3  A(I,3)=A(I,3)-DUM2*A(2,3)
      B(2)=B(2)/DUM1
      A(2,3)=A(2,3)/DUM1
      DUM1=A(3,3)
      IF(DUM1.EQ.0.) GO TO 999
      DUM2=B(3)/DUM1
      DO 4 I=1,2
   4  B(I)=B(I)-DUM2*A(I,3)
      B(3)=DUM2
      RETURN
999   KERRE=6
      RETURN
      END

