225 DOUBLE PRECISION FUNCTION dlatm3( M, N, I, J, ISUB, JSUB, KL, KU,
226 $ idist, iseed, d, igrade, dl, dr, ipvtng, iwork,
236 INTEGER I, IDIST, IGRADE, IPVTNG, ISUB, J, JSUB, KL,
238 DOUBLE PRECISION SPARSE
243 INTEGER ISEED( 4 ), IWORK( * )
244 DOUBLE PRECISION D( * ), DL( * ), DR( * )
251 DOUBLE PRECISION ZERO
252 parameter ( zero = 0.0d0 )
257 DOUBLE PRECISION TEMP
262 DOUBLE PRECISION DLARAN, DLARND
263 EXTERNAL dlaran, dlarnd
273 IF( i.LT.1 .OR. i.GT.m .OR. j.LT.1 .OR. j.GT.n )
THEN
282 IF( ipvtng.EQ.0 )
THEN
285 ELSE IF( ipvtng.EQ.1 )
THEN
288 ELSE IF( ipvtng.EQ.2 )
THEN
291 ELSE IF( ipvtng.EQ.3 )
THEN
298 IF( jsub.GT.isub+ku .OR. jsub.LT.isub-kl )
THEN
305 IF( sparse.GT.zero )
THEN
306 IF( dlaran( iseed ).LT.sparse )
THEN
317 temp = dlarnd( idist, iseed )
319 IF( igrade.EQ.1 )
THEN
321 ELSE IF( igrade.EQ.2 )
THEN
323 ELSE IF( igrade.EQ.3 )
THEN
324 temp = temp*dl( i )*dr( j )
325 ELSE IF( igrade.EQ.4 .AND. i.NE.j )
THEN
326 temp = temp*dl( i ) / dl( j )
327 ELSE IF( igrade.EQ.5 )
THEN
328 temp = temp*dl( i )*dl( j )
double precision function dlatm3(M, N, I, J, ISUB, JSUB, KL, KU, IDIST, ISEED, D, IGRADE, DL, DR, IPVTNG, IWORK, SPARSE)
DLATM3