summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authormarcosmazz <nogomanohay@yahoo.com.ar>2022-07-12 10:44:02 -0300
committerGitHub <noreply@github.com>2022-07-12 15:44:02 +0200
commit9087224e04398f31d9545e260caab54eef184afa (patch)
tree539f86b7134a6c73db4bc41e67cd16f54f625369 /var
parent110a35a52017380d0b18269e00cdc42dcfc71982 (diff)
downloadspack-9087224e04398f31d9545e260caab54eef184afa.tar.gz
spack-9087224e04398f31d9545e260caab54eef184afa.tar.bz2
spack-9087224e04398f31d9545e260caab54eef184afa.tar.xz
spack-9087224e04398f31d9545e260caab54eef184afa.zip
OpenMX: add v3.9 (#31466)
Co-authored-by: Marcos Mazzini - <mmazzini@serafin.ccad.unc.edu.ar>
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/openmx/package.py44
1 files changed, 30 insertions, 14 deletions
diff --git a/var/spack/repos/builtin/packages/openmx/package.py b/var/spack/repos/builtin/packages/openmx/package.py
index 26b6efef66..66b70d6ff0 100644
--- a/var/spack/repos/builtin/packages/openmx/package.py
+++ b/var/spack/repos/builtin/packages/openmx/package.py
@@ -17,6 +17,7 @@ class Openmx(MakefilePackage):
homepage = "http://www.openmx-square.org/index.html"
url = "https://t-ozaki.issp.u-tokyo.ac.jp/openmx3.8.tar.gz"
+ version('3.9', sha256='27bb56bd4d1582d33ad32108fb239b546bdd1bdffd6f5b739b4423da1ab93ae2')
version('3.8', sha256='36ee10d8b1587b25a2ca1d57f110111be65c4fb4dc820e6d93e1ed2b562634a1')
resource(name='patch',
@@ -25,10 +26,15 @@ class Openmx(MakefilePackage):
placement='patch',
when='@3.8')
+ resource(name='patch',
+ url='http://www.openmx-square.org/bugfixed/21Oct17/patch3.9.9.tar.gz',
+ sha256='20cccc4e3412a814a53568f400260e90f79f0bfb7e2bed84447fe071b26edd38',
+ placement='patch',
+ when='@3.9')
+
depends_on('mpi')
- depends_on('fftw')
- depends_on('blas')
- depends_on('lapack')
+ depends_on('fftw-api@3')
+ depends_on('scalapack')
depends_on('sse2neon', when='target=aarch64:')
patch('for_aarch64.patch', when='@3.8 target=aarch64:')
@@ -41,6 +47,10 @@ class Openmx(MakefilePackage):
# Move contents to source/
# http://www.openmx-square.org/bugfixed/18June12/README.txt
copy_tree('patch', 'source')
+ # Move extra file for 3.9 patch
+ # http://www.openmx-square.org/bugfixed/21Oct17/README.txt
+ if spec.satisfies('@3.9'):
+ copy(join_path('source', 'kpoint.in'), 'work')
makefile = FileFilter('./source/makefile')
makefile.filter('^DESTDIR.*$', 'DESTDIR = {0}/bin'.format(prefix))
mkdirp(prefix.bin)
@@ -48,20 +58,27 @@ class Openmx(MakefilePackage):
@property
def common_arguments(self):
spec, common_option = self.spec, []
-
- lapack_blas_libs = spec['lapack'].libs + spec['blas'].libs
- lapack_blas_headers = spec['lapack'].headers + spec['blas'].headers
+ lapack_blas_libs = (
+ spec['lapack'].libs +
+ spec['blas'].libs +
+ spec['scalapack'].libs
+ )
cc_option = [
spec['mpi'].mpicc,
self.compiler.openmp_flag,
- spec['fftw'].headers.include_flags
+ spec['fftw-api'].headers.include_flags
]
fc_option = [spec['mpi'].mpifc]
lib_option = [
- spec['fftw'].libs.ld_flags,
+ spec['fftw-api'].libs.ld_flags,
lapack_blas_libs.ld_flags,
'-lmpi_mpifh'
]
+ if spec.satisfies('@3.8'):
+ cc_option.append('-I$(LIBERIDIR)')
+ if spec.satisfies('@3.9'):
+ lib_option.extend(['-lmpi_usempif08'])
+ lib_option.extend(['-lmpi_usempi_ignore_tkr'])
if '%fj' in spec:
common_option.append('-Dkcomp -Kfast')
@@ -69,12 +86,14 @@ class Openmx(MakefilePackage):
fc_option.append(self.compiler.openmp_flag)
else:
common_option.append('-O3')
- common_option.append(lapack_blas_headers.include_flags)
if '%gcc' in spec:
lib_option.append('-lgfortran')
+ if spec.satisfies('%gcc@10:'):
+ fc_option.append('-fallow-argument-mismatch')
+ cc_option.append('-fcommon')
return [
- 'CC={0} {1} -I$(LIBERIDIR)'.format(
+ 'CC={0} -Dscalapack {1} '.format(
' '.join(cc_option), ' '.join(common_option)
),
'FC={0} {1}'.format(' '.join(fc_option), ' '.join(common_option)),
@@ -83,10 +102,7 @@ class Openmx(MakefilePackage):
@property
def build_targets(self):
- return [
- 'openmx', 'DosMain', 'jx', 'analysis_example', 'esp', 'polB',
- 'bandgnu13', 'bin2txt', 'cube2xsf', 'intensity_map', 'md2axsf'
- ] + self.common_arguments
+ return ['all'] + self.common_arguments
@property
def install_targets(self):