Skip to content

Commit ace1953

Browse files
committed
Add missing subroutine parameter checks for linear solver
1 parent 3275c32 commit ace1953

File tree

4 files changed

+57
-4
lines changed

4 files changed

+57
-4
lines changed

TESTING/LIN/derrky.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ SUBROUTINE DERRKY( PATH, NUNIT )
8484
EXTERNAL LSAMEN
8585
* ..
8686
* .. External Subroutines ..
87-
EXTERNAL ALAESM, CHKXER, DKYTRI2X, DKYTF2
87+
EXTERNAL ALAESM, CHKXER, DKYTRI2X, DKYTF2,
8888
$ DKYTRF, DKYTRI, DKYTRS, DKYTRI2
8989
* ..
9090
* .. Scalars in Common ..

TESTING/LIN/derrvx.f

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ SUBROUTINE DERRVX( PATH, NUNIT )
8989
$ DGTSVX, DPBSV, DPBSVX, DPOSV, DPOSVX, DPPSV,
9090
$ DPPSVX, DPTSV, DPTSVX, DSPSV, DSPSVX, DSYSV,
9191
$ DSYSV_AA, DSYSV_RK, DSYSV_ROOK, DSYSVX,
92-
$ DSYSV_AA_2STAGE
92+
$ DSYSV_AA_2STAGE, DKYSV
9393
* ..
9494
* .. Scalars in Common ..
9595
LOGICAL LERR, OK
@@ -634,6 +634,33 @@ SUBROUTINE DERRVX( PATH, NUNIT )
634634
CALL DSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 2,
635635
$ RCOND, R1, R2, W, 3, IW, INFO )
636636
CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK )
637+
*
638+
ELSE IF( LSAMEN( 2, C2, 'KY' ) ) THEN
639+
*
640+
* DKYSV
641+
*
642+
SRNAMT = 'DKYSV '
643+
INFOT = 1
644+
CALL DKYSV( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
645+
CALL CHKXER( 'DKYSV ', INFOT, NOUT, LERR, OK )
646+
INFOT = 2
647+
CALL DKYSV( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
648+
CALL CHKXER( 'DKYSV ', INFOT, NOUT, LERR, OK )
649+
INFOT = 3
650+
CALL DKYSV( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
651+
CALL CHKXER( 'DKYSV ', INFOT, NOUT, LERR, OK )
652+
INFOT = 5
653+
CALL DKYSV( 'U', 2, 0, A, 1, IP, B, 2, W, 1, INFO )
654+
CALL CHKXER( 'DKYSV_ROOK', INFOT, NOUT, LERR, OK )
655+
INFOT = 8
656+
CALL DKYSV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
657+
CALL CHKXER( 'DKYSV ', INFOT, NOUT, LERR, OK )
658+
INFOT = 10
659+
CALL DKYSV( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
660+
CALL CHKXER( 'DKYSV ', INFOT, NOUT, LERR, OK )
661+
INFOT = 10
662+
CALL DKYSV( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
663+
CALL CHKXER( 'DKYSV ', INFOT, NOUT, LERR, OK )
637664
*
638665
ELSE IF( LSAMEN( 2, C2, 'SR' ) ) THEN
639666
*

TESTING/LIN/serrky.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ SUBROUTINE SERRKY( PATH, NUNIT )
8484
EXTERNAL LSAMEN
8585
* ..
8686
* .. External Subroutines ..
87-
EXTERNAL ALAESM, CHKXER, SKYTRI2X, SKYTF2
87+
EXTERNAL ALAESM, CHKXER, SKYTRI2X, SKYTF2,
8888
$ SKYTRF, SKYTRI, SKYTRS, SKYTRI2
8989
* ..
9090
* .. Scalars in Common ..

TESTING/LIN/serrvx.f

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ SUBROUTINE SERRVX( PATH, NUNIT )
8989
$ SGTSVX, SPBSV, SPBSVX, SPOSV, SPOSVX, SPPSV,
9090
$ SPPSVX, SPTSV, SPTSVX, SSPSV, SSPSVX, SSYSV,
9191
$ SSYSV_AA, SSYSV_RK, SSYSV_ROOK, SSYSVX,
92-
$ SSYSV_AA_2STAGE
92+
$ SSYSV_AA_2STAGE, SKYSV
9393
* ..
9494
* .. Scalars in Common ..
9595
LOGICAL LERR, OK
@@ -635,6 +635,32 @@ SUBROUTINE SERRVX( PATH, NUNIT )
635635
$ RCOND, R1, R2, W, 3, IW, INFO )
636636
CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK )
637637
*
638+
ELSE IF( LSAMEN( 2, C2, 'KY' ) ) THEN
639+
*
640+
* SKYSV
641+
*
642+
SRNAMT = 'SKYSV '
643+
INFOT = 1
644+
CALL SKYSV( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
645+
CALL CHKXER( 'SKYSV ', INFOT, NOUT, LERR, OK )
646+
INFOT = 2
647+
CALL SKYSV( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
648+
CALL CHKXER( 'SKYSV ', INFOT, NOUT, LERR, OK )
649+
INFOT = 3
650+
CALL SKYSV( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
651+
CALL CHKXER( 'SKYSV ', INFOT, NOUT, LERR, OK )
652+
INFOT = 5
653+
CALL SKYSV( 'U', 2, 0, A, 1, IP, B, 2, W, 1, INFO )
654+
CALL CHKXER( 'SKYSV ', INFOT, NOUT, LERR, OK )
655+
INFOT = 8
656+
CALL SKYSV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
657+
CALL CHKXER( 'SKYSV ', INFOT, NOUT, LERR, OK )
658+
INFOT = 10
659+
CALL SKYSV( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
660+
CALL CHKXER( 'SKYSV ', INFOT, NOUT, LERR, OK )
661+
INFOT = 10
662+
CALL SKYSV( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
663+
CALL CHKXER( 'SKYSV ', INFOT, NOUT, LERR, OK )
638664
*
639665
ELSE IF( LSAMEN( 2, C2, 'SR' ) ) THEN
640666
*

0 commit comments

Comments
 (0)