22 IMPLICIT NONE
23 INTEGER, intent(in) :: KEEP(500), NRHS, MPG, ICNTL(60)
24 INTEGER, intent(inout):: INFO(80)
25 IF (keep(19).EQ.0.AND.keep(110).EQ.0) THEN
26 IF (keep(111).NE.0) THEN
27 info(1) = -37
28 info(2) = 56
29 IF (keep(110).EQ.0) info(2) = 24
30 IF(mpg.GT.0) THEN
31 WRITE( mpg,'(A)')
32 &'** ERROR : Null space computation requirement'
33 WRITE( mpg,'(A)')
34 &'** not consistent with factorization options'
35 ENDIF
36 GOTO 333
37 ENDIF
38 ENDIF
39 IF (icntl(9).NE.1) THEN
40 IF (keep(111).NE.0) THEN
41 info(1) = -37
42 info(2) = 9
43 IF (mpg.GT.0) THEN
44 WRITE(mpg,'(A)')
45 &'** ERROR ICNTL(25) incompatible with '
46 WRITE( mpg,'(A)')
47 &.ne.'** option transposed system (ICNTL(9)1) '
48 ENDIF
49 ENDIF
50 GOTO 333
51 ENDIF
52 IF (keep(19).EQ.2) THEN
53 IF ((keep(111).NE.0).AND.(keep(50).EQ.0)) THEN
54 info(1) = -37
55 info(2) = 0
56 IF (mpg.GT.0) THEN
57 WRITE(mpg,'(A)')
58 &'** ERROR ICNTL(25) incompatible with '
59 WRITE( mpg,'(A)')
60 &'** option RRQR (ICNLT(56)=2) and unsym. matrices '
61 ENDIF
62 ENDIF
63 GOTO 333
64 ENDIF
65 IF (keep(111).eq.-1.AND.nrhs.NE.keep(112)+keep(17))THEN
66 info(1)=-32
67 info(2)=nrhs
68 GOTO 333
69 ENDIF
70 IF (keep(111).gt.0 .AND. nrhs .NE. 1) THEN
71 info(1)=-32
72 info(2)=nrhs
73 GOTO 333
74 ENDIF
75 IF (keep(248) .NE.0.AND.keep(111).NE.0) THEN
76 IF (mpg.GT.0) THEN
77 WRITE(mpg,'(A)')
78 & ' ERROR: ICNTL(20) and ICNTL(30) functionalities ',
79 & ' incompatible with null space'
80 ENDIF
81 info(1) = -37
82 IF (keep(237).NE.0) THEN
83 info(2) = 30
84 IF (mpg.GT.0) THEN
85 WRITE(mpg,'(A)')
86 & ' ERROR: ICNTL(30) functionality ',
87 & ' incompatible with null space'
88 ENDIF
89 ELSE
90 IF (mpg.GT.0) THEN
91 WRITE(mpg,'(A)')
92 & ' ERROR: ICNTL(20) functionality ',
93 & ' incompatible with null space'
94 ENDIF
95 info(2) = 20
96 ENDIF
97 GOTO 333
98 ENDIF
99 IF (( keep(111) .LT. -1 ) .OR.
100 & (keep(111).GT.keep(112)+keep(17)) .OR.
101 & (keep(111) .EQ.-1 .AND. keep(112)+keep(17).EQ.0))
102 & THEN
103 info(1)=-36
104 info(2)=keep(111)
105 GOTO 333
106 ENDIF
107 IF (keep(221).NE.0.AND.keep(111).NE.0) THEN
108 info(1)=-37
109 info(2)=26
110 GOTO 333
111 ENDIF
112 333 CONTINUE
113 RETURN