Merge branch 'develop' of https://github.com/LLNL/spack into features/install_with_phases_rebase

This commit is contained in:
alalazo 2016-10-23 13:35:12 +02:00
commit ebbbed166e
46 changed files with 567 additions and 8448 deletions

View File

@ -526,32 +526,57 @@ in the package. For example, Spack is smart enough to download
version ``8.2.1.`` of the ``Foo`` package above from
``http://example.com/foo-8.2.1.tar.gz``.
If spack *cannot* extrapolate the URL from the ``url`` field by
default, you can write your own URL generation algorithm in place of
the ``url`` declaration. For example:
If the URL is particularly complicated or changes based on the release,
you can override the default URL generation algorithm by defining your
own ``url_for_version()`` function. For example, the developers of HDF5
keep changing the archive layout, so the ``url_for_version()`` function
looks like:
.. code-block:: python
:linenos:
.. literalinclude:: ../../../var/spack/repos/builtin/packages/hdf5/package.py
:pyobject: Hdf5.url_for_version
class Foo(Package):
version('8.2.1', '4136d7b4c04df68b686570afa26988ac')
...
def url_for_version(self, version):
return 'http://example.com/version_%s/foo-%s.tar.gz' \
% (version, version)
...
With the use of this ``url_for_version()``, Spack knows to download HDF5 ``1.8.16``
from ``http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8.16/src/hdf5-1.8.16.tar.gz``
but download HDF5 ``1.10.0`` from ``http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.0/src/hdf5-1.10.0.tar.gz``.
If a URL cannot be derived systematically, you can add an explicit URL
for a particular version:
You'll notice that HDF5's ``url_for_version()`` function makes use of a special
``Version`` function called ``up_to()``. When you call ``version.up_to(2)`` on a
version like ``1.10.0``, it returns ``1.10``. ``version.up_to(1)`` would return
``1``. This can be very useful for packages that place all ``X.Y.*`` versions in
a single directory and then places all ``X.Y.Z`` versions in a subdirectory.
There are a few ``Version`` properties you should be aware of. We generally
prefer numeric versions to be separated by dots for uniformity, but not all
tarballs are named that way. For example, ``icu4c`` separates its major and minor
versions with underscores, like ``icu4c-57_1-src.tgz``. The value ``57_1`` can be
obtained with the use of the ``version.underscored`` property. Note that Python
properties don't need parentheses. There are other separator properties as well:
=================== ======
Property Result
=================== ======
version.dotted 1.2.3
version.dashed 1-2-3
version.underscored 1_2_3
version.joined 123
=================== ======
.. note::
Python properties don't need parentheses. ``version.dashed`` is correct.
``version.dashed()`` is incorrect.
If a URL cannot be derived systematically, or there is a special URL for one
of its versions, you can add an explicit URL for a particular version:
.. code-block:: python
version('8.2.1', '4136d7b4c04df68b686570afa26988ac',
url='http://example.com/foo-8.2.1-special-version.tar.gz')
For the URL above, you might have to add an explicit URL because the
version can't simply be substituted in the original ``url`` to
construct the new one for ``8.2.1``.
This is common for Python packages that download from PyPi. Since newer
download URLs often contain a unique hash for each version, there is no
way to guess the URL systematically.
When you supply a custom URL for a version, Spack uses that URL
*verbatim* and does not perform extrapolation.

7
lib/spack/env/cc vendored
View File

@ -317,13 +317,6 @@ case "$mode" in
args=("${args[@]}" ${SPACK_LDLIBS[@]}) ;;
esac
#
# Unset pesky environment variables that could affect build sanity.
#
unset LD_LIBRARY_PATH
unset LD_RUN_PATH
unset DYLD_LIBRARY_PATH
full_command=("$command" "${args[@]}")
# In test command mode, write out full command for Spack tests.

View File

@ -95,7 +95,11 @@ def cmp_externals(a, b):
not b.external and b.external_module):
# We're choosing between different providers, so
# maintain order from provider sort
return candidates.index(a) - candidates.index(b)
index_of_a = next(i for i in range(0, len(candidates))
if a.satisfies(candidates[i]))
index_of_b = next(i for i in range(0, len(candidates))
if b.satisfies(candidates[i]))
return index_of_a - index_of_b
result = cmp_specs(a, b)
if result != 0:

View File

@ -259,7 +259,7 @@ def provides(pkg, *specs, **kwargs):
@directive('patches')
def patch(pkg, url_or_filename, level=1, when=None):
def patch(pkg, url_or_filename, level=1, when=None, **kwargs):
"""Packages can declare patches to apply to source. You can
optionally provide a when spec to indicate that a particular
patch should only be applied when the package's spec meets
@ -271,7 +271,7 @@ def patch(pkg, url_or_filename, level=1, when=None):
cur_patches = pkg.patches.setdefault(when_spec, [])
# if this spec is identical to some other, then append this
# patch to the existing list.
cur_patches.append(Patch(pkg, url_or_filename, level))
cur_patches.append(Patch.create(pkg, url_or_filename, level, **kwargs))
@directive('variants')

View File

@ -286,6 +286,8 @@ def expand(self):
"URLFetchStrategy couldn't find archive file",
"Failed on expand() for URL %s" % self.url)
if not self.extension:
self.extension = extension(self.archive_file)
decompress = decompressor_for(self.archive_file, self.extension)
# Expand all tarballs in their own directory to contain
@ -313,7 +315,8 @@ def expand(self):
shutil.move(os.path.join(tarball_container, f),
os.path.join(self.stage.path, f))
os.rmdir(tarball_container)
if not files:
os.rmdir(tarball_container)
# Set the wd back to the stage when done.
self.stage.chdir()

View File

@ -24,62 +24,106 @@
##############################################################################
import os
from llnl.util.filesystem import join_path
import spack
import spack.stage
import spack.error
import spack.stage
import spack.fetch_strategy as fs
from llnl.util.filesystem import join_path
from spack.util.executable import which
# Patch tool for patching archives.
_patch = which("patch", required=True)
class Patch(object):
"""This class describes a patch to be applied to some expanded
source code."""
"""Base class to describe a patch that needs to be applied to some
expanded source code.
"""
@staticmethod
def create(pkg, path_or_url, level, **kwargs):
"""
Factory method that creates an instance of some class derived from
Patch
Args:
pkg: package that needs to be patched
path_or_url: path or url where the patch is found
level: patch level
Returns:
instance of some Patch class
"""
# Check if we are dealing with a URL
if '://' in path_or_url:
return UrlPatch(pkg, path_or_url, level, **kwargs)
# Assume patches are stored in the repository
return FilePatch(pkg, path_or_url, level)
def __init__(self, pkg, path_or_url, level):
self.pkg_name = pkg.name
# Check on level (must be an integer > 0)
if not isinstance(level, int) or not level >= 0:
raise ValueError("Patch level needs to be a non-negative integer.")
# Attributes shared by all patch subclasses
self.path_or_url = path_or_url
self.path = None
self.url = None
self.level = level
# self.path needs to be computed by derived classes
# before a call to apply
self.path = None
if not isinstance(self.level, int) or not self.level >= 0:
raise ValueError("Patch level needs to be a non-negative integer.")
if '://' in path_or_url:
self.url = path_or_url
else:
pkg_dir = spack.repo.dirname_for_package_name(self.pkg_name)
self.path = join_path(pkg_dir, path_or_url)
if not os.path.isfile(self.path):
raise NoSuchPatchFileError(pkg_name, self.path)
def apply(self, stage):
"""Fetch this patch, if necessary, and apply it to the source
code in the supplied stage.
"""Apply the patch at self.path to the source code in the
supplied stage
Args:
stage: stage for the package that needs to be patched
"""
stage.chdir_to_source()
# Use -N to allow the same patches to be applied multiple times.
_patch = which("patch", required=True)
_patch('-s', '-p', str(self.level), '-i', self.path)
patch_stage = None
try:
if self.url:
# use an anonymous stage to fetch the patch if it is a URL
patch_stage = spack.stage.Stage(self.url)
patch_stage.fetch()
patch_file = patch_stage.archive_file
else:
patch_file = self.path
# Use -N to allow the same patches to be applied multiple times.
_patch('-s', '-p', str(self.level), '-i', patch_file)
class FilePatch(Patch):
"""Describes a patch that is retrieved from a file in the repository"""
def __init__(self, pkg, path_or_url, level):
super(FilePatch, self).__init__(pkg, path_or_url, level)
finally:
if patch_stage:
patch_stage.destroy()
pkg_dir = spack.repo.dirname_for_package_name(pkg.name)
self.path = join_path(pkg_dir, path_or_url)
if not os.path.isfile(self.path):
raise NoSuchPatchFileError(pkg.name, self.path)
class UrlPatch(Patch):
"""Describes a patch that is retrieved from a URL"""
def __init__(self, pkg, path_or_url, level, **kwargs):
super(UrlPatch, self).__init__(pkg, path_or_url, level)
self.url = path_or_url
self.md5 = kwargs.get('md5')
def apply(self, stage):
"""Retrieve the patch in a temporary stage, computes
self.path and calls `super().apply(stage)`
Args:
stage: stage for the package that needs to be patched
"""
fetcher = fs.URLFetchStrategy(self.url, digest=self.md5)
mirror = join_path(
os.path.dirname(stage.mirror_path),
os.path.basename(self.url)
)
with spack.stage.Stage(fetcher, mirror_path=mirror) as patch_stage:
patch_stage.fetch()
patch_stage.check()
patch_stage.cache_local()
patch_stage.expand_archive()
self.path = os.path.abspath(
os.listdir(patch_stage.path).pop()
)
super(UrlPatch, self).apply(stage)
class NoSuchPatchFileError(spack.error.SpackError):

View File

@ -545,6 +545,10 @@ def chdir_to_source(self):
def archive_file(self):
return self[0].archive_file
@property
def mirror_path(self):
return self[0].mirror_path
class DIYStage(object):
"""Simple class that allows any directory to be a spack stage."""

View File

@ -392,6 +392,7 @@ def test_formatted_strings(self):
self.assertEqual(v.dotted, '1.2.3')
self.assertEqual(v.dashed, '1-2-3')
self.assertEqual(v.underscored, '1_2_3')
self.assertEqual(v.joined, '123')
def test_repr_and_str(self):

View File

@ -46,6 +46,9 @@ def decompressor_for(path, extension=None):
path.endswith('.zip')):
unzip = which('unzip', required=True)
return unzip
if extension and re.match(r'gz', extension):
gunzip = which('gunzip', required=True)
return gunzip
tar = which('tar', required=True)
tar.add_default_arg('-xf')
return tar

View File

@ -146,6 +146,10 @@ def underscored(self):
def dashed(self):
return '-'.join(str(x) for x in self.version)
@property
def joined(self):
return ''.join(str(x) for x in self.version)
def up_to(self, index):
"""Return a version string up to the specified component, exclusive.
e.g., if this is 10.8.2, self.up_to(2) will return '10.8'.

View File

@ -31,8 +31,10 @@ class Externalvirtual(Package):
version('1.0', '1234567890abcdef1234567890abcdef')
version('2.0', '234567890abcdef1234567890abcdef1')
version('2.1', '34567890abcdef1234567890abcdef12')
version('2.2', '4567890abcdef1234567890abcdef123')
provides('stuff')
provides('stuff', when='@1.0:')
def install(self, spec, prefix):
pass

View File

@ -0,0 +1,37 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class Othervirtual(Package):
homepage = "http://somewhere.com"
url = "http://somewhere.com/stuff-1.0.tar.gz"
version('1.0', '67890abcdef1234567890abcdef12345')
provides('stuff')
def install(self, spec, prefix):
pass

View File

@ -33,6 +33,7 @@ class Armadillo(Package):
homepage = "http://arma.sourceforge.net/"
url = "http://sourceforge.net/projects/arma/files/armadillo-7.200.1.tar.xz"
version('7.500.0', '7d316fdf3c3c7ea92b64704180ae315d')
version('7.200.2', 'b21585372d67a8876117fd515d8cf0a2')
version('7.200.1', 'ed86d6df0058979e107502e1fe3e469e')

View File

@ -35,16 +35,16 @@ class Cdd(Package):
homepage = "https://www.inf.ethz.ch/personal/fukudak/cdd_home/cdd.html"
url = "ftp://ftp.ifor.math.ethz.ch/pub/fukuda/cdd/cdd-061a.tar.gz"
def url_for_version(self, version):
return ("ftp://ftp.ifor.math.ethz.ch/pub/fukuda/cdd/cdd-%s.tar.gz" %
str(version.dotted).replace('.', ''))
version('0.61a', '22c24a7a9349dd7ec0e24531925a02d9')
depends_on("libtool", type="build")
patch("Makefile.spack.patch")
def url_for_version(self, version):
url = "ftp://ftp.ifor.math.ethz.ch/pub/fukuda/cdd/cdd-{0}.tar.gz"
return url.format(version.joined)
def install(self, spec, prefix):
# The Makefile isn't portable; use our own instead
makeargs = ["-f", "Makefile.spack", "PREFIX=%s" % prefix]

View File

@ -34,9 +34,9 @@ class Cfitsio(Package):
version('3.370', 'abebd2d02ba5b0503c633581e3bfa116')
def url_for_version(self, v):
def url_for_version(self, version):
url = 'ftp://heasarc.gsfc.nasa.gov/software/fitsio/c/cfitsio{0}.tar.gz'
return url.format(str(v).replace('.', ''))
return url.format(version.joined)
def install(self, spec, prefix):
configure('--prefix=' + prefix)

View File

@ -36,12 +36,15 @@ class Cryptopp(Package):
"""
homepage = "http://www.cryptopp.com"
base_url = "http://www.cryptopp.com"
version('5.6.3', '3c5b70e2ec98b7a24988734446242d07')
version('5.6.2', '7ed022585698df48e65ce9218f6c6a67')
version('5.6.1', '96cbeba0907562b077e26bcffb483828')
def url_for_version(self, version):
url = "{0}/{1}{2}.zip"
return url.format(self.homepage, self.name, version.joined)
def install(self, spec, prefix):
make()
@ -51,7 +54,3 @@ def install(self, spec, prefix):
mkdirp(prefix.lib)
install('libcryptopp.a', prefix.lib)
def url_for_version(self, version):
version_string = str(version).replace('.', '')
return '%s/cryptopp%s.zip' % (Cryptopp.base_url, version_string)

