Skip to content

Commit 41d3afd

Browse files
committed
Enabled the tests to complete correctly
This required an overloaded ilaenv2stage in the ilaenv.f in the test directories to use the PARMS(1) for ISPEC == 17. Signed-off-by: Nick Papior <[email protected]>
1 parent 7b65169 commit 41d3afd

File tree

4 files changed

+102
-16
lines changed

4 files changed

+102
-16
lines changed

Diff for: SRC/ilaenv.f

+1-12
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,6 @@
8484
*> 12 <= ISPEC <= 16:
8585
*> xHSEQR or related subroutines,
8686
*> see IPARMQ for detailed explanation
87-
*> 17 <= ISPEC <= 21:
88-
*> *_2STAGE or related subroutines,
89-
*> see IPARAM2STAGE for detailed explanation
9087
*> \endverbatim
9188
*>
9289
*> \param[in] NAME
@@ -192,8 +189,7 @@ INTEGER FUNCTION ILAENV( ISPEC, NAME, OPTS, N1, N2, N3, N4 )
192189
* .. Executable Statements ..
193190
*
194191
GO TO ( 10, 10, 10, 80, 90, 100, 110, 120,
195-
$ 130, 140, 150, 160, 160, 160, 160, 160,
196-
$ 170, 170, 170, 170, 170 )ISPEC
192+
$ 130, 140, 150, 160, 160, 160, 160, 160)ISPEC
197193
*
198194
* Invalid value for ISPEC
199195
*
@@ -693,13 +689,6 @@ INTEGER FUNCTION ILAENV( ISPEC, NAME, OPTS, N1, N2, N3, N4 )
693689
*
694690
ILAENV = IPARMQ( ISPEC, NAME, OPTS, N1, N2, N3, N4 )
695691
RETURN
696-
*
697-
170 CONTINUE
698-
*
699-
* 17 <= ISPEC <= 21: 2stage eigenvalues and SVD or related subroutines.
700-
*
701-
ILAENV = IPARAM2STAGE( ISPEC, NAME, OPTS, N1, N2, N3, N4 )
702-
RETURN
703692
*
704693
* End of ILAENV
705694
*

Diff for: SRC/ilaenv2stage.f

+7-4
Original file line numberDiff line numberDiff line change
@@ -152,22 +152,24 @@ INTEGER FUNCTION ILAENV2STAGE( ISPEC, NAME, OPTS, N1, N2, N3, N4 )
152152
* -- LAPACK auxiliary routine (version 3.7.0) --
153153
* -- LAPACK is a software package provided by Univ. of Tennessee, --
154154
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
155-
* December 2016
155+
* July 2017
156156
*
157157
* .. Scalar Arguments ..
158158
CHARACTER*( * ) NAME, OPTS
159-
INTEGER ISPEC, IISPEC, N1, N2, N3, N4
159+
INTEGER ISPEC, N1, N2, N3, N4
160160
* ..
161161
*
162162
* =====================================================================
163-
*
163+
* ..
164+
* .. Local Scalars ..
165+
INTEGER IISPEC
166+
* ..
164167
* .. External Functions ..
165168
INTEGER IPARAM2STAGE
166169
EXTERNAL IPARAM2STAGE
167170
* ..
168171
* .. Executable Statements ..
169172
*
170-
IISPEC = 16 + ISPEC
171173
GO TO ( 10, 10, 10, 10, 10 )ISPEC
172174
*
173175
* Invalid value for ISPEC
@@ -179,6 +181,7 @@ INTEGER FUNCTION ILAENV2STAGE( ISPEC, NAME, OPTS, N1, N2, N3, N4 )
179181
*
180182
* 2stage eigenvalues and SVD or related subroutines.
181183
*
184+
IISPEC = 16 + ISPEC
182185
ILAENV2STAGE = IPARAM2STAGE( IISPEC, NAME, OPTS,
183186
$ N1, N2, N3, N4 )
184187
RETURN

Diff for: TESTING/EIG/ilaenv.f

