diff options
Diffstat (limited to 'sci-physics/abinit')
-rw-r--r-- | sci-physics/abinit/ChangeLog | 7 | ||||
-rw-r--r-- | sci-physics/abinit/Manifest | 5 | ||||
-rw-r--r-- | sci-physics/abinit/abinit-6.6.1.ebuild | 204 | ||||
-rw-r--r-- | sci-physics/abinit/files/6.6.1-openmp.patch | 509 |
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 |