View File

@ -0,0 +1,51 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class Glew(Package):
"""The OpenGL Extension Wrangler Library."""
homepage = "http://glew.sourceforge.net/"
url = "https://sourceforge.net/projects/glew/files/glew/2.0.0/glew-2.0.0.tgz/download"
version('2.0.0', '2a2cd7c98f13854d2fcddae0d2b20411')
depends_on("cmake", type='build')
def install(self, spec, prefix):
options = []
options.extend(std_cmake_args)
with working_dir('build'):
cmake('./cmake/', *options)
# https://github.com/Homebrew/legacy-homebrew/issues/22025
# Note: This file is generated only after cmake is run
filter_file(r'Requires: glu',
(''), '../glew.pc')
make()
make("install")

View File

@ -0,0 +1,63 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class Gource(Package):
"""Software version control visualization."""
homepage = "http://gource.io"
url = "https://github.com/acaudwell/Gource/releases/download/gource-0.44/gource-0.44.tar.gz"
version('0.44', '79cda1bfaad16027d59cce55455bfab88b57c69d')
depends_on('automake', type='build')
depends_on('autoconf', type='build')
depends_on('libtool', type='build')
depends_on('glm', type='build')
depends_on('pkg-config', type='build')
depends_on('freetype@2.0:')
depends_on('pcre')
depends_on('boost@1.46:+filesystem+system')
depends_on('glew')
depends_on('jpeg')
depends_on('libpng')
depends_on('pcre')
depends_on('sdl2')
depends_on('sdl2_image')
def install(self, spec, prefix):
make_args = ['--prefix=%s' % prefix,
'--disable-dependency-tracking',
'--without-x',
'--with-boost=%s' % spec['boost'].prefix]
autoreconf('-i')
configure(*make_args)
make()
make("install",
parallel=False)

View File

