1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
! { dg-do compile }
! { dg-options "-O2" }
! PR24823 Flow didn't handle a PARALLEL as destination of a SET properly.
SUBROUTINE ZLATMR( M, N, DIST, ISEED, SYM, D, MODE, COND, DMAX,
$ RSIGN, GRADE, DL, MODEL, CONDL, DR, MODER,
$ PACK, A, LDA, IWORK, INFO )
COMPLEX*16 A( LDA, * ), D( * ), DL( * ), DR( * )
LOGICAL BADPVT, DZERO, FULBND
COMPLEX*16 ZLATM2, ZLATM3
IF( IGRADE.EQ.4 .AND. MODEL.EQ.0 ) THEN
END IF
IF( IPVTNG.GT.0 ) THEN
END IF
IF( M.LT.0 ) THEN
ELSE IF( IPACK.EQ.-1 .OR. ( ( IPACK.EQ.1 .OR. IPACK.EQ.2 .OR.
$ IPACK.EQ.5 .OR. IPACK.EQ.6 ) .AND. ISYM.EQ.1 ) .OR.
$ ( IPACK.EQ.3 .AND. ISYM.EQ.1 .AND. ( KL.NE.0 .OR. M.NE.
$ 6 ) .AND. LDA.LT.KUU+1 ) .OR.
$ ( IPACK.EQ.7 .AND. LDA.LT.KLL+KUU+1 ) ) THEN
INFO = -26
END IF
IF( INFO.NE.0 ) THEN
RETURN
END IF
IF( KUU.EQ.N-1 .AND. KLL.EQ.M-1 )
$ FULBND = .TRUE.
IF( MODE.NE.0 .AND. MODE.NE.-6 .AND. MODE.NE.6 ) THEN
TEMP = ABS( D( 1 ) )
IF( TEMP.EQ.ZERO .AND. DMAX.NE.CZERO ) THEN
INFO = 2
END IF
END IF
IF( ISYM.EQ.0 ) THEN
END IF
IF( IGRADE.EQ.1 .OR. IGRADE.EQ.3 .OR. IGRADE.EQ.4 .OR. IGRADE.EQ.
$ 5 .OR. IGRADE.EQ.6 ) THEN
IF( INFO.NE.0 ) THEN
END IF
END IF
IF( FULBND ) THEN
IF( IPACK.EQ.0 ) THEN
IF( ISYM.EQ.0 ) THEN
CTEMP = ZLATM3( M, N, I, J, ISUB, JSUB, KL, KU,
$ IWORK, SPARSE )
DO 120 I = 1, M
CTEMP = ZLATM3( M, N, I, J, ISUB, JSUB, KL, KU,
$ IWORK, SPARSE )
120 CONTINUE
END IF
IF( I.LT.1 ) THEN
IF( ISYM.EQ.0 ) THEN
A( J-I+1, I ) = DCONJG( ZLATM2( M, N, I, J, KL,
$ DR, IPVTNG, IWORK, SPARSE ) )
ELSE
A( J-I+1, I ) = ZLATM2( M, N, I, J, KL, KU,
$ IPVTNG, IWORK, SPARSE )
END IF
END IF
IF( ISYM.NE.1 ) THEN
IF( I.GE.1 .AND. I.NE.J ) THEN
IF( ISYM.EQ.0 ) THEN
END IF
END IF
A( I-J+KUU+1, J ) = ZLATM2( M, N, I, J, KL, KU,
$ DR, IPVTNG, IWORK, SPARSE )
END IF
END IF
END IF
IF( IPACK.EQ.0 ) THEN
ONORM = ZLANGB( 'M', N, KLL, KUU, A, LDA, TEMPA )
END IF
IF( ANORM.GE.ZERO ) THEN
IF( ANORM.GT.ZERO .AND. ONORM.EQ.ZERO ) THEN
IF( IPACK.LE.2 ) THEN
END IF
END IF
END IF
END
|