223 DOUBLE PRECISION FUNCTION dlatm3( M, N, I, J, ISUB, JSUB, KL, KU,
224 $ IDIST, ISEED, D, IGRADE, DL, DR, IPVTNG, IWORK,
233 INTEGER i, idist, igrade, ipvtng, isub, j, jsub, kl,
235 DOUBLE PRECISION sparse
240 INTEGER iseed( 4 ), iwork( * )
241 DOUBLE PRECISION d( * ), dl( * ), dr( * )
248 DOUBLE PRECISION zero
249 PARAMETER ( zero = 0.0d0 )
254 DOUBLE PRECISION temp
270 IF( i.LT.1 .OR. i.GT.m .OR. j.LT.1 .OR. j.GT.n )
THEN
279 IF( ipvtng.EQ.0 )
THEN
282 ELSE IF( ipvtng.EQ.1 )
THEN
285 ELSE IF( ipvtng.EQ.2 )
THEN
288 ELSE IF( ipvtng.EQ.3 )
THEN
295 IF( jsub.GT.isub+ku .OR. jsub.LT.isub-kl )
THEN
302 IF( sparse.GT.zero )
THEN
303 IF(
dlaran( iseed ).LT.sparse )
THEN
314 temp =
dlarnd( idist, iseed )
316 IF( igrade.EQ.1 )
THEN
318 ELSE IF( igrade.EQ.2 )
THEN
320 ELSE IF( igrade.EQ.3 )
THEN
321 temp = temp*dl( i )*dr( j )
322 ELSE IF( igrade.EQ.4 .AND. i.NE.j )
THEN
323 temp = temp*dl( i ) / dl( j )
324 ELSE IF( igrade.EQ.5 )
THEN
325 temp = temp*dl( i )*dl( j )
double precision function dlaran(iseed)
DLARAN
double precision function dlarnd(idist, iseed)
DLARND
double precision function dlatm3(m, n, i, j, isub, jsub, kl, ku, idist, iseed, d, igrade, dl, dr, ipvtng, iwork, sparse)
DLATM3