abinit: fix detection of Fujitsu compiler (#22239)

This commit is contained in:
m-shunji 2021-03-19 21:27:31 +09:00 committed by GitHub
parent 43f4d2da99
commit 020c60649e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 158 additions and 31 deletions

View file

@ -1,7 +1,38 @@
diff -uprN spack-src.org/configure spack-src/configure
--- spack-src.org/configure 2019-01-17 20:37:58.000000000 +0900
+++ spack-src/configure 2021-02-26 09:01:06.656123015 +0900
@@ -14655,6 +14655,7 @@ $as_echo "$as_me:${as_lineno-$LINENO}: $
--- spack-src.org/configure 2021-03-11 13:52:52.000000000 +0900
+++ spack-src/configure 2021-03-11 14:14:36.000000000 +0900
@@ -14183,7 +14183,10 @@ $as_echo "#define FC_OPEN64 1" >>confdef
fc_info_string=`${FC} -V 2>/dev/null | head -n 1`
- abi_result=`echo "${fc_info_string}" | grep '^Fujitsu Fortran'`
+ if test "${fc_info_string}" = ""; then
+ fc_info_string=`${FC} -V 2>&1 | head -n 1`
+ fi
+ abi_result=`echo "${fc_info_string}" | grep 'Fujitsu Fortran'`
if test "${abi_result}" = ""; then
abi_result="no"
fc_info_string=""
@@ -14194,9 +14197,17 @@ $as_echo "#define FC_OPEN64 1" >>confdef
$as_echo "#define FC_FUJITSU 1" >>confdefs.h
abi_fc_vendor="fujitsu"
- abi_fc_version=`echo "${abi_result}" | sed -e 's/.*Driver //;s/ .*//'`
+ abi_fc_version=`echo "${abi_result}" | sed -e 's/.*Driver //'`
if test "${abi_fc_version}" = "${abi_result}"; then
abi_fc_version="unknown"
+ else
+ abi_fc_version=`echo "${abi_result}" | sed -e 's/.*Driver //;s/ .*//'`
+ fi
+ if test "${abi_fc_version}" = "unknown"; then
+ abi_fc_version=`echo "${abi_result}" | sed -e 's/.*Compiler //;s/ .*//'`
+ if test "${abi_fc_version}" = "${abi_result}"; then
+ abi_fc_version="unknown"
+ fi
fi
abi_result="yes"
fi
@@ -14655,6 +14666,7 @@ $as_echo "$as_me:${as_lineno-$LINENO}: $
# gfortran 4.3 outputs lines setting COLLECT_GCC_OPTIONS, COMPILER_PATH,
# LIBRARY_PATH; skip all such settings.
ac_fc_v_output=`eval $ac_link 5>&1 2>&1 |
@ -9,9 +40,104 @@ diff -uprN spack-src.org/configure spack-src/configure
sed '/^Driving:/d; /^Configured with:/d;
'"/^[_$as_cr_Letters][_$as_cr_alnum]*=/d"`
$as_echo "$ac_fc_v_output" >&5
@@ -16392,15 +16404,29 @@ $as_echo_n "checking which fc hints to a
;;
fujitsu)
abi_fc_vendor_hnt="fujitsu"
- abi_fc_version_hnt="default"
abi_sys_spec_hnt="default"
- FCFLAGS_FIXEDFORM='-Fixed -X7'
- FCFLAGS_FREEFORM='-Free -X9'
- FCFLAGS_MODDIR='-M $(abinit_moddir)'
- FCFLAGS_HINTS='-Am -Ee -Ep'
- abi_fc_wrap='yes'
- FCFLAGS_OPENMP='--openmp'
- FCFLAGS_PIC='-K PIC'
+ case "${abi_fc_version}" in
+ 4.[0-9]*)
+ abi_fc_version_hnt="4.x"
+ FCFLAGS_FIXEDFORM='-Fixed -X7'
+ FCFLAGS_FREEFORM='-Free -X9'
+ FCFLAGS_MODDIR='-M $(abinit_moddir)'
+ FCFLAGS_HINTS=''
+ abi_fc_wrap='no'
+ FCFLAGS_OPENMP='-Kopenmp'
+ FCFLAGS_PIC='-K PIC'
+ ;;
+ *)
+ abi_fc_version_hnt="default"
+ FCFLAGS_FIXEDFORM='-Fixed -X7'
+ FCFLAGS_FREEFORM='-Free -X9'
+ FCFLAGS_MODDIR='-M $(abinit_moddir)'
+ FCFLAGS_HINTS='-Am -Ee -Ep'
+ abi_fc_wrap='yes'
+ FCFLAGS_OPENMP='--openmp'
+ FCFLAGS_PIC='-K PIC'
+ ;;
+ esac # [case: abi_fc_version, indent: 2, item: True]
;;
pathscale)
abi_fc_vendor_hnt="pathscale"
@@ -18085,22 +18111,43 @@ $as_echo_n "checking which fc optimizati
;;
fujitsu)
abi_fc_vendor_opt="fujitsu"
- abi_fc_version_opt="default"
abi_cpu_spec_opt="default"
- case "${enable_optim}" in
- aggressive)
- enable_optim_opt="aggressive"
- FCFLAGS_OPTIM="-Of -X9 -Ps -Wv,-md"
- ;;
- safe)
- enable_optim_opt="safe"
- FCFLAGS_OPTIM="-Of -X9 -Ps -Wv,-md"
+ case "${abi_fc_version}" in
+ 4.[0-9]*)
+ abi_fc_version_opt="4.x"
+ case "${enable_optim}" in
+ aggressive)
+ enable_optim_opt="aggressive"
+ FCFLAGS_OPTIM="-Kfast -Koptmsg=2 -Nlst=t"
+ ;;
+ safe)
+ enable_optim_opt="safe"
+ FCFLAGS_OPTIM="-O2 -Koptmsg=2 -Nlst=t"
+ ;;
+ standard)
+ enable_optim_opt="standard"
+ FCFLAGS_OPTIM="-O2 -Koptmsg=2 -Nlst=t"
+ ;;
+ esac # [case: enable_optim, indent: 4, item: True]
;;
- standard)
- enable_optim_opt="standard"
- FCFLAGS_OPTIM="-Of -X9 -Ps -Wv,-md"
+ *)
+ abi_fc_version_opt="default"
+ case "${enable_optim}" in
+ aggressive)
+ enable_optim_opt="aggressive"
+ FCFLAGS_OPTIM="-Of -X9 -Ps -Wv,-md"
+ ;;
+ safe)
+ enable_optim_opt="safe"
+ FCFLAGS_OPTIM="-Of -X9 -Ps -Wv,-md"
+ ;;
+ standard)
+ enable_optim_opt="standard"
+ FCFLAGS_OPTIM="-Of -X9 -Ps -Wv,-md"
+ ;;
+ esac # [case: enable_optim, indent: 4, item: True]
;;
- esac # [case: enable_optim, indent: 2, item: True]
+ esac # [case: abi_fc_version, indent: 2, item: True]
;;
pathscale)
abi_fc_vendor_opt="pathscale"
diff -uprN spack-src.org/src/43_wvl_wrappers/m_abi2big.F90 spack-src/src/43_wvl_wrappers/m_abi2big.F90
--- spack-src.org/src/43_wvl_wrappers/m_abi2big.F90 2019-01-17 20:49:35.000000000 +0900
+++ spack-src/src/43_wvl_wrappers/m_abi2big.F90 2021-02-26 09:01:06.657122997 +0900
--- spack-src.org/src/43_wvl_wrappers/m_abi2big.F90 2021-03-11 13:52:54.000000000 +0900
+++ spack-src/src/43_wvl_wrappers/m_abi2big.F90 2021-03-11 14:06:53.000000000 +0900
@@ -1333,10 +1333,10 @@ subroutine wvl_setngfft(me_wvl, mgfft, n
!Arguments ------------------------------------
@ -26,8 +152,8 @@ diff -uprN spack-src.org/src/43_wvl_wrappers/m_abi2big.F90 spack-src/src/43_wvl_
!Local variables-------------------------------
!scalars
diff -uprN spack-src.org/src/43_wvl_wrappers/m_wvl_denspot.F90 spack-src/src/43_wvl_wrappers/m_wvl_denspot.F90
--- spack-src.org/src/43_wvl_wrappers/m_wvl_denspot.F90 2019-01-17 20:49:32.000000000 +0900
+++ spack-src/src/43_wvl_wrappers/m_wvl_denspot.F90 2021-02-26 09:01:06.657122997 +0900
--- spack-src.org/src/43_wvl_wrappers/m_wvl_denspot.F90 2021-03-11 13:52:54.000000000 +0900
+++ spack-src/src/43_wvl_wrappers/m_wvl_denspot.F90 2021-03-11 14:06:53.000000000 +0900
@@ -96,7 +96,7 @@ subroutine wvl_denspot_set(den,gth_param
real(dp), intent(in) :: rprimd(3, 3)
real(dp), intent(in) :: wvl_frmult,wvl_crmult
@ -38,8 +164,8 @@ diff -uprN spack-src.org/src/43_wvl_wrappers/m_wvl_denspot.F90 spack-src/src/43_
type(pseudopotential_gth_type),intent(in)::gth_params
diff -uprN spack-src.org/src/43_wvl_wrappers/m_wvl_wfs.F90 spack-src/src/43_wvl_wrappers/m_wvl_wfs.F90
--- spack-src.org/src/43_wvl_wrappers/m_wvl_wfs.F90 2019-01-17 20:49:33.000000000 +0900
+++ spack-src/src/43_wvl_wrappers/m_wvl_wfs.F90 2021-02-26 09:01:06.657122997 +0900
--- spack-src.org/src/43_wvl_wrappers/m_wvl_wfs.F90 2021-03-11 13:52:54.000000000 +0900
+++ spack-src/src/43_wvl_wrappers/m_wvl_wfs.F90 2021-03-11 14:06:53.000000000 +0900
@@ -103,7 +103,7 @@ subroutine wvl_wfs_set(alphadiis, spinma
integer, intent(in) :: natom, nkpt, nsppol, nspinor, nband, nwfshist,me,nproc
real(dp), intent(in) :: spinmagntarget, wvl_crmult, wvl_frmult, alphadiis
@ -50,8 +176,8 @@ diff -uprN spack-src.org/src/43_wvl_wrappers/m_wvl_wfs.F90 spack-src/src/43_wvl_
!arrays
real(dp), intent(in) :: kpt(3,nkpt)
diff -uprN spack-src.org/src/52_fft_mpi_noabirule/m_fftw3.F90 spack-src/src/52_fft_mpi_noabirule/m_fftw3.F90
--- spack-src.org/src/52_fft_mpi_noabirule/m_fftw3.F90 2019-01-17 20:49:35.000000000 +0900
+++ spack-src/src/52_fft_mpi_noabirule/m_fftw3.F90 2021-02-26 09:01:06.658122980 +0900
--- spack-src.org/src/52_fft_mpi_noabirule/m_fftw3.F90 2021-03-11 13:52:52.000000000 +0900
+++ spack-src/src/52_fft_mpi_noabirule/m_fftw3.F90 2021-03-11 14:06:53.000000000 +0900
@@ -4588,7 +4588,7 @@ subroutine fftw3_mpiback_wf(cplexwf,ndat
integer,intent(in) :: cplexwf,ndat,n1,n2,n3,nd1,nd2,nd3proc
integer,intent(in) :: max1,max2,max3,m1,m2,m3,md1,md2proc,md3,comm_fft
@ -107,8 +233,8 @@ diff -uprN spack-src.org/src/52_fft_mpi_noabirule/m_fftw3.F90 spack-src/src/52_f
!Local variables-------------------------------
!scalars
diff -uprN spack-src.org/src/62_poisson/m_psolver.F90 spack-src/src/62_poisson/m_psolver.F90
--- spack-src.org/src/62_poisson/m_psolver.F90 2019-01-17 20:49:26.000000000 +0900
+++ spack-src/src/62_poisson/m_psolver.F90 2021-02-26 09:01:06.659122963 +0900
--- spack-src.org/src/62_poisson/m_psolver.F90 2021-03-11 13:52:55.000000000 +0900
+++ spack-src/src/62_poisson/m_psolver.F90 2021-03-11 14:06:53.000000000 +0900
@@ -118,7 +118,7 @@ subroutine psolver_rhohxc(enhartr, enxc,
integer,intent(in) :: usexcnhat,usepaw,xclevel
real(dp),intent(in) :: rprimd(3,3)
@ -145,8 +271,8 @@ diff -uprN spack-src.org/src/62_poisson/m_psolver.F90 spack-src/src/62_poisson/m
!Local variables-------------------------------
#if defined HAVE_BIGDFT
diff -uprN spack-src.org/src/62_wvl_wfs/m_wvl_psi.F90 spack-src/src/62_wvl_wfs/m_wvl_psi.F90
--- spack-src.org/src/62_wvl_wfs/m_wvl_psi.F90 2019-01-17 20:49:14.000000000 +0900
+++ spack-src/src/62_wvl_wfs/m_wvl_psi.F90 2021-02-26 09:01:06.659122963 +0900
--- spack-src.org/src/62_wvl_wfs/m_wvl_psi.F90 2021-03-11 13:52:54.000000000 +0900
+++ spack-src/src/62_wvl_wfs/m_wvl_psi.F90 2021-03-11 14:06:53.000000000 +0900
@@ -248,16 +248,16 @@ subroutine wvl_psitohpsi(alphamix,eexctX
!scalars
integer, intent(in) :: me, nproc, itrp, iter, iscf, natom, nfft, nspden
@ -177,9 +303,21 @@ diff -uprN spack-src.org/src/62_wvl_wfs/m_wvl_psi.F90 spack-src/src/62_wvl_wfs/m
type(MPI_type),intent(in) :: mpi_enreg
type(dataset_type),intent(in) :: dtset
type(energies_type),intent(inout) :: energies
diff -uprN spack-src.org/src/67_common/m_mklocl_realspace.F90 spack-src/src/67_common/m_mklocl_realspace.F90
--- spack-src.org/src/67_common/m_mklocl_realspace.F90 2021-03-11 13:52:53.000000000 +0900
+++ spack-src/src/67_common/m_mklocl_realspace.F90 2021-03-11 14:06:53.000000000 +0900
@@ -1703,7 +1703,7 @@ subroutine local_forces_wvl(iproc,natom,
!arrays
real(dp),intent(in) :: rxyz(3,natom)
real(dp),dimension(*),intent(in) :: rho,pot
- real(dp),intent(out) :: floc(3,natom)
+ real(dp),intent(inout) :: floc(3,natom)
!Local variables -------------------------
#if defined HAVE_BIGDFT
diff -uprN spack-src.org/src/67_common/mkcore_wvl.F90 spack-src/src/67_common/mkcore_wvl.F90
--- spack-src.org/src/67_common/mkcore_wvl.F90 2019-01-17 20:49:30.000000000 +0900
+++ spack-src/src/67_common/mkcore_wvl.F90 2021-02-26 09:01:06.660122945 +0900
--- spack-src.org/src/67_common/mkcore_wvl.F90 2021-03-11 13:52:53.000000000 +0900
+++ spack-src/src/67_common/mkcore_wvl.F90 2021-03-11 14:06:53.000000000 +0900
@@ -138,7 +138,7 @@ subroutine mkcore_wvl(atindx1,corstr,grx
integer,intent(in) :: atindx1(natom),nattyp(ntypat)
real(dp),intent(in) :: rprimd(3,3),xccc1d(n1xccc,6,ntypat),xcccrc(ntypat),xred(3,natom)
@ -200,21 +338,9 @@ diff -uprN spack-src.org/src/67_common/mkcore_wvl.F90 spack-src/src/67_common/mk
type(pawtab_type),intent(in) :: pawtab(ntypat)
type(pawrad_type),intent(in) :: pawrad(ntypat)
diff -uprN spack-src.org/src/67_common/m_mklocl_realspace.F90 spack-src/src/67_common/m_mklocl_realspace.F90
--- spack-src.org/src/67_common/m_mklocl_realspace.F90 2019-01-17 20:49:35.000000000 +0900
+++ spack-src/src/67_common/m_mklocl_realspace.F90 2021-02-26 09:01:06.659122963 +0900
@@ -1703,7 +1703,7 @@ subroutine local_forces_wvl(iproc,natom,
!arrays
real(dp),intent(in) :: rxyz(3,natom)
real(dp),dimension(*),intent(in) :: rho,pot
- real(dp),intent(out) :: floc(3,natom)
+ real(dp),intent(inout) :: floc(3,natom)
!Local variables -------------------------
#if defined HAVE_BIGDFT
diff -uprN spack-src.org/src/98_main/abinit.F90 spack-src/src/98_main/abinit.F90
--- spack-src.org/src/98_main/abinit.F90 2019-01-17 20:49:35.000000000 +0900
+++ spack-src/src/98_main/abinit.F90 2021-02-26 09:01:06.660122945 +0900
--- spack-src.org/src/98_main/abinit.F90 2021-03-11 13:52:55.000000000 +0900
+++ spack-src/src/98_main/abinit.F90 2021-03-11 14:06:53.000000000 +0900
@@ -261,7 +261,7 @@ program abinit
open(unit=ab_out,file=filnam(2),form='formatted',status='new', action="write", iomsg=message, iostat=ios)
#endif

View file

@ -96,6 +96,7 @@ class Abinit(AutotoolsPackage):
patch('rm_march_settings.patch')
# Fix detection of Fujitsu compiler
# Fix configure not to collect the option that causes an error
# Fix intent(out) and unnecessary rewind to avoid compile error
patch('fix_for_fujitsu.patch', when='%fj')