206 DOUBLE PRECISION FUNCTION dlatm2( M, N, I, J, KL, KU, IDIST,
207 $ ISEED, D, IGRADE, DL, DR, IPVTNG, IWORK, SPARSE )
215 INTEGER i, idist, igrade, ipvtng, j, kl, ku, m, n
216 DOUBLE PRECISION sparse
221 INTEGER iseed( 4 ), iwork( * )
222 DOUBLE PRECISION d( * ), dl( * ), dr( * )
229 DOUBLE PRECISION zero
230 parameter( zero = 0.0d0 )
236 DOUBLE PRECISION temp
252 IF( i.LT.1 .OR. i.GT.m .OR. j.LT.1 .OR. j.GT.n )
THEN
259 IF( j.GT.i+ku .OR. j.LT.i-kl )
THEN
266 IF( sparse.GT.zero )
THEN
267 IF(
dlaran( iseed ).LT.sparse )
THEN
275 IF( ipvtng.EQ.0 )
THEN
278 ELSE IF( ipvtng.EQ.1 )
THEN
281 ELSE IF( ipvtng.EQ.2 )
THEN
284 ELSE IF( ipvtng.EQ.3 )
THEN
291 IF( isub.EQ.jsub )
THEN
294 temp =
dlarnd( idist, iseed )
296 IF( igrade.EQ.1 )
THEN
297 temp = temp*dl( isub )
298 ELSE IF( igrade.EQ.2 )
THEN
299 temp = temp*dr( jsub )
300 ELSE IF( igrade.EQ.3 )
THEN
301 temp = temp*dl( isub )*dr( jsub )
302 ELSE IF( igrade.EQ.4 .AND. isub.NE.jsub )
THEN
303 temp = temp*dl( isub ) / dl( jsub )
304 ELSE IF( igrade.EQ.5 )
THEN
305 temp = temp*dl( isub )*dl( jsub )
double precision function dlaran(iseed)
DLARAN
double precision function dlarnd(idist, iseed)
DLARND
double precision function dlatm2(m, n, i, j, kl, ku, idist, iseed, d, igrade, dl, dr, ipvtng, iwork, sparse)
DLATM2