@ -33,10 +33,6 @@ class Lrslib(Package):
homepage = "http://cgm.cs.mcgill.ca/~avis/C/lrs.html"
url = "http://cgm.cs.mcgill.ca/~avis/C/lrslib/archive/lrslib-062.tar.gz"
def url_for_version(self, version):
return ("http://cgm.cs.mcgill.ca/~avis/C/lrslib/archive/lrslib-%s.tar.gz" %
('0' + str(version).replace('.', '')))
version('6.2', 'be5da7b3b90cc2be628dcade90c5d1b9')
version('6.1', '0b3687c8693cd7d1f234a3f65e147551')
version('6.0', 'd600a2e62969ad03f7ab2f85f1b3709c')
@ -51,6 +47,10 @@ def url_for_version(self, version):
patch("Makefile.spack.patch")
def url_for_version(self, version):
url = "http://cgm.cs.mcgill.ca/~avis/C/lrslib/archive/lrslib-0{0}.tar.gz"
return url.format(version.joined)
def install(self, spec, prefix):
# The Makefile isn't portable; use our own instead
makeargs = ["-f", "Makefile.spack",

View File

@ -64,6 +64,7 @@ class Mumps(Package):
depends_on('metis@5:', when='+metis')
depends_on('parmetis', when="+parmetis")
depends_on('blas')
depends_on('lapack')
depends_on('scalapack', when='+mpi')
depends_on('mpi', when='+mpi')
@ -78,8 +79,9 @@ def write_makefile_inc(self):
raise RuntimeError(
'You cannot use the variants parmetis or ptscotch without mpi')
blas = self.spec['blas'].blas_libs
makefile_conf = ["LIBBLAS = %s" % blas.ld_flags]
lapack_blas = (self.spec['lapack'].lapack_libs +
self.spec['blas'].blas_libs)
makefile_conf = ["LIBBLAS = %s" % lapack_blas.joined()]
orderings = ['-Dpord']
@ -154,7 +156,13 @@ def write_makefile_inc(self):
# TODO: change the value to the correct one according to the
# compiler possible values are -DAdd_, -DAdd__ and/or -DUPPER
makefile_conf.append("CDEFS = -DAdd_")
if self.compiler.name == 'intel':
# Intel Fortran compiler provides the main() function so
# C examples linked with the Fortran compiler require a
# hack defined by _DMAIN_COMP (see examples/c_example.c)
makefile_conf.append("CDEFS = -DAdd_ -DMAIN_COMP")
else:
makefile_conf.append("CDEFS = -DAdd_")
if '+shared' in self.spec:
if sys.platform == 'darwin':

View File

@ -30,7 +30,7 @@ class Nag(Package):
"""The NAG Fortran Compiler."""
homepage = "http://www.nag.com/nagware/np.asp"
version('6.1', '1e29d9d435b7ccc2842a320150b28ba4')
version('6.1', 'f49bd548e0d5e2458b2dabb3ee01341a')
version('6.0', '3fa1e7f7b51ef8a23e6c687cdcad9f96')
# Licensing
@ -43,8 +43,8 @@ class Nag(Package):
def url_for_version(self, version):
# TODO: url and checksum are architecture dependent
# TODO: We currently only support x86_64
return 'http://www.nag.com/downloads/impl/npl6a%sna_amd64.tgz' % str(
version).replace('.', '')
url = 'http://www.nag.com/downloads/impl/npl6a{0}na_amd64.tgz'
return url.format(version.joined)
def install(self, spec, prefix):
# Set installation directories

View File

@ -33,14 +33,14 @@ class Nauty(Package):
homepage = "http://pallini.di.uniroma1.it/index.html"
url = "http://pallini.di.uniroma1.it/nauty26r7.tar.gz"
def url_for_version(self, version):
return ("http://pallini.di.uniroma1.it/nauty%s.tar.gz" %
str(version).replace('.', ''))
version('2.6r7', 'b2b18e03ea7698db3fbe06c5d76ad8fe')
version('2.6r5', '91b03a7b069962e94fc9aac8831ce8d2')
version('2.5r9', 'e8ecd08b0892a1fb13329c147f08de6d')
def url_for_version(self, version):
url = "http://pallini.di.uniroma1.it/nauty{0}.tar.gz"
return url.format(version.joined)
def install(self, spec, prefix):
configure('--prefix=%s' % prefix)
make()

View File

@ -1,46 +0,0 @@
Index: src/config/makefile.h
===================================================================
--- src/config/makefile.h (revision 27729)
+++ src/config/makefile.h (revision 27844)
@@ -2257,11 +2258,7 @@
DEFINES += -DFDIST
endif
-_TOOLS_BUILD= $(shell [ -e ${NWCHEM_TOP}/src/tools/build/config.h ] && cat ${NWCHEM_TOP}/src/tools/build/config.h | awk ' /HAVE_SQRT/ {print "Y"}')
-
-ifeq ($(_TOOLS_BUILD),Y)
_USE_SCALAPACK = $(shell cat ${NWCHEM_TOP}/src/tools/build/config.h | awk ' /HAVE_SCALAPACK\ 1/ {print "Y"}')
-endif
ifeq ($(_USE_SCALAPACK),Y)
DEFINES += -DSCALAPACK
@@ -2286,8 +2283,8 @@
-brename:.pdgetrf_,.pdgetrf \
-brename:.pdgetrs_,.pdgetrs
endif
- CORE_LIBS += $(ELPA) $(SCALAPACK) $(PBLAS) $(BLACS)
endif
+ CORE_LIBS += $(ELPA) $(SCALAPACK)
ifdef USE_64TO32
CORE_LIBS += -l64to32
@@ -2436,18 +2433,11 @@
DEFINES += -DUSE_F90_ALLOCATABLE
endif
-ifeq ($(_TOOLS_BUILD),Y)
# lower level libs used by communication libraries
COMM_LIBS= $(shell grep ARMCI_NETWORK_LIBS\ = ${NWCHEM_TOP}/src/tools/build/Makefile | cut -b 22-)
COMM_LIBS += $(shell grep ARMCI_NETWORK_LDFLAGS\ = ${NWCHEM_TOP}/src/tools/build/Makefile | cut -b 24-)
#comex bit
-HAVE_COMEX = $(shell [ -e ${NWCHEM_TOP}/src/tools/build/comex/config.h ] && cat ${NWCHEM_TOP}/src/tools/build/comex/config.h| grep COMEX_NETWORK| awk ' / 1/ {print "Y"}')
-ifeq ($(HAVE_COMEX),Y)
-COMM_LIBS += $(shell grep LIBS\ = ${NWCHEM_TOP}/src/tools/build/comex/Makefile|grep -v _LIBS| cut -b 8-)
-#we often need pthread, let's add it
-COMM_LIBS += -lpthread
-endif
-endif
+COMM_LIBS += $(shell [ -e ${NWCHEM_TOP}/src/tools/build/comex/config.h ] && grep LIBS\ = ${NWCHEM_TOP}/src/tools/build/comex/Makefile|grep -v _LIBS| cut -b 8-) -lpthread
ifdef COMM_LIBS
CORE_LIBS += $(COMM_LIBS)
endif

View File

@ -1,40 +0,0 @@
Index: src/config/makefile.h
===================================================================
--- src/config/makefile.h (revision 28470)
+++ src/config/makefile.h (revision 28471)
@@ -910,6 +910,7 @@
GNUMINOR=$(shell $(FC) -dM -E - < /dev/null 2> /dev/null | egrep __VERS | cut -c24)
GNU_GE_4_6 = $(shell [ $(GNUMAJOR) -gt 4 -o \( $(GNUMAJOR) -eq 4 -a $(GNUMINOR) -ge 6 \) ] && echo true)
GNU_GE_4_8 = $(shell [ $(GNUMAJOR) -gt 4 -o \( $(GNUMAJOR) -eq 4 -a $(GNUMINOR) -ge 8 \) ] && echo true)
+ GNU_GE_6 = $(shell [ $(GNUMAJOR) -ge 6 ] && echo true)
endif
ifeq ($(GNU_GE_4_6),true)
DEFINES += -DGCC46
@@ -921,6 +922,9 @@
FOPTIONS += -Warray-bounds
endif
+ ifeq ($(GNU_GE_6),true)
+ FOPTIMIZE += -fno-tree-dominator-opts # solvation/hnd_cosmo_lib breaks
+ endif
ifdef USE_OPENMP
FOPTIONS += -fopenmp
LDOPTIONS += -fopenmp
@@ -1067,6 +1071,7 @@
GNUMINOR=$(shell $(FC) -dM -E - < /dev/null 2> /dev/null | egrep __VERS | cut -c24)
GNU_GE_4_6 = $(shell [ $(GNUMAJOR) -gt 4 -o \( $(GNUMAJOR) -eq 4 -a $(GNUMINOR) -ge 6 \) ] && echo true)
GNU_GE_4_8 = $(shell [ $(GNUMAJOR) -gt 4 -o \( $(GNUMAJOR) -eq 4 -a $(GNUMINOR) -ge 8 \) ] && echo true)
+ GNU_GE_6 = $(shell [ $(GNUMAJOR) -ge 6 ] && echo true)
ifeq ($(GNU_GE_4_6),true)
DEFINES += -DGCC46
endif
@@ -1076,6 +1081,9 @@
#gone FFLAGS_FORGA += -fno-aggressive-loop-optimizations
FOPTIONS += -Warray-bounds
endif # GNU_GE_4_8
+ ifeq ($(GNU_GE_6),true)
+ FOPTIMIZE += -fno-tree-dominator-opts # solvation/hnd_cosmo_lib breaks
+ endif
endif # GNUMAJOR
ifdef USE_OPENMP

View File

@ -1,21 +0,0 @@
--- src/config/makefile.h.orig 2016-07-22 08:45:52.100229544 -0700
+++ src/config/makefile.h 2016-07-22 08:49:00.321422169 -0700
@@ -1565,6 +1565,7 @@
GNU_GE_4_6 = $(shell [ $(GNUMAJOR) -gt 4 -o \( $(GNUMAJOR) -eq 4 -a $(GNUMINOR) -ge 6 \) ] && echo true)
GNU_GE_4_8 = $(shell [ $(GNUMAJOR) -gt 4 -o \( $(GNUMAJOR) -eq 4 -a $(GNUMINOR) -ge 8 \) ] && echo true)
endif
+ GNU_GE_6 = $(shell [ $(GNUMAJOR) -ge 6 ] && echo true)
ifeq ($(GNU_GE_4_6),true)
DEFINES += -DGCC46
endif
@@ -1942,6 +1943,10 @@
FOPTIMIZE += -O3
FOPTIMIZE += -mfpmath=sse -ffast-math
FOPTIMIZE += -fprefetch-loop-arrays #-ftree-loop-linear
+ ifeq ($(GNU_GE_6),true)
+ FOPTIMIZE += -fno-tree-dominator-opts # solvation/hnd_cosmo_lib breaks
+ endif
+
ifeq ($(GNU_GE_4_8),true)
FOPTIMIZE += -ftree-vectorize -fopt-info-vec
endif

View File

@ -1,15 +0,0 @@
Index: src/util/util_getppn.c
===================================================================
--- src/util/util_getppn.c (revision 27443)
+++ src/util/util_getppn.c (working copy)
@@ -32,7 +33,9 @@
void FATR util_getppn_(Integer *ppn_out){
#if defined(__bgq__)
- *ppn_out = Kernel_ProcessCount();
+ *ppn_out = (Integer) Kernel_ProcessCount();
+ return;
+ if(0) {
#elif MPI_VERSION >= 3
int err;

View File

@ -1,21 +0,0 @@
Index: src/util/GNUmakefile
===================================================================
--- src/util/GNUmakefile (revision 27774)
+++ src/util/GNUmakefile (revision 27782)
@@ -234,7 +234,7 @@
USES_BLAS = util.fh ga_it_lsolve.F ga_maxelt.F ga_mix.F ga_iter_diag.F \
ga_orthog.F dabsmax.F ga_normf.F corr_mk_ref.F ga_it2.F ga_lkain_ext.F util_file_name.F dgefa.f util_patch_test.F stpr_sjacobi.F util_dgeev.F \
- util_test_cholesky.F
+ util_test_cholesky.F dfill.f ga_lkain_2cpl3_ext.F ga_it2.F
ifdef SPEECH
LIB_DEFINES += -DSPEECH
@@ -254,6 +254,7 @@
ifeq ($(TARGET),$(findstring $(TARGET),BGL BGP BGQ))
DEFINES += -DNEED_LOC
LIB_DEFINES += -DNO_UTIL_TESTS
+LIB_DEFINES += -I/bgsys/drivers/ppcfloor/firmware/include -I/bgsys/drivers/ppcfloor/spi/include/kernel
endif
ifdef SLURM

View File

@ -1,26 +0,0 @@
Index: src/nwdft/scf_dft/dft_scf.F
===================================================================
--- src/nwdft/scf_dft/dft_scf.F (revision 28116)
+++ src/nwdft/scf_dft/dft_scf.F (revision 28117)
@@ -1884,6 +1884,13 @@
if (abs(Edisp).gt.0.0d0) then
write(LuOut,224)Edisp
endif
+ if (cosmo_on.and.cosmo_phase.eq.2) then
+ if (do_cosmo_smd) then
+ write(LuOut,225) ecosmo+gcds
+ else
+ write(LuOut,225) ecosmo
+ end if
+ endif
if (do_zora) write(luout,2221) ener_scal
write(luout,2222) rho_n
write(luout,2223) dft_time
@@ -2457,6 +2464,7 @@
& ' Correlation energy =', f22.12/
& ' Nuclear repulsion energy =', f22.12/)
224 format(' Dispersion correction =', f22.12/)
+ 225 format(' COSMO energy =', f22.12/)
c
2221 format(' Scaling correction =', f22.12/)
2222 format(' Numeric. integr. density =', f22.12/)

View File

@ -1,172 +0,0 @@
Index: src/solvation/hnd_cosmo_lib.F
===================================================================
--- src/solvation/hnd_cosmo_lib.F (revision 27880)
+++ src/solvation/hnd_cosmo_lib.F (revision 27881)
@@ -92,26 +92,32 @@
c & i_init,init))
c & call errquit('hnd_cosset, malloc of init failed',911,MA_ERR)
c
- stat = .true.
- stat = stat.and.ma_push_get(mt_dbl,3*nat,"xyzatm",l_i10,i10)
- stat = stat.and.ma_push_get(mt_dbl, nat,"ratm",l_i20,i20)
- stat = stat.and.ma_push_get(mt_int, nat,"nspa",l_i30,i30)
- stat = stat.and.ma_push_get(mt_int, nat,"nppa",l_i40,i40)
- stat = stat.and.ma_push_get(mt_int,3*mxface,"ijkfac",l_i50,i50)
- stat = stat.and.ma_push_get(mt_dbl,3*mxface,"xyzseg",l_i60,i60)
- stat = stat.and.ma_push_get(mt_int, mxface,"ijkseg",l_i70,i70)
- stat = stat.and.ma_push_get(mt_log, mxface*nat,"insseg",
- & l_i80,i80)
- stat = stat.and.ma_push_get(mt_dbl,3*mxface*nat,"xyzspa",
- & l_i90,i90)
- stat = stat.and.ma_push_get(mt_int, mxface*nat,"ijkspa",
- & l_i100,i100)
- stat = stat.and.ma_push_get(mt_int, mxface*nat,"numpps",
- & l_i110,i110)
- stat = stat.and.ma_push_get(mt_dbl,3*mxapex ,"apex",
- & l_i120,i120)
- stat = stat.and.ma_push_get(mt_dbl, mxface*nat,"xyzff",
- & l_i130,i130)
+ if(.not.ma_push_get(mt_dbl,3*nat,"xyzatm",l_i10,i10))
+ c call errquit('hndcosset: not enuf mem',0,MA_ERR)
+ if(.not.ma_push_get(mt_dbl, nat,"ratm",l_i20,i20))
+ c call errquit('hndcosset: not enuf mem',1,MA_ERR)
+ if(.not.ma_push_get(mt_int, nat,"nspa",l_i30,i30))
+ c call errquit('hndcosset: not enuf mem',2,MA_ERR)
+ if(.not.ma_push_get(mt_int, nat,"nppa",l_i40,i40))
+ c call errquit('hndcosset: not enuf mem',3,MA_ERR)
+ if(.not.ma_push_get(mt_int,3*mxface,"ijkfac",l_i50,i50))
+ c call errquit('hndcosset: not enuf mem',4,MA_ERR)
+ if(.not.ma_push_get(mt_dbl,3*mxface,"xyzseg",l_i60,i60))
+ c call errquit('hndcosset: not enuf mem',5,MA_ERR)
+ if(.not.ma_push_get(mt_int, mxface,"ijkseg",l_i70,i70))
+ c call errquit('hndcosset: not enuf mem',6,MA_ERR)
+ if(.not.ma_push_get(mt_log, mxface*nat,"insseg",l_i80,i80))
+ c call errquit('hndcosset: not enuf mem',7,MA_ERR)
+ if(.not.ma_push_get(mt_dbl,3*mxface*nat,"xyzspa",l_i90,i90))
+ c call errquit('hndcosset: not enuf mem',8,MA_ERR)
+ if(.not.ma_push_get(mt_int, mxface*nat,"ijkspa",l_i100,i100))
+ c call errquit('hndcosset: not enuf mem',9,MA_ERR)
+ if(.not.ma_push_get(mt_int, mxface*nat,"numpps",l_i110,i110))
+ c call errquit('hndcosset: not enuf mem',10,MA_ERR)
+ if(.not.ma_push_get(mt_dbl,3*mxapex ,"apex",l_i120,i120))
+ c call errquit('hndcosset: not enuf mem',11,MA_ERR)
+ if(.not.ma_push_get(mt_dbl, mxface*nat,"xyzff",l_i130,i130))
+ c call errquit('hndcosset: not enuf mem',12,MA_ERR)
c i10 =init ! xyzatm(3,nat)
c i20 =i10 +3*nat ! ratm( nat)
c i30 =i20 + nat ! nspa( nat)
@@ -129,9 +135,10 @@
c
call hnd_cossrf(nat,c,radius,nat,mxface,mxapex,
1 dbl_mb(i10),dbl_mb(i20),int_mb(i30),int_mb(i40),
- 2 int_mb(i50),dbl_mb(i60),int_mb(i70),
- 3 log_mb(i80),dbl_mb(i90),int_mb(i100),int_mb(i110),
+ 2 int_mb(i50),dbl_mb(i60),int_mb(i70),log_mb(i80),
+ 3 dbl_mb(i90),int_mb(i100),int_mb(i110),
4 dbl_mb(i120),dbl_mb(i130),rtdb)
+
c
c ----- release memory block -----
c
@@ -157,7 +164,7 @@
#include "global.fh"
#include "stdio.fh"
#include "cosmoP.fh"
-c
+#include "mafdecls.fh"
integer rtdb, nat
integer mxatm
integer mxfac
@@ -261,6 +268,7 @@
c
c ----- create -solvent accessible surface- of the molecule -----
c
+
call hnd_cossas(nat,xyzatm,ratm,mxatm,
1 nspa,nppa,xyzspa,ijkspa,
2 nseg,nfac,xyzseg,ijkseg,insseg,
@@ -366,6 +374,7 @@
#include "stdio.fh"
#include "bq.fh"
#include "prop.fh"
+cnew
#include "cosmoP.fh"
c
integer rtdb !< [Input] The RTDB handle
@@ -410,7 +419,6 @@
integer numpps( mxface,mxatom)
double precision xyzff( mxface,mxatom)
double precision zero, one
- data zero /0.0d+00/
data one /1.0d+00/
integer l_efcc, k_efcc, l_efcs, k_efcs, l_efcz, k_efcz
integer l_efclb, k_efclb, k_efciat, l_efciat
@@ -464,7 +472,7 @@
do i=1,mxface
ijkspa(i,iat)=0
numpps(i,iat)=0
- xyzff(i,iat)=zero
+ xyzff(i,iat)=0d0
enddo
enddo
c
@@ -473,7 +481,7 @@
c
do iat=1,nat
c
- if(ratm(iat).ne.zero) then
+ if(ratm(iat).ne.0d0) then
do iseg=1,nseg
ijkspa(iseg,iat)=ijkseg(iseg)
xyzff(iseg,iat)=one
@@ -515,7 +523,7 @@
enddo
endif
else if (do_cosmo_model.eq.DO_COSMO_YK) then
- if((jat.ne.iat).and.(ratm(jat).ne.zero)
+ if((jat.ne.iat).and.(ratm(jat).ne.0d0)
1 .and.(dij.lt.(ratm(iat)+rout(jat)))) then
do iseg=1,nseg
dum=dist(xyzspa(1,iseg,iat),
@@ -615,7 +623,7 @@
c
nefc = 0
do iat=1,nat
- if(ratm(iat).ne.zero) then
+ if(ratm(iat).ne.0d0) then
do iseg=1,nseg
if(.not.insseg(iseg,iat)) nefc = nefc+1
enddo
@@ -639,11 +647,11 @@
c save segment surfaces
c save segment to atom mapping
c
- srfmol=zero
- volmol=zero
+ srfmol=0d0
+ volmol=0d0
ief =0
do iat=1,nat
- if(ratm(iat).ne.zero) then
+ if(ratm(iat).ne.0d0) then
if (do_cosmo_model.eq.DO_COSMO_KS) then
ratm_real=ratm(iat)-rsolv/bohr
else if (do_cosmo_model.eq.DO_COSMO_YK) then
@@ -720,7 +728,7 @@
endif
c
do ief=1,nefc
- dbl_mb(k_efcz+ief-1)=zero
+ dbl_mb(k_efcz+ief-1)=0d0
enddo
do ief=1,nefc
byte_mb(k_efclb+(ief-1)*8)=' '
@@ -877,6 +885,8 @@
implicit double precision (a-h,o-z)
#include "global.fh"
#include "stdio.fh"
+cnew
+#include "cosmoP.fh"
c
c ----- starting from -icosahedron- -----
c

View File

@ -1,45 +0,0 @@
Index: src/dplot/dplot_input.F
===================================================================
--- src/dplot/dplot_input.F (revision 27986)
+++ src/dplot/dplot_input.F (revision 27987)
@@ -63,6 +63,7 @@
iroot = 1
ltransden = .true.
ldiffden = .false.
+ tol_rho = 1d-40
c
c try to get a scf movecs
c
@@ -263,10 +264,10 @@
goto 10
c
1998 continue
- tol_rho = 1d-15
If (.not. inp_f(tol_rho))
& Call ErrQuit('DPlot_Input: failed to read tol_rho',0,
& INPUT_ERR)
+ tol_rho=max(1d-99,tol_rho)
goto 10
c
1999 continue
Index: src/dplot/dplot_dump.F
===================================================================
--- src/dplot/dplot_dump.F (revision 27986)
+++ src/dplot/dplot_dump.F (revision 27987)
@@ -90,7 +90,7 @@
. No_Of_Spacings(3))
99498 format(6E13.5)
enddo
- else
+ else
Do i = 1, nGrid
Write(Out_Unit,'(f15.10)')values(i)
End Do
@@ -107,6 +107,7 @@
End Do
AppCh = Sum*Volume
Write(LuOut,*)
+ Write(LuOut,'(a,e30.5)')' Tol_rho = ',tol_rho
Write(LuOut,'(a,f30.5)')' Sum of elements = ',sum
Write(LuOut,'(a,f30.5)')' Integration volume = ',volume
Write(LuOut,'(a,f30.5)')' Integrated Charge = ',AppCh

View File

@ -1,13 +0,0 @@
Index: src/driver/opt_drv.F
===================================================================
--- src/driver/opt_drv.F (revision 28005)
+++ src/driver/opt_drv.F (revision 28006)
@@ -1641,7 +1641,7 @@
double precision lattice(6), scaler(3) ! periodic scaling
double precision dum1,dum2,dum3
double precision smalleig
- parameter (smalleig = 1.0d-4)
+ parameter (smalleig = 1.0d-8)
logical geom_print_zmatrix
external geom_print_zmatrix
logical ophigh

View File

@ -1,24 +0,0 @@
Index: src/tools/ga-5-4/gaf2c/gaf2c.c
===================================================================
--- src/tools/ga-5-4/gaf2c/gaf2c.c (revision 10630)
+++ src/tools/ga-5-4/gaf2c/gaf2c.c (revision 10631)
@@ -106,6 +106,7 @@
}
*argc = iargc;
*argv = iargv;
+ iargv[iargc] = 0;
}
Index: src/tools/ga-5-4/tcgmsg/fapi.c
===================================================================
--- src/tools/ga-5-4/tcgmsg/fapi.c (revision 10630)
+++ src/tools/ga-5-4/tcgmsg/fapi.c (revision 10631)
@@ -197,6 +197,7 @@
argv[i] = strdup(arg);
}
+ argv[argc] = 0;
tcgi_pbegin(argc, argv);
free(argv);
}

