aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sci-physics/abinit')
-rw-r--r--sci-physics/abinit/Manifest11
-rw-r--r--sci-physics/abinit/abinit-6.4.2.ebuild217
-rw-r--r--sci-physics/abinit/abinit-6.4.3.ebuild218
-rw-r--r--sci-physics/abinit/abinit-6.6.1.ebuild209
-rw-r--r--sci-physics/abinit/files/6.0.3-libxc-flags.patch29
-rw-r--r--sci-physics/abinit/files/6.2.2-configure-fortran-calls.patch26
-rw-r--r--sci-physics/abinit/files/6.2.2-long-message.patch23
-rw-r--r--sci-physics/abinit/files/6.2.2-non-plugin-libs.patch260
-rw-r--r--sci-physics/abinit/files/6.4.2-openmp.patch3096
9 files changed, 0 insertions, 4089 deletions
diff --git a/sci-physics/abinit/Manifest b/sci-physics/abinit/Manifest
index 8dcc14b71..3ff0423b2 100644
--- a/sci-physics/abinit/Manifest
+++ b/sci-physics/abinit/Manifest
@@ -1,18 +1,7 @@
AUX 6.0.3-fftw.patch 571 RMD160 b15b2905fd46a1c0f6fcc99c317b1b52a327ef12 SHA1 b518c2db591d93a425598e780d1edd971fe38e0d SHA256 ad8e1810dcdd19a23baf7d951ce0c7af1b47e19e934c5cc6cb598431cfd2e21c
-AUX 6.0.3-libxc-flags.patch 1674 RMD160 6f81e21f8a33f16c9cd270acabf9f756650c1be2 SHA1 53caa98d3719d556289d1db7b4bea1897abbabaa SHA256 a36af15f2b1682011365b7261adc86f654513243d2ebf8c514c287fec7f18022
AUX 6.2.2-change-default-directories.patch 1006 RMD160 ba252ecc7f5592f4df762716582c6e331a5e994f SHA1 4d79a7a261211c44692c09e63197261bfdb2c06e SHA256 8865966dd0d94b00443faae62b58e9938a5ba5d15bc32b59f79f815922f91c44
-AUX 6.2.2-configure-fortran-calls.patch 1056 RMD160 0adc386a28545d89b2aabc8faec72dd2e1b81565 SHA1 05037e1fea8f6afedb17df9563e9cbe1bb85146a SHA256 2cc4d875090856cc6a653df67aa1d46dea0b5bf76585bc73735079a33bddca48
-AUX 6.2.2-long-message.patch 856 RMD160 78f68e28061f1611120e065aa9cc7dde5d55a13c SHA1 443528ca06c89f6b8df49813b3a9735e4f0631c8 SHA256 0e8e2b85ed366a8fe279298bbc47409d08268b94f48bb18f9d71a0367c900c54
-AUX 6.2.2-non-plugin-libs.patch 5341 RMD160 1dffa7d14a8b0711ae9f681df073bf0355983300 SHA1 db2b48bdd983e7d9b4be3e4bb2181237337a3a6d SHA256 5ca6435a11ee07db148c8f542307fa0d473455e6c4fb6194b73176bb66aaabd1
-AUX 6.4.2-openmp.patch 131318 RMD160 782f451384b916e9d5b990769a47b162412fc7e4 SHA1 e002581dcfeb2a3c0214cdc302dd9be9f014dc4a SHA256 5fed737e0a8758c4fe389df16391c7a99e2546416225aec89fe05b36ca937fc4
AUX 6.6.1-openmp.patch 19735 RMD160 6e6e42a5f030bdfb859583dd5e72ea434e980bcf SHA1 51c032ca7f52fe4e1c4afe86f2cb019166d4afbb SHA256 9568ace3732159ae395a3eef069338ded1d734becde1b8b382a58adf2f254933
-DIST abinit-6.4.2.tar.gz 42499278 RMD160 2673b3490f84fa3ec341d68adbf8a5e36ed9afc9 SHA1 88d15b7ab9598daac448748bfc0756808d2b75cf SHA256 4655fdc15237eb55cbca511c4ae606a42dee7b093b119cc472912404ebdb7a41
-DIST abinit-6.4.3.tar.gz 42502489 RMD160 5d1b4d03079570f29bc1195c6ac12ace3d5e8426 SHA1 463030fa2c91c25a7c3a519990b33819c55924ce SHA256 a2abceb5f38923829d3232f370d947b4c0a45912941690075aa97a72afdf81a8
-DIST abinit-6.6.1.tar.gz 41106793 RMD160 fb5dc06e06aa229e7e036f50376b4eca6400e79b SHA1 f81d2eec5aea403671ec071d0bc91a116a303492 SHA256 12a0d1b0c85dc0fdc47f8ac0213077de22f53a7bfb5b4b849cecd19a90ac4fca
DIST abinit-6.6.2.tar.gz 41103295 RMD160 d231811cb393c4cd1a51447f924715b8f617f56f SHA1 b3710bad16535a0eac6d7924b2a0d44b871de71d SHA256 c2d8e132591bbf96fa2f868fae4e39df92050b63090023ef561a163ca568a05b
-EBUILD abinit-6.4.2.ebuild 6671 RMD160 fa2fee9d5a35a130c03aa8f38a9993d20f7ef5df SHA1 d6107590dd8191c3bb6a27ea6ce8535afc6356c7 SHA256 2eb6d7fdff190a0fdf57c922ef0375444a82a21e8727246228e673228a215574
-EBUILD abinit-6.4.3.ebuild 6936 RMD160 38bdb6145e4dea71a9b9f08628955cb2a47f562c SHA1 f063b38dbd871c36751f23301990e27c636d121e SHA256 44e53c19079ae9b74cb79df6889ea759a6e8e4f93c61f4a1f868e94dad3ee819
-EBUILD abinit-6.6.1.ebuild 6580 RMD160 1e756d01fbc1756d7dda254a3ae4d7d1471419e7 SHA1 d157cc6d86afedca3ab5feefde995c36a28f7bf0 SHA256 dd6cca76f72d5388ec00e619ba1a611217505161f260d4914bf3063d1b1ed685
EBUILD abinit-6.6.2.ebuild 6687 RMD160 c97b33c623d0854b0131277e32b8ee3b635d4e07 SHA1 ab45057fb6a95f7cf45dbe9f2c1fc03c5480e4ad SHA256 c393f67f67848286201298860df317625313501bf735fdfda3cb4e8793893125
MISC ChangeLog 1990 RMD160 92c66e6040697743b23cbf1dc75d569387bc7c0b SHA1 39c9682bde0f628299b5c1327a30623a9de71fea SHA256 f671f6c97dab6f4fd1036300247676d11cc6ba9dd1c4334a375acb62b912ba78
MISC metadata.xml 1225 RMD160 bebdbae077b05fe05bac5665b5b4d1f654620366 SHA1 464ff6d71e8b44df92c421a984c1f6a9cae38299 SHA256 71e7a9928f03914c9c5e6c45e6a6185a50f5c3dda7fbf791d3ca238dbee6727e
diff --git a/sci-physics/abinit/abinit-6.4.2.ebuild b/sci-physics/abinit/abinit-6.4.2.ebuild
deleted file mode 100644
index ac9a31e97..000000000
--- a/sci-physics/abinit/abinit-6.4.2.ebuild
+++ /dev/null
@@ -1,217 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="3"
-
-inherit autotools eutils multilib toolchain-funcs
-
-DESCRIPTION="Find total energy, charge density and electronic structure using density functional theory"
-HOMEPAGE="http://www.abinit.org/"
-SRC_URI="http://ftp.abinit.org/${P}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~ppc ~x86"
-IUSE="cuda -debug +fftw +fox gsl +hdf5 mpi +netcdf python -smp +threads -test -vdwxc"
-
-RDEPEND="=sci-libs/bigdft-1.2.0.2
- sci-libs/etsf_io
- =sci-libs/libxc-1.0[fortran]
- fox? ( sci-libs/fox[dom,sax,wcml,wxml] )
- netcdf? (
- sci-libs/netcdf[fortran]
- hdf5? (
- sci-libs/netcdf[fortran,hdf5]
- )
- )
- hdf5? ( sci-libs/hdf5[fortran] )
- sci-libs/wannier90
- virtual/blas
- virtual/lapack
- gsl? ( sci-libs/gsl )
- fftw? (
- sci-libs/fftw:2.1
- threads? ( sci-libs/fftw:2.1[threads] )
- )
- mpi? ( virtual/mpi )
- python? ( dev-python/numpy )
- cuda? ( dev-util/nvidia-cuda-sdk )"
-DEPEND="${RDEPEND}
- dev-util/pkgconfig
- dev-perl/Text-Markdown"
-
-WANT_AUTOCONF="latest"
-WANT_AUTOMAKE="latest"
-
-S=${WORKDIR}/${P%[a-z]}
-
-pkg_setup() {
- # Doesn't compile with gcc-4.0, only >=4.1
- if [[ $(tc-getFC) == *gfortran ]]; then
- if [[ $(gcc-major-version) -eq 4 ]] \
- && [[ $(gcc-minor-version) -lt 1 ]]; then
- die "Requires gcc-4.1 or newer"
- fi
- fi
-}
-
-src_prepare() {
- epatch "${FILESDIR}"/6.2.2-change-default-directories.patch
- epatch "${FILESDIR}"/6.2.2-configure-fortran-calls.patch
- epatch "${FILESDIR}"/6.0.3-fftw.patch
- epatch "${FILESDIR}"/6.2.2-non-plugin-libs.patch
- epatch "${FILESDIR}"/6.4.2-openmp.patch
-# To compile against libxc-1.0 or the current SVN HEAD:
- epatch "${FILESDIR}"/6.0.3-libxc-flags.patch
- eautoreconf
- find "${S}" -type f -exec grep -q -- '-llibxc' {} \; \
- -exec sed -i -e's/-llibxc/-lxc/g' {} \;
-}
-
-src_configure() {
- local libs="-L/usr/$(get_libdir)"
- local modules="-I/usr/$(get_libdir)/finclude"
- local FoX_libs="${libs} -lFoX_dom -lFoX_sax -lFoX_wcml -lFoX_wxml -lFoX_common -lFoX_utils -lFoX_fsys"
- local trio_flavor="etsf"
- use fox && trio_flavor="${trio_flavor}+fox"
- use hdf5 && trio_flavor="${trio_flavor}+hdf"
- use netcdf && trio_flavor="${trio_flavor}+netcdf"
- local netcdff_libs="-lnetcdff"
- use hdf5 && netcdff_libs="${netcdff_libs} -lhdf5_fortran"
- local trio_libs="-letsf_io -letsf_io_low_level -letsf_io_utils"
- use fox && trio_libs="${trio_libs} ${FoX_libs}"
- use netcdf && trio_libs="${trio_libs} $(pkg-config --libs netcdf) -lnetcdff"
- use hdf5 && trio_libs="${trio_libs} -lhdf5_fortran"
- local fft_flavor="fftw2"
- local fft_libs="-L/usr/lib"
- if use threads; then
- fft_libs="${fft_libs} -lfftw_threads"
- fft_flavor="fftw2-threads"
- fi
- fft_libs="${fft_libs} -lfftw -lrt -lm"
- if use mpi; then
- MY_FC="mpif90"
- MY_CC="mpicc"
- MY_CXX="mpic++"
- else
- MY_FC="$(tc-getFC)"
- MY_CC="$(tc-getCC)"
- MY_CXX="$(tc-getCXX)"
- fi
- if use smp; then
- MY_FC="${MY_FC} -fopenmp"
- MY_CC="${MY_CC} -fopenmp"
- MY_CXX="${MY_CXX} -fopenmp"
- fi
- MARKDOWN=Markdown.pl econf \
- $(use_enable debug debug enhanced) \
- $(use_enable mpi) \
- $(use_enable mpi mpi-io) \
- $(use_enable smp) \
- $(use_enable fox) \
- $(use_enable gsl math) \
- $(use_enable fftw fft) \
- $(use_enable vdwxc) \
- $(use_enable cuda gpu) \
- "$(use cuda && echo "--with-gpu-flavor=cuda-single")" \
- "$(use cuda && echo "--with-gpu-prefix=/opt/cuda/")" \
- "$(use gsl && echo "--with-math-flavor=gsl")" \
- "$(use gsl && echo "--with-math-includes=$(pkg-config --cflags gsl)")" \
- "$(use gsl && echo "--with-math-libs=$(pkg-config --libs gsl)")" \
- --enable-linalg \
- --enable-trio \
- --enable-etsf-io \
- --enable-dft \
- --with-linalg-flavor="atlas" \
- --with-linalg-libs="$(pkg-config --libs lapack)" \
- --with-trio-flavor="${trio_flavor}" \
- "$(use netcdf && echo "--with-netcdf-includes=-I/usr/include")" \
- "$(use netcdf && echo "--with-netcdf-libs=$(pkg-config --libs netcdf) ${netcdff_libs}")" \
- "$(use fox && echo "--with-fox-includes=${modules}")" \
- "$(use fox && echo "--with-fox-libs=${FoX_libs}")" \
- --with-etsf-io-includes="${modules}" \
- --with-etsf-io-libs="${libs} -letsf_io -letsf_io_low_level -letsf_io_utils" \
- --with-trio-includes="-I/usr/include ${modules}" \
- --with-trio-libs="${trio_libs}" \
- --with-dft-flavor="libxc+bigdft+wannier90" \
- --with-libxc-includes="${modules}" \
- --with-libxc-libs="${libs} -lxc" \
- --with-bigdft-includes="${modules}" \
- --with-bigdft-libs="${libs} -lpoissonsolver -lbigdft" \
- --with-wannier90="/usr/bin/wannier90.x" \
- --with-wannier90-includes="${modules}" \
- --with-wannier90-libs="${libs} -lwannier $(pkg-config --libs lapack)" \
- --with-dft-includes="${modules}" \
- --with-dft-libs="${libs} -lwannier -lpoissonsolver -lbigdft -lxc $(pkg-config --libs lapack)" \
- "$(use fftw && echo "--with-fft-flavor=${fft_flavor}")" \
- "$(use fftw && echo "--with-fft-includes=-I/usr/include")" \
- "$(use fftw && echo "--with-fft-libs=${fft_libs}")" \
- --with-timer-flavor="abinit" \
- FC="${MY_FC}" \
- CC="${MY_CC}" \
- CXX="${MY_CXX}" \
- LD="$(tc-getLD)" \
- FCFLAGS="${FCFLAGS:- ${FFLAGS:- -O2}} ${modules} -I/usr/include"
-}
-
-src_compile() {
-# if use mpi; then
-# emake multi || die
-# else
- emake || die
-# fi
-}
-
-src_test() {
- einfo "The tests take quite a while, on the order of 1-2 hours"
- einfo "on an Intel Penryn (2.5 GHz)."
- cd "${S}"/tests
- emake tests_min
- emake tests_paw
- emake tests_gw
- emake tests_gw_paw
- emake tests tdft
- emake tests_bench
-
- local REPORT
- for REPORT in $(find . -name report); do
- REPORT=${REPORT#*/}
- elog "Parameters and unusual results for ${REPORT%%/*} tests"
- echo "Parameters and unusual results for ${REPORT%%/*} tests" >>tests_summary.txt
- while read line; do
- elog "${line}"
- echo "${line}" >>tests_summary.txt
- done \
- < <(grep -v -e succeeded -e passed ${REPORT})
- done
-
- local testdir
- find . -name ",,test*" -print | \
- while read testdir; do
- if [ -e summary_tests.tar ]; then
- tar rvf summary_tests.tar ${testdir}
- else tar cvf summary_tests.tar ${testdir}
- fi
- done
-
- elog "The full test results will be installed as summary_tests.tar.bz2."
- elog "Also a concise report tests_summary.txt is installed."
-}
-
-src_install() {
- emake DESTDIR="${D}" install || die "make install failed"
-
- if use test; then
- dodoc tests/tests_summary.txt || ewarn "Copying tests summary failed"
- dodoc tests/summary_tests.tar || ewarn "Copying tests results failed"
- fi
-
- dodoc KNOWN_PROBLEMS README || die "Copying doc files failed"
-}
-
-pkg_postinst() {
- if use test; then
- elog "The full test results will be installed as summary_tests.tar.bz2."
- elog "Also a concise report tests_summary.txt is installed."
- fi
-}
diff --git a/sci-physics/abinit/abinit-6.4.3.ebuild b/sci-physics/abinit/abinit-6.4.3.ebuild
deleted file mode 100644
index 7090336c8..000000000
--- a/sci-physics/abinit/abinit-6.4.3.ebuild
+++ /dev/null
@@ -1,218 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="3"
-
-inherit autotools eutils multilib toolchain-funcs
-
-DESCRIPTION="Find total energy, charge density and electronic structure using density functional theory"
-HOMEPAGE="http://www.abinit.org/"
-SRC_URI="http://ftp.abinit.org/${P}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~ppc ~x86"
-IUSE="cuda -debug +fftw +fox gsl +hdf5 mpi +netcdf python -smp +threads -test -vdwxc"
-
-RDEPEND="=sci-libs/bigdft-1.2.0.2
- sci-libs/etsf_io
- =sci-libs/libxc-1.0[fortran]
- fox? ( sci-libs/fox[dom,sax,wcml,wxml] )
- netcdf? (
- sci-libs/netcdf[fortran]
- hdf5? (
- sci-libs/netcdf[fortran,hdf5]
- )
- )
- hdf5? ( sci-libs/hdf5[fortran] )
- sci-libs/wannier90
- virtual/blas
- virtual/lapack
- gsl? ( sci-libs/gsl )
- fftw? (
- sci-libs/fftw:2.1
- threads? ( sci-libs/fftw:2.1[threads] )
- )
- mpi? ( virtual/mpi )
- python? ( dev-python/numpy )
- cuda? ( dev-util/nvidia-cuda-sdk )"
-DEPEND="${RDEPEND}
- dev-util/pkgconfig
- dev-perl/Text-Markdown"
-
-WANT_AUTOCONF="latest"
-WANT_AUTOMAKE="latest"
-
-S=${WORKDIR}/${P%[a-z]}
-
-pkg_setup() {
- # Doesn't compile with gcc-4.0, only >=4.1
- if [[ $(tc-getFC) == *gfortran ]]; then
- if [[ $(gcc-major-version) -eq 4 ]] \
- && [[ $(gcc-minor-version) -lt 1 ]]; then
- die "Requires gcc-4.1 or newer"
- fi
- fi
-}
-
-src_prepare() {
- epatch "${FILESDIR}"/6.2.2-change-default-directories.patch
- epatch "${FILESDIR}"/6.2.2-configure-fortran-calls.patch
- epatch "${FILESDIR}"/6.0.3-fftw.patch
- epatch "${FILESDIR}"/6.2.2-non-plugin-libs.patch
- epatch "${FILESDIR}"/6.4.2-openmp.patch
-# To compile against libxc-1.0 or the current SVN HEAD:
- epatch "${FILESDIR}"/6.0.3-libxc-flags.patch
- eautoreconf
- find "${S}" -type f -exec grep -q -- '-llibxc' {} \; \
- -exec sed -i -e's/-llibxc/-lxc/g' {} \;
-}
-
-src_configure() {
- local libs="-L/usr/$(get_libdir)"
- local modules="-I/usr/$(get_libdir)/finclude"
- local FoX_libs="${libs} -lFoX_dom -lFoX_sax -lFoX_wcml -lFoX_wxml -lFoX_common -lFoX_utils -lFoX_fsys"
- local trio_flavor="etsf"
- use fox && trio_flavor="${trio_flavor}+fox"
- use hdf5 && trio_flavor="${trio_flavor}+hdf"
- use netcdf && trio_flavor="${trio_flavor}+netcdf"
- local netcdff_libs="-lnetcdff"
- use hdf5 && netcdff_libs="${netcdff_libs} -lhdf5_fortran"
- local trio_libs="-letsf_io -letsf_io_low_level -letsf_io_utils"
- use fox && trio_libs="${trio_libs} ${FoX_libs}"
- use netcdf && trio_libs="${trio_libs} $(pkg-config --libs netcdf) -lnetcdff"
- use hdf5 && trio_libs="${trio_libs} -lhdf5_fortran"
- local fft_flavor="fftw2"
- local fft_libs="-L/usr/lib"
- if use threads; then
- fft_libs="${fft_libs} -lfftw_threads"
- fft_flavor="fftw2-threads"
- fi
- fft_libs="${fft_libs} -lfftw -lrt -lm"
- if use mpi; then
- MY_FC="mpif90"
- MY_CC="mpicc"
- MY_CXX="mpic++"
- else
- MY_FC="$(tc-getFC)"
- MY_CC="$(tc-getCC)"
- MY_CXX="$(tc-getCXX)"
- fi
- if use smp; then
- MY_FC="${MY_FC} -fopenmp"
- MY_CC="${MY_CC} -fopenmp"
- MY_CXX="${MY_CXX} -fopenmp"
- fi
- MARKDOWN=Markdown.pl econf \
- $(use_enable debug debug enhanced) \
- $(use_enable mpi) \
- $(use_enable mpi mpi-io) \
- $(use_enable smp) \
- $(use_enable fox) \
- $(use_enable gsl math) \
- $(use_enable fftw fft) \
- $(use_enable vdwxc) \
- $(use_enable cuda gpu) \
- "$(use cuda && echo "--with-gpu-flavor=cuda-single")" \
- "$(use cuda && echo "--with-gpu-prefix=/opt/cuda/")" \
- "$(use gsl && echo "--with-math-flavor=gsl")" \
- "$(use gsl && echo "--with-math-includes=$(pkg-config --cflags gsl)")" \
- "$(use gsl && echo "--with-math-libs=$(pkg-config --libs gsl)")" \
- --enable-linalg \
- --enable-trio \
- --enable-etsf-io \
- --enable-dft \
- --with-linalg-flavor="atlas" \
- --with-linalg-libs="$(pkg-config --libs lapack)" \
- --with-trio-flavor="${trio_flavor}" \
- "$(use netcdf && echo "--with-netcdf-includes=-I/usr/include")" \
- "$(use netcdf && echo "--with-netcdf-libs=$(pkg-config --libs netcdf) ${netcdff_libs}")" \
- "$(use fox && echo "--with-fox-includes=${modules}")" \
- "$(use fox && echo "--with-fox-libs=${FoX_libs}")" \
- --with-etsf-io-includes="${modules}" \
- --with-etsf-io-libs="${libs} -letsf_io -letsf_io_low_level -letsf_io_utils" \
- --with-trio-includes="-I/usr/include ${modules}" \
- --with-trio-libs="${trio_libs}" \
- --with-dft-flavor="libxc+bigdft+wannier90" \
- --with-libxc-includes="${modules}" \
- --with-libxc-libs="${libs} -lxc" \
- --with-bigdft-includes="${modules}" \
- --with-bigdft-libs="${libs} -lpoissonsolver -lbigdft" \
- --with-wannier90="/usr/bin/wannier90.x" \
- --with-wannier90-includes="${modules}" \
- --with-wannier90-libs="${libs} -lwannier $(pkg-config --libs lapack)" \
- --with-dft-includes="${modules}" \
- --with-dft-libs="${libs} -lwannier -lpoissonsolver -lbigdft -lxc $(pkg-config --libs lapack)" \
- "$(use fftw && echo "--with-fft-flavor=${fft_flavor}")" \
- "$(use fftw && echo "--with-fft-includes=-I/usr/include")" \
- "$(use fftw && echo "--with-fft-libs=${fft_libs}")" \
- --with-timer-flavor="abinit" \
- FC="${MY_FC}" \
- CC="${MY_CC}" \
- CXX="${MY_CXX}" \
- LD="$(tc-getLD)" \
- FCFLAGS="${FCFLAGS:- ${FFLAGS:- -O2}} ${modules} -I/usr/include"
-}
-
-src_compile() {
-# if use mpi; then
-# emake multi || die
-# else
- emake || die
-# fi
-}
-
-src_test() {
- einfo "The tests take quite a while, on the order of 1-2 hours"
- einfo "on an Intel Penryn (2.5 GHz)."
- cd "${S}"/tests
- emake tests_min || ewarn "Minimal tests failed"
- emake tests_paw || ewarn "PAW tests failed"
- emake tests_gw || ewarn "GW tests failed"
- emake tests_gw_paw || ewarn "GW-PAW tests failed"
- emake tests tdft || ewarn "TDFT tests failed"
- emake tests_bench || ewarn "Benchmarks failed"
-
- local REPORT
- for REPORT in $(find . -name report); do
- REPORT=${REPORT#*/}
- elog "Parameters and unusual results for ${REPORT%%/*} tests"
- echo "Parameters and unusual results for ${REPORT%%/*} tests" >>tests_summary.txt
- while read line; do
- elog "${line}"
- echo "${line}" >>tests_summary.txt
- done \
- < <(grep -v -e succeeded -e passed ${REPORT})
- done
-
- local testdir
- find . -name "tmp-test*" -print | \
- while read testdir; do
- if [ -e summary_of_tests.tar ]; then
- tar rvf summary_of_tests.tar ${testdir}
- else tar cvf summary_of_tests.tar ${testdir}
- fi
- done
-
- elog "The full test results will be installed as summary_of_tests.tar.bz2."
- elog "Also a concise report tests_summary.txt is installed."
-}
-
-src_install() {
- emake DESTDIR="${D}" install || die "make install failed"
-
- if use test; then
- dodoc tests/tests_summary.txt || ewarn "Copying tests summary failed"
- dodoc tests/summary_tests.tar || ewarn "Copying tests results failed"
- dodoc tests/summary_of_tests.tar || ewarn "Copying tests results failed"
- fi
-
- dodoc KNOWN_PROBLEMS README || die "Copying doc files failed"
-}
-
-pkg_postinst() {
- if use test; then
- elog "The full test results will be installed as summary_tests.tar.bz2."
- elog "Also a concise report tests_summary.txt is installed."
- fi
-}
diff --git a/sci-physics/abinit/abinit-6.6.1.ebuild b/sci-physics/abinit/abinit-6.6.1.ebuild
deleted file mode 100644
index ed5651feb..000000000
--- a/sci-physics/abinit/abinit-6.6.1.ebuild
+++ /dev/null
@@ -1,209 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="3"
-
-inherit autotools eutils multilib toolchain-funcs
-
-DESCRIPTION="Find total energy, charge density and electronic structure using density functional theory"
-HOMEPAGE="http://www.abinit.org/"
-SRC_URI="http://ftp.abinit.org/${P}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~ppc ~x86"
-IUSE="cuda -debug +fftw +fox gsl +hdf5 mpi +netcdf python -smp +threads -test -vdwxc"
-
-RDEPEND="=sci-libs/bigdft-1.2.0.2
- sci-libs/etsf_io
- =sci-libs/libxc-1.0[fortran]
- sci-physics/atompaw[libxc]
- fox? ( sci-libs/fox[dom,sax,wcml,wxml] )
- netcdf? (
- sci-libs/netcdf[fortran]
- hdf5? (
- sci-libs/netcdf[fortran,hdf5]
- )
- )
- hdf5? ( sci-libs/hdf5[fortran] )
- sci-libs/wannier90
- virtual/blas
- virtual/lapack
- gsl? ( sci-libs/gsl )
- fftw? (
- sci-libs/fftw:3.0
- threads? ( sci-libs/fftw:3.0[threads] )
- )
- mpi? ( virtual/mpi )
- python? ( dev-python/numpy )
- cuda? ( dev-util/nvidia-cuda-sdk )"
-DEPEND="${RDEPEND}
- dev-util/pkgconfig
- dev-perl/Text-Markdown"
-
-WANT_AUTOCONF="latest"
-WANT_AUTOMAKE="latest"
-
-S=${WORKDIR}/${P%[a-z]}
-
-pkg_setup() {
- # Doesn't compile with gcc-4.0, only >=4.1
- if [[ $(tc-getFC) == *gfortran ]]; then
- if [[ $(gcc-major-version) -eq 4 ]] \
- && [[ $(gcc-minor-version) -lt 1 ]]; then
- die "Requires gcc-4.1 or newer"
- fi
- fi
- if use smp; then
- ewarn "OpenMP support mostly broken. Apparently some developers \
- have used OpenMP semaphors !$ as comment delimiters. Not yet solved \
- upstream, patch incomplete."
- if use mpi && has_version sys-cluster/openmpi; then
- ewarn "Combined with openMPI, OpenMP support is especially likely to crash."
- fi
- fi
-}
-
-src_prepare() {
- epatch "${FILESDIR}"/6.2.2-change-default-directories.patch
- epatch "${FILESDIR}"/6.0.3-fftw.patch
- epatch "${FILESDIR}"/6.6.1-openmp.patch
- eautoreconf
-}
-
-src_configure() {
- local libs="-L/usr/$(get_libdir)"
- local modules="-I/usr/$(get_libdir)/finclude"
- local FoX_libs="${libs} -lFoX_dom -lFoX_sax -lFoX_wcml -lFoX_wxml -lFoX_common -lFoX_utils -lFoX_fsys"
- local trio_flavor="etsf_io"
- use fox && trio_flavor="${trio_flavor}+fox"
- use netcdf && trio_flavor="${trio_flavor}+netcdf"
- local netcdff_libs="-lnetcdff"
- use hdf5 && netcdff_libs="${netcdff_libs} -lhdf5_fortran"
- local fft_flavor="fftw3"
- local fft_libs="-lfftw3"
- fft_libs="${fft_libs} $(pkg-config --libs fftw3)"
- #fft_flavor="fftw3-threads" doesn't build for me
- #if use threads; then
- # fft_libs="${fft_libs} $(pkg-config --libs fftw3_threads)"
- # fft_flavor="fftw3-threads"
- #else
- # fft_libs="${fft_libs} $(pkg-config --libs fftw3)"
- #fi
- if use mpi; then
- MY_FC="mpif90"
- MY_CC="mpicc"
- MY_CXX="mpic++"
- else
- MY_FC="$(tc-getFC)"
- MY_CC="$(tc-getCC)"
- MY_CXX="$(tc-getCXX)"
- fi
- if use smp; then
- MY_FC="${MY_FC} -fopenmp"
- MY_CC="${MY_CC} -fopenmp"
- MY_CXX="${MY_CXX} -fopenmp"
- fi
- #enable bindings for ab6 header and libraries
- # --enable-bindings
- #--with-fc-version=f90 --enable-bindings \
- MARKDOWN=Markdown.pl econf \
- $(use_enable debug debug enhanced) \
- $(use_enable mpi) \
- $(use_enable mpi mpi-io) \
- $(use_enable smp) \
- $(use_enable vdwxc) \
- $(use_enable cuda gpu) \
- "$(use cuda && echo "--with-gpu-flavor=cuda-single")" \
- "$(use cuda && echo "--with-gpu-prefix=/opt/cuda/")" \
- "$(use gsl && echo "--with-math-flavor=gsl")" \
- "$(use gsl && echo "--with-math-incs=$(pkg-config --cflags gsl)")" \
- "$(use gsl && echo "--with-math-libs=$(pkg-config --libs gsl)")" \
- --with-linalg-flavor="atlas" \
- --with-linalg-libs="$(pkg-config --libs lapack)" \
- --with-trio-flavor="${trio_flavor}" \
- "$(use netcdf && echo "--with-netcdf-incs=-I/usr/include")" \
- "$(use netcdf && echo "--with-netcdf-libs=$(pkg-config --libs netcdf) ${netcdff_libs}")" \
- "$(use fox && echo "--with-fox-incs=${modules}")" \
- "$(use fox && echo "--with-fox-libs=${FoX_libs}")" \
- --with-etsf-io-incs="${modules}" \
- --with-etsf-io-libs="${libs} -letsf_io -letsf_io_utils -letsf_io_low_level" \
- --with-dft-flavor="libxc+bigdft+atompaw+wannier90" \
- --with-libxc-incs="${modules}" \
- --with-libxc-libs="${libs} -lxc" \
- --with-bigdft-incs="${modules}" \
- --with-bigdft-libs="${libs} -lpoissonsolver -lbigdft" \
- --with-atompaw-incs="${modules}" \
- --with-atompaw-libs="${libs} -latompaw" \
- --with-wannier90-bins="/usr/bin" \
- --with-wannier90-incs="${modules}" \
- --with-wannier90-libs="${libs} -lwannier $(pkg-config --libs lapack)" \
- "$(use fftw && echo "--with-fft-flavor=${fft_flavor}")" \
- "$(use fftw && echo "--with-fft-incs=-I/usr/include")" \
- "$(use fftw && echo "--with-fft-libs=${fft_libs}")" \
- --with-timer-flavor="abinit" \
- FC="${MY_FC}" \
- CC="${MY_CC}" \
- CXX="${MY_CXX}" \
- LD="$(tc-getLD)" \
- FCFLAGS="${FCFLAGS:- ${FFLAGS:- -O2}} ${modules} -I/usr/include"
-}
-
-src_compile() {
- emake || die
-}
-
-src_test() {
- einfo "The tests take quite a while, on the order of 1-2 hours"
- einfo "on an Intel Penryn (2.5 GHz)."
- cd "${S}"/tests
- emake tests_min || ewarn "Minimal tests failed"
- emake tests_paw || ewarn "PAW tests failed"
- emake tests_gw || ewarn "GW tests failed"
- emake tests_gw_paw || ewarn "GW-PAW tests failed"
- emake tests tdft || ewarn "TDFT tests failed"
- emake tests_bench || ewarn "Benchmarks failed"
-
- local REPORT
- for REPORT in $(find . -name report); do
- REPORT=${REPORT#*/}
- elog "Parameters and unusual results for ${REPORT%%/*} tests"
- echo "Parameters and unusual results for ${REPORT%%/*} tests" >>tests_summary.txt
- while read line; do
- elog "${line}"
- echo "${line}" >>tests_summary.txt
- done \
- < <(grep -v -e succeeded -e passed ${REPORT})
- done
-
- local testdir
- find . -name "tmp-test*" -print | \
- while read testdir; do
- if [ -e summary_of_tests.tar ]; then
- tar rvf summary_of_tests.tar ${testdir}
- else tar cvf summary_of_tests.tar ${testdir}
- fi
- done
-
- elog "The full test results will be installed as summary_of_tests.tar.bz2."
- elog "Also a concise report tests_summary.txt is installed."
-}
-
-src_install() {
- emake DESTDIR="${D}" install || die "make install failed"
-
- if use test; then
- dodoc tests/tests_summary.txt || ewarn "Copying tests summary failed"
- dodoc tests/summary_tests.tar || ewarn "Copying tests results failed"
- dodoc tests/summary_of_tests.tar || ewarn "Copying tests results failed"
- fi
-
- dodoc KNOWN_PROBLEMS README || die "Copying doc files failed"
-}
-
-pkg_postinst() {
- if use test; then
- elog "The full test results will be installed as summary_tests.tar.bz2."
- elog "Also a concise report tests_summary.txt is installed."
- fi
-}
diff --git a/sci-physics/abinit/files/6.0.3-libxc-flags.patch b/sci-physics/abinit/files/6.0.3-libxc-flags.patch
deleted file mode 100644
index d93642fd5..000000000
--- a/sci-physics/abinit/files/6.0.3-libxc-flags.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff -Naur tmp-old/src/56_xc/m_libxc_functionals.F90 tmp-new/src/56_xc/m_libxc_functionals.F90
---- src/56_xc/m_libxc_functionals.F90 2010-04-02 18:35:00.000000000 +0000
-+++ src/56_xc/m_libxc_functionals.F90 2010-04-07 15:06:14.000000000 +0000
-@@ -363,14 +363,14 @@
- if (funcs(i)%id == 0) cycle
-
- !Get the potential (and possibly the energy)
-- if (iand(xc_f90_info_provides(funcs(i)%info), XC_PROVIDES_EXC) .ne. 0) then
-+ if (iand(xc_f90_info_flags(funcs(i)%info), XC_FLAGS_HAVE_EXC) .ne. 0) then
- select case (funcs(i)%family)
- case (XC_FAMILY_LDA)
- call xc_f90_lda_exc_vxc(funcs(i)%conf,1,rhotmp(1),exctmp,vxctmp(1))
- case (XC_FAMILY_GGA)
- call xc_f90_gga_exc_vxc(funcs(i)%conf,1,rhotmp(1),sigma(1),exctmp,vxctmp(1),vsigma(1))
- case (XC_FAMILY_MGGA)
-- call xc_f90_mgga_exc_vxc(funcs(i)%conf,rhotmp(1),sigma(1),lrhotmp(1),&
-+ call xc_f90_mgga_exc_vxc(funcs(i)%conf,1,rhotmp(1),sigma(1),lrhotmp(1),&
- tautmp(1),exctmp,vxctmp(1),vsigma(1),vxclrhotmp(1),vxctautmp(1))
- ! write(message, '(7a)' )ch10,&
- ! & ' libxc_functionals_init : ERROR -',ch10,&
-@@ -388,7 +388,7 @@
- case (XC_FAMILY_GGA)
- call xc_f90_gga_vxc(funcs(i)%conf,1,rhotmp(1),sigma(1),vxctmp(1),vsigma(1))
- case (XC_FAMILY_MGGA)
-- call xc_f90_mgga_vxc(funcs(i)%conf,rhotmp(1),sigma(1),lrhotmp(1),&
-+ call xc_f90_mgga_vxc(funcs(i)%conf,1,rhotmp(1),sigma(1),lrhotmp(1),&
- tautmp(1),vxctmp(1),vsigma(1),vxclrhotmp(1),vxctautmp(1))
- end select
- end if
diff --git a/sci-physics/abinit/files/6.2.2-configure-fortran-calls.patch b/sci-physics/abinit/files/6.2.2-configure-fortran-calls.patch
deleted file mode 100644
index 9ed34697d..000000000
--- a/sci-physics/abinit/files/6.2.2-configure-fortran-calls.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff -Naur abinit-6.2.2_orig/config/m4/conn-trio.m4 abinit-6.2.2/config/m4/conn-trio.m4
---- config/m4/conn-trio.m4 2010-08-07 04:31:29.000000000 +0000
-+++ config/m4/conn-trio.m4 2010-08-11 15:03:20.000000000 +0000
-@@ -183,6 +183,10 @@
- AC_MSG_CHECKING([whether the specified HDF library works])
- AC_LINK_IFELSE([AC_LANG_PROGRAM([],
- [[
-- call h5fcreate_f
-+ use hdf5
-+ character (len = 42) :: filename
-+ integer :: mode, hferr
-+ integer(hid_t) :: hfid
-+ call h5fcreate_f(filename, mode, hfid, hferr)
- ]])], [abi_trio_hdf_has_libs="yes"], [abi_trio_hdf_has_libs="no"])
- AC_MSG_RESULT([${abi_trio_hdf_has_libs}])
-@@ -250,7 +251,9 @@
- AC_LINK_IFELSE([AC_LANG_PROGRAM([],
- [[
- use netcdf
-- call nf90_open
-+ character (len = 42) :: filename
-+ integer :: status, mode, ncid
-+ status=nf90_open(filename, mode, ncid)
- ]])], [abi_trio_netcdf_has_libs="yes"], [abi_trio_netcdf_has_libs="no"])
- AC_MSG_RESULT([${abi_trio_netcdf_has_libs}])
- fi
diff --git a/sci-physics/abinit/files/6.2.2-long-message.patch b/sci-physics/abinit/files/6.2.2-long-message.patch
deleted file mode 100644
index 20965c7dd..000000000
--- a/sci-physics/abinit/files/6.2.2-long-message.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff -Naur abinit-6.2.2_orig/src/66_paw/indgrid.F90 abinit-6.2.2/src/66_paw/indgrid.F90
---- src/66_paw/indgrid.F90 2010-08-07 04:31:29.000000000 +0000
-+++ src/66_paw/indgrid.F90 2010-08-11 17:16:01.000000000 +0000
-@@ -62,6 +62,7 @@
- !arrays
- integer :: id(3)
- integer,allocatable :: gc(:,:),gf(:,:)
-+ character(len=500) :: msg
-
- ! *************************************************************************
- !
-@@ -117,7 +118,10 @@
- !Check coatofin to make sure there are no zeros!
- do ii=1,ubound(coatofin,1)
- if (coatofin(ii)==0) then
-- MSG_ERROR('A zero was found in coatofin. Check that the fine FFT mesh is finer in each dimension than the coarse FFT mesh.')
-+ msg='A zero was found in coatofin.&
-+& Check that the fine FFT mesh is finer&
-+& in each dimension than the coarse FFT mesh.'
-+ MSG_ERROR(msg)
- stop
- end if
- end do
diff --git a/sci-physics/abinit/files/6.2.2-non-plugin-libs.patch b/sci-physics/abinit/files/6.2.2-non-plugin-libs.patch
deleted file mode 100644
index b5d99fe11..000000000
--- a/sci-physics/abinit/files/6.2.2-non-plugin-libs.patch
+++ /dev/null
@@ -1,260 +0,0 @@
-diff -Naur abinit-6.2.2_orig/config/m4/conn-fft.m4 abinit-6.2.2/config/m4/conn-fft.m4
---- config/m4/conn-fft.m4 2010-08-07 04:31:29.000000000 +0000
-+++ config/m4/conn-fft.m4 2010-08-12 08:53:17.000000000 +0000
-@@ -393,6 +393,12 @@
- AC_DEFINE([HAVE_FFT_MPI],1,[Define to 1 if you have an optimized MPI-parallel FFT library.])
- fi
-
-+ dnl Transmit information
-+ lib_fft_fcflags="${abi_fft_fcflags}"
-+ lib_fft_ldflags="${abi_fft_ldflags}"
-+ lib_fft_incs="${abi_fft_incs}"
-+ lib_fft_libs="${abi_fft_libs}"
-+
- dnl Restore build environment
- AC_LANG_POP
- LIBS="${abi_saved_LIBS}"
-diff -Naur abinit-6.2.2_orig/src/98_main/Makefile.am abinit-6.2.2/src/98_main/Makefile.am
---- src/98_main/Makefile.am 2010-08-07 04:32:39.000000000 +0000
-+++ src/98_main/Makefile.am 2010-08-12 08:43:42.000000000 +0000
-@@ -101,8 +101,10 @@
- LIB_ETSF_IO = @lib_etsf_io_libs@
- LIB_FOX = @lib_fox_libs@
- LIB_LIBXC = @lib_libxc_libs@
-+LIB_DFT = @lib_dft_libs@
- LIB_NETCDF = @lib_netcdf_libs@
- LIB_WANNIER90 = @lib_wannier90_libs@
-+LIB_TRIO = @lib_trio_libs@
-
- # Binary list
- bin_PROGRAMS = \
-@@ -131,10 +133,12 @@
- abinetcdf_CPPFLAGS = \
- $(AM_CPPFLAGS) \
- $(CPPFLAGS) \
-- @lib_netcdf_incs@
-+ @lib_netcdf_incs@ \
-+ @lib_trio_incs@
- abinetcdf_LDADD = \
- $(LIB_10_DEFS) \
- $(LIB_NETCDF) \
-+ $(LIB_TRIO) \
- $(FC_LIBS)
-
- # abinit.F90 ---> abinit
-@@ -144,9 +148,11 @@
- $(CPPFLAGS) \
- @lib_bigdft_incs@ \
- @lib_libxc_incs@ \
-+ @lib_dft_incs@ \
- @lib_fox_incs@ \
- @lib_etsf_io_incs@ \
- @lib_netcdf_incs@ \
-+ @lib_trio_incs@ \
- @lib_fft_incs@ \
- @lib_math_incs@ \
- @lib_linalg_incs@ \
-@@ -231,9 +237,11 @@
- $(LIB_WANNIER90) \
- $(LIB_BIGDFT) \
- $(LIB_LIBXC) \
-+ $(LIB_DFT) \
- $(LIB_FOX) \
- $(LIB_ETSF_IO) \
- $(LIB_NETCDF) \
-+ $(LIB_TRIO) \
- @lib_fft_libs@ \
- @lib_math_libs@ \
- @lib_linalg_libs@ \
-@@ -250,6 +258,7 @@
- $(CPPFLAGS) \
- @lib_bigdft_incs@ \
- @lib_netcdf_incs@ \
-+ @lib_trio_incs@ \
- @lib_linalg_incs@
- aim_FCFLAGS = \
- $(AM_FCFLAGS) \
-@@ -280,6 +289,7 @@
- $(LIB_01_INTERFACES_EXT) \
- $(LIB_BIGDFT) \
- $(LIB_NETCDF) \
-+ $(LIB_TRIO) \
- @lib_linalg_libs@ \
- $(FC_LIBS)
-
-@@ -291,6 +301,7 @@
- @lib_bigdft_incs@ \
- @lib_etsf_io_incs@ \
- @lib_netcdf_incs@ \
-+ @lib_trio_incs@ \
- @lib_linalg_incs@
- anaddb_FCFLAGS = \
- $(AM_FCFLAGS) \
-@@ -339,6 +350,7 @@
- $(LIB_BIGDFT) \
- $(LIB_ETSF_IO) \
- $(LIB_NETCDF) \
-+ $(LIB_TRIO) \
- @lib_linalg_libs@ \
- $(FC_LIBS)
-
-@@ -357,6 +369,7 @@
- @lib_etsf_io_incs@ \
- @lib_bigdft_incs@ \
- @lib_netcdf_incs@ \
-+ @lib_trio_incs@ \
- @lib_linalg_incs@
- conducti_FCFLAGS = \
- $(AM_FCFLAGS) \
-@@ -404,6 +417,7 @@
- $(LIB_ETSF_IO) \
- $(LIB_BIGDFT) \
- $(LIB_NETCDF) \
-+ $(LIB_TRIO) \
- @lib_linalg_libs@ \
- $(FC_LIBS)
-
-@@ -415,6 +429,7 @@
- @lib_etsf_io_incs@ \
- @lib_bigdft_incs@ \
- @lib_netcdf_incs@ \
-+ @lib_trio_incs@ \
- @lib_fft_incs@ \
- @lib_linalg_incs@
- cut3d_FCFLAGS = \
-@@ -465,6 +480,7 @@
- $(LIB_ETSF_IO) \
- $(LIB_BIGDFT) \
- $(LIB_NETCDF) \
-+ $(LIB_TRIO) \
- @lib_fft_libs@ \
- @lib_linalg_libs@ \
- $(FC_LIBS)
-@@ -516,6 +532,7 @@
- $(CPPFLAGS) \
- @lib_bigdft_incs@ \
- @lib_netcdf_incs@ \
-+ @lib_trio_incs@ \
- @lib_linalg_incs@
- lwf_FCFLAGS = \
- $(AM_FCFLAGS) \
-@@ -539,6 +556,7 @@
- $(LIB_01_INTERFACES_EXT) \
- $(LIB_BIGDFT) \
- $(LIB_NETCDF) \
-+ $(LIB_TRIO) \
- @lib_linalg_libs@ \
- $(FC_LIBS)
-
-@@ -550,6 +568,7 @@
- $(CPPFLAGS) \
- @lib_bigdft_incs@ \
- @lib_netcdf_incs@ \
-+ @lib_trio_incs@ \
- @lib_linalg_incs@
- macroave_FCFLAGS = \
- $(AM_FCFLAGS) \
-@@ -576,6 +595,7 @@
- $(LIB_01_INTERFACES_EXT) \
- $(LIB_BIGDFT) \
- $(LIB_NETCDF) \
-+ $(LIB_TRIO) \
- @lib_linalg_libs@ \
- $(FC_LIBS)
- endif
-@@ -588,6 +608,7 @@
- @lib_bigdft_incs@ \
- @lib_etsf_io_incs@ \
- @lib_netcdf_incs@ \
-+ @lib_trio_incs@ \
- @lib_linalg_incs@
- mrgddb_FCFLAGS = \
- $(AM_FCFLAGS) \
-@@ -635,6 +656,7 @@
- $(LIB_BIGDFT) \
- $(LIB_ETSF_IO) \
- $(LIB_NETCDF) \
-+ $(LIB_TRIO) \
- @lib_linalg_libs@ \
- $(FC_LIBS)
-
-@@ -646,6 +668,7 @@
- @lib_bigdft_incs@ \
- @lib_etsf_io_incs@ \
- @lib_netcdf_incs@ \
-+ @lib_trio_incs@ \
- @lib_linalg_incs@
- mrggkk_FCFLAGS = \
- $(AM_FCFLAGS) \
-@@ -673,6 +696,7 @@
- $(LIB_BIGDFT) \
- $(LIB_ETSF_IO) \
- $(LIB_NETCDF) \
-+ $(LIB_TRIO) \
- @lib_linalg_libs@ \
- $(FC_LIBS)
-
-@@ -684,6 +708,7 @@
- @lib_bigdft_incs@ \
- @lib_etsf_io_incs@ \
- @lib_netcdf_incs@ \
-+ @lib_trio_incs@ \
- @lib_linalg_incs@
- mrgscr_FCFLAGS = \
- $(AM_FCFLAGS) \
-@@ -733,6 +758,7 @@
- $(LIB_BIGDFT) \
- $(LIB_ETSF_IO) \
- $(LIB_NETCDF) \
-+ $(LIB_TRIO) \
- @lib_linalg_libs@ \
- $(FC_LIBS)
-
-@@ -744,6 +770,7 @@
- @lib_etsf_io_incs@ \
- @lib_bigdft_incs@ \
- @lib_netcdf_incs@ \
-+ @lib_trio_incs@ \
- @lib_linalg_incs@
- newsp_FCFLAGS = \
- $(AM_FCFLAGS) \
-@@ -791,6 +818,7 @@
- $(LIB_ETSF_IO) \
- $(LIB_BIGDFT) \
- $(LIB_NETCDF) \
-+ $(LIB_TRIO) \
- @lib_linalg_libs@ \
- $(FC_LIBS)
-
-@@ -802,6 +830,7 @@
- @lib_etsf_io_incs@ \
- @lib_bigdft_incs@ \
- @lib_netcdf_incs@ \
-+ @lib_trio_incs@ \
- @lib_linalg_incs@
- optic_FCFLAGS = \
- $(AM_FCFLAGS) \
-@@ -848,6 +877,7 @@
- $(LIB_ETSF_IO) \
- $(LIB_BIGDFT) \
- $(LIB_NETCDF) \
-+ $(LIB_TRIO) \
- @lib_linalg_libs@ \
- $(FC_LIBS)
-
-@@ -858,6 +888,7 @@
- $(CPPFLAGS) \
- @lib_etsf_io_incs@ \
- @lib_netcdf_incs@ \
-+ @lib_trio_incs@ \
- @lib_linalg_incs@
- ujdet_FCFLAGS = \
- $(AM_FCFLAGS) \
-@@ -912,6 +943,7 @@
- $(LIB_01_GSL_EXT) \
- $(LIB_ETSF_IO) \
- $(LIB_NETCDF) \
-+ $(LIB_TRIO) \
- @lib_linalg_libs@ \
- $(FC_LIBS)
-
diff --git a/sci-physics/abinit/files/6.4.2-openmp.patch b/sci-physics/abinit/files/6.4.2-openmp.patch
deleted file mode 100644
index e3e882ecf..000000000
--- a/sci-physics/abinit/files/6.4.2-openmp.patch
+++ /dev/null
@@ -1,3096 +0,0 @@
-diff -Naur abinit-6.4.2.bak/src/10_defs/defs_datatypes.F90 abinit-6.4.2/src/10_defs/defs_datatypes.F90
---- src/10_defs/defs_datatypes.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/10_defs/defs_datatypes.F90 2011-01-05 09:39:41.000000000 +0000
-@@ -169,10 +169,10 @@
- integer :: nsppol ! number of spin-polarizations
- integer :: occopt ! Occupation option, see input variable.
-
-- !$integer :: kptopt
-- !$real(dp) :: tolwfr
-- !$real(dp),pointer :: resid(mband*nkpt*nsppol)
-- !$resid(mband*nkpt*nsppol)=residuals (hartree**2)
-+ !%integer :: kptopt
-+ !%real(dp) :: tolwfr
-+ !%real(dp),pointer :: resid(mband*nkpt*nsppol)
-+ !%resid(mband*nkpt*nsppol)=residuals (hartree**2)
-
- real(dp) :: entropy ! Entropy associated with the smearing (adimensional)
- real(dp) :: fermie ! Fermi energy
-@@ -278,7 +278,7 @@
-
- type coeff2_type
-
-- !$integer :: size(2)
-+ !%integer :: size(2)
- real(dp), pointer :: value(:,:) !SET2NULL
-
- end type coeff2_type
-@@ -295,7 +295,7 @@
-
- type coeff2c_type
-
-- !$integer :: size(2)
-+ !%integer :: size(2)
- complex(dpc), pointer :: value(:,:) !SET2NULL
-
- end type coeff2c_type
-@@ -312,7 +312,7 @@
-
- type coeff3_type
-
-- !$integer :: size(3)
-+ !%integer :: size(3)
- real(dp), pointer :: value(:,:,:) !SET2NULL
-
- end type coeff3_type
-@@ -329,7 +329,7 @@
-
- type coeff4_type
-
-- !$integer :: size(4)
-+ !%integer :: size(4)
- real(dp), pointer :: value(:,:,:,:) !SET2NULL
-
- end type coeff4_type
-@@ -348,7 +348,7 @@
-
- type coeff5_type
-
-- !$integer :: size(5)
-+ !%integer :: size(5)
- real(dp), pointer :: value(:,:,:,:,:) !SET2NULL
-
- end type coeff5_type
-@@ -1757,7 +1757,7 @@
- integer :: cplex_dij
- ! cplex=1 if dij are real, 2 if they are complex
-
-- !$integer :: has_dijexxcore
-+ !%integer :: has_dijexxcore
- ! 1 if dijexxcore is allocated
- ! 2 if dijexxcore is already computed
-
-@@ -1839,7 +1839,7 @@
- ! dij(:,:,3) contains Dij^up-dn (only if nspinor=2)
- ! dij(:,:,4) contains Dij^dn-up (only if nspinor=2)
-
-- !$real(dp),pointer :: dijexxcore(:,:)
-+ !%real(dp),pointer :: dijexxcore(:,:)
- ! dijexxcore(cplex_dij*lmn2_size,ndij)
- ! Onsite matrix elements of the Fock operator generated by core electrons
-
-@@ -2551,21 +2551,21 @@
-
- ! All the energies are in Hartree, obtained "per unit cell".
- type(energies_type) :: energies
--!!$ real(dp) :: eei ! local pseudopotential energy (Hartree)
--!!$ real(dp) :: eeig ! sum of eigenvalue energy (Hartree)
--!!$ real(dp) :: eew ! Ewald energy (Hartree)
--!!$ real(dp) :: ehart ! Hartree part of total energy (Hartree)
--!!$ real(dp) :: eii ! pseudopotential core-core energy
--!!$ real(dp) :: ek ! kinetic energy (Hartree)
--!!$ real(dp) :: enefield ! the term of the energy functional that depends
--!!$ ! explicitely on the electric field
--!!$ ! enefield = -ucvol*E*P
--!!$ real(dp) :: enl ! nonlocal pseudopotential energy (Hartree)
-+!!% real(dp) :: eei ! local pseudopotential energy (Hartree)
-+!!% real(dp) :: eeig ! sum of eigenvalue energy (Hartree)
-+!!% real(dp) :: eew ! Ewald energy (Hartree)
-+!!% real(dp) :: ehart ! Hartree part of total energy (Hartree)
-+!!% real(dp) :: eii ! pseudopotential core-core energy
-+!!% real(dp) :: ek ! kinetic energy (Hartree)
-+!!% real(dp) :: enefield ! the term of the energy functional that depends
-+!!% ! explicitely on the electric field
-+!!% ! enefield = -ucvol*E*P
-+!!% real(dp) :: enl ! nonlocal pseudopotential energy (Hartree)
- real(dp) :: entropy ! entropy (Hartree)
--!!$ real(dp) :: enxc ! exchange-correlation energy (Hartree)
--!!$ real(dp) :: enxcdc ! exchange-correlation double-counting energy (Hartree)
--!!$ real(dp) :: epaw ! PAW spherical energy (Hartree)
--!!$ real(dp) :: epawdc ! PAW spherical double-counting energy (Hartree)
-+!!% real(dp) :: enxc ! exchange-correlation energy (Hartree)
-+!!% real(dp) :: enxcdc ! exchange-correlation double-counting energy (Hartree)
-+!!% real(dp) :: epaw ! PAW spherical energy (Hartree)
-+!!% real(dp) :: epawdc ! PAW spherical double-counting energy (Hartree)
- real(dp) :: etotal ! total energy (Hartree)
- ! for fixed occupation numbers (occopt==0,1,or 2):
- ! etotal=ek+ehart+enxc+eei+eew+eii+enl+PAW_spherical_part
-@@ -3009,7 +3009,7 @@
- ! WARNING : if you modify this datatype, please check there there is no creation/destruction/copy routine,
- ! declared in another part of ABINIT, that might need to take into account your modification.
-
-- integer :: stat = 1 !$=JPT_ISPOINTER =1
-+ integer :: stat = 1 !%=JPT_ISPOINTER =1
- complex(gwpc),pointer :: datum(:,:) SET2NULL
- end type Jpt_gwpc_2D
- !!***
-@@ -3034,7 +3034,7 @@
- ! WARNING : if you modify this datatype, please check there there is no creation/destruction routine,
- ! declared in another part of ABINIT, that might need to take into account your modification.
-
-- integer :: stat = 1 !$=JPT_ISPOINTER =1
-+ integer :: stat = 1 !%=JPT_ISPOINTER =1
- complex(gwpc),pointer :: datum(:,:,:) SET2NULL
- end type Jpt_gwpc_3D
- !!***
-@@ -3071,8 +3071,8 @@
- logical :: save_memory_devel=.FALSE.
-
- ! Use in-place storage of the PPm parameters, should be FALSE for non-developers.
-- !$real(dp) :: zcut
-- !$real(dp),pointer :: qibz(:,:)
-+ !%real(dp) :: zcut
-+ !%real(dp),pointer :: qibz(:,:)
-
- !logical :: has_inversion
- !logical :: has_time_reversal
-diff -Naur abinit-6.4.2.bak/src/10_defs/defs_fftdata.F90 abinit-6.4.2/src/10_defs/defs_fftdata.F90
---- src/10_defs/defs_fftdata.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/10_defs/defs_fftdata.F90 2011-01-05 09:40:20.000000000 +0000
-@@ -181,8 +181,8 @@
- write(msg,'(4a,i8)')ch10,&
- & ' size_goed_fft : BUG-',ch10,&
- & ' nbest = ',nbest
-- !$call wrtout(std_out,msg,'COLL')
-- !$call leave_new('COLL')
-+ !%call wrtout(std_out,msg,'COLL')
-+ !%call leave_new('COLL')
- write(std_out,*)msg
- STOP
- end if
-@@ -192,8 +192,8 @@
- & ' size_goed_fft : ERROR-',ch10,&
- & ' nbest = ',nbest,ch10,&
- & ' is larger than any allowable FFT'
-- !$call wrtout(std_out,msg,'COLL')
-- !$call leave_new('COLL')
-+ !%call wrtout(std_out,msg,'COLL')
-+ !%call leave_new('COLL')
- write(std_out,*)msg
- STOP
- end if
-diff -Naur abinit-6.4.2.bak/src/12_hide_mpi/m_xmpi.F90 abinit-6.4.2/src/12_hide_mpi/m_xmpi.F90
---- src/12_hide_mpi/m_xmpi.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/12_hide_mpi/m_xmpi.F90 2011-01-05 09:02:11.000000000 +0000
-@@ -86,7 +86,7 @@
- integer :: nprocs = xmpi_undefined
- ! The number of processors in the communicator.
-
-- !$integer,pointer :: ranks_in_world(:) SET2NULL
-+ !%integer,pointer :: ranks_in_world(:) SET2NULL
- ! The MPI ranks in MPI_COMM_WORLD of the nodes beloging to the communicator.
-
- end type mpicomm_t
-diff -Naur abinit-6.4.2.bak/src/18_timing/m_timer.F90 abinit-6.4.2/src/18_timing/m_timer.F90
---- src/18_timing/m_timer.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/18_timing/m_timer.F90 2011-01-05 17:23:06.000000000 +0000
-@@ -21,7 +21,7 @@
- MODULE m_timer
-
- use defs_basis
-- !$use m_errors TODO move m_timer to a lower level
-+ !%use m_errors TODO move m_timer to a lower level
-
- implicit none
-
-@@ -261,7 +261,7 @@
- CASE DEFAULT
- write(std_out,'(a,i0)')" Wrong value for topt: ",topt
- stop
-- !$MSG_ERROR(msg)
-+ !%MSG_ERROR(msg)
- END SELECT
-
- end subroutine timing
-diff -Naur abinit-6.4.2.bak/src/27_toolbox_oop/m_errors.F90 abinit-6.4.2/src/27_toolbox_oop/m_errors.F90
---- src/27_toolbox_oop/m_errors.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/27_toolbox_oop/m_errors.F90 2011-01-05 17:33:42.000000000 +0000
-@@ -748,7 +748,7 @@
- & TRIM(my_msg),toupper(level),ch10,&
- & TRIM(message)
- call wrtout(std_out,sbuf,mode_paral)
-- !$call dump_config(std_out)
-+ !%call dump_config(std_out)
- call dump_config_fake()
- call leave_new('COLL')
-
-diff -Naur abinit-6.4.2.bak/src/32_util/m_radmesh.F90 abinit-6.4.2/src/32_util/m_radmesh.F90
---- src/32_util/m_radmesh.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/32_util/m_radmesh.F90 2011-01-05 08:51:17.000000000 +0000
-@@ -451,7 +451,7 @@
- !gg = zero
-
- int_meshsz=Pawrad%int_meshsz
-- !$int_meshsz=Pawrad%mesh_size
-+ !%int_meshsz=Pawrad%mesh_size
-
- ! the line below requires hh as work array.
- hh = ff2
-diff -Naur abinit-6.4.2.bak/src/32_util/m_special_funcs.F90 abinit-6.4.2/src/32_util/m_special_funcs.F90
---- src/32_util/m_special_funcs.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/32_util/m_special_funcs.F90 2011-01-05 08:51:59.000000000 +0000
-@@ -232,7 +232,7 @@
-
- r=SQRT(kcart(1)**2+kcart(2)**2+kcart(3)**2)
- if (r<PPAD) r=r+PPAD
-- !$if (r<tol10) RETURN
-+ !%if (r<tol10) RETURN
-
- rxy=SQRT(kcart(1)**2+kcart(2)**2)
- if (rxy<PPAD)rxy=r+PPAD
-@@ -391,7 +391,7 @@
-
- r=SQRT(kcart(1)**2+kcart(2)**2+kcart(3)**2)
- if (r<PPAD) r=r+PPAD
-- !$if (r<tol10) RETURN
-+ !%if (r<tol10) RETURN
-
- rxy=SQRT(kcart(1)**2+kcart(2)**2)
- if (rxy<PPAD) rxy=r+PPAD
-diff -Naur abinit-6.4.2.bak/src/42_geometry/m_crystal.F90 abinit-6.4.2/src/42_geometry/m_crystal.F90
---- src/42_geometry/m_crystal.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/42_geometry/m_crystal.F90 2011-01-05 09:25:18.000000000 +0000
-@@ -76,7 +76,7 @@
- integer :: ntypat
- ! Number of type of atoms
-
-- !$integer :: ntypalch,ntyppure
-+ !%integer :: ntypalch,ntyppure
-
- integer :: npsp
- ! No. of pseudopotentials
-diff -Naur abinit-6.4.2.bak/src/43_ptgroups/m_defs_ptgroups.F90 abinit-6.4.2/src/43_ptgroups/m_defs_ptgroups.F90
---- src/43_ptgroups/m_defs_ptgroups.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/43_ptgroups/m_defs_ptgroups.F90 2011-01-05 16:44:37.000000000 +0000
-@@ -147,11 +147,11 @@
- ! NB: operations are referred to the standard coordinate system.
- ! Page 815-816 of International Tables for crystallography Vol.A.
-
-- !$integer,pointer :: symafm(:) SET2NULL
-+ !%integer,pointer :: symafm(:) SET2NULL
- ! symafm(nsym)
- ! AFM part of the symmetry operation
-
-- !$real(dp),pointer :: tnons(:,:) SET2NULL
-+ !%real(dp),pointer :: tnons(:,:) SET2NULL
- ! tnons(3,nsym)
- ! fractional translations.
-
-diff -Naur abinit-6.4.2.bak/src/43_ptgroups/m_ptgroups.F90 abinit-6.4.2/src/43_ptgroups/m_ptgroups.F90
---- src/43_ptgroups/m_ptgroups.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/43_ptgroups/m_ptgroups.F90 2011-01-05 16:45:10.000000000 +0000
-@@ -894,7 +894,7 @@
- read(unt,*,ERR=10) nirreps_k
- ABI_CHECK(Gk%nclass == nirreps_k,"Gk%nclass /= nirreps_k")
-
-- !$$ allocate(Gk%class_names(Gk%nclass))
-+ !%$$ allocate(Gk%class_names(Gk%nclass))
- allocate(Gk%Irreps(nirreps_k))
-
- do irp=1,nirreps_k
-diff -Naur abinit-6.4.2.bak/src/49_gw_toolbox_oop/m_bs_defs.F90 abinit-6.4.2/src/49_gw_toolbox_oop/m_bs_defs.F90
---- src/49_gw_toolbox_oop/m_bs_defs.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/49_gw_toolbox_oop/m_bs_defs.F90 2011-01-05 16:37:04.000000000 +0000
-@@ -43,23 +43,23 @@
- !!***
-
- ! Approximation for the excitonic Hamiltonian
--!$ integer,public,parameter :: BSE_HRPA = 1
--!$ integer,public,parameter :: BSE_HGW = 2
--!$ integer,public,parameter :: BSE_HEXC = 3
-+!% integer,public,parameter :: BSE_HRPA = 1
-+!% integer,public,parameter :: BSE_HGW = 2
-+!% integer,public,parameter :: BSE_HEXC = 3
-
- ! Treatment of the resontant and coupling blocks of the Hamiltonian
--!$? integer,public,parameter :: BSE_HRPA = 1
--!$? integer,public,parameter :: BSE_HGW = 2
-+!%? integer,public,parameter :: BSE_HRPA = 1
-+!%? integer,public,parameter :: BSE_HGW = 2
-
--!$
--!$! Treatment of W(G1,G2)
--!$ integer,public,parameter :: BSE_WGG_DIAGONAL=1
--!$ integer,public,parameter :: BSE_WGG_FULL =2
--
--!$! Treatment of W(omega)
--!$ integer,public,parameter :: BSE_WFREQ_STATIC=1
--!$ integer,public,parameter :: BSE_WFREQ_PPM =2
--!$ integer,public,parameter :: BSE_WFREQ_FULL =2
-+!%
-+!%! Treatment of W(G1,G2)
-+!% integer,public,parameter :: BSE_WGG_DIAGONAL=1
-+!% integer,public,parameter :: BSE_WGG_FULL =2
-+
-+!%! Treatment of W(omega)
-+!% integer,public,parameter :: BSE_WFREQ_STATIC=1
-+!% integer,public,parameter :: BSE_WFREQ_PPM =2
-+!% integer,public,parameter :: BSE_WFREQ_FULL =2
-
- !----------------------------------------------------------------------
-
-@@ -85,7 +85,7 @@
- logical :: wdiag ! Use diagonal approximation for W.
- logical :: wfull ! Use full inverse dielectric matrix.
- logical :: use_haydock ! Use haydock iterative method to calculate epsilon.
-- !$logical :: use_cg ! Use conjugate gradient minimization techniques to calculate the eigenstates.
-+ !%$logical :: use_cg ! Use conjugate gradient minimization techniques to calculate the eigenstates.
- logical :: gwterm ! Add QP corrections to the band structure either with scissors or GW file.
- logical :: exchangeterm ! Include exchange terms in the BS Hamiltonian.
- logical :: coulombterm ! Include W term in the BS Hamiltonian.
-@@ -99,7 +99,7 @@
-
- integer :: npweps ! No. of G in the Screening.
- integer :: npwwfn ! No. of G for wave functions.
-- !$integer :: npwx ! No. of G for the exchange part.
-+ !%integer :: npwx ! No. of G for the exchange part.
- integer :: npwvec ! MAX between npwwfn and npweps
- integer :: nsh ! Number of shells corresponding to npwvec=MAX(npwwfn,npweps)
- integer :: nbnds ! Total number of bands considered.
-diff -Naur abinit-6.4.2.bak/src/51_manage_mpi/mpi_enreg_tools.F90 abinit-6.4.2/src/51_manage_mpi/mpi_enreg_tools.F90
---- src/51_manage_mpi/mpi_enreg_tools.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/51_manage_mpi/mpi_enreg_tools.F90 2011-01-05 08:53:13.000000000 +0000
-@@ -675,8 +675,8 @@
- MSG_ERROR(" %paral_compil_kpt/=1")
- end if
-
--!$spaceComm=MPI_enreg%spaceComm
--!$nprocs = xcomm_size(spaceComm)
-+!%spaceComm=MPI_enreg%spaceComm
-+!%nprocs = xcomm_size(spaceComm)
- nprocs = MPI_enreg%nproc
- my_rank = MPI_enreg%me
-
-diff -Naur abinit-6.4.2.bak/src/52_fft_mpi_noabirule/accrho.F90 abinit-6.4.2/src/52_fft_mpi_noabirule/accrho.F90
---- src/52_fft_mpi_noabirule/accrho.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/52_fft_mpi_noabirule/accrho.F90 2011-01-06 16:08:27.000000000 +0000
-@@ -91,14 +91,14 @@
- integer unused
- unused=0
- ! *************************************************************************
--!$ interface
--!$ integer ( kind=4 ) function omp_get_num_threads ( )
--!$ end function omp_get_num_threads
--!$ end interface
--!$ interface
--!$ integer ( kind=4 ) function omp_get_thread_num ( )
--!$ end function omp_get_thread_num
--!$ end interface
-+!% interface
-+!% integer ( kind=4 ) function omp_get_num_threads ( )
-+!% end function omp_get_num_threads
-+!% end interface
-+!% interface
-+!% integer ( kind=4 ) function omp_get_thread_num ( )
-+!% end function omp_get_thread_num
-+!% end interface
-
- write(6,*)' accrho : enter '
-
-diff -Naur abinit-6.4.2.bak/src/52_fft_mpi_noabirule/applypot.F90 abinit-6.4.2/src/52_fft_mpi_noabirule/applypot.F90
---- src/52_fft_mpi_noabirule/applypot.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/52_fft_mpi_noabirule/applypot.F90 2011-01-06 16:09:25.000000000 +0000
-@@ -91,14 +91,14 @@
- integer unused
- unused=0
-
--!$ interface
--!$ integer ( kind=4 ) function omp_get_num_threads ( )
--!$ end function omp_get_num_threads
--!$ end interface
--!$ interface
--!$ integer ( kind=4 ) function omp_get_thread_num ( )
--!$ end function omp_get_thread_num
--!$ end interface
-+!% interface
-+!% integer ( kind=4 ) function omp_get_num_threads ( )
-+!% end function omp_get_num_threads
-+!% end interface
-+!% interface
-+!% integer ( kind=4 ) function omp_get_thread_num ( )
-+!% end function omp_get_thread_num
-+!% end interface
-
- write(6,*)' applypot : enter '
-
-diff -Naur abinit-6.4.2.bak/src/52_fft_mpi_noabirule/back.F90 abinit-6.4.2/src/52_fft_mpi_noabirule/back.F90
---- src/52_fft_mpi_noabirule/back.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/52_fft_mpi_noabirule/back.F90 2011-01-07 14:21:34.000000000 +0000
-@@ -90,14 +90,14 @@
- #endif
- ! *************************************************************************
-
--!$ interface
--!$ integer ( kind=4 ) function omp_get_num_threads ( )
--!$ end function omp_get_num_threads
--!$ end interface
--!$ interface
--!$ integer ( kind=4 ) function omp_get_thread_num ( )
--!$ end function omp_get_thread_num
--!$ end interface
-+!% interface
-+!% integer ( kind=4 ) function omp_get_num_threads ( )
-+!% end function omp_get_num_threads
-+!% end interface
-+!% interface
-+!% integer ( kind=4 ) function omp_get_thread_num ( )
-+!% end function omp_get_thread_num
-+!% end interface
-
- !DEBUG
- ! write(6,*)' back : enter '
-@@ -121,7 +121,8 @@
-
- lock=0
- !$omp parallel default(private) &
--!$omp shared(ndat,n1,n2,n3,nd1,nd2,nd3,nd2proc,nd3proc,mpi_enreg%me_fft,mpi_enreg%nproc_fft,ncache,zr,zf,lock,icplex)
-+!%omp shared(ndat,n1,n2,n3,nd1,nd2,nd3,nd2proc,nd3proc,mpi_enreg%me_fft,mpi_enreg%nproc_fft,ncache,zr,zf,lock,icplex)
-+!$omp shared(ndat,n1,n2,n3,nd1,nd2,nd3,nd2proc,nd3proc,mpi_enreg,ncache,zr,zf,lock,icplex)
-
- iam=0
- npr=1
-diff -Naur abinit-6.4.2.bak/src/52_fft_mpi_noabirule/back_wf.F90 abinit-6.4.2/src/52_fft_mpi_noabirule/back_wf.F90
---- src/52_fft_mpi_noabirule/back_wf.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/52_fft_mpi_noabirule/back_wf.F90 2011-01-07 14:18:09.000000000 +0000
-@@ -98,14 +98,14 @@
- real(KIND=8) :: tsec(2)
- type(MPI_type),intent(inout) :: mpi_enreg
- integer :: old_paral_level
--!$ interface
--!$ integer ( kind=4 ) function omp_get_num_threads ( )
--!$ end function omp_get_num_threads
--!$ end interface
--!$ interface
--!$ integer ( kind=4 ) function omp_get_thread_num ( )
--!$ end function omp_get_thread_num
--!$ end interface
-+!% interface
-+!% integer ( kind=4 ) function omp_get_num_threads ( )
-+!% end function omp_get_num_threads
-+!% end interface
-+!% interface
-+!% integer ( kind=4 ) function omp_get_thread_num ( )
-+!% end function omp_get_thread_num
-+!% end interface
-
- if(.false.)write(6,*)iproc,nproc
- if(mpi_enreg%mode_para=='b') ioption=1
-diff -Naur abinit-6.4.2.bak/src/52_fft_mpi_noabirule/forw.F90 abinit-6.4.2/src/52_fft_mpi_noabirule/forw.F90
---- src/52_fft_mpi_noabirule/forw.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/52_fft_mpi_noabirule/forw.F90 2011-01-07 14:21:49.000000000 +0000
-@@ -95,14 +95,14 @@
- integer :: old_paral_level
- #endif
- ! *************************************************************************
--!$ interface
--!$ integer ( kind=4 ) function omp_get_num_threads ( )
--!$ end function omp_get_num_threads
--!$ end interface
--!$ interface
--!$ integer ( kind=4 ) function omp_get_thread_num ( )
--!$ end function omp_get_thread_num
--!$ end interface
-+!% interface
-+!% integer ( kind=4 ) function omp_get_num_threads ( )
-+!% end function omp_get_num_threads
-+!% end interface
-+!% interface
-+!% integer ( kind=4 ) function omp_get_thread_num ( )
-+!% end function omp_get_thread_num
-+!% end interface
-
- !DEBUG
- ! write(6,*)' forw : enter '
-@@ -134,7 +134,8 @@
-
- lock=0
- !$omp parallel default(private) &
--!$omp shared(ndat,n1,n2,n3,nd1,nd2,nd3,nd2proc,nd3proc,mpi_enreg%me_fft,mpi_enreg%nproc_fft,ncache,zr,zf,lock,icplex)
-+!%omp shared(ndat,n1,n2,n3,nd1,nd2,nd3,nd2proc,nd3proc,mpi_enreg%me_fft,mpi_enreg%nproc_fft,ncache,zr,zf,lock,icplex)
-+!$omp shared(ndat,n1,n2,n3,nd1,nd2,nd3,nd2proc,nd3proc,mpi_enreg,ncache,zr,zf,lock,icplex)
-
- iam=0
- npr=1
-diff -Naur abinit-6.4.2.bak/src/52_fft_mpi_noabirule/forw_wf.F90 abinit-6.4.2/src/52_fft_mpi_noabirule/forw_wf.F90
---- src/52_fft_mpi_noabirule/forw_wf.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/52_fft_mpi_noabirule/forw_wf.F90 2011-01-07 14:18:58.000000000 +0000
-@@ -98,14 +98,14 @@
- type(MPI_type),intent(inout) :: mpi_enreg
- integer :: old_paral_level
-
--!$ interface
--!$ integer ( kind=4 ) function omp_get_num_threads ( )
--!$ end function omp_get_num_threads
--!$ end interface
--!$ interface
--!$ integer ( kind=4 ) function omp_get_thread_num ( )
--!$ end function omp_get_thread_num
--!$ end interface
-+!% interface
-+!% integer ( kind=4 ) function omp_get_num_threads ( )
-+!% end function omp_get_num_threads
-+!% end interface
-+!% interface
-+!% integer ( kind=4 ) function omp_get_thread_num ( )
-+!% end function omp_get_thread_num
-+!% end interface
-
- if(mpi_enreg%mode_para=='b') ioption=1
- ! call timab(542,1,tsec)
-diff -Naur abinit-6.4.2.bak/src/52_fft_mpi_noabirule/m_fftw3.F90 abinit-6.4.2/src/52_fft_mpi_noabirule/m_fftw3.F90
---- src/52_fft_mpi_noabirule/m_fftw3.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/52_fft_mpi_noabirule/m_fftw3.F90 2011-01-05 09:58:51.000000000 +0000
-@@ -156,7 +156,7 @@
- !integer,pointer :: n(:) rank
- !integer,pointer :: inembed(:) rank
- !integer,pointer :: onembed(:) rank
-- !$integer(C_INT) :: alignment(2) ! The alignment of the arrays used to costruct the plan.
-+ !%integer(C_INT) :: alignment(2) ! The alignment of the arrays used to costruct the plan.
- ! needed because we cannot use fftw_malloc.
- integer :: ndiv(3)=-1 ! The number of FFT divisions.
- end type fftw_plan_type
-@@ -1022,10 +1022,10 @@
- allocate(ff(nx*ny*nz*ndat),gg(2,nx*ny*nz*ndat))
-
- ! These calls seem to make the code stuck if we link against MKL
-- !$call fftw3_r2c_op(nx,ny,nz,nx,ny,nz,ndat,ff,gg,fftw_flags=wisdom_flag)
-- !$call fftw3_c2r_op(nx,ny,nz,nx,ny,nz,ndat,ff,gg,fftw_flags=wisdom_flag)
-- !$write(msg,'(a)')" fftw3_c2r_op done"
-- !$call wrtout(std_out,msg,"COLL")
-+ !%call fftw3_r2c_op(nx,ny,nz,nx,ny,nz,ndat,ff,gg,fftw_flags=wisdom_flag)
-+ !%call fftw3_c2r_op(nx,ny,nz,nx,ny,nz,ndat,ff,gg,fftw_flags=wisdom_flag)
-+ !%write(msg,'(a)')" fftw3_c2r_op done"
-+ !%call wrtout(std_out,msg,"COLL")
-
- deallocate(ff,gg)
-
-diff -Naur abinit-6.4.2.bak/src/53_abiutil/m_abilasi.F90 abinit-6.4.2/src/53_abiutil/m_abilasi.F90
---- src/53_abiutil/m_abilasi.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/53_abiutil/m_abilasi.F90 2011-01-05 17:36:48.000000000 +0000
-@@ -567,36 +567,36 @@
-
- MSG_PERS_ERROR("Not coded yet")
-
--!$$ call init_scalapack(Slk_processor,comm)
--!$$ istwf_k=1
--!$$
--!$$ ! Initialize and fill Scalapack matrix from the global one.
--!$$ tbloc=SLK_BLOCK_SIZE
--!$$ call init_matrix_scalapack(Slk_mat,n,n,Slk_processor,istwf_k,tbloc=tbloc)
--!$$
--!$$ write(msg,'(2(a,i0))')" Using scaLAPACK version with nprocs= ",nprocs,"; block size= ",tbloc
--!$$ call wrtout(std_out,msg,"PERS")
--!$$
--!$$ call slk_matrix_from_global_dpc_2D(Slk_mat,uplo,a)
--!$$
--!$$ want_eigenvectors = starts_with(jobz,(/"V","v"/))
--!$$ if (want_eigenvectors) then ! Initialize the distributed vectors.
--!$$ call init_matrix_scalapack(Slk_vec,n,n,Slk_processor,istwf_k,tbloc=tbloc)
--!$$ end if
--!$$
--!$$ ! Solve the problem with scaLAPACK.
--!$$ call slk_pzheev(jobz,uplo,Slk_mat,Slk_vec,w)
--!$$
--!$$ call destruction_matrix_scalapack(Slk_mat)
--!$$
--!$$ if (want_eigenvectors) then ! A is overwritten with the eigenvectors
--!$$ a = czero
--!$$ call slk_matrix_to_global_dpc_2D(Slk_vec,"All",a) ! Fill the entries calculated by this node.
--!$$ call destruction_matrix_scalapack(Slk_vec)
--!$$ call xsum_mpi(a,comm,ierr) ! Fill the remaing entries of the global matrix
--!$$ end if
--!$$
--!$$ call end_scalapack(Slk_processor)
-+!%% call init_scalapack(Slk_processor,comm)
-+!%% istwf_k=1
-+!%%
-+!%% ! Initialize and fill Scalapack matrix from the global one.
-+!%% tbloc=SLK_BLOCK_SIZE
-+!%% call init_matrix_scalapack(Slk_mat,n,n,Slk_processor,istwf_k,tbloc=tbloc)
-+!%%
-+!%% write(msg,'(2(a,i0))')" Using scaLAPACK version with nprocs= ",nprocs,"; block size= ",tbloc
-+!%% call wrtout(std_out,msg,"PERS")
-+!%%
-+!%% call slk_matrix_from_global_dpc_2D(Slk_mat,uplo,a)
-+!%%
-+!%% want_eigenvectors = starts_with(jobz,(/"V","v"/))
-+!%% if (want_eigenvectors) then ! Initialize the distributed vectors.
-+!%% call init_matrix_scalapack(Slk_vec,n,n,Slk_processor,istwf_k,tbloc=tbloc)
-+!%% end if
-+!%%
-+!%% ! Solve the problem with scaLAPACK.
-+!%% call slk_pzheev(jobz,uplo,Slk_mat,Slk_vec,w)
-+!%%
-+!%% call destruction_matrix_scalapack(Slk_mat)
-+!%%
-+!%% if (want_eigenvectors) then ! A is overwritten with the eigenvectors
-+!%% a = czero
-+!%% call slk_matrix_to_global_dpc_2D(Slk_vec,"All",a) ! Fill the entries calculated by this node.
-+!%% call destruction_matrix_scalapack(Slk_vec)
-+!%% call xsum_mpi(a,comm,ierr) ! Fill the remaing entries of the global matrix
-+!%% end if
-+!%%
-+!%% call end_scalapack(Slk_processor)
-
- RETURN
- #endif
-@@ -1086,7 +1086,7 @@
- ! Solve the problem with scaLAPACK.
- MSG_ERROR("slk_pZHEGV not yet coded")
- ! TODO
-- !$call slk_pzhegv(itype,jobz,uplo,Slk_matA,Slk_matB,w)
-+ !%call slk_pzhegv(itype,jobz,uplo,Slk_matA,Slk_matB,w)
-
- call destruction_matrix_scalapack(Slk_matB)
-
-@@ -1324,37 +1324,37 @@
-
- MSG_ERROR("Not coded yet")
-
-- !$$ call init_scalapack(Slk_processor,comm)
-- !$$ istwf_k=1
-+ !%% call init_scalapack(Slk_processor,comm)
-+ !%% istwf_k=1
-
-- !$$ ! Initialize and fill Scalapack matrix from the global one.
-- !$$ tbloc=SLK_BLOCK_SIZE
-+ !%% ! Initialize and fill Scalapack matrix from the global one.
-+ !%% tbloc=SLK_BLOCK_SIZE
-
-- !$$ write(msg,'(2(a,i0))')" Using scaLAPACK version with nprocs= ",nprocs,"; block size= ",tbloc
-- !$$ call wrtout(std_out,msg,"PERS")
-+ !%% write(msg,'(2(a,i0))')" Using scaLAPACK version with nprocs= ",nprocs,"; block size= ",tbloc
-+ !%% call wrtout(std_out,msg,"PERS")
-
-- !$$ call init_matrix_scalapack(Slk_matA,n,n,Slk_processor,istwf_k,tbloc=tbloc)
-- !$$ call slk_matrix_from_global_dpc_2D(Slk_matA,uplo,a)
-+ !%% call init_matrix_scalapack(Slk_matA,n,n,Slk_processor,istwf_k,tbloc=tbloc)
-+ !%% call slk_matrix_from_global_dpc_2D(Slk_matA,uplo,a)
-
-- !$$ call init_matrix_scalapack(Slk_matB,n,n,Slk_processor,istwf_k,tbloc=tbloc)
-- !$$ call slk_matrix_from_global_dpc_2D(Slk_matB,uplo,b)
-+ !%% call init_matrix_scalapack(Slk_matB,n,n,Slk_processor,istwf_k,tbloc=tbloc)
-+ !%% call slk_matrix_from_global_dpc_2D(Slk_matB,uplo,b)
-
-- !$$ ! Solve the problem with scaLAPACK.
-- !$$ MSG_ERROR("slk_pZHEGV not yet coded")
-- !$$ ! TODO
-- !$$ !$call slk_pzhegv(itype,jobz,uplo,Slk_matA,Slk_matB,w)
-+ !%% ! Solve the problem with scaLAPACK.
-+ !%% MSG_ERROR("slk_pZHEGV not yet coded")
-+ !%% ! TODO
-+ !%% !%call slk_pzhegv(itype,jobz,uplo,Slk_matA,Slk_matB,w)
-
-- !$$ call destruction_matrix_scalapack(Slk_matB)
-- !$$
-- !$$ if (starts_with(jobz,(/"V","v"/))) then ! A is overwritten with the eigenvectors
-- !$$ a = czero
-- !$$ call slk_matrix_to_global_dpc_2D(Slk_matA,"All",a) ! Fill the entries calculated by this node.
-- !$$ call xsum_mpi(a,comm,ierr) ! Fill the remaing entries of the global matrix
-- !$$ end if
-+ !%% call destruction_matrix_scalapack(Slk_matB)
-+ !%%
-+ !%% if (starts_with(jobz,(/"V","v"/))) then ! A is overwritten with the eigenvectors
-+ !%% a = czero
-+ !%% call slk_matrix_to_global_dpc_2D(Slk_matA,"All",a) ! Fill the entries calculated by this node.
-+ !%% call xsum_mpi(a,comm,ierr) ! Fill the remaing entries of the global matrix
-+ !%% end if
-
-- !$$ call destruction_matrix_scalapack(Slk_matA)
-+ !%% call destruction_matrix_scalapack(Slk_matA)
-
-- !$$ call end_scalapack(Slk_processor)
-+ !%% call end_scalapack(Slk_processor)
-
- RETURN
- #endif
-@@ -1868,36 +1868,36 @@
- #if defined HAVE_LINALG_MPI
-
- MSG_ERROR("Not coded yet")
-- !$$ call init_scalapack(Slk_processor,comm)
-- !$$ istwf_k=1
-+ !%% call init_scalapack(Slk_processor,comm)
-+ !%% istwf_k=1
-
-- !$$ ! Initialize and fill Scalapack matrix from the global one.
-- !$$ tbloc=SLK_BLOCK_SIZE
-- !$$ call init_matrix_scalapack(Slk_mat,n,n,Slk_processor,istwf_k,tbloc=tbloc)
--
-- !$$ write(msg,'(2(a,i0))')" Using scaLAPACK version with nprocs= ",nprocs,"; block size= ",tbloc
-- !$$ call wrtout(std_out,msg,"PERS")
--
-- !$$ call slk_matrix_from_global_dpc_2D(Slk_mat,uplo,a)
--
-- !$$ want_eigenvectors = starts_with(jobz,(/"V","v"/))
-- !$$ if (want_eigenvectors) then ! Initialize the distributed vectors.
-- !$$ call init_matrix_scalapack(Slk_vec,n,n,Slk_processor,istwf_k,tbloc=tbloc)
-- !$$ end if
--
-- !$$ ! Solve the problem.
-- !$$ call slk_pzheevx(jobz,range,uplo,Slk_mat,vl,vu,il,iu,abstol,Slk_vec,m,w)
--
-- !$$ call destruction_matrix_scalapack(Slk_mat)
-- !$$
-- !$$ if (want_eigenvectors) then ! A is overwritten with the eigenvectors
-- !$$ z = czero
-- !$$ call slk_matrix_to_global_dpc_2D(Slk_vec,"All",z) ! Fill the entries calculated by this node.
-- !$$ call destruction_matrix_scalapack(Slk_vec)
-- !$$ call xsum_mpi(z,comm,ierr) ! Fill the remaing entries of the global matrix
-- !$$ end if
-+ !%% ! Initialize and fill Scalapack matrix from the global one.
-+ !%% tbloc=SLK_BLOCK_SIZE
-+ !%% call init_matrix_scalapack(Slk_mat,n,n,Slk_processor,istwf_k,tbloc=tbloc)
-+
-+ !%% write(msg,'(2(a,i0))')" Using scaLAPACK version with nprocs= ",nprocs,"; block size= ",tbloc
-+ !%% call wrtout(std_out,msg,"PERS")
-+
-+ !%% call slk_matrix_from_global_dpc_2D(Slk_mat,uplo,a)
-+
-+ !%% want_eigenvectors = starts_with(jobz,(/"V","v"/))
-+ !%% if (want_eigenvectors) then ! Initialize the distributed vectors.
-+ !%% call init_matrix_scalapack(Slk_vec,n,n,Slk_processor,istwf_k,tbloc=tbloc)
-+ !%% end if
-+
-+ !%% ! Solve the problem.
-+ !%% call slk_pzheevx(jobz,range,uplo,Slk_mat,vl,vu,il,iu,abstol,Slk_vec,m,w)
-+
-+ !%% call destruction_matrix_scalapack(Slk_mat)
-+ !%%
-+ !%% if (want_eigenvectors) then ! A is overwritten with the eigenvectors
-+ !%% z = czero
-+ !%% call slk_matrix_to_global_dpc_2D(Slk_vec,"All",z) ! Fill the entries calculated by this node.
-+ !%% call destruction_matrix_scalapack(Slk_vec)
-+ !%% call xsum_mpi(z,comm,ierr) ! Fill the remaing entries of the global matrix
-+ !%% end if
-
-- !$$ call end_scalapack(Slk_processor)
-+ !%% call end_scalapack(Slk_processor)
-
- RETURN
- #endif
-@@ -2159,7 +2159,7 @@
- ! Solve the problem.
- MSG_ERROR("slk_pZHEGVX not coded yet")
- ! TODO write the scaLAPACK wrapper.
-- !$call slk_pZHEGVX(itype,jobz,range,uplo,Slk_matA,Slk_matB,vl,vu,il,iu,abstol,Slk_vec,m,w)
-+ !%call slk_pZHEGVX(itype,jobz,range,uplo,Slk_matA,Slk_matB,vl,vu,il,iu,abstol,Slk_vec,m,w)
-
- call destruction_matrix_scalapack(Slk_matA)
- call destruction_matrix_scalapack(Slk_matB)
-@@ -2466,44 +2466,44 @@
- #if defined HAVE_LINALG_MPI
-
- MSG_ERROR("not coded yet")
-- !$$ call init_scalapack(Slk_processor,comm)
-- !$$ istwf_k=1
-+ !%% call init_scalapack(Slk_processor,comm)
-+ !%% istwf_k=1
-
-- !$$ ! Initialize and fill Scalapack matrix from the global one.
-- !$$ tbloc=SLK_BLOCK_SIZE
-+ !%% ! Initialize and fill Scalapack matrix from the global one.
-+ !%% tbloc=SLK_BLOCK_SIZE
-
-- !$$ write(msg,'(2(a,i0))')" Using scaLAPACK version with nprocs= ",nprocs,"; block size= ",tbloc
-- !$$ call wrtout(std_out,msg,"PERS")
-+ !%% write(msg,'(2(a,i0))')" Using scaLAPACK version with nprocs= ",nprocs,"; block size= ",tbloc
-+ !%% call wrtout(std_out,msg,"PERS")
-
-- !$$ call init_matrix_scalapack(Slk_matA,n,n,Slk_processor,istwf_k,tbloc=tbloc)
-- !$$ call slk_matrix_from_global_dpc_2D(Slk_matA,uplo,a)
--
-- !$$ call init_matrix_scalapack(Slk_matB,n,n,Slk_processor,istwf_k,tbloc=tbloc)
-- !$$ call slk_matrix_from_global_dpc_2D(Slk_matB,uplo,b)
--
-- !$$ want_eigenvectors = starts_with(jobz,(/"V","v"/))
-- !$$ if (want_eigenvectors) then ! Initialize the distributed vectors.
-- !$$ call init_matrix_scalapack(Slk_vec,n,n,Slk_processor,istwf_k,tbloc=tbloc)
-- !$$ end if
--
-- !$$ ! Solve the problem.
-- !$$ MSG_ERROR("slk_pZHEGVX not coded yet")
-- !$$ ! TODO write the scaLAPACK wrapper.
-- !$$ !$call slk_pZHEGVX(itype,jobz,range,uplo,Slk_matA,Slk_matB,vl,vu,il,iu,abstol,Slk_vec,m,w)
--
-- !$$ call destruction_matrix_scalapack(Slk_matA)
-- !$$ call destruction_matrix_scalapack(Slk_matB)
-- !$$
-- !$$ if (want_eigenvectors) then ! A is overwritten with the eigenvectors
-- !$$ z = czero
-- !$$ call slk_matrix_to_global_dpc_2D(Slk_vec,"All",z) ! Fill the entries calculated by this node.
-- !$$ call destruction_matrix_scalapack(Slk_vec)
-- !$$ call xsum_mpi(z,comm,ierr) ! Fill the remaing entries of the global matrix
-- !$$ end if
-+ !%% call init_matrix_scalapack(Slk_matA,n,n,Slk_processor,istwf_k,tbloc=tbloc)
-+ !%% call slk_matrix_from_global_dpc_2D(Slk_matA,uplo,a)
-+
-+ !%% call init_matrix_scalapack(Slk_matB,n,n,Slk_processor,istwf_k,tbloc=tbloc)
-+ !%% call slk_matrix_from_global_dpc_2D(Slk_matB,uplo,b)
-+
-+ !%% want_eigenvectors = starts_with(jobz,(/"V","v"/))
-+ !%% if (want_eigenvectors) then ! Initialize the distributed vectors.
-+ !%% call init_matrix_scalapack(Slk_vec,n,n,Slk_processor,istwf_k,tbloc=tbloc)
-+ !%% end if
-+
-+ !%% ! Solve the problem.
-+ !%% MSG_ERROR("slk_pZHEGVX not coded yet")
-+ !%% ! TODO write the scaLAPACK wrapper.
-+ !%% !%call slk_pZHEGVX(itype,jobz,range,uplo,Slk_matA,Slk_matB,vl,vu,il,iu,abstol,Slk_vec,m,w)
-+
-+ !%% call destruction_matrix_scalapack(Slk_matA)
-+ !%% call destruction_matrix_scalapack(Slk_matB)
-+ !%%
-+ !%% if (want_eigenvectors) then ! A is overwritten with the eigenvectors
-+ !%% z = czero
-+ !%% call slk_matrix_to_global_dpc_2D(Slk_vec,"All",z) ! Fill the entries calculated by this node.
-+ !%% call destruction_matrix_scalapack(Slk_vec)
-+ !%% call xsum_mpi(z,comm,ierr) ! Fill the remaing entries of the global matrix
-+ !%% end if
-
-- !$$ call end_scalapack(Slk_processor)
-+ !%% call end_scalapack(Slk_processor)
-
-- !$$ RETURN
-+ !%% RETURN
- #endif
-
- MSG_PERS_BUG("You should not be here!")
-@@ -2927,7 +2927,7 @@
- MSG_PERS_ERROR(msg)
- end if
-
-- !$call slk_matrix_from_global_dpc_2D(Slk_mat,"All",a)
-+ !%call slk_matrix_from_global_dpc_2D(Slk_mat,"All",a)
-
- ipiv_size = my_locr(Slk_mat) + Slk_mat%descript%tab(MB_)
- allocate(ipiv(ipiv_size))
-@@ -2968,7 +2968,7 @@
-
- ! Reconstruct the global matrix from the distributed one.
- a = czero
-- !$call slk_matrix_to_global_dpc_2D(Slk_mat,"All",a) ! Fill the entries calculated by this node.
-+ !%call slk_matrix_to_global_dpc_2D(Slk_mat,"All",a) ! Fill the entries calculated by this node.
- call destruction_matrix_scalapack(Slk_mat)
-
- call xsum_mpi(a,comm,ierr) ! Fill the remaing entries of the global matrix
-diff -Naur abinit-6.4.2.bak/src/53_ffts/fftw3_fourwf.F90 abinit-6.4.2/src/53_ffts/fftw3_fourwf.F90
---- src/53_ffts/fftw3_fourwf.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/53_ffts/fftw3_fourwf.F90 2011-01-05 17:22:28.000000000 +0000
-@@ -432,8 +432,8 @@
- end do
-
- cplex=0; istwf_k=1; option=3
--!$ call sg_fftrisc(cplex,dum_denpot,fofgin,dum_fofgin,fofr,gbound,gbound,istwf_k,dum_gvec,gvec,&
--!$& mgfft,ngfft,npwwfn,npwwfn,ldx,ldy,ldz,option,weight)
-+!% call sg_fftrisc(cplex,dum_denpot,fofgin,dum_fofgin,fofr,gbound,gbound,istwf_k,dum_gvec,gvec,&
-+!%& mgfft,ngfft,npwwfn,npwwfn,ldx,ldy,ldz,option,weight)
-
- allocate(ftarr(2,ldx,ldy,ldz))
- !This call gives weird results for R-->G, while G-->R is ok!!!!
-diff -Naur abinit-6.4.2.bak/src/53_ffts/sphere_fft.F90 abinit-6.4.2/src/53_ffts/sphere_fft.F90
---- src/53_ffts/sphere_fft.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/53_ffts/sphere_fft.F90 2011-01-09 11:05:00.000000000 +0000
-@@ -99,7 +99,7 @@
- !ENDDEBUG
-
- !Insert cg into cfft with extra 0 s around outside:
--!$OMP PARALLEL DO PRIVATE(i1,i2,i3) SHARED(cfft,ndat,n1,n2,n3)
-+!%$OMP PARALLEL DO PRIVATE(i1,i2,i3) SHARED(cfft,ndat,n1,n2,n3)
- !do i2=1,nd2proc*ndat
- !do i3=1,n3
- !do i1=1,n1
-@@ -108,7 +108,7 @@
- !end do
- !end do
- !end do
--!$OMP END PARALLEL DO
-+!%$OMP END PARALLEL DO
- cfft(:,:,:,:)=zero
- !$OMP PARALLEL DO PRIVATE(i1,i2,i3,idat,ipw) SHARED(cfft,cg,kg_k,ndat,npw)
- !write(6,*)'In sphere fft,i1,i2,i3,ipw,cfft=cg'
-@@ -229,7 +229,7 @@
- !ENDDEBUG
-
- !Insert cg into cfft with extra 0 s around outside:
--!$OMP PARALLEL DO PRIVATE(i1,i2,i3) SHARED(cfft,ndat,n1,n2,n3)
-+!%$OMP PARALLEL DO PRIVATE(i1,i2,i3) SHARED(cfft,ndat,n1,n2,n3)
- !do i2=1,nd2proc*ndat
- !do i3=1,n3
- !do i1=1,n1
-@@ -238,7 +238,7 @@
- !end do
- !end do
- !end do
--!$OMP END PARALLEL DO
-+!%$OMP END PARALLEL DO
- cfft(:,:,:,:)=zero
- !$OMP PARALLEL DO PRIVATE(i1,i2,i3,idat,ipw) SHARED(cfft,cg,kg_k,ndat,npw)
- !write(6,*)'In sphere fft,i1,i2,i3,ipw,cfft=cg'
-diff -Naur abinit-6.4.2.bak/src/57_iovars/invars2.F90 abinit-6.4.2/src/57_iovars/invars2.F90
---- src/57_iovars/invars2.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/57_iovars/invars2.F90 2011-01-05 16:51:21.000000000 +0000
-@@ -72,7 +72,7 @@
- use defs_datatypes
- use defs_abitypes
-
-- !$use m_gwdefs, only: gw_sctype_from_name
-+ !%use m_gwdefs, only: gw_sctype_from_name
-
- !This section has been created automatically by the script Abilint (TD).
- !Do not modify the following lines by hand.
-diff -Naur abinit-6.4.2.bak/src/59_io_mpi/hdr_io.F90 abinit-6.4.2/src/59_io_mpi/hdr_io.F90
---- src/59_io_mpi/hdr_io.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/59_io_mpi/hdr_io.F90 2011-01-05 08:53:52.000000000 +0000
-@@ -209,7 +209,7 @@
- use defs_basis
- use defs_abitypes
- use m_errors
--!$use m_header
-+!%use m_header
-
- use m_io_tools, only : flush_unit
-
-diff -Naur abinit-6.4.2.bak/src/64_atompaw/m_lmn_indices.F90 abinit-6.4.2/src/64_atompaw/m_lmn_indices.F90
---- src/64_atompaw/m_lmn_indices.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/64_atompaw/m_lmn_indices.F90 2011-01-05 08:54:53.000000000 +0000
-@@ -251,10 +251,10 @@
- indklmn(6,klmn)=jlm ! jlm
-
- ! TODO additional mapping (At present it is in klmntomn)
-- !$indklmn(7 ,klmn)=indlmn(2,ilmn)+il+1 ! im
-- !$indklmn(8 ,klmn)=indlmn(2,jlmn)+jl+1 ! jm
-- !$indklmn(9 ,klmn)=indlmn(3,ilmn) ! in
-- !$indklmn(10,klmn)=indlmn(3,jlmn) ! jn
-+ !%indklmn(7 ,klmn)=indlmn(2,ilmn)+il+1 ! im
-+ !%indklmn(8 ,klmn)=indlmn(2,jlmn)+jl+1 ! jm
-+ !%indklmn(9 ,klmn)=indlmn(3,ilmn) ! in
-+ !%indklmn(10,klmn)=indlmn(3,jlmn) ! jn
-
- if (ilm==jlm) klm_diag(klmn)=1
- end do
-@@ -329,8 +329,8 @@
-
- il= indlmn(1,ilmn); iln=indlmn(5,ilmn)
- jl= indlmn(1,jlmn); jln=indlmn(5,jlmn)
-- !$in = indklmn(9 ,klmn) !=indlmn(3,ilmn)
-- !$jn = indklmn(10,klmn) !=indlmn(3,jlmn)
-+ !%in = indklmn(9 ,klmn) !=indlmn(3,ilmn)
-+ !%jn = indklmn(10,klmn) !=indlmn(3,jlmn)
-
- in = indlmn(3,ilmn)
- jn = indlmn(3,jlmn)
-diff -Naur abinit-6.4.2.bak/src/65_nonlocal/m_hamiltonian.F90 abinit-6.4.2/src/65_nonlocal/m_hamiltonian.F90
---- src/65_nonlocal/m_hamiltonian.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/65_nonlocal/m_hamiltonian.F90 2011-01-05 16:38:16.000000000 +0000
-@@ -142,7 +142,7 @@
- ! "V": all eigenvalues in the half-open interval (VL,VU] will be found.
- ! "I": the IL-th through IU-th eigenvalues will be found.
-
-- !$character(len=fnlen) :: fname
-+ !%character(len=fnlen) :: fname
- ! The name of the file storing the eigenvectors and eigenvalues (only if jobz="V")
-
- end type ddiago_ctl_type
-@@ -391,7 +391,7 @@
- gs_hamk%nfft =nfft
- gs_hamk%ngfft(:) =ngfft(:)
- gs_hamk%nloalg(:) =nloalg(:)
-- !$gs_hamk%matblk=nloalg(4); if (nloalg(1)>0) gs_hamk%matblk=natom
-+ !%gs_hamk%matblk=nloalg(4); if (nloalg(1)>0) gs_hamk%matblk=natom
- gs_hamk%nspinor =nspinor
- gs_hamk%ntypat =ntypat
-
-diff -Naur abinit-6.4.2.bak/src/65_psp/psp5lo.F90 abinit-6.4.2/src/65_psp/psp5lo.F90
---- src/65_psp/psp5lo.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/65_psp/psp5lo.F90 2011-01-05 16:38:46.000000000 +0000
-@@ -111,8 +111,8 @@
- call ctrap(mmax,work,al,result)
- !Do integral from r(mmax) to infinity
- !compute decay length lambda at r(mmax)
--!$\lambda=-\log((rad(im1)*vloc(im1)+zion)$/ &
--!$(rad(imat)*vloc(imat)+zion))/(rad(im1)-rad(imat))$
-+!%\lambda=-\log((rad(im1)*vloc(im1)+zion)$/ &
-+!%(rad(imat)*vloc(imat)+zion))/(rad(im1)-rad(imat))$
- !rmtoin=$(rad(mmax)*vloc(mmax)+zion)*(rad(mmax)+1.d0/\lambda)/\lambda$
- !Due to inability to fit exponential decay to r*V(r)+Zv
- !in tail, NO TAIL CORRECTION IS APPLIED
-diff -Naur abinit-6.4.2.bak/src/66_paw/m_paw_slater.F90 abinit-6.4.2/src/66_paw/m_paw_slater.F90
---- src/66_paw/m_paw_slater.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/66_paw/m_paw_slater.F90 2011-01-05 08:57:00.000000000 +0000
-@@ -352,7 +352,7 @@
- Slatang3l(klm)%sggselect = 0
-
- do ilsl=lslat_min,lslat_max
-- !$do ilsl=lslat_min,lslat_max,2
-+ !%do ilsl=lslat_min,lslat_max,2
- lsl = ilsl-1
- do ilc=1,lc_max
- lc = ilc-1
-@@ -695,7 +695,7 @@
- end if
-
- indlmn => Psps%indlmn(1:6,1:lmn_size,itypat)
-- !$indlmn => Pawtab%indklmn(1:6,1:lmn2_size) !TODO indlmn should be in Pawtab!!!
-+ !%indlmn => Pawtab%indklmn(1:6,1:lmn2_size) !TODO indlmn should be in Pawtab!!!
- indklmn => Pawtab%indklmn(1:6,1:lmn2_size)
-
- allocate(kln2ln(6,ln2_size))
-@@ -874,7 +874,7 @@
- lm2_size = lm_size*(lm_size+1)/2
-
- indlmn => Psps%indlmn(1:6,1:lmn_size,itypat) !this is the reason why we still need itypat
-- !$indlmn => Pawtab%indlmn(1:6,1:lmn_size) !TODO indlmn should be in Pawtab!!!
-+ !%indlmn => Pawtab%indlmn(1:6,1:lmn_size) !TODO indlmn should be in Pawtab!!!
- indklmn => Pawtab%indklmn(1:6,1:lmn2_size)
-
- ! * Setup of useful tables.
-@@ -1327,7 +1327,7 @@
- !
- ! Useful table for looping.
- indlmn => Psps%indlmn(1:6,1:lmn_size,itypat)
-- !$indlmn => Pawtab%indlmn(1:6,1:lmn2_size) !TODO indlmn should be in Pawtab!!!
-+ !%indlmn => Pawtab%indlmn(1:6,1:lmn2_size) !TODO indlmn should be in Pawtab!!!
- indklmn => Pawtab%indklmn(1:6,1:lmn2_size)
-
- allocate(kln2ln(6,ln2_size))
-@@ -1822,7 +1822,7 @@
- slat_intg=zero
- if (Slatrad4(slt_idx)%nintgl>0) then
- do ilsum=Slatrad4(slt_idx)%lslat_min,Slatrad4(slt_idx)%lslat_max
-- !$do ilsum=Slatrad4(slt_idx)%lslat_min,Slatrad4(slt_idx)%lslat_max,2
-+ !%do ilsum=Slatrad4(slt_idx)%lslat_min,Slatrad4(slt_idx)%lslat_max,2
- isel = Slatrad4(slt_idx)%intgl_select(ilsum)
- if (isel/=0) then
- sltL_ijkl = Slatrad4(slt_idx)%intgl(isel)
-diff -Naur abinit-6.4.2.bak/src/66_paw/m_paw_toolbox.F90 abinit-6.4.2/src/66_paw/m_paw_toolbox.F90
---- src/66_paw/m_paw_toolbox.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/66_paw/m_paw_toolbox.F90 2011-01-05 08:57:50.000000000 +0000
-@@ -1102,8 +1102,8 @@
- !MG This is the coding PRESENTLY used in pawdenpot but the commented code should be the correct one
- !MT: don't agreee for nspden (there is no dependance of vH^(1) with nspden)
- allocate(Paw_an(iat)%vh1(cplex*Pawtab(itypat)%mesh_size,1,1))
-- !$allocate(Paw_an(iat)%vh1 (cplex*Pawtab(itypat)%mesh_size,lm_size,nspden))
-- !$allocate(Paw_an(iat)%vht1(cplex*Pawtab(itypat)%mesh_size,lm_size,nspden))
-+ !%allocate(Paw_an(iat)%vh1 (cplex*Pawtab(itypat)%mesh_size,lm_size,nspden))
-+ !%allocate(Paw_an(iat)%vht1(cplex*Pawtab(itypat)%mesh_size,lm_size,nspden))
- end if
- end if
-
-diff -Naur abinit-6.4.2.bak/src/66_paw/pawmkaewf.F90 abinit-6.4.2/src/66_paw/pawmkaewf.F90
---- src/66_paw/pawmkaewf.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/66_paw/pawmkaewf.F90 2011-01-04 17:16:03.000000000 +0000
-@@ -99,7 +99,7 @@
-
- #if defined HAVE_ETSF_IO
- use etsf_io
-- !use etsf_io_file, only : etsf_io_file_merge
-+ use etsf_io_file, only : etsf_io_file_merge
- use m_abi_etsf, only : abi_etsf_dims_init
- #endif
-
-@@ -890,7 +890,7 @@
- out_file="test_merge"
- write(msg,'(2a)')'Master node is merging NETCDF partial files into: ',TRIM(out_file)
- call wrtout(std_out, msg,'COLL')
-- !$call etsf_io_file_merge(out_file,merge_files,lstat,Error)
-+ call etsf_io_file_merge(out_file,merge_files,lstat,Error)
- if (.not.lstat) goto 1000
- end if
- call xbarrier_mpi(spaceComm)
-diff -Naur abinit-6.4.2.bak/src/66_wfs/envlop.F90 abinit-6.4.2/src/66_wfs/envlop.F90
---- src/66_wfs/envlop.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/66_wfs/envlop.F90 2011-01-05 16:40:07.000000000 +0000
-@@ -67,7 +67,7 @@
-
- ! *************************************************************************
-
--!$(k+G)^2$ evaluated using metric and kpoint
-+!%$(k+G)^2$ evaluated using metric and kpoint
- gsq(i1,i2,i3)=gmet(1,1)*(kpoint(1)+dble(i1))**2+&
- & gmet(2,2)*(kpoint(2)+dble(i2))**2+&
- & gmet(3,3)*(kpoint(3)+dble(i3))**2+&
-@@ -78,7 +78,7 @@
- !cutoff function
- fcut(gs)=(1.0_dp-(gs/cutoff))**power
-
--!$(k+G)^2$ cutoff from $(1/2)(2 Pi (k+G))^2 = ecut$
-+!%$(k+G)^2$ cutoff from $(1/2)(2 Pi (k+G))^2 = ecut$
- kpgsqc=ecut/(2.0_dp*pi**2)
- cutoff = kpgsqc
-
-diff -Naur abinit-6.4.2.bak/src/66_wfs/m_bands_sym.F90 abinit-6.4.2/src/66_wfs/m_bands_sym.F90
---- src/66_wfs/m_bands_sym.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/66_wfs/m_bands_sym.F90 2011-01-05 16:43:49.000000000 +0000
-@@ -172,7 +172,7 @@
- ! Number of states in each degenerate subspace. Cannot be larger that nclass provided
- ! that no accidental degeneracy occurs.
-
-- !$integer,pointer :: class_ids(:,:) SET2NULL
-+ !%integer,pointer :: class_ids(:,:) SET2NULL
- ! class_ids(2,nclass)
- ! (1,icl) = index of the first symmetry of class icl
- ! (2,icl) = index of the last symmetry of class icl
-@@ -498,12 +498,12 @@
- MSG_ERROR("Not coded")
-
- ! Read little groups from the external database.
-- !$call init_groupk_from_file(Lgrp,spgroup,lgroup_fname,ierr)
-+ !%call init_groupk_from_file(Lgrp,spgroup,lgroup_fname,ierr)
-
- ! Save the irreducible representations in BSym.
- ! Reorder symmetries such that they correspond to the Bilbao database.
-- !$allocate(BSym%Ref_irreps(BSym%nclass))
-- !$call copy_irrep(Irreps, BSym%Ref_irreps)
-+ !%allocate(BSym%Ref_irreps(BSym%nclass))
-+ !%call copy_irrep(Irreps, BSym%Ref_irreps)
-
- else
- write(msg,'(7a)')&
-@@ -769,8 +769,8 @@
-
- deallocate(sgk,tr_sgk,elements_idx)
-
-- !$allocate(BSym%irrep2b(0:BSym%nclass))
-- !$call nullify_coeff(BSym%irrep2b)
-+ !%allocate(BSym%irrep2b(0:BSym%nclass))
-+ !%call nullify_coeff(BSym%irrep2b)
- !
- ! 1) Allocate space for the irreducible representations.
-
-diff -Naur abinit-6.4.2.bak/src/66_wfs/m_wfs.F90 abinit-6.4.2/src/66_wfs/m_wfs.F90
---- src/66_wfs/m_wfs.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/66_wfs/m_wfs.F90 2011-01-05 16:42:27.000000000 +0000
-@@ -95,7 +95,7 @@
- ! The boundary of the basis sphere of G vectors at a given k point.
- ! for use in improved zero padding of ffts in 3 dimensions.
-
-- !$real(dp) :: kpoint(3)
-+ !%real(dp) :: kpoint(3)
-
- !real(dp),pointer :: ph1d(:,:) SET2NULL
- ! ph1d(2,3*(2*mgfft+1)*natom)
-@@ -113,20 +113,20 @@
- ! fnlylm(npw,dim_fnlylm,lmnmax,ntypat)
- ! nonlocal form factors
-
-- !$real(dp),pointer :: ylm(:,:) SET2NULL
-+ !%real(dp),pointer :: ylm(:,:) SET2NULL
- ! ylm(npw,mpsang**2*useylm)
- ! Real spherical harmonics for each G
-
-- !$integer :: ngfft(18)
-+ !%integer :: ngfft(18)
- ! Information about 3D FFT, see ~abinit/doc/input_variables/vargs.htm#ngfft.
-
-- !$integer :: mgfft
-+ !%integer :: mgfft
- ! MAXVAL(ngfft(1:3)), used to dimension some arrays.
-
-- !$integer :: nfftot
-+ !%integer :: nfftot
- ! PRODUCT(ngfft(1:3)), ie the total number of FFT points.
-
-- !$integer :: nfft
-+ !%integer :: nfft
- ! The number of points treated by this node.
-
- end type kdata_t
-@@ -229,7 +229,7 @@
- integer :: lmnmax
- integer :: mband ! MAX(nband)
- integer :: mgfft ! Maximum size of 1D FFTs
-- !$integer :: mpsang
-+ !%integer :: mpsang
- integer :: natom
- integer :: nfft ! Number of FFT points treated by this processor
- integer :: nfftot ! Total number of points in the FFT grid
-@@ -247,7 +247,7 @@
- integer :: my_rank ! The rank of my processor inside the MPI communicator comm.
- integer :: nproc ! The number of processors in MPI comm.
-
-- !$ integer :: cplex
-+ !% integer :: cplex
- ! cplex= if 1 , wavefunctions are real, if 2 they are complex
- ! In systems with time-reversal and spatial inversion, wavefunctions are real.
- ! One might use this to reduce memory in wave_t.
-@@ -311,7 +311,7 @@
- ! nlmn_type(ntypat)
- ! Number of (n,l,m) channels for each type of atom. Only for PAW.
-
-- !$integer,pointer :: typat(:) SET2NULL
-+ !%integer,pointer :: typat(:) SET2NULL
- ! typat(natom)
- ! The type of each atom.
-
-@@ -343,7 +343,7 @@
- ! keep(mband,nkibz,nsppol)
- ! Storage strategy: keep or not keep calculated u(r) in memory.
-
-- !$type(mpicomm_t),pointer :: comm_spin(:)
-+ !%type(mpicomm_t),pointer :: comm_spin(:)
- ! comm(0:nsppol)
- ! MPI communicators.
- ! comm(1), comm(2) are the MPI communicators of the nodes treating the different spins.
-@@ -978,7 +978,7 @@
-
- #if 0
- ! TODO enable this call when k-centered G-spheres are used.
-- !$if (wfd_ihave_ug(Wfd,0,ik_ibz,0)) then
-+ !%if (wfd_ihave_ug(Wfd,0,ik_ibz,0)) then
- call kdata_init(Wfd%Kdata(ik_ibz),Cryst,Psps,kpoint,istwf_k,ngfft,Wfd%MPI_enreg,kg_k=Wfd%gvec)
- !endif
- #else
-@@ -1735,12 +1735,12 @@
- dimffnl = Wfd%Kdata(ik_ibz)%dim_fnlylm
- ph3d => Wfd%Kdata(ik_ibz)%ph3d
- ffnl => Wfd%Kdata(ik_ibz)%fnlylm
-- !$phkxred => Wfd%Kdata(ik_ibz)%phkxred
-+ !%phkxred => Wfd%Kdata(ik_ibz)%phkxred
-
- ! Compute (k+G) vectors
- nkpg=0
-- !$if (choice==3.or.choice==2.or.choice==23) nkpg=3*Wfd%nloalg(5)
-- !$if (choice==4.or.choice==24) nkpg=9*Wfd%nloalg(5)
-+ !%if (choice==3.or.choice==2.or.choice==23) nkpg=3*Wfd%nloalg(5)
-+ !%if (choice==4.or.choice==24) nkpg=9*Wfd%nloalg(5)
- allocate(kpg(npw_k,nkpg)); if (nkpg>0) call mkkpg(kg_k,kpg,kpoint,nkpg,npw_k)
-
- ! Allocate and compute the arrays phkxred and ph3d
-@@ -3793,11 +3793,11 @@
- end if
- end do
-
-- !$mcg = npw_k*Wfd%nspinor*(Wfd%my_maxb-Wfd%my_minb+1)
-+ !%mcg = npw_k*Wfd%nspinor*(Wfd%my_maxb-Wfd%my_minb+1)
- ABI_CHECK(SIZE(cg,DIM=2)>=(mcg+ikg),"cg too small")
-
- do band=1,Wfd%nband(ik_ibz,spin)
-- !$cg_bpad=npw_k*Wfd%nspinor*(band-Wfd%my_minb)
-+ !%cg_bpad=npw_k*Wfd%nspinor*(band-Wfd%my_minb)
- do ispinor=1,Wfd%nspinor
- cg_spad=(ispinor-1)*npw_k
- gw_spad=(ispinor-1)*Wfd%npwwfn
-diff -Naur abinit-6.4.2.bak/src/67_common/hartre1.F90 abinit-6.4.2/src/67_common/hartre1.F90
---- src/67_common/hartre1.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/67_common/hartre1.F90 2011-01-05 17:31:18.000000000 +0000
-@@ -213,7 +213,7 @@
- !numerator: $1/2$ [double counting] $\times 4\pi$ [Poisson eq] $= 2\pi$
- !denominator: $2\pi$ [reciprocal lattice vectors] squared $= (2\pi)^2$
- !gives the same result as real space evaluation via
--!$\frac{1}{2}\int n(\vec r)*V_{H}(\vec r) d^3r$
-+!%$\frac{1}{2}\int n(\vec r)*V_{H}(\vec r) d^3r$
- sum(:)=sum(:)*ucvol*2*pi/(2*pi)**2
- !MF
-
-diff -Naur abinit-6.4.2.bak/src/67_common/ks_ddiago.F90 abinit-6.4.2/src/67_common/ks_ddiago.F90
---- src/67_common/ks_ddiago.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/67_common/ks_ddiago.F90 2011-01-05 17:32:44.000000000 +0000
-@@ -199,7 +199,7 @@
- isppol = Diago_ctl%isppol
- kpoint = Diago_ctl%kpoint
- istwf_k = Diago_ctl%istwf_k
--!$nband_k = Diago_ctl%nband_k
-+!%nband_k = Diago_ctl%nband_k
- npw_k = Diago_ctl%npw_k
- nloalg = Diago_ctl%nloalg
- ecut = Diago_ctl%ecut
-@@ -405,7 +405,7 @@
- end do
- end if
-
--!$call finalize_hamiltonian(gs_hamk,isppol,npw_k,istwfk,kpoint,Paw_ij)
-+!%call finalize_hamiltonian(gs_hamk,isppol,npw_k,istwfk,kpoint,Paw_ij)
-
- !Prepare the call to getghc.
- ndat=1; lambda=zero; type_calc=0 ! For applying the whole Hamiltonian
-diff -Naur abinit-6.4.2.bak/src/67_common/m_coulombian.F90 abinit-6.4.2/src/67_common/m_coulombian.F90
---- src/67_common/m_coulombian.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/67_common/m_coulombian.F90 2011-01-05 17:28:43.000000000 +0000
-@@ -1950,7 +1950,7 @@
- real(dp) :: F3
- !************************************************************************
-
-- !$F3(z)=z*\sin(qpg_para_*z)/\sqrt(rcut^2+z^2)$
-+ !%$F3(z)=z*\sin(qpg_para_*z)/\sqrt(rcut^2+z^2)$
- F3=xx*SIN(qpg_para_*xx)/SQRT(rcut_**2+xx**2)
-
- end function F3
-@@ -2039,7 +2039,7 @@
- real(dp) :: k0,rho,arg
- !************************************************************************
-
-- !$K0cos(y)=K0(\rho*|qpg_z|)*COS(x.qpg_x+y*qpg_y)$
-+ !%$K0cos(y)=K0(\rho*|qpg_z|)*COS(x.qpg_x+y*qpg_y)$
- rho=SQRT(xx_**2+yy**2) ; arg=qpg_para_*rho
- call CALCK0(arg,k0,1)
- K0cos=k0*COS(qpgx_*xx_+qpgy_*yy)
-@@ -2065,7 +2065,7 @@
- real(dp) :: quad
- !************************************************************************
-
-- !$ K0cos_dy(x)=\int_{-b/2}^{b/2} K0(|qpg_z|\rho)cos(x.qpg_x+y.qpg_y)dy$
-+ !%$K0cos_dy(x)=\int_{-b/2}^{b/2} K0(|qpg_z|\rho)cos(x.qpg_x+y.qpg_y)dy$
- xx_=xx
- call quadrature(K0cos,-hb_,+hb_,qopt_,quad,ierr,ntrial_,accuracy_,npts_)
- if (ierr/=0) then
-diff -Naur abinit-6.4.2.bak/src/67_common/m_io_kss.F90 abinit-6.4.2/src/67_common/m_io_kss.F90
---- src/67_common/m_io_kss.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/67_common/m_io_kss.F90 2011-01-05 17:30:48.000000000 +0000
-@@ -706,7 +706,7 @@
-
- write(msg,'(3a)')ch10,' Opening file for KS structure output: ',TRIM(filekss)
- call wrtout(std_out,msg,'COLL')
-- !$call wrtout(ab_out,msg,'COLL')
-+ !%call wrtout(ab_out,msg,'COLL')
-
- write(msg,'(a,i6)') ' number of Gamma centered plane waves ',npwkss
- call wrtout(std_out,msg,'COLL')
-diff -Naur abinit-6.4.2.bak/src/67_common/m_oscillators.F90 abinit-6.4.2/src/67_common/m_oscillators.F90
---- src/67_common/m_oscillators.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/67_common/m_oscillators.F90 2011-01-05 17:29:29.000000000 +0000
-@@ -725,7 +725,7 @@
- Osc%iq_bz = iq_bz
- Osc%q_bz = Qmesh%bz(:,iq_bz)
-
-- !$call get_BZ_item(Qmesh,Osc%iq_bz,Osc%q_bz,Osc%iq_ibz,Osc%isym_q,Osc%itim_q,Osc%ph_mqt)
-+ !%call get_BZ_item(Qmesh,Osc%iq_bz,Osc%q_bz,Osc%iq_ibz,Osc%isym_q,Osc%itim_q,Osc%ph_mqt)
-
- ! Get index of k-q = BZ(k-q) + g0. Note that k-q might fall outside the first BZ.
- call get_BZ_diff(Kmesh,Osc%k_bz,Osc%q_bz,Osc%ikmq_bz,Osc%g0,nfound)
-diff -Naur abinit-6.4.2.bak/src/67_common/outkss.F90 abinit-6.4.2/src/67_common/outkss.F90
---- src/67_common/outkss.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/67_common/outkss.F90 2011-01-05 17:23:51.000000000 +0000
-@@ -132,7 +132,7 @@
- #endif
-
- use m_io_tools, only : get_unit
-- !$use m_numeric_tools, only : bisect
-+ !%use m_numeric_tools, only : bisect
- use m_gsphere, only : merge_and_sort_kg, table_gbig2kg, get_kg
- use m_io_kss, only : write_kss_wfgk, write_kss_header, k2gamma_centered
- use m_hamiltonian, only : ddiago_ctl_type, init_ddiago_ctl
-@@ -461,7 +461,7 @@
- EXIT
- end if
- end do
--!$ ishm=bisect(shlim,npwkss)
-+!% ishm=bisect(shlim,npwkss)
-
- if (shlim(ishm)/=npwkss) then
- nrst1=shlim(ishm)
-diff -Naur abinit-6.4.2.bak/src/68_gw/bloch_interp.F90 abinit-6.4.2/src/68_gw/bloch_interp.F90
---- src/68_gw/bloch_interp.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/68_gw/bloch_interp.F90 2011-01-05 16:23:50.000000000 +0000
-@@ -466,7 +466,7 @@
-
- call get_BZ_item(Kmesh,ik2_bz,kk2,ik2_ibz,k2_sym,k2_tim,k2_eimkt,k2_umklp)
-
-- !$ik2_ibz = Kmesh%tab(ik2_bz)
-+ !%ik2_ibz = Kmesh%tab(ik2_bz)
- nband_k2 = Wfd%nband(ik2_ibz,spin)
-
- inv_k2_sym = toinv(1,k2_sym)
-@@ -567,19 +567,19 @@
- write(*,*)"with_sym",with_sym," without_sym",without_sym
- #endif
-
-- !$if (Wfd%usepaw==1) then
-- !$ allocate(Cp_k1 (Wfd%natom,nspinor))
-- !$ call cprj_alloc(Cp_k1,0,Wfd%nlmn_atm)
--
-- !$ allocate(Cp_k2 (Wfd%natom,nspinor))
-- !$ call cprj_alloc(Cp_k2,0,Wfd%nlmn_atm)
-- !$end if
-+ !%if (Wfd%usepaw==1) then
-+ !% allocate(Cp_k1 (Wfd%natom,nspinor))
-+ !% call cprj_alloc(Cp_k1,0,Wfd%nlmn_atm)
-+
-+ !% allocate(Cp_k2 (Wfd%natom,nspinor))
-+ !% call cprj_alloc(Cp_k2,0,Wfd%nlmn_atm)
-+ !%end if
-
- call wrtout(std_out,"Using version without symmetries","COLL")
- do ik2_bz=1,Kmesh%nbz
- call get_BZ_item(Kmesh,ik2_bz,kk2,ik2_ibz,k2_sym,k2_tim,k2_eimkt,k2_umklp,k2_isirred)
-
-- !$ik2_ibz = Kmesh%tab(ik2_bz)
-+ !%ik2_ibz = Kmesh%tab(ik2_bz)
-
- nband_k2 = Wfd%nband(ik2_ibz,spin)
-
-@@ -597,7 +597,7 @@
-
- do ik1_bz=1,ik2_bz
-
-- !$ik1_ibz = Kmesh%tab(ik1_bz)
-+ !%ik1_ibz = Kmesh%tab(ik1_bz)
- call get_BZ_item(Kmesh,ik1_bz,kk1,ik1_ibz,k1_sym,k1_tim,k1_eimkt,k1_umklp,k1_isirred)
-
- nband_k1 = Wfd%nband(ik1_ibz,spin)
-@@ -616,7 +616,7 @@
- end if
-
- if (Wfd%usepaw==1) then
-- !$call paw_symcprj(ik1_bz,nspinor,1,Cryst,Kmesh,Psps,Pawtab,Pawang,Cp_k1)
-+ !%call paw_symcprj(ik1_bz,nspinor,1,Cryst,Kmesh,Psps,Pawtab,Pawang,Cp_k1)
- Cp_k1 => Pku_bz(:,:,band1,ik1_bz)
- ovlp_paw = paw_overlap(Cp_k1,Cp_k2,typat_sort,Pawtab) ! Be careful as Cp are always sorted.
- blk_ovlp = blk_ovlp + DCMPLX(ovlp_paw(1),ovlp_paw(2))
-@@ -671,8 +671,8 @@
- end do
- end do
- deallocate(Pku_bz)
-- !$call cprj_free(Cp_k1); deallocate(Cp_k1)
-- !$call cprj_free(Cp_k2); deallocate(Cp_k2)
-+ !%call cprj_free(Cp_k1); deallocate(Cp_k1)
-+ !%call cprj_free(Cp_k2); deallocate(Cp_k2)
- end if
- !
- ! ========================================
-@@ -718,8 +718,8 @@
- !
-
- !istwfk=1; nsppol_=1; nkibz_=1: nband_(:,:)=blc_size
-- !$call wfd_init(Wlcd,Cryst,Pawtab,Psps,keep_ur,Wfd%paral_kgb,Wfd%npwwfn,blc_size,nband_,nkibz_,nsppol_,bks_mask,&
-- !$& Wfd%nspden,Wfd%nspinor,istwfk,kibz,ngfft,mg0,gvec,nloalg,comm)
-+ !%call wfd_init(Wlcd,Cryst,Pawtab,Psps,keep_ur,Wfd%paral_kgb,Wfd%npwwfn,blc_size,nband_,nkibz_,nsppol_,bks_mask,&
-+ !%& Wfd%nspden,Wfd%nspinor,istwfk,kibz,ngfft,mg0,gvec,nloalg,comm)
-
- allocate(blc_ug(Wfd%npwwfn*nspinor,blc_size))
- allocate(sum_ur(Wfd%nfft*nspinor))
-@@ -799,7 +799,7 @@
-
- write(blc_unt,rec=1)reclen,Wfd%npwwfn,nspinor,blc_size,spin
- do blc=1,blc_size
-- !$write(blc_unt,rec=1+blc)blc_ug(:,blc)
-+ !%write(blc_unt,rec=1+blc)blc_ug(:,blc)
- end do
-
- close(unit=blc_unt)
-@@ -1274,11 +1274,11 @@
-
- ! Recalculate new occupation numbers and new Fermi level.
- ! FIXME Have to calculate new occ for semiconductors
-- !$call update_occ(ioBSt,Dtset%fixmom,Dtset%stmbias,Dtset%prtvol)
-+ !%call update_occ(ioBSt,Dtset%fixmom,Dtset%stmbias,Dtset%prtvol)
-
- call bst_write_bands(ioBSt,Cryst%gmet,"interpolated",ierr)
-
-- !$call bst_print_fs(ioBst,Cryst,Dtset%kptrlatt,Dtset%nshiftk,Dtset%shiftk,"Fermi_surface",ierr)
-+ !%call bst_print_fs(ioBst,Cryst,Dtset%kptrlatt,Dtset%nshiftk,Dtset%shiftk,"Fermi_surface",ierr)
- !
- ! ===================================
- ! ==== Optionally Write WFK file ====
-@@ -1380,8 +1380,8 @@
- end do
- deallocate(umat_k)
-
-- !$call XGEMM('N','N',nsize,sizegw,rangeb,cone_gw,wf_ks(:,lowerb:upperb),nsize,&
-- !$& umat_k,rangeb,czero_gw,wf_qp(spad+1:spad+nsize,b1gw:b2gw),nsize)
-+ !%call XGEMM('N','N',nsize,sizegw,rangeb,cone_gw,wf_ks(:,lowerb:upperb),nsize,&
-+ !%& umat_k,rangeb,czero_gw,wf_qp(spad+1:spad+nsize,b1gw:b2gw),nsize)
-
- #if 0
- ! * Perform conversion of the basis set.
-diff -Naur abinit-6.4.2.bak/src/68_gw/calc_density.F90 abinit-6.4.2/src/68_gw/calc_density.F90
---- src/68_gw/calc_density.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/68_gw/calc_density.F90 2011-01-05 16:15:05.000000000 +0000
-@@ -336,8 +336,8 @@
- end if
- call wrtout(std_out,msg,'COLL') ; call wrtout(ab_out,msg,'COLL')
-
--!$write(msg,'(a,f9.4)')' Renormalizing smooth charge density using nratio = ',nratio
--!$ rhor(:,:)=nratio*rhor(:,:)
-+!%write(msg,'(a,f9.4)')' Renormalizing smooth charge density using nratio = ',nratio
-+!% rhor(:,:)=nratio*rhor(:,:)
-
- write(msg,'(a,f9.6)')' average of density, n = ',rhoav
- call wrtout(std_out,msg,'COLL') ; call wrtout(ab_out,msg,'COLL')
-diff -Naur abinit-6.4.2.bak/src/68_gw/calc_sigc_cd.F90 abinit-6.4.2/src/68_gw/calc_sigc_cd.F90
---- src/68_gw/calc_sigc_cd.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/68_gw/calc_sigc_cd.F90 2011-01-05 16:28:20.000000000 +0000
-@@ -137,7 +137,7 @@
- call spline(DBLE(omega(1:nomegaer)),DBLE(epsrho(ig,1:nomegaer)),nomegaer,zero,zero,rtmp_r)
- call spline(DBLE(omega(1:nomegaer)),DBLE(AIMAG(epsrho(ig,1:nomegaer))),nomegaer,zero,zero,rtmp_i)
-
-- !$call spline_complex( DBLE(omega(1:nomegaer)), epsrho(ig,1:nomegaer), nomegaer, zero, zero, rtmp )
-+ !%call spline_complex( DBLE(omega(1:nomegaer)), epsrho(ig,1:nomegaer), nomegaer, zero, zero, rtmp )
-
- do ios=1,nomega
-
-@@ -150,7 +150,7 @@
- call splint(nomegaer,DBLE(omega(1:nomegaer)),DBLE(AIMAG(epsrho(ig,1:nomegaer))),rtmp_i,1,tmp_x,tmp_y)
- rt_imag = tmp_y(1)
-
-- !$call splint_complex(nomegaer,DBLE(omega(1:nomegaer)),epsrho(ig,1:nomegaer),rtmp,1,tmp_x,yfit)
-+ !%call splint_complex(nomegaer,DBLE(omega(1:nomegaer)),epsrho(ig,1:nomegaer),rtmp,1,tmp_x,yfit)
-
- ct=DCMPLX(rt_real,rt_imag)
-
-diff -Naur abinit-6.4.2.bak/src/68_gw/calc_sigc_me.F90 abinit-6.4.2/src/68_gw/calc_sigc_me.F90
---- src/68_gw/calc_sigc_me.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/68_gw/calc_sigc_me.F90 2011-01-05 16:35:54.000000000 +0000
-@@ -266,7 +266,7 @@
- ! Index of the GW point in the BZ array, its image in IBZ and time-reversal ===
- jk_bz=Sigp%kptgw2bz(ikcalc)
- call get_BZ_item(Kmesh,jk_bz,kgw,jk_ibz,isym_kgw,jik,ph_mkgwt)
-- !$call get_IBZ_item(Kmesh,jk_ibz,kibz,wtk)
-+ !%call get_IBZ_item(Kmesh,jk_ibz,kibz,wtk)
- spinrot_kgw=Cryst%spinrot(:,isym_kgw)
- !
- ib1=minbnd
-@@ -450,10 +450,10 @@
- ! pass it to the setup_ppmodel
- ! * It would be possible to calculate rho(G) using Paw_pwff though. Maybe faster but
- ! results would depend on the expression used for the matrix elements. This is safer.
--!$ allocate(ks_rhor_paw(rho_nfftot,Dtset%nspden))
--!$ call denfgr(Cryst%natom,Dtset%nspden,ks_nhat,Cryst%ntypat,Pawfgr,Pawfgrtab,Pawrad,KS_pawrhoij,Pawtab,&
--!$ & ks_rhor,ks_rhor_paw,Psps,Cryst%typat)
--!$ deallocate(ks_rhor_paw)
-+!% allocate(ks_rhor_paw(rho_nfftot,Dtset%nspden))
-+!% call denfgr(Cryst%natom,Dtset%nspden,ks_nhat,Cryst%ntypat,Pawfgr,Pawfgrtab,Pawrad,KS_pawrhoij,Pawtab,&
-+!% & ks_rhor,ks_rhor_paw,Psps,Cryst%typat)
-+!% deallocate(ks_rhor_paw)
- end if ! usepaw==1
- !
- !
-@@ -640,8 +640,8 @@
- #ifdef HAVE_CLIB
- call clib_progress_bar(ik_bz,Kmesh%nbz)
- #else
-- !$write(msg,'(2(a,i4),a,i3)')' csigme : ik_bz ',ik_bz,'/',Kmesh%nbz,' done by processor ',Wfd%my_rank
-- !$call wrtout(std_out,msg,'PERS')
-+ !%write(msg,'(2(a,i4),a,i3)')' csigme : ik_bz ',ik_bz,'/',Kmesh%nbz,' done by processor ',Wfd%my_rank
-+ !%call wrtout(std_out,msg,'PERS')
- #endif
- !
- ! === Find the corresponding irred q-point ===
-diff -Naur abinit-6.4.2.bak/src/68_gw/calc_sigx_me.F90 abinit-6.4.2/src/68_gw/calc_sigx_me.F90
---- src/68_gw/calc_sigx_me.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/68_gw/calc_sigx_me.F90 2011-01-05 10:06:07.000000000 +0000
-@@ -237,7 +237,7 @@
- ! === Index of the GW point in the BZ array, its image in IBZ and time-reversal ===
- jk_bz=Sigp%kptgw2bz(ikcalc)
- call get_BZ_item(Kmesh,jk_bz,kgw,jk_ibz,isym_kgw,jik,ph_mkgwt)
-- !$call get_IBZ_item(Kmesh,jk_ibz,kibz,wtk)
-+ !%call get_IBZ_item(Kmesh,jk_ibz,kibz,wtk)
- spinrot_kgw(:)=Cryst%spinrot(:,isym_kgw)
- !
- write(msg,'(2a,3f8.3,2a,2(i3,a))')ch10,&
-@@ -486,8 +486,8 @@
- #ifdef HAVE_CLIB
- call clib_progress_bar(ik_bz,Kmesh%nbz)
- #else
-- !$write(msg,'(2(a,i4),a,i3)')' calc_sigx_me : ik_bz ',ik_bz,'/',Kmesh%nbz,' done by processor ',Wfd%my_rank
-- !$call wrtout(std_out,msg,'PERS')
-+ !%write(msg,'(2(a,i4),a,i3)')' calc_sigx_me : ik_bz ',ik_bz,'/',Kmesh%nbz,' done by processor ',Wfd%my_rank
-+ !%call wrtout(std_out,msg,'PERS')
- #endif
- !
- ! * Find the corresponding irreducible q-point.
-diff -Naur abinit-6.4.2.bak/src/68_gw/cchi0.F90 abinit-6.4.2/src/68_gw/cchi0.F90
---- src/68_gw/cchi0.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/68_gw/cchi0.F90 2011-01-05 10:06:42.000000000 +0000
-@@ -417,7 +417,7 @@
- call clib_progress_bar(ik_bz,Kmesh%nbz)
- #else
- write(msg,'(2(a,i4),a,i2,a,i3)')' ik = ',ik_bz,' / ',Kmesh%nbz,' is = ',is,' done by processor ',Wfd%my_rank
-- !$call wrtout(std_out,msg,'PERS')
-+ !%call wrtout(std_out,msg,'PERS')
- #endif
- !
- ! * Get ik_ibz, non-symmorphic phase, ph_mkt, and symmetries from ik_bz.
-diff -Naur abinit-6.4.2.bak/src/68_gw/classify_bands.F90 abinit-6.4.2/src/68_gw/classify_bands.F90
---- src/68_gw/classify_bands.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/68_gw/classify_bands.F90 2011-01-05 16:28:45.000000000 +0000
-@@ -253,7 +253,7 @@
- !tmp_sym(:,:,isym) = Cryst%symrec(:,:,isym)
- !tmp_sym(:,:,isym) = TRANSPOSE(Cryst%symrec(:,:,isym))
- end do
-- !$call setsymrhoij(Cryst%rprimd,lmax,Cryst%nsym,3,Cryst%gprimd,tmp_sym,zarot)
-+ !%call setsymrhoij(Cryst%rprimd,lmax,Cryst%nsym,3,Cryst%gprimd,tmp_sym,zarot)
- !call setsymrhoij(Cryst%gprimd,lmax,Cryst%nsym,1,Cryst%rprimd,tmp_sym,zarot)
- deallocate(tmp_sym)
- zarot = Pawang%zarot
-diff -Naur abinit-6.4.2.bak/src/68_gw/cohsex_me.F90 abinit-6.4.2/src/68_gw/cohsex_me.F90
---- src/68_gw/cohsex_me.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/68_gw/cohsex_me.F90 2011-01-05 10:14:27.000000000 +0000
-@@ -228,7 +228,7 @@
- ! Index of the GW point in the BZ array, its image in IBZ and time-reversal ===
- jk_bz=Sigp%kptgw2bz(ikcalc)
- call get_BZ_item(Kmesh,jk_bz,kgw,jk_ibz,isym_kgw,jik,ph_mkgwt)
-- !$call get_IBZ_item(Kmesh,jk_ibz,kibz,wtk)
-+ !%call get_IBZ_item(Kmesh,jk_ibz,kibz,wtk)
- spinrot_kgw=Cryst%spinrot(:,isym_kgw)
- !
- ib1=minbnd
-@@ -559,8 +559,8 @@
- #ifdef HAVE_CLIB
- call clib_progress_bar(ik_bz,Kmesh%nbz)
- #else
-- !$write(msg,'(2(a,i4),a,i3)')' csigme : ik_bz ',ik_bz,'/',Kmesh%nbz,' done by processor ',Wfd%my_rank
-- !$call wrtout(std_out,msg,'PERS')
-+ !%write(msg,'(2(a,i4),a,i3)')' csigme : ik_bz ',ik_bz,'/',Kmesh%nbz,' done by processor ',Wfd%my_rank
-+ !%call wrtout(std_out,msg,'PERS')
- #endif
- !
- ! === Find the corresponding irred q-point ===
-diff -Naur abinit-6.4.2.bak/src/68_gw/debug_tools.F90 abinit-6.4.2/src/68_gw/debug_tools.F90
---- src/68_gw/debug_tools.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/68_gw/debug_tools.F90 2011-01-05 16:31:28.000000000 +0000
-@@ -624,9 +624,9 @@
- ! FIXME should check the expression in case of non zero tnons.
- ! /***********************************************************************/
-
-- !$all init_oscillator(Osc,isppol,jkbz,Kmesh,iq_bz,Qmesh,Ep%npwe,nspinor,(/ib,ib/),(/ib1,ib2/) )
-- !$call calc_pw_oscillator(Wf_info,Cryst,Osc,MPI_enreg)
-- !$call destroy_oscillator(Osc)
-+ !%all init_oscillator(Osc,isppol,jkbz,Kmesh,iq_bz,Qmesh,Ep%npwe,nspinor,(/ib,ib/),(/ib1,ib2/) )
-+ !%call calc_pw_oscillator(Wf_info,Cryst,Osc,MPI_enreg)
-+ !%call destroy_oscillator(Osc)
-
- do ib1=1,Ep%nbnds ! Loop over "conduction" states.
- do ib2=1,Ep%nbnds ! Loop over "valence" states.
-diff -Naur abinit-6.4.2.bak/src/68_gw/gw_tools.F90 abinit-6.4.2/src/68_gw/gw_tools.F90
---- src/68_gw/gw_tools.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/68_gw/gw_tools.F90 2011-01-05 10:04:31.000000000 +0000
-@@ -760,7 +760,7 @@
- if (ABS(deltaf_b1kmq_b2k) >= GW_TOL_DOCC) then
- bbp_mask(ib1,ib2)=.TRUE.
- if (deltaeGW_b1kmq_b2k<zero) bbp_mask(ib1,ib2)=.FALSE. ! Only positive frequencies are needed for the Hilbert transform.
-- !$if (use_tr .and. ib1<ib2) bbp_mask(ib1,ib2)=.FALSE. ! GAIN a factor ~2 thanks to time-reversal.
-+ !%if (use_tr .and. ib1<ib2) bbp_mask(ib1,ib2)=.FALSE. ! GAIN a factor ~2 thanks to time-reversal.
- end if
-
- CASE DEFAULT
-diff -Naur abinit-6.4.2.bak/src/68_gw/m_dyson_solver.F90 abinit-6.4.2/src/68_gw/m_dyson_solver.F90
---- src/68_gw/m_dyson_solver.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/68_gw/m_dyson_solver.F90 2011-01-05 10:04:58.000000000 +0000
-@@ -172,7 +172,7 @@
- ! Index of this k-point in the IBZ array.
- ikbz_gw=Sigp%kptgw2bz(ikcalc)
- call get_BZ_item(Kmesh,ikbz_gw,kbz_gw,jkibz,isym,itim,phase)
-- !$call get_IBZ_item(Kmesh,jkibz,kibz,wtk)
-+ !%call get_IBZ_item(Kmesh,jkibz,kibz,wtk)
-
- sigc=czero; dsigc=czero
-
-diff -Naur abinit-6.4.2.bak/src/68_gw/m_fft_prof.F90 abinit-6.4.2/src/68_gw/m_fft_prof.F90
---- src/68_gw/m_fft_prof.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/68_gw/m_fft_prof.F90 2011-01-05 10:05:26.000000000 +0000
-@@ -64,11 +64,11 @@
- type,public :: FFT_prof_t
- !private
- integer :: ncalls
-- !$integer :: ndat
-+ !%integer :: ndat
- character(len=TNAME_LEN) :: test_name
- real(dp) :: cpu_time
- real(dp) :: wall_time
-- !$integer :: ngfft(18)=-1
-+ !%integer :: ngfft(18)=-1
- real(dp),pointer :: results(:,:,:) SET2NULL
- end type FFT_prof_t
-
-diff -Naur abinit-6.4.2.bak/src/68_gw/m_gwannier.F90 abinit-6.4.2/src/68_gw/m_gwannier.F90
---- src/68_gw/m_gwannier.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/68_gw/m_gwannier.F90 2011-01-05 16:34:34.000000000 +0000
-@@ -365,8 +365,8 @@
- call destroy_BZ_mesh_type(Kpath)
- call bstruct_clean(KS_BSt)
- call bstruct_clean(QP_BSt)
-- !$call bstruct_clean(QP_intp)
-- !$call bstruct_clean(KS_intp)
-+ !%call bstruct_clean(QP_intp)
-+ !%call bstruct_clean(KS_intp)
- call hdr_clean(Hdr)
-
- STOP 'myGWannier OK'
-diff -Naur abinit-6.4.2.bak/src/68_gw/m_io_screening.F90 abinit-6.4.2/src/68_gw/m_io_screening.F90
---- src/68_gw/m_io_screening.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/68_gw/m_io_screening.F90 2011-01-05 16:19:49.000000000 +0000
-@@ -66,69 +66,69 @@
- !!
- !! SOURCE
-
--!$ type,public :: ScrHdr_type
--!$
--!$ !Other variables that can be added are, for the moment, commented out.
--!$ !Most of them are related to the Abinit implementation and should not compare in the ETSF specs
--!$
--!$ !Index of the qlwl section?
--!$ !gwcomp, gwencomp ! Info on the extrapolar algorithm
--!$
--!$ integer :: ID ! Matrix identifier: O if not yet defined, 1 for chi0,
--!$ ! 2 for chi, 3 for epsilon, 4 for espilon^{-1}
--!$ integer :: ikxc ! Kxc kernel used, 0 for None (RPA), >0 for static TDDFT (=ixc), <0 for frequency-dependent TDDFT
--!$ integer :: inclvkb ! q-->0 treatment, 0 for None, 1-2 for transversal gauge, 3 for longitudinal
--!$ integer :: headform ! format of the SCR header
--!$ integer :: fform ! File format:
--!$ integer :: gwcalctyp ! Calculation type (G0W0, G0W, GW ...)
--!$ integer :: nI,nJ ! Number of spin components (rows,columns) in chi|eps^-1. (1,1) if collinear.
--!$ ! The internal representation of the matrix is eps(nI*npwe,nJ*npwe)
--!$ integer :: nqibz ! Number of q-points in the IBZ.
--!$ integer :: nqlwl ! Number of points for the treatment of the long wavelength limit.
--!$ integer :: nomega ! Total number of frequencies.
--!$ integer :: nbnds_used ! Number of bands used during the screening calculation (only for info)
--!$ integer :: npwe ! Number of G vectors reported on the file.
--!$ integer :: npwwfn_used ! Number of G vectors for wavefunctions used during the screening calculation (only for info)
--!$ integer :: spmeth ! Method used to approximate the delta function in the expression for Im Chi_0
--!$ integer :: test_type ! 0 for None, 1 for TEST-PARTICLE, 2 for TEST-ELECTRON (only for TDDFT)
--!$ integer :: tordering ! 0 if not defined, 1 for Time-Ordered, 2 for Advanced, 3 for Retarded.
--!$
--!$ real(dp) :: soenergy ! Scissor Energy, zero if not used
--!$ real(dp) :: spsmear ! Smearing of the delta in case of spmeth==2
--!$ real(dp) :: zcut ! Imaginary shift to avoid the poles along the real axis.
--!$
--!$ type(Hdr_type) :: Hdr ! The abinit header.
--!$
--!$!arrays
--!$ character(len=80) :: title(2)
--!$ ! Title describing the content of the file.
--!$
--!$ integer,pointer :: gvec(:,:)
--!$ ! gvec(3,npwe)
--!$ ! G vectors in r.l.u.
--!$
--!$ real(dp),pointer :: qibz(:,:)
--!$ ! qibz(3,nqibz)
--!$ ! q-points in r.l.u.
--!$
--!$ real(dp),pointer :: qlwl(:,:)
--!$ ! qlwl(3,nqlwl)
--!$ ! q-points for the long wave-length limit treatment (r.l.u)
--!$
--!$ complex(dpc),pointer :: lwing(:,:,:)
--!$ ! lwing(npwe,nomega,nqlwl)
--!$ ! Lower wings for the different q"s -->0
--!$
--!$ complex(dpc),pointer :: omega(:)
--!$ ! omega(nomega)
--!$ ! All frequencies calculated both along the real and the imaginary axis.
--!$
--!$ complex(dpc),pointer :: uwing(:,:,:)
--!$ ! uwing(npwe,nomega,nqlwl)
--!$ ! Upper wings for the different q"s -->0
--!$
--!$ end type ScrHdr_type
--!$!!***
-+!% type,public :: ScrHdr_type
-+!%
-+!% !Other variables that can be added are, for the moment, commented out.
-+!% !Most of them are related to the Abinit implementation and should not compare in the ETSF specs
-+!%
-+!% !Index of the qlwl section?
-+!% !gwcomp, gwencomp ! Info on the extrapolar algorithm
-+!%
-+!% integer :: ID ! Matrix identifier: O if not yet defined, 1 for chi0,
-+!% ! 2 for chi, 3 for epsilon, 4 for espilon^{-1}
-+!% integer :: ikxc ! Kxc kernel used, 0 for None (RPA), >0 for static TDDFT (=ixc), <0 for frequency-dependent TDDFT
-+!% integer :: inclvkb ! q-->0 treatment, 0 for None, 1-2 for transversal gauge, 3 for longitudinal
-+!% integer :: headform ! format of the SCR header
-+!% integer :: fform ! File format:
-+!% integer :: gwcalctyp ! Calculation type (G0W0, G0W, GW ...)
-+!% integer :: nI,nJ ! Number of spin components (rows,columns) in chi|eps^-1. (1,1) if collinear.
-+!% ! The internal representation of the matrix is eps(nI*npwe,nJ*npwe)
-+!% integer :: nqibz ! Number of q-points in the IBZ.
-+!% integer :: nqlwl ! Number of points for the treatment of the long wavelength limit.
-+!% integer :: nomega ! Total number of frequencies.
-+!% integer :: nbnds_used ! Number of bands used during the screening calculation (only for info)
-+!% integer :: npwe ! Number of G vectors reported on the file.
-+!% integer :: npwwfn_used ! Number of G vectors for wavefunctions used during the screening calculation (only for info)
-+!% integer :: spmeth ! Method used to approximate the delta function in the expression for Im Chi_0
-+!% integer :: test_type ! 0 for None, 1 for TEST-PARTICLE, 2 for TEST-ELECTRON (only for TDDFT)
-+!% integer :: tordering ! 0 if not defined, 1 for Time-Ordered, 2 for Advanced, 3 for Retarded.
-+!%
-+!% real(dp) :: soenergy ! Scissor Energy, zero if not used
-+!% real(dp) :: spsmear ! Smearing of the delta in case of spmeth==2
-+!% real(dp) :: zcut ! Imaginary shift to avoid the poles along the real axis.
-+!%
-+!% type(Hdr_type) :: Hdr ! The abinit header.
-+!%
-+!%!arrays
-+!% character(len=80) :: title(2)
-+!% ! Title describing the content of the file.
-+!%
-+!% integer,pointer :: gvec(:,:)
-+!% ! gvec(3,npwe)
-+!% ! G vectors in r.l.u.
-+!%
-+!% real(dp),pointer :: qibz(:,:)
-+!% ! qibz(3,nqibz)
-+!% ! q-points in r.l.u.
-+!%
-+!% real(dp),pointer :: qlwl(:,:)
-+!% ! qlwl(3,nqlwl)
-+!% ! q-points for the long wave-length limit treatment (r.l.u)
-+!%
-+!% complex(dpc),pointer :: lwing(:,:,:)
-+!% ! lwing(npwe,nomega,nqlwl)
-+!% ! Lower wings for the different q"s -->0
-+!%
-+!% complex(dpc),pointer :: omega(:)
-+!% ! omega(nomega)
-+!% ! All frequencies calculated both along the real and the imaginary axis.
-+!%
-+!% complex(dpc),pointer :: uwing(:,:,:)
-+!% ! uwing(npwe,nomega,nqlwl)
-+!% ! Upper wings for the different q"s -->0
-+!%
-+!% end type ScrHdr_type
-+!%!!***
-
- public :: scr_hdr_io ! I/O of the header (read/write/echo).
- public :: print_ScrHdr ! Print the SCR related part of the header.
-@@ -748,7 +748,7 @@
- Hscr%ikxc =ikxc
- Hscr%inclvkb =Ep%inclvkb
- Hscr%fform =1002
-- !$Hscr%fform =1102
-+ !%Hscr%fform =1102
- Hscr%headform =HSCR_LATEST_HEADFORM
- Hscr%gwcalctyp =Ep%gwcalctyp
- Hscr%nI =Ep%nI
-diff -Naur abinit-6.4.2.bak/src/68_gw/m_qparticles.F90 abinit-6.4.2/src/68_gw/m_qparticles.F90
---- src/68_gw/m_qparticles.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/68_gw/m_qparticles.F90 2011-01-05 16:22:01.000000000 +0000
-@@ -333,7 +333,7 @@
- ! =====================
-
- ! Dump info on the crystal structure.
-- !$call abi_crystal_put(Cryst,filetsf)
-+ !%call abi_crystal_put(Cryst,filetsf)
-
- call etsf_io_low_set_write_mode(ncid,lstat,Error_data=Error)
- if (.not.lstat) goto 1000
-@@ -500,7 +500,7 @@
- ABI_CHECK(dimrho==0.or.dimrho==1,'dimrho must be 0 or 1')
-
- ! This does not work in parallel !!?
-- !$my_rank = xcomm_rank(MPI_enreg%spaceComm)
-+ !%my_rank = xcomm_rank(MPI_enreg%spaceComm)
- call xme_init(MPI_enreg,my_rank)
- master=0
- !
-@@ -691,7 +691,7 @@
-
- call rhoij_io(pawrhoij,unqps,BSt%nsppol,BSt%nspinor,nspden,nlmn_type,Cryst%typat,&
- & HDR_LATEST_HEADFORM,"Read",form="formatted")
-- !$call rhoij_io(pawrhoij,std_out,BSt%nsppol,BSt%nspinor,nspden,nlmn_type,Cryst%typat,HDR_LATEST_HEADFORM,"Echo")
-+ !%call rhoij_io(pawrhoij,std_out,BSt%nsppol,BSt%nspinor,nspden,nlmn_type,Cryst%typat,HDR_LATEST_HEADFORM,"Echo")
-
- deallocate(nlmn_type,typatR)
- end if ! usepaw
-@@ -739,9 +739,9 @@
- deallocate(full_rmtmp)
-
- ! Read energies.
-- !$call etsf_io_low_read_var(ncid,'m_lda_to_qp',m_lda_to_qp,lstat,Error_data=Error)
-- !$if (.not.lstat) goto 1000
-- !$BSt%eig(1:nbsc,ik,isppol)=en_tmp(1:nbsc)
-+ !%call etsf_io_low_read_var(ncid,'m_lda_to_qp',m_lda_to_qp,lstat,Error_data=Error)
-+ !%if (.not.lstat) goto 1000
-+ !%BSt%eig(1:nbsc,ik,isppol)=en_tmp(1:nbsc)
-
- if ( ALL(ngfftf(1:3)==(/n1,n2,n3/)) ) then
- call etsf_io_low_read_var(ncid,'qp_density',rhor_out,lstat,Error_data=Error)
-diff -Naur abinit-6.4.2.bak/src/68_gw/m_screening.F90 abinit-6.4.2/src/68_gw/m_screening.F90
---- src/68_gw/m_screening.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/68_gw/m_screening.F90 2011-01-05 16:30:36.000000000 +0000
-@@ -360,7 +360,7 @@
- end do
-
- rdwr=4
-- !$call hdr_io_int(Er%fform,Er%Hscr%Hdr,rdwr,unt)
-+ !%call hdr_io_int(Er%fform,Er%Hscr%Hdr,rdwr,unt)
- end if ! verbose>0
-
- end subroutine print_epsilonm1_results
-@@ -712,7 +712,7 @@
-
- call metric(gmet,gprimd,-1,rmet,Vcp%rprimd,ucvol)
-
-- !$ if (Er%ID/=0) call reset_Epsilonm1(Er)
-+ !% if (Er%ID/=0) call reset_Epsilonm1(Er)
- Er%ID=id_required
-
- if (Er%ID==Er%Hscr%ID) then
-@@ -1790,7 +1790,7 @@
- end if
-
- if (iqibz==1) then
-- !$vc_sqrt => Vcp%vcqlwl_sqrt(:,iqlwl) ! Use Coulomb term for q-->0
-+ !%vc_sqrt => Vcp%vcqlwl_sqrt(:,iqlwl) ! Use Coulomb term for q-->0
- vc_sqrt => Vcp%vcqlwl_sqrt(:,1) ! TODO add treatment of non-Analytic behavior
- else
- vc_sqrt => Vcp%vc_sqrt(:,iqibz)
-@@ -2169,7 +2169,7 @@
- !
- ! Change the body but do not add the corrections due to the head and the wings.
- ! since they can be obtained on the fly from eps_body and the wings of eps^{-1}.
-- !$chi0(2:,2:,iomega) = eps_body
-+ !%chi0(2:,2:,iomega) = eps_body
- end do !iomega
-
- deallocate(modg_inv,cvec)
-diff -Naur abinit-6.4.2.bak/src/68_gw/m_sigma_results.F90 abinit-6.4.2/src/68_gw/m_sigma_results.F90
---- src/68_gw/m_sigma_results.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/68_gw/m_sigma_results.F90 2011-01-05 16:32:15.000000000 +0000
-@@ -1220,7 +1220,7 @@
- allocate(gw_corrections(2,KS_BSt%mband,KS_BSt%nkpt,KS_BSt%nsppol))
- gw_corrections=zero
- gw_corrections(1,:,:,:) = QP_BSt%eig - KS_BSt%eig
-- !$gw_corrections = c2r(Sr%degw)
-+ !%gw_corrections = c2r(Sr%degw)
- GWdata%gw_corrections%data4D => gw_corrections
-
- call etsf_io_gwdata_put(ncid,GWdata,lstat,Error_data)
-diff -Naur abinit-6.4.2.bak/src/68_gw/print_psps.F90 abinit-6.4.2/src/68_gw/print_psps.F90
---- src/68_gw/print_psps.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/68_gw/print_psps.F90 2011-01-05 16:29:06.000000000 +0000
-@@ -182,7 +182,7 @@
- ! If mpspso is 2, lmnmax takes into account the spin-orbit projectors,
- ! so, it is equal to the max of lmnprojso or lnprojso, see pspheader_type
-
--!$integer, pointer :: indlmn(:,:,:)
-+!%integer, pointer :: indlmn(:,:,:)
- ! indlmn(6,lmnmax,ntypat)
- ! For each type of psp,
- ! array giving l,m,n,lm,ln,spin for i=ln (if useylm=0)
-diff -Naur abinit-6.4.2.bak/src/68_gw/setup_screening.F90 abinit-6.4.2/src/68_gw/setup_screening.F90
---- src/68_gw/setup_screening.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/68_gw/setup_screening.F90 2011-01-05 16:27:08.000000000 +0000
-@@ -238,10 +238,10 @@
- call print_BZ_mesh(Kmesh,"K-mesh for the wavefunctions",std_out,Dtset%prtvol,"COLL")
- call print_BZ_mesh(Kmesh,"K-mesh for the wavefunctions",ab_out, 0, "COLL")
-
-- !$call nullify_BZ_mesh(Kmesh4test)
-- !$call make_mesh(Kmesh4test,Cryst,Dtset%kptopt,Dtset%kptrlatt,Dtset%nshiftk,Dtset%shiftk)
-- !$call print_BZ_mesh(Kmesh4test,"Kmesh4test",std_out,prtvol=10)
-- !$call destroy_BZ_mesh_type(Kmesh4test)
-+ !%call nullify_BZ_mesh(Kmesh4test)
-+ !%call make_mesh(Kmesh4test,Cryst,Dtset%kptopt,Dtset%kptrlatt,Dtset%nshiftk,Dtset%shiftk)
-+ !%call print_BZ_mesh(Kmesh4test,"Kmesh4test",std_out,prtvol=10)
-+ !%call destroy_BZ_mesh_type(Kmesh4test)
- !
- ! === Find Q-mesh, and do setup for long wavelength limit ===
- ! * Stop if a nonzero umklapp is needed to reconstruct the BZ. In this case, indeed,
-@@ -465,7 +465,7 @@
-
- ! To write the SCR header correctly, with heads and wings, we have
- ! to make sure that q==0, if present, is the first q-point in the list.
-- !$has_q0=(ANY(normv(Ep%qcalc(:,:),gmet,'G')<GW_TOLQ0)) !commented to avoid problems with sunstudio12
-+ !%has_q0=(ANY(normv(Ep%qcalc(:,:),gmet,'G')<GW_TOLQ0)) !commented to avoid problems with sunstudio12
- has_q0=.FALSE.
- do iq=1,Ep%nqcalc
- if (normv(Ep%qcalc(:,iq),gmet,'G')<GW_TOLQ0) then
-@@ -522,7 +522,7 @@
- !write(*,*)MAXVAL(ABS(occfact(:)-KS_BSt%occ(:)))
-
- !TODO call update_occ here
-- !$call update_occ(KS_BSt,fixmom,stmbias,Dtset%prtvol)
-+ !%call update_occ(KS_BSt,fixmom,stmbias,Dtset%prtvol)
-
- deallocate(doccde,eigen,npwarr)
-
-diff -Naur abinit-6.4.2.bak/src/68_gw/setup_sigma.F90 abinit-6.4.2/src/68_gw/setup_sigma.F90
---- src/68_gw/setup_sigma.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/68_gw/setup_sigma.F90 2011-01-05 16:33:32.000000000 +0000
-@@ -421,7 +421,7 @@
- & Kmesh%nibz,npwarr,Dtset%nsppol,Dtset%nspinor,Dtset%tphysel,Dtset%tsmear,Dtset%occopt,occfact,Kmesh%wt)
-
- !TODO call update_occ here
-- !$call update_occ(KS_BSt,fixmom,stmbias,Dtset%prtvol)
-+ !%call update_occ(KS_BSt,fixmom,stmbias,Dtset%prtvol)
-
- ! this fails simply because in case of NSCF occ are zero
- ! TODO outkss should calculate occ factors in case of NSCF run.
-diff -Naur abinit-6.4.2.bak/src/68_gw/trashme.F90 abinit-6.4.2/src/68_gw/trashme.F90
---- src/68_gw/trashme.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/68_gw/trashme.F90 2011-01-05 16:29:33.000000000 +0000
-@@ -911,7 +911,7 @@
- deallocate(umat_k)
- deallocate(wf_ks,wf_qp)
-
-- !$call wfd_reset_ur(Wf_info)
-+ !%call wfd_reset_ur(Wf_info)
-
- DBG_EXIT("COLL")
-
-diff -Naur abinit-6.4.2.bak/src/68_rsprc/ladielmt.F90 abinit-6.4.2/src/68_rsprc/ladielmt.F90
---- src/68_rsprc/ladielmt.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/68_rsprc/ladielmt.F90 2011-01-05 09:31:41.000000000 +0000
-@@ -246,9 +246,9 @@
-
-
- !***********************************************************************************
--!Getting the localy averaged non-local potential ***
--!$Vnl(r) = [\sum_{n,k} f_{n,k} \psi_{n,k}(r) (Vnl(r,r') |\psi_{n,k}(r')>)]/n(r)$***
--!**********************************************************************************
-+! Getting the localy averaged non-local potential ***
-+!%$Vnl(r) = [\sum_{n,k} f_{n,k} \psi_{n,k}(r) (Vnl(r,r') |\psi_{n,k}(r')>)]/n(r)$***
-+!***********************************************************************************
-
- qphon=zero
-
-@@ -671,36 +671,36 @@
-
-
- ! lavnlr(:,ispden) = -min
--! !$ write(filapp,*) 'orig-lavnl-0.00'
--! !$ call out1line(filapp,lavnlr,dtset,0,0)
--! !$ write(filapp,*) 'orig-lavnl-0.25'
--! !$ call out1line(filapp,lavnlr,dtset,dtset%ngfft(1)/4,dtset%ngfft(2)/4)
--! !$ write(filapp,*) 'orig-lavnl-0.50'
--! !$ call out1line(filapp,lavnlr,dtset,dtset%ngfft(1)/2,dtset%ngfft(2)/2)
--! !$ lavnlr=lavnlr*(rhor+0.0001_dp)
--! !$ !DEBUG
--! !$write(0,*) "DEBUG ================ lavnl ==========================="
--! !$write(0,*) "DEBUG lavnl: density analysis"
--! !$ !ENDDEBUG
--! !$ do ifft=1,dtset%nfft
--! !$ if((rhor(ifft,ispden)+0.0001_dp > zero).and.(lavnlr(ifft,ispden) >= zero)) then
--! !$ lavnlr(ifft,ispden) = lavnlr(ifft,ispden)/(rhor(ifft,ispden)+0.0001_dp)
--! !$ else
--! !$ !DEBUG
--! !$ !write(0,*) "DEBUG lavnl: for ifft=",ifft,"(rhor(ifft,ispden)+0.0001_dp)=",&
--! !$ ! & (rhor(ifft,ispden)+0.0001_dp),'lavnlr=',lavnlr(ifft,ispden)
--! !$ !ENDDEBUG
--! !$ lavnlr(ifft,ispden)=zero
--! !$ !lavnlr(ifft,ispden) = lavnlr(ifft,ispden)/(rhor(ifft,ispden)+0.0001_dp)
--! !$ end if
--! !$ end do
--! !$
--! !$ write(filapp,*) 'neww-lavnl-0.00'
--! !$ call out1line(filapp,lavnlr,dtset,0,0)
--! !$ write(filapp,*) 'neww-lavnl-0.25'
--! !$ call out1line(filapp,lavnlr,dtset,dtset%ngfft(1)/4,dtset%ngfft(2)/4)
--! !$ write(filapp,*) 'neww-lavnl-0.50'
--! !$ call out1line(filapp,lavnlr,dtset,dtset%ngfft(1)/2,dtset%ngfft(2)/2)
-+! !% write(filapp,*) 'orig-lavnl-0.00'
-+! !% call out1line(filapp,lavnlr,dtset,0,0)
-+! !% write(filapp,*) 'orig-lavnl-0.25'
-+! !% call out1line(filapp,lavnlr,dtset,dtset%ngfft(1)/4,dtset%ngfft(2)/4)
-+! !% write(filapp,*) 'orig-lavnl-0.50'
-+! !% call out1line(filapp,lavnlr,dtset,dtset%ngfft(1)/2,dtset%ngfft(2)/2)
-+! !% lavnlr=lavnlr*(rhor+0.0001_dp)
-+! !% !DEBUG
-+! !%write(0,*) "DEBUG ================ lavnl ==========================="
-+! !%write(0,*) "DEBUG lavnl: density analysis"
-+! !% !ENDDEBUG
-+! !% do ifft=1,dtset%nfft
-+! !% if((rhor(ifft,ispden)+0.0001_dp > zero).and.(lavnlr(ifft,ispden) >= zero)) then
-+! !% lavnlr(ifft,ispden) = lavnlr(ifft,ispden)/(rhor(ifft,ispden)+0.0001_dp)
-+! !% else
-+! !% !DEBUG
-+! !% !write(0,*) "DEBUG lavnl: for ifft=",ifft,"(rhor(ifft,ispden)+0.0001_dp)=",&
-+! !% ! & (rhor(ifft,ispden)+0.0001_dp),'lavnlr=',lavnlr(ifft,ispden)
-+! !% !ENDDEBUG
-+! !% lavnlr(ifft,ispden)=zero
-+! !% !lavnlr(ifft,ispden) = lavnlr(ifft,ispden)/(rhor(ifft,ispden)+0.0001_dp)
-+! !% end if
-+! !% end do
-+! !%
-+! !% write(filapp,*) 'neww-lavnl-0.00'
-+! !% call out1line(filapp,lavnlr,dtset,0,0)
-+! !% write(filapp,*) 'neww-lavnl-0.25'
-+! !% call out1line(filapp,lavnlr,dtset,dtset%ngfft(1)/4,dtset%ngfft(2)/4)
-+! !% write(filapp,*) 'neww-lavnl-0.50'
-+! !% call out1line(filapp,lavnlr,dtset,dtset%ngfft(1)/2,dtset%ngfft(2)/2)
-
- ! i1=1
- ! i2=1
-diff -Naur abinit-6.4.2.bak/src/68_rsprc/lavnl.F90 abinit-6.4.2/src/68_rsprc/lavnl.F90
---- src/68_rsprc/lavnl.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/68_rsprc/lavnl.F90 2011-01-05 09:30:40.000000000 +0000
-@@ -172,9 +172,9 @@
- ! *************************************************************************
-
- !***********************************************************************************
--!Getting the localy averaged non-local potential ***
--!$Vnl(r) = [\sum_{n,k} f_{n,k} \psi_{n,k}(r) (Vnl(r,r') |\psi_{n,k}(r')>)]/n(r)$***
--!**********************************************************************************
-+! Getting the localy averaged non-local potential ***
-+!%$Vnl(r) = [\sum_{n,k} f_{n,k} \psi_{n,k}(r) (Vnl(r,r') |\psi_{n,k}(r')>)]/n(r)$***
-+!***********************************************************************************
-
- qphon=zero
-
-@@ -567,36 +567,36 @@
- end do
- lavnlr(:,ispden) = lavnlr(:,ispden)-min
- ! lavnlr(:,ispden) = -min
--! !$ write(filapp,*) 'orig-lavnl-0.00'
--! !$ call out1line(filapp,lavnlr,dtset,0,0)
--! !$ write(filapp,*) 'orig-lavnl-0.25'
--! !$ call out1line(filapp,lavnlr,dtset,dtset%ngfft(1)/4,dtset%ngfft(2)/4)
--! !$ write(filapp,*) 'orig-lavnl-0.50'
--! !$ call out1line(filapp,lavnlr,dtset,dtset%ngfft(1)/2,dtset%ngfft(2)/2)
--! !$ lavnlr=lavnlr*(rhor+0.0001_dp)
--! !$ !DEBUG
--! !$write(0,*) "DEBUG ================ lavnl ==========================="
--! !$write(0,*) "DEBUG lavnl: density analysis"
--! !$ !ENDDEBUG
--! !$ do ifft=1,dtset%nfft
--! !$ if((rhor(ifft,ispden)+0.0001_dp > zero).and.(lavnlr(ifft,ispden) >= zero)) then
--! !$ lavnlr(ifft,ispden) = lavnlr(ifft,ispden)/(rhor(ifft,ispden)+0.0001_dp)
--! !$ else
--! !$ !DEBUG
--! !$ !write(0,*) "DEBUG lavnl: for ifft=",ifft,"(rhor(ifft,ispden)+0.0001_dp)=",&
--! !$ ! & (rhor(ifft,ispden)+0.0001_dp),'lavnlr=',lavnlr(ifft,ispden)
--! !$ !ENDDEBUG
--! !$ lavnlr(ifft,ispden)=zero
--! !$ !lavnlr(ifft,ispden) = lavnlr(ifft,ispden)/(rhor(ifft,ispden)+0.0001_dp)
--! !$ end if
--! !$ end do
--! !$
--! !$ write(filapp,*) 'neww-lavnl-0.00'
--! !$ call out1line(filapp,lavnlr,dtset,0,0)
--! !$ write(filapp,*) 'neww-lavnl-0.25'
--! !$ call out1line(filapp,lavnlr,dtset,dtset%ngfft(1)/4,dtset%ngfft(2)/4)
--! !$ write(filapp,*) 'neww-lavnl-0.50'
--! !$ call out1line(filapp,lavnlr,dtset,dtset%ngfft(1)/2,dtset%ngfft(2)/2)
-+! !% write(filapp,*) 'orig-lavnl-0.00'
-+! !% call out1line(filapp,lavnlr,dtset,0,0)
-+! !% write(filapp,*) 'orig-lavnl-0.25'
-+! !% call out1line(filapp,lavnlr,dtset,dtset%ngfft(1)/4,dtset%ngfft(2)/4)
-+! !% write(filapp,*) 'orig-lavnl-0.50'
-+! !% call out1line(filapp,lavnlr,dtset,dtset%ngfft(1)/2,dtset%ngfft(2)/2)
-+! !% lavnlr=lavnlr*(rhor+0.0001_dp)
-+! !% !DEBUG
-+! !%write(0,*) "DEBUG ================ lavnl ==========================="
-+! !%write(0,*) "DEBUG lavnl: density analysis"
-+! !% !ENDDEBUG
-+! !% do ifft=1,dtset%nfft
-+! !% if((rhor(ifft,ispden)+0.0001_dp > zero).and.(lavnlr(ifft,ispden) >= zero)) then
-+! !% lavnlr(ifft,ispden) = lavnlr(ifft,ispden)/(rhor(ifft,ispden)+0.0001_dp)
-+! !% else
-+! !% !DEBUG
-+! !% !write(0,*) "DEBUG lavnl: for ifft=",ifft,"(rhor(ifft,ispden)+0.0001_dp)=",&
-+! !% ! & (rhor(ifft,ispden)+0.0001_dp),'lavnlr=',lavnlr(ifft,ispden)
-+! !% !ENDDEBUG
-+! !% lavnlr(ifft,ispden)=zero
-+! !% !lavnlr(ifft,ispden) = lavnlr(ifft,ispden)/(rhor(ifft,ispden)+0.0001_dp)
-+! !% end if
-+! !% end do
-+! !%
-+! !% write(filapp,*) 'neww-lavnl-0.00'
-+! !% call out1line(filapp,lavnlr,dtset,0,0)
-+! !% write(filapp,*) 'neww-lavnl-0.25'
-+! !% call out1line(filapp,lavnlr,dtset,dtset%ngfft(1)/4,dtset%ngfft(2)/4)
-+! !% write(filapp,*) 'neww-lavnl-0.50'
-+! !% call out1line(filapp,lavnlr,dtset,dtset%ngfft(1)/2,dtset%ngfft(2)/2)
-
- ! i1=1
- ! i2=1
-diff -Naur abinit-6.4.2.bak/src/68_rsprc/prctfvw1.F90 abinit-6.4.2/src/68_rsprc/prctfvw1.F90
---- src/68_rsprc/prctfvw1.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/68_rsprc/prctfvw1.F90 2011-01-05 09:32:35.000000000 +0000
-@@ -209,9 +209,9 @@
- type(cprj_type) :: cprj_dum(1,1)
- ! *************************************************************************
- !***********************************************************************************
--!Getting the localy averaged non-local potential ***
--!$Vnl(r) = [\sum_{n,k} f_{n,k} \psi_{n,k}(r) (Vnl(r,r') |\psi_{n,k}(r')>)]/n(r)$***
--!**********************************************************************************
-+! Getting the localy averaged non-local potential ***
-+!%$Vnl(r) = [\sum_{n,k} f_{n,k} \psi_{n,k}(r) (Vnl(r,r') |\psi_{n,k}(r')>)]/n(r)$***
-+!***********************************************************************************
- znucl=1.0_dp
- typat=1
- xredcp = xred
-diff -Naur abinit-6.4.2.bak/src/68_rsprc/prctfvw2.F90 abinit-6.4.2/src/68_rsprc/prctfvw2.F90
---- src/68_rsprc/prctfvw2.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/68_rsprc/prctfvw2.F90 2011-01-05 09:30:14.000000000 +0000
-@@ -228,8 +228,8 @@
- xredcp = xred
- !*************************************************************************
- !***********************************************************************************
--!Getting the localy averaged non-local potential ***
--!$Vnl(r) = [\sum_{n,k} f_{n,k} \psi_{n,k}(r) (Vnl(r,r') |\psi_{n,k}(r')>)]/n(r)$***
-+! Getting the localy averaged non-local potential ***
-+!%$Vnl(r) = [\sum_{n,k} f_{n,k} \psi_{n,k}(r) (Vnl(r,r') |\psi_{n,k}(r')>)]/n(r)$***
- !***********************************************************************************
- !Test size of FFT grids (1 grid in norm-conserving, 2 grids in PAW)
- nfftotf=ngfftf(1)*ngfftf(2)*ngfftf(3)
-@@ -659,8 +659,8 @@
- !******************************************************************
- !Finding the density which minimizes the associated Energy **
- !******************************************************************
--!!$ !compute the total charge number
--!!$ !first switch to the sqrt of the density...
-+!!% !compute the total charge number
-+!!% !first switch to the sqrt of the density...
- cplex=1;
- option=1;
- call dotprod_vn(cplex,& !complex density/pot
-@@ -676,46 +676,46 @@
- &ucvol) !cell volume
- !enable the use of the functions eneofrho_tfw and deneofrho_tfw
- Z=real(nint(Z),dp)
--!!$ call init_eneofrho_tfw(dtset,dtset%intxc,dtset%ixc,psps%usepaw,n3xccc,ngfftf,&
--!!$ &nfftf,nkxc,nspden,mpi_enreg,deltaW,gprimd,gsqcut,&
--!!$ &lavnlfft,rhor,rprimd,ucvol,vout_unmixed,vpsp,vtrial,xccc3d,Z)
--!!$ !minimizes Etfw with respect to sqrtrhor instead of rhor
--!!$ !sqrtrhor(:,:)=two*Z/nfftf
--!!$ !call random_number(rhor)
--!!$ !eei=zero
--!!$ !do ifft=1,nfft
--!!$ ! eei=max(eei,sqrtrhor(ifft,1))
--!!$ !end do
--!!$ !eei=0.05_dp*eei
--!!$ !call newdensity(eei,rhor,sqrtrhor)
--!!$ call cgpr(eneofrho_tfw,deneofrho_tfw,newdensity,abs(deltae*real(0.001,dp)/etotal),55,sqrtrhor,dummy,dummy2)
--!!$ !dummy=eneofrho_tfw(sqrtrhor)
--!!$ ! free the dynamically allocated memory used by eneofrho_tfw and deneofrho_tfw
--!!$ call end_eneofrho_tfw()
--!!$ !new density from the minimised sqrtrhor
--!!$ count=0
--!!$ do ifft=1,nfftf
--!!$ if (sqrtrhor(ifft,1)<zero) then
--!!$ count=count+1
--!!$ end if
--!!$ end do
--!!$ write(0,*) 'nombre sous zero',count
--!!$ rhor(:,:)=sqrtrhor(:,:)*sqrtrhor(:,:)
--!!$
--!!$
--!!$ write(0,*) 'n1 n2 n3',n1,n2,n3
--!!$ i1=1
--!!$ i2=1
--!!$
--!!$ do i3=1,n3
--!!$ ifft=i1+n1*(i2-1+n2*(i3-1))
--!!$ ifft2=i1+6+n1*(i2+6-1+n2*(i3-1))
--!!$ write(79,*) deltaW(ifft,1),deltaW(ifft2,1),&
--!!$ & lavnlfft(ifft,1),lavnlfft(ifft2,1),&
--!!$ & vpsp(ifft)+vout_unmixed(ifft,1)-vtrial(ifft,1),&
--!!$ & vpsp(ifft2)+vout_unmixed(ifft2,1)-vtrial(ifft2,1),&
--!!$ & sqrtrhor(ifft,1),sqrtrhor(ifft2,1)
--!!$ end do
-+!!% call init_eneofrho_tfw(dtset,dtset%intxc,dtset%ixc,psps%usepaw,n3xccc,ngfftf,&
-+!!% &nfftf,nkxc,nspden,mpi_enreg,deltaW,gprimd,gsqcut,&
-+!!% &lavnlfft,rhor,rprimd,ucvol,vout_unmixed,vpsp,vtrial,xccc3d,Z)
-+!!% !minimizes Etfw with respect to sqrtrhor instead of rhor
-+!!% !sqrtrhor(:,:)=two*Z/nfftf
-+!!% !call random_number(rhor)
-+!!% !eei=zero
-+!!% !do ifft=1,nfft
-+!!% ! eei=max(eei,sqrtrhor(ifft,1))
-+!!% !end do
-+!!% !eei=0.05_dp*eei
-+!!% !call newdensity(eei,rhor,sqrtrhor)
-+!!% call cgpr(eneofrho_tfw,deneofrho_tfw,newdensity,abs(deltae*real(0.001,dp)/etotal),55,sqrtrhor,dummy,dummy2)
-+!!% !dummy=eneofrho_tfw(sqrtrhor)
-+!!% ! free the dynamically allocated memory used by eneofrho_tfw and deneofrho_tfw
-+!!% call end_eneofrho_tfw()
-+!!% !new density from the minimised sqrtrhor
-+!!% count=0
-+!!% do ifft=1,nfftf
-+!!% if (sqrtrhor(ifft,1)<zero) then
-+!!% count=count+1
-+!!% end if
-+!!% end do
-+!!% write(0,*) 'nombre sous zero',count
-+!!% rhor(:,:)=sqrtrhor(:,:)*sqrtrhor(:,:)
-+!!%
-+!!%
-+!!% write(0,*) 'n1 n2 n3',n1,n2,n3
-+!!% i1=1
-+!!% i2=1
-+!!%
-+!!% do i3=1,n3
-+!!% ifft=i1+n1*(i2-1+n2*(i3-1))
-+!!% ifft2=i1+6+n1*(i2+6-1+n2*(i3-1))
-+!!% write(79,*) deltaW(ifft,1),deltaW(ifft2,1),&
-+!!% & lavnlfft(ifft,1),lavnlfft(ifft2,1),&
-+!!% & vpsp(ifft)+vout_unmixed(ifft,1)-vtrial(ifft,1),&
-+!!% & vpsp(ifft2)+vout_unmixed(ifft2,1)-vtrial(ifft2,1),&
-+!!% & sqrtrhor(ifft,1),sqrtrhor(ifft2,1)
-+!!% end do
- !******************************************************************
- !Finding the density which minimizes the first term **
- !******************************************************************
-@@ -764,46 +764,46 @@
- !vrespc=vrespc/diemix
- !call laplacian(vrespc,lvres,ngfft,rprimd)
- !lvres=-lvres*(two*two_pi)
--!!$ write(0,*) 'efermi=',efermi
--!!$ write(filapp,770) 'myoutput-opA',1
--!!$ call out1dm(filapp,natom,nfftf,ngfftf,nspden,ntypat,&
--!!$ & rhor,rprimd,&
--!!$ & typat,ucvol,opA,xredcp,znucl)
--!!$ write(filapp,770) 'myoutput-opB',1
--!!$ call out1dm(filapp,natom,nfftf,ngfftf,nspden,ntypat,&
--!!$ & rhor,rprimd,&
--!!$ & typat,ucvol,opB,xredcp,znucl)
--!!$ write(filapp,770) 'myoutput-partial',1
--!!$ call out1dm(filapp,natom,nfftf,ngfftf,nspden,ntypat,&
--!!$ & rhor,rprimd,&
--!!$ & typat,ucvol,vpsp,xredcp,znucl)
--!!$ write(filapp,770) 'myoutput-partial',2
--!!$ call out1dm(filapp,natom,nfftf,ngfftf,nspden,ntypat,&
--!!$ & rhor,rprimd,&
--!!$ & typat,ucvol,vhartr,xredcp,znucl)
--!!$ write(filapp,770) 'myoutput-partial',3
--!!$ bla=seven/six*(alpha32*rhor(:,:))**(two_thirds)
--!!$ call out1dm(filapp,natom,nfftf,ngfftf,nspden,ntypat,&
--!!$ & rhor,rprimd,&
--!!$ & typat,ucvol,bla,xredcp,znucl)
--!!$ write(filapp,770) 'myoutput-partial',4
--!!$ bla(:,1)=2*kxc(:,1)*rhor(:,1)
--!!$ call out1dm(filapp,natom,nfftf,ngfftf,nspden,ntypat,&
--!!$ & rhor,rprimd,&
--!!$ & typat,ucvol,bla,xredcp,znucl)
--!!$ write(filapp,770) 'myoutput-partial',5
--!!$ call out1dm(filapp,natom,nfftf,ngfftf,nspden,ntypat,&
--!!$ & rhor,rprimd,&
--!!$ & typat,ucvol,lavnlfft,xredcp,znucl)
--!!$ write(filapp,770) 'myoutput-partial',6
--!!$ call out1dm(filapp,natom,nfftf,ngfftf,nspden,ntypat,&
--!!$ & rhor,rprimd,&
--!!$ & typat,ucvol,vxc,xredcp,znucl)
--!!$bla=efermi
--!!$ write(filapp,770) 'myoutput-partial',7
--!!$ call out1dm(filapp,natom,nfftf,ngfftf,nspden,ntypat,&
--!!$ & rhor,rprimd,&
--!!$ & typat,ucvol,bla,xredcp,znucl)
-+!!% write(0,*) 'efermi=',efermi
-+!!% write(filapp,770) 'myoutput-opA',1
-+!!% call out1dm(filapp,natom,nfftf,ngfftf,nspden,ntypat,&
-+!!% & rhor,rprimd,&
-+!!% & typat,ucvol,opA,xredcp,znucl)
-+!!% write(filapp,770) 'myoutput-opB',1
-+!!% call out1dm(filapp,natom,nfftf,ngfftf,nspden,ntypat,&
-+!!% & rhor,rprimd,&
-+!!% & typat,ucvol,opB,xredcp,znucl)
-+!!% write(filapp,770) 'myoutput-partial',1
-+!!% call out1dm(filapp,natom,nfftf,ngfftf,nspden,ntypat,&
-+!!% & rhor,rprimd,&
-+!!% & typat,ucvol,vpsp,xredcp,znucl)
-+!!% write(filapp,770) 'myoutput-partial',2
-+!!% call out1dm(filapp,natom,nfftf,ngfftf,nspden,ntypat,&
-+!!% & rhor,rprimd,&
-+!!% & typat,ucvol,vhartr,xredcp,znucl)
-+!!% write(filapp,770) 'myoutput-partial',3
-+!!% bla=seven/six*(alpha32*rhor(:,:))**(two_thirds)
-+!!% call out1dm(filapp,natom,nfftf,ngfftf,nspden,ntypat,&
-+!!% & rhor,rprimd,&
-+!!% & typat,ucvol,bla,xredcp,znucl)
-+!!% write(filapp,770) 'myoutput-partial',4
-+!!% bla(:,1)=2*kxc(:,1)*rhor(:,1)
-+!!% call out1dm(filapp,natom,nfftf,ngfftf,nspden,ntypat,&
-+!!% & rhor,rprimd,&
-+!!% & typat,ucvol,bla,xredcp,znucl)
-+!!% write(filapp,770) 'myoutput-partial',5
-+!!% call out1dm(filapp,natom,nfftf,ngfftf,nspden,ntypat,&
-+!!% & rhor,rprimd,&
-+!!% & typat,ucvol,lavnlfft,xredcp,znucl)
-+!!% write(filapp,770) 'myoutput-partial',6
-+!!% call out1dm(filapp,natom,nfftf,ngfftf,nspden,ntypat,&
-+!!% & rhor,rprimd,&
-+!!% & typat,ucvol,vxc,xredcp,znucl)
-+!!%bla=efermi
-+!!% write(filapp,770) 'myoutput-partial',7
-+!!% call out1dm(filapp,natom,nfftf,ngfftf,nspden,ntypat,&
-+!!% & rhor,rprimd,&
-+!!% & typat,ucvol,bla,xredcp,znucl)
- a=1.e9
- b=1.e9
- do ifft=1,nfftf
-@@ -837,17 +837,17 @@
- !******************************************************************
- cplex=1;
- option=1;
--!!$ call dotprod_vn(cplex,& !complex density/pot
--!!$ &phi2,& !density
--!!$ &a,& !resulting dorproduct integrated over r
--!!$ &doti,& !imaginary part of the integral
--!!$ &mpi_enreg,& !
--!!$ &size(rhor,1),& !number of localy(cpu) attributed grid point
--!!$ &nfftotf,& !real total number of grid point
--!!$ &size(rhor,2),& !nspden
--!!$ &option,& !1=compute only the real part 2=compute also the imaginary part
--!!$ &phi2,& !density
--!!$ &ucvol) !cell volume
-+!!% call dotprod_vn(cplex,& !complex density/pot
-+!!% &phi2,& !density
-+!!% &a,& !resulting dorproduct integrated over r
-+!!% &doti,& !imaginary part of the integral
-+!!% &mpi_enreg,& !
-+!!% &size(rhor,1),& !number of localy(cpu) attributed grid point
-+!!% &nfftotf,& !real total number of grid point
-+!!% &size(rhor,2),& !nspden
-+!!% &option,& !1=compute only the real part 2=compute also the imaginary part
-+!!% &phi2,& !density
-+!!% &ucvol) !cell volume
- call dotprod_vn(cplex,& !complex density/pot
- &phi2,& !density
- &b,& !resulting dorproduct integrated over r
-@@ -870,19 +870,19 @@
- &option,& !1=compute only the real part 2=compute also the imaginary part
- &sqrtrhor,& !density
- &ucvol) !cell volume
--!!$ discr= b*b-four*a*c
--!!$ if(discr > zero) then
--!!$ discr=sqrt(discr)
--!!$ fermi1p=(-b+discr)/(two*a)
--!!$ fermi1m=(-b-discr)/(two*a)
--!!$ else if (discr == zero) then
--!!$ fermi1p=-b/(two*a)
--!!$ fermi1m=-b/(two*a)
--!!$ else
--!!$ fermi1p=zero
--!!$ fermi1m=zero
--!!$ end if
--!!$ dfermi=merge(fermi1p,fermi1m,abs(fermi1p) <= abs(fermi1m))
-+!!% discr= b*b-four*a*c
-+!!% if(discr > zero) then
-+!!% discr=sqrt(discr)
-+!!% fermi1p=(-b+discr)/(two*a)
-+!!% fermi1m=(-b-discr)/(two*a)
-+!!% else if (discr == zero) then
-+!!% fermi1p=-b/(two*a)
-+!!% fermi1m=-b/(two*a)
-+!!% else
-+!!% fermi1p=zero
-+!!% fermi1m=zero
-+!!% end if
-+!!% dfermi=merge(fermi1p,fermi1m,abs(fermi1p) <= abs(fermi1m))
- dfermi = -c/b !since the term in a must be neglected !(??)
- sqrtrhor(:,:)=phi1+dfermi*phi2
- !****************************************************************** !
-@@ -1056,115 +1056,115 @@
- !vtrial fourier
- !vnewfourier
- !ref
--!!$ count=0
--!!$ count1=0
--!!$ count2=0
--!!$ count3=0
--!!$ count4=0
--!!$ count5=0
--!!$ count6=0
--!!$ count7=0
--!!$ count8=0
--!!$ count9=0
--!!$ count10=0
--!!$ count11=0
--!!$ count12=0
--!!$ count13=0
--!!$ count14=0
--!!$ count15=0
--!!$ count16=0
--!!$ count17=0
--!!$ count18=0
--!!$ do ispden=1,nspden
--!!$ do ifft=1,nfftf
--!!$ aa=vrefg(:,ifft,ispden)
--!!$ bb=vin_oldfourier(:,ifft,ispden)-aa
--!!$ cc=newvoutfourier(:,ifft,ispden)-aa
--!!$ principal: if((g2cart(ifft).lt.one).and.(vrefg(1,ifft,ispden)**2+vrefg(2,ifft,ispden)).gt.5d-5) then
--!!$ ong: if(g2cart(ifft).lt.one*0.2) then
--!!$ onv2:if(sqrt(vrefg(1,ifft,ispden)**2+vrefg(2,ifft,ispden)).gt.2d-1) then
--!!$ if(bb(1)**2+bb(2)**2.lt.cc(1)**2+cc(2)**2) then
--!!$ count15=count15+1
--!!$ else
--!!$ count16=count16+1
--!!$ end if
--!!$ else if(sqrt(vrefg(1,ifft,ispden)**2+vrefg(2,ifft,ispden)).gt.5d-2) then
--!!$ if(bb(1)**2+bb(2)**2.lt.cc(1)**2+cc(2)**2) then
--!!$ count1=count1+1
--!!$ else
--!!$ count2=count2+1
--!!$ end if
--!!$
--!!$ else if(sqrt(vrefg(1,ifft,ispden)**2+vrefg(2,ifft,ispden)).gt.5d-3) then
--!!$ if(bb(1)**2+bb(2)**2.lt.cc(1)**2+cc(2)**2) then
--!!$ count3=count3+1
--!!$ else
--!!$ count4=count4+1
--!!$ end if
--!!$ else
--!!$ if(bb(1)**2+bb(2)**2.lt.cc(1)**2+cc(2)**2) then
--!!$ count5=count5+1
--!!$ else
--!!$ count6=count6+1
--!!$ end if
--!!$ end if onv2
--!!$ else
--!!$ onv22:if(sqrt(vrefg(1,ifft,ispden)**2+vrefg(2,ifft,ispden)).gt.2d-1) then
--!!$ if(bb(1)**2+bb(2)**2.lt.cc(1)**2+cc(2)**2) then
--!!$ count17=count17+1
--!!$ else
--!!$ count18=count18+1
--!!$ end if
--!!$ else if(sqrt(vrefg(1,ifft,ispden)**2+vrefg(2,ifft,ispden)).gt.5d-2) then
--!!$ if(bb(1)**2+bb(2)**2.lt.cc(1)**2+cc(2)**2) then
--!!$ count1=count1+1
--!!$ else
--!!$ count2=count2+1
--!!$ end if
--!!$ else if(sqrt(vrefg(1,ifft,ispden)**2+vrefg(2,ifft,ispden)).gt.5d-3) then
--!!$ if(bb(1)**2+bb(2)**2.lt.cc(1)**2+cc(2)**2) then
--!!$ count9=count9+1
--!!$ else
--!!$ count10=count10+1
--!!$ end if
--!!$ else
--!!$ if(bb(1)**2+bb(2)**2.lt.cc(1)**2+cc(2)**2) then
--!!$ count11=count11+1
--!!$ else
--!!$ count12=count12+1
--!!$ end if
--!!$ end if onv22
--!!$ end if ong
--!!$ end if principal
--!!$ if(abs(vref(ifft,ispden)-vtrial(ifft,ispden)).gt.&
--!!$ &abs(vref(ifft,ispden)-vtrialold(ifft,ispden))) then
--!!$ count14=count14+1
--!!$ else
--!!$ count13=count13+1
--!!$ end if
--!!$
--!!$ end do
--!!$ end do
--!!$ write(1111,*),'---------------------------------------------------------------------------------'
--!!$ write(1111,*),'| g2<0.2 | g2<1.0 |'
--!!$ write(1111,*),'| ok | bad | ok | bad | '
--!!$ write(1111,*),'|',count16,'|',count15,'|',count18,'|',count17,'| ','||V||>2e-1'
--!!$ write(1111,*),'|',count2,'|',count1,'|',count8,'|',count7,'| ','||V||>5e-2'
--!!$ write(1111,*),'|',count4,'|',count3,'|',count10,'|',count9,'| ','||V||>5e-3'
--!!$ write(1111,*),'|',count6,'|',count5,'|',count12,'|',count11,'| ','||V||>5e-5'
--!!$ write(1111,*),'---------------------------------------------------------------------------------'
--!!$ write(0,*),'---------------------------------------------------------------------------------'
--!!$ write(0,*),'| g2<0.2 | g2<1.0 |'
--!!$ write(0,*),'| ok | bad | ok | bad | '
--!!$ write(0,*),'|',count16,'|',count15,'|',count18,'|',count17,'| ','||V||>2e-1'
--!!$ write(0,*),'|',count2,'|',count1,'|',count8,'|',count7,'| ','||V||>5e-2'
--!!$ write(0,*),'|',count4,'|',count3,'|',count10,'|',count9,'| ','||V||>5e-3'
--!!$ write(0,*),'|',count6,'|',count5,'|',count12,'|',count11,'| ','||V||>5e-5'
--!!$ write(0,*),'---------------------------------------------------------------------------------'
--!!$
--!!$
--!!$ write(0,*) 'les mauvais r:',count14,'les bons r',count13
--!!$ write(1111,*) 'les mauvais r:',count14,'les bons r',count13
-+!!% count=0
-+!!% count1=0
-+!!% count2=0
-+!!% count3=0
-+!!% count4=0
-+!!% count5=0
-+!!% count6=0
-+!!% count7=0
-+!!% count8=0
-+!!% count9=0
-+!!% count10=0
-+!!% count11=0
-+!!% count12=0
-+!!% count13=0
-+!!% count14=0
-+!!% count15=0
-+!!% count16=0
-+!!% count17=0
-+!!% count18=0
-+!!% do ispden=1,nspden
-+!!% do ifft=1,nfftf
-+!!% aa=vrefg(:,ifft,ispden)
-+!!% bb=vin_oldfourier(:,ifft,ispden)-aa
-+!!% cc=newvoutfourier(:,ifft,ispden)-aa
-+!!% principal: if((g2cart(ifft).lt.one).and.(vrefg(1,ifft,ispden)**2+vrefg(2,ifft,ispden)).gt.5d-5) then
-+!!% ong: if(g2cart(ifft).lt.one*0.2) then
-+!!% onv2:if(sqrt(vrefg(1,ifft,ispden)**2+vrefg(2,ifft,ispden)).gt.2d-1) then
-+!!% if(bb(1)**2+bb(2)**2.lt.cc(1)**2+cc(2)**2) then
-+!!% count15=count15+1
-+!!% else
-+!!% count16=count16+1
-+!!% end if
-+!!% else if(sqrt(vrefg(1,ifft,ispden)**2+vrefg(2,ifft,ispden)).gt.5d-2) then
-+!!% if(bb(1)**2+bb(2)**2.lt.cc(1)**2+cc(2)**2) then
-+!!% count1=count1+1
-+!!% else
-+!!% count2=count2+1
-+!!% end if
-+!!%
-+!!% else if(sqrt(vrefg(1,ifft,ispden)**2+vrefg(2,ifft,ispden)).gt.5d-3) then
-+!!% if(bb(1)**2+bb(2)**2.lt.cc(1)**2+cc(2)**2) then
-+!!% count3=count3+1
-+!!% else
-+!!% count4=count4+1
-+!!% end if
-+!!% else
-+!!% if(bb(1)**2+bb(2)**2.lt.cc(1)**2+cc(2)**2) then
-+!!% count5=count5+1
-+!!% else
-+!!% count6=count6+1
-+!!% end if
-+!!% end if onv2
-+!!% else
-+!!% onv22:if(sqrt(vrefg(1,ifft,ispden)**2+vrefg(2,ifft,ispden)).gt.2d-1) then
-+!!% if(bb(1)**2+bb(2)**2.lt.cc(1)**2+cc(2)**2) then
-+!!% count17=count17+1
-+!!% else
-+!!% count18=count18+1
-+!!% end if
-+!!% else if(sqrt(vrefg(1,ifft,ispden)**2+vrefg(2,ifft,ispden)).gt.5d-2) then
-+!!% if(bb(1)**2+bb(2)**2.lt.cc(1)**2+cc(2)**2) then
-+!!% count1=count1+1
-+!!% else
-+!!% count2=count2+1
-+!!% end if
-+!!% else if(sqrt(vrefg(1,ifft,ispden)**2+vrefg(2,ifft,ispden)).gt.5d-3) then
-+!!% if(bb(1)**2+bb(2)**2.lt.cc(1)**2+cc(2)**2) then
-+!!% count9=count9+1
-+!!% else
-+!!% count10=count10+1
-+!!% end if
-+!!% else
-+!!% if(bb(1)**2+bb(2)**2.lt.cc(1)**2+cc(2)**2) then
-+!!% count11=count11+1
-+!!% else
-+!!% count12=count12+1
-+!!% end if
-+!!% end if onv22
-+!!% end if ong
-+!!% end if principal
-+!!% if(abs(vref(ifft,ispden)-vtrial(ifft,ispden)).gt.&
-+!!% &abs(vref(ifft,ispden)-vtrialold(ifft,ispden))) then
-+!!% count14=count14+1
-+!!% else
-+!!% count13=count13+1
-+!!% end if
-+!!%
-+!!% end do
-+!!% end do
-+!!% write(1111,*),'---------------------------------------------------------------------------------'
-+!!% write(1111,*),'| g2<0.2 | g2<1.0 |'
-+!!% write(1111,*),'| ok | bad | ok | bad | '
-+!!% write(1111,*),'|',count16,'|',count15,'|',count18,'|',count17,'| ','||V||>2e-1'
-+!!% write(1111,*),'|',count2,'|',count1,'|',count8,'|',count7,'| ','||V||>5e-2'
-+!!% write(1111,*),'|',count4,'|',count3,'|',count10,'|',count9,'| ','||V||>5e-3'
-+!!% write(1111,*),'|',count6,'|',count5,'|',count12,'|',count11,'| ','||V||>5e-5'
-+!!% write(1111,*),'---------------------------------------------------------------------------------'
-+!!% write(0,*),'---------------------------------------------------------------------------------'
-+!!% write(0,*),'| g2<0.2 | g2<1.0 |'
-+!!% write(0,*),'| ok | bad | ok | bad | '
-+!!% write(0,*),'|',count16,'|',count15,'|',count18,'|',count17,'| ','||V||>2e-1'
-+!!% write(0,*),'|',count2,'|',count1,'|',count8,'|',count7,'| ','||V||>5e-2'
-+!!% write(0,*),'|',count4,'|',count3,'|',count10,'|',count9,'| ','||V||>5e-3'
-+!!% write(0,*),'|',count6,'|',count5,'|',count12,'|',count11,'| ','||V||>5e-5'
-+!!% write(0,*),'---------------------------------------------------------------------------------'
-+!!%
-+!!%
-+!!% write(0,*) 'les mauvais r:',count14,'les bons r',count13
-+!!% write(1111,*) 'les mauvais r:',count14,'les bons r',count13
- !stop
- !----------------------------------------------------------------------------------------------------------
- !last FREE
-diff -Naur abinit-6.4.2.bak/src/68_rsprc/prctfw3.F90 abinit-6.4.2/src/68_rsprc/prctfw3.F90
---- src/68_rsprc/prctfw3.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/68_rsprc/prctfw3.F90 2011-01-05 09:33:04.000000000 +0000
-@@ -170,9 +170,9 @@
- ! *************************************************************************
-
- !***********************************************************************************
--!Getting the localy averaged non-local potential ***
--!$Vnl(r) = [\sum_{n,k} f_{n,k} \psi_{n,k}(r) (Vnl(r,r') |\psi_{n,k}(r')>)]/n(r)$***
--!**********************************************************************************
-+! Getting the localy averaged non-local potential ***
-+!%$Vnl(r) = [\sum_{n,k} f_{n,k} \psi_{n,k}(r) (Vnl(r,r') |\psi_{n,k}(r')>)]/n(r)$***
-+!***********************************************************************************
- rhor=rhor_in
- qphon=zero
- xred2=xred
-diff -Naur abinit-6.4.2.bak/src/69_bse/cexch_haydock.F90 abinit-6.4.2/src/69_bse/cexch_haydock.F90
---- src/69_bse/cexch_haydock.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/69_bse/cexch_haydock.F90 2011-01-05 16:47:03.000000000 +0000
-@@ -185,7 +185,7 @@
- ! There is no need to shift the G-sphere as we only have vertical transitions.
- mgfft_osc = MAXVAL(ngfft_osc(1:3))
- fftalga_osc = ngfft_osc(7)/100 !; fftalgc_osc=MOD(ngfft_osc(7),10)
-- use_padfft=0; !$if (fftalga_osc==3) use_padfft=1 ! Padded FFTW3 is safe instead!
-+ use_padfft=0; !%if (fftalga_osc==3) use_padfft=1 ! Padded FFTW3 is safe instead!
- allocate(gbound(2*mgfft_osc+8,2*use_padfft))
- if (use_padfft==1) call sphereboundary(gbound,1,Gsph_Max%gvec,mgfft_osc,BSp%npweps)
-
-@@ -315,8 +315,8 @@
- do ic=BSp%lomo,BSp%nbnds ! loop over band C
- ! Symmetry index for IBZ = 1 (in ktabr(:,1)
-
-- !$call wfd_get_ur(Wfd,iv,ik,spin,wfr1)
-- !$call wfd_get_ur(Wfd,ic,ik,spin,wfr2)
-+ !%call wfd_get_ur(Wfd,iv,ik,spin,wfr1)
-+ !%call wfd_get_ur(Wfd,ic,ik,spin,wfr2)
-
- call rho_tw_g(paral_kgb,nspinor,BSp%npweps,nfftot_osc,ngfft_osc,map2sphere,use_padfft,igfftg0,gbound,&
- & wfnr(:,iv,ik),1,ktabr(:,1),ph_mkt,spinrot_k,&
-@@ -533,8 +533,8 @@
- do iv=BSp%lomo,BSp%homo ! loop over band V
- do ivp=BSp%lomo,BSp%homo ! loop over band VP
-
-- !$call wfd_get_ur(Wfd,ivp,ikp_ibz,spin,wfr1)
-- !$call wfd_get_ur(Wfd,iv ,ik_ibz ,spin,wfr2)
-+ !%call wfd_get_ur(Wfd,ivp,ikp_ibz,spin,wfr1)
-+ !%call wfd_get_ur(Wfd,iv ,ik_ibz ,spin,wfr2)
-
- call rho_tw_g(paral_kgb,nspinor,BSp%npweps,nfftot_osc,ngfft_osc,map2sphere,use_padfft,igfftg0,gbound,&
- & wfnr(:,ivp,ikp_ibz),itim_kp,ktabr_kp,ph_mkpt,spinrot_kp,&
-@@ -556,8 +556,8 @@
- do icp=BSp%lumo,BSp%nbnds ! loop over band C_prime
- do ic=BSp%lumo,BSp%nbnds ! loop over band C
-
-- !$call wfd_get_ur(Wfd,icp,ikp_ibz,spin,wfr1)
-- !$call wfd_get_ur(Wfd,ic ,ik_ibz ,spin,wfr2)
-+ !%call wfd_get_ur(Wfd,icp,ikp_ibz,spin,wfr1)
-+ !%call wfd_get_ur(Wfd,ic ,ik_ibz ,spin,wfr2)
-
- call rho_tw_g(paral_kgb,nspinor,BSp%npweps,nfftot_osc,ngfft_osc,map2sphere,use_padfft,igfftg0,gbound,&
- & wfnr(:,icp,ikp_ibz),itim_kp,ktabr_kp,ph_mkpt,spinrot_kp,&
-@@ -613,7 +613,7 @@
-
- ! then sum on G': sum_G' (rho_c'c(G) W*(G,G'))* rho_v'v(G')
- http = -faq * DOT_PRODUCT(ctccp(:),rhxtwg_vv(:,ivp,iv))
-- !$http = -faq * xdotc(BSp%npweps,ctccp,1,rhxtwg_vv(:,ivp,iv),1)
-+ !%http = -faq * xdotc(BSp%npweps,ctccp,1,rhxtwg_vv(:,ivp,iv),1)
-
- bsh_k(irv,irc,ikp,irvp,ircp) = http
- ! write(*,'("ik,ikp,iv,ivp,ic,icp, it, itp",8I3)')ik,ikp,iv,ivp,ic,icp, it, itp
-@@ -663,7 +663,7 @@
-
- ! sum over G
- ctemp = DOT_PRODUCT(rhotwg1(2:),rhotwg2(2:))
-- !$ctemp = XDOTC(BSp%npweps-1,rhotwg1(2:),1,rhotwg2(2:),1)
-+ !%ctemp = XDOTC(BSp%npweps-1,rhotwg1(2:),1,rhotwg2(2:),1)
- ctemp = two * ctemp * faq
-
- bsh_k(irv,irc,ikp,irvp,ircp)=bsh_k(irv,irc,ikp,irvp,ircp)+ctemp
-diff -Naur abinit-6.4.2.bak/src/69_bse/exceig.F90 abinit-6.4.2/src/69_bse/exceig.F90
---- src/69_bse/exceig.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/69_bse/exceig.F90 2011-01-05 16:48:51.000000000 +0000
-@@ -155,11 +155,11 @@
-
- ! Check the size of hamiltonian matrix
- ! Not possible anymore, this info should be reported in the header.
-- !$read(hreso_unt,rec=((nh*nh + nh)/2)+1) itemp
-- !$if(itemp/=nh) then
-- !$ write(msg,'(a,i0,a,i0,a)')'nt should be ',nh,' but read ',itemp,' wrong file fort.55 *.exh'
-- !$ MSG_ERROR(msg)
-- !$end if
-+ !%read(hreso_unt,rec=((nh*nh + nh)/2)+1) itemp
-+ !%if(itemp/=nh) then
-+ !% write(msg,'(a,i0,a,i0,a)')'nt should be ',nh,' but read ',itemp,' wrong file fort.55 *.exh'
-+ !% MSG_ERROR(msg)
-+ !%end if
-
- ! Construct full excitonic Hamiltonian using Hermiticity. file is always in double precision.
- do itp=1,nh
-@@ -181,7 +181,7 @@
- call wrtout(std_out," Partial diagonalization via XHEEVX","COLL")
- abstol=zero; ldz=nh
- allocate(exc_vec(ldz,nh)) ! TODO Single precision is not available.
-- !$call xheevx("Vectors","All","Upper",nh,exc_mat,vl,vu,il,iu,abstol,mene_found,exc_ene,exc_vec,ldz)
-+ !%call xheevx("Vectors","All","Upper",nh,exc_mat,vl,vu,il,iu,abstol,mene_found,exc_ene,exc_vec,ldz)
- exc_mat = exc_vec
- deallocate(exc_vec)
- end if
-@@ -287,28 +287,28 @@
-
- call wrtout(std_out,' Writing eigenvalues/vectors on file: '//TRIM(filbseig),"COLL")
-
-- !$ Very inefficient coding. Allocate global array to store the distributed eigenvectors
-- !$ Fill the matrix, then the master node writes the final results on file
-- !$allocate(exc_mat_dpc(nh,nh), STAT=istat)
-- !$ABI_CHECK(istat==0,'out of memory: excitonic eigenvectors')
-- !$exc_mat_dpc = czero
--
-- !$call slk_matrix_to_global_dpc_2D(Slk_vec,"All",exc_mat_dpc)
-- !$call xsum_master(exc_mat_dpc,master,spaceComm,ierr)
--
-- !$if (my_rank==master) then
-- !$ eig_unt=get_unit()
-- !$ open(eig_unt,file=filbseig,form='unformatted')
-- !$
-- !$ write(eig_unt) nh
-- !$ write(eig_unt) CMPLX(exc_ene(1:nh),kind=dpc)
-- !$ do mi=1,nh
-- !$ write(eig_unt) CMPLX(exc_mat_dpc(1:nh,mi),kind=dpc)
-- !$ end do
-- !$ close(eig_unt)
-- !$end if
-- !$
-- !$deallocate(exc_mat_dpc)
-+ !% Very inefficient coding. Allocate global array to store the distributed eigenvectors
-+ !% Fill the matrix, then the master node writes the final results on file
-+ !%allocate(exc_mat_dpc(nh,nh), STAT=istat)
-+ !%ABI_CHECK(istat==0,'out of memory: excitonic eigenvectors')
-+ !%exc_mat_dpc = czero
-+
-+ !%call slk_matrix_to_global_dpc_2D(Slk_vec,"All",exc_mat_dpc)
-+ !%call xsum_master(exc_mat_dpc,master,spaceComm,ierr)
-+
-+ !%if (my_rank==master) then
-+ !% eig_unt=get_unit()
-+ !% open(eig_unt,file=filbseig,form='unformatted')
-+ !%
-+ !% write(eig_unt) nh
-+ !% write(eig_unt) CMPLX(exc_ene(1:nh),kind=dpc)
-+ !% do mi=1,nh
-+ !% write(eig_unt) CMPLX(exc_mat_dpc(1:nh,mi),kind=dpc)
-+ !% end do
-+ !% close(eig_unt)
-+ !%end if
-+ !%
-+ !%deallocate(exc_mat_dpc)
-
- ! Write distributed matrix on file tmp_fname using streams instead of Fortran records.
- tmp_fname=pick_aname()
-@@ -661,8 +661,8 @@
-
- ! Check the size of hamiltonian matrix
- ! Not possible anymore, this info should be reported in the header.
-- !$read(hreso_unt,rec=((nh*nh + nh)/2)+1) itemp
-- !$ABI_CHECK(itemp==nh,'Wrong resonant file')
-+ !%read(hreso_unt,rec=((nh*nh + nh)/2)+1) itemp
-+ !%ABI_CHECK(itemp==nh,'Wrong resonant file')
-
- do itp=1,nh
- do it=1,itp
-@@ -687,8 +687,8 @@
-
- ! Check the size of hamiltonian matrix
- ! Not possible anymore, this info should be reported in the header.
-- !$read(hcoup_unt,rec=((nh*nh + nh)/2)+1) itemp
-- !$ABI_CHECK(itemp==nh,'wrong file .exc')
-+ !%read(hcoup_unt,rec=((nh*nh + nh)/2)+1) itemp
-+ !%ABI_CHECK(itemp==nh,'wrong file .exc')
-
- do itp=1,nh
- do it=1,itp
-@@ -970,28 +970,28 @@
- ! Fill the matrix, then master node writes the final results on file
- ! (better coding requires either scaLAPACK tool or MPI-IO (the later should be much faster).
-
-- !$allocate(ovlp_dpc(nh2,nh2), STAT=istat)
-- !$ABI_CHECK(istat==0,'out of memory ovlp_dpc')
-- !$ovlp_dpc = czero
--
-- !$call slk_matrix_to_global_dpc_2D(Slk_mat,"All",ovlp_dpc)
-- !$call xsum_master(ovlp_dpc,master,spaceComm,ierr)
--
-- !$if (my_rank==master) then
-- !$ msg=' Writing overlap matrix s^-1 on file '//TRIM(BS_files%exovl)
-- !$ call wrtout(std_out,msg,"PERS")
--
-- !$ ovlp_unt = get_unit()
-- !$ open(unit=ovlp_unt,file=BS_files%exovl,form='unformatted',iostat=ios)
--
-- !$ write(ovlp_unt) nh2
-- !$ do mi=1,nh2 ! write overlap matrix s^-1(mi,:)
-- !$ write(ovlp_unt) CMPLX(ovlp_dpc(mi,:),kind=dpc)
-- !$ end do
-- !$ close(ovlp_unt)
-- !$end if
-+ !%allocate(ovlp_dpc(nh2,nh2), STAT=istat)
-+ !%ABI_CHECK(istat==0,'out of memory ovlp_dpc')
-+ !%ovlp_dpc = czero
-+
-+ !%call slk_matrix_to_global_dpc_2D(Slk_mat,"All",ovlp_dpc)
-+ !%call xsum_master(ovlp_dpc,master,spaceComm,ierr)
-+
-+ !%if (my_rank==master) then
-+ !% msg=' Writing overlap matrix s^-1 on file '//TRIM(BS_files%exovl)
-+ !% call wrtout(std_out,msg,"PERS")
-+
-+ !% ovlp_unt = get_unit()
-+ !% open(unit=ovlp_unt,file=BS_files%exovl,form='unformatted',iostat=ios)
-+
-+ !% write(ovlp_unt) nh2
-+ !% do mi=1,nh2 ! write overlap matrix s^-1(mi,:)
-+ !% write(ovlp_unt) CMPLX(ovlp_dpc(mi,:),kind=dpc)
-+ !% end do
-+ !% close(ovlp_unt)
-+ !%end if
-
-- !$deallocate(ovlp_dpc)
-+ !%deallocate(ovlp_dpc)
-
- ! Use MPI-IO
- ! Write distributed matrix on file tmp_fname using streams instead of Fortran records.
-diff -Naur abinit-6.4.2.bak/src/69_bse/setup_bse.F90 abinit-6.4.2/src/69_bse/setup_bse.F90
---- src/69_bse/setup_bse.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/69_bse/setup_bse.F90 2011-01-05 16:50:53.000000000 +0000
-@@ -362,7 +362,7 @@
- CASE (2)
- msg= " Model dielectric function not yet coded"
- MSG_ERROR(msg)
-- !$BSp%wtype = 'wmodel'
-+ !%BSp%wtype = 'wmodel'
- CASE DEFAULT
- write(msg,'(a,i0)')" Wrong bs_coulomb_term: ",Dtset%bs_coulomb_term
- MSG_ERROR(msg)
-@@ -715,7 +715,7 @@
-
- !TODO call update_occ here
- ! Occupancies might be zero if NSCF
-- !$call update_occ(KS_BSt,fixmom,stmbias,Dtset%prtvol)
-+ !%call update_occ(KS_BSt,fixmom,stmbias,Dtset%prtvol)
-
- call print_bandstructure(KS_BSt,"Band structure read from the KSS file",unit=std_out,prtvol=Dtset%prtvol)
-
-diff -Naur abinit-6.4.2.bak/src/77_ddb/eliashberg_1d.F90 abinit-6.4.2/src/77_ddb/eliashberg_1d.F90
---- src/77_ddb/eliashberg_1d.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/77_ddb/eliashberg_1d.F90 2011-01-05 09:36:08.000000000 +0000
-@@ -108,10 +108,10 @@
-
- !
- !1) use linearized Eliashberg equation to find Tc
--!$ \sum_j \mathbf{M}_{ij} \Delta_j = \zeta \cdot \Delta_i $ $i,j = 1 .. n_{\mathrm{Matsubara}}$
--!$\zeta = 1$ gives T$_c$ $\beta = \frac{1}{\mathrm{T}}$ $\omega_i = (2 i + 1) \pi \mathrm{T}$
--!$ \mathbf{M}_{ij} = \frac{\pi}{\beta} \frac{\lambda (\omega_i - \omega_j)}{Z (\omega_i)}$
--!$ Z (\omega_i) = 1 + \frac{\pi}{\beta \omega_i} \sum_j \lambda(\omega_i - \omega_j) \mathrm{sgn}(\omega_j)$
-+!%$ \sum_j \mathbf{M}_{ij} \Delta_j = \zeta \cdot \Delta_i $ $i,j = 1 .. n_{\mathrm{Matsubara}}$
-+!%$\zeta = 1$ gives T$_c$ $\beta = \frac{1}{\mathrm{T}}$ $\omega_i = (2 i + 1) \pi \mathrm{T}$
-+!%$ \mathbf{M}_{ij} = \frac{\pi}{\beta} \frac{\lambda (\omega_i - \omega_j)}{Z (\omega_i)}$
-+!%$ Z (\omega_i) = 1 + \frac{\pi}{\beta \omega_i} \sum_j \lambda(\omega_i - \omega_j) \mathrm{sgn}(\omega_j)$
- !
-
- !initial guess for T$_c$ in Hartree (1Ha =3.067e5 K)
-diff -Naur abinit-6.4.2.bak/src/77_ddb/m_eph.F90 abinit-6.4.2/src/77_ddb/m_eph.F90
---- src/77_ddb/m_eph.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/77_ddb/m_eph.F90 2011-01-05 09:34:59.000000000 +0000
-@@ -233,10 +233,10 @@
- public :: nullify_fermi_surface
- public :: destroy_fermi_surface
-
-- !$public :: init_fermi_surface
-- !$public :: wannier_interpolate_fermi_surface
-- !$public :: get_fs_ibz
-- !$public :: bxsf_write_fermi_surface
-+ !%public :: init_fermi_surface
-+ !%public :: wannier_interpolate_fermi_surface
-+ !%public :: get_fs_ibz
-+ !%public :: bxsf_write_fermi_surface
-
- ! example:
- !type(fermi_surface_type),allocatable :: Fsurf(:)
-@@ -325,9 +325,9 @@
- ! Bound Methods:
- public :: nullify_gkk
- public :: destroy_gkk
-- !$ init_gkk
-- !$ read_gkk_from_file
-- !$ get_gkk_full_fsbz ! complete gkk on the full FS BZ.
-+ !% init_gkk
-+ !% read_gkk_from_file
-+ !% get_gkk_full_fsbz ! complete gkk on the full FS BZ.
-
- interface nullify_gkk
- module procedure nullify_gkk_0D
-@@ -379,9 +379,9 @@
- ! Bound Methods:
- public :: nullify_gkk_handler
- public :: destroy_gkk_handler
-- !$init_gkk_handler(Gkk,FSurf,Cryst,Cryst,qpt,fname)
-- !$get_gammaq
-- !$symmetrize_gkk_over_perts
-+ !%init_gkk_handler(Gkk,FSurf,Cryst,Cryst,qpt,fname)
-+ !%get_gammaq
-+ !%symmetrize_gkk_over_perts
-
- interface nullify_gkk_handler
- module procedure nullify_gkk_handler_0D
-diff -Naur abinit-6.4.2.bak/src/77_suscep/prtsusd.F90 abinit-6.4.2/src/77_suscep/prtsusd.F90
---- src/77_suscep/prtsusd.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/77_suscep/prtsusd.F90 2011-01-05 08:58:59.000000000 +0000
-@@ -86,7 +86,7 @@
- allocate(sus_poly(npw_tiny))
-
- !Scaling for e-e interaction energy
--!$-1/2\pi$ [fluctuation-dissipation theorem] * $4\pi$ [Coulomb interaction] = -2
-+!% $-1/2\pi$ [fluctuation-dissipation theorem] * $4\pi$ [Coulomb interaction] = -2
- scalefactor=-2._dp ! -1/2pi[fluctuation-dissipation theorem] * 4pi[Coulomb interaction]
-
- !Directional extrapolation followed by spatial average for G=0 term, using polynomial
-diff -Naur abinit-6.4.2.bak/src/95_drive/bethe_salpeter.F90 abinit-6.4.2/src/95_drive/bethe_salpeter.F90
---- src/95_drive/bethe_salpeter.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/95_drive/bethe_salpeter.F90 2011-01-05 09:03:45.000000000 +0000
-@@ -567,7 +567,7 @@
-
- !TODO this has to be done in a better way, moreover wont work for PAW
- !Check Vcp!
--!$ call cutoff_density(ngfftf,Dtset%nspden,Dtset%nsppol,Vcp,ks_rhor,MPI_enreg)
-+!% call cutoff_density(ngfftf,Dtset%nspden,Dtset%nsppol,Vcp,ks_rhor,MPI_enreg)
- !
- !=== Additional computation for PAW ===
- if (Dtset%usepaw==1) then
-diff -Naur abinit-6.4.2.bak/src/95_drive/gw_driver.F90 abinit-6.4.2/src/95_drive/gw_driver.F90
---- src/95_drive/gw_driver.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/95_drive/gw_driver.F90 2011-01-05 09:22:30.000000000 +0000
-@@ -171,7 +171,7 @@
- if (read_qps1/=0) then ! Change the default.
- Dtfil%fnameabi_qps=filqps_it1
- else ! Save the IT1 name for GW0 runs
-- !$filqps_it1=TRIM(filnam_ds(3))//'_QPS'
-+ !%filqps_it1=TRIM(filnam_ds(3))//'_QPS'
- filqps_it1=Dtfil%fnameabi_qps
- end if
- !
-@@ -182,7 +182,7 @@
- if (read_scr1/=0) then ! Change the default.
- Dtfil%fnameabi_scr=filscr_it1
- else ! Save the IT1 name for GW0 runs
-- !$filscr_it1=TRIM(filnam_ds(3))//'_SCR'
-+ !%filscr_it1=TRIM(filnam_ds(3))//'_SCR'
- filscr_it1=Dtfil%fnameabi_scr
- end if
- !
-@@ -193,7 +193,7 @@
- if (read_sus1/=0) then ! Change the default.
- Dtfil%fnameabi_sus=filchi0_it1
- else ! Save the IT1 name for GW0 runs
-- !$filchi0_it1=TRIM(filnam_ds(3))//'_SUS'
-+ !%filchi0_it1=TRIM(filnam_ds(3))//'_SUS'
- filchi0_it1 =Dtfil%fnameabi_sus
- end if
- end if
-diff -Naur abinit-6.4.2.bak/src/95_drive/iofn1.F90 abinit-6.4.2/src/95_drive/iofn1.F90
---- src/95_drive/iofn1.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/95_drive/iofn1.F90 2011-01-05 09:17:55.000000000 +0000
-@@ -197,10 +197,10 @@
- call filnam_comm(5,filnam,mpi_enreg)
-
- !MG TODO
--!$call xbarrier_mpi(comm_world)
--!$call timab(48,1,tsec)
--!$call xcast_mpi(filnam,0,comm_world,ierr)
--!$call timab(48,2,tsec)
-+!%call xbarrier_mpi(comm_world)
-+!%call timab(48,1,tsec)
-+!%call xcast_mpi(filnam,0,comm_world,ierr)
-+!%call timab(48,2,tsec)
-
- !Create a name for the status file, based on filnam(5)
- filstat=trim(filnam(5))//'_STATUS'
-diff -Naur abinit-6.4.2.bak/src/95_drive/sigma.F90 abinit-6.4.2/src/95_drive/sigma.F90
---- src/95_drive/sigma.F90 2010-12-01 19:47:18.000000000 +0000
-+++ src/95_drive/sigma.F90 2011-01-05 09:17:02.000000000 +0000
-@@ -1505,12 +1505,12 @@
- !pass it to the setup_ppmodel
- !* It would be possible to calculate rho(G) using Paw_pwff, though. Maybe faster but
- !results will depend on the expression used for the matrix elements. This approach is safer.
--!$ if (Psps%usepaw==1.and.Ppm%needs_rhog>0) then
--!$ allocate(ks_rhor_paw(nfftf,Dtset%nspden))
--!$ call denfgr(Cryst%natom,Dtset%nspden,ks_nhat,Cryst%ntypat,Pawfgr,Pawfgrtab,Pawrad,KS_pawrhoij,Pawtab,&
--!$& ks_rhor,ks_rhor_paw,Psps,Cryst%typat)
--!$ deallocate(ks_rhor_paw)
--!$ end if
-+!% if (Psps%usepaw==1.and.Ppm%needs_rhog>0) then
-+!% allocate(ks_rhor_paw(nfftf,Dtset%nspden))
-+!% call denfgr(Cryst%natom,Dtset%nspden,ks_nhat,Cryst%ntypat,Pawfgr,Pawfgrtab,Pawrad,KS_pawrhoij,Pawtab,&
-+!%& ks_rhor,ks_rhor_paw,Psps,Cryst%typat)
-+!% deallocate(ks_rhor_paw)
-+!% end if
-
- call timab(409,2,tsec) ! getW
- !