+47
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,53 @@ INTEGER FUNCTION ILAENV( ISPEC, NAME, OPTS, N1, N2, N3,
250250
*
251251
* End of ILAENV
252252
*
253+
END
254+
INTEGER FUNCTION ILAENV2STAGE( ISPEC, NAME, OPTS, N1, N2,
255+
$ N3, N4 )
256+
* .. Scalar Arguments ..
257+
CHARACTER*( * ) NAME, OPTS
258+
INTEGER ISPEC, N1, N2, N3, N4
259+
* ..
260+
*
261+
* =====================================================================
262+
*
263+
* .. Local variables ..
264+
INTEGER IISPEC
265+
* .. External Functions ..
266+
INTEGER IPARAM2STAGE
267+
EXTERNAL IPARAM2STAGE
268+
* ..
269+
* .. Arrays in Common ..
270+
INTEGER IPARMS( 100 )
271+
* ..
272+
* .. Common blocks ..
273+
COMMON / CLAENV / IPARMS
274+
* ..
275+
* .. Save statement ..
276+
SAVE / CLAENV /
277+
* ..
278+
* .. Executable Statements ..
279+
*
280+
IF(( ISPEC.GE.1 ) .AND. (ISPEC.LE.5)) THEN
281+
*
282+
* 1 <= ISPEC <= 5: 2stage eigenvalues SVD routines.
283+
*
284+
IF( ISPEC.EQ.1 ) THEN
285+
ILAENV2STAGE = IPARMS( 1 )
286+
ELSE
287+
IISPEC = 16 + ISPEC
288+
ILAENV2STAGE = IPARAM2STAGE( IISPEC, NAME, OPTS,
289+
$ N1, N2, N3, N4 )
290+
ENDIF
291+
*
292+
ELSE
293+
*
294+
* Invalid value for ISPEC
295+
*
296+
ILAENV2STAGE = -1
297+
END IF
298+
*
299+
RETURN
253300
END
254301
INTEGER FUNCTION IPARMQ( ISPEC, NAME, OPTS, N, ILO, IHI, LWORK )
255302
*

Diff for: TESTING/LIN/ilaenv.f

+47
Original file line numberDiff line numberDiff line change
@@ -244,3 +244,50 @@ INTEGER FUNCTION ILAENV( ISPEC, NAME, OPTS, N1, N2, N3,
244244
* End of ILAENV
245245
*
246246
END
247+
INTEGER FUNCTION ILAENV2STAGE( ISPEC, NAME, OPTS, N1, N2,
248+
$ N3, N4 )
249+
* .. Scalar Arguments ..
250+
CHARACTER*( * ) NAME, OPTS
251+
INTEGER ISPEC, N1, N2, N3, N4
252+
* ..
253+
*
254+
* =====================================================================
255+
*
256+
* .. Local variables ..
257+
INTEGER IISPEC
258+
* .. External Functions ..
259+
INTEGER IPARAM2STAGE
260+
EXTERNAL IPARAM2STAGE
261+
* ..
262+
* .. Arrays in Common ..
263+
INTEGER IPARMS( 100 )
264+
* ..
265+
* .. Common blocks ..
266+
COMMON / CLAENV / IPARMS
267+
* ..
268+
* .. Save statement ..
269+
SAVE / CLAENV /
270+
* ..
271+
* .. Executable Statements ..
272+
*
273+
IF(( ISPEC.GE.1 ) .AND. (ISPEC.LE.5)) THEN
274+
*
275+
* 1 <= ISPEC <= 5: 2stage eigenvalues SVD routines.
276+
*
277+
IF( ISPEC.EQ.1 ) THEN
278+
ILAENV2STAGE = IPARMS( 1 )
279+
ELSE
280+
IISPEC = 16 + ISPEC
281+
ILAENV2STAGE = IPARAM2STAGE( IISPEC, NAME, OPTS,
282+
$ N1, N2, N3, N4 )
283+
ENDIF
284+
*
285+
ELSE
286+
*
287+
* Invalid value for ISPEC
288+
*
289+
ILAENV2STAGE = -1
290+
END IF
291+
*
292+
RETURN
293+
END

0 commit comments

Comments
 (0)