View File

@ -1,25 +0,0 @@
Index: src/util/util_mpinap.c
===================================================================
--- src/util/util_mpinap.c (revision 28079)
+++ src/util/util_mpinap.c (revision 28083)
@@ -17,7 +17,7 @@
#ifdef MPI
MPI_Comm_rank(MPI_COMM_WORLD,&myid);
#else
- myid=ga_nodeid_();
+ myid=GA_Nodeid();
#endif
sleeptime=(myid+1)/((long) *factor);
#ifdef DEBUG
Index: src/util/util_getppn.c
===================================================================
--- src/util/util_getppn.c (revision 28079)
+++ src/util/util_getppn.c (revision 28083)
@@ -8,6 +8,7 @@
#include <unistd.h>
#include <mpi.h>
#include "ga.h"
+#include "ga-mpi.h"
#include "typesf2c.h"
#if defined(__bgq__)

View File

@ -44,26 +44,33 @@ class Nwchem(Package):
depends_on('python@2.7:2.8', type=nolink)
# patches for 6.6-27746:
# TODO: add support for achived patches, i.e.
# http://www.nwchem-sw.org/images/Tddft_mxvec20.patch.gz
patch('Config_libs66.patch', when='@6.6', level=0)
patch('Gcc6_optfix.patch', when='@6.6', level=0)
patch('Util_gnumakefile.patch', when='@6.6', level=0)
patch('cosmo_dftprint.patch', when='@6.6', level=0)
patch('cosmo_meminit.patch', when='@6.6', level=0)
patch('dplot_tolrho.patch', when='@6.6', level=0)
patch('driver_smalleig.patch', when='@6.6', level=0)
patch('ga_argv.patch', when='@6.6', level=0)
patch('ga_defs.patch', when='@6.6', level=0)
patch('raman_displ.patch', when='@6.6', level=0)
patch('sym_abelian.patch', when='@6.6', level=0)
patch('tddft_mxvec20.patch', when='@6.6', level=0)
patch('tools_lib64.patch', when='@6.6', level=0)
patch('txs_gcc6.patch', when='@6.6', level=0)
patch('Util_getppn.patch', when='@6.6', level=0)
patch('xccvs98.patch', when='@6.6', level=0)
patch('zgesdv.patch', when='@6.6', level=0)
patch('Gcc6_macs_optfix.patch', when='@6.6', level=0)
urls_for_patches = {
'@6.6': [
('http://www.nwchem-sw.org/images/Tddft_mxvec20.patch.gz', 'f91c6a04df56e228fe946291d2f38c9a'),
('http://www.nwchem-sw.org/images/Tools_lib64.patch.gz', 'b71e8dbad27f1c97b60a53ec34d3f6e0'),
('http://www.nwchem-sw.org/images/Config_libs66.patch.gz', 'cc4be792e7b5128c3f9b7b1167ade2cf'),
('http://www.nwchem-sw.org/images/Cosmo_meminit.patch.gz', '1d94685bf3b72d8ecd40c46334348ca7'),
('http://www.nwchem-sw.org/images/Sym_abelian.patch.gz', 'b19cade61c787916a73a4aaf6e2445d6'),
('http://www.nwchem-sw.org/images/Xccvs98.patch.gz', 'b9aecc516a3551dcf871cb2f066598cb'),
('http://www.nwchem-sw.org/images/Dplot_tolrho.patch.gz', '0a5bdad63d2d0ffe46b28db7ad6d9cec'),
('http://www.nwchem-sw.org/images/Driver_smalleig.patch.gz', 'c3f609947220c0adb524b02c316b5564'),
('http://www.nwchem-sw.org/images/Ga_argv.patch.gz', '7a665c981cfc17187455e1826f095f6f'),
('http://www.nwchem-sw.org/images/Raman_displ.patch.gz', 'ed334ca0b2fe81ce103ef8cada990c4c'),
('http://www.nwchem-sw.org/images/Ga_defs.patch.gz', '0c3cab4d5cbef5acac16ffc5e6f869ef'),
('http://www.nwchem-sw.org/images/Zgesvd.patch.gz', '8fd5a11622968ef4351bd3d5cddce8f2'),
('http://www.nwchem-sw.org/images/Cosmo_dftprint.patch.gz', '64dcf27f3c6ced2cadfb504fa66e9d08'),
('http://www.nwchem-sw.org/images/Txs_gcc6.patch.gz', '56595a7252da051da13f94edc54fe059'),
('http://www.nwchem-sw.org/images/Gcc6_optfix.patch.gz', 'c6642c21363c09223784b47b8636047d'),
('http://www.nwchem-sw.org/images/Util_gnumakefile.patch.gz', 'af74ea2e32088030137001ce5cb047c5'),
('http://www.nwchem-sw.org/images/Util_getppn.patch.gz', '8dec8ee198bf5ec4c3a22a6dbf31683c'),
('http://www.nwchem-sw.org/images/Gcc6_macs_optfix.patch.gz', 'a891a2713aac8b0423c8096461c243eb'),
('http://www.nwchem-sw.org/images/Notdir_fc.patch.gz', '2dc997d4ab3719ac7964201adbc6fd79')
]
}
# Iterate over patches
for condition, urls in urls_for_patches.iteritems():
for url, md5 in urls:
patch(url, when=condition, level=0, md5=md5)
def install(self, spec, prefix):
scalapack = spec['scalapack'].scalapack_libs

View File

