|
EpetraExt
Development
|
00001 subroutine strchk ( nrows , ncols , colstr, rowidx, nhrows, 00002 $ nhcols, nsrows, rnto , cnto , colset, 00003 $ rowset, output ) 00004 00005 c ================================================================== 00006 c ================================================================== 00007 c ==== strchk -- check that square block has nonzero diagonal ==== 00008 c ================================================================== 00009 c ================================================================== 00010 00011 c ... for debugging purposes only 00012 c created by john lewis, bcs, sept. 18, 1990 00013 00014 c -------------- 00015 c ... parameters 00016 c -------------- 00017 00018 integer nrows , ncols , nhrows, nhcols, nsrows, output 00019 00020 integer colstr (ncols+1), rowidx (*), 00021 $ rnto (nrows), cnto (ncols), colset (ncols), 00022 $ rowset (nrows) 00023 00024 c ------------------- 00025 c ... local variables 00026 c ------------------- 00027 00028 integer i, row, col, xi 00029 00030 logical match 00031 00032 c ================================================================== 00033 00034 do 300 i = 1, nsrows 00035 00036 row = rnto (nhrows + i) 00037 col = cnto (nhcols + i) 00038 00039 match = .false. 00040 00041 do 200 xi = colstr (col), colstr (col+1) - 1 00042 match = match .or. (rowidx(xi) .eq. row) 00043 200 continue 00044 00045 if (.not. match .or. (rowset(row) .ne. col) .or. 00046 $ (colset(col) .ne. row) ) then 00047 write (output, *) ' failure in matching, row, col, ', 00048 $ 'rowset(row), colset (col)', 00049 $ row, col, rowset(row), colset (col) 00050 endif 00051 00052 300 continue 00053 00054 return 00055 00056 end 00057
1.7.6.1