24 parameter(n=3, nnz= 3)
36 integer msglvl, output
39 integer ia(n+1) , ja(nnz), iat(n+1), jat(nnz)
48 integer nhrows, nhcols, hrzcmp
50 integer nsrows, sqcmpn
52 integer nvrows, nvcols, vrtcmp
57 integer colperm(n), rowperm(n), rcmstr(n+1), ccmstr(n+1)
86 print*,
'Input (row, column)'
88 do 201 j= ia(i),ia(i+1)-1
95 $ iat , jat, ia, ja, w ,
96 $ rowperm , colperm , nhrows,
97 $ nhcols, hrzcmp, nsrows, sqcmpn, nvrows,
98 $ nvcols, vrtcmp, rcmstr, ccmstr, msglvl, output )
101 if( nhrows .gt. 0)
then
102 print*,
"horizontal block:", nhrows, nhcols, hrzcmp
104 print*, sqcmpn,
" blocks"
105 if( nvrows .gt. 0)
then
106 print*,
"vertical block:", nvrows, nvcols, vrtcmp
108 matsng = nhrows + nvrows + hrzcmp + vrtcmp
109 if( matsng .eq. 0)
then
111 print*,
' ', rcmstr(hrzcmp+i), ccmstr(hrzcmp+i)
114 print*,
'Structurally singular matrix'
117 print*,
'Permuted (row, column)'
120 do 301 j= ia(k),ia(k+1)-1
121 print*,
' ', i,ja(colperm(j))
subroutine mattrans(m, n, ja, ia, jao, iao)
subroutine genbtf(nrows, ncols, colstr, rowidx, rowstr, colidx, w, rnto, cnto, nhrows, nhcols, hrzcmp, nsrows, sqcmpn, nvrows, nvcols, vrtcmp, rcmstr, ccmstr, msglvl, output)