6943
6944
6945
6946
6947
6948
6949
6950 CHARACTER*1 UPLO, DIAG
6951 INTEGER M, N, LDA, RSRC, CSRC, MYROW, MYCOL, TESTNUM
6952 INTEGER MAXERR, NERR
6953
6954
6955 INTEGER ERRIBUF(6, MAXERR)
6956 INTEGER A(LDA,N), ERRDBUF(2, MAXERR)
6957
6958
6959
6960
6961
6962
6963
6964
6965
6966
6967
6968
6969
6970
6971
6972
6973
6974
6975
6976
6977
6978
6979
6980
6981
6982
6983
6984
6985
6986
6987
6988
6989
6990
6991
6992
6993
6994
6995
6996
6997
6998
6999
7000
7001
7002
7003
7004
7005
7006
7007
7008
7009
7010
7011
7012
7013
7014
7015
7016
7017
7018
7019
7020
7021
7022
7023
7024
7025
7026
7027
7028
7029
7030
7031
7032
7033
7034
7035 INTEGER I, J, NPROCS, SRC, DEST
7036 LOGICAL USEIT
7037 INTEGER COMPVAL
7038
7039
7040 INTEGER ISEED(4)
7041
7042
7043 INTEGER IBTNPROCS
7044 INTEGER IBTRAN
7046
7047
7048
7050 src = rsrc * nprocs + csrc
7051 dest = myrow * nprocs + mycol
7052
7053
7054
7055 iseed(1) = mod( 1002 + testnum*5 + src*3, 4096 )
7056 iseed(2) = mod( 2027 + testnum*7 + src, 4096 )
7057 iseed(3) = mod( 1234 + testnum + src*3, 4096 )
7058 iseed(4) = mod( 4311 + testnum*10 + src*2, 4096 )
7059
7060
7061
7062
7063
7064 DO 100 j = 1, n
7065 DO 105 i = 1, m
7066 compval =
ibtran( iseed )
7067
7068
7069
7070
7071
7072 useit = .true.
7073 IF( uplo .EQ. 'U' ) THEN
7074 IF( m .LE. n ) THEN
7075 IF( diag .EQ. 'U' ) THEN
7076 IF( i .GE. j ) THEN
7077 useit = .false.
7078 END IF
7079 ELSE
7080 IF( i .GT. j ) THEN
7081 useit = .false.
7082 END IF
7083 END IF
7084 ELSE
7085 IF( diag .EQ. 'U' ) THEN
7086 IF( i .GE. m-n+j ) THEN
7087 useit = .false.
7088 END IF
7089 ELSE
7090 IF( i .GT. m-n+j ) THEN
7091 useit = .false.
7092 END IF
7093 END IF
7094 END IF
7095 ELSE IF( uplo .EQ. 'L' ) THEN
7096 IF( m .LE. n ) THEN
7097 IF( diag .EQ. 'U' ) THEN
7098 IF( j. ge. i+(n-m) ) THEN
7099 useit = .false.
7100 END IF
7101 ELSE
7102 IF( j .GT. i+(n-m) ) THEN
7103 useit = .false.
7104 END IF
7105 END IF
7106 ELSE
7107 IF( diag .EQ. 'U' ) THEN
7108 IF( j .GE. i ) THEN
7109 useit = .false.
7110 END IF
7111 ELSE
7112 IF( j .GT. i ) THEN
7113 useit = .false.
7114 END IF
7115 END IF
7116 END IF
7117 END IF
7118
7119
7120
7121
7122
7123 IF( useit ) THEN
7124 IF( a(i,j) .NE. compval ) THEN
7125 nerr = nerr + 1
7126 IF( nerr .LE. maxerr ) THEN
7127 erribuf(1, nerr) = testnum
7128 erribuf(2, nerr) = src
7129 erribuf(3, nerr) = dest
7130 erribuf(4, nerr) = i
7131 erribuf(5, nerr) = j
7132 erribuf(6, nerr) = 5
7133 errdbuf(1, nerr) = a(i, j)
7134 errdbuf(2, nerr) = compval
7135 END IF
7136 END IF
7137 END IF
7138 105 CONTINUE
7139 100 CONTINUE
7140 RETURN
7141
7142
7143
integer function ibtran(iseed)
integer function ibtnprocs()