The code HFODD requires an external subroutine which
diagonalizes complex hermitian matrices. Version (v1.60r), see II,
has been prepared with an interface to the NAGLIB subroutine
F02AXE, and version (v1.75r), see III, with an interface to the
LAPACK subroutine ZHPEV, which can be downloaded (with
dependencies) from
http://netlib2.cs.utk.edu/cgi-bin/netlibfiles.pl?filename=/lapack/complex16/zhpev.f
In the present version (v2.07f) both these interfaces remain
supported, and can be activated as described in II and III, respectively.
In addition, in version (v2.07f) we have implemented
interface to the LAPACK subroutine ZHPEVX, which can be downloaded
(with dependencies) from
http://netlib2.cs.utk.edu/cgi-bin/netlibfiles.pl?filename=/lapack/complex16/zhpevx.f
This subroutine finds not all, but only the lowest eigenvectors, and
hence performs calculations in less CPU time; the gain is
particularly significant for large HO bases. Numbers of eigenvectors
to be found are defined by the size of the HO phasespace,
see keyword PHASESPACE in Sec. III-3.1.
Subroutine ZHPEVX and its dependencies are in the REAL*8/COMPLEX*16 version, and should be compiled without promoting real numbers to the double precision. On the other hand, the code HFODD itself does require compilation with an option promoting to double precision. Therefore, the code and the ZHPEVX package should be compiled separately, and then should be linked together.
In order to activate the interface to the LAPACK ZHPEVX subroutine, the following modifications of the code HFODD (v2.07f) have to be made: