1 SUBROUTINE gaussj(a,n,np,b,m,mp)
3 DOUBLE PRECISION a(np,np),b(np,mp)
5 INTEGER i,icol,irow,j,k,l,ll,indxc(nmax),indxr(nmax),ipiv(nmax)
6 DOUBLE PRECISION big,dum,pivinv
16 if (abs(a(j,k))>=big)
then 21 else if (ipiv(k)>1)
then 22 write(*,*)
'WARNING: singular matrix in gaussj' 27 ipiv(icol)=ipiv(icol)+1
42 if (a(icol,icol)==0.)
write(*,*)
'WARNING: singular matrix in gaussj' 43 pivinv=1./a(icol,icol)
46 a(icol,l)=a(icol,l)*pivinv
49 b(icol,l)=b(icol,l)*pivinv
56 a(ll,l)=a(ll,l)-a(icol,l)*dum
59 b(ll,l)=b(ll,l)-b(icol,l)*dum
65 if(indxr(l)/=indxc(l))
then 68 a(k,indxr(l))=a(k,indxc(l))
subroutine gaussj(a, n, np, b, m, mp)