From 25d214cdf475a4e1ac16bbf747226fee74a6dd3c Mon Sep 17 00:00:00 2001
From: Alex Richert <alexander.richert@noaa.gov>
Date: Wed, 31 Jan 2024 14:48:46 -0800
Subject: [PATCH] u

---
 .github/workflows/Intel.yml |   2 +-
 CMakeLists.txt              |   2 +-
 src/lapack_gen.F            | 116 ------------------------------------
 3 files changed, 2 insertions(+), 118 deletions(-)
 delete mode 100644 src/lapack_gen.F

diff --git a/.github/workflows/Intel.yml b/.github/workflows/Intel.yml
index a3ffd009..2c08edeb 100644
--- a/.github/workflows/Intel.yml
+++ b/.github/workflows/Intel.yml
@@ -37,7 +37,7 @@ jobs:
         rm GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
         echo "deb https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
         sudo apt-get update
-        sudo apt-get install intel-oneapi-openmp intel-oneapi-compiler-fortran-2023.2.1 intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-2023.2.1 intel-oneapi-mkl-devel-2023.2.1
+        sudo apt-get install intel-oneapi-openmp intel-oneapi-compiler-fortran-2023.2.1 intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-2023.2.1 intel-oneapi-mkl-devel-2023.2.0
         echo "source /opt/intel/oneapi/setvars.sh" >> ~/.bash_profile
 
     - name: checkout
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d6ff8087..ce09db9c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -50,7 +50,7 @@ if(OPENMP)
 endif()
 
 if(CMAKE_Fortran_COMPILER_ID MATCHES "^(Intel|IntelLLVM)$")
-  set(BLA_VENDOR Intel)
+  set(BLA_VENDOR Intel10_64lp_seq)
 endif()
 find_package(LAPACK)
 
diff --git a/src/lapack_gen.F b/src/lapack_gen.F
deleted file mode 100644
index 36db1e46..00000000
--- a/src/lapack_gen.F
+++ /dev/null
@@ -1,116 +0,0 @@
-C> @file
-C> @brief Two Numerical Recipes routines for matrix inversion From Numerical Recipes.
-C>      
-C> ### Program History Log
-C> Date | Programmer | Comments
-C> -----|------------|---------
-C> 2012-11-05 | E.Mirvis | separated this generic LU from the splat.F
-
-C> Solves a system of linear equations, follows call to ludcmp().
-C>
-C> @param A
-C> @param N
-C> @param NP
-C> @param INDX
-C> @param B
-      SUBROUTINE LUBKSB(A,N,NP,INDX,B)
-      REAL A(NP,NP),B(N)
-      INTEGER INDX(N)
-      II=0  
-      DO 12 I=1,N
-        LL=INDX(I)
-        SUM=B(LL)
-        B(LL)=B(I)
-        IF (II.NE.0)THEN
-          DO 11 J=II,I-1
-            SUM=SUM-A(I,J)*B(J)
-   11     CONTINUE
-        ELSE IF (SUM.NE.0.) THEN
-          II=I
-        ENDIF
-        B(I)=SUM
-   12 CONTINUE
-      DO 14 I=N,1,-1  
-        SUM=B(I)
-        IF(I.LT.N)THEN
-          DO 13 J=I+1,N
-            SUM=SUM-A(I,J)*B(J)
-   13 CONTINUE
-        ENDIF
-        B(I)=SUM/A(I,I)
-   14 CONTINUE
-      RETURN
-      END
-
-C> Replaces an NxN matrix a with the LU decomposition.
-C>
-C> @param A
-C> @param N
-C> @param NP
-C> @param INDX
-      SUBROUTINE LUDCMP(A,N,NP,INDX)
-C      PARAMETER (NMAX=400,TINY=1.0E-20)
-      PARAMETER (TINY=1.0E-20)
-C==EM==^^^
-C
-      REAL A(NP,NP),VV(N),D
-C     REAL A(NP,NP),VV(NMAX),D
-C==EM==^^^
-      INTEGER INDX(N)
-      D=1.  
-      DO 12 I=1,N
-        AAMAX=0.
-        DO 11 J=1,N
-          IF (ABS(A(I,J)).GT.AAMAX) AAMAX=ABS(A(I,J))
-   11   CONTINUE
-        IF (AAMAX.EQ.0.) print *, 'SINGULAR MATRIX.'
-        VV(I)=1./AAMAX
-   12 CONTINUE
-      DO 19 J=1,N
-        IF (J.GT.1) THEN
-          DO 14 I=1,J-1
-            SUM=A(I,J)
-            IF (I.GT.1)THEN
-              DO 13 K=1,I-1
-                SUM=SUM-A(I,K)*A(K,J)
-   13         CONTINUE
-              A(I,J)=SUM
-            ENDIF
-   14     CONTINUE
-        ENDIF
-        AAMAX=0.
-        DO 16 I=J,N
-          SUM=A(I,J)
-          IF (J.GT.1)THEN
-            DO 15 K=1,J-1
-              SUM=SUM-A(I,K)*A(K,J)
-   15       CONTINUE  
-            A(I,J)=SUM
-          ENDIF
-          DUM=VV(I)*ABS(SUM)
-          IF (DUM.GE.AAMAX) THEN
-            IMAX=I
-            AAMAX=DUM
-          ENDIF
-   16   CONTINUE
-        IF (J.NE.IMAX)THEN
-          DO 17 K=1,N
-            DUM=A(IMAX,K)
-            A(IMAX,K)=A(J,K)
-            A(J,K)=DUM
-   17     CONTINUE
-          D=-D
-          VV(IMAX)=VV(J)
-        ENDIF
-        INDX(J)=IMAX
-        IF(J.NE.N)THEN
-          IF(A(J,J).EQ.0.)A(J,J)=TINY
-          DUM=1./A(J,J)
-          DO 18 I=J+1,N
-            A(I,J)=A(I,J)*DUM
-   18     CONTINUE
-        ENDIF
-   19 CONTINUE
-      IF(A(N,N).EQ.0.)A(N,N)=TINY
-      RETURN
-      END