@ -1,311 +0,0 @@
Index: src/property/raman_input.F
===================================================================
--- src/property/raman_input.F (revision 28032)
+++ src/property/raman_input.F (revision 28033)
@@ -47,6 +47,7 @@
c
c set some defaults
c
+ field=' '
plot = 'normal' ! normal or resonance
line = 'lorentzian' ! lorentzian (l) or gaussian (g) lineshape
width = 20.0D+00 ! full-width at half maximum (FWHM) in 1/cm
@@ -54,7 +55,6 @@
hyperraman = .false. ! flag to calculate hyperaman terms
vroa = .false. ! flag to calculate vibrational raman spec
rmmodes = 0
- first = 7
last = 10000
low = 0.0D+00
high = 100000.0D+00
@@ -132,9 +132,9 @@
else if(inp_compare(.false.,'first',test)) then
if(.not. inp_i(first))
$ call errquit(pname//'missing value for first',911, INPUT_ERR)
- if (.not. rtdb_put(rtdb,'raman:first',mt_int,1,first))
- $ call errquit(pname//'rtdb put failed',0, RTDB_ERR)
-c --- determine first normal mode to use ---
+c --- not setting default here, it will be set later after
+c frequency calculation has been done so we know if we have
+c a linear molecule or not
else if(inp_compare(.false.,'last',test)) then
if(.not. inp_i(last)) ! FA-06-16-12 bug-fixed (BEF: first AFT: last)
$ call errquit(pname//'missing value for last',911, INPUT_ERR)
Index: src/property/task_raman.F
===================================================================
--- src/property/task_raman.F (revision 28032)
+++ src/property/task_raman.F (revision 28033)
@@ -59,6 +59,7 @@
integer j,pos,first0 ! FA-06-15-12
logical preraman ! FA-06-18-12
+ logical linear
character*32 pname
@@ -107,6 +108,12 @@
$ call errquit(pname//'rtdb_put freq_done',911, RTDB_ERR)
endif
c
+c --------Figure out if molecule is linear------------
+
+c if vib module doesn't list molecule as linear, assume it is not
+ if (.not. rtdb_get(rtdb,'vib:linear',mt_log,1,linear))
+ $ linear=.false.
+c
c --------Create/load reference geometry to get the number of atoms------------
if (.not.geom_create(geom,'geometry')) call errquit
@@ -116,7 +123,11 @@
if (.not. geom_ncent(geom,nat))
& call errquit(pname//'geom_ncent failed?',3, GEOM_ERR)
nc = nat*3
- rmmodes = nc-6
+ if (linear) then
+ rmmodes = nc-5
+ else
+ rmmodes = nc-6
+ end if
c if (ga_nodeid().eq.0) then
c write(*,1) nat,nc,rmmodes
@@ -146,8 +157,13 @@
$ low = 0.0D+00 ! lowest wavenumber normal mode to use
if (.not. rtdb_get(rtdb,'raman:high',mt_dbl,1,high))
$ high = 100000.0D+00 ! Highest wavenumber normal mode to use
- if (.not. rtdb_get(rtdb,'raman:first',mt_int,1,first))
- $ first = 7 ! first normal mode to use
+ if (.not. rtdb_get(rtdb,'raman:first',mt_int,1,first)) then
+ if (linear) then
+ first = 6 ! first normal mode to use
+ else
+ first = 7 ! first normal mode to use
+ end if
+ end if
if (.not. rtdb_get(rtdb,'raman:last',mt_int,1,last))
$ last = 10000 ! last normal mode to use
if (.not. rtdb_get(rtdb,'raman:hyperraman',mt_log,1,hyperraman))
@@ -156,7 +172,11 @@
$ vroa = .false. ! # flag to calculate vibrational
if (.not. rtdb_get(rtdb,'raman:preraman',mt_log,1,preraman))
$ preraman = .false. ! # flag to do task_freq() and leave
- first0=7 ! constant
+ if (linear) then
+ first0=6 ! constant
+ else
+ first0=7 ! constant
+ end if
c ======== FA-debug =============== START
c if (ga_nodeid().eq.0) then
c write(*,2) plot,line,width,step_size,steps
@@ -172,8 +192,13 @@
rmmodes = nc
c
c --- in case we want overide the defaults for modes to include ---
- if (.not. rtdb_get(rtdb,'raman:first',mt_int,1,first))
- $ first = 7 ! srtep size for displacement along modes
+ if (.not. rtdb_get(rtdb,'raman:first',mt_int,1,first)) then
+ if (linear) then
+ first = 6 ! srtep size for displacement along modes
+ else
+ first = 7 ! srtep size for displacement along modes
+ end if
+ end if
endif
c
c ----------alocate space for freq and normal modes----------------------------
@@ -294,7 +319,7 @@
c ------------enough setup really do the calculation------------------------
if (.not.preraman) then
call task_raman_doit(rtdb,geom,nc,nat,
- & first0, ! = 7 constant
+ & first0, ! = 6 or 7
& first,last,rmmodes,
& steps,nfreq,plot,line,width,
& step_size,
@@ -336,7 +361,7 @@
c
c == perform raman calculation ==
subroutine task_raman_doit(rtdb,geom,nc,nat,
- & first0, ! = 7 constant
+ & first0, ! = 6 or 7
& first,last,rmmodes,
& steps,nfreq,
& plot,line,width,
@@ -495,7 +520,7 @@
& lbl_raman, ! in: raman label
& begin, ! in:
& last, ! in:
- & first0, ! in: = 7 constant
+ & first0, ! in: = 6 or 7
& eigenvecs, ! in: hessian data (modes)
& eigenvals, ! in: hessian data (frequencies)
& mass, ! in: mass(i) i=1,nat
@@ -519,7 +544,7 @@
& lbl_raman, ! in: raman label
& mode_ini, ! in:
& mode_end, ! in:
- & first0, ! in: = 7 constant
+ & first0, ! in: = 6 or 7
& eigenvecs, ! in: hessian data (modes)
& eigenvals, ! in: hessian data (frequencies)
& mass, ! in: mass(i) i=1,nat
@@ -541,7 +566,7 @@
& lbl_raman, ! in: raman label
& begin, ! in: starting mode
& last, ! in: ending mode
- & first0, ! in: = 7 constant
+ & first0, ! in: = 6 or 7
& eigenvecs, ! in: hessian data (modes)
& eigenvals, ! in: hessian data (frequencies)
& mass, ! in: mass(i) i=1,nat
@@ -596,7 +621,7 @@
& rmmodes, ! in: total nr. modes
& rminfo, ! in: stores raman info
& nc,nat, ! in: (nc,nat)=(nr coord,nr atoms)
- & first0, ! in: = 7 constant
+ & first0, ! in: = 6 or 7
& eigenvecs, ! in: hessian data (modes)
& eigenvals, ! in: hessian data (frequencies)
& mass, ! in: mass(i) i=1,nat
@@ -757,7 +782,8 @@
& step_size,
& rminfo,
& eigenvecs,
- & mass)
+ & mass,
+ & first0)
c ======== FA: Writing to file rminfo ========= START
c if (ga_nodeid().eq.0)
c & write(*,*) 'BEF raman_write() ...'
@@ -783,7 +809,7 @@
& lbl_raman, ! in: raman label
& begin, ! in: starting mode
& last, ! in: ending mode
- & first0, ! in: = 7 constant
+ & first0, ! in: = 6 or 7
& eigenvecs, ! in: hessian data (modes)
& eigenvals, ! in: hessian data (frequencies)
& mass, ! in: mass(i) i=1,nat
@@ -890,7 +916,7 @@
& rmmodes, ! in: total nr. modes
& rminfo, ! in: stores raman info
& nc,nat, ! in: (nc,nat)=(nr coord,nr atoms)
- & first0, ! in: = 7 constant
+ & first0, ! in: = 6 or 7
& eigenvecs, ! in: hessian data (modes)
& eigenvals, ! in: hessian data (frequencies)
& mass, ! in: mass(i) i=1,nat
@@ -915,7 +941,7 @@
& lbl_raman, ! in: raman label
& mode_ini, ! in:
& mode_end, ! in:
- & first0, ! in: = 7 constant
+ & first0, ! in: = 6 or 7
& eigenvecs, ! in: hessian data (modes)
& eigenvals, ! in: hessian data (frequencies)
& mass, ! in: mass(i) i=1,nat
@@ -1036,7 +1062,7 @@
& rmmodes, ! in: total nr. modes
& rminfo, ! in: stores raman info
& nc,nat, ! in: (nc,nat)=(nr coord,nr atoms)
- & first0, ! in: = 7 constant
+ & first0, ! in: = 6 or 7
& eigenvecs, ! in: hessian data (modes)
& eigenvals, ! in: hessian data (frequencies)
& mass, ! in: mass(i) i=1,nat
@@ -1058,7 +1084,7 @@
& lbl_raman, ! in: raman label
& begin, ! in:
& last, ! in:
- & first0, ! in: = 7 constant
+ & first0, ! in: = 6 or 7
& eigenvecs, ! in: hessian data (modes)
& eigenvals, ! in: hessian data (frequencies)
& mass, ! in: mass(i) i=1,nat
@@ -1139,7 +1165,7 @@
& rmmodes, ! in: total nr. modes
& rminfo, ! in: stores raman info
& nc,nat, ! in: (nc,nat)=(nr coord,nr atoms)
- & first0, ! in: = 7 constant
+ & first0, ! in: = 6 or 7
& eigenvecs, ! in: hessian data (modes)
& eigenvals, ! in: hessian data (frequencies)
& mass, ! in: mass(i) i=1,nat
Index: src/property/raman.F
===================================================================
--- src/property/raman.F (revision 28032)
+++ src/property/raman.F (revision 28033)
@@ -29,8 +29,8 @@
integer rtdb ! [input] rtdb handle
integer natom ! [input] number of atoms
integer nat3 ! [input] 3*number of atoms
- integer first ! first mode to consider in aoresponse (default =7 ramana =1 hyperraman)
- integer tmpmode ! set to fill rminfo from 1 ( not 7 for raman calc)
+ integer first ! first mode to consider in aoresponse (default =6 or 7 raman =1 hyperraman)
+ integer tmpmode ! set to fill rminfo from 1 ( not 6 or 7 for raman calc)
integer rmmodes ! # of raman active modes
double precision rminfo(rmmodes,4) ! data for raman spec
@@ -41,6 +41,10 @@
double precision ncoords(3,natom) ! [scratch] coords after step
double precision steps(3,natom) ! [scratch] step generated by vector and scaled
c
+ double precision length_of_step, scale
+ double precision ddot
+ external ddot
+c
parameter (bohr2ang=0.52917724924D+00) ! CONVERSION OF BOHR to ANGSTROMS
c -------------determine sign of the step---------------------------------
if (iii.eq.1) then
@@ -57,13 +61,16 @@
c & i4,',',i4,',',i4,',',i4,',',f15.8,')')
c ======= FA-check rminfo(x,1) ======== END
c --------------------------------------------------------------------
- ivec = 1
- do iatom = 1,natom
- do ixyz = 1,3
- steps(ixyz,iatom)=sign*step_size*eigenvecs(ivec,imode)
- ivec = ivec + 1
- enddo ! ixyz
- enddo ! iatom
+ ivec = 1
+ do iatom = 1,natom
+ do ixyz = 1,3
+ steps(ixyz,iatom)=eigenvecs(ivec,imode)
+ ivec = ivec + 1
+ enddo ! ixyz
+ enddo ! iatom
+ length_of_step = sqrt(ddot(nat3,steps,1,steps,1))
+ scale = sign*step_size/length_of_step
+ call dscal(nat3,scale,steps,1)
call daxpy(nat3,1.0d00,steps,1,ncoords,1) ! mult coords
if (.not. geom_cart_coords_set(geom,ncoords))
@@ -85,7 +92,8 @@
& step_size,! in : step of finite differencing
& rminfo, ! in : Raman data
& eigenvecs,! in : normal modes eigenvectors (nat3,nat3)
- & mass) ! in : mass
+ & mass, ! in : mass
+ & first0) ! in : first nonzero mode (6 or 7)
c
c Authors: Jonathan Mullin, Northwestern University (ver 1: Jan. 2011)
c Fredy W. Aquino, Northwestern University (ver 2: Oct. 2012)
@@ -108,6 +116,7 @@
integer imode ! mode #
integer natom ! [input] number of atoms
integer nat3 ! [input] 3*number of atoms
+ integer first0 ! [input] first nonzero mode (6 or 7)
c
double precision rminfo(rmmodes,4) ! raman data
double precision step_size,stepsize ! [input] step of finite differencing
@@ -134,7 +143,7 @@
call dfill(3*natom,0.0D+00,tmode,1) !
c zero
stepsize = zero
- m = imode - 6
+ m = imode - first0 + 1
j=1
i=1
ar2 = zero ! alpha real

View File

@ -1,18 +0,0 @@
Index: src/symmetry/sym_abelian.F
===================================================================
--- src/symmetry/sym_abelian.F (revision 27901)
+++ src/symmetry/sym_abelian.F (revision 27902)
@@ -10,9 +10,11 @@
c
character*8 group
integer nab, ind
- parameter (nab = 8)
+ parameter (nab = 18)
character*4 ab(nab)
- data ab/ 'C1','Cs','Ci','C2','D2','C2v','C2h','D2h'/
+ data ab/ 'C1','Cs','Ci','C2','D2','C2v','C2h','D2h',
+ C 'C3','C4','C5','C6','C7','C8',
+ C 'C3h','C4h','C5h','C6h'/
c
call sym_group_name(geom, group)
c

File diff suppressed because it is too large Load Diff

View File

@ -1,14 +0,0 @@
Index: src/config/makefile.h
===================================================================
--- src/config/makefile.h (revision 27828)
+++ src/config/makefile.h (revision 27829)
@@ -99,7 +99,8 @@
ifdef OLD_GA
LIBPATH = -L$(SRCDIR)/tools/lib/$(TARGET)
else
- LIBPATH = -L$(SRCDIR)/tools/install/lib
+ TOOLSLIB = $(shell grep libdir\ = $(NWCHEM_TOP)/src/tools/build/Makefile |grep -v pkgl|cut -b 25-)
+ LIBPATH = -L$(SRCDIR)/tools/install/$(TOOLSLIB)
endif
#

View File

@ -1,551 +0,0 @@
Index: src/NWints/texas/assemblx.f
===================================================================
--- src/NWints/texas/assemblx.f (revision 28366)
+++ src/NWints/texas/assemblx.f (working copy)
@@ -133,7 +133,9 @@
* NQI,NQJ,NQK,NQL,NSIJ,NSKL,
* NQIJ,NQIJ1,NSIJ1,NQKL,NQKL1,NSKL1,ijbeg,klbeg
C
- common /logic4/ nfu(1)
+ integer lpar1
+ parameter(lpar1=34)
+ common /logic4/ nfu(lpar1)
c
dimension indx(*)
dimension xt1(nbls1,lt1,lt2)
@@ -258,7 +260,9 @@
* lni,lnj,lnk,lnl,lnij,lnkl,lnijkl,MMAX,
* NQI,NQJ,NQK,NQL,NSIJ,NSKL,
* NQIJ,NQIJ1,NSIJ1,NQKL,NQKL1,NSKL1,ijbeg,klbeg
- common /logic4/ nfu(1)
+ integer lpar1
+ parameter(lpar1=34)
+ common /logic4/ nfu(lpar1)
dimension indx(*)
dimension xt1(nbls1,lt1,lt2)
dimension aax(nbls1),bbx(nbls1),ccx(nbls1)
@@ -346,7 +350,9 @@
* lni,lnj,lnk,lnl,lnij,lnkl,lnijkl,MMAX,
* NQI,NQJ,NQK,NQL,NSIJ,NSKL,
* NQIJ,NQIJ1,NSIJ1,NQKL,NQKL1,NSKL1,ijbeg,klbeg
- common /logic4/ nfu(1)
+ integer lpar1
+ parameter(lpar1=34)
+ common /logic4/ nfu(lpar1)
dimension indx(*)
dimension xt1(nbls1,lt1,lt2)
dimension aax(nbls1),bbx(nbls1),ccx(nbls1)
@@ -428,7 +434,9 @@
* NQI,NQJ,NQK,NQL,NSIJ,NSKL,
* NQIJ,NQIJ1,NSIJ1,NQKL,NQKL1,NSKL1,ijbeg,klbeg
C
- common /logic4/ nfu(1)
+ integer lpar1
+ parameter(lpar1=34)
+ common /logic4/ nfu(lpar1)
c
dimension indx(*)
dimension xt1(nbls1,lt1,lt2)
@@ -626,7 +634,9 @@
character*11 scftype
character*8 where
common /runtype/ scftype,where
- common /logic4/ nfu(1)
+ integer lpar1
+ parameter(lpar1=34)
+ common /logic4/ nfu(lpar1)
COMMON/SHELL/LSHELLT,LSHELIJ,LSHELKL,LHELP,LCAS2(4),LCAS3(4)
common /lcases/ lcase
common/obarai/
@@ -913,7 +923,9 @@
* NQI,NQJ,NQK,NQL,NSIJ,NSKL,
* NQIJ,NQIJ1,NSIJ1,NQKL,NQKL1,NSKL1,ijbeg,klbeg
C
- common /logic4/ nfu(1)
+ integer lpar1
+ parameter(lpar1=34)
+ common /logic4/ nfu(lpar1)
C
dimension indx(*)
dimension xt1(nbls1,lt1,lt2)
@@ -972,7 +984,9 @@
implicit real*8 (a-h,o-z)
logical firstc
c
- common /logic4/ nfu(1)
+ integer lpar1
+ parameter(lpar1=34)
+ common /logic4/ nfu(lpar1)
c
dimension indx(*)
dimension xt1(nbls1,lt1,lt2)
@@ -1045,7 +1059,9 @@
* NQI,NQJ,NQK,NQL,NSIJ,NSKL,
* NQIJ,NQIJ1,NSIJ1,NQKL,NQKL1,NSKL1,ijbeg,klbeg
C
- common /logic4/ nfu(1)
+ integer lpar1
+ parameter(lpar1=34)
+ common /logic4/ nfu(lpar1)
c
dimension indx(*)
dimension xt1(nbls1,lt1,lt2)
@@ -1131,7 +1147,9 @@
* NQI,NQJ,NQK,NQL,NSIJ,NSKL,
* NQIJ,NQIJ1,NSIJ1,NQKL,NQKL1,NSKL1,ijbeg,klbeg
C
- common /logic4/ nfu(1)
+ integer lpar1
+ parameter(lpar1=34)
+ common /logic4/ nfu(lpar1)
c
dimension indx(*)
dimension xt1(nbls1,lt1,lt2)
@@ -1217,7 +1235,9 @@
* NQI,NQJ,NQK,NQL,NSIJ,NSKL,
* NQIJ,NQIJ1,NSIJ1,NQKL,NQKL1,NSKL1,ijbeg,klbeg
C
- common /logic4/ nfu(1)
+ integer lpar1
+ parameter(lpar1=34)
+ common /logic4/ nfu(lpar1)
C
dimension indx(*)
dimension xt1(nbls1,lt1,lt2), bf3l(nbls,lt5,lt6)
@@ -1385,7 +1405,9 @@
character*11 scftype
character*8 where
common /runtype/ scftype,where
- common /logic4/ nfu(1)
+ integer lpar1
+ parameter(lpar1=34)
+ common /logic4/ nfu(lpar1)
COMMON/SHELL/LSHELLT,LSHELIJ,LSHELKL,LHELP,LCAS2(4),LCAS3(4)
common /lcases/ lcase
common/obarai/
@@ -1659,7 +1681,9 @@
* lni,lnj,lnk,lnl,lnij,lnkl,lnijkl,MMAX,
* NQI,NQJ,NQK,NQL,NSIJ,NSKL,
* NQIJ,NQIJ1,NSIJ1,NQKL,NQKL1,NSKL1,ijbeg,klbeg
- common /logic4/ nfu(1)
+ integer lpar1
+ parameter(lpar1=34)
+ common /logic4/ nfu(lpar1)
dimension indx(*)
dimension xt1(nbls1,lt1,lt2)
dimension bfij1(nbls,lt3,lt4)
@@ -1707,7 +1731,9 @@
* bfij3,lt3,lt4, factij, indx, ij3b,kl3b)
implicit real*8 (a-h,o-z)
logical firstc
- common /logic4/ nfu(1)
+ integer lpar1
+ parameter(lpar1=34)
+ common /logic4/ nfu(lpar1)
dimension indx(*)
dimension xt1(nbls1,lt1,lt2)
dimension bfij3(nbls,lt3,lt4)
@@ -1762,7 +1788,9 @@
* lni,lnj,lnk,lnl,lnij,lnkl,lnijkl,MMAX,
* NQI,NQJ,NQK,NQL,NSIJ,NSKL,
* NQIJ,NQIJ1,NSIJ1,NQKL,NQKL1,NSKL1,ijbeg,klbeg
- common /logic4/ nfu(1)
+ integer lpar1
+ parameter(lpar1=34)
+ common /logic4/ nfu(lpar1)
dimension indx(*)
dimension xt1(nbls1,lt1,lt2)
dimension bf2l1(nbls,lt3,lt4)
@@ -1829,7 +1857,9 @@
* lni,lnj,lnk,lnl,lnij,lnkl,lnijkl,MMAX,
* NQI,NQJ,NQK,NQL,NSIJ,NSKL,
* NQIJ,NQIJ1,NSIJ1,NQKL,NQKL1,NSKL1,ijbeg,klbeg
- common /logic4/ nfu(1)
+ integer lpar1
+ parameter(lpar1=34)
+ common /logic4/ nfu(lpar1)
dimension indx(*)
dimension xt1(nbls1,lt1,lt2)
dimension bf3l(nbls,lt5,lt6)
@@ -1895,7 +1925,9 @@
* lni,lnj,lnk,lnl,lnij,lnkl,lnijkl,MMAX,
* NQI,NQJ,NQK,NQL,NSIJ,NSKL,
* NQIJ,NQIJ1,NSIJ1,NQKL,NQKL1,NSKL1,ijbeg,klbeg
- common /logic4/ nfu(1)
+ integer lpar1
+ parameter(lpar1=34)
+ common /logic4/ nfu(lpar1)
dimension indx(*)
dimension xt1(nbls1,lt1,lt2), bf3l(nbls,lt5,lt6)
cccc dimension facti(*), factkl(*)
@@ -2018,7 +2050,9 @@
* lni,lnj,lnk,lnl,lnij,lnkl,lnijkl,MMAX,
* NQI,NQJ,NQK,NQL,NSIJ,NSKL,
* NQIJ,NQIJ1,NSIJ1,NQKL,NQKL1,NSKL1,ijbeg,klbeg
- common /logic4/ nfu(1)
+ integer lpar1
+ parameter(lpar1=34)
+ common /logic4/ nfu(lpar1)
dimension indx(*)
dimension xt1(nbls1,lt1,lt2)
dimension aax(nbls1),bbx(nbls1),ccx(nbls1)
@@ -2110,7 +2144,9 @@
* lni,lnj,lnk,lnl,lnij,lnkl,lnijkl,MMAX,
* NQI,NQJ,NQK,NQL,NSIJ,NSKL,
* NQIJ,NQIJ1,NSIJ1,NQKL,NQKL1,NSKL1,ijbeg,klbeg
- common /logic4/ nfu(1)
+ integer lpar1
+ parameter(lpar1=34)
+ common /logic4/ nfu(lpar1)
dimension indx(*)
dimension xt1(nbls1,lt1,lt2)
dimension aax(nbls1),bbx(nbls1),ccx(nbls1)
@@ -2196,7 +2232,9 @@
* NQI,NQJ,NQK,NQL,NSIJ,NSKL,
* NQIJ,NQIJ1,NSIJ1,NQKL,NQKL1,NSKL1,ijbeg,klbeg
C
- common /logic4/ nfu(1)
+ integer lpar1
+ parameter(lpar1=34)
+ common /logic4/ nfu(lpar1)
c
dimension indx(*)
dimension xt1(nbls1,lt1,lt2)
Index: src/NWints/texas/derivat.f
===================================================================
--- src/NWints/texas/derivat.f (revision 28366)
+++ src/NWints/texas/derivat.f (working copy)
@@ -16,7 +16,9 @@
c
implicit real*8 (a-h,o-z)
c
- common /logic4/ nfu(1)
+ integer lpar1
+ parameter (lpar1=34)
+ common /logic4/ nfu(lpar1)
common /big/ bl(1)
COMMON/SHELL/LSHELLT,LSHELIJ,LSHELKL,LHELP,LCAS2(4),LCAS3(4)
common /lcases/ lcase
@@ -289,9 +291,15 @@
* nqij,nqkl, deriv, xab,xcd, xyab,xycd)
implicit real*8 (a-h,o-z)
c
- common /logic4/ nfu(1)
- common /logic10/ nmxyz(3,1)
- common /logic11/ npxyz(3,1)
+ integer lpar1,lpar2,lpar3,lpar4,lpar5
+ parameter(lpar1=34,lpar2=6545,lpar3=4060,lpar4=10,lpar5=33)
+ common /logic1/ ndege(lpar4)
+ common /logic2/ len(lpar4)
+ common /logic3/ lensm(lpar5)
+ common /logic4/ nfu(lpar1)
+ common /logic9/ nia(3,lpar2)
+ common /logic10/ nmxyz(3,lpar2)
+ common /logic11/ npxyz(3,lpar3)
c
dimension buf2(nbls,lnijr,lnklr,ngcd)
dimension deriv(6,nbls,lnij,lnkl,ngcd)
@@ -374,7 +382,9 @@
c
implicit real*8 (a-h,o-z)
c
- common /logic4/ nfu(1)
+ integer lpar1
+ parameter(lpar1=34)
+ common /logic4/ nfu(lpar1)
COMMON/SHELL/LSHELLT,LSHELIJ,LSHELKL,LHELP,LCAS2(4),LCAS3(4)
common /lcases/ lcase
common/obarai/
@@ -705,10 +715,15 @@
c second-der. That's why dimension for buf2(ndim,*,*,*,*) has ndim=4
c for first- and ndim=10 for second-derivatives.
c
- common /logic4/ nfu(1)
- common /logic9/ nia(3,1)
- common /logic10/ nmxyz(3,1)
- common /logic11/ npxyz(3,1)
+ integer lpar1,lpar2,lpar3,lpar4,lpar5
+ parameter(lpar1=34,lpar2=6545,lpar3=4060,lpar4=10,lpar5=33)
+ common /logic1/ ndege(lpar4)
+ common /logic2/ len(lpar4)
+ common /logic3/ lensm(lpar5)
+ common /logic4/ nfu(lpar1)
+ common /logic9/ nia(3,lpar2)
+ common /logic10/ nmxyz(3,lpar2)
+ common /logic11/ npxyz(3,lpar3)
c
cccc dimension buf2(4,nbls,lnijr,lnklr,ngcd) OR buf2(10,etc.)
c2002 dimension buf2(ndim,nbls,lnijr,lnklr,ngcd)
@@ -862,7 +877,9 @@
c
implicit real*8 (a-h,o-z)
c
- common /logic4/ nfu(1)
+ integer lpar1
+ parameter(lpar1=34)
+ common /logic4/ nfu(lpar1)
COMMON/SHELL/LSHELLT,LSHELIJ,LSHELKL,LHELP,LCAS2(4),LCAS3(4)
common /lcases/ lcase
common/obarai/
@@ -1131,10 +1148,15 @@
* nqij,nqkl,der2,xab)
implicit real*8 (a-h,o-z)
c
- common /logic4/ nfu(1)
- common /logic9/ nia(3,1)
- common /logic10/ nmxyz(3,1)
- common /logic11/ npxyz(3,1)
+ integer lpar1,lpar2,lpar3,lpar4,lpar5
+ parameter(lpar1=34,lpar2=6545,lpar3=4060,lpar4=10,lpar5=33)
+ common /logic1/ ndege(lpar4)
+ common /logic2/ len(lpar4)
+ common /logic3/ lensm(lpar5)
+ common /logic4/ nfu(lpar1)
+ common /logic9/ nia(3,lpar2)
+ common /logic10/ nmxyz(3,lpar2)
+ common /logic11/ npxyz(3,lpar3)
c
c2002 dimension buf2(10,nbls,lnijr,lnklr,ngcd)
dimension buf2(nbls,lnijr,lnklr,ngcd,10)
@@ -1386,10 +1408,15 @@
* nqij,nqkl,
* nder_aa,der2)
implicit real*8 (a-h,o-z)
- common /logic4/ nfu(1)
- common /logic9/ nia(3,1)
- common /logic10/ nmxyz(3,1)
- common /logic11/ npxyz(3,1)
+ integer lpar1,lpar2,lpar3,lpar4,lpar5
+ parameter(lpar1=34,lpar2=6545,lpar3=4060,lpar4=10,lpar5=33)
+ common /logic1/ ndege(lpar4)
+ common /logic2/ len(lpar4)
+ common /logic3/ lensm(lpar5)
+ common /logic4/ nfu(lpar1)
+ common /logic9/ nia(3,lpar2)
+ common /logic10/ nmxyz(3,lpar2)
+ common /logic11/ npxyz(3,lpar3)
c
dimension buf2(nbls,lnijr,lnklr,ngcd,10)
dimension der2(45,nbls,lnij,lnkl,ngcd)
@@ -1462,10 +1489,15 @@
* nqij,nqkl,
* nder_cc,der2)
implicit real*8 (a-h,o-z)
- common /logic4/ nfu(1)
- common /logic9/ nia(3,1)
- common /logic10/ nmxyz(3,1)
- common /logic11/ npxyz(3,1)
+ integer lpar1,lpar2,lpar3,lpar4,lpar5
+ parameter(lpar1=34,lpar2=6545,lpar3=4060,lpar4=10,lpar5=33)
+ common /logic1/ ndege(lpar4)
+ common /logic2/ len(lpar4)
+ common /logic3/ lensm(lpar5)
+ common /logic4/ nfu(lpar1)
+ common /logic9/ nia(3,lpar2)
+ common /logic10/ nmxyz(3,lpar2)
+ common /logic11/ npxyz(3,lpar3)
c
c2002 dimension buf2(10,nbls,lnijr,lnklr,ngcd)
dimension buf2(nbls,lnijr,lnklr,ngcd,10)
@@ -1533,10 +1565,15 @@
* nqij,nqkl,
* nder_bb,der2,xab)
implicit real*8 (a-h,o-z)
- common /logic4/ nfu(1)
- common /logic9/ nia(3,1)
- common /logic10/ nmxyz(3,1)
- common /logic11/ npxyz(3,1)
+ integer lpar1,lpar2,lpar3,lpar4,lpar5
+ parameter(lpar1=34,lpar2=6545,lpar3=4060,lpar4=10,lpar5=33)
+ common /logic1/ ndege(lpar4)
+ common /logic2/ len(lpar4)
+ common /logic3/ lensm(lpar5)
+ common /logic4/ nfu(lpar1)
+ common /logic9/ nia(3,lpar2)
+ common /logic10/ nmxyz(3,lpar2)
+ common /logic11/ npxyz(3,lpar3)
c
c2002 dimension buf2(10,nbls,lnijr,lnklr,ngcd)
dimension buf2(nbls,lnijr,lnklr,ngcd,10)
@@ -1592,10 +1629,15 @@
* nqij,nqkl,
* nder_ab,der2,xab)
implicit real*8 (a-h,o-z)
- common /logic4/ nfu(1)
- common /logic9/ nia(3,1)
- common /logic10/ nmxyz(3,1)
- common /logic11/ npxyz(3,1)
+ integer lpar1,lpar2,lpar3,lpar4,lpar5
+ parameter(lpar1=34,lpar2=6545,lpar3=4060,lpar4=10,lpar5=33)
+ common /logic1/ ndege(lpar4)
+ common /logic2/ len(lpar4)
+ common /logic3/ lensm(lpar5)
+ common /logic4/ nfu(lpar1)
+ common /logic9/ nia(3,lpar2)
+ common /logic10/ nmxyz(3,lpar2)
+ common /logic11/ npxyz(3,lpar3)
c
c2002 dimension buf2(10,nbls,lnijr,lnklr,ngcd)
dimension buf2(nbls,lnijr,lnklr,ngcd,10)
@@ -1668,10 +1710,15 @@
* nqij,nqkl,
* nder_ac,der2)
implicit real*8 (a-h,o-z)
- common /logic4/ nfu(1)
- common /logic9/ nia(3,1)
- common /logic10/ nmxyz(3,1)
- common /logic11/ npxyz(3,1)
+ integer lpar1,lpar2,lpar3,lpar4,lpar5
+ parameter(lpar1=34,lpar2=6545,lpar3=4060,lpar4=10,lpar5=33)
+ common /logic1/ ndege(lpar4)
+ common /logic2/ len(lpar4)
+ common /logic3/ lensm(lpar5)
+ common /logic4/ nfu(lpar1)
+ common /logic9/ nia(3,lpar2)
+ common /logic10/ nmxyz(3,lpar2)
+ common /logic11/ npxyz(3,lpar3)
c
c2002 dimension buf2(10,nbls,lnijr,lnklr,ngcd)
dimension buf2(nbls,lnijr,lnklr,ngcd,10)
@@ -1742,10 +1789,15 @@
* nqij,nqkl,
* nder_bc,der2,xab)
implicit real*8 (a-h,o-z)
- common /logic4/ nfu(1)
- common /logic9/ nia(3,1)
- common /logic10/ nmxyz(3,1)
- common /logic11/ npxyz(3,1)
+ integer lpar1,lpar2,lpar3,lpar4,lpar5
+ parameter(lpar1=34,lpar2=6545,lpar3=4060,lpar4=10,lpar5=33)
+ common /logic1/ ndege(lpar4)
+ common /logic2/ len(lpar4)
+ common /logic3/ lensm(lpar5)
+ common /logic4/ nfu(lpar1)
+ common /logic9/ nia(3,lpar2)
+ common /logic10/ nmxyz(3,lpar2)
+ common /logic11/ npxyz(3,lpar3)
c
c2002 dimension buf2(10,nbls,lnijr,lnklr,ngcd)
dimension buf2(nbls,lnijr,lnklr,ngcd,10)
Index: src/NWints/texas/gencon.f
===================================================================
--- src/NWints/texas/gencon.f (revision 28366)
+++ src/NWints/texas/gencon.f (working copy)
@@ -388,7 +388,15 @@
* lni,lnj,lnk,lnl,lnij,lnkl,lnijkl,mmax,
* nqi,nqj,nqk,nql,nsij,nskl,
* nqij,nqij1,nsij1,nqkl,nqkl1,nskl1,ijbeg,klbeg
- common /logic4/ nfu(1)
+ integer lpar1,lpar2,lpar3,lpar4,lpar5
+ parameter(lpar1=34,lpar2=6545,lpar3=4060,lpar4=10,lpar5=33)
+ common /logic1/ ndege(lpar4)
+ common /logic2/ len(lpar4)
+ common /logic3/ lensm(lpar5)
+ common /logic4/ nfu(lpar1)
+ common /logic9/ nia(3,lpar2)
+ common /logic10/ nmxyz(3,lpar2)
+ common /logic11/ npxyz(3,lpar3)
dimension indx(*)
dimension xt1(nbls1,lt1,lt2)
dimension buf2(nbls,lt1,lt2,ngcd)
@@ -466,7 +474,15 @@
* NQI,NQJ,NQK,NQL,NSIJ,NSKL,
* NQIJ,NQIJ1,NSIJ1,NQKL,NQKL1,NSKL1,ijbeg,klbeg
c
- common /logic4/ nfu(1)
+ integer lpar1,lpar2,lpar3,lpar4,lpar5
+ parameter(lpar1=34,lpar2=6545,lpar3=4060,lpar4=10,lpar5=33)
+ common /logic1/ ndege(lpar4)
+ common /logic2/ len(lpar4)
+ common /logic3/ lensm(lpar5)
+ common /logic4/ nfu(lpar1)
+ common /logic9/ nia(3,lpar2)
+ common /logic10/ nmxyz(3,lpar2)
+ common /logic11/ npxyz(3,lpar3)
c
dimension indx(*)
dimension xt1(nbls1,lt1,lt2)
@@ -579,7 +595,15 @@
* lni,lnj,lnk,lnl,lnij,lnkl,lnijkl,mmax,
* nqi,nqj,nqk,nql,nsij,nskl,
* nqij,nqij1,nsij1,nqkl,nqkl1,nskl1,ijbeg,klbeg
- common /logic4/ nfu(1)
+ integer lpar1,lpar2,lpar3,lpar4,lpar5
+ parameter(lpar1=34,lpar2=6545,lpar3=4060,lpar4=10,lpar5=33)
+ common /logic1/ ndege(lpar4)
+ common /logic2/ len(lpar4)
+ common /logic3/ lensm(lpar5)
+ common /logic4/ nfu(lpar1)
+ common /logic9/ nia(3,lpar2)
+ common /logic10/ nmxyz(3,lpar2)
+ common /logic11/ npxyz(3,lpar3)
dimension indx(*)
dimension xt1(nbls1,lt1,lt2)
dimension gcoef(nbls,ngcd)
Index: src/NWints/texas/shells.f
===================================================================
--- src/NWints/texas/shells.f (revision 28366)
+++ src/NWints/texas/shells.f (working copy)
@@ -5,7 +5,12 @@
common /contr/ ngci,ngcj,ngck,ngcl,lci,lcj,lck,lcl,lcij,lckl
common /lengt/ ilen,jlen,klen,llen, ilen1,jlen1,klen1,llen1
common /gcont/ ngci1,ngcj1,ngck1,ngcl1,ngcd
- common /logic2/ len(1)
+ integer lpar1,lpar4,lpar5
+ parameter(lpar1=34,lpar4=10,lpar5=33)
+ common /logic1/ ndege(lpar4)
+ common /logic2/ len(lpar4)
+ common /logic3/ lensm(lpar5)
+ common /logic4/ nfu(lpar1)
dimension inx(12,*)
c
c This subroutine sets up TYPE and LENGTH of shells and
@@ -93,10 +98,12 @@
* NQI,NQJ,NQK,NQL,NSIJ,NSKL,
* NQIJ,NQIJ1,NSIJ1,NQKL,NQKL1,NSKL1,ijbeg,klbeg
C
- common /logic1/ ndege(1)
- common /logic2/ len(1)
- common /logic3/ lensm(1)
- common /logic4/ nfu(1)
+ integer lpar1,lpar4,lpar5
+ parameter(lpar1=34,lpar4=10,lpar5=33)
+ common /logic1/ ndege(lpar4)
+ common /logic2/ len(lpar4)
+ common /logic3/ lensm(lpar5)
+ common /logic4/ nfu(lpar1)
c
COMMON/SHELL/LSHELLT,LSHELIJ,LSHELKL,LHELP,LCAS2(4),LCAS3(4)
common /lcases/ lcase
@@ -237,7 +244,15 @@
* lni,lnj,lnk,lnl,lnij,lnkl,lnijkl,MMAX,
* NQI,NQJ,NQK,NQL,NSIJ,NSKL,
* NQIJ,NQIJ1,NSIJ1,NQKL,NQKL1,NSKL1,ijbeg,klbeg
- common /logic3/ lensm(1)
+ integer lpar1,lpar2,lpar3,lpar4,lpar5
+ parameter(lpar1=34,lpar2=6545,lpar3=4060,lpar4=10,lpar5=33)
+ common /logic1/ ndege(lpar4)
+ common /logic2/ len(lpar4)
+ common /logic3/ lensm(lpar5)
+ common /logic4/ nfu(lpar1)
+ common /logic9/ nia(3,lpar2)
+ common /logic10/ nmxyz(3,lpar2)
+ common /logic11/ npxyz(3,lpar3)
c
C************************************************************
c
Index: src/NWints/texas/zeroint.f
===================================================================
--- src/NWints/texas/zeroint.f (revision 28366)
+++ src/NWints/texas/zeroint.f (working copy)
@@ -12,7 +12,9 @@
character*11 scftype
character*8 where
common /runtype/ scftype,where
- common /logic4/ nfu(1)
+ integer lpar1
+ parameter (lpar1=34)
+ common /logic4/ nfu(lpar1)
COMMON/SHELL/LSHELLT,LSHELIJ,LSHELKL,LHELP,LCAS2(4),LCAS3(4)
common /lcases/ lcase
common/obarai/

