Skip to content

Fix external declarations#1279

Open
ACSimon33 wants to merge 7 commits into
Reference-LAPACK:masterfrom
ACSimon33:fix-external-declarations
Open

Fix external declarations#1279
ACSimon33 wants to merge 7 commits into
Reference-LAPACK:masterfrom
ACSimon33:fix-external-declarations

Conversation

@ACSimon33
Copy link
Copy Markdown
Contributor

Description

This PR is part of #1276 which introduces _64 suffixed tests for the extended Index-64 API. Those tests exposed a lot of missing external declarations and also unused or wrong external declarations of subroutines and functions. This PR fixes all those external declarations.

Copilot AI review requested due to automatic review settings May 13, 2026 10:55
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request updates Fortran EXTERNAL declarations across LAPACK core sources and the test suite to ensure all referenced subroutines/functions are correctly declared (and unused/incorrect declarations are removed), which is required for the Index-64 extended API generation introduced in #1276.

Changes:

  • Add missing EXTERNAL declarations for routines that are referenced (so the Index-64 name-rewriter can reliably detect and transform them).
  • Remove unused/incorrect EXTERNAL declarations that are no longer referenced.
  • Normalize and reflow EXTERNAL lists (especially in fixed-form sources) to keep declarations accurate and consistent.

Reviewed changes

Copilot reviewed 236 out of 236 changed files in this pull request and generated no comments.

