Merge pull request #173333 from veprbl/pr/xfitter_fix

xfitter: fix for gfortran10+
This commit is contained in:
Robert Scott 2022-05-17 23:02:47 +01:00 committed by GitHub
commit 39369610f8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 54 additions and 4 deletions

View File

@ -0,0 +1,50 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -54,21 +54,7 @@ endif()
endif()
#Use c preprocessor with fortran
-
-if(UNIX AND NOT APPLE)
- set(CMAKE_Fortran_FLAGS "-cpp -Wno-argument-mismatch")
-endif()
-
-if(APPLE)
- set(CMAKE_Fortran_FLAGS "-cpp -fallow-argument-mismatch")
-endif()
-
-
-if (CMAKE_MAJOR_VERSION VERSION_GREATER_EQUAL "3")
-if(CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER_EQUAL "10")
- set(CMAKE_Fortran_FLAGS "-cpp -fallow-argument-mismatch")
-endif()
-endif()
+set(CMAKE_Fortran_FLAGS "-cpp")
#For Fortran
diff --git a/src/GetChisquare.f b/src/GetChisquare.f
index b21413fe..28391bcb 100644
--- a/src/GetChisquare.f
+++ b/src/GetChisquare.f
@@ -2418,8 +2418,8 @@ C> @Brief Interface to lapack, to dynamically allocate work arrays
integer NCovar, NDimCovar
double precision Covar(NDimCovar,NDimCovar), EigenValues(NCovar)
integer IFail
- double precision Work
- integer IWork
+ double precision Work(1)
+ integer IWork(1)
Character*80 msg
C---------------------------------------------------------------
C Determine optimal size of the work array:
@@ -2432,7 +2432,7 @@ C Determine optimal size of the work array:
$ int(work)+1, iwork
call HF_ERRLOG(14121701,msg)
call MyDSYEVD2(NCovar,Covar,NDimCovar, EigenValues,
- $ int(work)+1,iwork,ifail)
+ $ int(work(1))+1,iwork(1),ifail)
end

View File

@ -31,10 +31,10 @@ stdenv.mkDerivation rec {
sha256 = "sha256-ZHIQ5hOY+k0/wmpE0o4Po+RZ4MkVMk+bK1Rc6eqwwH0=";
};
preConfigure = ''
substituteInPlace CMakeLists.txt \
--replace "-fallow-argument-mismatch" ""
'';
patches = [
# Avoid need for -fallow-argument-mismatch
./0001-src-GetChisquare.f-use-correct-types-in-calls-to-DSY.patch
];
nativeBuildInputs = [ cmake gfortran pkg-config ];
buildInputs =