aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sci-physics/abinit')
-rw-r--r--sci-physics/abinit/ChangeLog7
-rw-r--r--sci-physics/abinit/Manifest5
-rw-r--r--sci-physics/abinit/abinit-6.6.1.ebuild204
-rw-r--r--sci-physics/abinit/files/6.6.1-openmp.patch509
4 files changed, 724 insertions, 1 deletions
diff --git a/sci-physics/abinit/ChangeLog b/sci-physics/abinit/ChangeLog
index 94ea18426..8ba0cc1b9 100644
--- a/sci-physics/abinit/ChangeLog
+++ b/sci-physics/abinit/ChangeLog
@@ -2,6 +2,13 @@
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
# $Header: $
+*abinit-6.6.1 (07 Mar 2011)
+
+ 07 Mar 2011; Honza Macháček <Hloupy.Honza@centrum.cz>
+ +files/6.6.1-openmp.patch, +abinit-6.6.1.ebuild:
+ A quick bump to sci-physics/abinit-6.6.1. Some cleanup, some mess. Switched
+ from fftw2 to fftw3. OpenMP still broken.
+
*abinit-6.4.3 (05 Feb 2011)
05 Feb 2011; Honza Macháček <Hloupy.Honza@centrum.cz> abinit-6.4.2.ebuild,
diff --git a/sci-physics/abinit/Manifest b/sci-physics/abinit/Manifest
index 2f945eac8..7aa5160dd 100644
--- a/sci-physics/abinit/Manifest
+++ b/sci-physics/abinit/Manifest
@@ -5,8 +5,11 @@ AUX 6.2.2-configure-fortran-calls.patch 1056 RMD160 0adc386a28545d89b2aabc8faec7
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
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
-MISC ChangeLog 1413 RMD160 717238ee1c5f9a52ace7273dcf0f307bf8cd9759 SHA1 8b8c22d5fd3c45a17a84565cad848adc50fbc79a SHA256 f3384f6f4c6e625797319748b32c8f137033034cea08d5f1e8e5b0224c86f8a9
+EBUILD abinit-6.6.1.ebuild 6360 RMD160 39521e0aac623c1b33b1700eaf688fdfff8f5b99 SHA1 536ce8e6d610d2c58295901799b98f743c459cc8 SHA256 c3a068c1768affafe67d7829262db47542a0fed4e66a57c0fed1fa50444831fa
+MISC ChangeLog 1674 RMD160 7ac39be7145f3f0240d6a4db8f726f4c70a6062f SHA1 a01e9bc6286944b7f186b47ba1342b36cc66ad47 SHA256 44245fa60511df814863ffd91df847b23da7271a8abcbc243d0fb44a2fecae5d
diff --git a/sci-physics/abinit/abinit-6.6.1.ebuild b/sci-physics/abinit/abinit-6.6.1.ebuild
new file mode 100644
index 000000000..5fa9ce41c
--- /dev/null
+++ b/sci-physics/abinit/abinit-6.6.1.ebuild
@@ -0,0 +1,204 @@
+# 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="-L/usr/lib"
+ 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
+ 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.6.1-openmp.patch b/sci-physics/abinit/files/6.6.1-openmp.patch
new file mode 100644
index 000000000..af43d5792
--- /dev/null
+++ b/sci-physics/abinit/files/6.6.1-openmp.patch
@@ -0,0 +1,509 @@
+diff -Naur abinit-6.6.1.orig/src/52_fft_mpi_noabirule/accrho.F90 abinit-6.6.1/src/52_fft_mpi_noabirule/accrho.F90
+--- src/52_fft_mpi_noabirule/accrho.F90 2011-02-28 05:14:13.000000000 +0000
++++ src/52_fft_mpi_noabirule/accrho.F90 2011-03-01 19:41:35.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.6.1.orig/src/52_fft_mpi_noabirule/applypot.F90 abinit-6.6.1/src/52_fft_mpi_noabirule/applypot.F90
+--- src/52_fft_mpi_noabirule/applypot.F90 2011-02-28 05:14:13.000000000 +0000
++++ src/52_fft_mpi_noabirule/applypot.F90 2011-03-01 19:43:37.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.6.1.orig/src/52_fft_mpi_noabirule/back.F90 abinit-6.6.1/src/52_fft_mpi_noabirule/back.F90
+--- src/52_fft_mpi_noabirule/back.F90 2011-02-28 05:14:13.000000000 +0000
++++ src/52_fft_mpi_noabirule/back.F90 2011-03-01 19:45:45.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,7 @@
+
+ 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,ncache,zr,zf,lock,icplex)
+
+ iam=0
+ npr=1
+diff -Naur abinit-6.6.1.orig/src/52_fft_mpi_noabirule/forw.F90 abinit-6.6.1/src/52_fft_mpi_noabirule/forw.F90
+--- src/52_fft_mpi_noabirule/forw.F90 2011-02-28 05:14:13.000000000 +0000
++++ src/52_fft_mpi_noabirule/forw.F90 2011-03-01 19:46:53.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,7 @@
+
+ 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,ncache,zr,zf,lock,icplex)
+
+ iam=0
+ npr=1
+diff -Naur abinit-6.6.1.orig/src/53_ffts/fftw3_fourwf.F90 abinit-6.6.1/src/53_ffts/fftw3_fourwf.F90
+--- src/53_ffts/fftw3_fourwf.F90 2011-02-28 06:10:13.000000000 +0000
++++ src/53_ffts/fftw3_fourwf.F90 2011-03-01 21:30:29.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.6.1.orig/src/53_ffts/sphere_fft.F90 abinit-6.6.1/src/53_ffts/sphere_fft.F90
+--- src/53_ffts/sphere_fft.F90 2011-02-28 06:10:11.000000000 +0000
++++ src/53_ffts/sphere_fft.F90 2011-03-01 20:35:57.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.6.1.orig/src/67_common/m_coulombian.F90 abinit-6.6.1/src/67_common/m_coulombian.F90
+--- src/67_common/m_coulombian.F90 2011-02-28 06:10:19.000000000 +0000
++++ src/67_common/m_coulombian.F90 2011-03-01 22:22:13.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.6.1.orig/src/69_wfdesc/m_wfs.F90 abinit-6.6.1/src/69_wfdesc/m_wfs.F90
+--- src/69_wfdesc/m_wfs.F90 2011-02-28 06:10:19.000000000 +0000
++++ src/69_wfdesc/m_wfs.F90 2011-03-01 22:32:16.000000000 +0000
+@@ -126,7 +126,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 :: ph3d(:,:,:) SET2NULL
+ ! ph3d(2,npw,natom)
+@@ -146,7 +146,7 @@
+ ! ylm(npw,mpsang**2*useylm)
+ ! Real spherical harmonics for each k+G
+
+- !$real(dp),pointer :: kinpw(:)
++ !%real(dp),pointer :: kinpw(:)
+ ! kinpw(npw_k)
+ ! compute elements of kinetic energy operator in reciprocal space.
+ ! (1/2*effmass) (2 Pi)**2 (k+G)**2:
+@@ -186,7 +186,7 @@
+ !integer :: nspinor
+ !integer :: natom
+
+- !$ integer :: cplex
++ !% integer :: cplex
+ ! 1 for real wavefunctions u(r)
+ ! 2 for complex wavefunctions u(r).
+ ! At gamma we always have real u(r) provided that time-reversal can be used.
+@@ -267,8 +267,8 @@
+ integer :: itim
+ ! 2 is time-reversal is used. 1 otherwise.
+
+- !$integer :: ngfft(18)
+- !$integer :: mgfft
++ !%integer :: ngfft(18)
++ !%integer :: mgfft
+
+ real(dp) :: ecut
+ ! Cutoff energy.
+@@ -326,7 +326,7 @@
+ integer :: lmnmax
+ integer :: mband ! MAX(nband)
+ integer :: mgfft ! Maximum size of 1D FFTs i.e. MAXVAL(ngfft(1:3)), used to dimension some arrays.
+- !$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
+@@ -338,7 +338,7 @@
+ integer :: ntypat
+ integer :: paral_kgb ! Option for kgb parallelism
+ integer :: usepaw ! 1 if PAW is used, 0 otherwise.
+- !$integer :: usepawu ! 1 if PAW+U is used, 0 otherwise.
++ !%integer :: usepawu ! 1 if PAW+U is used, 0 otherwise.
+ integer :: prtvol ! Verbosity level.
+ integer :: pawprtvol ! Verbosity level for PAW.
+ integer :: usewvl ! 1 if BigDFT is used, 0 otherwise.
+@@ -362,13 +362,13 @@
+ ! ecutsm=smearing energy for plane wave kinetic energy (Ha)
+ ! Cutoff for plane wave basis set.
+
+- !$real(dp) :: pawecutdg=zero
++ !%real(dp) :: pawecutdg=zero
+ ! Cutoff for plane wave basis set.
+
+ logical :: gamma_centered=.TRUE.
+ ! .TRUE. if ug are given on the Gamma-centered G-sphere. Flag nedded to preserve the old Implementation.
+
+- !$real(dp) :: effmass
++ !%real(dp) :: effmass
+ ! Effective mass for electrons
+
+ !arrays
+@@ -2066,8 +2066,8 @@
+
+ ! 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)
+
+ matblk = Cryst%natom
+@@ -5741,9 +5741,9 @@
+ ! *************************************************************************
+
+ ! TODO ngfft should be included in pawfgrtab_type
+- !$if (ANY(Wfd%ngfft(1:3)/=Pawfgrtab%ngfft(1:3)) then
+- !$ MSG_ERROR("Wfd%ngfft(1:3)/=Pawfgrtab%ngfft(1:3)")
+- !$end if
++ !%if (ANY(Wfd%ngfft(1:3)/=Pawfgrtab%ngfft(1:3)) then
++ !% MSG_ERROR("Wfd%ngfft(1:3)/=Pawfgrtab%ngfft(1:3)")
++ !%end if
+
+ call wfd_get_ur(Wfd,band,ik_ibz,spin,ur_ae)
+
+@@ -6817,7 +6817,7 @@
+ do_sym = .FALSE.
+ if (PRESENT(ISkg)) then
+ do_sym = .TRUE.
+- !$ TODO do_sym = (ISkg%isym/=1 .or. ISkg%itim/=1)
++ !% TODO do_sym = (ISkg%isym/=1 .or. ISkg%itim/=1)
+ end if
+
+ if (.not. do_sym) then
+diff -Naur abinit-6.6.1.orig/src/69_wfdesc/outkss.F90 abinit-6.6.1/src/69_wfdesc/outkss.F90
+--- src/69_wfdesc/outkss.F90 2011-02-28 05:14:13.000000000 +0000
++++ src/69_wfdesc/outkss.F90 2011-03-01 22:42:00.000000000 +0000
+@@ -131,7 +131,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
+@@ -458,7 +458,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.6.1.orig/src/70_gw/m_screening.F90 abinit-6.6.1/src/70_gw/m_screening.F90
+--- src/70_gw/m_screening.F90 2011-02-28 06:10:19.000000000 +0000
++++ src/70_gw/m_screening.F90 2011-03-02 05:05:33.000000000 +0000
+@@ -439,7 +439,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
+@@ -796,7 +796,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
+
+ write(*,*) 'Er%ID:',Er%ID
+@@ -1892,7 +1892,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)
+@@ -1992,7 +1992,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)
+@@ -2212,7 +2212,7 @@
+ end do
+ !
+ !if (PRESENT(rhor)) then
+- ! !$call mdielf(epsinf,Er%npw,Er%nomega,iq_ibz,Er%qibz(:,iq_ibz),Er%gvec,Cryst,Vcp,nspden,nfft,ngfft,rhor,epsm1,comm)
++ ! !%call mdielf(epsinf,Er%npw,Er%nomega,iq_ibz,Er%qibz(:,iq_ibz),Er%gvec,Cryst,Vcp,nspden,nfft,ngfft,rhor,epsm1,comm)
+ !end if
+
+ end do ! nqibz
+@@ -2393,7 +2393,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.6.1.orig/src/71_bse/exc_iterative_diago.F90 abinit-6.6.1/src/71_bse/exc_iterative_diago.F90
+--- src/71_bse/exc_iterative_diago.F90 2011-02-28 06:10:19.000000000 +0000
++++ src/71_bse/exc_iterative_diago.F90 2011-03-01 22:50:45.000000000 +0000
+@@ -762,8 +762,8 @@
+ open(unit=eig_unt,file=oeig_fname,form='unformatted')
+ write(eig_unt) exc_nst
+ write(eig_unt) CMPLX(exc_energy(1:exc_nst),kind=dpc)
+- !$ fform = 1002 ! TODO: change setup_bse so that Hdr_bse reflects the parameters of the run.
+- !$ call hdr_io_int(fform,Hdr_bse,rdwr2,eig_unt)
++ !% fform = 1002 ! TODO: change setup_bse so that Hdr_bse reflects the parameters of the run.
++ !% call hdr_io_int(fform,Hdr_bse,rdwr2,eig_unt)
+ close(eig_unt)
+ end if
+
+@@ -776,15 +776,15 @@
+ msg = " MPI_IO error opening file: "//TRIM(oeig_fname)
+ ABI_CHECK_MPI(ierr,msg)
+
+- !$call xmpio_read_frm(mpi_fh,ehdr_offset,xmpio_at,fmarker,ierr)
+- !$write(std_out,*)"fmarker last record ",fmarker
+- !$call hdr_mpio_skip(mpi_fh,fform,ehdr_offset)
+- !$ehdr_offset = 4*xmpio_bsize_frm + xmpio_bsize_int + exc_nst*xmpio_bsize_dpc
++ !%call xmpio_read_frm(mpi_fh,ehdr_offset,xmpio_at,fmarker,ierr)
++ !%write(std_out,*)"fmarker last record ",fmarker
++ !%call hdr_mpio_skip(mpi_fh,fform,ehdr_offset)
++ !%ehdr_offset = 4*xmpio_bsize_frm + xmpio_bsize_int + exc_nst*xmpio_bsize_dpc
+
+ is_fortran_file=.TRUE.; etype=MPI_BYTE; old_type=MPI_DOUBLE_COMPLEX
+
+ ! TODO Need to add option to create file view.
+- !$call xmpio_create_coldistr_from_fherm_packed(array_of_sizes,my_cols,old_type,eig_type,offset_err)
++ !%call xmpio_create_coldistr_from_fherm_packed(array_of_sizes,my_cols,old_type,eig_type,offset_err)
+
+ if (offset_err/=0) then
+ write(msg,"(3a)")&
+diff -Naur abinit-6.6.1.orig/src/77_ddb/eliashberg_1d.F90 abinit-6.6.1/src/77_ddb/eliashberg_1d.F90
+--- src/77_ddb/eliashberg_1d.F90 2011-02-28 06:10:20.000000000 +0000
++++ src/77_ddb/eliashberg_1d.F90 2011-03-02 04:21:07.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.6.1.orig/src/77_ddb/m_eph.F90 abinit-6.6.1/src/77_ddb/m_eph.F90
+--- src/77_ddb/m_eph.F90 2011-02-28 05:14:13.000000000 +0000
++++ src/77_ddb/m_eph.F90 2011-03-01 23:17:18.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.6.1.orig/src/95_drive/bethe_salpeter.F90 abinit-6.6.1/src/95_drive/bethe_salpeter.F90
+--- src/95_drive/bethe_salpeter.F90 2011-02-28 06:10:13.000000000 +0000
++++ src/95_drive/bethe_salpeter.F90 2011-03-02 04:34:01.000000000 +0000
+@@ -453,7 +453,7 @@
+ end do
+ end if
+
+- opt_ecut=zero !$; if (gw_uses_wfk_file) opt_ecut=Dtset%ecutwfn
++ opt_ecut=zero !%; if (gw_uses_wfk_file) opt_ecut=Dtset%ecutwfn
+
+ call wfd_init(Wfd,Cryst,Pawtab,Psps,keep_ur,Dtset%paral_kgb,BSp%npwwfn,mband,nband,Kmesh%nibz,Dtset%nsppol,bks_mask,&
+ & Dtset%nspden,Dtset%nspinor,Dtset%ecutsm,Dtset%dilatmx,Hdr_kss%istwfk,Kmesh%ibz,ngfft_osc,&
+@@ -513,7 +513,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_seq)
++!% call cutoff_density(ngfftf,Dtset%nspden,Dtset%nsppol,Vcp,ks_rhor,MPI_enreg_seq)
+ !
+ !=== Additional computation for PAW ===
+ if (Dtset%usepaw==1) then