From cccd1ce376345d5bcd187dcb637895ccb92ae5d6 Mon Sep 17 00:00:00 2001 From: Toyohisa Kameyama Date: Sat, 5 Feb 2022 04:50:55 +0900 Subject: atompaw: use autotoolsPackage and support Fujitsu compiler. (#28471) * atompaw: use autotoolsPackage and support Fujitsu compiler. --- .../atompaw/atompaw-4.1.1.0-fix-fujitsu.patch | 40 ++++++++++++++++++++++ .../repos/builtin/packages/atompaw/package.py | 24 +++++++------ 2 files changed, 54 insertions(+), 10 deletions(-) create mode 100644 var/spack/repos/builtin/packages/atompaw/atompaw-4.1.1.0-fix-fujitsu.patch (limited to 'var') diff --git a/var/spack/repos/builtin/packages/atompaw/atompaw-4.1.1.0-fix-fujitsu.patch b/var/spack/repos/builtin/packages/atompaw/atompaw-4.1.1.0-fix-fujitsu.patch new file mode 100644 index 0000000000..e2a8d19198 --- /dev/null +++ b/var/spack/repos/builtin/packages/atompaw/atompaw-4.1.1.0-fix-fujitsu.patch @@ -0,0 +1,40 @@ +--- spack-src/src/io_tools.F90 2021-10-08 13:30:58.000000000 +0900 ++++ spack-src/src/io_tools.F90.new 2021-10-08 13:30:30.000000000 +0900 +@@ -12,6 +12,9 @@ + #if defined (__INTEL_COMPILER) + USE IFPORT + #endif ++#if defined(__FUJITSU) ++use service_routines ++#endif + IMPLICIT NONE + + PRIVATE +--- spack-src/src/excor.F90 2021-10-08 16:04:49.000000000 +0900 ++++ spack-src/src/excor.F90.new 2021-10-08 16:12:28.000000000 +0900 +@@ -11,6 +11,9 @@ + + MODULE excor + ++#if defined(__FUJITSU) ++ USE, intrinsic :: ieee_arithmetic ++#endif + USE io_tools + USE Tools + USE globalmath +@@ -589,8 +592,15 @@ + deallocate(grad,gradmag,gxc,dgxcdr,dfxcdgbg) + ! not sure why/if this is needed + do i=1,n ++#if defined(__FUJITSU) ++ if (ieee_support_nan(tmpv(i))) then ++ if (ieee_is_nan(tmpv(i))) tmpv(i)=0.d0 ++ if (ieee_is_nan(exci(i))) exci(i)=0.d0 ++ endif ++#else + if (isnan(tmpv(i))) tmpv(i)=0.d0 + if (isnan(exci(i))) exci(i)=0.d0 ++#endif + enddo + elseif (libxc_ismgga()) then + write(std_out,*) ' atompaw not yet available for mgga -- stop ' diff --git a/var/spack/repos/builtin/packages/atompaw/package.py b/var/spack/repos/builtin/packages/atompaw/package.py index 784551cb02..9fcc2bb56d 100644 --- a/var/spack/repos/builtin/packages/atompaw/package.py +++ b/var/spack/repos/builtin/packages/atompaw/package.py @@ -7,7 +7,7 @@ from spack import * -class Atompaw(Package): +class Atompaw(AutotoolsPackage): """A Projector Augmented Wave (PAW) code for generating atom-centered functions. @@ -30,19 +30,23 @@ class Atompaw(Package): depends_on('libxc@:2', when='@:4.0') patch('atompaw-4.1.1.0-fix-ifort.patch', when='@4.1.1.0:') + patch('atompaw-4.1.1.0-fix-fujitsu.patch', when='@4.1.1.0 %fj') - def install(self, spec, prefix): - options = ['--prefix=%s' % prefix] + parallel = False + def flag_handler(self, name, flags): + if self.spec.satisfies('%fj') and name == 'fflags': + opt_flag_found = any(f in self.compiler.opt_flags for f in flags) + if not opt_flag_found: + flags.append('-Kfast') + return (flags, None, None) + + def configure_args(self): + spec = self.spec linalg = spec['lapack'].libs + spec['blas'].libs - options.extend([ + return [ "--with-linalg-libs=%s" % linalg.ld_flags, "--enable-libxc", "--with-libxc-incs=-I%s" % spec["libxc"].prefix.include, "--with-libxc-libs=-L%s -lxcf90 -lxc" % spec["libxc"].prefix.lib, - ]) - - configure(*options) - make(parallel=False) # parallel build fails - make("check") - make("install") + ] -- cgit v1.2.3-60-g2f50