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 version ``8.2.1.`` of the ``Foo`` package above from
``http://example.com/foo-8.2.1.tar.gz``. ``http://example.com/foo-8.2.1.tar.gz``.
If spack *cannot* extrapolate the URL from the ``url`` field by If the URL is particularly complicated or changes based on the release,
default, you can write your own URL generation algorithm in place of you can override the default URL generation algorithm by defining your
the ``url`` declaration. For example: 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 .. literalinclude:: ../../../var/spack/repos/builtin/packages/hdf5/package.py
:linenos: :pyobject: Hdf5.url_for_version
class Foo(Package): With the use of this ``url_for_version()``, Spack knows to download HDF5 ``1.8.16``
version('8.2.1', '4136d7b4c04df68b686570afa26988ac') 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``.
def url_for_version(self, version):
return 'http://example.com/version_%s/foo-%s.tar.gz' \
% (version, version)
...
If a URL cannot be derived systematically, you can add an explicit URL You'll notice that HDF5's ``url_for_version()`` function makes use of a special
for a particular version: ``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 .. code-block:: python
version('8.2.1', '4136d7b4c04df68b686570afa26988ac', version('8.2.1', '4136d7b4c04df68b686570afa26988ac',
url='http://example.com/foo-8.2.1-special-version.tar.gz') 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 This is common for Python packages that download from PyPi. Since newer
version can't simply be substituted in the original ``url`` to download URLs often contain a unique hash for each version, there is no
construct the new one for ``8.2.1``. way to guess the URL systematically.
When you supply a custom URL for a version, Spack uses that URL When you supply a custom URL for a version, Spack uses that URL
*verbatim* and does not perform extrapolation. *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[@]}) ;; args=("${args[@]}" ${SPACK_LDLIBS[@]}) ;;
esac 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[@]}") full_command=("$command" "${args[@]}")
# In test command mode, write out full command for Spack tests. # 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): not b.external and b.external_module):
# We're choosing between different providers, so # We're choosing between different providers, so
# maintain order from provider sort # 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) result = cmp_specs(a, b)
if result != 0: if result != 0:

View File

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

View File

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

View File

@ -24,62 +24,106 @@
############################################################################## ##############################################################################
import os import os
from llnl.util.filesystem import join_path
import spack import spack
import spack.stage
import spack.error 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 from spack.util.executable import which
# Patch tool for patching archives.
_patch = which("patch", required=True)
class Patch(object): class Patch(object):
"""This class describes a patch to be applied to some expanded """Base class to describe a patch that needs to be applied to some
source code.""" 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): 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_or_url = path_or_url
self.path = None
self.url = None
self.level = level 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: if not isinstance(self.level, int) or not self.level >= 0:
raise ValueError("Patch level needs to be a non-negative integer.") 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): def apply(self, stage):
"""Fetch this patch, if necessary, and apply it to the source """Apply the patch at self.path to the source code in the
code in the supplied stage. supplied stage
Args:
stage: stage for the package that needs to be patched
""" """
stage.chdir_to_source() 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. class FilePatch(Patch):
_patch('-s', '-p', str(self.level), '-i', patch_file) """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: pkg_dir = spack.repo.dirname_for_package_name(pkg.name)
if patch_stage: self.path = join_path(pkg_dir, path_or_url)
patch_stage.destroy() 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): class NoSuchPatchFileError(spack.error.SpackError):

View File

