9071
9072
9073
9074
9075
9076
9077
9078 CHARACTER*1 UPLO, DIAG
9079 INTEGER M, N, LDA, RSRC, CSRC, MYROW, MYCOL, TESTNUM
9080 INTEGER MAXERR, NERR
9081
9082
9083 INTEGER ERRIBUF(6, MAXERR)
9084 DOUBLE PRECISION A(LDA,N), ERRDBUF(2, MAXERR)
9085
9086
9087
9088
9089
9090
9091
9092
9093
9094
9095
9096
9097
9098
9099
9100
9101
9102
9103
9104
9105
9106
9107
9108
9109
9110
9111
9112
9113
9114
9115
9116
9117
9118
9119
9120
9121
9122
9123
9124
9125
9126
9127
9128
9129
9130
9131
9132
9133
9134
9135
9136
9137
9138
9139
9140
9141
9142
9143
9144
9145
9146
9147
9148
9149
9150
9151
9152
9153
9154
9155
9156
9157
9158
9159
9160
9161
9162
9163 INTEGER I, J, NPROCS, SRC, DEST
9164 LOGICAL USEIT
9165 DOUBLE PRECISION COMPVAL
9166
9167
9168 INTEGER ISEED(4)
9169
9170
9171 INTEGER IBTNPROCS
9172 DOUBLE PRECISION DBTRAN
9174
9175
9176
9178 src = rsrc * nprocs + csrc
9179 dest = myrow * nprocs + mycol
9180
9181
9182
9183 iseed(1) = mod( 1002 + testnum*5 + src*3, 4096 )
9184 iseed(2) = mod( 2027 + testnum*7 + src, 4096 )
9185 iseed(3) = mod( 1234 + testnum + src*3, 4096 )
9186 iseed(4) = mod( 4311 + testnum*10 + src*2, 4096 )
9187
9188
9189
9190
9191
9192 DO 100 j = 1, n
9193 DO 105 i = 1, m
9194 compval =
dbtran( iseed )
9195
9196
9197
9198
9199
9200 useit = .true.
9201 IF( uplo .EQ. 'U' ) THEN
9202 IF( m .LE. n ) THEN
9203 IF( diag .EQ. 'U' ) THEN
9204 IF( i .GE. j ) THEN
9205 useit = .false.
9206 END IF
9207 ELSE
9208 IF( i .GT. j ) THEN
9209 useit = .false.
9210 END IF
9211 END IF
9212 ELSE
9213 IF( diag .EQ. 'U' ) THEN
9214 IF( i .GE. m-n+j ) THEN
9215 useit = .false.
9216 END IF
9217 ELSE
9218 IF( i .GT. m-n+j ) THEN
9219 useit = .false.
9220 END IF
9221 END IF
9222 END IF
9223 ELSE IF( uplo .EQ. 'L' ) THEN
9224 IF( m .LE. n ) THEN
9225 IF( diag .EQ. 'U' ) THEN
9226 IF( j. ge. i+(n-m) ) THEN
9227 useit = .false.
9228 END IF
9229 ELSE
9230 IF( j .GT. i+(n-m) ) THEN
9231 useit = .false.
9232 END IF
9233 END IF
9234 ELSE
9235 IF( diag .EQ. 'U' ) THEN
9236 IF( j .GE. i ) THEN
9237 useit = .false.
9238 END IF
9239 ELSE
9240 IF( j .GT. i ) THEN
9241 useit = .false.
9242 END IF
9243 END IF
9244 END IF
9245 END IF
9246
9247
9248
9249
9250
9251 IF( useit ) THEN
9252 IF( a(i,j) .NE. compval ) THEN
9253 nerr = nerr + 1
9254 IF( nerr .LE. maxerr ) THEN
9255 erribuf(1, nerr) = testnum
9256 erribuf(2, nerr) = src
9257 erribuf(3, nerr) = dest
9258 erribuf(4, nerr) = i
9259 erribuf(5, nerr) = j
9260 erribuf(6, nerr) = 5
9261 errdbuf(1, nerr) = a(i, j)
9262 errdbuf(2, nerr) = compval
9263 END IF
9264 END IF
9265 END IF
9266 105 CONTINUE
9267 100 CONTINUE
9268 RETURN
9269
9270
9271
double precision function dbtran(iseed)
integer function ibtnprocs()