Gentoo Archives: gentoo-commits

From: Dongxu Li <dongxuli2011@×××××.com>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/sci:master commit in: sci-physics/abinit/files/, sci-physics/abinit/
Date: Wed, 27 Apr 2011 16:32:33
Message-Id: e0994c98cd887f861c2e5ffea80c84aef545dc05.dongxuli@gentoo
1 commit: e0994c98cd887f861c2e5ffea80c84aef545dc05
2 Author: Dongxu Li <dongxuli2011 <AT> gmail <DOT> com>
3 AuthorDate: Wed Apr 27 16:30:58 2011 +0000
4 Commit: Dongxu Li <dongxuli2011 <AT> gmail <DOT> com>
5 CommitDate: Wed Apr 27 16:30:58 2011 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=e0994c98
7
8 sci-physics/abinit: Removed old versions
9
10 ---
11 sci-physics/abinit/abinit-6.4.2.ebuild | 217 --
12 sci-physics/abinit/abinit-6.4.3.ebuild | 218 --
13 sci-physics/abinit/abinit-6.6.1.ebuild | 209 --
14 sci-physics/abinit/files/6.0.3-libxc-flags.patch | 29 -
15 .../files/6.2.2-configure-fortran-calls.patch | 26 -
16 sci-physics/abinit/files/6.2.2-long-message.patch | 23 -
17 .../abinit/files/6.2.2-non-plugin-libs.patch | 260 --
18 sci-physics/abinit/files/6.4.2-openmp.patch | 3096 --------------------
19 8 files changed, 0 insertions(+), 4078 deletions(-)
20
21 diff --git a/sci-physics/abinit/abinit-6.4.2.ebuild b/sci-physics/abinit/abinit-6.4.2.ebuild
22 deleted file mode 100644
23 index ac9a31e..0000000
24 --- a/sci-physics/abinit/abinit-6.4.2.ebuild
25 +++ /dev/null
26 @@ -1,217 +0,0 @@
27 -# Copyright 1999-2011 Gentoo Foundation
28 -# Distributed under the terms of the GNU General Public License v2
29 -
30 -EAPI="3"
31 -
32 -inherit autotools eutils multilib toolchain-funcs
33 -
34 -DESCRIPTION="Find total energy, charge density and electronic structure using density functional theory"
35 -HOMEPAGE="http://www.abinit.org/"
36 -SRC_URI="http://ftp.abinit.org/${P}.tar.gz"
37 -
38 -LICENSE="GPL-2"
39 -SLOT="0"
40 -KEYWORDS="~amd64 ~ppc ~x86"
41 -IUSE="cuda -debug +fftw +fox gsl +hdf5 mpi +netcdf python -smp +threads -test -vdwxc"
42 -
43 -RDEPEND="=sci-libs/bigdft-1.2.0.2
44 - sci-libs/etsf_io
45 - =sci-libs/libxc-1.0[fortran]
46 - fox? ( sci-libs/fox[dom,sax,wcml,wxml] )
47 - netcdf? (
48 - sci-libs/netcdf[fortran]
49 - hdf5? (
50 - sci-libs/netcdf[fortran,hdf5]
51 - )
52 - )
53 - hdf5? ( sci-libs/hdf5[fortran] )
54 - sci-libs/wannier90
55 - virtual/blas
56 - virtual/lapack
57 - gsl? ( sci-libs/gsl )
58 - fftw? (
59 - sci-libs/fftw:2.1
60 - threads? ( sci-libs/fftw:2.1[threads] )
61 - )
62 - mpi? ( virtual/mpi )
63 - python? ( dev-python/numpy )
64 - cuda? ( dev-util/nvidia-cuda-sdk )"
65 -DEPEND="${RDEPEND}
66 - dev-util/pkgconfig
67 - dev-perl/Text-Markdown"
68 -
69 -WANT_AUTOCONF="latest"
70 -WANT_AUTOMAKE="latest"
71 -
72 -S=${WORKDIR}/${P%[a-z]}
73 -
74 -pkg_setup() {
75 - # Doesn't compile with gcc-4.0, only >=4.1
76 - if [[ $(tc-getFC) == *gfortran ]]; then
77 - if [[ $(gcc-major-version) -eq 4 ]] \
78 - && [[ $(gcc-minor-version) -lt 1 ]]; then
79 - die "Requires gcc-4.1 or newer"
80 - fi
81 - fi
82 -}
83 -
84 -src_prepare() {
85 - epatch "${FILESDIR}"/6.2.2-change-default-directories.patch
86 - epatch "${FILESDIR}"/6.2.2-configure-fortran-calls.patch
87 - epatch "${FILESDIR}"/6.0.3-fftw.patch
88 - epatch "${FILESDIR}"/6.2.2-non-plugin-libs.patch
89 - epatch "${FILESDIR}"/6.4.2-openmp.patch
90 -# To compile against libxc-1.0 or the current SVN HEAD:
91 - epatch "${FILESDIR}"/6.0.3-libxc-flags.patch
92 - eautoreconf
93 - find "${S}" -type f -exec grep -q -- '-llibxc' {} \; \
94 - -exec sed -i -e's/-llibxc/-lxc/g' {} \;
95 -}
96 -
97 -src_configure() {
98 - local libs="-L/usr/$(get_libdir)"
99 - local modules="-I/usr/$(get_libdir)/finclude"
100 - local FoX_libs="${libs} -lFoX_dom -lFoX_sax -lFoX_wcml -lFoX_wxml -lFoX_common -lFoX_utils -lFoX_fsys"
101 - local trio_flavor="etsf"
102 - use fox && trio_flavor="${trio_flavor}+fox"
103 - use hdf5 && trio_flavor="${trio_flavor}+hdf"
104 - use netcdf && trio_flavor="${trio_flavor}+netcdf"
105 - local netcdff_libs="-lnetcdff"
106 - use hdf5 && netcdff_libs="${netcdff_libs} -lhdf5_fortran"
107 - local trio_libs="-letsf_io -letsf_io_low_level -letsf_io_utils"
108 - use fox && trio_libs="${trio_libs} ${FoX_libs}"
109 - use netcdf && trio_libs="${trio_libs} $(pkg-config --libs netcdf) -lnetcdff"
110 - use hdf5 && trio_libs="${trio_libs} -lhdf5_fortran"
111 - local fft_flavor="fftw2"
112 - local fft_libs="-L/usr/lib"
113 - if use threads; then
114 - fft_libs="${fft_libs} -lfftw_threads"
115 - fft_flavor="fftw2-threads"
116 - fi
117 - fft_libs="${fft_libs} -lfftw -lrt -lm"
118 - if use mpi; then
119 - MY_FC="mpif90"
120 - MY_CC="mpicc"
121 - MY_CXX="mpic++"
122 - else
123 - MY_FC="$(tc-getFC)"
124 - MY_CC="$(tc-getCC)"
125 - MY_CXX="$(tc-getCXX)"
126 - fi
127 - if use smp; then
128 - MY_FC="${MY_FC} -fopenmp"
129 - MY_CC="${MY_CC} -fopenmp"
130 - MY_CXX="${MY_CXX} -fopenmp"
131 - fi
132 - MARKDOWN=Markdown.pl econf \
133 - $(use_enable debug debug enhanced) \
134 - $(use_enable mpi) \
135 - $(use_enable mpi mpi-io) \
136 - $(use_enable smp) \
137 - $(use_enable fox) \
138 - $(use_enable gsl math) \
139 - $(use_enable fftw fft) \
140 - $(use_enable vdwxc) \
141 - $(use_enable cuda gpu) \
142 - "$(use cuda && echo "--with-gpu-flavor=cuda-single")" \
143 - "$(use cuda && echo "--with-gpu-prefix=/opt/cuda/")" \
144 - "$(use gsl && echo "--with-math-flavor=gsl")" \
145 - "$(use gsl && echo "--with-math-includes=$(pkg-config --cflags gsl)")" \
146 - "$(use gsl && echo "--with-math-libs=$(pkg-config --libs gsl)")" \
147 - --enable-linalg \
148 - --enable-trio \
149 - --enable-etsf-io \
150 - --enable-dft \
151 - --with-linalg-flavor="atlas" \
152 - --with-linalg-libs="$(pkg-config --libs lapack)" \
153 - --with-trio-flavor="${trio_flavor}" \
154 - "$(use netcdf && echo "--with-netcdf-includes=-I/usr/include")" \
155 - "$(use netcdf && echo "--with-netcdf-libs=$(pkg-config --libs netcdf) ${netcdff_libs}")" \
156 - "$(use fox && echo "--with-fox-includes=${modules}")" \
157 - "$(use fox && echo "--with-fox-libs=${FoX_libs}")" \
158 - --with-etsf-io-includes="${modules}" \
159 - --with-etsf-io-libs="${libs} -letsf_io -letsf_io_low_level -letsf_io_utils" \
160 - --with-trio-includes="-I/usr/include ${modules}" \
161 - --with-trio-libs="${trio_libs}" \
162 - --with-dft-flavor="libxc+bigdft+wannier90" \
163 - --with-libxc-includes="${modules}" \
164 - --with-libxc-libs="${libs} -lxc" \
165 - --with-bigdft-includes="${modules}" \
166 - --with-bigdft-libs="${libs} -lpoissonsolver -lbigdft" \
167 - --with-wannier90="/usr/bin/wannier90.x" \
168 - --with-wannier90-includes="${modules}" \
169 - --with-wannier90-libs="${libs} -lwannier $(pkg-config --libs lapack)" \
170 - --with-dft-includes="${modules}" \
171 - --with-dft-libs="${libs} -lwannier -lpoissonsolver -lbigdft -lxc $(pkg-config --libs lapack)" \
172 - "$(use fftw && echo "--with-fft-flavor=${fft_flavor}")" \
173 - "$(use fftw && echo "--with-fft-includes=-I/usr/include")" \
174 - "$(use fftw && echo "--with-fft-libs=${fft_libs}")" \
175 - --with-timer-flavor="abinit" \
176 - FC="${MY_FC}" \
177 - CC="${MY_CC}" \
178 - CXX="${MY_CXX}" \
179 - LD="$(tc-getLD)" \
180 - FCFLAGS="${FCFLAGS:- ${FFLAGS:- -O2}} ${modules} -I/usr/include"
181 -}
182 -
183 -src_compile() {
184 -# if use mpi; then
185 -# emake multi || die
186 -# else
187 - emake || die
188 -# fi
189 -}
190 -
191 -src_test() {
192 - einfo "The tests take quite a while, on the order of 1-2 hours"
193 - einfo "on an Intel Penryn (2.5 GHz)."
194 - cd "${S}"/tests
195 - emake tests_min
196 - emake tests_paw
197 - emake tests_gw
198 - emake tests_gw_paw
199 - emake tests tdft
200 - emake tests_bench
201 -
202 - local REPORT
203 - for REPORT in $(find . -name report); do
204 - REPORT=${REPORT#*/}
205 - elog "Parameters and unusual results for ${REPORT%%/*} tests"
206 - echo "Parameters and unusual results for ${REPORT%%/*} tests" >>tests_summary.txt
207 - while read line; do
208 - elog "${line}"
209 - echo "${line}" >>tests_summary.txt
210 - done \
211 - < <(grep -v -e succeeded -e passed ${REPORT})
212 - done
213 -
214 - local testdir
215 - find . -name ",,test*" -print | \
216 - while read testdir; do
217 - if [ -e summary_tests.tar ]; then
218 - tar rvf summary_tests.tar ${testdir}
219 - else tar cvf summary_tests.tar ${testdir}
220 - fi
221 - done
222 -
223 - elog "The full test results will be installed as summary_tests.tar.bz2."
224 - elog "Also a concise report tests_summary.txt is installed."
225 -}
226 -
227 -src_install() {
228 - emake DESTDIR="${D}" install || die "make install failed"
229 -
230 - if use test; then
231 - dodoc tests/tests_summary.txt || ewarn "Copying tests summary failed"
232 - dodoc tests/summary_tests.tar || ewarn "Copying tests results failed"
233 - fi
234 -
235 - dodoc KNOWN_PROBLEMS README || die "Copying doc files failed"
236 -}
237 -
238 -pkg_postinst() {
239 - if use test; then
240 - elog "The full test results will be installed as summary_tests.tar.bz2."
241 - elog "Also a concise report tests_summary.txt is installed."
242 - fi
243 -}
244
245 diff --git a/sci-physics/abinit/abinit-6.4.3.ebuild b/sci-physics/abinit/abinit-6.4.3.ebuild
246 deleted file mode 100644
247 index 7090336..0000000
248 --- a/sci-physics/abinit/abinit-6.4.3.ebuild
249 +++ /dev/null
250 @@ -1,218 +0,0 @@
251 -# Copyright 1999-2011 Gentoo Foundation
252 -# Distributed under the terms of the GNU General Public License v2
253 -
254 -EAPI="3"
255 -
256 -inherit autotools eutils multilib toolchain-funcs
257 -
258 -DESCRIPTION="Find total energy, charge density and electronic structure using density functional theory"
259 -HOMEPAGE="http://www.abinit.org/"
260 -SRC_URI="http://ftp.abinit.org/${P}.tar.gz"
261 -
262 -LICENSE="GPL-2"
263 -SLOT="0"
264 -KEYWORDS="~amd64 ~ppc ~x86"
265 -IUSE="cuda -debug +fftw +fox gsl +hdf5 mpi +netcdf python -smp +threads -test -vdwxc"
266 -
267 -RDEPEND="=sci-libs/bigdft-1.2.0.2
268 - sci-libs/etsf_io
269 - =sci-libs/libxc-1.0[fortran]
270 - fox? ( sci-libs/fox[dom,sax,wcml,wxml] )
271 - netcdf? (
272 - sci-libs/netcdf[fortran]
273 - hdf5? (
274 - sci-libs/netcdf[fortran,hdf5]
275 - )
276 - )
277 - hdf5? ( sci-libs/hdf5[fortran] )
278 - sci-libs/wannier90
279 - virtual/blas
280 - virtual/lapack
281 - gsl? ( sci-libs/gsl )
282 - fftw? (
283 - sci-libs/fftw:2.1
284 - threads? ( sci-libs/fftw:2.1[threads] )
285 - )
286 - mpi? ( virtual/mpi )
287 - python? ( dev-python/numpy )
288 - cuda? ( dev-util/nvidia-cuda-sdk )"
289 -DEPEND="${RDEPEND}
290 - dev-util/pkgconfig
291 - dev-perl/Text-Markdown"
292 -
293 -WANT_AUTOCONF="latest"
294 -WANT_AUTOMAKE="latest"
295 -
296 -S=${WORKDIR}/${P%[a-z]}
297 -
298 -pkg_setup() {
299 - # Doesn't compile with gcc-4.0, only >=4.1
300 - if [[ $(tc-getFC) == *gfortran ]]; then
301 - if [[ $(gcc-major-version) -eq 4 ]] \
302 - && [[ $(gcc-minor-version) -lt 1 ]]; then
303 - die "Requires gcc-4.1 or newer"
304 - fi
305 - fi
306 -}
307 -
308 -src_prepare() {
309 - epatch "${FILESDIR}"/6.2.2-change-default-directories.patch
310 - epatch "${FILESDIR}"/6.2.2-configure-fortran-calls.patch
311 - epatch "${FILESDIR}"/6.0.3-fftw.patch
312 - epatch "${FILESDIR}"/6.2.2-non-plugin-libs.patch
313 - epatch "${FILESDIR}"/6.4.2-openmp.patch
314 -# To compile against libxc-1.0 or the current SVN HEAD:
315 - epatch "${FILESDIR}"/6.0.3-libxc-flags.patch
316 - eautoreconf
317 - find "${S}" -type f -exec grep -q -- '-llibxc' {} \; \
318 - -exec sed -i -e's/-llibxc/-lxc/g' {} \;
319 -}
320 -
321 -src_configure() {
322 - local libs="-L/usr/$(get_libdir)"
323 - local modules="-I/usr/$(get_libdir)/finclude"
324 - local FoX_libs="${libs} -lFoX_dom -lFoX_sax -lFoX_wcml -lFoX_wxml -lFoX_common -lFoX_utils -lFoX_fsys"
325 - local trio_flavor="etsf"
326 - use fox && trio_flavor="${trio_flavor}+fox"
327 - use hdf5 && trio_flavor="${trio_flavor}+hdf"
328 - use netcdf && trio_flavor="${trio_flavor}+netcdf"
329 - local netcdff_libs="-lnetcdff"
330 - use hdf5 && netcdff_libs="${netcdff_libs} -lhdf5_fortran"
331 - local trio_libs="-letsf_io -letsf_io_low_level -letsf_io_utils"
332 - use fox && trio_libs="${trio_libs} ${FoX_libs}"
333 - use netcdf && trio_libs="${trio_libs} $(pkg-config --libs netcdf) -lnetcdff"
334 - use hdf5 && trio_libs="${trio_libs} -lhdf5_fortran"
335 - local fft_flavor="fftw2"
336 - local fft_libs="-L/usr/lib"
337 - if use threads; then
338 - fft_libs="${fft_libs} -lfftw_threads"
339 - fft_flavor="fftw2-threads"
340 - fi
341 - fft_libs="${fft_libs} -lfftw -lrt -lm"
342 - if use mpi; then
343 - MY_FC="mpif90"
344 - MY_CC="mpicc"
345 - MY_CXX="mpic++"
346 - else
347 - MY_FC="$(tc-getFC)"
348 - MY_CC="$(tc-getCC)"
349 - MY_CXX="$(tc-getCXX)"
350 - fi
351 - if use smp; then
352 - MY_FC="${MY_FC} -fopenmp"
353 - MY_CC="${MY_CC} -fopenmp"
354 - MY_CXX="${MY_CXX} -fopenmp"
355 - fi
356 - MARKDOWN=Markdown.pl econf \
357 - $(use_enable debug debug enhanced) \
358 - $(use_enable mpi) \
359 - $(use_enable mpi mpi-io) \
360 - $(use_enable smp) \
361 - $(use_enable fox) \
362 - $(use_enable gsl math) \
363 - $(use_enable fftw fft) \
364 - $(use_enable vdwxc) \
365 - $(use_enable cuda gpu) \
366 - "$(use cuda && echo "--with-gpu-flavor=cuda-single")" \
367 - "$(use cuda && echo "--with-gpu-prefix=/opt/cuda/")" \
368 - "$(use gsl && echo "--with-math-flavor=gsl")" \
369 - "$(use gsl && echo "--with-math-includes=$(pkg-config --cflags gsl)")" \
370 - "$(use gsl && echo "--with-math-libs=$(pkg-config --libs gsl)")" \
371 - --enable-linalg \
372 - --enable-trio \
373 - --enable-etsf-io \
374 - --enable-dft \
375 - --with-linalg-flavor="atlas" \
376 - --with-linalg-libs="$(pkg-config --libs lapack)" \
377 - --with-trio-flavor="${trio_flavor}" \
378 - "$(use netcdf && echo "--with-netcdf-includes=-I/usr/include")" \
379 - "$(use netcdf && echo "--with-netcdf-libs=$(pkg-config --libs netcdf) ${netcdff_libs}")" \
380 - "$(use fox && echo "--with-fox-includes=${modules}")" \
381 - "$(use fox && echo "--with-fox-libs=${FoX_libs}")" \
382 - --with-etsf-io-includes="${modules}" \
383 - --with-etsf-io-libs="${libs} -letsf_io -letsf_io_low_level -letsf_io_utils" \
384 - --with-trio-includes="-I/usr/include ${modules}" \
385 - --with-trio-libs="${trio_libs}" \
386 - --with-dft-flavor="libxc+bigdft+wannier90" \
387 - --with-libxc-includes="${modules}" \
388 - --with-libxc-libs="${libs} -lxc" \
389 - --with-bigdft-includes="${modules}" \
390 - --with-bigdft-libs="${libs} -lpoissonsolver -lbigdft" \
391 - --with-wannier90="/usr/bin/wannier90.x" \
392 - --with-wannier90-includes="${modules}" \
393 - --with-wannier90-libs="${libs} -lwannier $(pkg-config --libs lapack)" \
394 - --with-dft-includes="${modules}" \
395 - --with-dft-libs="${libs} -lwannier -lpoissonsolver -lbigdft -lxc $(pkg-config --libs lapack)" \
396 - "$(use fftw && echo "--with-fft-flavor=${fft_flavor}")" \
397 - "$(use fftw && echo "--with-fft-includes=-I/usr/include")" \
398 - "$(use fftw && echo "--with-fft-libs=${fft_libs}")" \
399 - --with-timer-flavor="abinit" \
400 - FC="${MY_FC}" \
401 - CC="${MY_CC}" \
402 - CXX="${MY_CXX}" \
403 - LD="$(tc-getLD)" \
404 - FCFLAGS="${FCFLAGS:- ${FFLAGS:- -O2}} ${modules} -I/usr/include"
405 -}
406 -
407 -src_compile() {
408 -# if use mpi; then
409 -# emake multi || die
410 -# else
411 - emake || die
412 -# fi
413 -}
414 -
415 -src_test() {
416 - einfo "The tests take quite a while, on the order of 1-2 hours"
417 - einfo "on an Intel Penryn (2.5 GHz)."
418 - cd "${S}"/tests
419 - emake tests_min || ewarn "Minimal tests failed"
420 - emake tests_paw || ewarn "PAW tests failed"
421 - emake tests_gw || ewarn "GW tests failed"
422 - emake tests_gw_paw || ewarn "GW-PAW tests failed"
423 - emake tests tdft || ewarn "TDFT tests failed"
424 - emake tests_bench || ewarn "Benchmarks failed"
425 -
426 - local REPORT
427 - for REPORT in $(find . -name report); do
428 - REPORT=${REPORT#*/}
429 - elog "Parameters and unusual results for ${REPORT%%/*} tests"
430 - echo "Parameters and unusual results for ${REPORT%%/*} tests" >>tests_summary.txt
431 - while read line; do
432 - elog "${line}"
433 - echo "${line}" >>tests_summary.txt
434 - done \
435 - < <(grep -v -e succeeded -e passed ${REPORT})
436 - done
437 -
438 - local testdir
439 - find . -name "tmp-test*" -print | \
440 - while read testdir; do
441 - if [ -e summary_of_tests.tar ]; then
442 - tar rvf summary_of_tests.tar ${testdir}
443 - else tar cvf summary_of_tests.tar ${testdir}
444 - fi
445 - done
446 -
447 - elog "The full test results will be installed as summary_of_tests.tar.bz2."
448 - elog "Also a concise report tests_summary.txt is installed."
449 -}
450 -
451 -src_install() {
452 - emake DESTDIR="${D}" install || die "make install failed"
453 -
454 - if use test; then
455 - dodoc tests/tests_summary.txt || ewarn "Copying tests summary failed"
456 - dodoc tests/summary_tests.tar || ewarn "Copying tests results failed"
457 - dodoc tests/summary_of_tests.tar || ewarn "Copying tests results failed"
458 - fi
459 -
460 - dodoc KNOWN_PROBLEMS README || die "Copying doc files failed"
461 -}
462 -
463 -pkg_postinst() {
464 - if use test; then
465 - elog "The full test results will be installed as summary_tests.tar.bz2."
466 - elog "Also a concise report tests_summary.txt is installed."
467 - fi
468 -}
469
470 diff --git a/sci-physics/abinit/abinit-6.6.1.ebuild b/sci-physics/abinit/abinit-6.6.1.ebuild
471 deleted file mode 100644
472 index ed5651f..0000000
473 --- a/sci-physics/abinit/abinit-6.6.1.ebuild
474 +++ /dev/null
475 @@ -1,209 +0,0 @@
476 -# Copyright 1999-2011 Gentoo Foundation
477 -# Distributed under the terms of the GNU General Public License v2
478 -
479 -EAPI="3"
480 -
481 -inherit autotools eutils multilib toolchain-funcs
482 -
483 -DESCRIPTION="Find total energy, charge density and electronic structure using density functional theory"
484 -HOMEPAGE="http://www.abinit.org/"
485 -SRC_URI="http://ftp.abinit.org/${P}.tar.gz"
486 -
487 -LICENSE="GPL-2"
488 -SLOT="0"
489 -KEYWORDS="~amd64 ~ppc ~x86"
490 -IUSE="cuda -debug +fftw +fox gsl +hdf5 mpi +netcdf python -smp +threads -test -vdwxc"
491 -
492 -RDEPEND="=sci-libs/bigdft-1.2.0.2
493 - sci-libs/etsf_io
494 - =sci-libs/libxc-1.0[fortran]
495 - sci-physics/atompaw[libxc]
496 - fox? ( sci-libs/fox[dom,sax,wcml,wxml] )
497 - netcdf? (
498 - sci-libs/netcdf[fortran]
499 - hdf5? (
500 - sci-libs/netcdf[fortran,hdf5]
501 - )
502 - )
503 - hdf5? ( sci-libs/hdf5[fortran] )
504 - sci-libs/wannier90
505 - virtual/blas
506 - virtual/lapack
507 - gsl? ( sci-libs/gsl )
508 - fftw? (
509 - sci-libs/fftw:3.0
510 - threads? ( sci-libs/fftw:3.0[threads] )
511 - )
512 - mpi? ( virtual/mpi )
513 - python? ( dev-python/numpy )
514 - cuda? ( dev-util/nvidia-cuda-sdk )"
515 -DEPEND="${RDEPEND}
516 - dev-util/pkgconfig
517 - dev-perl/Text-Markdown"
518 -
519 -WANT_AUTOCONF="latest"
520 -WANT_AUTOMAKE="latest"
521 -
522 -S=${WORKDIR}/${P%[a-z]}
523 -
524 -pkg_setup() {
525 - # Doesn't compile with gcc-4.0, only >=4.1
526 - if [[ $(tc-getFC) == *gfortran ]]; then
527 - if [[ $(gcc-major-version) -eq 4 ]] \
528 - && [[ $(gcc-minor-version) -lt 1 ]]; then
529 - die "Requires gcc-4.1 or newer"
530 - fi
531 - fi
532 - if use smp; then
533 - ewarn "OpenMP support mostly broken. Apparently some developers \
534 - have used OpenMP semaphors !$ as comment delimiters. Not yet solved \
535 - upstream, patch incomplete."
536 - if use mpi && has_version sys-cluster/openmpi; then
537 - ewarn "Combined with openMPI, OpenMP support is especially likely to crash."
538 - fi
539 - fi
540 -}
541 -
542 -src_prepare() {
543 - epatch "${FILESDIR}"/6.2.2-change-default-directories.patch
544 - epatch "${FILESDIR}"/6.0.3-fftw.patch
545 - epatch "${FILESDIR}"/6.6.1-openmp.patch
546 - eautoreconf
547 -}
548 -
549 -src_configure() {
550 - local libs="-L/usr/$(get_libdir)"
551 - local modules="-I/usr/$(get_libdir)/finclude"
552 - local FoX_libs="${libs} -lFoX_dom -lFoX_sax -lFoX_wcml -lFoX_wxml -lFoX_common -lFoX_utils -lFoX_fsys"
553 - local trio_flavor="etsf_io"
554 - use fox && trio_flavor="${trio_flavor}+fox"
555 - use netcdf && trio_flavor="${trio_flavor}+netcdf"
556 - local netcdff_libs="-lnetcdff"
557 - use hdf5 && netcdff_libs="${netcdff_libs} -lhdf5_fortran"
558 - local fft_flavor="fftw3"
559 - local fft_libs="-lfftw3"
560 - fft_libs="${fft_libs} $(pkg-config --libs fftw3)"
561 - #fft_flavor="fftw3-threads" doesn't build for me
562 - #if use threads; then
563 - # fft_libs="${fft_libs} $(pkg-config --libs fftw3_threads)"
564 - # fft_flavor="fftw3-threads"
565 - #else
566 - # fft_libs="${fft_libs} $(pkg-config --libs fftw3)"
567 - #fi
568 - if use mpi; then
569 - MY_FC="mpif90"
570 - MY_CC="mpicc"
571 - MY_CXX="mpic++"
572 - else
573 - MY_FC="$(tc-getFC)"
574 - MY_CC="$(tc-getCC)"
575 - MY_CXX="$(tc-getCXX)"
576 - fi
577 - if use smp; then
578 - MY_FC="${MY_FC} -fopenmp"
579 - MY_CC="${MY_CC} -fopenmp"
580 - MY_CXX="${MY_CXX} -fopenmp"
581 - fi
582 - #enable bindings for ab6 header and libraries
583 - # --enable-bindings
584 - #--with-fc-version=f90 --enable-bindings \
585 - MARKDOWN=Markdown.pl econf \
586 - $(use_enable debug debug enhanced) \
587 - $(use_enable mpi) \
588 - $(use_enable mpi mpi-io) \
589 - $(use_enable smp) \
590 - $(use_enable vdwxc) \
591 - $(use_enable cuda gpu) \
592 - "$(use cuda && echo "--with-gpu-flavor=cuda-single")" \
593 - "$(use cuda && echo "--with-gpu-prefix=/opt/cuda/")" \
594 - "$(use gsl && echo "--with-math-flavor=gsl")" \
595 - "$(use gsl && echo "--with-math-incs=$(pkg-config --cflags gsl)")" \
596 - "$(use gsl && echo "--with-math-libs=$(pkg-config --libs gsl)")" \
597 - --with-linalg-flavor="atlas" \
598 - --with-linalg-libs="$(pkg-config --libs lapack)" \
599 - --with-trio-flavor="${trio_flavor}" \
600 - "$(use netcdf && echo "--with-netcdf-incs=-I/usr/include")" \
601 - "$(use netcdf && echo "--with-netcdf-libs=$(pkg-config --libs netcdf) ${netcdff_libs}")" \
602 - "$(use fox && echo "--with-fox-incs=${modules}")" \
603 - "$(use fox && echo "--with-fox-libs=${FoX_libs}")" \
604 - --with-etsf-io-incs="${modules}" \
605 - --with-etsf-io-libs="${libs} -letsf_io -letsf_io_utils -letsf_io_low_level" \
606 - --with-dft-flavor="libxc+bigdft+atompaw+wannier90" \
607 - --with-libxc-incs="${modules}" \
608 - --with-libxc-libs="${libs} -lxc" \
609 - --with-bigdft-incs="${modules}" \
610 - --with-bigdft-libs="${libs} -lpoissonsolver -lbigdft" \
611 - --with-atompaw-incs="${modules}" \
612 - --with-atompaw-libs="${libs} -latompaw" \
613 - --with-wannier90-bins="/usr/bin" \
614 - --with-wannier90-incs="${modules}" \
615 - --with-wannier90-libs="${libs} -lwannier $(pkg-config --libs lapack)" \
616 - "$(use fftw && echo "--with-fft-flavor=${fft_flavor}")" \
617 - "$(use fftw && echo "--with-fft-incs=-I/usr/include")" \
618 - "$(use fftw && echo "--with-fft-libs=${fft_libs}")" \
619 - --with-timer-flavor="abinit" \
620 - FC="${MY_FC}" \
621 - CC="${MY_CC}" \
622 - CXX="${MY_CXX}" \
623 - LD="$(tc-getLD)" \
624 - FCFLAGS="${FCFLAGS:- ${FFLAGS:- -O2}} ${modules} -I/usr/include"
625 -}
626 -
627 -src_compile() {
628 - emake || die
629 -}
630 -
631 -src_test() {
632 - einfo "The tests take quite a while, on the order of 1-2 hours"
633 - einfo "on an Intel Penryn (2.5 GHz)."
634 - cd "${S}"/tests
635 - emake tests_min || ewarn "Minimal tests failed"
636 - emake tests_paw || ewarn "PAW tests failed"
637 - emake tests_gw || ewarn "GW tests failed"
638 - emake tests_gw_paw || ewarn "GW-PAW tests failed"
639 - emake tests tdft || ewarn "TDFT tests failed"
640 - emake tests_bench || ewarn "Benchmarks failed"
641 -
642 - local REPORT
643 - for REPORT in $(find . -name report); do
644 - REPORT=${REPORT#*/}
645 - elog "Parameters and unusual results for ${REPORT%%/*} tests"
646 - echo "Parameters and unusual results for ${REPORT%%/*} tests" >>tests_summary.txt
647 - while read line; do
648 - elog "${line}"
649 - echo "${line}" >>tests_summary.txt
650 - done \
651 - < <(grep -v -e succeeded -e passed ${REPORT})
652 - done
653 -
654 - local testdir
655 - find . -name "tmp-test*" -print | \
656 - while read testdir; do
657 - if [ -e summary_of_tests.tar ]; then
658 - tar rvf summary_of_tests.tar ${testdir}
659 - else tar cvf summary_of_tests.tar ${testdir}
660 - fi
661 - done
662 -
663 - elog "The full test results will be installed as summary_of_tests.tar.bz2."
664 - elog "Also a concise report tests_summary.txt is installed."
665 -}
666 -
667 -src_install() {
668 - emake DESTDIR="${D}" install || die "make install failed"
669 -
670 - if use test; then
671 - dodoc tests/tests_summary.txt || ewarn "Copying tests summary failed"
672 - dodoc tests/summary_tests.tar || ewarn "Copying tests results failed"
673 - dodoc tests/summary_of_tests.tar || ewarn "Copying tests results failed"
674 - fi
675 -
676 - dodoc KNOWN_PROBLEMS README || die "Copying doc files failed"
677 -}
678 -
679 -pkg_postinst() {
680 - if use test; then
681 - elog "The full test results will be installed as summary_tests.tar.bz2."
682 - elog "Also a concise report tests_summary.txt is installed."
683 - fi
684 -}
685
686 diff --git a/sci-physics/abinit/files/6.0.3-libxc-flags.patch b/sci-physics/abinit/files/6.0.3-libxc-flags.patch
687 deleted file mode 100644
688 index d93642f..0000000
689 --- a/sci-physics/abinit/files/6.0.3-libxc-flags.patch
690 +++ /dev/null
691 @@ -1,29 +0,0 @@
692 -diff -Naur tmp-old/src/56_xc/m_libxc_functionals.F90 tmp-new/src/56_xc/m_libxc_functionals.F90
693 ---- src/56_xc/m_libxc_functionals.F90 2010-04-02 18:35:00.000000000 +0000
694 -+++ src/56_xc/m_libxc_functionals.F90 2010-04-07 15:06:14.000000000 +0000
695 -@@ -363,14 +363,14 @@
696 - if (funcs(i)%id == 0) cycle
697 -
698 - !Get the potential (and possibly the energy)
699 -- if (iand(xc_f90_info_provides(funcs(i)%info), XC_PROVIDES_EXC) .ne. 0) then
700 -+ if (iand(xc_f90_info_flags(funcs(i)%info), XC_FLAGS_HAVE_EXC) .ne. 0) then
701 - select case (funcs(i)%family)
702 - case (XC_FAMILY_LDA)
703 - call xc_f90_lda_exc_vxc(funcs(i)%conf,1,rhotmp(1),exctmp,vxctmp(1))
704 - case (XC_FAMILY_GGA)
705 - call xc_f90_gga_exc_vxc(funcs(i)%conf,1,rhotmp(1),sigma(1),exctmp,vxctmp(1),vsigma(1))
706 - case (XC_FAMILY_MGGA)
707 -- call xc_f90_mgga_exc_vxc(funcs(i)%conf,rhotmp(1),sigma(1),lrhotmp(1),&
708 -+ call xc_f90_mgga_exc_vxc(funcs(i)%conf,1,rhotmp(1),sigma(1),lrhotmp(1),&
709 - tautmp(1),exctmp,vxctmp(1),vsigma(1),vxclrhotmp(1),vxctautmp(1))
710 - ! write(message, '(7a)' )ch10,&
711 - ! & ' libxc_functionals_init : ERROR -',ch10,&
712 -@@ -388,7 +388,7 @@
713 - case (XC_FAMILY_GGA)
714 - call xc_f90_gga_vxc(funcs(i)%conf,1,rhotmp(1),sigma(1),vxctmp(1),vsigma(1))
715 - case (XC_FAMILY_MGGA)
716 -- call xc_f90_mgga_vxc(funcs(i)%conf,rhotmp(1),sigma(1),lrhotmp(1),&
717 -+ call xc_f90_mgga_vxc(funcs(i)%conf,1,rhotmp(1),sigma(1),lrhotmp(1),&
718 - tautmp(1),vxctmp(1),vsigma(1),vxclrhotmp(1),vxctautmp(1))
719 - end select
720 - end if
721
722 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
723 deleted file mode 100644
724 index 9ed3469..0000000
725 --- a/sci-physics/abinit/files/6.2.2-configure-fortran-calls.patch
726 +++ /dev/null
727 @@ -1,26 +0,0 @@
728 -diff -Naur abinit-6.2.2_orig/config/m4/conn-trio.m4 abinit-6.2.2/config/m4/conn-trio.m4
729 ---- config/m4/conn-trio.m4 2010-08-07 04:31:29.000000000 +0000
730 -+++ config/m4/conn-trio.m4 2010-08-11 15:03:20.000000000 +0000
731 -@@ -183,6 +183,10 @@
732 - AC_MSG_CHECKING([whether the specified HDF library works])
733 - AC_LINK_IFELSE([AC_LANG_PROGRAM([],
734 - [[
735 -- call h5fcreate_f
736 -+ use hdf5
737 -+ character (len = 42) :: filename
738 -+ integer :: mode, hferr
739 -+ integer(hid_t) :: hfid
740 -+ call h5fcreate_f(filename, mode, hfid, hferr)
741 - ]])], [abi_trio_hdf_has_libs="yes"], [abi_trio_hdf_has_libs="no"])
742 - AC_MSG_RESULT([${abi_trio_hdf_has_libs}])
743 -@@ -250,7 +251,9 @@
744 - AC_LINK_IFELSE([AC_LANG_PROGRAM([],
745 - [[
746 - use netcdf
747 -- call nf90_open
748 -+ character (len = 42) :: filename
749 -+ integer :: status, mode, ncid
750 -+ status=nf90_open(filename, mode, ncid)
751 - ]])], [abi_trio_netcdf_has_libs="yes"], [abi_trio_netcdf_has_libs="no"])
752 - AC_MSG_RESULT([${abi_trio_netcdf_has_libs}])
753 - fi
754
755 diff --git a/sci-physics/abinit/files/6.2.2-long-message.patch b/sci-physics/abinit/files/6.2.2-long-message.patch
756 deleted file mode 100644
757 index 20965c7..0000000
758 --- a/sci-physics/abinit/files/6.2.2-long-message.patch
759 +++ /dev/null
760 @@ -1,23 +0,0 @@
761 -diff -Naur abinit-6.2.2_orig/src/66_paw/indgrid.F90 abinit-6.2.2/src/66_paw/indgrid.F90
762 ---- src/66_paw/indgrid.F90 2010-08-07 04:31:29.000000000 +0000
763 -+++ src/66_paw/indgrid.F90 2010-08-11 17:16:01.000000000 +0000
764 -@@ -62,6 +62,7 @@
765 - !arrays
766 - integer :: id(3)
767 - integer,allocatable :: gc(:,:),gf(:,:)
768 -+ character(len=500) :: msg
769 -
770 - ! *************************************************************************
771 - !
772 -@@ -117,7 +118,10 @@
773 - !Check coatofin to make sure there are no zeros!
774 - do ii=1,ubound(coatofin,1)
775 - if (coatofin(ii)==0) then
776 -- MSG_ERROR('A zero was found in coatofin. Check that the fine FFT mesh is finer in each dimension than the coarse FFT mesh.')
777 -+ msg='A zero was found in coatofin.&
778 -+& Check that the fine FFT mesh is finer&
779 -+& in each dimension than the coarse FFT mesh.'
780 -+ MSG_ERROR(msg)
781 - stop
782 - end if
783 - end do
784
785 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
786 deleted file mode 100644
787 index b5d99fe..0000000
788 --- a/sci-physics/abinit/files/6.2.2-non-plugin-libs.patch
789 +++ /dev/null
790 @@ -1,260 +0,0 @@
791 -diff -Naur abinit-6.2.2_orig/config/m4/conn-fft.m4 abinit-6.2.2/config/m4/conn-fft.m4
792 ---- config/m4/conn-fft.m4 2010-08-07 04:31:29.000000000 +0000
793 -+++ config/m4/conn-fft.m4 2010-08-12 08:53:17.000000000 +0000
794 -@@ -393,6 +393,12 @@
795 - AC_DEFINE([HAVE_FFT_MPI],1,[Define to 1 if you have an optimized MPI-parallel FFT library.])
796 - fi
797 -
798 -+ dnl Transmit information
799 -+ lib_fft_fcflags="${abi_fft_fcflags}"
800 -+ lib_fft_ldflags="${abi_fft_ldflags}"
801 -+ lib_fft_incs="${abi_fft_incs}"
802 -+ lib_fft_libs="${abi_fft_libs}"
803 -+
804 - dnl Restore build environment
805 - AC_LANG_POP
806 - LIBS="${abi_saved_LIBS}"
807 -diff -Naur abinit-6.2.2_orig/src/98_main/Makefile.am abinit-6.2.2/src/98_main/Makefile.am
808 ---- src/98_main/Makefile.am 2010-08-07 04:32:39.000000000 +0000
809 -+++ src/98_main/Makefile.am 2010-08-12 08:43:42.000000000 +0000
810 -@@ -101,8 +101,10 @@
811 - LIB_ETSF_IO = @lib_etsf_io_libs@
812 - LIB_FOX = @lib_fox_libs@
813 - LIB_LIBXC = @lib_libxc_libs@
814 -+LIB_DFT = @lib_dft_libs@
815 - LIB_NETCDF = @lib_netcdf_libs@
816 - LIB_WANNIER90 = @lib_wannier90_libs@
817 -+LIB_TRIO = @lib_trio_libs@
818 -
819 - # Binary list
820 - bin_PROGRAMS = \
821 -@@ -131,10 +133,12 @@
822 - abinetcdf_CPPFLAGS = \
823 - $(AM_CPPFLAGS) \
824 - $(CPPFLAGS) \
825 -- @lib_netcdf_incs@
826 -+ @lib_netcdf_incs@ \
827 -+ @lib_trio_incs@
828 - abinetcdf_LDADD = \
829 - $(LIB_10_DEFS) \
830 - $(LIB_NETCDF) \
831 -+ $(LIB_TRIO) \
832 - $(FC_LIBS)
833 -
834 - # abinit.F90 ---> abinit
835 -@@ -144,9 +148,11 @@
836 - $(CPPFLAGS) \
837 - @lib_bigdft_incs@ \
838 - @lib_libxc_incs@ \
839 -+ @lib_dft_incs@ \
840 - @lib_fox_incs@ \
841 - @lib_etsf_io_incs@ \
842 - @lib_netcdf_incs@ \
843 -+ @lib_trio_incs@ \
844 - @lib_fft_incs@ \
845 - @lib_math_incs@ \
846 - @lib_linalg_incs@ \
847 -@@ -231,9 +237,11 @@
848 - $(LIB_WANNIER90) \
849 - $(LIB_BIGDFT) \
850 - $(LIB_LIBXC) \
851 -+ $(LIB_DFT) \
852 - $(LIB_FOX) \
853 - $(LIB_ETSF_IO) \
854 - $(LIB_NETCDF) \
855 -+ $(LIB_TRIO) \
856 - @lib_fft_libs@ \
857 - @lib_math_libs@ \
858 - @lib_linalg_libs@ \
859 -@@ -250,6 +258,7 @@
860 - $(CPPFLAGS) \
861 - @lib_bigdft_incs@ \
862 - @lib_netcdf_incs@ \
863 -+ @lib_trio_incs@ \
864 - @lib_linalg_incs@
865 - aim_FCFLAGS = \
866 - $(AM_FCFLAGS) \
867 -@@ -280,6 +289,7 @@
868 - $(LIB_01_INTERFACES_EXT) \
869 - $(LIB_BIGDFT) \
870 - $(LIB_NETCDF) \
871 -+ $(LIB_TRIO) \
872 - @lib_linalg_libs@ \
873 - $(FC_LIBS)
874 -
875 -@@ -291,6 +301,7 @@
876 - @lib_bigdft_incs@ \
877 - @lib_etsf_io_incs@ \
878 - @lib_netcdf_incs@ \
879 -+ @lib_trio_incs@ \
880 - @lib_linalg_incs@
881 - anaddb_FCFLAGS = \
882 - $(AM_FCFLAGS) \
883 -@@ -339,6 +350,7 @@
884 - $(LIB_BIGDFT) \
885 - $(LIB_ETSF_IO) \
886 - $(LIB_NETCDF) \
887 -+ $(LIB_TRIO) \
888 - @lib_linalg_libs@ \
889 - $(FC_LIBS)
890 -
891 -@@ -357,6 +369,7 @@
892 - @lib_etsf_io_incs@ \
893 - @lib_bigdft_incs@ \
894 - @lib_netcdf_incs@ \
895 -+ @lib_trio_incs@ \
896 - @lib_linalg_incs@
897 - conducti_FCFLAGS = \
898 - $(AM_FCFLAGS) \
899 -@@ -404,6 +417,7 @@
900 - $(LIB_ETSF_IO) \
901 - $(LIB_BIGDFT) \
902 - $(LIB_NETCDF) \
903 -+ $(LIB_TRIO) \
904 - @lib_linalg_libs@ \
905 - $(FC_LIBS)
906 -
907 -@@ -415,6 +429,7 @@
908 - @lib_etsf_io_incs@ \
909 - @lib_bigdft_incs@ \
910 - @lib_netcdf_incs@ \
911 -+ @lib_trio_incs@ \
912 - @lib_fft_incs@ \
913 - @lib_linalg_incs@
914 - cut3d_FCFLAGS = \
915 -@@ -465,6 +480,7 @@
916 - $(LIB_ETSF_IO) \
917 - $(LIB_BIGDFT) \
918 - $(LIB_NETCDF) \
919 -+ $(LIB_TRIO) \
920 - @lib_fft_libs@ \
921 - @lib_linalg_libs@ \
922 - $(FC_LIBS)
923 -@@ -516,6 +532,7 @@
924 - $(CPPFLAGS) \
925 - @lib_bigdft_incs@ \
926 - @lib_netcdf_incs@ \
927 -+ @lib_trio_incs@ \
928 - @lib_linalg_incs@
929 - lwf_FCFLAGS = \
930 - $(AM_FCFLAGS) \
931 -@@ -539,6 +556,7 @@
932 - $(LIB_01_INTERFACES_EXT) \
933 - $(LIB_BIGDFT) \
934 - $(LIB_NETCDF) \
935 -+ $(LIB_TRIO) \
936 - @lib_linalg_libs@ \
937 - $(FC_LIBS)
938 -
939 -@@ -550,6 +568,7 @@
940 - $(CPPFLAGS) \
941 - @lib_bigdft_incs@ \
942 - @lib_netcdf_incs@ \
943 -+ @lib_trio_incs@ \
944 - @lib_linalg_incs@
945 - macroave_FCFLAGS = \
946 - $(AM_FCFLAGS) \
947 -@@ -576,6 +595,7 @@
948 - $(LIB_01_INTERFACES_EXT) \
949 - $(LIB_BIGDFT) \
950 - $(LIB_NETCDF) \
951 -+ $(LIB_TRIO) \
952 - @lib_linalg_libs@ \
953 - $(FC_LIBS)
954 - endif
955 -@@ -588,6 +608,7 @@
956 - @lib_bigdft_incs@ \
957 - @lib_etsf_io_incs@ \
958 - @lib_netcdf_incs@ \
959 -+ @lib_trio_incs@ \
960 - @lib_linalg_incs@
961 - mrgddb_FCFLAGS = \
962 - $(AM_FCFLAGS) \
963 -@@ -635,6 +656,7 @@
964 - $(LIB_BIGDFT) \
965 - $(LIB_ETSF_IO) \
966 - $(LIB_NETCDF) \
967 -+ $(LIB_TRIO) \
968 - @lib_linalg_libs@ \
969 - $(FC_LIBS)
970 -
971 -@@ -646,6 +668,7 @@
972 - @lib_bigdft_incs@ \
973 - @lib_etsf_io_incs@ \
974 - @lib_netcdf_incs@ \
975 -+ @lib_trio_incs@ \
976 - @lib_linalg_incs@
977 - mrggkk_FCFLAGS = \
978 - $(AM_FCFLAGS) \
979 -@@ -673,6 +696,7 @@
980 - $(LIB_BIGDFT) \
981 - $(LIB_ETSF_IO) \
982 - $(LIB_NETCDF) \
983 -+ $(LIB_TRIO) \
984 - @lib_linalg_libs@ \
985 - $(FC_LIBS)
986 -
987 -@@ -684,6 +708,7 @@
988 - @lib_bigdft_incs@ \
989 - @lib_etsf_io_incs@ \
990 - @lib_netcdf_incs@ \
991 -+ @lib_trio_incs@ \
992 - @lib_linalg_incs@
993 - mrgscr_FCFLAGS = \
994 - $(AM_FCFLAGS) \
995 -@@ -733,6 +758,7 @@
996 - $(LIB_BIGDFT) \
997 - $(LIB_ETSF_IO) \
998 - $(LIB_NETCDF) \
999 -+ $(LIB_TRIO) \
1000 - @lib_linalg_libs@ \
1001 - $(FC_LIBS)
1002 -
1003 -@@ -744,6 +770,7 @@
1004 - @lib_etsf_io_incs@ \
1005 - @lib_bigdft_incs@ \
1006 - @lib_netcdf_incs@ \
1007 -+ @lib_trio_incs@ \
1008 - @lib_linalg_incs@
1009 - newsp_FCFLAGS = \
1010 - $(AM_FCFLAGS) \
1011 -@@ -791,6 +818,7 @@
1012 - $(LIB_ETSF_IO) \
1013 - $(LIB_BIGDFT) \
1014 - $(LIB_NETCDF) \
1015 -+ $(LIB_TRIO) \
1016 - @lib_linalg_libs@ \
1017 - $(FC_LIBS)
1018 -
1019 -@@ -802,6 +830,7 @@
1020 - @lib_etsf_io_incs@ \
1021 - @lib_bigdft_incs@ \
1022 - @lib_netcdf_incs@ \
1023 -+ @lib_trio_incs@ \
1024 - @lib_linalg_incs@
1025 - optic_FCFLAGS = \
1026 - $(AM_FCFLAGS) \
1027 -@@ -848,6 +877,7 @@
1028 - $(LIB_ETSF_IO) \
1029 - $(LIB_BIGDFT) \
1030 - $(LIB_NETCDF) \
1031 -+ $(LIB_TRIO) \
1032 - @lib_linalg_libs@ \
1033 - $(FC_LIBS)
1034 -
1035 -@@ -858,6 +888,7 @@
1036 - $(CPPFLAGS) \
1037 - @lib_etsf_io_incs@ \
1038 - @lib_netcdf_incs@ \
1039 -+ @lib_trio_incs@ \
1040 - @lib_linalg_incs@
1041 - ujdet_FCFLAGS = \
1042 - $(AM_FCFLAGS) \
1043 -@@ -912,6 +943,7 @@
1044 - $(LIB_01_GSL_EXT) \
1045 - $(LIB_ETSF_IO) \
1046 - $(LIB_NETCDF) \
1047 -+ $(LIB_TRIO) \
1048 - @lib_linalg_libs@ \
1049 - $(FC_LIBS)
1050 -
1051
1052 diff --git a/sci-physics/abinit/files/6.4.2-openmp.patch b/sci-physics/abinit/files/6.4.2-openmp.patch
1053 deleted file mode 100644
1054 index e3e882e..0000000
1055 --- a/sci-physics/abinit/files/6.4.2-openmp.patch
1056 +++ /dev/null
1057 @@ -1,3096 +0,0 @@
1058 -diff -Naur abinit-6.4.2.bak/src/10_defs/defs_datatypes.F90 abinit-6.4.2/src/10_defs/defs_datatypes.F90
1059 ---- src/10_defs/defs_datatypes.F90 2010-12-01 19:47:18.000000000 +0000
1060 -+++ src/10_defs/defs_datatypes.F90 2011-01-05 09:39:41.000000000 +0000
1061 -@@ -169,10 +169,10 @@
1062 - integer :: nsppol ! number of spin-polarizations
1063 - integer :: occopt ! Occupation option, see input variable.
1064 -
1065 -- !$integer :: kptopt
1066 -- !$real(dp) :: tolwfr
1067 -- !$real(dp),pointer :: resid(mband*nkpt*nsppol)
1068 -- !$resid(mband*nkpt*nsppol)=residuals (hartree**2)
1069 -+ !%integer :: kptopt
1070 -+ !%real(dp) :: tolwfr
1071 -+ !%real(dp),pointer :: resid(mband*nkpt*nsppol)
1072 -+ !%resid(mband*nkpt*nsppol)=residuals (hartree**2)
1073 -
1074 - real(dp) :: entropy ! Entropy associated with the smearing (adimensional)
1075 - real(dp) :: fermie ! Fermi energy
1076 -@@ -278,7 +278,7 @@
1077 -
1078 - type coeff2_type
1079 -
1080 -- !$integer :: size(2)
1081 -+ !%integer :: size(2)
1082 - real(dp), pointer :: value(:,:) !SET2NULL
1083 -
1084 - end type coeff2_type
1085 -@@ -295,7 +295,7 @@
1086 -
1087 - type coeff2c_type
1088 -
1089 -- !$integer :: size(2)
1090 -+ !%integer :: size(2)
1091 - complex(dpc), pointer :: value(:,:) !SET2NULL
1092 -
1093 - end type coeff2c_type
1094 -@@ -312,7 +312,7 @@
1095 -
1096 - type coeff3_type
1097 -
1098 -- !$integer :: size(3)
1099 -+ !%integer :: size(3)
1100 - real(dp), pointer :: value(:,:,:) !SET2NULL
1101 -
1102 - end type coeff3_type
1103 -@@ -329,7 +329,7 @@
1104 -
1105 - type coeff4_type
1106 -
1107 -- !$integer :: size(4)
1108 -+ !%integer :: size(4)
1109 - real(dp), pointer :: value(:,:,:,:) !SET2NULL
1110 -
1111 - end type coeff4_type
1112 -@@ -348,7 +348,7 @@
1113 -
1114 - type coeff5_type
1115 -
1116 -- !$integer :: size(5)
1117 -+ !%integer :: size(5)
1118 - real(dp), pointer :: value(:,:,:,:,:) !SET2NULL
1119 -
1120 - end type coeff5_type
1121 -@@ -1757,7 +1757,7 @@
1122 - integer :: cplex_dij
1123 - ! cplex=1 if dij are real, 2 if they are complex
1124 -
1125 -- !$integer :: has_dijexxcore
1126 -+ !%integer :: has_dijexxcore
1127 - ! 1 if dijexxcore is allocated
1128 - ! 2 if dijexxcore is already computed
1129 -
1130 -@@ -1839,7 +1839,7 @@
1131 - ! dij(:,:,3) contains Dij^up-dn (only if nspinor=2)
1132 - ! dij(:,:,4) contains Dij^dn-up (only if nspinor=2)
1133 -
1134 -- !$real(dp),pointer :: dijexxcore(:,:)
1135 -+ !%real(dp),pointer :: dijexxcore(:,:)
1136 - ! dijexxcore(cplex_dij*lmn2_size,ndij)
1137 - ! Onsite matrix elements of the Fock operator generated by core electrons
1138 -
1139 -@@ -2551,21 +2551,21 @@
1140 -
1141 - ! All the energies are in Hartree, obtained "per unit cell".
1142 - type(energies_type) :: energies
1143 --!!$ real(dp) :: eei ! local pseudopotential energy (Hartree)
1144 --!!$ real(dp) :: eeig ! sum of eigenvalue energy (Hartree)
1145 --!!$ real(dp) :: eew ! Ewald energy (Hartree)
1146 --!!$ real(dp) :: ehart ! Hartree part of total energy (Hartree)
1147 --!!$ real(dp) :: eii ! pseudopotential core-core energy
1148 --!!$ real(dp) :: ek ! kinetic energy (Hartree)
1149 --!!$ real(dp) :: enefield ! the term of the energy functional that depends
1150 --!!$ ! explicitely on the electric field
1151 --!!$ ! enefield = -ucvol*E*P
1152 --!!$ real(dp) :: enl ! nonlocal pseudopotential energy (Hartree)
1153 -+!!% real(dp) :: eei ! local pseudopotential energy (Hartree)
1154 -+!!% real(dp) :: eeig ! sum of eigenvalue energy (Hartree)
1155 -+!!% real(dp) :: eew ! Ewald energy (Hartree)
1156 -+!!% real(dp) :: ehart ! Hartree part of total energy (Hartree)
1157 -+!!% real(dp) :: eii ! pseudopotential core-core energy
1158 -+!!% real(dp) :: ek ! kinetic energy (Hartree)
1159 -+!!% real(dp) :: enefield ! the term of the energy functional that depends
1160 -+!!% ! explicitely on the electric field
1161 -+!!% ! enefield = -ucvol*E*P
1162 -+!!% real(dp) :: enl ! nonlocal pseudopotential energy (Hartree)
1163 - real(dp) :: entropy ! entropy (Hartree)
1164 --!!$ real(dp) :: enxc ! exchange-correlation energy (Hartree)
1165 --!!$ real(dp) :: enxcdc ! exchange-correlation double-counting energy (Hartree)
1166 --!!$ real(dp) :: epaw ! PAW spherical energy (Hartree)
1167 --!!$ real(dp) :: epawdc ! PAW spherical double-counting energy (Hartree)
1168 -+!!% real(dp) :: enxc ! exchange-correlation energy (Hartree)
1169 -+!!% real(dp) :: enxcdc ! exchange-correlation double-counting energy (Hartree)
1170 -+!!% real(dp) :: epaw ! PAW spherical energy (Hartree)
1171 -+!!% real(dp) :: epawdc ! PAW spherical double-counting energy (Hartree)
1172 - real(dp) :: etotal ! total energy (Hartree)
1173 - ! for fixed occupation numbers (occopt==0,1,or 2):
1174 - ! etotal=ek+ehart+enxc+eei+eew+eii+enl+PAW_spherical_part
1175 -@@ -3009,7 +3009,7 @@
1176 - ! WARNING : if you modify this datatype, please check there there is no creation/destruction/copy routine,
1177 - ! declared in another part of ABINIT, that might need to take into account your modification.
1178 -
1179 -- integer :: stat = 1 !$=JPT_ISPOINTER =1
1180 -+ integer :: stat = 1 !%=JPT_ISPOINTER =1
1181 - complex(gwpc),pointer :: datum(:,:) SET2NULL
1182 - end type Jpt_gwpc_2D
1183 - !!***
1184 -@@ -3034,7 +3034,7 @@
1185 - ! WARNING : if you modify this datatype, please check there there is no creation/destruction routine,
1186 - ! declared in another part of ABINIT, that might need to take into account your modification.
1187 -
1188 -- integer :: stat = 1 !$=JPT_ISPOINTER =1
1189 -+ integer :: stat = 1 !%=JPT_ISPOINTER =1
1190 - complex(gwpc),pointer :: datum(:,:,:) SET2NULL
1191 - end type Jpt_gwpc_3D
1192 - !!***
1193 -@@ -3071,8 +3071,8 @@
1194 - logical :: save_memory_devel=.FALSE.
1195 -
1196 - ! Use in-place storage of the PPm parameters, should be FALSE for non-developers.
1197 -- !$real(dp) :: zcut
1198 -- !$real(dp),pointer :: qibz(:,:)
1199 -+ !%real(dp) :: zcut
1200 -+ !%real(dp),pointer :: qibz(:,:)
1201 -
1202 - !logical :: has_inversion
1203 - !logical :: has_time_reversal
1204 -diff -Naur abinit-6.4.2.bak/src/10_defs/defs_fftdata.F90 abinit-6.4.2/src/10_defs/defs_fftdata.F90
1205 ---- src/10_defs/defs_fftdata.F90 2010-12-01 19:47:18.000000000 +0000
1206 -+++ src/10_defs/defs_fftdata.F90 2011-01-05 09:40:20.000000000 +0000
1207 -@@ -181,8 +181,8 @@
1208 - write(msg,'(4a,i8)')ch10,&
1209 - & ' size_goed_fft : BUG-',ch10,&
1210 - & ' nbest = ',nbest
1211 -- !$call wrtout(std_out,msg,'COLL')
1212 -- !$call leave_new('COLL')
1213 -+ !%call wrtout(std_out,msg,'COLL')
1214 -+ !%call leave_new('COLL')
1215 - write(std_out,*)msg
1216 - STOP
1217 - end if
1218 -@@ -192,8 +192,8 @@
1219 - & ' size_goed_fft : ERROR-',ch10,&
1220 - & ' nbest = ',nbest,ch10,&
1221 - & ' is larger than any allowable FFT'
1222 -- !$call wrtout(std_out,msg,'COLL')
1223 -- !$call leave_new('COLL')
1224 -+ !%call wrtout(std_out,msg,'COLL')
1225 -+ !%call leave_new('COLL')
1226 - write(std_out,*)msg
1227 - STOP
1228 - end if
1229 -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
1230 ---- src/12_hide_mpi/m_xmpi.F90 2010-12-01 19:47:18.000000000 +0000
1231 -+++ src/12_hide_mpi/m_xmpi.F90 2011-01-05 09:02:11.000000000 +0000
1232 -@@ -86,7 +86,7 @@
1233 - integer :: nprocs = xmpi_undefined
1234 - ! The number of processors in the communicator.
1235 -
1236 -- !$integer,pointer :: ranks_in_world(:) SET2NULL
1237 -+ !%integer,pointer :: ranks_in_world(:) SET2NULL
1238 - ! The MPI ranks in MPI_COMM_WORLD of the nodes beloging to the communicator.
1239 -
1240 - end type mpicomm_t
1241 -diff -Naur abinit-6.4.2.bak/src/18_timing/m_timer.F90 abinit-6.4.2/src/18_timing/m_timer.F90
1242 ---- src/18_timing/m_timer.F90 2010-12-01 19:47:18.000000000 +0000
1243 -+++ src/18_timing/m_timer.F90 2011-01-05 17:23:06.000000000 +0000
1244 -@@ -21,7 +21,7 @@
1245 - MODULE m_timer
1246 -
1247 - use defs_basis
1248 -- !$use m_errors TODO move m_timer to a lower level
1249 -+ !%use m_errors TODO move m_timer to a lower level
1250 -
1251 - implicit none
1252 -
1253 -@@ -261,7 +261,7 @@
1254 - CASE DEFAULT
1255 - write(std_out,'(a,i0)')" Wrong value for topt: ",topt
1256 - stop
1257 -- !$MSG_ERROR(msg)
1258 -+ !%MSG_ERROR(msg)
1259 - END SELECT
1260 -
1261 - end subroutine timing
1262 -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
1263 ---- src/27_toolbox_oop/m_errors.F90 2010-12-01 19:47:18.000000000 +0000
1264 -+++ src/27_toolbox_oop/m_errors.F90 2011-01-05 17:33:42.000000000 +0000
1265 -@@ -748,7 +748,7 @@
1266 - & TRIM(my_msg),toupper(level),ch10,&
1267 - & TRIM(message)
1268 - call wrtout(std_out,sbuf,mode_paral)
1269 -- !$call dump_config(std_out)
1270 -+ !%call dump_config(std_out)
1271 - call dump_config_fake()
1272 - call leave_new('COLL')
1273 -
1274 -diff -Naur abinit-6.4.2.bak/src/32_util/m_radmesh.F90 abinit-6.4.2/src/32_util/m_radmesh.F90
1275 ---- src/32_util/m_radmesh.F90 2010-12-01 19:47:18.000000000 +0000
1276 -+++ src/32_util/m_radmesh.F90 2011-01-05 08:51:17.000000000 +0000
1277 -@@ -451,7 +451,7 @@
1278 - !gg = zero
1279 -
1280 - int_meshsz=Pawrad%int_meshsz
1281 -- !$int_meshsz=Pawrad%mesh_size
1282 -+ !%int_meshsz=Pawrad%mesh_size
1283 -
1284 - ! the line below requires hh as work array.
1285 - hh = ff2
1286 -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
1287 ---- src/32_util/m_special_funcs.F90 2010-12-01 19:47:18.000000000 +0000
1288 -+++ src/32_util/m_special_funcs.F90 2011-01-05 08:51:59.000000000 +0000
1289 -@@ -232,7 +232,7 @@
1290 -
1291 - r=SQRT(kcart(1)**2+kcart(2)**2+kcart(3)**2)
1292 - if (r<PPAD) r=r+PPAD
1293 -- !$if (r<tol10) RETURN
1294 -+ !%if (r<tol10) RETURN
1295 -
1296 - rxy=SQRT(kcart(1)**2+kcart(2)**2)
1297 - if (rxy<PPAD)rxy=r+PPAD
1298 -@@ -391,7 +391,7 @@
1299 -
1300 - r=SQRT(kcart(1)**2+kcart(2)**2+kcart(3)**2)
1301 - if (r<PPAD) r=r+PPAD
1302 -- !$if (r<tol10) RETURN
1303 -+ !%if (r<tol10) RETURN
1304 -
1305 - rxy=SQRT(kcart(1)**2+kcart(2)**2)
1306 - if (rxy<PPAD) rxy=r+PPAD
1307 -diff -Naur abinit-6.4.2.bak/src/42_geometry/m_crystal.F90 abinit-6.4.2/src/42_geometry/m_crystal.F90
1308 ---- src/42_geometry/m_crystal.F90 2010-12-01 19:47:18.000000000 +0000
1309 -+++ src/42_geometry/m_crystal.F90 2011-01-05 09:25:18.000000000 +0000
1310 -@@ -76,7 +76,7 @@
1311 - integer :: ntypat
1312 - ! Number of type of atoms
1313 -
1314 -- !$integer :: ntypalch,ntyppure
1315 -+ !%integer :: ntypalch,ntyppure
1316 -
1317 - integer :: npsp
1318 - ! No. of pseudopotentials
1319 -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
1320 ---- src/43_ptgroups/m_defs_ptgroups.F90 2010-12-01 19:47:18.000000000 +0000
1321 -+++ src/43_ptgroups/m_defs_ptgroups.F90 2011-01-05 16:44:37.000000000 +0000
1322 -@@ -147,11 +147,11 @@
1323 - ! NB: operations are referred to the standard coordinate system.
1324 - ! Page 815-816 of International Tables for crystallography Vol.A.
1325 -
1326 -- !$integer,pointer :: symafm(:) SET2NULL
1327 -+ !%integer,pointer :: symafm(:) SET2NULL
1328 - ! symafm(nsym)
1329 - ! AFM part of the symmetry operation
1330 -
1331 -- !$real(dp),pointer :: tnons(:,:) SET2NULL
1332 -+ !%real(dp),pointer :: tnons(:,:) SET2NULL
1333 - ! tnons(3,nsym)
1334 - ! fractional translations.
1335 -
1336 -diff -Naur abinit-6.4.2.bak/src/43_ptgroups/m_ptgroups.F90 abinit-6.4.2/src/43_ptgroups/m_ptgroups.F90
1337 ---- src/43_ptgroups/m_ptgroups.F90 2010-12-01 19:47:18.000000000 +0000
1338 -+++ src/43_ptgroups/m_ptgroups.F90 2011-01-05 16:45:10.000000000 +0000
1339 -@@ -894,7 +894,7 @@
1340 - read(unt,*,ERR=10) nirreps_k
1341 - ABI_CHECK(Gk%nclass == nirreps_k,"Gk%nclass /= nirreps_k")
1342 -
1343 -- !$$ allocate(Gk%class_names(Gk%nclass))
1344 -+ !%$$ allocate(Gk%class_names(Gk%nclass))
1345 - allocate(Gk%Irreps(nirreps_k))
1346 -
1347 - do irp=1,nirreps_k
1348 -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
1349 ---- src/49_gw_toolbox_oop/m_bs_defs.F90 2010-12-01 19:47:18.000000000 +0000
1350 -+++ src/49_gw_toolbox_oop/m_bs_defs.F90 2011-01-05 16:37:04.000000000 +0000
1351 -@@ -43,23 +43,23 @@
1352 - !!***
1353 -
1354 - ! Approximation for the excitonic Hamiltonian
1355 --!$ integer,public,parameter :: BSE_HRPA = 1
1356 --!$ integer,public,parameter :: BSE_HGW = 2
1357 --!$ integer,public,parameter :: BSE_HEXC = 3
1358 -+!% integer,public,parameter :: BSE_HRPA = 1
1359 -+!% integer,public,parameter :: BSE_HGW = 2
1360 -+!% integer,public,parameter :: BSE_HEXC = 3
1361 -
1362 - ! Treatment of the resontant and coupling blocks of the Hamiltonian
1363 --!$? integer,public,parameter :: BSE_HRPA = 1
1364 --!$? integer,public,parameter :: BSE_HGW = 2
1365 -+!%? integer,public,parameter :: BSE_HRPA = 1
1366 -+!%? integer,public,parameter :: BSE_HGW = 2
1367 -
1368 --!$
1369 --!$! Treatment of W(G1,G2)
1370 --!$ integer,public,parameter :: BSE_WGG_DIAGONAL=1
1371 --!$ integer,public,parameter :: BSE_WGG_FULL =2
1372 --
1373 --!$! Treatment of W(omega)
1374 --!$ integer,public,parameter :: BSE_WFREQ_STATIC=1
1375 --!$ integer,public,parameter :: BSE_WFREQ_PPM =2
1376 --!$ integer,public,parameter :: BSE_WFREQ_FULL =2
1377 -+!%
1378 -+!%! Treatment of W(G1,G2)
1379 -+!% integer,public,parameter :: BSE_WGG_DIAGONAL=1
1380 -+!% integer,public,parameter :: BSE_WGG_FULL =2
1381 -+
1382 -+!%! Treatment of W(omega)
1383 -+!% integer,public,parameter :: BSE_WFREQ_STATIC=1
1384 -+!% integer,public,parameter :: BSE_WFREQ_PPM =2
1385 -+!% integer,public,parameter :: BSE_WFREQ_FULL =2
1386 -
1387 - !----------------------------------------------------------------------
1388 -
1389 -@@ -85,7 +85,7 @@
1390 - logical :: wdiag ! Use diagonal approximation for W.
1391 - logical :: wfull ! Use full inverse dielectric matrix.
1392 - logical :: use_haydock ! Use haydock iterative method to calculate epsilon.
1393 -- !$logical :: use_cg ! Use conjugate gradient minimization techniques to calculate the eigenstates.
1394 -+ !%$logical :: use_cg ! Use conjugate gradient minimization techniques to calculate the eigenstates.
1395 - logical :: gwterm ! Add QP corrections to the band structure either with scissors or GW file.
1396 - logical :: exchangeterm ! Include exchange terms in the BS Hamiltonian.
1397 - logical :: coulombterm ! Include W term in the BS Hamiltonian.
1398 -@@ -99,7 +99,7 @@
1399 -
1400 - integer :: npweps ! No. of G in the Screening.
1401 - integer :: npwwfn ! No. of G for wave functions.
1402 -- !$integer :: npwx ! No. of G for the exchange part.
1403 -+ !%integer :: npwx ! No. of G for the exchange part.
1404 - integer :: npwvec ! MAX between npwwfn and npweps
1405 - integer :: nsh ! Number of shells corresponding to npwvec=MAX(npwwfn,npweps)
1406 - integer :: nbnds ! Total number of bands considered.
1407 -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
1408 ---- src/51_manage_mpi/mpi_enreg_tools.F90 2010-12-01 19:47:18.000000000 +0000
1409 -+++ src/51_manage_mpi/mpi_enreg_tools.F90 2011-01-05 08:53:13.000000000 +0000
1410 -@@ -675,8 +675,8 @@
1411 - MSG_ERROR(" %paral_compil_kpt/=1")
1412 - end if
1413 -
1414 --!$spaceComm=MPI_enreg%spaceComm
1415 --!$nprocs = xcomm_size(spaceComm)
1416 -+!%spaceComm=MPI_enreg%spaceComm
1417 -+!%nprocs = xcomm_size(spaceComm)
1418 - nprocs = MPI_enreg%nproc
1419 - my_rank = MPI_enreg%me
1420 -
1421 -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
1422 ---- src/52_fft_mpi_noabirule/accrho.F90 2010-12-01 19:47:18.000000000 +0000
1423 -+++ src/52_fft_mpi_noabirule/accrho.F90 2011-01-06 16:08:27.000000000 +0000
1424 -@@ -91,14 +91,14 @@
1425 - integer unused
1426 - unused=0
1427 - ! *************************************************************************
1428 --!$ interface
1429 --!$ integer ( kind=4 ) function omp_get_num_threads ( )
1430 --!$ end function omp_get_num_threads
1431 --!$ end interface
1432 --!$ interface
1433 --!$ integer ( kind=4 ) function omp_get_thread_num ( )
1434 --!$ end function omp_get_thread_num
1435 --!$ end interface
1436 -+!% interface
1437 -+!% integer ( kind=4 ) function omp_get_num_threads ( )
1438 -+!% end function omp_get_num_threads
1439 -+!% end interface
1440 -+!% interface
1441 -+!% integer ( kind=4 ) function omp_get_thread_num ( )
1442 -+!% end function omp_get_thread_num
1443 -+!% end interface
1444 -
1445 - write(6,*)' accrho : enter '
1446 -
1447 -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
1448 ---- src/52_fft_mpi_noabirule/applypot.F90 2010-12-01 19:47:18.000000000 +0000
1449 -+++ src/52_fft_mpi_noabirule/applypot.F90 2011-01-06 16:09:25.000000000 +0000
1450 -@@ -91,14 +91,14 @@
1451 - integer unused
1452 - unused=0
1453 -
1454 --!$ interface
1455 --!$ integer ( kind=4 ) function omp_get_num_threads ( )
1456 --!$ end function omp_get_num_threads
1457 --!$ end interface
1458 --!$ interface
1459 --!$ integer ( kind=4 ) function omp_get_thread_num ( )
1460 --!$ end function omp_get_thread_num
1461 --!$ end interface
1462 -+!% interface
1463 -+!% integer ( kind=4 ) function omp_get_num_threads ( )
1464 -+!% end function omp_get_num_threads
1465 -+!% end interface
1466 -+!% interface
1467 -+!% integer ( kind=4 ) function omp_get_thread_num ( )
1468 -+!% end function omp_get_thread_num
1469 -+!% end interface
1470 -
1471 - write(6,*)' applypot : enter '
1472 -
1473 -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
1474 ---- src/52_fft_mpi_noabirule/back.F90 2010-12-01 19:47:18.000000000 +0000
1475 -+++ src/52_fft_mpi_noabirule/back.F90 2011-01-07 14:21:34.000000000 +0000
1476 -@@ -90,14 +90,14 @@
1477 - #endif
1478 - ! *************************************************************************
1479 -
1480 --!$ interface
1481 --!$ integer ( kind=4 ) function omp_get_num_threads ( )
1482 --!$ end function omp_get_num_threads
1483 --!$ end interface
1484 --!$ interface
1485 --!$ integer ( kind=4 ) function omp_get_thread_num ( )
1486 --!$ end function omp_get_thread_num
1487 --!$ end interface
1488 -+!% interface
1489 -+!% integer ( kind=4 ) function omp_get_num_threads ( )
1490 -+!% end function omp_get_num_threads
1491 -+!% end interface
1492 -+!% interface
1493 -+!% integer ( kind=4 ) function omp_get_thread_num ( )
1494 -+!% end function omp_get_thread_num
1495 -+!% end interface
1496 -
1497 - !DEBUG
1498 - ! write(6,*)' back : enter '
1499 -@@ -121,7 +121,8 @@
1500 -
1501 - lock=0
1502 - !$omp parallel default(private) &
1503 --!$omp shared(ndat,n1,n2,n3,nd1,nd2,nd3,nd2proc,nd3proc,mpi_enreg%me_fft,mpi_enreg%nproc_fft,ncache,zr,zf,lock,icplex)
1504 -+!%omp shared(ndat,n1,n2,n3,nd1,nd2,nd3,nd2proc,nd3proc,mpi_enreg%me_fft,mpi_enreg%nproc_fft,ncache,zr,zf,lock,icplex)
1505 -+!$omp shared(ndat,n1,n2,n3,nd1,nd2,nd3,nd2proc,nd3proc,mpi_enreg,ncache,zr,zf,lock,icplex)
1506 -
1507 - iam=0
1508 - npr=1
1509 -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
1510 ---- src/52_fft_mpi_noabirule/back_wf.F90 2010-12-01 19:47:18.000000000 +0000
1511 -+++ src/52_fft_mpi_noabirule/back_wf.F90 2011-01-07 14:18:09.000000000 +0000
1512 -@@ -98,14 +98,14 @@
1513 - real(KIND=8) :: tsec(2)
1514 - type(MPI_type),intent(inout) :: mpi_enreg
1515 - integer :: old_paral_level
1516 --!$ interface
1517 --!$ integer ( kind=4 ) function omp_get_num_threads ( )
1518 --!$ end function omp_get_num_threads
1519 --!$ end interface
1520 --!$ interface
1521 --!$ integer ( kind=4 ) function omp_get_thread_num ( )
1522 --!$ end function omp_get_thread_num
1523 --!$ end interface
1524 -+!% interface
1525 -+!% integer ( kind=4 ) function omp_get_num_threads ( )
1526 -+!% end function omp_get_num_threads
1527 -+!% end interface
1528 -+!% interface
1529 -+!% integer ( kind=4 ) function omp_get_thread_num ( )
1530 -+!% end function omp_get_thread_num
1531 -+!% end interface
1532 -
1533 - if(.false.)write(6,*)iproc,nproc
1534 - if(mpi_enreg%mode_para=='b') ioption=1
1535 -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
1536 ---- src/52_fft_mpi_noabirule/forw.F90 2010-12-01 19:47:18.000000000 +0000
1537 -+++ src/52_fft_mpi_noabirule/forw.F90 2011-01-07 14:21:49.000000000 +0000
1538 -@@ -95,14 +95,14 @@
1539 - integer :: old_paral_level
1540 - #endif
1541 - ! *************************************************************************
1542 --!$ interface
1543 --!$ integer ( kind=4 ) function omp_get_num_threads ( )
1544 --!$ end function omp_get_num_threads
1545 --!$ end interface
1546 --!$ interface
1547 --!$ integer ( kind=4 ) function omp_get_thread_num ( )
1548 --!$ end function omp_get_thread_num
1549 --!$ end interface
1550 -+!% interface
1551 -+!% integer ( kind=4 ) function omp_get_num_threads ( )
1552 -+!% end function omp_get_num_threads
1553 -+!% end interface
1554 -+!% interface
1555 -+!% integer ( kind=4 ) function omp_get_thread_num ( )
1556 -+!% end function omp_get_thread_num
1557 -+!% end interface
1558 -
1559 - !DEBUG
1560 - ! write(6,*)' forw : enter '
1561 -@@ -134,7 +134,8 @@
1562 -
1563 - lock=0
1564 - !$omp parallel default(private) &
1565 --!$omp shared(ndat,n1,n2,n3,nd1,nd2,nd3,nd2proc,nd3proc,mpi_enreg%me_fft,mpi_enreg%nproc_fft,ncache,zr,zf,lock,icplex)
1566 -+!%omp shared(ndat,n1,n2,n3,nd1,nd2,nd3,nd2proc,nd3proc,mpi_enreg%me_fft,mpi_enreg%nproc_fft,ncache,zr,zf,lock,icplex)
1567 -+!$omp shared(ndat,n1,n2,n3,nd1,nd2,nd3,nd2proc,nd3proc,mpi_enreg,ncache,zr,zf,lock,icplex)
1568 -
1569 - iam=0
1570 - npr=1
1571 -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
1572 ---- src/52_fft_mpi_noabirule/forw_wf.F90 2010-12-01 19:47:18.000000000 +0000
1573 -+++ src/52_fft_mpi_noabirule/forw_wf.F90 2011-01-07 14:18:58.000000000 +0000
1574 -@@ -98,14 +98,14 @@
1575 - type(MPI_type),intent(inout) :: mpi_enreg
1576 - integer :: old_paral_level
1577 -
1578 --!$ interface
1579 --!$ integer ( kind=4 ) function omp_get_num_threads ( )
1580 --!$ end function omp_get_num_threads
1581 --!$ end interface
1582 --!$ interface
1583 --!$ integer ( kind=4 ) function omp_get_thread_num ( )
1584 --!$ end function omp_get_thread_num
1585 --!$ end interface
1586 -+!% interface
1587 -+!% integer ( kind=4 ) function omp_get_num_threads ( )
1588 -+!% end function omp_get_num_threads
1589 -+!% end interface
1590 -+!% interface
1591 -+!% integer ( kind=4 ) function omp_get_thread_num ( )
1592 -+!% end function omp_get_thread_num
1593 -+!% end interface
1594 -
1595 - if(mpi_enreg%mode_para=='b') ioption=1
1596 - ! call timab(542,1,tsec)
1597 -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
1598 ---- src/52_fft_mpi_noabirule/m_fftw3.F90 2010-12-01 19:47:18.000000000 +0000
1599 -+++ src/52_fft_mpi_noabirule/m_fftw3.F90 2011-01-05 09:58:51.000000000 +0000
1600 -@@ -156,7 +156,7 @@
1601 - !integer,pointer :: n(:) rank
1602 - !integer,pointer :: inembed(:) rank
1603 - !integer,pointer :: onembed(:) rank
1604 -- !$integer(C_INT) :: alignment(2) ! The alignment of the arrays used to costruct the plan.
1605 -+ !%integer(C_INT) :: alignment(2) ! The alignment of the arrays used to costruct the plan.
1606 - ! needed because we cannot use fftw_malloc.
1607 - integer :: ndiv(3)=-1 ! The number of FFT divisions.
1608 - end type fftw_plan_type
1609 -@@ -1022,10 +1022,10 @@
1610 - allocate(ff(nx*ny*nz*ndat),gg(2,nx*ny*nz*ndat))
1611 -
1612 - ! These calls seem to make the code stuck if we link against MKL
1613 -- !$call fftw3_r2c_op(nx,ny,nz,nx,ny,nz,ndat,ff,gg,fftw_flags=wisdom_flag)
1614 -- !$call fftw3_c2r_op(nx,ny,nz,nx,ny,nz,ndat,ff,gg,fftw_flags=wisdom_flag)
1615 -- !$write(msg,'(a)')" fftw3_c2r_op done"
1616 -- !$call wrtout(std_out,msg,"COLL")
1617 -+ !%call fftw3_r2c_op(nx,ny,nz,nx,ny,nz,ndat,ff,gg,fftw_flags=wisdom_flag)
1618 -+ !%call fftw3_c2r_op(nx,ny,nz,nx,ny,nz,ndat,ff,gg,fftw_flags=wisdom_flag)
1619 -+ !%write(msg,'(a)')" fftw3_c2r_op done"
1620 -+ !%call wrtout(std_out,msg,"COLL")
1621 -
1622 - deallocate(ff,gg)
1623 -
1624 -diff -Naur abinit-6.4.2.bak/src/53_abiutil/m_abilasi.F90 abinit-6.4.2/src/53_abiutil/m_abilasi.F90
1625 ---- src/53_abiutil/m_abilasi.F90 2010-12-01 19:47:18.000000000 +0000
1626 -+++ src/53_abiutil/m_abilasi.F90 2011-01-05 17:36:48.000000000 +0000
1627 -@@ -567,36 +567,36 @@
1628 -
1629 - MSG_PERS_ERROR("Not coded yet")
1630 -
1631 --!$$ call init_scalapack(Slk_processor,comm)
1632 --!$$ istwf_k=1
1633 --!$$
1634 --!$$ ! Initialize and fill Scalapack matrix from the global one.
1635 --!$$ tbloc=SLK_BLOCK_SIZE
1636 --!$$ call init_matrix_scalapack(Slk_mat,n,n,Slk_processor,istwf_k,tbloc=tbloc)
1637 --!$$
1638 --!$$ write(msg,'(2(a,i0))')" Using scaLAPACK version with nprocs= ",nprocs,"; block size= ",tbloc
1639 --!$$ call wrtout(std_out,msg,"PERS")
1640 --!$$
1641 --!$$ call slk_matrix_from_global_dpc_2D(Slk_mat,uplo,a)
1642 --!$$
1643 --!$$ want_eigenvectors = starts_with(jobz,(/"V","v"/))
1644 --!$$ if (want_eigenvectors) then ! Initialize the distributed vectors.
1645 --!$$ call init_matrix_scalapack(Slk_vec,n,n,Slk_processor,istwf_k,tbloc=tbloc)
1646 --!$$ end if
1647 --!$$
1648 --!$$ ! Solve the problem with scaLAPACK.
1649 --!$$ call slk_pzheev(jobz,uplo,Slk_mat,Slk_vec,w)
1650 --!$$
1651 --!$$ call destruction_matrix_scalapack(Slk_mat)
1652 --!$$
1653 --!$$ if (want_eigenvectors) then ! A is overwritten with the eigenvectors
1654 --!$$ a = czero
1655 --!$$ call slk_matrix_to_global_dpc_2D(Slk_vec,"All",a) ! Fill the entries calculated by this node.
1656 --!$$ call destruction_matrix_scalapack(Slk_vec)
1657 --!$$ call xsum_mpi(a,comm,ierr) ! Fill the remaing entries of the global matrix
1658 --!$$ end if
1659 --!$$
1660 --!$$ call end_scalapack(Slk_processor)
1661 -+!%% call init_scalapack(Slk_processor,comm)
1662 -+!%% istwf_k=1
1663 -+!%%
1664 -+!%% ! Initialize and fill Scalapack matrix from the global one.
1665 -+!%% tbloc=SLK_BLOCK_SIZE
1666 -+!%% call init_matrix_scalapack(Slk_mat,n,n,Slk_processor,istwf_k,tbloc=tbloc)
1667 -+!%%
1668 -+!%% write(msg,'(2(a,i0))')" Using scaLAPACK version with nprocs= ",nprocs,"; block size= ",tbloc
1669 -+!%% call wrtout(std_out,msg,"PERS")
1670 -+!%%
1671 -+!%% call slk_matrix_from_global_dpc_2D(Slk_mat,uplo,a)
1672 -+!%%
1673 -+!%% want_eigenvectors = starts_with(jobz,(/"V","v"/))
1674 -+!%% if (want_eigenvectors) then ! Initialize the distributed vectors.
1675 -+!%% call init_matrix_scalapack(Slk_vec,n,n,Slk_processor,istwf_k,tbloc=tbloc)
1676 -+!%% end if
1677 -+!%%
1678 -+!%% ! Solve the problem with scaLAPACK.
1679 -+!%% call slk_pzheev(jobz,uplo,Slk_mat,Slk_vec,w)
1680 -+!%%
1681 -+!%% call destruction_matrix_scalapack(Slk_mat)
1682 -+!%%
1683 -+!%% if (want_eigenvectors) then ! A is overwritten with the eigenvectors
1684 -+!%% a = czero
1685 -+!%% call slk_matrix_to_global_dpc_2D(Slk_vec,"All",a) ! Fill the entries calculated by this node.
1686 -+!%% call destruction_matrix_scalapack(Slk_vec)
1687 -+!%% call xsum_mpi(a,comm,ierr) ! Fill the remaing entries of the global matrix
1688 -+!%% end if
1689 -+!%%
1690 -+!%% call end_scalapack(Slk_processor)
1691 -
1692 - RETURN
1693 - #endif
1694 -@@ -1086,7 +1086,7 @@
1695 - ! Solve the problem with scaLAPACK.
1696 - MSG_ERROR("slk_pZHEGV not yet coded")
1697 - ! TODO
1698 -- !$call slk_pzhegv(itype,jobz,uplo,Slk_matA,Slk_matB,w)
1699 -+ !%call slk_pzhegv(itype,jobz,uplo,Slk_matA,Slk_matB,w)
1700 -
1701 - call destruction_matrix_scalapack(Slk_matB)
1702 -
1703 -@@ -1324,37 +1324,37 @@
1704 -
1705 - MSG_ERROR("Not coded yet")
1706 -
1707 -- !$$ call init_scalapack(Slk_processor,comm)
1708 -- !$$ istwf_k=1
1709 -+ !%% call init_scalapack(Slk_processor,comm)
1710 -+ !%% istwf_k=1
1711 -
1712 -- !$$ ! Initialize and fill Scalapack matrix from the global one.
1713 -- !$$ tbloc=SLK_BLOCK_SIZE
1714 -+ !%% ! Initialize and fill Scalapack matrix from the global one.
1715 -+ !%% tbloc=SLK_BLOCK_SIZE
1716 -
1717 -- !$$ write(msg,'(2(a,i0))')" Using scaLAPACK version with nprocs= ",nprocs,"; block size= ",tbloc
1718 -- !$$ call wrtout(std_out,msg,"PERS")
1719 -+ !%% write(msg,'(2(a,i0))')" Using scaLAPACK version with nprocs= ",nprocs,"; block size= ",tbloc
1720 -+ !%% call wrtout(std_out,msg,"PERS")
1721 -
1722 -- !$$ call init_matrix_scalapack(Slk_matA,n,n,Slk_processor,istwf_k,tbloc=tbloc)
1723 -- !$$ call slk_matrix_from_global_dpc_2D(Slk_matA,uplo,a)
1724 -+ !%% call init_matrix_scalapack(Slk_matA,n,n,Slk_processor,istwf_k,tbloc=tbloc)
1725 -+ !%% call slk_matrix_from_global_dpc_2D(Slk_matA,uplo,a)
1726 -
1727 -- !$$ call init_matrix_scalapack(Slk_matB,n,n,Slk_processor,istwf_k,tbloc=tbloc)
1728 -- !$$ call slk_matrix_from_global_dpc_2D(Slk_matB,uplo,b)
1729 -+ !%% call init_matrix_scalapack(Slk_matB,n,n,Slk_processor,istwf_k,tbloc=tbloc)
1730 -+ !%% call slk_matrix_from_global_dpc_2D(Slk_matB,uplo,b)
1731 -
1732 -- !$$ ! Solve the problem with scaLAPACK.
1733 -- !$$ MSG_ERROR("slk_pZHEGV not yet coded")
1734 -- !$$ ! TODO
1735 -- !$$ !$call slk_pzhegv(itype,jobz,uplo,Slk_matA,Slk_matB,w)
1736 -+ !%% ! Solve the problem with scaLAPACK.
1737 -+ !%% MSG_ERROR("slk_pZHEGV not yet coded")
1738 -+ !%% ! TODO
1739 -+ !%% !%call slk_pzhegv(itype,jobz,uplo,Slk_matA,Slk_matB,w)
1740 -
1741 -- !$$ call destruction_matrix_scalapack(Slk_matB)
1742 -- !$$
1743 -- !$$ if (starts_with(jobz,(/"V","v"/))) then ! A is overwritten with the eigenvectors
1744 -- !$$ a = czero
1745 -- !$$ call slk_matrix_to_global_dpc_2D(Slk_matA,"All",a) ! Fill the entries calculated by this node.
1746 -- !$$ call xsum_mpi(a,comm,ierr) ! Fill the remaing entries of the global matrix
1747 -- !$$ end if
1748 -+ !%% call destruction_matrix_scalapack(Slk_matB)
1749 -+ !%%
1750 -+ !%% if (starts_with(jobz,(/"V","v"/))) then ! A is overwritten with the eigenvectors
1751 -+ !%% a = czero
1752 -+ !%% call slk_matrix_to_global_dpc_2D(Slk_matA,"All",a) ! Fill the entries calculated by this node.
1753 -+ !%% call xsum_mpi(a,comm,ierr) ! Fill the remaing entries of the global matrix
1754 -+ !%% end if
1755 -
1756 -- !$$ call destruction_matrix_scalapack(Slk_matA)
1757 -+ !%% call destruction_matrix_scalapack(Slk_matA)
1758 -
1759 -- !$$ call end_scalapack(Slk_processor)
1760 -+ !%% call end_scalapack(Slk_processor)
1761 -
1762 - RETURN
1763 - #endif
1764 -@@ -1868,36 +1868,36 @@
1765 - #if defined HAVE_LINALG_MPI
1766 -
1767 - MSG_ERROR("Not coded yet")
1768 -- !$$ call init_scalapack(Slk_processor,comm)
1769 -- !$$ istwf_k=1
1770 -+ !%% call init_scalapack(Slk_processor,comm)
1771 -+ !%% istwf_k=1
1772 -
1773 -- !$$ ! Initialize and fill Scalapack matrix from the global one.
1774 -- !$$ tbloc=SLK_BLOCK_SIZE
1775 -- !$$ call init_matrix_scalapack(Slk_mat,n,n,Slk_processor,istwf_k,tbloc=tbloc)
1776 --
1777 -- !$$ write(msg,'(2(a,i0))')" Using scaLAPACK version with nprocs= ",nprocs,"; block size= ",tbloc
1778 -- !$$ call wrtout(std_out,msg,"PERS")
1779 --
1780 -- !$$ call slk_matrix_from_global_dpc_2D(Slk_mat,uplo,a)
1781 --
1782 -- !$$ want_eigenvectors = starts_with(jobz,(/"V","v"/))
1783 -- !$$ if (want_eigenvectors) then ! Initialize the distributed vectors.
1784 -- !$$ call init_matrix_scalapack(Slk_vec,n,n,Slk_processor,istwf_k,tbloc=tbloc)
1785 -- !$$ end if
1786 --
1787 -- !$$ ! Solve the problem.
1788 -- !$$ call slk_pzheevx(jobz,range,uplo,Slk_mat,vl,vu,il,iu,abstol,Slk_vec,m,w)
1789 --
1790 -- !$$ call destruction_matrix_scalapack(Slk_mat)
1791 -- !$$
1792 -- !$$ if (want_eigenvectors) then ! A is overwritten with the eigenvectors
1793 -- !$$ z = czero
1794 -- !$$ call slk_matrix_to_global_dpc_2D(Slk_vec,"All",z) ! Fill the entries calculated by this node.
1795 -- !$$ call destruction_matrix_scalapack(Slk_vec)
1796 -- !$$ call xsum_mpi(z,comm,ierr) ! Fill the remaing entries of the global matrix
1797 -- !$$ end if
1798 -+ !%% ! Initialize and fill Scalapack matrix from the global one.
1799 -+ !%% tbloc=SLK_BLOCK_SIZE
1800 -+ !%% call init_matrix_scalapack(Slk_mat,n,n,Slk_processor,istwf_k,tbloc=tbloc)
1801 -+
1802 -+ !%% write(msg,'(2(a,i0))')" Using scaLAPACK version with nprocs= ",nprocs,"; block size= ",tbloc
1803 -+ !%% call wrtout(std_out,msg,"PERS")
1804 -+
1805 -+ !%% call slk_matrix_from_global_dpc_2D(Slk_mat,uplo,a)
1806 -+
1807 -+ !%% want_eigenvectors = starts_with(jobz,(/"V","v"/))
1808 -+ !%% if (want_eigenvectors) then ! Initialize the distributed vectors.
1809 -+ !%% call init_matrix_scalapack(Slk_vec,n,n,Slk_processor,istwf_k,tbloc=tbloc)
1810 -+ !%% end if
1811 -+
1812 -+ !%% ! Solve the problem.
1813 -+ !%% call slk_pzheevx(jobz,range,uplo,Slk_mat,vl,vu,il,iu,abstol,Slk_vec,m,w)
1814 -+
1815 -+ !%% call destruction_matrix_scalapack(Slk_mat)
1816 -+ !%%
1817 -+ !%% if (want_eigenvectors) then ! A is overwritten with the eigenvectors
1818 -+ !%% z = czero
1819 -+ !%% call slk_matrix_to_global_dpc_2D(Slk_vec,"All",z) ! Fill the entries calculated by this node.
1820 -+ !%% call destruction_matrix_scalapack(Slk_vec)
1821 -+ !%% call xsum_mpi(z,comm,ierr) ! Fill the remaing entries of the global matrix
1822 -+ !%% end if
1823 -
1824 -- !$$ call end_scalapack(Slk_processor)
1825 -+ !%% call end_scalapack(Slk_processor)
1826 -
1827 - RETURN
1828 - #endif
1829 -@@ -2159,7 +2159,7 @@
1830 - ! Solve the problem.
1831 - MSG_ERROR("slk_pZHEGVX not coded yet")
1832 - ! TODO write the scaLAPACK wrapper.
1833 -- !$call slk_pZHEGVX(itype,jobz,range,uplo,Slk_matA,Slk_matB,vl,vu,il,iu,abstol,Slk_vec,m,w)
1834 -+ !%call slk_pZHEGVX(itype,jobz,range,uplo,Slk_matA,Slk_matB,vl,vu,il,iu,abstol,Slk_vec,m,w)
1835 -
1836 - call destruction_matrix_scalapack(Slk_matA)
1837 - call destruction_matrix_scalapack(Slk_matB)
1838 -@@ -2466,44 +2466,44 @@
1839 - #if defined HAVE_LINALG_MPI
1840 -
1841 - MSG_ERROR("not coded yet")
1842 -- !$$ call init_scalapack(Slk_processor,comm)
1843 -- !$$ istwf_k=1
1844 -+ !%% call init_scalapack(Slk_processor,comm)
1845 -+ !%% istwf_k=1
1846 -
1847 -- !$$ ! Initialize and fill Scalapack matrix from the global one.
1848 -- !$$ tbloc=SLK_BLOCK_SIZE
1849 -+ !%% ! Initialize and fill Scalapack matrix from the global one.
1850 -+ !%% tbloc=SLK_BLOCK_SIZE
1851 -
1852 -- !$$ write(msg,'(2(a,i0))')" Using scaLAPACK version with nprocs= ",nprocs,"; block size= ",tbloc
1853 -- !$$ call wrtout(std_out,msg,"PERS")
1854 -+ !%% write(msg,'(2(a,i0))')" Using scaLAPACK version with nprocs= ",nprocs,"; block size= ",tbloc
1855 -+ !%% call wrtout(std_out,msg,"PERS")
1856 -
1857 -- !$$ call init_matrix_scalapack(Slk_matA,n,n,Slk_processor,istwf_k,tbloc=tbloc)
1858 -- !$$ call slk_matrix_from_global_dpc_2D(Slk_matA,uplo,a)
1859 --
1860 -- !$$ call init_matrix_scalapack(Slk_matB,n,n,Slk_processor,istwf_k,tbloc=tbloc)
1861 -- !$$ call slk_matrix_from_global_dpc_2D(Slk_matB,uplo,b)
1862 --
1863 -- !$$ want_eigenvectors = starts_with(jobz,(/"V","v"/))
1864 -- !$$ if (want_eigenvectors) then ! Initialize the distributed vectors.
1865 -- !$$ call init_matrix_scalapack(Slk_vec,n,n,Slk_processor,istwf_k,tbloc=tbloc)
1866 -- !$$ end if
1867 --
1868 -- !$$ ! Solve the problem.
1869 -- !$$ MSG_ERROR("slk_pZHEGVX not coded yet")
1870 -- !$$ ! TODO write the scaLAPACK wrapper.
1871 -- !$$ !$call slk_pZHEGVX(itype,jobz,range,uplo,Slk_matA,Slk_matB,vl,vu,il,iu,abstol,Slk_vec,m,w)
1872 --
1873 -- !$$ call destruction_matrix_scalapack(Slk_matA)
1874 -- !$$ call destruction_matrix_scalapack(Slk_matB)
1875 -- !$$
1876 -- !$$ if (want_eigenvectors) then ! A is overwritten with the eigenvectors
1877 -- !$$ z = czero
1878 -- !$$ call slk_matrix_to_global_dpc_2D(Slk_vec,"All",z) ! Fill the entries calculated by this node.
1879 -- !$$ call destruction_matrix_scalapack(Slk_vec)
1880 -- !$$ call xsum_mpi(z,comm,ierr) ! Fill the remaing entries of the global matrix
1881 -- !$$ end if
1882 -+ !%% call init_matrix_scalapack(Slk_matA,n,n,Slk_processor,istwf_k,tbloc=tbloc)
1883 -+ !%% call slk_matrix_from_global_dpc_2D(Slk_matA,uplo,a)
1884 -+
1885 -+ !%% call init_matrix_scalapack(Slk_matB,n,n,Slk_processor,istwf_k,tbloc=tbloc)
1886 -+ !%% call slk_matrix_from_global_dpc_2D(Slk_matB,uplo,b)
1887 -+
1888 -+ !%% want_eigenvectors = starts_with(jobz,(/"V","v"/))
1889 -+ !%% if (want_eigenvectors) then ! Initialize the distributed vectors.
1890 -+ !%% call init_matrix_scalapack(Slk_vec,n,n,Slk_processor,istwf_k,tbloc=tbloc)
1891 -+ !%% end if
1892 -+
1893 -+ !%% ! Solve the problem.
1894 -+ !%% MSG_ERROR("slk_pZHEGVX not coded yet")
1895 -+ !%% ! TODO write the scaLAPACK wrapper.
1896 -+ !%% !%call slk_pZHEGVX(itype,jobz,range,uplo,Slk_matA,Slk_matB,vl,vu,il,iu,abstol,Slk_vec,m,w)
1897 -+
1898 -+ !%% call destruction_matrix_scalapack(Slk_matA)
1899 -+ !%% call destruction_matrix_scalapack(Slk_matB)
1900 -+ !%%
1901 -+ !%% if (want_eigenvectors) then ! A is overwritten with the eigenvectors
1902 -+ !%% z = czero
1903 -+ !%% call slk_matrix_to_global_dpc_2D(Slk_vec,"All",z) ! Fill the entries calculated by this node.
1904 -+ !%% call destruction_matrix_scalapack(Slk_vec)
1905 -+ !%% call xsum_mpi(z,comm,ierr) ! Fill the remaing entries of the global matrix
1906 -+ !%% end if
1907 -
1908 -- !$$ call end_scalapack(Slk_processor)
1909 -+ !%% call end_scalapack(Slk_processor)
1910 -
1911 -- !$$ RETURN
1912 -+ !%% RETURN
1913 - #endif
1914 -
1915 - MSG_PERS_BUG("You should not be here!")
1916 -@@ -2927,7 +2927,7 @@
1917 - MSG_PERS_ERROR(msg)
1918 - end if
1919 -
1920 -- !$call slk_matrix_from_global_dpc_2D(Slk_mat,"All",a)
1921 -+ !%call slk_matrix_from_global_dpc_2D(Slk_mat,"All",a)
1922 -
1923 - ipiv_size = my_locr(Slk_mat) + Slk_mat%descript%tab(MB_)
1924 - allocate(ipiv(ipiv_size))
1925 -@@ -2968,7 +2968,7 @@
1926 -
1927 - ! Reconstruct the global matrix from the distributed one.
1928 - a = czero
1929 -- !$call slk_matrix_to_global_dpc_2D(Slk_mat,"All",a) ! Fill the entries calculated by this node.
1930 -+ !%call slk_matrix_to_global_dpc_2D(Slk_mat,"All",a) ! Fill the entries calculated by this node.
1931 - call destruction_matrix_scalapack(Slk_mat)
1932 -
1933 - call xsum_mpi(a,comm,ierr) ! Fill the remaing entries of the global matrix
1934 -diff -Naur abinit-6.4.2.bak/src/53_ffts/fftw3_fourwf.F90 abinit-6.4.2/src/53_ffts/fftw3_fourwf.F90
1935 ---- src/53_ffts/fftw3_fourwf.F90 2010-12-01 19:47:18.000000000 +0000
1936 -+++ src/53_ffts/fftw3_fourwf.F90 2011-01-05 17:22:28.000000000 +0000
1937 -@@ -432,8 +432,8 @@
1938 - end do
1939 -
1940 - cplex=0; istwf_k=1; option=3
1941 --!$ call sg_fftrisc(cplex,dum_denpot,fofgin,dum_fofgin,fofr,gbound,gbound,istwf_k,dum_gvec,gvec,&
1942 --!$& mgfft,ngfft,npwwfn,npwwfn,ldx,ldy,ldz,option,weight)
1943 -+!% call sg_fftrisc(cplex,dum_denpot,fofgin,dum_fofgin,fofr,gbound,gbound,istwf_k,dum_gvec,gvec,&
1944 -+!%& mgfft,ngfft,npwwfn,npwwfn,ldx,ldy,ldz,option,weight)
1945 -
1946 - allocate(ftarr(2,ldx,ldy,ldz))
1947 - !This call gives weird results for R-->G, while G-->R is ok!!!!
1948 -diff -Naur abinit-6.4.2.bak/src/53_ffts/sphere_fft.F90 abinit-6.4.2/src/53_ffts/sphere_fft.F90
1949 ---- src/53_ffts/sphere_fft.F90 2010-12-01 19:47:18.000000000 +0000
1950 -+++ src/53_ffts/sphere_fft.F90 2011-01-09 11:05:00.000000000 +0000
1951 -@@ -99,7 +99,7 @@
1952 - !ENDDEBUG
1953 -
1954 - !Insert cg into cfft with extra 0 s around outside:
1955 --!$OMP PARALLEL DO PRIVATE(i1,i2,i3) SHARED(cfft,ndat,n1,n2,n3)
1956 -+!%$OMP PARALLEL DO PRIVATE(i1,i2,i3) SHARED(cfft,ndat,n1,n2,n3)
1957 - !do i2=1,nd2proc*ndat
1958 - !do i3=1,n3
1959 - !do i1=1,n1
1960 -@@ -108,7 +108,7 @@
1961 - !end do
1962 - !end do
1963 - !end do
1964 --!$OMP END PARALLEL DO
1965 -+!%$OMP END PARALLEL DO
1966 - cfft(:,:,:,:)=zero
1967 - !$OMP PARALLEL DO PRIVATE(i1,i2,i3,idat,ipw) SHARED(cfft,cg,kg_k,ndat,npw)
1968 - !write(6,*)'In sphere fft,i1,i2,i3,ipw,cfft=cg'
1969 -@@ -229,7 +229,7 @@
1970 - !ENDDEBUG
1971 -
1972 - !Insert cg into cfft with extra 0 s around outside:
1973 --!$OMP PARALLEL DO PRIVATE(i1,i2,i3) SHARED(cfft,ndat,n1,n2,n3)
1974 -+!%$OMP PARALLEL DO PRIVATE(i1,i2,i3) SHARED(cfft,ndat,n1,n2,n3)
1975 - !do i2=1,nd2proc*ndat
1976 - !do i3=1,n3
1977 - !do i1=1,n1
1978 -@@ -238,7 +238,7 @@
1979 - !end do
1980 - !end do
1981 - !end do
1982 --!$OMP END PARALLEL DO
1983 -+!%$OMP END PARALLEL DO
1984 - cfft(:,:,:,:)=zero
1985 - !$OMP PARALLEL DO PRIVATE(i1,i2,i3,idat,ipw) SHARED(cfft,cg,kg_k,ndat,npw)
1986 - !write(6,*)'In sphere fft,i1,i2,i3,ipw,cfft=cg'
1987 -diff -Naur abinit-6.4.2.bak/src/57_iovars/invars2.F90 abinit-6.4.2/src/57_iovars/invars2.F90
1988 ---- src/57_iovars/invars2.F90 2010-12-01 19:47:18.000000000 +0000
1989 -+++ src/57_iovars/invars2.F90 2011-01-05 16:51:21.000000000 +0000
1990 -@@ -72,7 +72,7 @@
1991 - use defs_datatypes
1992 - use defs_abitypes
1993 -
1994 -- !$use m_gwdefs, only: gw_sctype_from_name
1995 -+ !%use m_gwdefs, only: gw_sctype_from_name
1996 -
1997 - !This section has been created automatically by the script Abilint (TD).
1998 - !Do not modify the following lines by hand.
1999 -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
2000 ---- src/59_io_mpi/hdr_io.F90 2010-12-01 19:47:18.000000000 +0000
2001 -+++ src/59_io_mpi/hdr_io.F90 2011-01-05 08:53:52.000000000 +0000
2002 -@@ -209,7 +209,7 @@
2003 - use defs_basis
2004 - use defs_abitypes
2005 - use m_errors
2006 --!$use m_header
2007 -+!%use m_header
2008 -
2009 - use m_io_tools, only : flush_unit
2010 -
2011 -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
2012 ---- src/64_atompaw/m_lmn_indices.F90 2010-12-01 19:47:18.000000000 +0000
2013 -+++ src/64_atompaw/m_lmn_indices.F90 2011-01-05 08:54:53.000000000 +0000
2014 -@@ -251,10 +251,10 @@
2015 - indklmn(6,klmn)=jlm ! jlm
2016 -
2017 - ! TODO additional mapping (At present it is in klmntomn)
2018 -- !$indklmn(7 ,klmn)=indlmn(2,ilmn)+il+1 ! im
2019 -- !$indklmn(8 ,klmn)=indlmn(2,jlmn)+jl+1 ! jm
2020 -- !$indklmn(9 ,klmn)=indlmn(3,ilmn) ! in
2021 -- !$indklmn(10,klmn)=indlmn(3,jlmn) ! jn
2022 -+ !%indklmn(7 ,klmn)=indlmn(2,ilmn)+il+1 ! im
2023 -+ !%indklmn(8 ,klmn)=indlmn(2,jlmn)+jl+1 ! jm
2024 -+ !%indklmn(9 ,klmn)=indlmn(3,ilmn) ! in
2025 -+ !%indklmn(10,klmn)=indlmn(3,jlmn) ! jn
2026 -
2027 - if (ilm==jlm) klm_diag(klmn)=1
2028 - end do
2029 -@@ -329,8 +329,8 @@
2030 -
2031 - il= indlmn(1,ilmn); iln=indlmn(5,ilmn)
2032 - jl= indlmn(1,jlmn); jln=indlmn(5,jlmn)
2033 -- !$in = indklmn(9 ,klmn) !=indlmn(3,ilmn)
2034 -- !$jn = indklmn(10,klmn) !=indlmn(3,jlmn)
2035 -+ !%in = indklmn(9 ,klmn) !=indlmn(3,ilmn)
2036 -+ !%jn = indklmn(10,klmn) !=indlmn(3,jlmn)
2037 -
2038 - in = indlmn(3,ilmn)
2039 - jn = indlmn(3,jlmn)
2040 -diff -Naur abinit-6.4.2.bak/src/65_nonlocal/m_hamiltonian.F90 abinit-6.4.2/src/65_nonlocal/m_hamiltonian.F90
2041 ---- src/65_nonlocal/m_hamiltonian.F90 2010-12-01 19:47:18.000000000 +0000
2042 -+++ src/65_nonlocal/m_hamiltonian.F90 2011-01-05 16:38:16.000000000 +0000
2043 -@@ -142,7 +142,7 @@
2044 - ! "V": all eigenvalues in the half-open interval (VL,VU] will be found.
2045 - ! "I": the IL-th through IU-th eigenvalues will be found.
2046 -
2047 -- !$character(len=fnlen) :: fname
2048 -+ !%character(len=fnlen) :: fname
2049 - ! The name of the file storing the eigenvectors and eigenvalues (only if jobz="V")
2050 -
2051 - end type ddiago_ctl_type
2052 -@@ -391,7 +391,7 @@
2053 - gs_hamk%nfft =nfft
2054 - gs_hamk%ngfft(:) =ngfft(:)
2055 - gs_hamk%nloalg(:) =nloalg(:)
2056 -- !$gs_hamk%matblk=nloalg(4); if (nloalg(1)>0) gs_hamk%matblk=natom
2057 -+ !%gs_hamk%matblk=nloalg(4); if (nloalg(1)>0) gs_hamk%matblk=natom
2058 - gs_hamk%nspinor =nspinor
2059 - gs_hamk%ntypat =ntypat
2060 -
2061 -diff -Naur abinit-6.4.2.bak/src/65_psp/psp5lo.F90 abinit-6.4.2/src/65_psp/psp5lo.F90
2062 ---- src/65_psp/psp5lo.F90 2010-12-01 19:47:18.000000000 +0000
2063 -+++ src/65_psp/psp5lo.F90 2011-01-05 16:38:46.000000000 +0000
2064 -@@ -111,8 +111,8 @@
2065 - call ctrap(mmax,work,al,result)
2066 - !Do integral from r(mmax) to infinity
2067 - !compute decay length lambda at r(mmax)
2068 --!$\lambda=-\log((rad(im1)*vloc(im1)+zion)$/ &
2069 --!$(rad(imat)*vloc(imat)+zion))/(rad(im1)-rad(imat))$
2070 -+!%\lambda=-\log((rad(im1)*vloc(im1)+zion)$/ &
2071 -+!%(rad(imat)*vloc(imat)+zion))/(rad(im1)-rad(imat))$
2072 - !rmtoin=$(rad(mmax)*vloc(mmax)+zion)*(rad(mmax)+1.d0/\lambda)/\lambda$
2073 - !Due to inability to fit exponential decay to r*V(r)+Zv
2074 - !in tail, NO TAIL CORRECTION IS APPLIED
2075 -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
2076 ---- src/66_paw/m_paw_slater.F90 2010-12-01 19:47:18.000000000 +0000
2077 -+++ src/66_paw/m_paw_slater.F90 2011-01-05 08:57:00.000000000 +0000
2078 -@@ -352,7 +352,7 @@
2079 - Slatang3l(klm)%sggselect = 0
2080 -
2081 - do ilsl=lslat_min,lslat_max
2082 -- !$do ilsl=lslat_min,lslat_max,2
2083 -+ !%do ilsl=lslat_min,lslat_max,2
2084 - lsl = ilsl-1
2085 - do ilc=1,lc_max
2086 - lc = ilc-1
2087 -@@ -695,7 +695,7 @@
2088 - end if
2089 -
2090 - indlmn => Psps%indlmn(1:6,1:lmn_size,itypat)
2091 -- !$indlmn => Pawtab%indklmn(1:6,1:lmn2_size) !TODO indlmn should be in Pawtab!!!
2092 -+ !%indlmn => Pawtab%indklmn(1:6,1:lmn2_size) !TODO indlmn should be in Pawtab!!!
2093 - indklmn => Pawtab%indklmn(1:6,1:lmn2_size)
2094 -
2095 - allocate(kln2ln(6,ln2_size))
2096 -@@ -874,7 +874,7 @@
2097 - lm2_size = lm_size*(lm_size+1)/2
2098 -
2099 - indlmn => Psps%indlmn(1:6,1:lmn_size,itypat) !this is the reason why we still need itypat
2100 -- !$indlmn => Pawtab%indlmn(1:6,1:lmn_size) !TODO indlmn should be in Pawtab!!!
2101 -+ !%indlmn => Pawtab%indlmn(1:6,1:lmn_size) !TODO indlmn should be in Pawtab!!!
2102 - indklmn => Pawtab%indklmn(1:6,1:lmn2_size)
2103 -
2104 - ! * Setup of useful tables.
2105 -@@ -1327,7 +1327,7 @@
2106 - !
2107 - ! Useful table for looping.
2108 - indlmn => Psps%indlmn(1:6,1:lmn_size,itypat)
2109 -- !$indlmn => Pawtab%indlmn(1:6,1:lmn2_size) !TODO indlmn should be in Pawtab!!!
2110 -+ !%indlmn => Pawtab%indlmn(1:6,1:lmn2_size) !TODO indlmn should be in Pawtab!!!
2111 - indklmn => Pawtab%indklmn(1:6,1:lmn2_size)
2112 -
2113 - allocate(kln2ln(6,ln2_size))
2114 -@@ -1822,7 +1822,7 @@
2115 - slat_intg=zero
2116 - if (Slatrad4(slt_idx)%nintgl>0) then
2117 - do ilsum=Slatrad4(slt_idx)%lslat_min,Slatrad4(slt_idx)%lslat_max
2118 -- !$do ilsum=Slatrad4(slt_idx)%lslat_min,Slatrad4(slt_idx)%lslat_max,2
2119 -+ !%do ilsum=Slatrad4(slt_idx)%lslat_min,Slatrad4(slt_idx)%lslat_max,2
2120 - isel = Slatrad4(slt_idx)%intgl_select(ilsum)
2121 - if (isel/=0) then
2122 - sltL_ijkl = Slatrad4(slt_idx)%intgl(isel)
2123 -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
2124 ---- src/66_paw/m_paw_toolbox.F90 2010-12-01 19:47:18.000000000 +0000
2125 -+++ src/66_paw/m_paw_toolbox.F90 2011-01-05 08:57:50.000000000 +0000
2126 -@@ -1102,8 +1102,8 @@
2127 - !MG This is the coding PRESENTLY used in pawdenpot but the commented code should be the correct one
2128 - !MT: don't agreee for nspden (there is no dependance of vH^(1) with nspden)
2129 - allocate(Paw_an(iat)%vh1(cplex*Pawtab(itypat)%mesh_size,1,1))
2130 -- !$allocate(Paw_an(iat)%vh1 (cplex*Pawtab(itypat)%mesh_size,lm_size,nspden))
2131 -- !$allocate(Paw_an(iat)%vht1(cplex*Pawtab(itypat)%mesh_size,lm_size,nspden))
2132 -+ !%allocate(Paw_an(iat)%vh1 (cplex*Pawtab(itypat)%mesh_size,lm_size,nspden))
2133 -+ !%allocate(Paw_an(iat)%vht1(cplex*Pawtab(itypat)%mesh_size,lm_size,nspden))
2134 - end if
2135 - end if
2136 -
2137 -diff -Naur abinit-6.4.2.bak/src/66_paw/pawmkaewf.F90 abinit-6.4.2/src/66_paw/pawmkaewf.F90
2138 ---- src/66_paw/pawmkaewf.F90 2010-12-01 19:47:18.000000000 +0000
2139 -+++ src/66_paw/pawmkaewf.F90 2011-01-04 17:16:03.000000000 +0000
2140 -@@ -99,7 +99,7 @@
2141 -
2142 - #if defined HAVE_ETSF_IO
2143 - use etsf_io
2144 -- !use etsf_io_file, only : etsf_io_file_merge
2145 -+ use etsf_io_file, only : etsf_io_file_merge
2146 - use m_abi_etsf, only : abi_etsf_dims_init
2147 - #endif
2148 -
2149 -@@ -890,7 +890,7 @@
2150 - out_file="test_merge"
2151 - write(msg,'(2a)')'Master node is merging NETCDF partial files into: ',TRIM(out_file)
2152 - call wrtout(std_out, msg,'COLL')
2153 -- !$call etsf_io_file_merge(out_file,merge_files,lstat,Error)
2154 -+ call etsf_io_file_merge(out_file,merge_files,lstat,Error)
2155 - if (.not.lstat) goto 1000
2156 - end if
2157 - call xbarrier_mpi(spaceComm)
2158 -diff -Naur abinit-6.4.2.bak/src/66_wfs/envlop.F90 abinit-6.4.2/src/66_wfs/envlop.F90
2159 ---- src/66_wfs/envlop.F90 2010-12-01 19:47:18.000000000 +0000
2160 -+++ src/66_wfs/envlop.F90 2011-01-05 16:40:07.000000000 +0000
2161 -@@ -67,7 +67,7 @@
2162 -
2163 - ! *************************************************************************
2164 -
2165 --!$(k+G)^2$ evaluated using metric and kpoint
2166 -+!%$(k+G)^2$ evaluated using metric and kpoint
2167 - gsq(i1,i2,i3)=gmet(1,1)*(kpoint(1)+dble(i1))**2+&
2168 - & gmet(2,2)*(kpoint(2)+dble(i2))**2+&
2169 - & gmet(3,3)*(kpoint(3)+dble(i3))**2+&
2170 -@@ -78,7 +78,7 @@
2171 - !cutoff function
2172 - fcut(gs)=(1.0_dp-(gs/cutoff))**power
2173 -
2174 --!$(k+G)^2$ cutoff from $(1/2)(2 Pi (k+G))^2 = ecut$
2175 -+!%$(k+G)^2$ cutoff from $(1/2)(2 Pi (k+G))^2 = ecut$
2176 - kpgsqc=ecut/(2.0_dp*pi**2)
2177 - cutoff = kpgsqc
2178 -
2179 -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
2180 ---- src/66_wfs/m_bands_sym.F90 2010-12-01 19:47:18.000000000 +0000
2181 -+++ src/66_wfs/m_bands_sym.F90 2011-01-05 16:43:49.000000000 +0000
2182 -@@ -172,7 +172,7 @@
2183 - ! Number of states in each degenerate subspace. Cannot be larger that nclass provided
2184 - ! that no accidental degeneracy occurs.
2185 -
2186 -- !$integer,pointer :: class_ids(:,:) SET2NULL
2187 -+ !%integer,pointer :: class_ids(:,:) SET2NULL
2188 - ! class_ids(2,nclass)
2189 - ! (1,icl) = index of the first symmetry of class icl
2190 - ! (2,icl) = index of the last symmetry of class icl
2191 -@@ -498,12 +498,12 @@
2192 - MSG_ERROR("Not coded")
2193 -
2194 - ! Read little groups from the external database.
2195 -- !$call init_groupk_from_file(Lgrp,spgroup,lgroup_fname,ierr)
2196 -+ !%call init_groupk_from_file(Lgrp,spgroup,lgroup_fname,ierr)
2197 -
2198 - ! Save the irreducible representations in BSym.
2199 - ! Reorder symmetries such that they correspond to the Bilbao database.
2200 -- !$allocate(BSym%Ref_irreps(BSym%nclass))
2201 -- !$call copy_irrep(Irreps, BSym%Ref_irreps)
2202 -+ !%allocate(BSym%Ref_irreps(BSym%nclass))
2203 -+ !%call copy_irrep(Irreps, BSym%Ref_irreps)
2204 -
2205 - else
2206 - write(msg,'(7a)')&
2207 -@@ -769,8 +769,8 @@
2208 -
2209 - deallocate(sgk,tr_sgk,elements_idx)
2210 -
2211 -- !$allocate(BSym%irrep2b(0:BSym%nclass))
2212 -- !$call nullify_coeff(BSym%irrep2b)
2213 -+ !%allocate(BSym%irrep2b(0:BSym%nclass))
2214 -+ !%call nullify_coeff(BSym%irrep2b)
2215 - !
2216 - ! 1) Allocate space for the irreducible representations.
2217 -
2218 -diff -Naur abinit-6.4.2.bak/src/66_wfs/m_wfs.F90 abinit-6.4.2/src/66_wfs/m_wfs.F90
2219 ---- src/66_wfs/m_wfs.F90 2010-12-01 19:47:18.000000000 +0000
2220 -+++ src/66_wfs/m_wfs.F90 2011-01-05 16:42:27.000000000 +0000
2221 -@@ -95,7 +95,7 @@
2222 - ! The boundary of the basis sphere of G vectors at a given k point.
2223 - ! for use in improved zero padding of ffts in 3 dimensions.
2224 -
2225 -- !$real(dp) :: kpoint(3)
2226 -+ !%real(dp) :: kpoint(3)
2227 -
2228 - !real(dp),pointer :: ph1d(:,:) SET2NULL
2229 - ! ph1d(2,3*(2*mgfft+1)*natom)
2230 -@@ -113,20 +113,20 @@
2231 - ! fnlylm(npw,dim_fnlylm,lmnmax,ntypat)
2232 - ! nonlocal form factors
2233 -
2234 -- !$real(dp),pointer :: ylm(:,:) SET2NULL
2235 -+ !%real(dp),pointer :: ylm(:,:) SET2NULL
2236 - ! ylm(npw,mpsang**2*useylm)
2237 - ! Real spherical harmonics for each G
2238 -
2239 -- !$integer :: ngfft(18)
2240 -+ !%integer :: ngfft(18)
2241 - ! Information about 3D FFT, see ~abinit/doc/input_variables/vargs.htm#ngfft.
2242 -
2243 -- !$integer :: mgfft
2244 -+ !%integer :: mgfft
2245 - ! MAXVAL(ngfft(1:3)), used to dimension some arrays.
2246 -
2247 -- !$integer :: nfftot
2248 -+ !%integer :: nfftot
2249 - ! PRODUCT(ngfft(1:3)), ie the total number of FFT points.
2250 -
2251 -- !$integer :: nfft
2252 -+ !%integer :: nfft
2253 - ! The number of points treated by this node.
2254 -
2255 - end type kdata_t
2256 -@@ -229,7 +229,7 @@
2257 - integer :: lmnmax
2258 - integer :: mband ! MAX(nband)
2259 - integer :: mgfft ! Maximum size of 1D FFTs
2260 -- !$integer :: mpsang
2261 -+ !%integer :: mpsang
2262 - integer :: natom
2263 - integer :: nfft ! Number of FFT points treated by this processor
2264 - integer :: nfftot ! Total number of points in the FFT grid
2265 -@@ -247,7 +247,7 @@
2266 - integer :: my_rank ! The rank of my processor inside the MPI communicator comm.
2267 - integer :: nproc ! The number of processors in MPI comm.
2268 -
2269 -- !$ integer :: cplex
2270 -+ !% integer :: cplex
2271 - ! cplex= if 1 , wavefunctions are real, if 2 they are complex
2272 - ! In systems with time-reversal and spatial inversion, wavefunctions are real.
2273 - ! One might use this to reduce memory in wave_t.
2274 -@@ -311,7 +311,7 @@
2275 - ! nlmn_type(ntypat)
2276 - ! Number of (n,l,m) channels for each type of atom. Only for PAW.
2277 -
2278 -- !$integer,pointer :: typat(:) SET2NULL
2279 -+ !%integer,pointer :: typat(:) SET2NULL
2280 - ! typat(natom)
2281 - ! The type of each atom.
2282 -
2283 -@@ -343,7 +343,7 @@
2284 - ! keep(mband,nkibz,nsppol)
2285 - ! Storage strategy: keep or not keep calculated u(r) in memory.
2286 -
2287 -- !$type(mpicomm_t),pointer :: comm_spin(:)
2288 -+ !%type(mpicomm_t),pointer :: comm_spin(:)
2289 - ! comm(0:nsppol)
2290 - ! MPI communicators.
2291 - ! comm(1), comm(2) are the MPI communicators of the nodes treating the different spins.
2292 -@@ -978,7 +978,7 @@
2293 -
2294 - #if 0
2295 - ! TODO enable this call when k-centered G-spheres are used.
2296 -- !$if (wfd_ihave_ug(Wfd,0,ik_ibz,0)) then
2297 -+ !%if (wfd_ihave_ug(Wfd,0,ik_ibz,0)) then
2298 - call kdata_init(Wfd%Kdata(ik_ibz),Cryst,Psps,kpoint,istwf_k,ngfft,Wfd%MPI_enreg,kg_k=Wfd%gvec)
2299 - !endif
2300 - #else
2301 -@@ -1735,12 +1735,12 @@
2302 - dimffnl = Wfd%Kdata(ik_ibz)%dim_fnlylm
2303 - ph3d => Wfd%Kdata(ik_ibz)%ph3d
2304 - ffnl => Wfd%Kdata(ik_ibz)%fnlylm
2305 -- !$phkxred => Wfd%Kdata(ik_ibz)%phkxred
2306 -+ !%phkxred => Wfd%Kdata(ik_ibz)%phkxred
2307 -
2308 - ! Compute (k+G) vectors
2309 - nkpg=0
2310 -- !$if (choice==3.or.choice==2.or.choice==23) nkpg=3*Wfd%nloalg(5)
2311 -- !$if (choice==4.or.choice==24) nkpg=9*Wfd%nloalg(5)
2312 -+ !%if (choice==3.or.choice==2.or.choice==23) nkpg=3*Wfd%nloalg(5)
2313 -+ !%if (choice==4.or.choice==24) nkpg=9*Wfd%nloalg(5)
2314 - allocate(kpg(npw_k,nkpg)); if (nkpg>0) call mkkpg(kg_k,kpg,kpoint,nkpg,npw_k)
2315 -
2316 - ! Allocate and compute the arrays phkxred and ph3d
2317 -@@ -3793,11 +3793,11 @@
2318 - end if
2319 - end do
2320 -
2321 -- !$mcg = npw_k*Wfd%nspinor*(Wfd%my_maxb-Wfd%my_minb+1)
2322 -+ !%mcg = npw_k*Wfd%nspinor*(Wfd%my_maxb-Wfd%my_minb+1)
2323 - ABI_CHECK(SIZE(cg,DIM=2)>=(mcg+ikg),"cg too small")
2324 -
2325 - do band=1,Wfd%nband(ik_ibz,spin)
2326 -- !$cg_bpad=npw_k*Wfd%nspinor*(band-Wfd%my_minb)
2327 -+ !%cg_bpad=npw_k*Wfd%nspinor*(band-Wfd%my_minb)
2328 - do ispinor=1,Wfd%nspinor
2329 - cg_spad=(ispinor-1)*npw_k
2330 - gw_spad=(ispinor-1)*Wfd%npwwfn
2331 -diff -Naur abinit-6.4.2.bak/src/67_common/hartre1.F90 abinit-6.4.2/src/67_common/hartre1.F90
2332 ---- src/67_common/hartre1.F90 2010-12-01 19:47:18.000000000 +0000
2333 -+++ src/67_common/hartre1.F90 2011-01-05 17:31:18.000000000 +0000
2334 -@@ -213,7 +213,7 @@
2335 - !numerator: $1/2$ [double counting] $\times 4\pi$ [Poisson eq] $= 2\pi$
2336 - !denominator: $2\pi$ [reciprocal lattice vectors] squared $= (2\pi)^2$
2337 - !gives the same result as real space evaluation via
2338 --!$\frac{1}{2}\int n(\vec r)*V_{H}(\vec r) d^3r$
2339 -+!%$\frac{1}{2}\int n(\vec r)*V_{H}(\vec r) d^3r$
2340 - sum(:)=sum(:)*ucvol*2*pi/(2*pi)**2
2341 - !MF
2342 -
2343 -diff -Naur abinit-6.4.2.bak/src/67_common/ks_ddiago.F90 abinit-6.4.2/src/67_common/ks_ddiago.F90
2344 ---- src/67_common/ks_ddiago.F90 2010-12-01 19:47:18.000000000 +0000
2345 -+++ src/67_common/ks_ddiago.F90 2011-01-05 17:32:44.000000000 +0000
2346 -@@ -199,7 +199,7 @@
2347 - isppol = Diago_ctl%isppol
2348 - kpoint = Diago_ctl%kpoint
2349 - istwf_k = Diago_ctl%istwf_k
2350 --!$nband_k = Diago_ctl%nband_k
2351 -+!%nband_k = Diago_ctl%nband_k
2352 - npw_k = Diago_ctl%npw_k
2353 - nloalg = Diago_ctl%nloalg
2354 - ecut = Diago_ctl%ecut
2355 -@@ -405,7 +405,7 @@
2356 - end do
2357 - end if
2358 -
2359 --!$call finalize_hamiltonian(gs_hamk,isppol,npw_k,istwfk,kpoint,Paw_ij)
2360 -+!%call finalize_hamiltonian(gs_hamk,isppol,npw_k,istwfk,kpoint,Paw_ij)
2361 -
2362 - !Prepare the call to getghc.
2363 - ndat=1; lambda=zero; type_calc=0 ! For applying the whole Hamiltonian
2364 -diff -Naur abinit-6.4.2.bak/src/67_common/m_coulombian.F90 abinit-6.4.2/src/67_common/m_coulombian.F90
2365 ---- src/67_common/m_coulombian.F90 2010-12-01 19:47:18.000000000 +0000
2366 -+++ src/67_common/m_coulombian.F90 2011-01-05 17:28:43.000000000 +0000
2367 -@@ -1950,7 +1950,7 @@
2368 - real(dp) :: F3
2369 - !************************************************************************
2370 -
2371 -- !$F3(z)=z*\sin(qpg_para_*z)/\sqrt(rcut^2+z^2)$
2372 -+ !%$F3(z)=z*\sin(qpg_para_*z)/\sqrt(rcut^2+z^2)$
2373 - F3=xx*SIN(qpg_para_*xx)/SQRT(rcut_**2+xx**2)
2374 -
2375 - end function F3
2376 -@@ -2039,7 +2039,7 @@
2377 - real(dp) :: k0,rho,arg
2378 - !************************************************************************
2379 -
2380 -- !$K0cos(y)=K0(\rho*|qpg_z|)*COS(x.qpg_x+y*qpg_y)$
2381 -+ !%$K0cos(y)=K0(\rho*|qpg_z|)*COS(x.qpg_x+y*qpg_y)$
2382 - rho=SQRT(xx_**2+yy**2) ; arg=qpg_para_*rho
2383 - call CALCK0(arg,k0,1)
2384 - K0cos=k0*COS(qpgx_*xx_+qpgy_*yy)
2385 -@@ -2065,7 +2065,7 @@
2386 - real(dp) :: quad
2387 - !************************************************************************
2388 -
2389 -- !$ K0cos_dy(x)=\int_{-b/2}^{b/2} K0(|qpg_z|\rho)cos(x.qpg_x+y.qpg_y)dy$
2390 -+ !%$K0cos_dy(x)=\int_{-b/2}^{b/2} K0(|qpg_z|\rho)cos(x.qpg_x+y.qpg_y)dy$
2391 - xx_=xx
2392 - call quadrature(K0cos,-hb_,+hb_,qopt_,quad,ierr,ntrial_,accuracy_,npts_)
2393 - if (ierr/=0) then
2394 -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
2395 ---- src/67_common/m_io_kss.F90 2010-12-01 19:47:18.000000000 +0000
2396 -+++ src/67_common/m_io_kss.F90 2011-01-05 17:30:48.000000000 +0000
2397 -@@ -706,7 +706,7 @@
2398 -
2399 - write(msg,'(3a)')ch10,' Opening file for KS structure output: ',TRIM(filekss)
2400 - call wrtout(std_out,msg,'COLL')
2401 -- !$call wrtout(ab_out,msg,'COLL')
2402 -+ !%call wrtout(ab_out,msg,'COLL')
2403 -
2404 - write(msg,'(a,i6)') ' number of Gamma centered plane waves ',npwkss
2405 - call wrtout(std_out,msg,'COLL')
2406 -diff -Naur abinit-6.4.2.bak/src/67_common/m_oscillators.F90 abinit-6.4.2/src/67_common/m_oscillators.F90
2407 ---- src/67_common/m_oscillators.F90 2010-12-01 19:47:18.000000000 +0000
2408 -+++ src/67_common/m_oscillators.F90 2011-01-05 17:29:29.000000000 +0000
2409 -@@ -725,7 +725,7 @@
2410 - Osc%iq_bz = iq_bz
2411 - Osc%q_bz = Qmesh%bz(:,iq_bz)
2412 -
2413 -- !$call get_BZ_item(Qmesh,Osc%iq_bz,Osc%q_bz,Osc%iq_ibz,Osc%isym_q,Osc%itim_q,Osc%ph_mqt)
2414 -+ !%call get_BZ_item(Qmesh,Osc%iq_bz,Osc%q_bz,Osc%iq_ibz,Osc%isym_q,Osc%itim_q,Osc%ph_mqt)
2415 -
2416 - ! Get index of k-q = BZ(k-q) + g0. Note that k-q might fall outside the first BZ.
2417 - call get_BZ_diff(Kmesh,Osc%k_bz,Osc%q_bz,Osc%ikmq_bz,Osc%g0,nfound)
2418 -diff -Naur abinit-6.4.2.bak/src/67_common/outkss.F90 abinit-6.4.2/src/67_common/outkss.F90
2419 ---- src/67_common/outkss.F90 2010-12-01 19:47:18.000000000 +0000
2420 -+++ src/67_common/outkss.F90 2011-01-05 17:23:51.000000000 +0000
2421 -@@ -132,7 +132,7 @@
2422 - #endif
2423 -
2424 - use m_io_tools, only : get_unit
2425 -- !$use m_numeric_tools, only : bisect
2426 -+ !%use m_numeric_tools, only : bisect
2427 - use m_gsphere, only : merge_and_sort_kg, table_gbig2kg, get_kg
2428 - use m_io_kss, only : write_kss_wfgk, write_kss_header, k2gamma_centered
2429 - use m_hamiltonian, only : ddiago_ctl_type, init_ddiago_ctl
2430 -@@ -461,7 +461,7 @@
2431 - EXIT
2432 - end if
2433 - end do
2434 --!$ ishm=bisect(shlim,npwkss)
2435 -+!% ishm=bisect(shlim,npwkss)
2436 -
2437 - if (shlim(ishm)/=npwkss) then
2438 - nrst1=shlim(ishm)
2439 -diff -Naur abinit-6.4.2.bak/src/68_gw/bloch_interp.F90 abinit-6.4.2/src/68_gw/bloch_interp.F90
2440 ---- src/68_gw/bloch_interp.F90 2010-12-01 19:47:18.000000000 +0000
2441 -+++ src/68_gw/bloch_interp.F90 2011-01-05 16:23:50.000000000 +0000
2442 -@@ -466,7 +466,7 @@
2443 -
2444 - call get_BZ_item(Kmesh,ik2_bz,kk2,ik2_ibz,k2_sym,k2_tim,k2_eimkt,k2_umklp)
2445 -
2446 -- !$ik2_ibz = Kmesh%tab(ik2_bz)
2447 -+ !%ik2_ibz = Kmesh%tab(ik2_bz)
2448 - nband_k2 = Wfd%nband(ik2_ibz,spin)
2449 -
2450 - inv_k2_sym = toinv(1,k2_sym)
2451 -@@ -567,19 +567,19 @@
2452 - write(*,*)"with_sym",with_sym," without_sym",without_sym
2453 - #endif
2454 -
2455 -- !$if (Wfd%usepaw==1) then
2456 -- !$ allocate(Cp_k1 (Wfd%natom,nspinor))
2457 -- !$ call cprj_alloc(Cp_k1,0,Wfd%nlmn_atm)
2458 --
2459 -- !$ allocate(Cp_k2 (Wfd%natom,nspinor))
2460 -- !$ call cprj_alloc(Cp_k2,0,Wfd%nlmn_atm)
2461 -- !$end if
2462 -+ !%if (Wfd%usepaw==1) then
2463 -+ !% allocate(Cp_k1 (Wfd%natom,nspinor))
2464 -+ !% call cprj_alloc(Cp_k1,0,Wfd%nlmn_atm)
2465 -+
2466 -+ !% allocate(Cp_k2 (Wfd%natom,nspinor))
2467 -+ !% call cprj_alloc(Cp_k2,0,Wfd%nlmn_atm)
2468 -+ !%end if
2469 -
2470 - call wrtout(std_out,"Using version without symmetries","COLL")
2471 - do ik2_bz=1,Kmesh%nbz
2472 - call get_BZ_item(Kmesh,ik2_bz,kk2,ik2_ibz,k2_sym,k2_tim,k2_eimkt,k2_umklp,k2_isirred)
2473 -
2474 -- !$ik2_ibz = Kmesh%tab(ik2_bz)
2475 -+ !%ik2_ibz = Kmesh%tab(ik2_bz)
2476 -
2477 - nband_k2 = Wfd%nband(ik2_ibz,spin)
2478 -
2479 -@@ -597,7 +597,7 @@
2480 -
2481 - do ik1_bz=1,ik2_bz
2482 -
2483 -- !$ik1_ibz = Kmesh%tab(ik1_bz)
2484 -+ !%ik1_ibz = Kmesh%tab(ik1_bz)
2485 - call get_BZ_item(Kmesh,ik1_bz,kk1,ik1_ibz,k1_sym,k1_tim,k1_eimkt,k1_umklp,k1_isirred)
2486 -
2487 - nband_k1 = Wfd%nband(ik1_ibz,spin)
2488 -@@ -616,7 +616,7 @@
2489 - end if
2490 -
2491 - if (Wfd%usepaw==1) then
2492 -- !$call paw_symcprj(ik1_bz,nspinor,1,Cryst,Kmesh,Psps,Pawtab,Pawang,Cp_k1)
2493 -+ !%call paw_symcprj(ik1_bz,nspinor,1,Cryst,Kmesh,Psps,Pawtab,Pawang,Cp_k1)
2494 - Cp_k1 => Pku_bz(:,:,band1,ik1_bz)
2495 - ovlp_paw = paw_overlap(Cp_k1,Cp_k2,typat_sort,Pawtab) ! Be careful as Cp are always sorted.
2496 - blk_ovlp = blk_ovlp + DCMPLX(ovlp_paw(1),ovlp_paw(2))
2497 -@@ -671,8 +671,8 @@
2498 - end do
2499 - end do
2500 - deallocate(Pku_bz)
2501 -- !$call cprj_free(Cp_k1); deallocate(Cp_k1)
2502 -- !$call cprj_free(Cp_k2); deallocate(Cp_k2)
2503 -+ !%call cprj_free(Cp_k1); deallocate(Cp_k1)
2504 -+ !%call cprj_free(Cp_k2); deallocate(Cp_k2)
2505 - end if
2506 - !
2507 - ! ========================================
2508 -@@ -718,8 +718,8 @@
2509 - !
2510 -
2511 - !istwfk=1; nsppol_=1; nkibz_=1: nband_(:,:)=blc_size
2512 -- !$call wfd_init(Wlcd,Cryst,Pawtab,Psps,keep_ur,Wfd%paral_kgb,Wfd%npwwfn,blc_size,nband_,nkibz_,nsppol_,bks_mask,&
2513 -- !$& Wfd%nspden,Wfd%nspinor,istwfk,kibz,ngfft,mg0,gvec,nloalg,comm)
2514 -+ !%call wfd_init(Wlcd,Cryst,Pawtab,Psps,keep_ur,Wfd%paral_kgb,Wfd%npwwfn,blc_size,nband_,nkibz_,nsppol_,bks_mask,&
2515 -+ !%& Wfd%nspden,Wfd%nspinor,istwfk,kibz,ngfft,mg0,gvec,nloalg,comm)
2516 -
2517 - allocate(blc_ug(Wfd%npwwfn*nspinor,blc_size))
2518 - allocate(sum_ur(Wfd%nfft*nspinor))
2519 -@@ -799,7 +799,7 @@
2520 -
2521 - write(blc_unt,rec=1)reclen,Wfd%npwwfn,nspinor,blc_size,spin
2522 - do blc=1,blc_size
2523 -- !$write(blc_unt,rec=1+blc)blc_ug(:,blc)
2524 -+ !%write(blc_unt,rec=1+blc)blc_ug(:,blc)
2525 - end do
2526 -
2527 - close(unit=blc_unt)
2528 -@@ -1274,11 +1274,11 @@
2529 -
2530 - ! Recalculate new occupation numbers and new Fermi level.
2531 - ! FIXME Have to calculate new occ for semiconductors
2532 -- !$call update_occ(ioBSt,Dtset%fixmom,Dtset%stmbias,Dtset%prtvol)
2533 -+ !%call update_occ(ioBSt,Dtset%fixmom,Dtset%stmbias,Dtset%prtvol)
2534 -
2535 - call bst_write_bands(ioBSt,Cryst%gmet,"interpolated",ierr)
2536 -
2537 -- !$call bst_print_fs(ioBst,Cryst,Dtset%kptrlatt,Dtset%nshiftk,Dtset%shiftk,"Fermi_surface",ierr)
2538 -+ !%call bst_print_fs(ioBst,Cryst,Dtset%kptrlatt,Dtset%nshiftk,Dtset%shiftk,"Fermi_surface",ierr)
2539 - !
2540 - ! ===================================
2541 - ! ==== Optionally Write WFK file ====
2542 -@@ -1380,8 +1380,8 @@
2543 - end do
2544 - deallocate(umat_k)
2545 -
2546 -- !$call XGEMM('N','N',nsize,sizegw,rangeb,cone_gw,wf_ks(:,lowerb:upperb),nsize,&
2547 -- !$& umat_k,rangeb,czero_gw,wf_qp(spad+1:spad+nsize,b1gw:b2gw),nsize)
2548 -+ !%call XGEMM('N','N',nsize,sizegw,rangeb,cone_gw,wf_ks(:,lowerb:upperb),nsize,&
2549 -+ !%& umat_k,rangeb,czero_gw,wf_qp(spad+1:spad+nsize,b1gw:b2gw),nsize)
2550 -
2551 - #if 0
2552 - ! * Perform conversion of the basis set.
2553 -diff -Naur abinit-6.4.2.bak/src/68_gw/calc_density.F90 abinit-6.4.2/src/68_gw/calc_density.F90
2554 ---- src/68_gw/calc_density.F90 2010-12-01 19:47:18.000000000 +0000
2555 -+++ src/68_gw/calc_density.F90 2011-01-05 16:15:05.000000000 +0000
2556 -@@ -336,8 +336,8 @@
2557 - end if
2558 - call wrtout(std_out,msg,'COLL') ; call wrtout(ab_out,msg,'COLL')
2559 -
2560 --!$write(msg,'(a,f9.4)')' Renormalizing smooth charge density using nratio = ',nratio
2561 --!$ rhor(:,:)=nratio*rhor(:,:)
2562 -+!%write(msg,'(a,f9.4)')' Renormalizing smooth charge density using nratio = ',nratio
2563 -+!% rhor(:,:)=nratio*rhor(:,:)
2564 -
2565 - write(msg,'(a,f9.6)')' average of density, n = ',rhoav
2566 - call wrtout(std_out,msg,'COLL') ; call wrtout(ab_out,msg,'COLL')
2567 -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
2568 ---- src/68_gw/calc_sigc_cd.F90 2010-12-01 19:47:18.000000000 +0000
2569 -+++ src/68_gw/calc_sigc_cd.F90 2011-01-05 16:28:20.000000000 +0000
2570 -@@ -137,7 +137,7 @@
2571 - call spline(DBLE(omega(1:nomegaer)),DBLE(epsrho(ig,1:nomegaer)),nomegaer,zero,zero,rtmp_r)
2572 - call spline(DBLE(omega(1:nomegaer)),DBLE(AIMAG(epsrho(ig,1:nomegaer))),nomegaer,zero,zero,rtmp_i)
2573 -
2574 -- !$call spline_complex( DBLE(omega(1:nomegaer)), epsrho(ig,1:nomegaer), nomegaer, zero, zero, rtmp )
2575 -+ !%call spline_complex( DBLE(omega(1:nomegaer)), epsrho(ig,1:nomegaer), nomegaer, zero, zero, rtmp )
2576 -
2577 - do ios=1,nomega
2578 -
2579 -@@ -150,7 +150,7 @@
2580 - call splint(nomegaer,DBLE(omega(1:nomegaer)),DBLE(AIMAG(epsrho(ig,1:nomegaer))),rtmp_i,1,tmp_x,tmp_y)
2581 - rt_imag = tmp_y(1)
2582 -
2583 -- !$call splint_complex(nomegaer,DBLE(omega(1:nomegaer)),epsrho(ig,1:nomegaer),rtmp,1,tmp_x,yfit)
2584 -+ !%call splint_complex(nomegaer,DBLE(omega(1:nomegaer)),epsrho(ig,1:nomegaer),rtmp,1,tmp_x,yfit)
2585 -
2586 - ct=DCMPLX(rt_real,rt_imag)
2587 -
2588 -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
2589 ---- src/68_gw/calc_sigc_me.F90 2010-12-01 19:47:18.000000000 +0000
2590 -+++ src/68_gw/calc_sigc_me.F90 2011-01-05 16:35:54.000000000 +0000
2591 -@@ -266,7 +266,7 @@
2592 - ! Index of the GW point in the BZ array, its image in IBZ and time-reversal ===
2593 - jk_bz=Sigp%kptgw2bz(ikcalc)
2594 - call get_BZ_item(Kmesh,jk_bz,kgw,jk_ibz,isym_kgw,jik,ph_mkgwt)
2595 -- !$call get_IBZ_item(Kmesh,jk_ibz,kibz,wtk)
2596 -+ !%call get_IBZ_item(Kmesh,jk_ibz,kibz,wtk)
2597 - spinrot_kgw=Cryst%spinrot(:,isym_kgw)
2598 - !
2599 - ib1=minbnd
2600 -@@ -450,10 +450,10 @@
2601 - ! pass it to the setup_ppmodel
2602 - ! * It would be possible to calculate rho(G) using Paw_pwff though. Maybe faster but
2603 - ! results would depend on the expression used for the matrix elements. This is safer.
2604 --!$ allocate(ks_rhor_paw(rho_nfftot,Dtset%nspden))
2605 --!$ call denfgr(Cryst%natom,Dtset%nspden,ks_nhat,Cryst%ntypat,Pawfgr,Pawfgrtab,Pawrad,KS_pawrhoij,Pawtab,&
2606 --!$ & ks_rhor,ks_rhor_paw,Psps,Cryst%typat)
2607 --!$ deallocate(ks_rhor_paw)
2608 -+!% allocate(ks_rhor_paw(rho_nfftot,Dtset%nspden))
2609 -+!% call denfgr(Cryst%natom,Dtset%nspden,ks_nhat,Cryst%ntypat,Pawfgr,Pawfgrtab,Pawrad,KS_pawrhoij,Pawtab,&
2610 -+!% & ks_rhor,ks_rhor_paw,Psps,Cryst%typat)
2611 -+!% deallocate(ks_rhor_paw)
2612 - end if ! usepaw==1
2613 - !
2614 - !
2615 -@@ -640,8 +640,8 @@
2616 - #ifdef HAVE_CLIB
2617 - call clib_progress_bar(ik_bz,Kmesh%nbz)
2618 - #else
2619 -- !$write(msg,'(2(a,i4),a,i3)')' csigme : ik_bz ',ik_bz,'/',Kmesh%nbz,' done by processor ',Wfd%my_rank
2620 -- !$call wrtout(std_out,msg,'PERS')
2621 -+ !%write(msg,'(2(a,i4),a,i3)')' csigme : ik_bz ',ik_bz,'/',Kmesh%nbz,' done by processor ',Wfd%my_rank
2622 -+ !%call wrtout(std_out,msg,'PERS')
2623 - #endif
2624 - !
2625 - ! === Find the corresponding irred q-point ===
2626 -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
2627 ---- src/68_gw/calc_sigx_me.F90 2010-12-01 19:47:18.000000000 +0000
2628 -+++ src/68_gw/calc_sigx_me.F90 2011-01-05 10:06:07.000000000 +0000
2629 -@@ -237,7 +237,7 @@
2630 - ! === Index of the GW point in the BZ array, its image in IBZ and time-reversal ===
2631 - jk_bz=Sigp%kptgw2bz(ikcalc)
2632 - call get_BZ_item(Kmesh,jk_bz,kgw,jk_ibz,isym_kgw,jik,ph_mkgwt)
2633 -- !$call get_IBZ_item(Kmesh,jk_ibz,kibz,wtk)
2634 -+ !%call get_IBZ_item(Kmesh,jk_ibz,kibz,wtk)
2635 - spinrot_kgw(:)=Cryst%spinrot(:,isym_kgw)
2636 - !
2637 - write(msg,'(2a,3f8.3,2a,2(i3,a))')ch10,&
2638 -@@ -486,8 +486,8 @@
2639 - #ifdef HAVE_CLIB
2640 - call clib_progress_bar(ik_bz,Kmesh%nbz)
2641 - #else
2642 -- !$write(msg,'(2(a,i4),a,i3)')' calc_sigx_me : ik_bz ',ik_bz,'/',Kmesh%nbz,' done by processor ',Wfd%my_rank
2643 -- !$call wrtout(std_out,msg,'PERS')
2644 -+ !%write(msg,'(2(a,i4),a,i3)')' calc_sigx_me : ik_bz ',ik_bz,'/',Kmesh%nbz,' done by processor ',Wfd%my_rank
2645 -+ !%call wrtout(std_out,msg,'PERS')
2646 - #endif
2647 - !
2648 - ! * Find the corresponding irreducible q-point.
2649 -diff -Naur abinit-6.4.2.bak/src/68_gw/cchi0.F90 abinit-6.4.2/src/68_gw/cchi0.F90
2650 ---- src/68_gw/cchi0.F90 2010-12-01 19:47:18.000000000 +0000
2651 -+++ src/68_gw/cchi0.F90 2011-01-05 10:06:42.000000000 +0000
2652 -@@ -417,7 +417,7 @@
2653 - call clib_progress_bar(ik_bz,Kmesh%nbz)
2654 - #else
2655 - write(msg,'(2(a,i4),a,i2,a,i3)')' ik = ',ik_bz,' / ',Kmesh%nbz,' is = ',is,' done by processor ',Wfd%my_rank
2656 -- !$call wrtout(std_out,msg,'PERS')
2657 -+ !%call wrtout(std_out,msg,'PERS')
2658 - #endif
2659 - !
2660 - ! * Get ik_ibz, non-symmorphic phase, ph_mkt, and symmetries from ik_bz.
2661 -diff -Naur abinit-6.4.2.bak/src/68_gw/classify_bands.F90 abinit-6.4.2/src/68_gw/classify_bands.F90
2662 ---- src/68_gw/classify_bands.F90 2010-12-01 19:47:18.000000000 +0000
2663 -+++ src/68_gw/classify_bands.F90 2011-01-05 16:28:45.000000000 +0000
2664 -@@ -253,7 +253,7 @@
2665 - !tmp_sym(:,:,isym) = Cryst%symrec(:,:,isym)
2666 - !tmp_sym(:,:,isym) = TRANSPOSE(Cryst%symrec(:,:,isym))
2667 - end do
2668 -- !$call setsymrhoij(Cryst%rprimd,lmax,Cryst%nsym,3,Cryst%gprimd,tmp_sym,zarot)
2669 -+ !%call setsymrhoij(Cryst%rprimd,lmax,Cryst%nsym,3,Cryst%gprimd,tmp_sym,zarot)
2670 - !call setsymrhoij(Cryst%gprimd,lmax,Cryst%nsym,1,Cryst%rprimd,tmp_sym,zarot)
2671 - deallocate(tmp_sym)
2672 - zarot = Pawang%zarot
2673 -diff -Naur abinit-6.4.2.bak/src/68_gw/cohsex_me.F90 abinit-6.4.2/src/68_gw/cohsex_me.F90
2674 ---- src/68_gw/cohsex_me.F90 2010-12-01 19:47:18.000000000 +0000
2675 -+++ src/68_gw/cohsex_me.F90 2011-01-05 10:14:27.000000000 +0000
2676 -@@ -228,7 +228,7 @@
2677 - ! Index of the GW point in the BZ array, its image in IBZ and time-reversal ===
2678 - jk_bz=Sigp%kptgw2bz(ikcalc)
2679 - call get_BZ_item(Kmesh,jk_bz,kgw,jk_ibz,isym_kgw,jik,ph_mkgwt)
2680 -- !$call get_IBZ_item(Kmesh,jk_ibz,kibz,wtk)
2681 -+ !%call get_IBZ_item(Kmesh,jk_ibz,kibz,wtk)
2682 - spinrot_kgw=Cryst%spinrot(:,isym_kgw)
2683 - !
2684 - ib1=minbnd
2685 -@@ -559,8 +559,8 @@
2686 - #ifdef HAVE_CLIB
2687 - call clib_progress_bar(ik_bz,Kmesh%nbz)
2688 - #else
2689 -- !$write(msg,'(2(a,i4),a,i3)')' csigme : ik_bz ',ik_bz,'/',Kmesh%nbz,' done by processor ',Wfd%my_rank
2690 -- !$call wrtout(std_out,msg,'PERS')
2691 -+ !%write(msg,'(2(a,i4),a,i3)')' csigme : ik_bz ',ik_bz,'/',Kmesh%nbz,' done by processor ',Wfd%my_rank
2692 -+ !%call wrtout(std_out,msg,'PERS')
2693 - #endif
2694 - !
2695 - ! === Find the corresponding irred q-point ===
2696 -diff -Naur abinit-6.4.2.bak/src/68_gw/debug_tools.F90 abinit-6.4.2/src/68_gw/debug_tools.F90
2697 ---- src/68_gw/debug_tools.F90 2010-12-01 19:47:18.000000000 +0000
2698 -+++ src/68_gw/debug_tools.F90 2011-01-05 16:31:28.000000000 +0000
2699 -@@ -624,9 +624,9 @@
2700 - ! FIXME should check the expression in case of non zero tnons.
2701 - ! /***********************************************************************/
2702 -
2703 -- !$all init_oscillator(Osc,isppol,jkbz,Kmesh,iq_bz,Qmesh,Ep%npwe,nspinor,(/ib,ib/),(/ib1,ib2/) )
2704 -- !$call calc_pw_oscillator(Wf_info,Cryst,Osc,MPI_enreg)
2705 -- !$call destroy_oscillator(Osc)
2706 -+ !%all init_oscillator(Osc,isppol,jkbz,Kmesh,iq_bz,Qmesh,Ep%npwe,nspinor,(/ib,ib/),(/ib1,ib2/) )
2707 -+ !%call calc_pw_oscillator(Wf_info,Cryst,Osc,MPI_enreg)
2708 -+ !%call destroy_oscillator(Osc)
2709 -
2710 - do ib1=1,Ep%nbnds ! Loop over "conduction" states.
2711 - do ib2=1,Ep%nbnds ! Loop over "valence" states.
2712 -diff -Naur abinit-6.4.2.bak/src/68_gw/gw_tools.F90 abinit-6.4.2/src/68_gw/gw_tools.F90
2713 ---- src/68_gw/gw_tools.F90 2010-12-01 19:47:18.000000000 +0000
2714 -+++ src/68_gw/gw_tools.F90 2011-01-05 10:04:31.000000000 +0000
2715 -@@ -760,7 +760,7 @@
2716 - if (ABS(deltaf_b1kmq_b2k) >= GW_TOL_DOCC) then
2717 - bbp_mask(ib1,ib2)=.TRUE.
2718 - if (deltaeGW_b1kmq_b2k<zero) bbp_mask(ib1,ib2)=.FALSE. ! Only positive frequencies are needed for the Hilbert transform.
2719 -- !$if (use_tr .and. ib1<ib2) bbp_mask(ib1,ib2)=.FALSE. ! GAIN a factor ~2 thanks to time-reversal.
2720 -+ !%if (use_tr .and. ib1<ib2) bbp_mask(ib1,ib2)=.FALSE. ! GAIN a factor ~2 thanks to time-reversal.
2721 - end if
2722 -
2723 - CASE DEFAULT
2724 -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
2725 ---- src/68_gw/m_dyson_solver.F90 2010-12-01 19:47:18.000000000 +0000
2726 -+++ src/68_gw/m_dyson_solver.F90 2011-01-05 10:04:58.000000000 +0000
2727 -@@ -172,7 +172,7 @@
2728 - ! Index of this k-point in the IBZ array.
2729 - ikbz_gw=Sigp%kptgw2bz(ikcalc)
2730 - call get_BZ_item(Kmesh,ikbz_gw,kbz_gw,jkibz,isym,itim,phase)
2731 -- !$call get_IBZ_item(Kmesh,jkibz,kibz,wtk)
2732 -+ !%call get_IBZ_item(Kmesh,jkibz,kibz,wtk)
2733 -
2734 - sigc=czero; dsigc=czero
2735 -
2736 -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
2737 ---- src/68_gw/m_fft_prof.F90 2010-12-01 19:47:18.000000000 +0000
2738 -+++ src/68_gw/m_fft_prof.F90 2011-01-05 10:05:26.000000000 +0000
2739 -@@ -64,11 +64,11 @@
2740 - type,public :: FFT_prof_t
2741 - !private
2742 - integer :: ncalls
2743 -- !$integer :: ndat
2744 -+ !%integer :: ndat
2745 - character(len=TNAME_LEN) :: test_name
2746 - real(dp) :: cpu_time
2747 - real(dp) :: wall_time
2748 -- !$integer :: ngfft(18)=-1
2749 -+ !%integer :: ngfft(18)=-1
2750 - real(dp),pointer :: results(:,:,:) SET2NULL
2751 - end type FFT_prof_t
2752 -
2753 -diff -Naur abinit-6.4.2.bak/src/68_gw/m_gwannier.F90 abinit-6.4.2/src/68_gw/m_gwannier.F90
2754 ---- src/68_gw/m_gwannier.F90 2010-12-01 19:47:18.000000000 +0000
2755 -+++ src/68_gw/m_gwannier.F90 2011-01-05 16:34:34.000000000 +0000
2756 -@@ -365,8 +365,8 @@
2757 - call destroy_BZ_mesh_type(Kpath)
2758 - call bstruct_clean(KS_BSt)
2759 - call bstruct_clean(QP_BSt)
2760 -- !$call bstruct_clean(QP_intp)
2761 -- !$call bstruct_clean(KS_intp)
2762 -+ !%call bstruct_clean(QP_intp)
2763 -+ !%call bstruct_clean(KS_intp)
2764 - call hdr_clean(Hdr)
2765 -
2766 - STOP 'myGWannier OK'
2767 -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
2768 ---- src/68_gw/m_io_screening.F90 2010-12-01 19:47:18.000000000 +0000
2769 -+++ src/68_gw/m_io_screening.F90 2011-01-05 16:19:49.000000000 +0000
2770 -@@ -66,69 +66,69 @@
2771 - !!
2772 - !! SOURCE
2773 -
2774 --!$ type,public :: ScrHdr_type
2775 --!$
2776 --!$ !Other variables that can be added are, for the moment, commented out.
2777 --!$ !Most of them are related to the Abinit implementation and should not compare in the ETSF specs
2778 --!$
2779 --!$ !Index of the qlwl section?
2780 --!$ !gwcomp, gwencomp ! Info on the extrapolar algorithm
2781 --!$
2782 --!$ integer :: ID ! Matrix identifier: O if not yet defined, 1 for chi0,
2783 --!$ ! 2 for chi, 3 for epsilon, 4 for espilon^{-1}
2784 --!$ integer :: ikxc ! Kxc kernel used, 0 for None (RPA), >0 for static TDDFT (=ixc), <0 for frequency-dependent TDDFT
2785 --!$ integer :: inclvkb ! q-->0 treatment, 0 for None, 1-2 for transversal gauge, 3 for longitudinal
2786 --!$ integer :: headform ! format of the SCR header
2787 --!$ integer :: fform ! File format:
2788 --!$ integer :: gwcalctyp ! Calculation type (G0W0, G0W, GW ...)
2789 --!$ integer :: nI,nJ ! Number of spin components (rows,columns) in chi|eps^-1. (1,1) if collinear.
2790 --!$ ! The internal representation of the matrix is eps(nI*npwe,nJ*npwe)
2791 --!$ integer :: nqibz ! Number of q-points in the IBZ.
2792 --!$ integer :: nqlwl ! Number of points for the treatment of the long wavelength limit.
2793 --!$ integer :: nomega ! Total number of frequencies.
2794 --!$ integer :: nbnds_used ! Number of bands used during the screening calculation (only for info)
2795 --!$ integer :: npwe ! Number of G vectors reported on the file.
2796 --!$ integer :: npwwfn_used ! Number of G vectors for wavefunctions used during the screening calculation (only for info)
2797 --!$ integer :: spmeth ! Method used to approximate the delta function in the expression for Im Chi_0
2798 --!$ integer :: test_type ! 0 for None, 1 for TEST-PARTICLE, 2 for TEST-ELECTRON (only for TDDFT)
2799 --!$ integer :: tordering ! 0 if not defined, 1 for Time-Ordered, 2 for Advanced, 3 for Retarded.
2800 --!$
2801 --!$ real(dp) :: soenergy ! Scissor Energy, zero if not used
2802 --!$ real(dp) :: spsmear ! Smearing of the delta in case of spmeth==2
2803 --!$ real(dp) :: zcut ! Imaginary shift to avoid the poles along the real axis.
2804 --!$
2805 --!$ type(Hdr_type) :: Hdr ! The abinit header.
2806 --!$
2807 --!$!arrays
2808 --!$ character(len=80) :: title(2)
2809 --!$ ! Title describing the content of the file.
2810 --!$
2811 --!$ integer,pointer :: gvec(:,:)
2812 --!$ ! gvec(3,npwe)
2813 --!$ ! G vectors in r.l.u.
2814 --!$
2815 --!$ real(dp),pointer :: qibz(:,:)
2816 --!$ ! qibz(3,nqibz)
2817 --!$ ! q-points in r.l.u.
2818 --!$
2819 --!$ real(dp),pointer :: qlwl(:,:)
2820 --!$ ! qlwl(3,nqlwl)
2821 --!$ ! q-points for the long wave-length limit treatment (r.l.u)
2822 --!$
2823 --!$ complex(dpc),pointer :: lwing(:,:,:)
2824 --!$ ! lwing(npwe,nomega,nqlwl)
2825 --!$ ! Lower wings for the different q"s -->0
2826 --!$
2827 --!$ complex(dpc),pointer :: omega(:)
2828 --!$ ! omega(nomega)
2829 --!$ ! All frequencies calculated both along the real and the imaginary axis.
2830 --!$
2831 --!$ complex(dpc),pointer :: uwing(:,:,:)
2832 --!$ ! uwing(npwe,nomega,nqlwl)
2833 --!$ ! Upper wings for the different q"s -->0
2834 --!$
2835 --!$ end type ScrHdr_type
2836 --!$!!***
2837 -+!% type,public :: ScrHdr_type
2838 -+!%
2839 -+!% !Other variables that can be added are, for the moment, commented out.
2840 -+!% !Most of them are related to the Abinit implementation and should not compare in the ETSF specs
2841 -+!%
2842 -+!% !Index of the qlwl section?
2843 -+!% !gwcomp, gwencomp ! Info on the extrapolar algorithm
2844 -+!%
2845 -+!% integer :: ID ! Matrix identifier: O if not yet defined, 1 for chi0,
2846 -+!% ! 2 for chi, 3 for epsilon, 4 for espilon^{-1}
2847 -+!% integer :: ikxc ! Kxc kernel used, 0 for None (RPA), >0 for static TDDFT (=ixc), <0 for frequency-dependent TDDFT
2848 -+!% integer :: inclvkb ! q-->0 treatment, 0 for None, 1-2 for transversal gauge, 3 for longitudinal
2849 -+!% integer :: headform ! format of the SCR header
2850 -+!% integer :: fform ! File format:
2851 -+!% integer :: gwcalctyp ! Calculation type (G0W0, G0W, GW ...)
2852 -+!% integer :: nI,nJ ! Number of spin components (rows,columns) in chi|eps^-1. (1,1) if collinear.
2853 -+!% ! The internal representation of the matrix is eps(nI*npwe,nJ*npwe)
2854 -+!% integer :: nqibz ! Number of q-points in the IBZ.
2855 -+!% integer :: nqlwl ! Number of points for the treatment of the long wavelength limit.
2856 -+!% integer :: nomega ! Total number of frequencies.
2857 -+!% integer :: nbnds_used ! Number of bands used during the screening calculation (only for info)
2858 -+!% integer :: npwe ! Number of G vectors reported on the file.
2859 -+!% integer :: npwwfn_used ! Number of G vectors for wavefunctions used during the screening calculation (only for info)
2860 -+!% integer :: spmeth ! Method used to approximate the delta function in the expression for Im Chi_0
2861 -+!% integer :: test_type ! 0 for None, 1 for TEST-PARTICLE, 2 for TEST-ELECTRON (only for TDDFT)
2862 -+!% integer :: tordering ! 0 if not defined, 1 for Time-Ordered, 2 for Advanced, 3 for Retarded.
2863 -+!%
2864 -+!% real(dp) :: soenergy ! Scissor Energy, zero if not used
2865 -+!% real(dp) :: spsmear ! Smearing of the delta in case of spmeth==2
2866 -+!% real(dp) :: zcut ! Imaginary shift to avoid the poles along the real axis.
2867 -+!%
2868 -+!% type(Hdr_type) :: Hdr ! The abinit header.
2869 -+!%
2870 -+!%!arrays
2871 -+!% character(len=80) :: title(2)
2872 -+!% ! Title describing the content of the file.
2873 -+!%
2874 -+!% integer,pointer :: gvec(:,:)
2875 -+!% ! gvec(3,npwe)
2876 -+!% ! G vectors in r.l.u.
2877 -+!%
2878 -+!% real(dp),pointer :: qibz(:,:)
2879 -+!% ! qibz(3,nqibz)
2880 -+!% ! q-points in r.l.u.
2881 -+!%
2882 -+!% real(dp),pointer :: qlwl(:,:)
2883 -+!% ! qlwl(3,nqlwl)
2884 -+!% ! q-points for the long wave-length limit treatment (r.l.u)
2885 -+!%
2886 -+!% complex(dpc),pointer :: lwing(:,:,:)
2887 -+!% ! lwing(npwe,nomega,nqlwl)
2888 -+!% ! Lower wings for the different q"s -->0
2889 -+!%
2890 -+!% complex(dpc),pointer :: omega(:)
2891 -+!% ! omega(nomega)
2892 -+!% ! All frequencies calculated both along the real and the imaginary axis.
2893 -+!%
2894 -+!% complex(dpc),pointer :: uwing(:,:,:)
2895 -+!% ! uwing(npwe,nomega,nqlwl)
2896 -+!% ! Upper wings for the different q"s -->0
2897 -+!%
2898 -+!% end type ScrHdr_type
2899 -+!%!!***
2900 -
2901 - public :: scr_hdr_io ! I/O of the header (read/write/echo).
2902 - public :: print_ScrHdr ! Print the SCR related part of the header.
2903 -@@ -748,7 +748,7 @@
2904 - Hscr%ikxc =ikxc
2905 - Hscr%inclvkb =Ep%inclvkb
2906 - Hscr%fform =1002
2907 -- !$Hscr%fform =1102
2908 -+ !%Hscr%fform =1102
2909 - Hscr%headform =HSCR_LATEST_HEADFORM
2910 - Hscr%gwcalctyp =Ep%gwcalctyp
2911 - Hscr%nI =Ep%nI
2912 -diff -Naur abinit-6.4.2.bak/src/68_gw/m_qparticles.F90 abinit-6.4.2/src/68_gw/m_qparticles.F90
2913 ---- src/68_gw/m_qparticles.F90 2010-12-01 19:47:18.000000000 +0000
2914 -+++ src/68_gw/m_qparticles.F90 2011-01-05 16:22:01.000000000 +0000
2915 -@@ -333,7 +333,7 @@
2916 - ! =====================
2917 -
2918 - ! Dump info on the crystal structure.
2919 -- !$call abi_crystal_put(Cryst,filetsf)
2920 -+ !%call abi_crystal_put(Cryst,filetsf)
2921 -
2922 - call etsf_io_low_set_write_mode(ncid,lstat,Error_data=Error)
2923 - if (.not.lstat) goto 1000
2924 -@@ -500,7 +500,7 @@
2925 - ABI_CHECK(dimrho==0.or.dimrho==1,'dimrho must be 0 or 1')
2926 -
2927 - ! This does not work in parallel !!?
2928 -- !$my_rank = xcomm_rank(MPI_enreg%spaceComm)
2929 -+ !%my_rank = xcomm_rank(MPI_enreg%spaceComm)
2930 - call xme_init(MPI_enreg,my_rank)
2931 - master=0
2932 - !
2933 -@@ -691,7 +691,7 @@
2934 -
2935 - call rhoij_io(pawrhoij,unqps,BSt%nsppol,BSt%nspinor,nspden,nlmn_type,Cryst%typat,&
2936 - & HDR_LATEST_HEADFORM,"Read",form="formatted")
2937 -- !$call rhoij_io(pawrhoij,std_out,BSt%nsppol,BSt%nspinor,nspden,nlmn_type,Cryst%typat,HDR_LATEST_HEADFORM,"Echo")
2938 -+ !%call rhoij_io(pawrhoij,std_out,BSt%nsppol,BSt%nspinor,nspden,nlmn_type,Cryst%typat,HDR_LATEST_HEADFORM,"Echo")
2939 -
2940 - deallocate(nlmn_type,typatR)
2941 - end if ! usepaw
2942 -@@ -739,9 +739,9 @@
2943 - deallocate(full_rmtmp)
2944 -
2945 - ! Read energies.
2946 -- !$call etsf_io_low_read_var(ncid,'m_lda_to_qp',m_lda_to_qp,lstat,Error_data=Error)
2947 -- !$if (.not.lstat) goto 1000
2948 -- !$BSt%eig(1:nbsc,ik,isppol)=en_tmp(1:nbsc)
2949 -+ !%call etsf_io_low_read_var(ncid,'m_lda_to_qp',m_lda_to_qp,lstat,Error_data=Error)
2950 -+ !%if (.not.lstat) goto 1000
2951 -+ !%BSt%eig(1:nbsc,ik,isppol)=en_tmp(1:nbsc)
2952 -
2953 - if ( ALL(ngfftf(1:3)==(/n1,n2,n3/)) ) then
2954 - call etsf_io_low_read_var(ncid,'qp_density',rhor_out,lstat,Error_data=Error)
2955 -diff -Naur abinit-6.4.2.bak/src/68_gw/m_screening.F90 abinit-6.4.2/src/68_gw/m_screening.F90
2956 ---- src/68_gw/m_screening.F90 2010-12-01 19:47:18.000000000 +0000
2957 -+++ src/68_gw/m_screening.F90 2011-01-05 16:30:36.000000000 +0000
2958 -@@ -360,7 +360,7 @@
2959 - end do
2960 -
2961 - rdwr=4
2962 -- !$call hdr_io_int(Er%fform,Er%Hscr%Hdr,rdwr,unt)
2963 -+ !%call hdr_io_int(Er%fform,Er%Hscr%Hdr,rdwr,unt)
2964 - end if ! verbose>0
2965 -
2966 - end subroutine print_epsilonm1_results
2967 -@@ -712,7 +712,7 @@
2968 -
2969 - call metric(gmet,gprimd,-1,rmet,Vcp%rprimd,ucvol)
2970 -
2971 -- !$ if (Er%ID/=0) call reset_Epsilonm1(Er)
2972 -+ !% if (Er%ID/=0) call reset_Epsilonm1(Er)
2973 - Er%ID=id_required
2974 -
2975 - if (Er%ID==Er%Hscr%ID) then
2976 -@@ -1790,7 +1790,7 @@
2977 - end if
2978 -
2979 - if (iqibz==1) then
2980 -- !$vc_sqrt => Vcp%vcqlwl_sqrt(:,iqlwl) ! Use Coulomb term for q-->0
2981 -+ !%vc_sqrt => Vcp%vcqlwl_sqrt(:,iqlwl) ! Use Coulomb term for q-->0
2982 - vc_sqrt => Vcp%vcqlwl_sqrt(:,1) ! TODO add treatment of non-Analytic behavior
2983 - else
2984 - vc_sqrt => Vcp%vc_sqrt(:,iqibz)
2985 -@@ -2169,7 +2169,7 @@
2986 - !
2987 - ! Change the body but do not add the corrections due to the head and the wings.
2988 - ! since they can be obtained on the fly from eps_body and the wings of eps^{-1}.
2989 -- !$chi0(2:,2:,iomega) = eps_body
2990 -+ !%chi0(2:,2:,iomega) = eps_body
2991 - end do !iomega
2992 -
2993 - deallocate(modg_inv,cvec)
2994 -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
2995 ---- src/68_gw/m_sigma_results.F90 2010-12-01 19:47:18.000000000 +0000
2996 -+++ src/68_gw/m_sigma_results.F90 2011-01-05 16:32:15.000000000 +0000
2997 -@@ -1220,7 +1220,7 @@
2998 - allocate(gw_corrections(2,KS_BSt%mband,KS_BSt%nkpt,KS_BSt%nsppol))
2999 - gw_corrections=zero
3000 - gw_corrections(1,:,:,:) = QP_BSt%eig - KS_BSt%eig
3001 -- !$gw_corrections = c2r(Sr%degw)
3002 -+ !%gw_corrections = c2r(Sr%degw)
3003 - GWdata%gw_corrections%data4D => gw_corrections
3004 -
3005 - call etsf_io_gwdata_put(ncid,GWdata,lstat,Error_data)
3006 -diff -Naur abinit-6.4.2.bak/src/68_gw/print_psps.F90 abinit-6.4.2/src/68_gw/print_psps.F90
3007 ---- src/68_gw/print_psps.F90 2010-12-01 19:47:18.000000000 +0000
3008 -+++ src/68_gw/print_psps.F90 2011-01-05 16:29:06.000000000 +0000
3009 -@@ -182,7 +182,7 @@
3010 - ! If mpspso is 2, lmnmax takes into account the spin-orbit projectors,
3011 - ! so, it is equal to the max of lmnprojso or lnprojso, see pspheader_type
3012 -
3013 --!$integer, pointer :: indlmn(:,:,:)
3014 -+!%integer, pointer :: indlmn(:,:,:)
3015 - ! indlmn(6,lmnmax,ntypat)
3016 - ! For each type of psp,
3017 - ! array giving l,m,n,lm,ln,spin for i=ln (if useylm=0)
3018 -diff -Naur abinit-6.4.2.bak/src/68_gw/setup_screening.F90 abinit-6.4.2/src/68_gw/setup_screening.F90
3019 ---- src/68_gw/setup_screening.F90 2010-12-01 19:47:18.000000000 +0000
3020 -+++ src/68_gw/setup_screening.F90 2011-01-05 16:27:08.000000000 +0000
3021 -@@ -238,10 +238,10 @@
3022 - call print_BZ_mesh(Kmesh,"K-mesh for the wavefunctions",std_out,Dtset%prtvol,"COLL")
3023 - call print_BZ_mesh(Kmesh,"K-mesh for the wavefunctions",ab_out, 0, "COLL")
3024 -
3025 -- !$call nullify_BZ_mesh(Kmesh4test)
3026 -- !$call make_mesh(Kmesh4test,Cryst,Dtset%kptopt,Dtset%kptrlatt,Dtset%nshiftk,Dtset%shiftk)
3027 -- !$call print_BZ_mesh(Kmesh4test,"Kmesh4test",std_out,prtvol=10)
3028 -- !$call destroy_BZ_mesh_type(Kmesh4test)
3029 -+ !%call nullify_BZ_mesh(Kmesh4test)
3030 -+ !%call make_mesh(Kmesh4test,Cryst,Dtset%kptopt,Dtset%kptrlatt,Dtset%nshiftk,Dtset%shiftk)
3031 -+ !%call print_BZ_mesh(Kmesh4test,"Kmesh4test",std_out,prtvol=10)
3032 -+ !%call destroy_BZ_mesh_type(Kmesh4test)
3033 - !
3034 - ! === Find Q-mesh, and do setup for long wavelength limit ===
3035 - ! * Stop if a nonzero umklapp is needed to reconstruct the BZ. In this case, indeed,
3036 -@@ -465,7 +465,7 @@
3037 -
3038 - ! To write the SCR header correctly, with heads and wings, we have
3039 - ! to make sure that q==0, if present, is the first q-point in the list.
3040 -- !$has_q0=(ANY(normv(Ep%qcalc(:,:),gmet,'G')<GW_TOLQ0)) !commented to avoid problems with sunstudio12
3041 -+ !%has_q0=(ANY(normv(Ep%qcalc(:,:),gmet,'G')<GW_TOLQ0)) !commented to avoid problems with sunstudio12
3042 - has_q0=.FALSE.
3043 - do iq=1,Ep%nqcalc
3044 - if (normv(Ep%qcalc(:,iq),gmet,'G')<GW_TOLQ0) then
3045 -@@ -522,7 +522,7 @@
3046 - !write(*,*)MAXVAL(ABS(occfact(:)-KS_BSt%occ(:)))
3047 -
3048 - !TODO call update_occ here
3049 -- !$call update_occ(KS_BSt,fixmom,stmbias,Dtset%prtvol)
3050 -+ !%call update_occ(KS_BSt,fixmom,stmbias,Dtset%prtvol)
3051 -
3052 - deallocate(doccde,eigen,npwarr)
3053 -
3054 -diff -Naur abinit-6.4.2.bak/src/68_gw/setup_sigma.F90 abinit-6.4.2/src/68_gw/setup_sigma.F90
3055 ---- src/68_gw/setup_sigma.F90 2010-12-01 19:47:18.000000000 +0000
3056 -+++ src/68_gw/setup_sigma.F90 2011-01-05 16:33:32.000000000 +0000
3057 -@@ -421,7 +421,7 @@
3058 - & Kmesh%nibz,npwarr,Dtset%nsppol,Dtset%nspinor,Dtset%tphysel,Dtset%tsmear,Dtset%occopt,occfact,Kmesh%wt)
3059 -
3060 - !TODO call update_occ here
3061 -- !$call update_occ(KS_BSt,fixmom,stmbias,Dtset%prtvol)
3062 -+ !%call update_occ(KS_BSt,fixmom,stmbias,Dtset%prtvol)
3063 -
3064 - ! this fails simply because in case of NSCF occ are zero
3065 - ! TODO outkss should calculate occ factors in case of NSCF run.
3066 -diff -Naur abinit-6.4.2.bak/src/68_gw/trashme.F90 abinit-6.4.2/src/68_gw/trashme.F90
3067 ---- src/68_gw/trashme.F90 2010-12-01 19:47:18.000000000 +0000
3068 -+++ src/68_gw/trashme.F90 2011-01-05 16:29:33.000000000 +0000
3069 -@@ -911,7 +911,7 @@
3070 - deallocate(umat_k)
3071 - deallocate(wf_ks,wf_qp)
3072 -
3073 -- !$call wfd_reset_ur(Wf_info)
3074 -+ !%call wfd_reset_ur(Wf_info)
3075 -
3076 - DBG_EXIT("COLL")
3077 -
3078 -diff -Naur abinit-6.4.2.bak/src/68_rsprc/ladielmt.F90 abinit-6.4.2/src/68_rsprc/ladielmt.F90
3079 ---- src/68_rsprc/ladielmt.F90 2010-12-01 19:47:18.000000000 +0000
3080 -+++ src/68_rsprc/ladielmt.F90 2011-01-05 09:31:41.000000000 +0000
3081 -@@ -246,9 +246,9 @@
3082 -
3083 -
3084 - !***********************************************************************************
3085 --!Getting the localy averaged non-local potential ***
3086 --!$Vnl(r) = [\sum_{n,k} f_{n,k} \psi_{n,k}(r) (Vnl(r,r') |\psi_{n,k}(r')>)]/n(r)$***
3087 --!**********************************************************************************
3088 -+! Getting the localy averaged non-local potential ***
3089 -+!%$Vnl(r) = [\sum_{n,k} f_{n,k} \psi_{n,k}(r) (Vnl(r,r') |\psi_{n,k}(r')>)]/n(r)$***
3090 -+!***********************************************************************************
3091 -
3092 - qphon=zero
3093 -
3094 -@@ -671,36 +671,36 @@
3095 -
3096 -
3097 - ! lavnlr(:,ispden) = -min
3098 --! !$ write(filapp,*) 'orig-lavnl-0.00'
3099 --! !$ call out1line(filapp,lavnlr,dtset,0,0)
3100 --! !$ write(filapp,*) 'orig-lavnl-0.25'
3101 --! !$ call out1line(filapp,lavnlr,dtset,dtset%ngfft(1)/4,dtset%ngfft(2)/4)
3102 --! !$ write(filapp,*) 'orig-lavnl-0.50'
3103 --! !$ call out1line(filapp,lavnlr,dtset,dtset%ngfft(1)/2,dtset%ngfft(2)/2)
3104 --! !$ lavnlr=lavnlr*(rhor+0.0001_dp)
3105 --! !$ !DEBUG
3106 --! !$write(0,*) "DEBUG ================ lavnl ==========================="
3107 --! !$write(0,*) "DEBUG lavnl: density analysis"
3108 --! !$ !ENDDEBUG
3109 --! !$ do ifft=1,dtset%nfft
3110 --! !$ if((rhor(ifft,ispden)+0.0001_dp > zero).and.(lavnlr(ifft,ispden) >= zero)) then
3111 --! !$ lavnlr(ifft,ispden) = lavnlr(ifft,ispden)/(rhor(ifft,ispden)+0.0001_dp)
3112 --! !$ else
3113 --! !$ !DEBUG
3114 --! !$ !write(0,*) "DEBUG lavnl: for ifft=",ifft,"(rhor(ifft,ispden)+0.0001_dp)=",&
3115 --! !$ ! & (rhor(ifft,ispden)+0.0001_dp),'lavnlr=',lavnlr(ifft,ispden)
3116 --! !$ !ENDDEBUG
3117 --! !$ lavnlr(ifft,ispden)=zero
3118 --! !$ !lavnlr(ifft,ispden) = lavnlr(ifft,ispden)/(rhor(ifft,ispden)+0.0001_dp)
3119 --! !$ end if
3120 --! !$ end do
3121 --! !$
3122 --! !$ write(filapp,*) 'neww-lavnl-0.00'
3123 --! !$ call out1line(filapp,lavnlr,dtset,0,0)
3124 --! !$ write(filapp,*) 'neww-lavnl-0.25'
3125 --! !$ call out1line(filapp,lavnlr,dtset,dtset%ngfft(1)/4,dtset%ngfft(2)/4)
3126 --! !$ write(filapp,*) 'neww-lavnl-0.50'
3127 --! !$ call out1line(filapp,lavnlr,dtset,dtset%ngfft(1)/2,dtset%ngfft(2)/2)
3128 -+! !% write(filapp,*) 'orig-lavnl-0.00'
3129 -+! !% call out1line(filapp,lavnlr,dtset,0,0)
3130 -+! !% write(filapp,*) 'orig-lavnl-0.25'
3131 -+! !% call out1line(filapp,lavnlr,dtset,dtset%ngfft(1)/4,dtset%ngfft(2)/4)
3132 -+! !% write(filapp,*) 'orig-lavnl-0.50'
3133 -+! !% call out1line(filapp,lavnlr,dtset,dtset%ngfft(1)/2,dtset%ngfft(2)/2)
3134 -+! !% lavnlr=lavnlr*(rhor+0.0001_dp)
3135 -+! !% !DEBUG
3136 -+! !%write(0,*) "DEBUG ================ lavnl ==========================="
3137 -+! !%write(0,*) "DEBUG lavnl: density analysis"
3138 -+! !% !ENDDEBUG
3139 -+! !% do ifft=1,dtset%nfft
3140 -+! !% if((rhor(ifft,ispden)+0.0001_dp > zero).and.(lavnlr(ifft,ispden) >= zero)) then
3141 -+! !% lavnlr(ifft,ispden) = lavnlr(ifft,ispden)/(rhor(ifft,ispden)+0.0001_dp)
3142 -+! !% else
3143 -+! !% !DEBUG
3144 -+! !% !write(0,*) "DEBUG lavnl: for ifft=",ifft,"(rhor(ifft,ispden)+0.0001_dp)=",&
3145 -+! !% ! & (rhor(ifft,ispden)+0.0001_dp),'lavnlr=',lavnlr(ifft,ispden)
3146 -+! !% !ENDDEBUG
3147 -+! !% lavnlr(ifft,ispden)=zero
3148 -+! !% !lavnlr(ifft,ispden) = lavnlr(ifft,ispden)/(rhor(ifft,ispden)+0.0001_dp)
3149 -+! !% end if
3150 -+! !% end do
3151 -+! !%
3152 -+! !% write(filapp,*) 'neww-lavnl-0.00'
3153 -+! !% call out1line(filapp,lavnlr,dtset,0,0)
3154 -+! !% write(filapp,*) 'neww-lavnl-0.25'
3155 -+! !% call out1line(filapp,lavnlr,dtset,dtset%ngfft(1)/4,dtset%ngfft(2)/4)
3156 -+! !% write(filapp,*) 'neww-lavnl-0.50'
3157 -+! !% call out1line(filapp,lavnlr,dtset,dtset%ngfft(1)/2,dtset%ngfft(2)/2)
3158 -
3159 - ! i1=1
3160 - ! i2=1
3161 -diff -Naur abinit-6.4.2.bak/src/68_rsprc/lavnl.F90 abinit-6.4.2/src/68_rsprc/lavnl.F90
3162 ---- src/68_rsprc/lavnl.F90 2010-12-01 19:47:18.000000000 +0000
3163 -+++ src/68_rsprc/lavnl.F90 2011-01-05 09:30:40.000000000 +0000
3164 -@@ -172,9 +172,9 @@
3165 - ! *************************************************************************
3166 -
3167 - !***********************************************************************************
3168 --!Getting the localy averaged non-local potential ***
3169 --!$Vnl(r) = [\sum_{n,k} f_{n,k} \psi_{n,k}(r) (Vnl(r,r') |\psi_{n,k}(r')>)]/n(r)$***
3170 --!**********************************************************************************
3171 -+! Getting the localy averaged non-local potential ***
3172 -+!%$Vnl(r) = [\sum_{n,k} f_{n,k} \psi_{n,k}(r) (Vnl(r,r') |\psi_{n,k}(r')>)]/n(r)$***
3173 -+!***********************************************************************************
3174 -
3175 - qphon=zero
3176 -
3177 -@@ -567,36 +567,36 @@
3178 - end do
3179 - lavnlr(:,ispden) = lavnlr(:,ispden)-min
3180 - ! lavnlr(:,ispden) = -min
3181 --! !$ write(filapp,*) 'orig-lavnl-0.00'
3182 --! !$ call out1line(filapp,lavnlr,dtset,0,0)
3183 --! !$ write(filapp,*) 'orig-lavnl-0.25'
3184 --! !$ call out1line(filapp,lavnlr,dtset,dtset%ngfft(1)/4,dtset%ngfft(2)/4)
3185 --! !$ write(filapp,*) 'orig-lavnl-0.50'
3186 --! !$ call out1line(filapp,lavnlr,dtset,dtset%ngfft(1)/2,dtset%ngfft(2)/2)
3187 --! !$ lavnlr=lavnlr*(rhor+0.0001_dp)
3188 --! !$ !DEBUG
3189 --! !$write(0,*) "DEBUG ================ lavnl ==========================="
3190 --! !$write(0,*) "DEBUG lavnl: density analysis"
3191 --! !$ !ENDDEBUG
3192 --! !$ do ifft=1,dtset%nfft
3193 --! !$ if((rhor(ifft,ispden)+0.0001_dp > zero).and.(lavnlr(ifft,ispden) >= zero)) then
3194 --! !$ lavnlr(ifft,ispden) = lavnlr(ifft,ispden)/(rhor(ifft,ispden)+0.0001_dp)
3195 --! !$ else
3196 --! !$ !DEBUG
3197 --! !$ !write(0,*) "DEBUG lavnl: for ifft=",ifft,"(rhor(ifft,ispden)+0.0001_dp)=",&
3198 --! !$ ! & (rhor(ifft,ispden)+0.0001_dp),'lavnlr=',lavnlr(ifft,ispden)
3199 --! !$ !ENDDEBUG
3200 --! !$ lavnlr(ifft,ispden)=zero
3201 --! !$ !lavnlr(ifft,ispden) = lavnlr(ifft,ispden)/(rhor(ifft,ispden)+0.0001_dp)
3202 --! !$ end if
3203 --! !$ end do
3204 --! !$
3205 --! !$ write(filapp,*) 'neww-lavnl-0.00'
3206 --! !$ call out1line(filapp,lavnlr,dtset,0,0)
3207 --! !$ write(filapp,*) 'neww-lavnl-0.25'
3208 --! !$ call out1line(filapp,lavnlr,dtset,dtset%ngfft(1)/4,dtset%ngfft(2)/4)
3209 --! !$ write(filapp,*) 'neww-lavnl-0.50'
3210 --! !$ call out1line(filapp,lavnlr,dtset,dtset%ngfft(1)/2,dtset%ngfft(2)/2)
3211 -+! !% write(filapp,*) 'orig-lavnl-0.00'
3212 -+! !% call out1line(filapp,lavnlr,dtset,0,0)
3213 -+! !% write(filapp,*) 'orig-lavnl-0.25'
3214 -+! !% call out1line(filapp,lavnlr,dtset,dtset%ngfft(1)/4,dtset%ngfft(2)/4)
3215 -+! !% write(filapp,*) 'orig-lavnl-0.50'
3216 -+! !% call out1line(filapp,lavnlr,dtset,dtset%ngfft(1)/2,dtset%ngfft(2)/2)
3217 -+! !% lavnlr=lavnlr*(rhor+0.0001_dp)
3218 -+! !% !DEBUG
3219 -+! !%write(0,*) "DEBUG ================ lavnl ==========================="
3220 -+! !%write(0,*) "DEBUG lavnl: density analysis"
3221 -+! !% !ENDDEBUG
3222 -+! !% do ifft=1,dtset%nfft
3223 -+! !% if((rhor(ifft,ispden)+0.0001_dp > zero).and.(lavnlr(ifft,ispden) >= zero)) then
3224 -+! !% lavnlr(ifft,ispden) = lavnlr(ifft,ispden)/(rhor(ifft,ispden)+0.0001_dp)
3225 -+! !% else
3226 -+! !% !DEBUG
3227 -+! !% !write(0,*) "DEBUG lavnl: for ifft=",ifft,"(rhor(ifft,ispden)+0.0001_dp)=",&
3228 -+! !% ! & (rhor(ifft,ispden)+0.0001_dp),'lavnlr=',lavnlr(ifft,ispden)
3229 -+! !% !ENDDEBUG
3230 -+! !% lavnlr(ifft,ispden)=zero
3231 -+! !% !lavnlr(ifft,ispden) = lavnlr(ifft,ispden)/(rhor(ifft,ispden)+0.0001_dp)
3232 -+! !% end if
3233 -+! !% end do
3234 -+! !%
3235 -+! !% write(filapp,*) 'neww-lavnl-0.00'
3236 -+! !% call out1line(filapp,lavnlr,dtset,0,0)
3237 -+! !% write(filapp,*) 'neww-lavnl-0.25'
3238 -+! !% call out1line(filapp,lavnlr,dtset,dtset%ngfft(1)/4,dtset%ngfft(2)/4)
3239 -+! !% write(filapp,*) 'neww-lavnl-0.50'
3240 -+! !% call out1line(filapp,lavnlr,dtset,dtset%ngfft(1)/2,dtset%ngfft(2)/2)
3241 -
3242 - ! i1=1
3243 - ! i2=1
3244 -diff -Naur abinit-6.4.2.bak/src/68_rsprc/prctfvw1.F90 abinit-6.4.2/src/68_rsprc/prctfvw1.F90
3245 ---- src/68_rsprc/prctfvw1.F90 2010-12-01 19:47:18.000000000 +0000
3246 -+++ src/68_rsprc/prctfvw1.F90 2011-01-05 09:32:35.000000000 +0000
3247 -@@ -209,9 +209,9 @@
3248 - type(cprj_type) :: cprj_dum(1,1)
3249 - ! *************************************************************************
3250 - !***********************************************************************************
3251 --!Getting the localy averaged non-local potential ***
3252 --!$Vnl(r) = [\sum_{n,k} f_{n,k} \psi_{n,k}(r) (Vnl(r,r') |\psi_{n,k}(r')>)]/n(r)$***
3253 --!**********************************************************************************
3254 -+! Getting the localy averaged non-local potential ***
3255 -+!%$Vnl(r) = [\sum_{n,k} f_{n,k} \psi_{n,k}(r) (Vnl(r,r') |\psi_{n,k}(r')>)]/n(r)$***
3256 -+!***********************************************************************************
3257 - znucl=1.0_dp
3258 - typat=1
3259 - xredcp = xred
3260 -diff -Naur abinit-6.4.2.bak/src/68_rsprc/prctfvw2.F90 abinit-6.4.2/src/68_rsprc/prctfvw2.F90
3261 ---- src/68_rsprc/prctfvw2.F90 2010-12-01 19:47:18.000000000 +0000
3262 -+++ src/68_rsprc/prctfvw2.F90 2011-01-05 09:30:14.000000000 +0000
3263 -@@ -228,8 +228,8 @@
3264 - xredcp = xred
3265 - !*************************************************************************
3266 - !***********************************************************************************
3267 --!Getting the localy averaged non-local potential ***
3268 --!$Vnl(r) = [\sum_{n,k} f_{n,k} \psi_{n,k}(r) (Vnl(r,r') |\psi_{n,k}(r')>)]/n(r)$***
3269 -+! Getting the localy averaged non-local potential ***
3270 -+!%$Vnl(r) = [\sum_{n,k} f_{n,k} \psi_{n,k}(r) (Vnl(r,r') |\psi_{n,k}(r')>)]/n(r)$***
3271 - !***********************************************************************************
3272 - !Test size of FFT grids (1 grid in norm-conserving, 2 grids in PAW)
3273 - nfftotf=ngfftf(1)*ngfftf(2)*ngfftf(3)
3274 -@@ -659,8 +659,8 @@
3275 - !******************************************************************
3276 - !Finding the density which minimizes the associated Energy **
3277 - !******************************************************************
3278 --!!$ !compute the total charge number
3279 --!!$ !first switch to the sqrt of the density...
3280 -+!!% !compute the total charge number
3281 -+!!% !first switch to the sqrt of the density...
3282 - cplex=1;
3283 - option=1;
3284 - call dotprod_vn(cplex,& !complex density/pot
3285 -@@ -676,46 +676,46 @@
3286 - &ucvol) !cell volume
3287 - !enable the use of the functions eneofrho_tfw and deneofrho_tfw
3288 - Z=real(nint(Z),dp)
3289 --!!$ call init_eneofrho_tfw(dtset,dtset%intxc,dtset%ixc,psps%usepaw,n3xccc,ngfftf,&
3290 --!!$ &nfftf,nkxc,nspden,mpi_enreg,deltaW,gprimd,gsqcut,&
3291 --!!$ &lavnlfft,rhor,rprimd,ucvol,vout_unmixed,vpsp,vtrial,xccc3d,Z)
3292 --!!$ !minimizes Etfw with respect to sqrtrhor instead of rhor
3293 --!!$ !sqrtrhor(:,:)=two*Z/nfftf
3294 --!!$ !call random_number(rhor)
3295 --!!$ !eei=zero
3296 --!!$ !do ifft=1,nfft
3297 --!!$ ! eei=max(eei,sqrtrhor(ifft,1))
3298 --!!$ !end do
3299 --!!$ !eei=0.05_dp*eei
3300 --!!$ !call newdensity(eei,rhor,sqrtrhor)
3301 --!!$ call cgpr(eneofrho_tfw,deneofrho_tfw,newdensity,abs(deltae*real(0.001,dp)/etotal),55,sqrtrhor,dummy,dummy2)
3302 --!!$ !dummy=eneofrho_tfw(sqrtrhor)
3303 --!!$ ! free the dynamically allocated memory used by eneofrho_tfw and deneofrho_tfw
3304 --!!$ call end_eneofrho_tfw()
3305 --!!$ !new density from the minimised sqrtrhor
3306 --!!$ count=0
3307 --!!$ do ifft=1,nfftf
3308 --!!$ if (sqrtrhor(ifft,1)<zero) then
3309 --!!$ count=count+1
3310 --!!$ end if
3311 --!!$ end do
3312 --!!$ write(0,*) 'nombre sous zero',count
3313 --!!$ rhor(:,:)=sqrtrhor(:,:)*sqrtrhor(:,:)
3314 --!!$
3315 --!!$
3316 --!!$ write(0,*) 'n1 n2 n3',n1,n2,n3
3317 --!!$ i1=1
3318 --!!$ i2=1
3319 --!!$
3320 --!!$ do i3=1,n3
3321 --!!$ ifft=i1+n1*(i2-1+n2*(i3-1))
3322 --!!$ ifft2=i1+6+n1*(i2+6-1+n2*(i3-1))
3323 --!!$ write(79,*) deltaW(ifft,1),deltaW(ifft2,1),&
3324 --!!$ & lavnlfft(ifft,1),lavnlfft(ifft2,1),&
3325 --!!$ & vpsp(ifft)+vout_unmixed(ifft,1)-vtrial(ifft,1),&
3326 --!!$ & vpsp(ifft2)+vout_unmixed(ifft2,1)-vtrial(ifft2,1),&
3327 --!!$ & sqrtrhor(ifft,1),sqrtrhor(ifft2,1)
3328 --!!$ end do
3329 -+!!% call init_eneofrho_tfw(dtset,dtset%intxc,dtset%ixc,psps%usepaw,n3xccc,ngfftf,&
3330 -+!!% &nfftf,nkxc,nspden,mpi_enreg,deltaW,gprimd,gsqcut,&
3331 -+!!% &lavnlfft,rhor,rprimd,ucvol,vout_unmixed,vpsp,vtrial,xccc3d,Z)
3332 -+!!% !minimizes Etfw with respect to sqrtrhor instead of rhor
3333 -+!!% !sqrtrhor(:,:)=two*Z/nfftf
3334 -+!!% !call random_number(rhor)
3335 -+!!% !eei=zero
3336 -+!!% !do ifft=1,nfft
3337 -+!!% ! eei=max(eei,sqrtrhor(ifft,1))
3338 -+!!% !end do
3339 -+!!% !eei=0.05_dp*eei
3340 -+!!% !call newdensity(eei,rhor,sqrtrhor)
3341 -+!!% call cgpr(eneofrho_tfw,deneofrho_tfw,newdensity,abs(deltae*real(0.001,dp)/etotal),55,sqrtrhor,dummy,dummy2)
3342 -+!!% !dummy=eneofrho_tfw(sqrtrhor)
3343 -+!!% ! free the dynamically allocated memory used by eneofrho_tfw and deneofrho_tfw
3344 -+!!% call end_eneofrho_tfw()
3345 -+!!% !new density from the minimised sqrtrhor
3346 -+!!% count=0
3347 -+!!% do ifft=1,nfftf
3348 -+!!% if (sqrtrhor(ifft,1)<zero) then
3349 -+!!% count=count+1
3350 -+!!% end if
3351 -+!!% end do
3352 -+!!% write(0,*) 'nombre sous zero',count
3353 -+!!% rhor(:,:)=sqrtrhor(:,:)*sqrtrhor(:,:)
3354 -+!!%
3355 -+!!%
3356 -+!!% write(0,*) 'n1 n2 n3',n1,n2,n3
3357 -+!!% i1=1
3358 -+!!% i2=1
3359 -+!!%
3360 -+!!% do i3=1,n3
3361 -+!!% ifft=i1+n1*(i2-1+n2*(i3-1))
3362 -+!!% ifft2=i1+6+n1*(i2+6-1+n2*(i3-1))
3363 -+!!% write(79,*) deltaW(ifft,1),deltaW(ifft2,1),&
3364 -+!!% & lavnlfft(ifft,1),lavnlfft(ifft2,1),&
3365 -+!!% & vpsp(ifft)+vout_unmixed(ifft,1)-vtrial(ifft,1),&
3366 -+!!% & vpsp(ifft2)+vout_unmixed(ifft2,1)-vtrial(ifft2,1),&
3367 -+!!% & sqrtrhor(ifft,1),sqrtrhor(ifft2,1)
3368 -+!!% end do
3369 - !******************************************************************
3370 - !Finding the density which minimizes the first term **
3371 - !******************************************************************
3372 -@@ -764,46 +764,46 @@
3373 - !vrespc=vrespc/diemix
3374 - !call laplacian(vrespc,lvres,ngfft,rprimd)
3375 - !lvres=-lvres*(two*two_pi)
3376 --!!$ write(0,*) 'efermi=',efermi
3377 --!!$ write(filapp,770) 'myoutput-opA',1
3378 --!!$ call out1dm(filapp,natom,nfftf,ngfftf,nspden,ntypat,&
3379 --!!$ & rhor,rprimd,&
3380 --!!$ & typat,ucvol,opA,xredcp,znucl)
3381 --!!$ write(filapp,770) 'myoutput-opB',1
3382 --!!$ call out1dm(filapp,natom,nfftf,ngfftf,nspden,ntypat,&
3383 --!!$ & rhor,rprimd,&
3384 --!!$ & typat,ucvol,opB,xredcp,znucl)
3385 --!!$ write(filapp,770) 'myoutput-partial',1
3386 --!!$ call out1dm(filapp,natom,nfftf,ngfftf,nspden,ntypat,&
3387 --!!$ & rhor,rprimd,&
3388 --!!$ & typat,ucvol,vpsp,xredcp,znucl)
3389 --!!$ write(filapp,770) 'myoutput-partial',2
3390 --!!$ call out1dm(filapp,natom,nfftf,ngfftf,nspden,ntypat,&
3391 --!!$ & rhor,rprimd,&
3392 --!!$ & typat,ucvol,vhartr,xredcp,znucl)
3393 --!!$ write(filapp,770) 'myoutput-partial',3
3394 --!!$ bla=seven/six*(alpha32*rhor(:,:))**(two_thirds)
3395 --!!$ call out1dm(filapp,natom,nfftf,ngfftf,nspden,ntypat,&
3396 --!!$ & rhor,rprimd,&
3397 --!!$ & typat,ucvol,bla,xredcp,znucl)
3398 --!!$ write(filapp,770) 'myoutput-partial',4
3399 --!!$ bla(:,1)=2*kxc(:,1)*rhor(:,1)
3400 --!!$ call out1dm(filapp,natom,nfftf,ngfftf,nspden,ntypat,&
3401 --!!$ & rhor,rprimd,&
3402 --!!$ & typat,ucvol,bla,xredcp,znucl)
3403 --!!$ write(filapp,770) 'myoutput-partial',5
3404 --!!$ call out1dm(filapp,natom,nfftf,ngfftf,nspden,ntypat,&
3405 --!!$ & rhor,rprimd,&
3406 --!!$ & typat,ucvol,lavnlfft,xredcp,znucl)
3407 --!!$ write(filapp,770) 'myoutput-partial',6
3408 --!!$ call out1dm(filapp,natom,nfftf,ngfftf,nspden,ntypat,&
3409 --!!$ & rhor,rprimd,&
3410 --!!$ & typat,ucvol,vxc,xredcp,znucl)
3411 --!!$bla=efermi
3412 --!!$ write(filapp,770) 'myoutput-partial',7
3413 --!!$ call out1dm(filapp,natom,nfftf,ngfftf,nspden,ntypat,&
3414 --!!$ & rhor,rprimd,&
3415 --!!$ & typat,ucvol,bla,xredcp,znucl)
3416 -+!!% write(0,*) 'efermi=',efermi
3417 -+!!% write(filapp,770) 'myoutput-opA',1
3418 -+!!% call out1dm(filapp,natom,nfftf,ngfftf,nspden,ntypat,&
3419 -+!!% & rhor,rprimd,&
3420 -+!!% & typat,ucvol,opA,xredcp,znucl)
3421 -+!!% write(filapp,770) 'myoutput-opB',1
3422 -+!!% call out1dm(filapp,natom,nfftf,ngfftf,nspden,ntypat,&
3423 -+!!% & rhor,rprimd,&
3424 -+!!% & typat,ucvol,opB,xredcp,znucl)
3425 -+!!% write(filapp,770) 'myoutput-partial',1
3426 -+!!% call out1dm(filapp,natom,nfftf,ngfftf,nspden,ntypat,&
3427 -+!!% & rhor,rprimd,&
3428 -+!!% & typat,ucvol,vpsp,xredcp,znucl)
3429 -+!!% write(filapp,770) 'myoutput-partial',2
3430 -+!!% call out1dm(filapp,natom,nfftf,ngfftf,nspden,ntypat,&
3431 -+!!% & rhor,rprimd,&
3432 -+!!% & typat,ucvol,vhartr,xredcp,znucl)
3433 -+!!% write(filapp,770) 'myoutput-partial',3
3434 -+!!% bla=seven/six*(alpha32*rhor(:,:))**(two_thirds)
3435 -+!!% call out1dm(filapp,natom,nfftf,ngfftf,nspden,ntypat,&
3436 -+!!% & rhor,rprimd,&
3437 -+!!% & typat,ucvol,bla,xredcp,znucl)
3438 -+!!% write(filapp,770) 'myoutput-partial',4
3439 -+!!% bla(:,1)=2*kxc(:,1)*rhor(:,1)
3440 -+!!% call out1dm(filapp,natom,nfftf,ngfftf,nspden,ntypat,&
3441 -+!!% & rhor,rprimd,&
3442 -+!!% & typat,ucvol,bla,xredcp,znucl)
3443 -+!!% write(filapp,770) 'myoutput-partial',5
3444 -+!!% call out1dm(filapp,natom,nfftf,ngfftf,nspden,ntypat,&
3445 -+!!% & rhor,rprimd,&
3446 -+!!% & typat,ucvol,lavnlfft,xredcp,znucl)
3447 -+!!% write(filapp,770) 'myoutput-partial',6
3448 -+!!% call out1dm(filapp,natom,nfftf,ngfftf,nspden,ntypat,&
3449 -+!!% & rhor,rprimd,&
3450 -+!!% & typat,ucvol,vxc,xredcp,znucl)
3451 -+!!%bla=efermi
3452 -+!!% write(filapp,770) 'myoutput-partial',7
3453 -+!!% call out1dm(filapp,natom,nfftf,ngfftf,nspden,ntypat,&
3454 -+!!% & rhor,rprimd,&
3455 -+!!% & typat,ucvol,bla,xredcp,znucl)
3456 - a=1.e9
3457 - b=1.e9
3458 - do ifft=1,nfftf
3459 -@@ -837,17 +837,17 @@
3460 - !******************************************************************
3461 - cplex=1;
3462 - option=1;
3463 --!!$ call dotprod_vn(cplex,& !complex density/pot
3464 --!!$ &phi2,& !density
3465 --!!$ &a,& !resulting dorproduct integrated over r
3466 --!!$ &doti,& !imaginary part of the integral
3467 --!!$ &mpi_enreg,& !
3468 --!!$ &size(rhor,1),& !number of localy(cpu) attributed grid point
3469 --!!$ &nfftotf,& !real total number of grid point
3470 --!!$ &size(rhor,2),& !nspden
3471 --!!$ &option,& !1=compute only the real part 2=compute also the imaginary part
3472 --!!$ &phi2,& !density
3473 --!!$ &ucvol) !cell volume
3474 -+!!% call dotprod_vn(cplex,& !complex density/pot
3475 -+!!% &phi2,& !density
3476 -+!!% &a,& !resulting dorproduct integrated over r
3477 -+!!% &doti,& !imaginary part of the integral
3478 -+!!% &mpi_enreg,& !
3479 -+!!% &size(rhor,1),& !number of localy(cpu) attributed grid point
3480 -+!!% &nfftotf,& !real total number of grid point
3481 -+!!% &size(rhor,2),& !nspden
3482 -+!!% &option,& !1=compute only the real part 2=compute also the imaginary part
3483 -+!!% &phi2,& !density
3484 -+!!% &ucvol) !cell volume
3485 - call dotprod_vn(cplex,& !complex density/pot
3486 - &phi2,& !density
3487 - &b,& !resulting dorproduct integrated over r
3488 -@@ -870,19 +870,19 @@
3489 - &option,& !1=compute only the real part 2=compute also the imaginary part
3490 - &sqrtrhor,& !density
3491 - &ucvol) !cell volume
3492 --!!$ discr= b*b-four*a*c
3493 --!!$ if(discr > zero) then
3494 --!!$ discr=sqrt(discr)
3495 --!!$ fermi1p=(-b+discr)/(two*a)
3496 --!!$ fermi1m=(-b-discr)/(two*a)
3497 --!!$ else if (discr == zero) then
3498 --!!$ fermi1p=-b/(two*a)
3499 --!!$ fermi1m=-b/(two*a)
3500 --!!$ else
3501 --!!$ fermi1p=zero
3502 --!!$ fermi1m=zero
3503 --!!$ end if
3504 --!!$ dfermi=merge(fermi1p,fermi1m,abs(fermi1p) <= abs(fermi1m))
3505 -+!!% discr= b*b-four*a*c
3506 -+!!% if(discr > zero) then
3507 -+!!% discr=sqrt(discr)
3508 -+!!% fermi1p=(-b+discr)/(two*a)
3509 -+!!% fermi1m=(-b-discr)/(two*a)
3510 -+!!% else if (discr == zero) then
3511 -+!!% fermi1p=-b/(two*a)
3512 -+!!% fermi1m=-b/(two*a)
3513 -+!!% else
3514 -+!!% fermi1p=zero
3515 -+!!% fermi1m=zero
3516 -+!!% end if
3517 -+!!% dfermi=merge(fermi1p,fermi1m,abs(fermi1p) <= abs(fermi1m))
3518 - dfermi = -c/b !since the term in a must be neglected !(??)
3519 - sqrtrhor(:,:)=phi1+dfermi*phi2
3520 - !****************************************************************** !
3521 -@@ -1056,115 +1056,115 @@
3522 - !vtrial fourier
3523 - !vnewfourier
3524 - !ref
3525 --!!$ count=0
3526 --!!$ count1=0
3527 --!!$ count2=0
3528 --!!$ count3=0
3529 --!!$ count4=0
3530 --!!$ count5=0
3531 --!!$ count6=0
3532 --!!$ count7=0
3533 --!!$ count8=0
3534 --!!$ count9=0
3535 --!!$ count10=0
3536 --!!$ count11=0
3537 --!!$ count12=0
3538 --!!$ count13=0
3539 --!!$ count14=0
3540 --!!$ count15=0
3541 --!!$ count16=0
3542 --!!$ count17=0
3543 --!!$ count18=0
3544 --!!$ do ispden=1,nspden
3545 --!!$ do ifft=1,nfftf
3546 --!!$ aa=vrefg(:,ifft,ispden)
3547 --!!$ bb=vin_oldfourier(:,ifft,ispden)-aa
3548 --!!$ cc=newvoutfourier(:,ifft,ispden)-aa
3549 --!!$ principal: if((g2cart(ifft).lt.one).and.(vrefg(1,ifft,ispden)**2+vrefg(2,ifft,ispden)).gt.5d-5) then
3550 --!!$ ong: if(g2cart(ifft).lt.one*0.2) then
3551 --!!$ onv2:if(sqrt(vrefg(1,ifft,ispden)**2+vrefg(2,ifft,ispden)).gt.2d-1) then
3552 --!!$ if(bb(1)**2+bb(2)**2.lt.cc(1)**2+cc(2)**2) then
3553 --!!$ count15=count15+1
3554 --!!$ else
3555 --!!$ count16=count16+1
3556 --!!$ end if
3557 --!!$ else if(sqrt(vrefg(1,ifft,ispden)**2+vrefg(2,ifft,ispden)).gt.5d-2) then
3558 --!!$ if(bb(1)**2+bb(2)**2.lt.cc(1)**2+cc(2)**2) then
3559 --!!$ count1=count1+1
3560 --!!$ else
3561 --!!$ count2=count2+1
3562 --!!$ end if
3563 --!!$
3564 --!!$ else if(sqrt(vrefg(1,ifft,ispden)**2+vrefg(2,ifft,ispden)).gt.5d-3) then
3565 --!!$ if(bb(1)**2+bb(2)**2.lt.cc(1)**2+cc(2)**2) then
3566 --!!$ count3=count3+1
3567 --!!$ else
3568 --!!$ count4=count4+1
3569 --!!$ end if
3570 --!!$ else
3571 --!!$ if(bb(1)**2+bb(2)**2.lt.cc(1)**2+cc(2)**2) then
3572 --!!$ count5=count5+1
3573 --!!$ else
3574 --!!$ count6=count6+1
3575 --!!$ end if
3576 --!!$ end if onv2
3577 --!!$ else
3578 --!!$ onv22:if(sqrt(vrefg(1,ifft,ispden)**2+vrefg(2,ifft,ispden)).gt.2d-1) then
3579 --!!$ if(bb(1)**2+bb(2)**2.lt.cc(1)**2+cc(2)**2) then
3580 --!!$ count17=count17+1
3581 --!!$ else
3582 --!!$ count18=count18+1
3583 --!!$ end if
3584 --!!$ else if(sqrt(vrefg(1,ifft,ispden)**2+vrefg(2,ifft,ispden)).gt.5d-2) then
3585 --!!$ if(bb(1)**2+bb(2)**2.lt.cc(1)**2+cc(2)**2) then
3586 --!!$ count1=count1+1
3587 --!!$ else
3588 --!!$ count2=count2+1
3589 --!!$ end if
3590 --!!$ else if(sqrt(vrefg(1,ifft,ispden)**2+vrefg(2,ifft,ispden)).gt.5d-3) then
3591 --!!$ if(bb(1)**2+bb(2)**2.lt.cc(1)**2+cc(2)**2) then
3592 --!!$ count9=count9+1
3593 --!!$ else
3594 --!!$ count10=count10+1
3595 --!!$ end if
3596 --!!$ else
3597 --!!$ if(bb(1)**2+bb(2)**2.lt.cc(1)**2+cc(2)**2) then
3598 --!!$ count11=count11+1
3599 --!!$ else
3600 --!!$ count12=count12+1
3601 --!!$ end if
3602 --!!$ end if onv22
3603 --!!$ end if ong
3604 --!!$ end if principal
3605 --!!$ if(abs(vref(ifft,ispden)-vtrial(ifft,ispden)).gt.&
3606 --!!$ &abs(vref(ifft,ispden)-vtrialold(ifft,ispden))) then
3607 --!!$ count14=count14+1
3608 --!!$ else
3609 --!!$ count13=count13+1
3610 --!!$ end if
3611 --!!$
3612 --!!$ end do
3613 --!!$ end do
3614 --!!$ write(1111,*),'---------------------------------------------------------------------------------'
3615 --!!$ write(1111,*),'| g2<0.2 | g2<1.0 |'
3616 --!!$ write(1111,*),'| ok | bad | ok | bad | '
3617 --!!$ write(1111,*),'|',count16,'|',count15,'|',count18,'|',count17,'| ','||V||>2e-1'
3618 --!!$ write(1111,*),'|',count2,'|',count1,'|',count8,'|',count7,'| ','||V||>5e-2'
3619 --!!$ write(1111,*),'|',count4,'|',count3,'|',count10,'|',count9,'| ','||V||>5e-3'
3620 --!!$ write(1111,*),'|',count6,'|',count5,'|',count12,'|',count11,'| ','||V||>5e-5'
3621 --!!$ write(1111,*),'---------------------------------------------------------------------------------'
3622 --!!$ write(0,*),'---------------------------------------------------------------------------------'
3623 --!!$ write(0,*),'| g2<0.2 | g2<1.0 |'
3624 --!!$ write(0,*),'| ok | bad | ok | bad | '
3625 --!!$ write(0,*),'|',count16,'|',count15,'|',count18,'|',count17,'| ','||V||>2e-1'
3626 --!!$ write(0,*),'|',count2,'|',count1,'|',count8,'|',count7,'| ','||V||>5e-2'
3627 --!!$ write(0,*),'|',count4,'|',count3,'|',count10,'|',count9,'| ','||V||>5e-3'
3628 --!!$ write(0,*),'|',count6,'|',count5,'|',count12,'|',count11,'| ','||V||>5e-5'
3629 --!!$ write(0,*),'---------------------------------------------------------------------------------'
3630 --!!$
3631 --!!$
3632 --!!$ write(0,*) 'les mauvais r:',count14,'les bons r',count13
3633 --!!$ write(1111,*) 'les mauvais r:',count14,'les bons r',count13
3634 -+!!% count=0
3635 -+!!% count1=0
3636 -+!!% count2=0
3637 -+!!% count3=0
3638 -+!!% count4=0
3639 -+!!% count5=0
3640 -+!!% count6=0
3641 -+!!% count7=0
3642 -+!!% count8=0
3643 -+!!% count9=0
3644 -+!!% count10=0
3645 -+!!% count11=0
3646 -+!!% count12=0
3647 -+!!% count13=0
3648 -+!!% count14=0
3649 -+!!% count15=0
3650 -+!!% count16=0
3651 -+!!% count17=0
3652 -+!!% count18=0
3653 -+!!% do ispden=1,nspden
3654 -+!!% do ifft=1,nfftf
3655 -+!!% aa=vrefg(:,ifft,ispden)
3656 -+!!% bb=vin_oldfourier(:,ifft,ispden)-aa
3657 -+!!% cc=newvoutfourier(:,ifft,ispden)-aa
3658 -+!!% principal: if((g2cart(ifft).lt.one).and.(vrefg(1,ifft,ispden)**2+vrefg(2,ifft,ispden)).gt.5d-5) then
3659 -+!!% ong: if(g2cart(ifft).lt.one*0.2) then
3660 -+!!% onv2:if(sqrt(vrefg(1,ifft,ispden)**2+vrefg(2,ifft,ispden)).gt.2d-1) then
3661 -+!!% if(bb(1)**2+bb(2)**2.lt.cc(1)**2+cc(2)**2) then
3662 -+!!% count15=count15+1
3663 -+!!% else
3664 -+!!% count16=count16+1
3665 -+!!% end if
3666 -+!!% else if(sqrt(vrefg(1,ifft,ispden)**2+vrefg(2,ifft,ispden)).gt.5d-2) then
3667 -+!!% if(bb(1)**2+bb(2)**2.lt.cc(1)**2+cc(2)**2) then
3668 -+!!% count1=count1+1
3669 -+!!% else
3670 -+!!% count2=count2+1
3671 -+!!% end if
3672 -+!!%
3673 -+!!% else if(sqrt(vrefg(1,ifft,ispden)**2+vrefg(2,ifft,ispden)).gt.5d-3) then
3674 -+!!% if(bb(1)**2+bb(2)**2.lt.cc(1)**2+cc(2)**2) then
3675 -+!!% count3=count3+1
3676 -+!!% else
3677 -+!!% count4=count4+1
3678 -+!!% end if
3679 -+!!% else
3680 -+!!% if(bb(1)**2+bb(2)**2.lt.cc(1)**2+cc(2)**2) then
3681 -+!!% count5=count5+1
3682 -+!!% else
3683 -+!!% count6=count6+1
3684 -+!!% end if
3685 -+!!% end if onv2
3686 -+!!% else
3687 -+!!% onv22:if(sqrt(vrefg(1,ifft,ispden)**2+vrefg(2,ifft,ispden)).gt.2d-1) then
3688 -+!!% if(bb(1)**2+bb(2)**2.lt.cc(1)**2+cc(2)**2) then
3689 -+!!% count17=count17+1
3690 -+!!% else
3691 -+!!% count18=count18+1
3692 -+!!% end if
3693 -+!!% else if(sqrt(vrefg(1,ifft,ispden)**2+vrefg(2,ifft,ispden)).gt.5d-2) then
3694 -+!!% if(bb(1)**2+bb(2)**2.lt.cc(1)**2+cc(2)**2) then
3695 -+!!% count1=count1+1
3696 -+!!% else
3697 -+!!% count2=count2+1
3698 -+!!% end if
3699 -+!!% else if(sqrt(vrefg(1,ifft,ispden)**2+vrefg(2,ifft,ispden)).gt.5d-3) then
3700 -+!!% if(bb(1)**2+bb(2)**2.lt.cc(1)**2+cc(2)**2) then
3701 -+!!% count9=count9+1
3702 -+!!% else
3703 -+!!% count10=count10+1
3704 -+!!% end if
3705 -+!!% else
3706 -+!!% if(bb(1)**2+bb(2)**2.lt.cc(1)**2+cc(2)**2) then
3707 -+!!% count11=count11+1
3708 -+!!% else
3709 -+!!% count12=count12+1
3710 -+!!% end if
3711 -+!!% end if onv22
3712 -+!!% end if ong
3713 -+!!% end if principal
3714 -+!!% if(abs(vref(ifft,ispden)-vtrial(ifft,ispden)).gt.&
3715 -+!!% &abs(vref(ifft,ispden)-vtrialold(ifft,ispden))) then
3716 -+!!% count14=count14+1
3717 -+!!% else
3718 -+!!% count13=count13+1
3719 -+!!% end if
3720 -+!!%
3721 -+!!% end do
3722 -+!!% end do
3723 -+!!% write(1111,*),'---------------------------------------------------------------------------------'
3724 -+!!% write(1111,*),'| g2<0.2 | g2<1.0 |'
3725 -+!!% write(1111,*),'| ok | bad | ok | bad | '
3726 -+!!% write(1111,*),'|',count16,'|',count15,'|',count18,'|',count17,'| ','||V||>2e-1'
3727 -+!!% write(1111,*),'|',count2,'|',count1,'|',count8,'|',count7,'| ','||V||>5e-2'
3728 -+!!% write(1111,*),'|',count4,'|',count3,'|',count10,'|',count9,'| ','||V||>5e-3'
3729 -+!!% write(1111,*),'|',count6,'|',count5,'|',count12,'|',count11,'| ','||V||>5e-5'
3730 -+!!% write(1111,*),'---------------------------------------------------------------------------------'
3731 -+!!% write(0,*),'---------------------------------------------------------------------------------'
3732 -+!!% write(0,*),'| g2<0.2 | g2<1.0 |'
3733 -+!!% write(0,*),'| ok | bad | ok | bad | '
3734 -+!!% write(0,*),'|',count16,'|',count15,'|',count18,'|',count17,'| ','||V||>2e-1'
3735 -+!!% write(0,*),'|',count2,'|',count1,'|',count8,'|',count7,'| ','||V||>5e-2'
3736 -+!!% write(0,*),'|',count4,'|',count3,'|',count10,'|',count9,'| ','||V||>5e-3'
3737 -+!!% write(0,*),'|',count6,'|',count5,'|',count12,'|',count11,'| ','||V||>5e-5'
3738 -+!!% write(0,*),'---------------------------------------------------------------------------------'
3739 -+!!%
3740 -+!!%
3741 -+!!% write(0,*) 'les mauvais r:',count14,'les bons r',count13
3742 -+!!% write(1111,*) 'les mauvais r:',count14,'les bons r',count13
3743 - !stop
3744 - !----------------------------------------------------------------------------------------------------------
3745 - !last FREE
3746 -diff -Naur abinit-6.4.2.bak/src/68_rsprc/prctfw3.F90 abinit-6.4.2/src/68_rsprc/prctfw3.F90
3747 ---- src/68_rsprc/prctfw3.F90 2010-12-01 19:47:18.000000000 +0000
3748 -+++ src/68_rsprc/prctfw3.F90 2011-01-05 09:33:04.000000000 +0000
3749 -@@ -170,9 +170,9 @@
3750 - ! *************************************************************************
3751 -
3752 - !***********************************************************************************
3753 --!Getting the localy averaged non-local potential ***
3754 --!$Vnl(r) = [\sum_{n,k} f_{n,k} \psi_{n,k}(r) (Vnl(r,r') |\psi_{n,k}(r')>)]/n(r)$***
3755 --!**********************************************************************************
3756 -+! Getting the localy averaged non-local potential ***
3757 -+!%$Vnl(r) = [\sum_{n,k} f_{n,k} \psi_{n,k}(r) (Vnl(r,r') |\psi_{n,k}(r')>)]/n(r)$***
3758 -+!***********************************************************************************
3759 - rhor=rhor_in
3760 - qphon=zero
3761 - xred2=xred
3762 -diff -Naur abinit-6.4.2.bak/src/69_bse/cexch_haydock.F90 abinit-6.4.2/src/69_bse/cexch_haydock.F90
3763 ---- src/69_bse/cexch_haydock.F90 2010-12-01 19:47:18.000000000 +0000
3764 -+++ src/69_bse/cexch_haydock.F90 2011-01-05 16:47:03.000000000 +0000
3765 -@@ -185,7 +185,7 @@
3766 - ! There is no need to shift the G-sphere as we only have vertical transitions.
3767 - mgfft_osc = MAXVAL(ngfft_osc(1:3))
3768 - fftalga_osc = ngfft_osc(7)/100 !; fftalgc_osc=MOD(ngfft_osc(7),10)
3769 -- use_padfft=0; !$if (fftalga_osc==3) use_padfft=1 ! Padded FFTW3 is safe instead!
3770 -+ use_padfft=0; !%if (fftalga_osc==3) use_padfft=1 ! Padded FFTW3 is safe instead!
3771 - allocate(gbound(2*mgfft_osc+8,2*use_padfft))
3772 - if (use_padfft==1) call sphereboundary(gbound,1,Gsph_Max%gvec,mgfft_osc,BSp%npweps)
3773 -
3774 -@@ -315,8 +315,8 @@
3775 - do ic=BSp%lomo,BSp%nbnds ! loop over band C
3776 - ! Symmetry index for IBZ = 1 (in ktabr(:,1)
3777 -
3778 -- !$call wfd_get_ur(Wfd,iv,ik,spin,wfr1)
3779 -- !$call wfd_get_ur(Wfd,ic,ik,spin,wfr2)
3780 -+ !%call wfd_get_ur(Wfd,iv,ik,spin,wfr1)
3781 -+ !%call wfd_get_ur(Wfd,ic,ik,spin,wfr2)
3782 -
3783 - call rho_tw_g(paral_kgb,nspinor,BSp%npweps,nfftot_osc,ngfft_osc,map2sphere,use_padfft,igfftg0,gbound,&
3784 - & wfnr(:,iv,ik),1,ktabr(:,1),ph_mkt,spinrot_k,&
3785 -@@ -533,8 +533,8 @@
3786 - do iv=BSp%lomo,BSp%homo ! loop over band V
3787 - do ivp=BSp%lomo,BSp%homo ! loop over band VP
3788 -
3789 -- !$call wfd_get_ur(Wfd,ivp,ikp_ibz,spin,wfr1)
3790 -- !$call wfd_get_ur(Wfd,iv ,ik_ibz ,spin,wfr2)
3791 -+ !%call wfd_get_ur(Wfd,ivp,ikp_ibz,spin,wfr1)
3792 -+ !%call wfd_get_ur(Wfd,iv ,ik_ibz ,spin,wfr2)
3793 -
3794 - call rho_tw_g(paral_kgb,nspinor,BSp%npweps,nfftot_osc,ngfft_osc,map2sphere,use_padfft,igfftg0,gbound,&
3795 - & wfnr(:,ivp,ikp_ibz),itim_kp,ktabr_kp,ph_mkpt,spinrot_kp,&
3796 -@@ -556,8 +556,8 @@
3797 - do icp=BSp%lumo,BSp%nbnds ! loop over band C_prime
3798 - do ic=BSp%lumo,BSp%nbnds ! loop over band C
3799 -
3800 -- !$call wfd_get_ur(Wfd,icp,ikp_ibz,spin,wfr1)
3801 -- !$call wfd_get_ur(Wfd,ic ,ik_ibz ,spin,wfr2)
3802 -+ !%call wfd_get_ur(Wfd,icp,ikp_ibz,spin,wfr1)
3803 -+ !%call wfd_get_ur(Wfd,ic ,ik_ibz ,spin,wfr2)
3804 -
3805 - call rho_tw_g(paral_kgb,nspinor,BSp%npweps,nfftot_osc,ngfft_osc,map2sphere,use_padfft,igfftg0,gbound,&
3806 - & wfnr(:,icp,ikp_ibz),itim_kp,ktabr_kp,ph_mkpt,spinrot_kp,&
3807 -@@ -613,7 +613,7 @@
3808 -
3809 - ! then sum on G': sum_G' (rho_c'c(G) W*(G,G'))* rho_v'v(G')
3810 - http = -faq * DOT_PRODUCT(ctccp(:),rhxtwg_vv(:,ivp,iv))
3811 -- !$http = -faq * xdotc(BSp%npweps,ctccp,1,rhxtwg_vv(:,ivp,iv),1)
3812 -+ !%http = -faq * xdotc(BSp%npweps,ctccp,1,rhxtwg_vv(:,ivp,iv),1)
3813 -
3814 - bsh_k(irv,irc,ikp,irvp,ircp) = http
3815 - ! write(*,'("ik,ikp,iv,ivp,ic,icp, it, itp",8I3)')ik,ikp,iv,ivp,ic,icp, it, itp
3816 -@@ -663,7 +663,7 @@
3817 -
3818 - ! sum over G
3819 - ctemp = DOT_PRODUCT(rhotwg1(2:),rhotwg2(2:))
3820 -- !$ctemp = XDOTC(BSp%npweps-1,rhotwg1(2:),1,rhotwg2(2:),1)
3821 -+ !%ctemp = XDOTC(BSp%npweps-1,rhotwg1(2:),1,rhotwg2(2:),1)
3822 - ctemp = two * ctemp * faq
3823 -
3824 - bsh_k(irv,irc,ikp,irvp,ircp)=bsh_k(irv,irc,ikp,irvp,ircp)+ctemp
3825 -diff -Naur abinit-6.4.2.bak/src/69_bse/exceig.F90 abinit-6.4.2/src/69_bse/exceig.F90
3826 ---- src/69_bse/exceig.F90 2010-12-01 19:47:18.000000000 +0000
3827 -+++ src/69_bse/exceig.F90 2011-01-05 16:48:51.000000000 +0000
3828 -@@ -155,11 +155,11 @@
3829 -
3830 - ! Check the size of hamiltonian matrix
3831 - ! Not possible anymore, this info should be reported in the header.
3832 -- !$read(hreso_unt,rec=((nh*nh + nh)/2)+1) itemp
3833 -- !$if(itemp/=nh) then
3834 -- !$ write(msg,'(a,i0,a,i0,a)')'nt should be ',nh,' but read ',itemp,' wrong file fort.55 *.exh'
3835 -- !$ MSG_ERROR(msg)
3836 -- !$end if
3837 -+ !%read(hreso_unt,rec=((nh*nh + nh)/2)+1) itemp
3838 -+ !%if(itemp/=nh) then
3839 -+ !% write(msg,'(a,i0,a,i0,a)')'nt should be ',nh,' but read ',itemp,' wrong file fort.55 *.exh'
3840 -+ !% MSG_ERROR(msg)
3841 -+ !%end if
3842 -
3843 - ! Construct full excitonic Hamiltonian using Hermiticity. file is always in double precision.
3844 - do itp=1,nh
3845 -@@ -181,7 +181,7 @@
3846 - call wrtout(std_out," Partial diagonalization via XHEEVX","COLL")
3847 - abstol=zero; ldz=nh
3848 - allocate(exc_vec(ldz,nh)) ! TODO Single precision is not available.
3849 -- !$call xheevx("Vectors","All","Upper",nh,exc_mat,vl,vu,il,iu,abstol,mene_found,exc_ene,exc_vec,ldz)
3850 -+ !%call xheevx("Vectors","All","Upper",nh,exc_mat,vl,vu,il,iu,abstol,mene_found,exc_ene,exc_vec,ldz)
3851 - exc_mat = exc_vec
3852 - deallocate(exc_vec)
3853 - end if
3854 -@@ -287,28 +287,28 @@
3855 -
3856 - call wrtout(std_out,' Writing eigenvalues/vectors on file: '//TRIM(filbseig),"COLL")
3857 -
3858 -- !$ Very inefficient coding. Allocate global array to store the distributed eigenvectors
3859 -- !$ Fill the matrix, then the master node writes the final results on file
3860 -- !$allocate(exc_mat_dpc(nh,nh), STAT=istat)
3861 -- !$ABI_CHECK(istat==0,'out of memory: excitonic eigenvectors')
3862 -- !$exc_mat_dpc = czero
3863 --
3864 -- !$call slk_matrix_to_global_dpc_2D(Slk_vec,"All",exc_mat_dpc)
3865 -- !$call xsum_master(exc_mat_dpc,master,spaceComm,ierr)
3866 --
3867 -- !$if (my_rank==master) then
3868 -- !$ eig_unt=get_unit()
3869 -- !$ open(eig_unt,file=filbseig,form='unformatted')
3870 -- !$
3871 -- !$ write(eig_unt) nh
3872 -- !$ write(eig_unt) CMPLX(exc_ene(1:nh),kind=dpc)
3873 -- !$ do mi=1,nh
3874 -- !$ write(eig_unt) CMPLX(exc_mat_dpc(1:nh,mi),kind=dpc)
3875 -- !$ end do
3876 -- !$ close(eig_unt)
3877 -- !$end if
3878 -- !$
3879 -- !$deallocate(exc_mat_dpc)
3880 -+ !% Very inefficient coding. Allocate global array to store the distributed eigenvectors
3881 -+ !% Fill the matrix, then the master node writes the final results on file
3882 -+ !%allocate(exc_mat_dpc(nh,nh), STAT=istat)
3883 -+ !%ABI_CHECK(istat==0,'out of memory: excitonic eigenvectors')
3884 -+ !%exc_mat_dpc = czero
3885 -+
3886 -+ !%call slk_matrix_to_global_dpc_2D(Slk_vec,"All",exc_mat_dpc)
3887 -+ !%call xsum_master(exc_mat_dpc,master,spaceComm,ierr)
3888 -+
3889 -+ !%if (my_rank==master) then
3890 -+ !% eig_unt=get_unit()
3891 -+ !% open(eig_unt,file=filbseig,form='unformatted')
3892 -+ !%
3893 -+ !% write(eig_unt) nh
3894 -+ !% write(eig_unt) CMPLX(exc_ene(1:nh),kind=dpc)
3895 -+ !% do mi=1,nh
3896 -+ !% write(eig_unt) CMPLX(exc_mat_dpc(1:nh,mi),kind=dpc)
3897 -+ !% end do
3898 -+ !% close(eig_unt)
3899 -+ !%end if
3900 -+ !%
3901 -+ !%deallocate(exc_mat_dpc)
3902 -
3903 - ! Write distributed matrix on file tmp_fname using streams instead of Fortran records.
3904 - tmp_fname=pick_aname()
3905 -@@ -661,8 +661,8 @@
3906 -
3907 - ! Check the size of hamiltonian matrix
3908 - ! Not possible anymore, this info should be reported in the header.
3909 -- !$read(hreso_unt,rec=((nh*nh + nh)/2)+1) itemp
3910 -- !$ABI_CHECK(itemp==nh,'Wrong resonant file')
3911 -+ !%read(hreso_unt,rec=((nh*nh + nh)/2)+1) itemp
3912 -+ !%ABI_CHECK(itemp==nh,'Wrong resonant file')
3913 -
3914 - do itp=1,nh
3915 - do it=1,itp
3916 -@@ -687,8 +687,8 @@
3917 -
3918 - ! Check the size of hamiltonian matrix
3919 - ! Not possible anymore, this info should be reported in the header.
3920 -- !$read(hcoup_unt,rec=((nh*nh + nh)/2)+1) itemp
3921 -- !$ABI_CHECK(itemp==nh,'wrong file .exc')
3922 -+ !%read(hcoup_unt,rec=((nh*nh + nh)/2)+1) itemp
3923 -+ !%ABI_CHECK(itemp==nh,'wrong file .exc')
3924 -
3925 - do itp=1,nh
3926 - do it=1,itp
3927 -@@ -970,28 +970,28 @@
3928 - ! Fill the matrix, then master node writes the final results on file
3929 - ! (better coding requires either scaLAPACK tool or MPI-IO (the later should be much faster).
3930 -
3931 -- !$allocate(ovlp_dpc(nh2,nh2), STAT=istat)
3932 -- !$ABI_CHECK(istat==0,'out of memory ovlp_dpc')
3933 -- !$ovlp_dpc = czero
3934 --
3935 -- !$call slk_matrix_to_global_dpc_2D(Slk_mat,"All",ovlp_dpc)
3936 -- !$call xsum_master(ovlp_dpc,master,spaceComm,ierr)
3937 --
3938 -- !$if (my_rank==master) then
3939 -- !$ msg=' Writing overlap matrix s^-1 on file '//TRIM(BS_files%exovl)
3940 -- !$ call wrtout(std_out,msg,"PERS")
3941 --
3942 -- !$ ovlp_unt = get_unit()
3943 -- !$ open(unit=ovlp_unt,file=BS_files%exovl,form='unformatted',iostat=ios)
3944 --
3945 -- !$ write(ovlp_unt) nh2
3946 -- !$ do mi=1,nh2 ! write overlap matrix s^-1(mi,:)
3947 -- !$ write(ovlp_unt) CMPLX(ovlp_dpc(mi,:),kind=dpc)
3948 -- !$ end do
3949 -- !$ close(ovlp_unt)
3950 -- !$end if
3951 -+ !%allocate(ovlp_dpc(nh2,nh2), STAT=istat)
3952 -+ !%ABI_CHECK(istat==0,'out of memory ovlp_dpc')
3953 -+ !%ovlp_dpc = czero
3954 -+
3955 -+ !%call slk_matrix_to_global_dpc_2D(Slk_mat,"All",ovlp_dpc)
3956 -+ !%call xsum_master(ovlp_dpc,master,spaceComm,ierr)
3957 -+
3958 -+ !%if (my_rank==master) then
3959 -+ !% msg=' Writing overlap matrix s^-1 on file '//TRIM(BS_files%exovl)
3960 -+ !% call wrtout(std_out,msg,"PERS")
3961 -+
3962 -+ !% ovlp_unt = get_unit()
3963 -+ !% open(unit=ovlp_unt,file=BS_files%exovl,form='unformatted',iostat=ios)
3964 -+
3965 -+ !% write(ovlp_unt) nh2
3966 -+ !% do mi=1,nh2 ! write overlap matrix s^-1(mi,:)
3967 -+ !% write(ovlp_unt) CMPLX(ovlp_dpc(mi,:),kind=dpc)
3968 -+ !% end do
3969 -+ !% close(ovlp_unt)
3970 -+ !%end if
3971 -
3972 -- !$deallocate(ovlp_dpc)
3973 -+ !%deallocate(ovlp_dpc)
3974 -
3975 - ! Use MPI-IO
3976 - ! Write distributed matrix on file tmp_fname using streams instead of Fortran records.
3977 -diff -Naur abinit-6.4.2.bak/src/69_bse/setup_bse.F90 abinit-6.4.2/src/69_bse/setup_bse.F90
3978 ---- src/69_bse/setup_bse.F90 2010-12-01 19:47:18.000000000 +0000
3979 -+++ src/69_bse/setup_bse.F90 2011-01-05 16:50:53.000000000 +0000
3980 -@@ -362,7 +362,7 @@
3981 - CASE (2)
3982 - msg= " Model dielectric function not yet coded"
3983 - MSG_ERROR(msg)
3984 -- !$BSp%wtype = 'wmodel'
3985 -+ !%BSp%wtype = 'wmodel'
3986 - CASE DEFAULT
3987 - write(msg,'(a,i0)')" Wrong bs_coulomb_term: ",Dtset%bs_coulomb_term
3988 - MSG_ERROR(msg)
3989 -@@ -715,7 +715,7 @@
3990 -
3991 - !TODO call update_occ here
3992 - ! Occupancies might be zero if NSCF
3993 -- !$call update_occ(KS_BSt,fixmom,stmbias,Dtset%prtvol)
3994 -+ !%call update_occ(KS_BSt,fixmom,stmbias,Dtset%prtvol)
3995 -
3996 - call print_bandstructure(KS_BSt,"Band structure read from the KSS file",unit=std_out,prtvol=Dtset%prtvol)
3997 -
3998 -diff -Naur abinit-6.4.2.bak/src/77_ddb/eliashberg_1d.F90 abinit-6.4.2/src/77_ddb/eliashberg_1d.F90
3999 ---- src/77_ddb/eliashberg_1d.F90 2010-12-01 19:47:18.000000000 +0000
4000 -+++ src/77_ddb/eliashberg_1d.F90 2011-01-05 09:36:08.000000000 +0000
4001 -@@ -108,10 +108,10 @@
4002 -
4003 - !
4004 - !1) use linearized Eliashberg equation to find Tc
4005 --!$ \sum_j \mathbf{M}_{ij} \Delta_j = \zeta \cdot \Delta_i $ $i,j = 1 .. n_{\mathrm{Matsubara}}$
4006 --!$\zeta = 1$ gives T$_c$ $\beta = \frac{1}{\mathrm{T}}$ $\omega_i = (2 i + 1) \pi \mathrm{T}$
4007 --!$ \mathbf{M}_{ij} = \frac{\pi}{\beta} \frac{\lambda (\omega_i - \omega_j)}{Z (\omega_i)}$
4008 --!$ Z (\omega_i) = 1 + \frac{\pi}{\beta \omega_i} \sum_j \lambda(\omega_i - \omega_j) \mathrm{sgn}(\omega_j)$
4009 -+!%$ \sum_j \mathbf{M}_{ij} \Delta_j = \zeta \cdot \Delta_i $ $i,j = 1 .. n_{\mathrm{Matsubara}}$
4010 -+!%$\zeta = 1$ gives T$_c$ $\beta = \frac{1}{\mathrm{T}}$ $\omega_i = (2 i + 1) \pi \mathrm{T}$
4011 -+!%$ \mathbf{M}_{ij} = \frac{\pi}{\beta} \frac{\lambda (\omega_i - \omega_j)}{Z (\omega_i)}$
4012 -+!%$ Z (\omega_i) = 1 + \frac{\pi}{\beta \omega_i} \sum_j \lambda(\omega_i - \omega_j) \mathrm{sgn}(\omega_j)$
4013 - !
4014 -
4015 - !initial guess for T$_c$ in Hartree (1Ha =3.067e5 K)
4016 -diff -Naur abinit-6.4.2.bak/src/77_ddb/m_eph.F90 abinit-6.4.2/src/77_ddb/m_eph.F90
4017 ---- src/77_ddb/m_eph.F90 2010-12-01 19:47:18.000000000 +0000
4018 -+++ src/77_ddb/m_eph.F90 2011-01-05 09:34:59.000000000 +0000
4019 -@@ -233,10 +233,10 @@
4020 - public :: nullify_fermi_surface
4021 - public :: destroy_fermi_surface
4022 -
4023 -- !$public :: init_fermi_surface
4024 -- !$public :: wannier_interpolate_fermi_surface
4025 -- !$public :: get_fs_ibz
4026 -- !$public :: bxsf_write_fermi_surface
4027 -+ !%public :: init_fermi_surface
4028 -+ !%public :: wannier_interpolate_fermi_surface
4029 -+ !%public :: get_fs_ibz
4030 -+ !%public :: bxsf_write_fermi_surface
4031 -
4032 - ! example:
4033 - !type(fermi_surface_type),allocatable :: Fsurf(:)
4034 -@@ -325,9 +325,9 @@
4035 - ! Bound Methods:
4036 - public :: nullify_gkk
4037 - public :: destroy_gkk
4038 -- !$ init_gkk
4039 -- !$ read_gkk_from_file
4040 -- !$ get_gkk_full_fsbz ! complete gkk on the full FS BZ.
4041 -+ !% init_gkk
4042 -+ !% read_gkk_from_file
4043 -+ !% get_gkk_full_fsbz ! complete gkk on the full FS BZ.
4044 -
4045 - interface nullify_gkk
4046 - module procedure nullify_gkk_0D
4047 -@@ -379,9 +379,9 @@
4048 - ! Bound Methods:
4049 - public :: nullify_gkk_handler
4050 - public :: destroy_gkk_handler
4051 -- !$init_gkk_handler(Gkk,FSurf,Cryst,Cryst,qpt,fname)
4052 -- !$get_gammaq
4053 -- !$symmetrize_gkk_over_perts
4054 -+ !%init_gkk_handler(Gkk,FSurf,Cryst,Cryst,qpt,fname)
4055 -+ !%get_gammaq
4056 -+ !%symmetrize_gkk_over_perts
4057 -
4058 - interface nullify_gkk_handler
4059 - module procedure nullify_gkk_handler_0D
4060 -diff -Naur abinit-6.4.2.bak/src/77_suscep/prtsusd.F90 abinit-6.4.2/src/77_suscep/prtsusd.F90
4061 ---- src/77_suscep/prtsusd.F90 2010-12-01 19:47:18.000000000 +0000
4062 -+++ src/77_suscep/prtsusd.F90 2011-01-05 08:58:59.000000000 +0000
4063 -@@ -86,7 +86,7 @@
4064 - allocate(sus_poly(npw_tiny))
4065 -
4066 - !Scaling for e-e interaction energy
4067 --!$-1/2\pi$ [fluctuation-dissipation theorem] * $4\pi$ [Coulomb interaction] = -2
4068 -+!% $-1/2\pi$ [fluctuation-dissipation theorem] * $4\pi$ [Coulomb interaction] = -2
4069 - scalefactor=-2._dp ! -1/2pi[fluctuation-dissipation theorem] * 4pi[Coulomb interaction]
4070 -
4071 - !Directional extrapolation followed by spatial average for G=0 term, using polynomial
4072 -diff -Naur abinit-6.4.2.bak/src/95_drive/bethe_salpeter.F90 abinit-6.4.2/src/95_drive/bethe_salpeter.F90
4073 ---- src/95_drive/bethe_salpeter.F90 2010-12-01 19:47:18.000000000 +0000
4074 -+++ src/95_drive/bethe_salpeter.F90 2011-01-05 09:03:45.000000000 +0000
4075 -@@ -567,7 +567,7 @@
4076 -
4077 - !TODO this has to be done in a better way, moreover wont work for PAW
4078 - !Check Vcp!
4079 --!$ call cutoff_density(ngfftf,Dtset%nspden,Dtset%nsppol,Vcp,ks_rhor,MPI_enreg)
4080 -+!% call cutoff_density(ngfftf,Dtset%nspden,Dtset%nsppol,Vcp,ks_rhor,MPI_enreg)
4081 - !
4082 - !=== Additional computation for PAW ===
4083 - if (Dtset%usepaw==1) then
4084 -diff -Naur abinit-6.4.2.bak/src/95_drive/gw_driver.F90 abinit-6.4.2/src/95_drive/gw_driver.F90
4085 ---- src/95_drive/gw_driver.F90 2010-12-01 19:47:18.000000000 +0000
4086 -+++ src/95_drive/gw_driver.F90 2011-01-05 09:22:30.000000000 +0000
4087 -@@ -171,7 +171,7 @@
4088 - if (read_qps1/=0) then ! Change the default.
4089 - Dtfil%fnameabi_qps=filqps_it1
4090 - else ! Save the IT1 name for GW0 runs
4091 -- !$filqps_it1=TRIM(filnam_ds(3))//'_QPS'
4092 -+ !%filqps_it1=TRIM(filnam_ds(3))//'_QPS'
4093 - filqps_it1=Dtfil%fnameabi_qps
4094 - end if
4095 - !
4096 -@@ -182,7 +182,7 @@
4097 - if (read_scr1/=0) then ! Change the default.
4098 - Dtfil%fnameabi_scr=filscr_it1
4099 - else ! Save the IT1 name for GW0 runs
4100 -- !$filscr_it1=TRIM(filnam_ds(3))//'_SCR'
4101 -+ !%filscr_it1=TRIM(filnam_ds(3))//'_SCR'
4102 - filscr_it1=Dtfil%fnameabi_scr
4103 - end if
4104 - !
4105 -@@ -193,7 +193,7 @@
4106 - if (read_sus1/=0) then ! Change the default.
4107 - Dtfil%fnameabi_sus=filchi0_it1
4108 - else ! Save the IT1 name for GW0 runs
4109 -- !$filchi0_it1=TRIM(filnam_ds(3))//'_SUS'
4110 -+ !%filchi0_it1=TRIM(filnam_ds(3))//'_SUS'
4111 - filchi0_it1 =Dtfil%fnameabi_sus
4112 - end if
4113 - end if
4114 -diff -Naur abinit-6.4.2.bak/src/95_drive/iofn1.F90 abinit-6.4.2/src/95_drive/iofn1.F90
4115 ---- src/95_drive/iofn1.F90 2010-12-01 19:47:18.000000000 +0000
4116 -+++ src/95_drive/iofn1.F90 2011-01-05 09:17:55.000000000 +0000
4117 -@@ -197,10 +197,10 @@
4118 - call filnam_comm(5,filnam,mpi_enreg)
4119 -
4120 - !MG TODO
4121 --!$call xbarrier_mpi(comm_world)
4122 --!$call timab(48,1,tsec)
4123 --!$call xcast_mpi(filnam,0,comm_world,ierr)
4124 --!$call timab(48,2,tsec)
4125 -+!%call xbarrier_mpi(comm_world)
4126 -+!%call timab(48,1,tsec)
4127 -+!%call xcast_mpi(filnam,0,comm_world,ierr)
4128 -+!%call timab(48,2,tsec)
4129 -
4130 - !Create a name for the status file, based on filnam(5)
4131 - filstat=trim(filnam(5))//'_STATUS'
4132 -diff -Naur abinit-6.4.2.bak/src/95_drive/sigma.F90 abinit-6.4.2/src/95_drive/sigma.F90
4133 ---- src/95_drive/sigma.F90 2010-12-01 19:47:18.000000000 +0000
4134 -+++ src/95_drive/sigma.F90 2011-01-05 09:17:02.000000000 +0000
4135 -@@ -1505,12 +1505,12 @@
4136 - !pass it to the setup_ppmodel
4137 - !* It would be possible to calculate rho(G) using Paw_pwff, though. Maybe faster but
4138 - !results will depend on the expression used for the matrix elements. This approach is safer.
4139 --!$ if (Psps%usepaw==1.and.Ppm%needs_rhog>0) then
4140 --!$ allocate(ks_rhor_paw(nfftf,Dtset%nspden))
4141 --!$ call denfgr(Cryst%natom,Dtset%nspden,ks_nhat,Cryst%ntypat,Pawfgr,Pawfgrtab,Pawrad,KS_pawrhoij,Pawtab,&
4142 --!$& ks_rhor,ks_rhor_paw,Psps,Cryst%typat)
4143 --!$ deallocate(ks_rhor_paw)
4144 --!$ end if
4145 -+!% if (Psps%usepaw==1.and.Ppm%needs_rhog>0) then
4146 -+!% allocate(ks_rhor_paw(nfftf,Dtset%nspden))
4147 -+!% call denfgr(Cryst%natom,Dtset%nspden,ks_nhat,Cryst%ntypat,Pawfgr,Pawfgrtab,Pawrad,KS_pawrhoij,Pawtab,&
4148 -+!%& ks_rhor,ks_rhor_paw,Psps,Cryst%typat)
4149 -+!% deallocate(ks_rhor_paw)
4150 -+!% end if
4151 -
4152 - call timab(409,2,tsec) ! getW
4153 - !