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 dlatm3(m, n, i, j, isub, jsub, kl, ku, idist, iseed, d, igrade, dl, dr, ipvtng, iwork, sparse)
DLATM3