@ -545,6 +545,10 @@ def chdir_to_source(self):
def archive_file(self): def archive_file(self):
return self[0].archive_file return self[0].archive_file
@property
def mirror_path(self):
return self[0].mirror_path
class DIYStage(object): class DIYStage(object):
"""Simple class that allows any directory to be a spack stage.""" """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.dotted, '1.2.3')
self.assertEqual(v.dashed, '1-2-3') self.assertEqual(v.dashed, '1-2-3')
self.assertEqual(v.underscored, '1_2_3') self.assertEqual(v.underscored, '1_2_3')
self.assertEqual(v.joined, '123')
def test_repr_and_str(self): def test_repr_and_str(self):

View File

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

View File

@ -146,6 +146,10 @@ def underscored(self):
def dashed(self): def dashed(self):
return '-'.join(str(x) for x in self.version) 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): def up_to(self, index):
"""Return a version string up to the specified component, exclusive. """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'. 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('1.0', '1234567890abcdef1234567890abcdef')
version('2.0', '234567890abcdef1234567890abcdef1') version('2.0', '234567890abcdef1234567890abcdef1')
version('2.1', '34567890abcdef1234567890abcdef12')
version('2.2', '4567890abcdef1234567890abcdef123')
provides('stuff') provides('stuff', when='@1.0:')
def install(self, spec, prefix): def install(self, spec, prefix):
pass 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/" homepage = "http://arma.sourceforge.net/"
url = "http://sourceforge.net/projects/arma/files/armadillo-7.200.1.tar.xz" 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.2', 'b21585372d67a8876117fd515d8cf0a2')
version('7.200.1', 'ed86d6df0058979e107502e1fe3e469e') 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" 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" 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') version('0.61a', '22c24a7a9349dd7ec0e24531925a02d9')
depends_on("libtool", type="build") depends_on("libtool", type="build")
patch("Makefile.spack.patch") 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): def install(self, spec, prefix):
# The Makefile isn't portable; use our own instead # The Makefile isn't portable; use our own instead
makeargs = ["-f", "Makefile.spack", "PREFIX=%s" % prefix] makeargs = ["-f", "Makefile.spack", "PREFIX=%s" % prefix]

View File

@ -34,9 +34,9 @@ class Cfitsio(Package):
version('3.370', 'abebd2d02ba5b0503c633581e3bfa116') 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' 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): def install(self, spec, prefix):
configure('--prefix=' + prefix) configure('--prefix=' + prefix)

View File

@ -36,12 +36,15 @@ class Cryptopp(Package):
""" """
homepage = "http://www.cryptopp.com" homepage = "http://www.cryptopp.com"
base_url = "http://www.cryptopp.com"
version('5.6.3', '3c5b70e2ec98b7a24988734446242d07') version('5.6.3', '3c5b70e2ec98b7a24988734446242d07')
version('5.6.2', '7ed022585698df48e65ce9218f6c6a67') version('5.6.2', '7ed022585698df48e65ce9218f6c6a67')
version('5.6.1', '96cbeba0907562b077e26bcffb483828') 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): def install(self, spec, prefix):
make() make()
@ -51,7 +54,3 @@ def install(self, spec, prefix):
mkdirp(prefix.lib) mkdirp(prefix.lib)
install('libcryptopp.a', 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" homepage = "http://cgm.cs.mcgill.ca/~avis/C/lrs.html"
url = "http://cgm.cs.mcgill.ca/~avis/C/lrslib/archive/lrslib-062.tar.gz" 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.2', 'be5da7b3b90cc2be628dcade90c5d1b9')
version('6.1', '0b3687c8693cd7d1f234a3f65e147551') version('6.1', '0b3687c8693cd7d1f234a3f65e147551')
version('6.0', 'd600a2e62969ad03f7ab2f85f1b3709c') version('6.0', 'd600a2e62969ad03f7ab2f85f1b3709c')
@ -51,6 +47,10 @@ def url_for_version(self, version):
patch("Makefile.spack.patch") 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): def install(self, spec, prefix):
# The Makefile isn't portable; use our own instead # The Makefile isn't portable; use our own instead
makeargs = ["-f", "Makefile.spack", makeargs = ["-f", "Makefile.spack",

View File

@ -64,6 +64,7 @@ class Mumps(Package):
depends_on('metis@5:', when='+metis') depends_on('metis@5:', when='+metis')
depends_on('parmetis', when="+parmetis") depends_on('parmetis', when="+parmetis")
depends_on('blas') depends_on('blas')
depends_on('lapack')
depends_on('scalapack', when='+mpi') depends_on('scalapack', when='+mpi')
depends_on('mpi', when='+mpi') depends_on('mpi', when='+mpi')
@ -78,8 +79,9 @@ def write_makefile_inc(self):
raise RuntimeError( raise RuntimeError(
'You cannot use the variants parmetis or ptscotch without mpi') 'You cannot use the variants parmetis or ptscotch without mpi')
blas = self.spec['blas'].blas_libs lapack_blas = (self.spec['lapack'].lapack_libs +
makefile_conf = ["LIBBLAS = %s" % blas.ld_flags] self.spec['blas'].blas_libs)
makefile_conf = ["LIBBLAS = %s" % lapack_blas.joined()]
orderings = ['-Dpord'] orderings = ['-Dpord']
@ -154,7 +156,13 @@ def write_makefile_inc(self):
# TODO: change the value to the correct one according to the # TODO: change the value to the correct one according to the
# compiler possible values are -DAdd_, -DAdd__ and/or -DUPPER # 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 '+shared' in self.spec:
if sys.platform == 'darwin': if sys.platform == 'darwin':

View File

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

View File

@ -33,14 +33,14 @@ class Nauty(Package):
homepage = "http://pallini.di.uniroma1.it/index.html" homepage = "http://pallini.di.uniroma1.it/index.html"
url = "http://pallini.di.uniroma1.it/nauty26r7.tar.gz" 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.6r7', 'b2b18e03ea7698db3fbe06c5d76ad8fe')
version('2.6r5', '91b03a7b069962e94fc9aac8831ce8d2') version('2.6r5', '91b03a7b069962e94fc9aac8831ce8d2')
version('2.5r9', 'e8ecd08b0892a1fb13329c147f08de6d') 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): def install(self, spec, prefix):
configure('--prefix=%s' % prefix) configure('--prefix=%s' % prefix)
make() 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) depends_on('python@2.7:2.8', type=nolink)
# patches for 6.6-27746: # patches for 6.6-27746:
# TODO: add support for achived patches, i.e. urls_for_patches = {
# http://www.nwchem-sw.org/images/Tddft_mxvec20.patch.gz '@6.6': [
patch('Config_libs66.patch', when='@6.6', level=0) ('http://www.nwchem-sw.org/images/Tddft_mxvec20.patch.gz', 'f91c6a04df56e228fe946291d2f38c9a'),
patch('Gcc6_optfix.patch', when='@6.6', level=0) ('http://www.nwchem-sw.org/images/Tools_lib64.patch.gz', 'b71e8dbad27f1c97b60a53ec34d3f6e0'),
patch('Util_gnumakefile.patch', when='@6.6', level=0) ('http://www.nwchem-sw.org/images/Config_libs66.patch.gz', 'cc4be792e7b5128c3f9b7b1167ade2cf'),
patch('cosmo_dftprint.patch', when='@6.6', level=0) ('http://www.nwchem-sw.org/images/Cosmo_meminit.patch.gz', '1d94685bf3b72d8ecd40c46334348ca7'),
patch('cosmo_meminit.patch', when='@6.6', level=0) ('http://www.nwchem-sw.org/images/Sym_abelian.patch.gz', 'b19cade61c787916a73a4aaf6e2445d6'),
patch('dplot_tolrho.patch', when='@6.6', level=0) ('http://www.nwchem-sw.org/images/Xccvs98.patch.gz', 'b9aecc516a3551dcf871cb2f066598cb'),
patch('driver_smalleig.patch', when='@6.6', level=0) ('http://www.nwchem-sw.org/images/Dplot_tolrho.patch.gz', '0a5bdad63d2d0ffe46b28db7ad6d9cec'),
patch('ga_argv.patch', when='@6.6', level=0) ('http://www.nwchem-sw.org/images/Driver_smalleig.patch.gz', 'c3f609947220c0adb524b02c316b5564'),
patch('ga_defs.patch', when='@6.6', level=0) ('http://www.nwchem-sw.org/images/Ga_argv.patch.gz', '7a665c981cfc17187455e1826f095f6f'),
patch('raman_displ.patch', when='@6.6', level=0) ('http://www.nwchem-sw.org/images/Raman_displ.patch.gz', 'ed334ca0b2fe81ce103ef8cada990c4c'),
patch('sym_abelian.patch', when='@6.6', level=0) ('http://www.nwchem-sw.org/images/Ga_defs.patch.gz', '0c3cab4d5cbef5acac16ffc5e6f869ef'),
patch('tddft_mxvec20.patch', when='@6.6', level=0) ('http://www.nwchem-sw.org/images/Zgesvd.patch.gz', '8fd5a11622968ef4351bd3d5cddce8f2'),
patch('tools_lib64.patch', when='@6.6', level=0) ('http://www.nwchem-sw.org/images/Cosmo_dftprint.patch.gz', '64dcf27f3c6ced2cadfb504fa66e9d08'),
patch('txs_gcc6.patch', when='@6.6', level=0) ('http://www.nwchem-sw.org/images/Txs_gcc6.patch.gz', '56595a7252da051da13f94edc54fe059'),
patch('Util_getppn.patch', when='@6.6', level=0) ('http://www.nwchem-sw.org/images/Gcc6_optfix.patch.gz', 'c6642c21363c09223784b47b8636047d'),
patch('xccvs98.patch', when='@6.6', level=0) ('http://www.nwchem-sw.org/images/Util_gnumakefile.patch.gz', 'af74ea2e32088030137001ce5cb047c5'),
patch('zgesdv.patch', when='@6.6', level=0) ('http://www.nwchem-sw.org/images/Util_getppn.patch.gz', '8dec8ee198bf5ec4c3a22a6dbf31683c'),
patch('Gcc6_macs_optfix.patch', when='@6.6', level=0) ('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): def install(self, spec, prefix):
scalapack = spec['scalapack'].scalapack_libs 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. # Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188 # 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. # Please also see the LICENSE file for our notice and the LGPL.
# #
# This program is free software; you can redistribute it and/or modify # This program is free software; you can redistribute it and/or modify
@ -29,9 +29,9 @@
class Qt(Package): class Qt(Package):
"""Qt is a comprehensive cross-platform C++ application framework.""" """Qt is a comprehensive cross-platform C++ application framework."""
homepage = 'http://qt.io' # 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' # 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'
list_url = 'http://download.qt.io/archive/qt/' # NOQA: ignore=E501 list_url = 'http://download.qt.io/archive/qt/'
list_depth = 4 list_depth = 4
version('5.7.0', '9a46cce61fc64c20c3ac0a0e0fa41b42') version('5.7.0', '9a46cce61fc64c20c3ac0a0e0fa41b42')
@ -48,12 +48,13 @@ class Qt(Package):
variant('krellpatch', default=False, description="Build with openspeedshop based patch.") variant('krellpatch', default=False, description="Build with openspeedshop based patch.")
variant('mesa', default=False, description="Depend on mesa.") variant('mesa', default=False, description="Depend on mesa.")
variant('gtk', default=False, description="Build with gtkplus.") 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('examples', default=False, description="Build examples.")
variant('dbus', default=False, description="Build with D-Bus support.") variant('dbus', default=False, description="Build with D-Bus support.")
patch('qt3krell.patch', when='@3.3.8b+krellpatch') 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('btn_trigger_happy.patch', when='@5.7.0:')
patch('qt4-corewlan-new-osx.patch', when='@4') patch('qt4-corewlan-new-osx.patch', when='@4')
@ -62,7 +63,7 @@ class Qt(Package):
# Use system openssl for security. # Use system openssl for security.
depends_on("openssl") depends_on("openssl")
depends_on("glib")
depends_on("gtkplus", when='+gtk') depends_on("gtkplus", when='+gtk')
depends_on("libxml2") depends_on("libxml2")
depends_on("zlib") depends_on("zlib")
@ -72,18 +73,24 @@ class Qt(Package):
depends_on("libpng", when='@4:') depends_on("libpng", when='@4:')
depends_on("libmng") depends_on("libmng")
depends_on("jpeg") 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") depends_on("icu4c")
# OpenGL hardware acceleration # OpenGL hardware acceleration
depends_on("mesa", when='@4:+mesa') depends_on("mesa", when='@4:+mesa')
depends_on("libxcb", when=sys.platform != 'darwin') 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): def url_for_version(self, version):
# URL keeps getting more complicated with every release # URL keeps getting more complicated with every release
url = self.list_url url = self.list_url
@ -115,12 +122,15 @@ def url_for_version(self, version):
return url return url
def setup_environment(self, spack_env, env): def setup_environment(self, spack_env, run_env):
env.set('QTDIR', self.prefix) run_env.set('QTDIR', self.prefix)
def setup_dependent_environment(self, spack_env, run_env, dspec): def setup_dependent_environment(self, spack_env, run_env, dspec):
spack_env.set('QTDIR', self.prefix) 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): def patch(self):
if self.spec.satisfies('@4'): if self.spec.satisfies('@4'):
# Fix qmake compilers in the default mkspec # Fix qmake compilers in the default mkspec
@ -130,7 +140,7 @@ def patch(self):
'mkspecs/common/g++-base.conf') 'mkspecs/common/g++-base.conf')
# Necessary to build with GCC 6 and other modern compilers # 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', filter_file('(^QMAKE_CXXFLAGS .*)', r'\1 -std=gnu++98',
'mkspecs/common/gcc-base.conf') 'mkspecs/common/gcc-base.conf')
@ -211,7 +221,7 @@ def common_config_args(self):
# Don't disable all the database drivers, but should # Don't disable all the database drivers, but should
# really get them into spack at some point. # really get them into spack at some point.
@when('@3') # NOQA: ignore=F811 @when('@3')
def configure(self): def configure(self):
# A user reported that this was necessary to link Qt3 on ubuntu # A user reported that this was necessary to link Qt3 on ubuntu
os.environ['LD_LIBRARY_PATH'] = os.getcwd() + '/lib' os.environ['LD_LIBRARY_PATH'] = os.getcwd() + '/lib'
@ -222,36 +232,40 @@ def configure(self):
'-release', '-release',
'-fast') '-fast')
@when('@4') # NOQA: ignore=F811 @when('@4')
def configure(self): def configure(self):
configure('-fast', 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), '-arch', str(self.spec.architecture.target),
*self.common_config_args) *self.common_config_args)
@when('@5.0:5.6') # NOQA: ignore=F811 @when('@5.0:5.6')
def configure(self): def configure(self):
webkit_args = [] if '+webkit' in self.spec else ['-skip', 'qtwebkit']
configure('-no-eglfs', configure('-no-eglfs',
'-no-directfb', '-no-directfb',
'{0}-gtkstyle'.format('' if '+gtk' in self.spec else '-no'), '-{0}gtkstyle'.format('' if '+gtk' in self.spec else 'no-'),
'-skip', 'qtwebkit', *(webkit_args + self.common_config_args))
*self.common_config_args)
@when('@5.7:') # NOQA: ignore=F811 @when('@5.7:')
def configure(self): def configure(self):
args = self.common_config_args config_args = self.common_config_args
if not sys.platform == 'darwin': if not sys.platform == 'darwin':
args.extend([ config_args.extend([
'-qt-xcb', '-qt-xcb',
]) ])
if '~webkit' in self.spec:
config_args.extend([
'-skip', 'webengine',
])
configure('-no-eglfs', configure('-no-eglfs',
'-no-directfb', '-no-directfb',
'{0}-gtk'.format('' if '+gtk' in self.spec else '-no'), '-{0}gtk'.format('' if '+gtk' in self.spec else 'no-'),
'-skip', 'webengine', *config_args)
*args)
def install(self, spec, prefix): def install(self, spec, prefix):
self.configure() 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" 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") url="http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz")
# There does not seem to be a complete list of schemes. # There does not seem to be a complete list of schemes.