Show a summary per file
File Description
TESTING/LIN/zunhr_col02.f Fix EXTERNAL subroutine list to match actual dependencies.
TESTING/LIN/ztsqr01.f Correct external function/subroutine declarations for TSQR tests.
TESTING/LIN/zsyt01_aa.f Update externals for AA factorization test helper.
TESTING/LIN/zqrt05.f Add missing external subroutine declarations; remove unused externals.
TESTING/LIN/zqrt04.f Add missing external subroutine declarations; remove unused externals.
TESTING/LIN/zpot06.f Remove unused LSAME external declaration.
TESTING/LIN/zlqt05.f Add external subroutines needed by LQT tests; trim externals.
TESTING/LIN/zlqt04.f Add external subroutines needed by LQT tests; trim externals.
TESTING/LIN/zhet01_aa.f Update externals for Hermitian AA test helper.
TESTING/LIN/zerrvx.f Extend externals list to include AA/2stage routines used in error tests.
TESTING/LIN/zerrtsqr.f Add missing TSQR-related externals.
TESTING/LIN/zerrsy.f Add missing AA/2stage symmetric routines to externals.
TESTING/LIN/zdrvsy_rook.f Remove unused externals from rook pivoting driver.
TESTING/LIN/zdrvsy_aa.f Remove unused externals from AA driver; keep only used dependencies.
TESTING/LIN/zdrvsy_aa_2stage.f Remove unused externals from AA 2stage driver; keep only used dependencies.
TESTING/LIN/zdrvrf3.f Fix incorrect external routine name (use ZGELQF).
TESTING/LIN/zdrvls.f Add missing scaling routine externals used by least-squares driver.
TESTING/LIN/zdrvhe_aa.f Remove unused externals from Hermitian AA driver; keep used dependencies.
TESTING/LIN/zdrvhe_aa_2stage.f Remove unused externals from Hermitian AA 2stage driver; keep used dependencies.
TESTING/LIN/zdrvac.f Add missing ALAHD external used by driver output path.
TESTING/LIN/zdrvab.f Add missing solver external used by the driver.
TESTING/LIN/zchktsqr.f Trim externals list to only used routines for TSQR checker.
TESTING/LIN/zchksy_aa_2stage.f Trim externals list to only used routines for AA 2stage checker.
TESTING/LIN/zchkrfp.f Add missing error-test routine to externals.
TESTING/LIN/zchkqrtp.f Fix externals list to include routines actually invoked.
TESTING/LIN/zchkqrt.f Trim externals list to only used routines.
TESTING/LIN/zchklqtp.f Fix externals list to include routines actually invoked.
TESTING/LIN/zchklqt.f Trim externals list to only used routines.
TESTING/LIN/zchkhe.f Add missing ZHETRS2 external used by Hermitian test path.
TESTING/LIN/zchkhe_aa_2stage.f Add missing externals used by AA 2stage Hermitian checker.
TESTING/LIN/zchkaa.F Add missing top-level test program externals for new checkers/drivers.
TESTING/LIN/stsqr01.f Correct external function/subroutine declarations for TSQR tests.
TESTING/LIN/ssyt01_aa.f Remove unused externals in AA test helper.
TESTING/LIN/sqrt05.f Remove unused LSAME external declaration.
TESTING/LIN/sqrt04.f Remove unused LSAME external declaration.
TESTING/LIN/sorhr_col02.f Fix externals list to match actual dependencies.
TESTING/LIN/slqt05.f Add external subroutines needed by LQT tests; trim externals.
TESTING/LIN/slqt04.f Add external subroutines needed by LQT tests; trim externals.
TESTING/LIN/serrtsqr.f Add missing TSQR-related externals.
TESTING/LIN/sdrvsy_rook.f Remove unused externals from rook pivoting driver.
TESTING/LIN/sdrvsy_aa.f Remove unused externals from AA driver; keep only used dependencies.
TESTING/LIN/sdrvsy_aa_2stage.f Remove unused externals from AA 2stage driver; keep only used dependencies.
TESTING/LIN/sdrvrf3.f Fix incorrect external routine name (use SGELQF).
TESTING/LIN/schktsqr.f Trim externals list to only used routines for TSQR checker.
TESTING/LIN/schksy.f Remove unused externals from symmetric test driver list.
TESTING/LIN/schksy_aa_2stage.f Trim externals list to only used routines for AA 2stage checker.
TESTING/LIN/schkrfp.f Add missing error-test routine to externals.
TESTING/LIN/schkqrtp.f Trim externals list to only used routines.
TESTING/LIN/schkqrt.f Trim externals list to only used routines.
TESTING/LIN/schklqtp.f Trim externals list to only used routines.
TESTING/LIN/schklqt.f Trim externals list to only used routines.
TESTING/LIN/schklq.f Add missing solver external used by LQ test driver.
TESTING/LIN/schkaa.F Add missing top-level test program externals for new checkers/drivers.
TESTING/LIN/dtsqr01.f Correct external function/subroutine declarations for TSQR tests.
TESTING/LIN/dsyt01_aa.f Update externals for AA factorization test helper.
TESTING/LIN/dqrt05.f Add missing external subroutine declarations; remove unused externals.
TESTING/LIN/dqrt04.f Add missing external subroutine declarations; remove unused externals.
TESTING/LIN/dorhr_col02.f Fix externals list to match actual dependencies.
TESTING/LIN/dlqt05.f Add external subroutines needed by LQT tests; trim externals.
TESTING/LIN/dlqt04.f Add external subroutines needed by LQT tests; trim externals.
TESTING/LIN/derrtsqr.f Add missing TSQR-related externals.
TESTING/LIN/ddrvsy_rook.f Remove unused externals from rook pivoting driver.
TESTING/LIN/ddrvsy_aa.f Remove unused externals from AA driver; keep only used dependencies.
TESTING/LIN/ddrvsy_aa_2stage.f Remove unused externals from AA 2stage driver; keep only used dependencies.
TESTING/LIN/ddrvrf3.f Fix incorrect external routine name (use DGELQF).
TESTING/LIN/ddrvgbx.f Remove unused external (DGBEQUB) from driver externals list.
TESTING/LIN/ddrvac.f Add missing ALAHD external; remove unused externals.
TESTING/LIN/ddrvab.f Add missing solver external used by the driver.
TESTING/LIN/dchktsqr.f Trim externals list to only used routines for TSQR checker.
TESTING/LIN/dchkrfp.f Add missing error-test routine to externals.
TESTING/LIN/dchkqrtp.f Fix externals list to include routines actually invoked.
TESTING/LIN/dchkqrt.f Trim externals list to only used routines.
TESTING/LIN/dchklqtp.f Trim externals list to only used routines.
TESTING/LIN/dchklqt.f Trim externals list to only used routines.
TESTING/LIN/dchkaa.F Add missing top-level test program externals for new checkers/drivers.
TESTING/LIN/cunhr_col02.f Fix externals list to match actual dependencies.
TESTING/LIN/ctsqr01.f Correct external function/subroutine declarations for TSQR tests.
TESTING/LIN/csyt01_aa.f Update externals for AA factorization test helper.
TESTING/LIN/cqrt05.f Add missing external subroutine declarations; remove unused externals.
TESTING/LIN/cqrt04.f Add missing external subroutine declarations; remove unused externals.
TESTING/LIN/clqt05.f Add external subroutines needed by LQT tests; trim externals.
TESTING/LIN/clqt04.f Add external subroutines needed by LQT tests; trim externals.
TESTING/LIN/chet01_aa.f Update externals for Hermitian AA test helper.
TESTING/LIN/cerrvx.f Extend externals list to include AA/2stage routines used in error tests.
TESTING/LIN/cerrtsqr.f Add missing TSQR-related externals.
TESTING/LIN/cerrsy.f Add missing AA/2stage symmetric routines to externals.
TESTING/LIN/cerrhe.f Fix incorrect/unused external declarations in Hermitian error test list.
TESTING/LIN/cdrvsy_rook.f Remove unused externals from rook pivoting driver.
TESTING/LIN/cdrvsy_aa.f Remove unused externals from AA driver; keep only used dependencies.
TESTING/LIN/cdrvsy_aa_2stage.f Remove unused externals from AA 2stage driver; keep only used dependencies.
TESTING/LIN/cdrvrf3.f Fix incorrect external routine name (use CGELQF).
TESTING/LIN/cdrvls.f Add missing scaling routine externals used by least-squares driver.
TESTING/LIN/cdrvhe_rk.f Fix externals list to match actual routine usage.
TESTING/LIN/cdrvhe_aa.f Remove unused externals from Hermitian AA driver; keep used dependencies.
TESTING/LIN/cdrvhe_aa_2stage.f Remove unused externals from Hermitian AA 2stage driver; keep used dependencies.
TESTING/LIN/cchktsqr.f Trim externals list to only used routines for TSQR checker.
TESTING/LIN/cchksy.f Add missing CSYTRS2 external used by symmetric checker.
TESTING/LIN/cchksy_aa_2stage.f Trim externals list to only used routines for AA 2stage checker.
TESTING/LIN/cchkrfp.f Add missing error-test routine to externals.
TESTING/LIN/cchkqrtp.f Fix externals list to include routines actually invoked.
TESTING/LIN/cchkqrt.f Trim externals list to only used routines.
TESTING/LIN/cchklqtp.f Fix externals list to include routines actually invoked.
TESTING/LIN/cchklqt.f Trim externals list to only used routines.
TESTING/LIN/cchkhe.f Add missing CHETRS2 external used by Hermitian checker.
TESTING/LIN/cchkhe_aa_2stage.f Add missing externals used by AA 2stage Hermitian checker.
TESTING/LIN/cchkaa.F Add missing top-level test program externals for new checkers/drivers.
TESTING/EIG/zerrst.f Add missing externals for 2stage reduction helper routines.
TESTING/EIG/zerrhs.f Add missing Hessenberg reduction helper external (ZGEHD2).
TESTING/EIG/zerred.f Fix external name for Jacobi SVD error tests (ZGEJSV).
TESTING/EIG/zerrec.f Add missing ZTRSYL3 external for Sylvester solver tests.
TESTING/EIG/zdrvst2stg.f Trim externals list to routines actually called in 2stage driver.
TESTING/EIG/zdrgev3.f Add missing XLAENV external.
TESTING/EIG/zdrges3.f Add missing XLAENV external.
TESTING/EIG/zchkhb2stg.f Add missing BLAS/LAPACK externals used by HB-to-2stage checker.
TESTING/EIG/zchkee.F Update top-level eigen test driver externals list and formatting.
TESTING/EIG/zchkdmd.f90 Adjust externals list for DMD test program; add missing function external.
TESTING/EIG/zbdt05.f Remove unused externals from bidiagonal test helper.
TESTING/EIG/ssyt22.f Add missing test helper external (SORT01).
TESTING/EIG/slsets.f Add missing BLAS copy routine external (SCOPY).
TESTING/EIG/sgqrts.f Add missing routine external (SGGQRF).
TESTING/EIG/sglmts.f Add missing BLAS/LAPACK externals used by GLM tests.
TESTING/EIG/sget34.f Add missing test helper external (SHST01).
TESTING/EIG/sdrvst2stg.f Trim externals list to routines actually called in 2stage driver.
TESTING/EIG/sdrvbd.f Add missing bidiagonal test helper external (SBDT05).
TESTING/EIG/sdrgev3.f Add missing XLAENV external.
TESTING/EIG/sdrges3.f Add missing XLAENV external.
TESTING/EIG/schksb2stg.f Add missing BLAS copy routine external (SCOPY).
TESTING/EIG/schkee.F Update top-level eigen test driver externals list and formatting.
TESTING/EIG/schkdmd.f90 Adjust externals list for DMD test program.
TESTING/EIG/schkbd.f Remove unused external function declaration.
TESTING/EIG/sbdt05.f Remove unused externals from bidiagonal test helper.
TESTING/EIG/sbdt04.f Remove unused externals from bidiagonal test helper.
TESTING/EIG/dsyl01.f Add missing DISNAN external.
TESTING/EIG/dget40.f Fix externals list to match actual routine usage (DGET51).
TESTING/EIG/ddrvst2stg.f Trim externals list to routines actually called in 2stage driver.
TESTING/EIG/ddrvbd.f Add missing bidiagonal test helper external (DBDT05).
TESTING/EIG/ddrgev3.f Add missing XLAENV external.
TESTING/EIG/ddrges3.f Add missing XLAENV external.
TESTING/EIG/dchksb2stg.f Add missing BLAS copy routine external (DCOPY).
TESTING/EIG/dchkee.F Update top-level eigen test driver externals list and formatting.
TESTING/EIG/dchkdmd.f90 Adjust externals list for DMD test program.
TESTING/EIG/dchkbd.f Remove unused external function declaration.
TESTING/EIG/dbdt05.f Remove unused externals from bidiagonal test helper.
TESTING/EIG/dbdt04.f Remove unused externals from bidiagonal test helper.
TESTING/EIG/clsets.f Add missing BLAS copy routine external (CCOPY).
TESTING/EIG/chet22.f Add missing test helper external (CUNT01).
TESTING/EIG/cgqrts.f Add missing routine external (CGGQRF).
TESTING/EIG/cglmts.f Add missing BLAS/LAPACK externals used by GLM tests.
TESTING/EIG/cdrgev3.f Add missing XLAENV external.
TESTING/EIG/cdrges3.f Add missing XLAENV external.
TESTING/EIG/cckgsv.f Add missing CGGSVD3 external used by tests.
TESTING/EIG/cchkhb2stg.f Add missing BLAS copy routine external (SCOPY).
TESTING/EIG/cchkee.F Update top-level eigen test driver externals list and formatting.
TESTING/EIG/cchkdmd.f90 Adjust externals list and line continuations for DMD test program.
TESTING/EIG/cbdt05.f Remove unused externals from bidiagonal test helper.
SRC/zunbdb6.f Add missing DLAMCH external declaration.
SRC/zsytrf_aa_2stage.f Reflow/trim externals list to only used routines.
SRC/zsysv_aa.f Remove unused ILAENV external declaration.
SRC/zrscl.f Fix externals list to match actual scaling routines used.
SRC/zlatsqr.f Remove unused LSAME external declaration.
SRC/zlatrs3.f Add missing ZGEMM external.
SRC/zlasyf_aa.f Remove unused ILAENV external; trim externals list.
SRC/zlaswlq.f Remove unused LSAME external declaration.
SRC/zlarft.f Add missing ZLARFT_LVL2 external.
SRC/zlaqr5.f Reflow/trim externals list to routines actually referenced.
SRC/zlahef_aa.f Remove unused ILAENV external; trim externals list.
SRC/zhesv_aa.f Remove unused ILAENV external declaration.
SRC/zhesv_aa_2stage.f Remove unused ILAENV external declaration.
SRC/zhbev_2stage.f Trim externals list to routines actually referenced.
SRC/zgeqr.f Remove unused LSAME external declaration.
SRC/zgelss.f Add missing ZUNMQR external needed by routine.
SRC/zgelq.f Remove unused LSAME external declaration.
SRC/zgeev.f Add missing DISNAN external and reflow externals list.
SRC/zgedmd.f90 Adjust externals list for DMD implementation.
SRC/VARIANTS/cholesky/TOP/zpotrf.f Trim externals list to routines actually referenced.
SRC/VARIANTS/cholesky/TOP/spotrf.f Trim externals list to routines actually referenced.
SRC/VARIANTS/cholesky/TOP/dpotrf.f Trim externals list to routines actually referenced.
SRC/VARIANTS/cholesky/TOP/cpotrf.f Trim externals list to routines actually referenced.
SRC/VARIANTS/cholesky/RL/zpotrf.f Trim externals list to routines actually referenced.
SRC/VARIANTS/cholesky/RL/spotrf.f Trim externals list to routines actually referenced.
SRC/VARIANTS/cholesky/RL/dpotrf.f Trim externals list to routines actually referenced.
SRC/VARIANTS/cholesky/RL/cpotrf.f Trim externals list to routines actually referenced.
SRC/sorbdb6.f Add missing SLAMCH external declaration.
SRC/slatsqr.f Remove unused LSAME external declaration.
SRC/slatrs3.f Fix externals/functions separation; add missing SGEMM and SROUNDUP_LWORK handling.
SRC/slasyf_aa.f Remove unused ILAENV external; trim externals list.
SRC/slaswlq.f Remove unused LSAME external and trim subroutine externals list.
SRC/slarft.f Add missing SLARFT_LVL2 external.
SRC/slaqr5.f Reflow/trim externals list to routines actually referenced.
SRC/slaqr2.f Reflow externals list formatting without changing behavior.
SRC/slapy3.f Add missing SLAMCH external declaration.
SRC/slapy2.f Add missing SLAMCH external declaration.
SRC/sggev3.f Add missing XERBLA external declaration.
SRC/sgeqr.f Remove unused LSAME external declaration.
SRC/sgelq.f Remove unused LSAME external declaration.
SRC/sgeev.f Add missing SISNAN external declaration.
SRC/sgedmdq.f90 Remove unused external declaration.
SRC/ilaenv.f Remove unused IPARAM2STAGE external declaration.
SRC/dsysv_aa.f Remove unused ILAENV external declaration.
SRC/dorgr2.f Fix externals list to match updated reflector-apply helper (DLARF1L).
SRC/dorbdb6.f Add missing DLAMCH external declaration.
SRC/dorbdb4.f Fix externals list to match updated reflector-apply helper (DLARF1F).
SRC/dopmtr.f Add missing DLARF1L external declaration.
SRC/dlatsqr.f Remove unused LSAME external declaration.
SRC/dlatrs3.f Add missing DGEMM external.
SRC/dlasyf_aa.f Remove unused ILAENV external; trim externals list.
SRC/dlaswlq.f Remove unused LSAME external declaration.
SRC/dlarft.f Add missing DLARFT_LVL2 external.
SRC/dlaqr5.f Reflow/trim externals list to routines actually referenced.
SRC/dlapy3.f Add missing DLAMCH external declaration.
SRC/dlapy2.f Add missing DLAMCH external declaration.
SRC/dgeqr.f Remove unused LSAME external declaration.
SRC/dgelq.f Remove unused LSAME external declaration.
SRC/dgeev.f Add missing DISNAN external and reflow externals list.
SRC/dgedmdq.f90 Remove unused external declaration.
SRC/cunbdb6.f Add missing SLAMCH external declaration.
SRC/csysv_aa.f Remove unused ILAENV external declaration; keep required externals.
SRC/crscl.f Trim externals list to routines actually referenced.
SRC/clatsqr.f Remove unused LSAME external declaration.
SRC/clatrs3.f Add missing CGEMM external.
SRC/clasyf_aa.f Remove unused ILAENV external; trim externals list.
SRC/claswlq.f Remove unused LSAME/ILAENV external declarations.
SRC/clarft.f Add missing CLARFT_LVL2 external.
SRC/claqr5.f Reflow/trim externals list to routines actually referenced.
SRC/clahef_rk.f Update externals list to match use of CGEMMTR.
SRC/clahef_aa.f Remove unused ILAENV external; trim externals list.
SRC/chseqr.f Remove unused SROUNDUP_LWORK external declaration.
SRC/chesv_aa.f Remove unused ILAENV external declaration; keep required externals.
SRC/chbev_2stage.f Trim externals list to routines actually referenced.
SRC/cgeqr.f Remove unused LSAME external declaration.
SRC/cgelq.f Remove unused LSAME external declaration.
SRC/cgeev.f Add missing SISNAN external declaration.
SRC/cgedmd.f90 Adjust externals list for DMD implementation.
CBLAS/testing/c_zblat3.f Add missing CBLAS test driver external (CZ3CHKE).
CBLAS/testing/c_dblat2.f Fix external name to CBLAS wrapper (CDGER).
CBLAS/testing/c_cblat3.f Add missing CBLAS test driver external (CC3CHKE).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants