diff --git a/.ci_support/linux_64_blas_implblis.yaml b/.ci_support/linux_64_blas_implblis.yaml index 6d70fde..8553e5f 100644 --- a/.ci_support/linux_64_blas_implblis.yaml +++ b/.ci_support/linux_64_blas_implblis.yaml @@ -13,7 +13,7 @@ c_stdlib: c_stdlib_version: - '2.17' channel_sources: -- conda-forge +- conda-forge/label/lapack_rc,conda-forge channel_targets: - conda-forge main docker_image: diff --git a/.ci_support/linux_64_blas_implmkl.yaml b/.ci_support/linux_64_blas_implmkl.yaml index fd2dfa5..41eb397 100644 --- a/.ci_support/linux_64_blas_implmkl.yaml +++ b/.ci_support/linux_64_blas_implmkl.yaml @@ -13,7 +13,7 @@ c_stdlib: c_stdlib_version: - '2.17' channel_sources: -- conda-forge +- conda-forge/label/lapack_rc,conda-forge channel_targets: - conda-forge main docker_image: diff --git a/.ci_support/linux_64_blas_implopenblas.yaml b/.ci_support/linux_64_blas_implopenblas.yaml index cf67dae..de834fd 100644 --- a/.ci_support/linux_64_blas_implopenblas.yaml +++ b/.ci_support/linux_64_blas_implopenblas.yaml @@ -13,7 +13,7 @@ c_stdlib: c_stdlib_version: - '2.17' channel_sources: -- conda-forge +- conda-forge/label/lapack_rc,conda-forge channel_targets: - conda-forge main docker_image: diff --git a/.ci_support/linux_aarch64_blas_implblis.yaml b/.ci_support/linux_aarch64_blas_implblis.yaml index e345ee1..15a1543 100644 --- a/.ci_support/linux_aarch64_blas_implblis.yaml +++ b/.ci_support/linux_aarch64_blas_implblis.yaml @@ -13,7 +13,7 @@ c_stdlib: c_stdlib_version: - '2.17' channel_sources: -- conda-forge +- conda-forge/label/lapack_rc,conda-forge channel_targets: - conda-forge main docker_image: diff --git a/.ci_support/linux_aarch64_blas_implnvpl.yaml b/.ci_support/linux_aarch64_blas_implnvpl.yaml index 8f023bf..185cbbd 100644 --- a/.ci_support/linux_aarch64_blas_implnvpl.yaml +++ b/.ci_support/linux_aarch64_blas_implnvpl.yaml @@ -13,7 +13,7 @@ c_stdlib: c_stdlib_version: - '2.17' channel_sources: -- conda-forge +- conda-forge/label/lapack_rc,conda-forge channel_targets: - conda-forge main docker_image: diff --git a/.ci_support/linux_aarch64_blas_implopenblas.yaml b/.ci_support/linux_aarch64_blas_implopenblas.yaml index a3427b2..4ff8dee 100644 --- a/.ci_support/linux_aarch64_blas_implopenblas.yaml +++ b/.ci_support/linux_aarch64_blas_implopenblas.yaml @@ -13,7 +13,7 @@ c_stdlib: c_stdlib_version: - '2.17' channel_sources: -- conda-forge +- conda-forge/label/lapack_rc,conda-forge channel_targets: - conda-forge main docker_image: diff --git a/.ci_support/linux_ppc64le_.yaml b/.ci_support/linux_ppc64le_.yaml index 29bead9..7d6d79b 100644 --- a/.ci_support/linux_ppc64le_.yaml +++ b/.ci_support/linux_ppc64le_.yaml @@ -13,7 +13,7 @@ c_stdlib: c_stdlib_version: - '2.17' channel_sources: -- conda-forge +- conda-forge/label/lapack_rc,conda-forge channel_targets: - conda-forge main docker_image: diff --git a/.ci_support/osx_64_blas_implaccelerate.yaml b/.ci_support/osx_64_blas_implaccelerate.yaml index df6d94b..de024aa 100644 --- a/.ci_support/osx_64_blas_implaccelerate.yaml +++ b/.ci_support/osx_64_blas_implaccelerate.yaml @@ -17,7 +17,7 @@ c_stdlib: c_stdlib_version: - '11.0' channel_sources: -- conda-forge +- conda-forge/label/lapack_rc,conda-forge channel_targets: - conda-forge main fortran_compiler: diff --git a/.ci_support/osx_64_blas_implblis.yaml b/.ci_support/osx_64_blas_implblis.yaml index 3961c4d..567eb70 100644 --- a/.ci_support/osx_64_blas_implblis.yaml +++ b/.ci_support/osx_64_blas_implblis.yaml @@ -17,7 +17,7 @@ c_stdlib: c_stdlib_version: - '11.0' channel_sources: -- conda-forge +- conda-forge/label/lapack_rc,conda-forge channel_targets: - conda-forge main fortran_compiler: diff --git a/.ci_support/osx_64_blas_implnewaccelerate.yaml b/.ci_support/osx_64_blas_implnewaccelerate.yaml index 585391e..c703db9 100644 --- a/.ci_support/osx_64_blas_implnewaccelerate.yaml +++ b/.ci_support/osx_64_blas_implnewaccelerate.yaml @@ -17,7 +17,7 @@ c_stdlib: c_stdlib_version: - '11.0' channel_sources: -- conda-forge +- conda-forge/label/lapack_rc,conda-forge channel_targets: - conda-forge main fortran_compiler: diff --git a/.ci_support/osx_64_blas_implopenblas.yaml b/.ci_support/osx_64_blas_implopenblas.yaml index 0dbd37e..9f1d8f9 100644 --- a/.ci_support/osx_64_blas_implopenblas.yaml +++ b/.ci_support/osx_64_blas_implopenblas.yaml @@ -17,7 +17,7 @@ c_stdlib: c_stdlib_version: - '11.0' channel_sources: -- conda-forge +- conda-forge/label/lapack_rc,conda-forge channel_targets: - conda-forge main fortran_compiler: diff --git a/.ci_support/osx_arm64_blas_implaccelerate.yaml b/.ci_support/osx_arm64_blas_implaccelerate.yaml index 9008fa8..a84cb55 100644 --- a/.ci_support/osx_arm64_blas_implaccelerate.yaml +++ b/.ci_support/osx_arm64_blas_implaccelerate.yaml @@ -17,7 +17,7 @@ c_stdlib: c_stdlib_version: - '11.0' channel_sources: -- conda-forge +- conda-forge/label/lapack_rc,conda-forge channel_targets: - conda-forge main fortran_compiler: diff --git a/.ci_support/osx_arm64_blas_implblis.yaml b/.ci_support/osx_arm64_blas_implblis.yaml index 6c80325..9941208 100644 --- a/.ci_support/osx_arm64_blas_implblis.yaml +++ b/.ci_support/osx_arm64_blas_implblis.yaml @@ -17,7 +17,7 @@ c_stdlib: c_stdlib_version: - '11.0' channel_sources: -- conda-forge +- conda-forge/label/lapack_rc,conda-forge channel_targets: - conda-forge main fortran_compiler: diff --git a/.ci_support/osx_arm64_blas_implnewaccelerate.yaml b/.ci_support/osx_arm64_blas_implnewaccelerate.yaml index ce187b7..5a9129b 100644 --- a/.ci_support/osx_arm64_blas_implnewaccelerate.yaml +++ b/.ci_support/osx_arm64_blas_implnewaccelerate.yaml @@ -17,7 +17,7 @@ c_stdlib: c_stdlib_version: - '11.0' channel_sources: -- conda-forge +- conda-forge/label/lapack_rc,conda-forge channel_targets: - conda-forge main fortran_compiler: diff --git a/.ci_support/osx_arm64_blas_implopenblas.yaml b/.ci_support/osx_arm64_blas_implopenblas.yaml index 51e9c2b..13439ad 100644 --- a/.ci_support/osx_arm64_blas_implopenblas.yaml +++ b/.ci_support/osx_arm64_blas_implopenblas.yaml @@ -17,7 +17,7 @@ c_stdlib: c_stdlib_version: - '11.0' channel_sources: -- conda-forge +- conda-forge/label/lapack_rc,conda-forge channel_targets: - conda-forge main fortran_compiler: diff --git a/.ci_support/win_64_blas_implblis.yaml b/.ci_support/win_64_blas_implblis.yaml index de313f3..6014589 100644 --- a/.ci_support/win_64_blas_implblis.yaml +++ b/.ci_support/win_64_blas_implblis.yaml @@ -9,7 +9,7 @@ c_compiler: c_stdlib: - vs channel_sources: -- conda-forge +- conda-forge/label/lapack_rc,conda-forge channel_targets: - conda-forge main fortran_compiler: diff --git a/.ci_support/win_64_blas_implmkl.yaml b/.ci_support/win_64_blas_implmkl.yaml index 9315d4f..199ce5e 100644 --- a/.ci_support/win_64_blas_implmkl.yaml +++ b/.ci_support/win_64_blas_implmkl.yaml @@ -9,7 +9,7 @@ c_compiler: c_stdlib: - vs channel_sources: -- conda-forge +- conda-forge/label/lapack_rc,conda-forge channel_targets: - conda-forge main fortran_compiler: diff --git a/.ci_support/win_64_blas_implopenblas.yaml b/.ci_support/win_64_blas_implopenblas.yaml index 7081ebf..ffe7d53 100644 --- a/.ci_support/win_64_blas_implopenblas.yaml +++ b/.ci_support/win_64_blas_implopenblas.yaml @@ -9,7 +9,7 @@ c_compiler: c_stdlib: - vs channel_sources: -- conda-forge +- conda-forge/label/lapack_rc,conda-forge channel_targets: - conda-forge main fortran_compiler: diff --git a/recipe/bld.bat b/recipe/bld.bat index b0eae8d..28dc9f4 100644 --- a/recipe/bld.bat +++ b/recipe/bld.bat @@ -24,7 +24,7 @@ set "LDFLAGS=/LIBPATH:%LIBRARY_PREFIX%\lib %LDFLAGS%" set "PYTHON_EXEC=%BUILD_PREFIX%\python.exe" -%MINIFORGE_HOME%\Scripts\conda.exe create -p %NEW_ENV% --yes --quiet ^ +%MINIFORGE_HOME%\Scripts\conda.exe create -p %NEW_ENV% -c conda-forge/label/lapack_rc -c conda-forge --yes --quiet ^ libblas=%PKG_VERSION%=*netlib ^ libcblas=%PKG_VERSION%=*netlib ^ liblapack=%PKG_VERSION%=*netlib ^ @@ -61,6 +61,7 @@ if not "%lapack_impl_lib%"=="notapplicable" ( cmake -LAH -G Ninja .. ^ "-DBLAS_LIBRARIES=blas.lib;cblas.lib" ^ "-DLAPACK_LIBRARIES=lapack.lib;lapacke.lib" ^ + -DBUILD_INDEX64_EXT_API=OFF ^ -DBUILD_TESTING=yes ^ -DPYTHON_EXECUTABLE=%PYTHON_EXEC% ^ -DCMAKE_BUILD_TYPE=Release diff --git a/recipe/build.sh b/recipe/build.sh index 7ceaec9..f5d5a61 100644 --- a/recipe/build.sh +++ b/recipe/build.sh @@ -16,7 +16,7 @@ export LIBRARY_PATH="${LIBRARY_PREFIX}/lib" export PYTHON_EXEC=$BUILD_PREFIX/bin/python export CONDA_SUBDIR="${target_platform}" -conda create -p ${NEW_ENV} --yes --quiet \ +conda create -p ${NEW_ENV} -c conda-forge/label/lapack_rc -c conda-forge --yes --quiet \ libblas=${PKG_VERSION}=*netlib \ libcblas=${PKG_VERSION}=*netlib \ liblapack=${PKG_VERSION}=*netlib \ @@ -28,6 +28,7 @@ unset CONDA_SUBDIR cmake ${CMAKE_ARGS} -LAH -G "${CMAKE_GENERATOR}" .. \ "-DBLAS_LIBRARIES=libblas${SHLIB_EXT};libcblas${SHLIB_EXT}" \ "-DLAPACK_LIBRARIES=liblapack${SHLIB_EXT};liblapacke${SHLIB_EXT}" \ + -DBUILD_INDEX64_EXT_API=OFF \ -DBUILD_TESTING=yes \ -DPYTHON_EXECUTABLE=$PYTHON_EXEC \ -DCMAKE_BUILD_TYPE=Release \ diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml index f65bcc8..43fe546 100644 --- a/recipe/conda_build_config.yaml +++ b/recipe/conda_build_config.yaml @@ -3,6 +3,11 @@ c_compiler: # [win] cxx_compiler: # [win] - clangxx # [win] +# temporarily while we bring up LAPACK 3.12; +# only required for blis; rest installs directly in build.sh +channel_sources: + - conda-forge/label/lapack_rc,conda-forge + blas_impl: - openblas - openblas # [win] diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 649651c..7a15fb6 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,6 +1,6 @@ -{% set version = "3.11.0" %} +{% set version = "3.12.1" %} # if build_num is reset to 0 (for new version), update increment for blas_minor below -{% set build_num = 8 %} +{% set build_num = 0 %} {% set version_major = version.split(".")[0] %} {% set version_minor = version.split(".")[1] %} @@ -33,7 +33,7 @@ package: source: - url: https://github.com/Reference-LAPACK/lapack/archive/v{{ version }}.tar.gz - sha256: 4b9ba79bfd4921ca820e83979db76ab3363155709444a787979e81c22285ffa9 + sha256: 2ca6407a001a474d4d4d35f3a61550156050c48016d949f0da0529c0aa052422 patches: # Test BLAS and LAPACKE in addition to LAPACK - patches/0001-Test-BLAS-and-LAPACKE-in-addition-to-LAPACK.patch @@ -41,10 +41,6 @@ source: - patches/0002-read-pipe-as-binary.patch # make symbol RowMajorStrg visible through DLL boundary - patches/0003-add-DLL-import-export-machinery-for-RowMajorStrg.patch - # backport https://github.com/Reference-LAPACK/lapack/pull/758, can be dropped for 3.12 - - patches/0004-fixed-bug-in-array-bounds-in-complex-syl01-test.patch - # backport https://github.com/Reference-LAPACK/lapack/pull/854, can be dropped for 3.12 - - patches/0005-Use-dynamic-allocation-in-SYL01-tests.patch - url: https://github.com/isuruf/vecLibFort/archive/99af8640e98c829b41c3235e3706760cd5696fe4.tar.gz sha256: 80de7c6e83d1d84d016b4cb299f2c15f5a82b9d36865dd5c16bf221fe9a303ad diff --git a/recipe/patches/0002-read-pipe-as-binary.patch b/recipe/patches/0002-read-pipe-as-binary.patch index a1b805f..a7042b1 100644 --- a/recipe/patches/0002-read-pipe-as-binary.patch +++ b/recipe/patches/0002-read-pipe-as-binary.patch @@ -1,14 +1,14 @@ -From 3430230d700e7f34e70d727d9b21508728081a0c Mon Sep 17 00:00:00 2001 +From 2cce8546b17c445de470d34fdf79a86a76ec340c Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sun, 18 Aug 2024 14:03:42 +1100 -Subject: [PATCH 2/5] read pipe as binary +Subject: [PATCH 2/7] read pipe as binary --- lapack_testing.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lapack_testing.py b/lapack_testing.py -index abda36898..b638e7662 100755 +index dc3c471b5..c4f312339 100755 --- a/lapack_testing.py +++ b/lapack_testing.py @@ -110,7 +110,7 @@ def run_summary_test( f, cmdline, short_summary): @@ -33,8 +33,8 @@ index abda36898..b638e7662 100755 for line in pipe.readlines(): f.write(str(line)) words_in_line=line.split() -- if (line.find("run")!=-1): -+ if (line.find(b"run")!=-1): +- if (line.find("run)")!=-1): ++ if (line.find(b"run)")!=-1): # print line - whereisrun=words_in_line.index("run)") + whereisrun=words_in_line.index(b"run)") diff --git a/recipe/patches/0003-add-DLL-import-export-machinery-for-RowMajorStrg.patch b/recipe/patches/0003-add-DLL-import-export-machinery-for-RowMajorStrg.patch index 506e400..2b6fa7a 100644 --- a/recipe/patches/0003-add-DLL-import-export-machinery-for-RowMajorStrg.patch +++ b/recipe/patches/0003-add-DLL-import-export-machinery-for-RowMajorStrg.patch @@ -1,17 +1,17 @@ -From 1a0a390be48a415b08103672f3b2d3d76865d23c Mon Sep 17 00:00:00 2001 +From 5aa8b94a491e77e4d42f34be36566058856b1c2a Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Fri, 8 Nov 2024 14:35:19 +1100 -Subject: [PATCH 3/5] add DLL import/export machinery for RowMajorStrg +Subject: [PATCH 3/7] add DLL import/export machinery for RowMajorStrg Suggested-By: Isuru Fernando --- CBLAS/include/cblas.h | 9 +++++++++ - CBLAS/src/CMakeLists.txt | 3 +++ + CBLAS/src/CMakeLists.txt | 4 ++++ CBLAS/src/cblas_globals.c | 10 ++++++++-- - 3 files changed, 20 insertions(+), 2 deletions(-) + 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/CBLAS/include/cblas.h b/CBLAS/include/cblas.h -index f7d411571..4ac2d7793 100644 +index b8baf4eca..5ed6dc140 100644 --- a/CBLAS/include/cblas.h +++ b/CBLAS/include/cblas.h @@ -4,6 +4,15 @@ @@ -31,19 +31,20 @@ index f7d411571..4ac2d7793 100644 #ifdef __cplusplus extern "C" { /* Assume C declarations for C++ */ diff --git a/CBLAS/src/CMakeLists.txt b/CBLAS/src/CMakeLists.txt -index a8152297a..e75d1e51d 100644 +index 8dcb2f293..3d6027eda 100644 --- a/CBLAS/src/CMakeLists.txt +++ b/CBLAS/src/CMakeLists.txt -@@ -124,6 +124,9 @@ set_target_properties( - VERSION ${LAPACK_VERSION} - SOVERSION ${LAPACK_MAJOR_VERSION} +@@ -176,6 +176,10 @@ set_target_properties( + POSITION_INDEPENDENT_CODE ON ) + +if(BUILD_SHARED_LIBS) + target_compile_definitions(cblas PRIVATE CBLAS_BUILDING_DLL) +endif() - if(HAS_ATTRIBUTE_WEAK_SUPPORT) - target_compile_definitions(${CBLASLIB} PRIVATE HAS_ATTRIBUTE_WEAK_SUPPORT) - endif() ++ + target_include_directories(${CBLASLIB} PUBLIC + $ + ) diff --git a/CBLAS/src/cblas_globals.c b/CBLAS/src/cblas_globals.c index 5d91a18c9..b7bf74e23 100644 --- a/CBLAS/src/cblas_globals.c diff --git a/recipe/patches/0004-fixed-bug-in-array-bounds-in-complex-syl01-test.patch b/recipe/patches/0004-fixed-bug-in-array-bounds-in-complex-syl01-test.patch deleted file mode 100644 index 15b8401..0000000 --- a/recipe/patches/0004-fixed-bug-in-array-bounds-in-complex-syl01-test.patch +++ /dev/null @@ -1,36 +0,0 @@ -From b7907197993a58a29a33bb88a51e1912d7f9fc1e Mon Sep 17 00:00:00 2001 -From: Dmitry Klyuchinsky -Date: Fri, 18 Nov 2022 17:58:06 +0700 -Subject: [PATCH 4/5] fixed bug in array bounds in complex syl01 test - ---- - TESTING/EIG/csyl01.f | 2 +- - TESTING/EIG/zsyl01.f | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/TESTING/EIG/csyl01.f b/TESTING/EIG/csyl01.f -index e21f1a7a0..82d790daa 100644 ---- a/TESTING/EIG/csyl01.f -+++ b/TESTING/EIG/csyl01.f -@@ -124,7 +124,7 @@ - $ C( MAXM, MAXN ), CC( MAXM, MAXN ), - $ X( MAXM, MAXN ), - $ DUML( MAXM ), DUMR( MAXN ), -- $ D( MIN( MAXM, MAXN ) ) -+ $ D( MAX( MAXM, MAXN ) ) - REAL SWORK( LDSWORK, 54 ), DUM( MAXN ), VM( 2 ) - INTEGER ISEED( 4 ), IWORK( MAXM + MAXN + 2 ) - * .. -diff --git a/TESTING/EIG/zsyl01.f b/TESTING/EIG/zsyl01.f -index 1e8619a34..329f39dc4 100644 ---- a/TESTING/EIG/zsyl01.f -+++ b/TESTING/EIG/zsyl01.f -@@ -124,7 +124,7 @@ - $ C( MAXM, MAXN ), CC( MAXM, MAXN ), - $ X( MAXM, MAXN ), - $ DUML( MAXM ), DUMR( MAXN ), -- $ D( MIN( MAXM, MAXN ) ) -+ $ D( MAX( MAXM, MAXN ) ) - DOUBLE PRECISION SWORK( LDSWORK, 103 ), DUM( MAXN ), VM( 2 ) - INTEGER ISEED( 4 ), IWORK( MAXM + MAXN + 2 ) - * .. diff --git a/recipe/patches/0005-Use-dynamic-allocation-in-SYL01-tests.patch b/recipe/patches/0005-Use-dynamic-allocation-in-SYL01-tests.patch deleted file mode 100644 index 5d10405..0000000 --- a/recipe/patches/0005-Use-dynamic-allocation-in-SYL01-tests.patch +++ /dev/null @@ -1,256 +0,0 @@ -From 9509026e0f00c4ad2c3398207a5368baf4a57df0 Mon Sep 17 00:00:00 2001 -From: Angelika Schwarz -Date: Sat, 17 Jun 2023 10:51:33 +0200 -Subject: [PATCH 5/5] Use dynamic allocation in SYL01 tests - ---- - TESTING/EIG/csyl01.f | 33 ++++++++++++++++++++++++++++----- - TESTING/EIG/dsyl01.f | 35 +++++++++++++++++++++++++++++------ - TESTING/EIG/ssyl01.f | 35 +++++++++++++++++++++++++++++------ - TESTING/EIG/zsyl01.f | 33 ++++++++++++++++++++++++++++----- - 4 files changed, 114 insertions(+), 22 deletions(-) - -diff --git a/TESTING/EIG/csyl01.f b/TESTING/EIG/csyl01.f -index 82d790daa..8a3cd1ae5 100644 ---- a/TESTING/EIG/csyl01.f -+++ b/TESTING/EIG/csyl01.f -@@ -120,14 +120,16 @@ - COMPLEX RMUL - * .. - * .. Local Arrays .. -- COMPLEX A( MAXM, MAXM ), B( MAXN, MAXN ), -- $ C( MAXM, MAXN ), CC( MAXM, MAXN ), -- $ X( MAXM, MAXN ), -- $ DUML( MAXM ), DUMR( MAXN ), -+ COMPLEX DUML( MAXM ), DUMR( MAXN ), - $ D( MAX( MAXM, MAXN ) ) -- REAL SWORK( LDSWORK, 54 ), DUM( MAXN ), VM( 2 ) -+ REAL DUM( MAXN ), VM( 2 ) - INTEGER ISEED( 4 ), IWORK( MAXM + MAXN + 2 ) - * .. -+* .. Allocatable Arrays .. -+ INTEGER AllocateStatus -+ COMPLEX, DIMENSION(:,:), ALLOCATABLE :: A, B, C, CC, X -+ REAL, DIMENSION(:,:), ALLOCATABLE :: SWORK -+* .. - * .. External Functions .. - LOGICAL SISNAN - REAL SLAMCH, CLANGE -@@ -139,6 +141,20 @@ - * .. Intrinsic Functions .. - INTRINSIC ABS, REAL, MAX - * .. -+* .. Allocate memory dynamically .. -+ ALLOCATE ( A( MAXM, MAXM ), STAT = AllocateStatus ) -+ IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***" -+ ALLOCATE ( B( MAXN, MAXN ), STAT = AllocateStatus ) -+ IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***" -+ ALLOCATE ( C( MAXM, MAXN ), STAT = AllocateStatus ) -+ IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***" -+ ALLOCATE ( CC( MAXM, MAXN ), STAT = AllocateStatus ) -+ IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***" -+ ALLOCATE ( X( MAXM, MAXN ), STAT = AllocateStatus ) -+ IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***" -+ ALLOCATE ( SWORK( LDSWORK, 54 ), STAT = AllocateStatus ) -+ IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***" -+* .. - * .. Executable Statements .. - * - * Get machine parameters -@@ -286,6 +302,13 @@ - END DO - END DO - END DO -+* -+ DEALLOCATE (A, STAT = AllocateStatus) -+ DEALLOCATE (B, STAT = AllocateStatus) -+ DEALLOCATE (C, STAT = AllocateStatus) -+ DEALLOCATE (CC, STAT = AllocateStatus) -+ DEALLOCATE (X, STAT = AllocateStatus) -+ DEALLOCATE (SWORK, STAT = AllocateStatus) - * - RETURN - * -diff --git a/TESTING/EIG/dsyl01.f b/TESTING/EIG/dsyl01.f -index 782d2cd42..0ea481382 100644 ---- a/TESTING/EIG/dsyl01.f -+++ b/TESTING/EIG/dsyl01.f -@@ -117,13 +117,15 @@ - $ SCALE, SCALE3, SMLNUM, TNRM, XNRM - * .. - * .. Local Arrays .. -- DOUBLE PRECISION A( MAXM, MAXM ), B( MAXN, MAXN ), -- $ C( MAXM, MAXN ), CC( MAXM, MAXN ), -- $ X( MAXM, MAXN ), -- $ DUML( MAXM ), DUMR( MAXN ), -+ DOUBLE PRECISION DUML( MAXM ), DUMR( MAXN ), - $ D( MAX( MAXM, MAXN ) ), DUM( MAXN ), -- $ SWORK( LDSWORK, 126 ), VM( 2 ) -- INTEGER ISEED( 4 ), IWORK( MAXM + MAXN + 2 ), IDUM( 2 ) -+ $ VM( 2 ) -+ INTEGER ISEED( 4 ), IWORK( MAXM + MAXN + 2 ) -+* .. -+* .. Allocatable Arrays .. -+ INTEGER AllocateStatus -+ DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: A, B, C, CC, X, -+ $ SWORK - * .. - * .. External Functions .. - LOGICAL DISNAN -@@ -136,6 +138,20 @@ - * .. Intrinsic Functions .. - INTRINSIC ABS, DBLE, MAX - * .. -+* .. Allocate memory dynamically .. -+ ALLOCATE ( A( MAXM, MAXM ), STAT = AllocateStatus ) -+ IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***" -+ ALLOCATE ( B( MAXN, MAXN ), STAT = AllocateStatus ) -+ IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***" -+ ALLOCATE ( C( MAXM, MAXN ), STAT = AllocateStatus ) -+ IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***" -+ ALLOCATE ( CC( MAXM, MAXN ), STAT = AllocateStatus ) -+ IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***" -+ ALLOCATE ( X( MAXM, MAXN ), STAT = AllocateStatus ) -+ IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***" -+ ALLOCATE ( SWORK( LDSWORK, 126 ), STAT = AllocateStatus ) -+ IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***" -+* .. - * .. Executable Statements .. - * - * Get machine parameters -@@ -280,6 +296,13 @@ - END DO - END DO - END DO -+* -+ DEALLOCATE (A, STAT = AllocateStatus) -+ DEALLOCATE (B, STAT = AllocateStatus) -+ DEALLOCATE (C, STAT = AllocateStatus) -+ DEALLOCATE (CC, STAT = AllocateStatus) -+ DEALLOCATE (X, STAT = AllocateStatus) -+ DEALLOCATE (SWORK, STAT = AllocateStatus) - * - RETURN - * -diff --git a/TESTING/EIG/ssyl01.f b/TESTING/EIG/ssyl01.f -index 22d089dc8..fda30a3c0 100644 ---- a/TESTING/EIG/ssyl01.f -+++ b/TESTING/EIG/ssyl01.f -@@ -117,13 +117,15 @@ - $ SCALE, SCALE3, SMLNUM, TNRM, XNRM - * .. - * .. Local Arrays .. -- REAL A( MAXM, MAXM ), B( MAXN, MAXN ), -- $ C( MAXM, MAXN ), CC( MAXM, MAXN ), -- $ X( MAXM, MAXN ), -- $ DUML( MAXM ), DUMR( MAXN ), -+ REAL DUML( MAXM ), DUMR( MAXN ), - $ D( MAX( MAXM, MAXN ) ), DUM( MAXN ), -- $ SWORK( LDSWORK, 54 ), VM( 2 ) -- INTEGER ISEED( 4 ), IWORK( MAXM + MAXN + 2 ), IDUM( 2 ) -+ $ VM( 2 ) -+ INTEGER ISEED( 4 ), IWORK( MAXM + MAXN + 2 ) -+* .. -+* .. Allocatable Arrays .. -+ INTEGER AllocateStatus -+ REAL, DIMENSION(:,:), ALLOCATABLE :: A, B, C, CC, X, -+ $ SWORK - * .. - * .. External Functions .. - LOGICAL SISNAN -@@ -136,6 +138,20 @@ - * .. Intrinsic Functions .. - INTRINSIC ABS, REAL, MAX - * .. -+* .. Allocate memory dynamically .. -+ ALLOCATE ( A( MAXM, MAXM ), STAT = AllocateStatus ) -+ IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***" -+ ALLOCATE ( B( MAXN, MAXN ), STAT = AllocateStatus ) -+ IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***" -+ ALLOCATE ( C( MAXM, MAXN ), STAT = AllocateStatus ) -+ IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***" -+ ALLOCATE ( CC( MAXM, MAXN ), STAT = AllocateStatus ) -+ IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***" -+ ALLOCATE ( X( MAXM, MAXN ), STAT = AllocateStatus ) -+ IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***" -+ ALLOCATE ( SWORK( LDSWORK, 54 ), STAT = AllocateStatus ) -+ IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***" -+* .. - * .. Executable Statements .. - * - * Get machine parameters -@@ -280,6 +296,13 @@ - END DO - END DO - END DO -+* -+ DEALLOCATE (A, STAT = AllocateStatus) -+ DEALLOCATE (B, STAT = AllocateStatus) -+ DEALLOCATE (C, STAT = AllocateStatus) -+ DEALLOCATE (CC, STAT = AllocateStatus) -+ DEALLOCATE (X, STAT = AllocateStatus) -+ DEALLOCATE (SWORK, STAT = AllocateStatus) - * - RETURN - * -diff --git a/TESTING/EIG/zsyl01.f b/TESTING/EIG/zsyl01.f -index 329f39dc4..5d26d494c 100644 ---- a/TESTING/EIG/zsyl01.f -+++ b/TESTING/EIG/zsyl01.f -@@ -120,14 +120,16 @@ - COMPLEX*16 RMUL - * .. - * .. Local Arrays .. -- COMPLEX*16 A( MAXM, MAXM ), B( MAXN, MAXN ), -- $ C( MAXM, MAXN ), CC( MAXM, MAXN ), -- $ X( MAXM, MAXN ), -- $ DUML( MAXM ), DUMR( MAXN ), -+ COMPLEX*16 DUML( MAXM ), DUMR( MAXN ), - $ D( MAX( MAXM, MAXN ) ) -- DOUBLE PRECISION SWORK( LDSWORK, 103 ), DUM( MAXN ), VM( 2 ) -+ DOUBLE PRECISION DUM( MAXN ), VM( 2 ) - INTEGER ISEED( 4 ), IWORK( MAXM + MAXN + 2 ) - * .. -+* .. Allocatable Arrays .. -+ INTEGER AllocateStatus -+ COMPLEX*16, DIMENSION(:,:), ALLOCATABLE :: A, B, C, CC, X -+ DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: SWORK -+* .. - * .. External Functions .. - LOGICAL DISNAN - DOUBLE PRECISION DLAMCH, ZLANGE -@@ -139,6 +141,20 @@ - * .. Intrinsic Functions .. - INTRINSIC ABS, DBLE, MAX, SQRT - * .. -+* .. Allocate memory dynamically .. -+ ALLOCATE ( A( MAXM, MAXM ), STAT = AllocateStatus ) -+ IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***" -+ ALLOCATE ( B( MAXN, MAXN ), STAT = AllocateStatus ) -+ IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***" -+ ALLOCATE ( C( MAXM, MAXN ), STAT = AllocateStatus ) -+ IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***" -+ ALLOCATE ( CC( MAXM, MAXN ), STAT = AllocateStatus ) -+ IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***" -+ ALLOCATE ( X( MAXM, MAXN ), STAT = AllocateStatus ) -+ IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***" -+ ALLOCATE ( SWORK( LDSWORK, 103 ), STAT = AllocateStatus ) -+ IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***" -+* .. - * .. Executable Statements .. - * - * Get machine parameters -@@ -286,6 +302,13 @@ - END DO - END DO - END DO -+* -+ DEALLOCATE (A, STAT = AllocateStatus) -+ DEALLOCATE (B, STAT = AllocateStatus) -+ DEALLOCATE (C, STAT = AllocateStatus) -+ DEALLOCATE (CC, STAT = AllocateStatus) -+ DEALLOCATE (X, STAT = AllocateStatus) -+ DEALLOCATE (SWORK, STAT = AllocateStatus) - * - RETURN - *