View File

@ -1,54 +0,0 @@
Index: src/nwdft/xc/xc_cvs98.F
===================================================================
--- src/nwdft/xc/xc_cvs98.F (revision 27970)
+++ src/nwdft/xc/xc_cvs98.F (revision 27971)
@@ -160,12 +160,10 @@
GAA = ( delrho(n,1,1)*delrho(n,1,1) +
& delrho(n,2,1)*delrho(n,2,1) +
& delrho(n,3,1)*delrho(n,3,1))/4.0d0
- if(sqrt(gaa).lt.dtol) goto 20
c In the bc95css subroutine, we use 2*TA as the tau, so we do not divide
c the tau by 2 here
TA = tau(n,1)
- if(ta.lt.dtol) goto 20
Call vs98ss(tol_rho,PA,GAA,TA,FA,FPA,FGA,FTA,EUA,ZA,
& ChiA,EUPA,ChiAP,ChiAG,ZAP,ZAT,ijzy)
@@ -213,7 +211,6 @@
c In the bc95css subroutine, we use 2*TA as the tau
c
TA = tau(n,1)*2.0d0
- if(ta.lt.dtol) goto 25
Call vs98ss(tol_rho,PA,GAA,TA,FA,FPA,FGA,FTA,EUA,ZA,
& ChiA,EUPA,ChiAP,ChiAG,ZAP,ZAT,ijzy)
@@ -235,7 +232,6 @@
c
25 continue
PB = rho(n,3)
- if(PB.le.DTol) go to 30
GBB = delrho(n,1,2)*delrho(n,1,2) +
& delrho(n,2,2)*delrho(n,2,2) +
& delrho(n,3,2)*delrho(n,3,2)
@@ -242,7 +238,6 @@
TB = tau(n,2)*2.0d0
- if(tb.lt.dtol) goto 30
Call vs98ss(tol_rho,PB,GBB,TB,FB,FPB,FGB,FTB,EUB,ZB,
& ChiB,EUPB,ChiBP,ChiBG,ZBP,ZBT,ijzy)
Ec = Ec + FB*qwght(n)
@@ -378,10 +373,9 @@
else
call errquit("vs98ss: illegal value of ijzy",ijzy,UERR)
endif
-couch
-c DTol =1.0d-7
+
dtol=tol_rho
- If(PX.le.DTol) then
+ If(PX.le.DTol.or.gx.le.dtol.or.tx.le.dtol) then
EUEG = Zero
Chi = Zero
EUEGP = Zero

View File

@ -1,55 +0,0 @@
Index: src/64to32blas/xgesvd.F
===================================================================
--- src/64to32blas/xgesvd.F (revision 0)
+++ src/64to32blas/xgesvd.F (revision 28050)
@@ -0,0 +1,25 @@
+ SUBROUTINE XGESVD( JOBU, JOBVT, M, N, A, LDA, S, U, LDU,
+ $ VT, LDVT, WORK, LWORK, RWORK, INFO )
+* $Id: ygesvd.F 19697 2010-10-29 16:57:34Z d3y133 $
+ implicit none
+#include "y64.fh"
+ CHARACTER JOBU, JOBVT
+ INTEGER INFO, LDA, LDU, LDVT, LWORK, M, N
+ DOUBLE PRECISION A( LDA, * ), S( * ), U( LDU, * ),
+ $ VT( LDVT, * ), WORK( * ), RWORK(*)
+c
+ INTGR4 INFO4, LDA4, LDU4, LDVT4, LWORK4, M4, N4
+c
+ lda4=lda
+ ldu4=ldu
+ ldvt4=ldvt
+ m4=m
+ n4=n
+ lwork4=lwork
+c
+ call ZGESVD( JOBU, JOBVT, M4, N4, A, LDA4, S, U, LDU4,
+ $ VT, LDVT4, WORK, LWORK4, RWORK, INFO4 )
+ info=info4
+
+ RETURN
+ END
Index: src/64to32blas/GNUmakefile
===================================================================
--- src/64to32blas/GNUmakefile (revision 28049)
+++ src/64to32blas/GNUmakefile (revision 28050)
@@ -10,7 +10,7 @@
ypotri.o ypotrf.o ysygv.o ygeev.o ygeevx.o \
ifily.o\
xscal.o xaxpy.o xgemm.o xheev.o xcopy.o xdotc.o \
- ixamax.o
+ ixamax.o xgesvd.o
ifeq ($(BLAS_SIZE),8)
LIB_DEFINES += -DUSE_INTEGER8
Index: src/config/data.64_to_32
===================================================================
--- src/config/data.64_to_32 (revision 28049)
+++ src/config/data.64_to_32 (revision 28050)
@@ -50,6 +50,7 @@
zdotc xdotc
zdscal xsscal
zgemm xgemm
+zgesvd xgesvd
zgemv xgemv
zgerc xgerc
zhemm xhemm

View File

@ -0,0 +1,77 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class Openscenegraph(Package):
"""OpenSceneGraph is an open source, high performance 3D graphics toolkit
that's used in a variety of visual simulation applications."""
homepage = "http://www.openscenegraph.org"
url = "http://trac.openscenegraph.org/downloads/developer_releases/OpenSceneGraph-3.2.3.zip"
version('3.2.3', '02ffdad7744c747d8fad0d7babb58427')
version('3.1.5', '1c90b851b109849c985006486ef59822')
variant('debug', default=False, description='Builds a debug version of the library')
variant('shared', default=True, description='Builds a shared version of the library')
depends_on('cmake@2.8.7:', type='build')
depends_on('qt@4:')
depends_on('zlib')
def install(self, spec, prefix):
build_type = 'Debug' if '+debug' in spec else 'Release'
shared_status = 'ON' if '+shared' in spec else 'OFF'
cmake_args = std_cmake_args[:]
cmake_args.extend([
'-DCMAKE_BUILD_TYPE={0}'.format(build_type),
'-DDYNAMIC_OPENSCENEGRAPH={0}'.format(shared_status),
'-DDYNAMIC_OPENTHREADS={0}'.format(shared_status),
])
# NOTE: This is necessary in order to allow OpenSceneGraph to compile
# despite containing a number of implicit bool to int conversions.
if spec.satisfies('%gcc'):
cmake_args.extend([
'-DCMAKE_C_FLAGS=-fpermissive',
'-DCMAKE_CXX_FLAGS=-fpermissive',
])
with working_dir('spack-build', create=True):
cmake(
'..',
'-DZLIB_INCLUDE_DIR={0}'.format(spec['zlib'].prefix.include),
'-DZLIB_LIBRARY={0}/libz.{1}'.format(spec['zlib'].prefix.lib,
dso_suffix),
'-DBUILD_OSG_APPLICATIONS=OFF',
'-DOSG_NOTIFY_DISABLED=ON',
'-DLIB_POSTFIX=',
*cmake_args
)
make()
make('install')

View File

@ -6,7 +6,7 @@
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack # NOQA: ignore=E501
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
@ -29,9 +29,9 @@
class Qt(Package):
"""Qt is a comprehensive cross-platform C++ application framework."""
homepage = 'http://qt.io' # NOQA: ignore=E501
url = 'http://download.qt.io/archive/qt/5.7/5.7.0/single/qt-everywhere-opensource-src-5.7.0.tar.gz' # NOQA: ignore=E501
list_url = 'http://download.qt.io/archive/qt/' # NOQA: ignore=E501
homepage = 'http://qt.io'
url = 'http://download.qt.io/archive/qt/5.7/5.7.0/single/qt-everywhere-opensource-src-5.7.0.tar.gz'
list_url = 'http://download.qt.io/archive/qt/'
list_depth = 4
version('5.7.0', '9a46cce61fc64c20c3ac0a0e0fa41b42')
@ -48,12 +48,13 @@ class Qt(Package):
variant('krellpatch', default=False, description="Build with openspeedshop based patch.")
variant('mesa', default=False, description="Depend on mesa.")
variant('gtk', default=False, description="Build with gtkplus.")
variant('webkit', default=False, description="Build the Webkit extension")
variant('examples', default=False, description="Build examples.")
variant('dbus', default=False, description="Build with D-Bus support.")
patch('qt3krell.patch', when='@3.3.8b+krellpatch')
# https://github.com/xboxdrv/xboxdrv/issues/188 # NOQA: ignore=E501
# https://github.com/xboxdrv/xboxdrv/issues/188
patch('btn_trigger_happy.patch', when='@5.7.0:')
patch('qt4-corewlan-new-osx.patch', when='@4')
@ -62,7 +63,7 @@ class Qt(Package):
# Use system openssl for security.
depends_on("openssl")
depends_on("glib")
depends_on("gtkplus", when='+gtk')
depends_on("libxml2")
depends_on("zlib")
@ -72,18 +73,24 @@ class Qt(Package):
depends_on("libpng", when='@4:')
depends_on("libmng")
depends_on("jpeg")
# Webkit
# depends_on("gperf")
# depends_on("flex", type='build')
# depends_on("bison", type='build')
# depends_on("ruby", type='build')
depends_on("icu4c")
# OpenGL hardware acceleration
depends_on("mesa", when='@4:+mesa')
depends_on("libxcb", when=sys.platform != 'darwin')
# Webkit
depends_on("flex", when='+webkit', type='build')
depends_on("bison", when='+webkit', type='build')
depends_on("gperf", when='+webkit')
depends_on("fontconfig", when='+webkit')
# Multimedia
# depends_on("gstreamer", when='+multimedia')
# depends_on("pulse", when='+multimedia')
# depends_on("flac", when='+multimedia')
# depends_on("ogg", when='+multimedia')
def url_for_version(self, version):
# URL keeps getting more complicated with every release
url = self.list_url
@ -115,12 +122,15 @@ def url_for_version(self, version):
return url
def setup_environment(self, spack_env, env):
env.set('QTDIR', self.prefix)
def setup_environment(self, spack_env, run_env):
run_env.set('QTDIR', self.prefix)
def setup_dependent_environment(self, spack_env, run_env, dspec):
spack_env.set('QTDIR', self.prefix)
def setup_dependent_package(self, module, ext_spec):
module.qmake = Executable(join_path(self.spec.prefix.bin, 'qmake'))
def patch(self):
if self.spec.satisfies('@4'):
# Fix qmake compilers in the default mkspec
@ -130,7 +140,7 @@ def patch(self):
'mkspecs/common/g++-base.conf')
# Necessary to build with GCC 6 and other modern compilers
# http://stackoverflow.com/questions/10354371/ # NOQA: ignore=E501
# http://stackoverflow.com/questions/10354371/
filter_file('(^QMAKE_CXXFLAGS .*)', r'\1 -std=gnu++98',
'mkspecs/common/gcc-base.conf')
@ -211,7 +221,7 @@ def common_config_args(self):
# Don't disable all the database drivers, but should
# really get them into spack at some point.
@when('@3') # NOQA: ignore=F811
@when('@3')
def configure(self):
# A user reported that this was necessary to link Qt3 on ubuntu
os.environ['LD_LIBRARY_PATH'] = os.getcwd() + '/lib'
@ -222,36 +232,40 @@ def configure(self):
'-release',
'-fast')
@when('@4') # NOQA: ignore=F811
@when('@4')
def configure(self):
configure('-fast',
'-no-webkit',
'{0}-gtkstyle'.format('' if '+gtk' in self.spec else '-no'),
'-{0}gtkstyle'.format('' if '+gtk' in self.spec else 'no-'),
'-{0}webkit'.format('' if '+webkit' in self.spec else 'no-'),
'-arch', str(self.spec.architecture.target),
*self.common_config_args)
@when('@5.0:5.6') # NOQA: ignore=F811
@when('@5.0:5.6')
def configure(self):
webkit_args = [] if '+webkit' in self.spec else ['-skip', 'qtwebkit']
configure('-no-eglfs',
'-no-directfb',
'{0}-gtkstyle'.format('' if '+gtk' in self.spec else '-no'),
'-skip', 'qtwebkit',
*self.common_config_args)
'-{0}gtkstyle'.format('' if '+gtk' in self.spec else 'no-'),
*(webkit_args + self.common_config_args))
@when('@5.7:') # NOQA: ignore=F811
@when('@5.7:')
def configure(self):
args = self.common_config_args
config_args = self.common_config_args
if not sys.platform == 'darwin':
args.extend([
config_args.extend([
'-qt-xcb',
])
if '~webkit' in self.spec:
config_args.extend([
'-skip', 'webengine',
])
configure('-no-eglfs',
'-no-directfb',
'{0}-gtk'.format('' if '+gtk' in self.spec else '-no'),
'-skip', 'webengine',
*args)
'-{0}gtk'.format('' if '+gtk' in self.spec else 'no-'),
*config_args)
def install(self, spec, prefix):
self.configure()

View File

@ -0,0 +1,45 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class Sdl2(Package):
"""Simple DirectMedia Layer is a cross-platform development library designed
to provide low level access to audio, keyboard, mouse, joystick, and
graphics hardware via OpenGL and Direct3D."""
homepage = "https://wiki.libsdl.org/FrontPage"
url = "https://libsdl.org/release/SDL2-2.0.5.tar.gz"
version('2.0.5', 'd4055424d556b4a908aa76fad63abd3c')
depends_on('cmake', type='build')
def install(self, spec, prefix):
with working_dir('spack-build', create=True):
cmake('..', *std_cmake_args)
make()
make('install')

View File

@ -0,0 +1,43 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class Sdl2Image(Package):
"""SDL is designed to provide the bare bones of creating a graphical
program. """
homepage = "http://sdl.beuc.net/sdl.wiki/SDL_image"
url = "https://www.libsdl.org/projects/SDL_image/release/SDL2_image-2.0.1.tar.gz"
version('2.0.1', 'd94b94555ba022fa249a53a021dc3606')
depends_on('sdl2')
def install(self, spec, prefix):
configure('--prefix={0}'.format(prefix))
make()
make('install')

View File

@ -32,7 +32,7 @@ class Texlive(Package):
homepage = "http://www.tug.org/texlive"
version('live', 'e671eea7f142c438959493cc42a2a59b',
version('live', '8402774984c67fed4a18b7f6491243a6',
url="http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz")
# There does not seem to be a complete list of schemes.