More miscellanous cleanup from Axel:

- disable locales via use of LC_ALL=C in all shell scripts
   (which will hopefully make sorted lists more consistent
    between people running with different locales).
 - remove redundant files from PW, NMR_new, VdW, VIB;
   rename subroutines if their functionality is noI
   unchanged from the original source it was taken from.
 - corresponding updates to Makefiles and dependencies.
 - whitespace cleanups (eleminate remaining tabs).
 - a few more float->DBLE


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3596 c92efa57-630b-4861-b058-cf58834340f0
This commit is contained in:
giannozz 2006-12-12 11:02:09 +00:00
parent 166ec98487
commit 19aaac89fa
71 changed files with 1069 additions and 2176 deletions

View File

@ -172,7 +172,7 @@
!-------------verifica
! do i=1,n
! do ig=1,ngw
! phi(ig,i,1,1)=phi(ig,i,1,1)+c0(ig,i,1,1)*(1.d0/ema0bg(ig)-1.d0)
! phi(ig,i,1,1)=phi(ig,i,1,1)+c0(ig,i,1,1)*(1.d0/ema0bg(ig)-1.d0)
! enddo
! enddo
! !call calbec(1,nsp,eigr,phi,becm)

View File

@ -5,6 +5,8 @@
! in the root directory of the present distribution,
! or http://www.gnu.org/copyleft/gpl.txt .
!
#include "f_defs.h"
!
!----------------------------------------------------------------------------
SUBROUTINE compute_scf( N_in, N_fin, stat )
!----------------------------------------------------------------------------
@ -35,7 +37,7 @@ SUBROUTINE compute_scf( N_in, N_fin, stat )
INTEGER :: image
REAL(DP) :: tcpu
CHARACTER(LEN=256) :: outdir_saved
LOGICAL :: file_exists, opnd
LOGICAL :: opnd
REAL(DP), ALLOCATABLE :: tau(:,:)
REAL(DP), ALLOCATABLE :: fion(:,:)
REAL(DP) :: etot

View File

@ -1,6 +1,6 @@
! cp_autopilot.f90
!********************************************************************************
! cp_autopilot.f90 Copyright (c) 2005 Targacept, Inc.
! cp_autopilot.f90 Copyright (c) 2005 Targacept, Inc.
!********************************************************************************
! The Autopilot Feature suite is a user level enhancement that enables the
! following features:

View File

@ -351,15 +351,15 @@ SUBROUTINE cprmain( tau_out, fion_out, etot_out )
!
IF ( lconstrain ) THEN
!
IF ( ionode ) THEN
!
IF ( ionode ) THEN
!
ALLOCATE( usrt_tau0( 3, nat ) )
ALLOCATE( usrt_taup( 3, nat ) )
ALLOCATE( usrt_fion( 3, nat ) )
!
usrt_tau0(:,:) = tau0(:,ind_bck(:))
usrt_fion(:,:) = fion(:,ind_bck(:))
!
!
usrt_tau0(:,:) = tau0(:,ind_bck(:))
usrt_fion(:,:) = fion(:,ind_bck(:))
!
IF ( lcoarsegrained ) CALL set_target()
!
! ... we first remove the component of the force along the
@ -370,11 +370,11 @@ SUBROUTINE cprmain( tau_out, fion_out, etot_out )
if_pos, ityp, 1.D0, usrt_fion )
!
fion(:,:) = usrt_fion(:,ind_srt(:))
!
END IF
!
CALL mp_bcast( fion, ionode_id, intra_image_comm )
!
!
END IF
!
CALL mp_bcast( fion, ionode_id, intra_image_comm )
!
END IF
!
CALL ions_move( tausp, taus, tausm, iforce, pmass, fion, ainv, &
@ -386,28 +386,28 @@ SUBROUTINE cprmain( tau_out, fion_out, etot_out )
! ... constraints are imposed here
!
IF ( ionode ) THEN
!
!
CALL s_to_r( tausp, taup, na, nsp, hnew )
!
usrt_taup(:,:) = taup(:,ind_bck(:))
usrt_taup(:,:) = taup(:,ind_bck(:))
!
CALL check_constraint( nat, usrt_taup, usrt_tau0, usrt_fion, &
if_pos, ityp, 1.D0, delt, amu_au )
if_pos, ityp, 1.D0, delt, amu_au )
!
taup(:,:) = usrt_taup(:,ind_srt(:))
fion(:,:) = usrt_fion(:,ind_srt(:))
taup(:,:) = usrt_taup(:,ind_srt(:))
fion(:,:) = usrt_fion(:,ind_srt(:))
!
! ... average value of the lagrange multipliers
!
IF ( lcoarsegrained ) CALL mean_force( nfi, etot, 1.D0 )
!
DEALLOCATE( usrt_tau0, usrt_taup, usrt_fion )
!
DEALLOCATE( usrt_tau0, usrt_taup, usrt_fion )
!
END IF
!
CALL mp_bcast( taup, ionode_id, intra_image_comm )
CALL mp_bcast( fion, ionode_id, intra_image_comm )
!
CALL mp_bcast( taup, ionode_id, intra_image_comm )
CALL mp_bcast( fion, ionode_id, intra_image_comm )
!
CALL r_to_s( taup, tausp, na, nsp, ainv )
!
END IF

File diff suppressed because it is too large Load Diff

View File

@ -1,24 +1,23 @@
allocate_d3.o : d3com.o
allocate_d3.o : ../Modules/ions_base.o
allocate_d3.o : ../PH/phcom.o
allocate_d3.o : ../PW/pwcom.o
bcast_d3_input.o : d3com.o
allocate_d3.o : d3com.o
bcast_d3_input.o : ../Modules/control_flags.o
bcast_d3_input.o : ../Modules/io_files.o
bcast_d3_input.o : ../Modules/ions_base.o
bcast_d3_input.o : ../Modules/mp.o
bcast_d3_input.o : ../PH/phcom.o
bcast_d3_input.o : ../PW/pwcom.o
bcast_d3_input.o : d3com.o
ch_psi_all2.o : ../Modules/kind.o
ch_psi_all2.o : ../PH/phcom.o
ch_psi_all2.o : ../PW/becmod.o
ch_psi_all2.o : ../PW/pwcom.o
close_open.o : d3com.o
close_open.o : ../Modules/io_files.o
close_open.o : ../Modules/io_global.o
close_open.o : ../PH/phcom.o
close_open.o : ../PW/pwcom.o
d0rhod2v.o : d3com.o
close_open.o : d3com.o
d0rhod2v.o : ../Modules/io_files.o
d0rhod2v.o : ../Modules/io_global.o
d0rhod2v.o : ../Modules/ions_base.o
@ -28,39 +27,23 @@ d0rhod2v.o : ../Modules/uspp.o
d0rhod2v.o : ../Modules/wavefunctions.o
d0rhod2v.o : ../PH/phcom.o
d0rhod2v.o : ../PW/pwcom.o
d0rhod2v.o : d3com.o
d2mxc.o : ../Modules/kind.o
d3com.o : ../Modules/kind.o
d3dyn_cc.o : d3com.o
d3dyn_cc.o : ../Modules/functionals.o
d3dyn_cc.o : ../Modules/ions_base.o
d3dyn_cc.o : ../Modules/kind.o
d3dyn_cc.o : ../PH/phcom.o
d3dyn_cc.o : ../PW/pwcom.o
d3_exc.o : d3com.o
d3_exc.o : ../Modules/io_global.o
d3_exc.o : ../Modules/ions_base.o
d3_exc.o : ../Modules/kind.o
d3_exc.o : ../Modules/mp_global.o
d3_exc.o : ../Modules/mp.o
d3_exc.o : ../Modules/mp_global.o
d3_exc.o : ../PH/phcom.o
d3_exc.o : ../PW/pwcom.o
d3_init.o : d3com.o
d3_exc.o : d3com.o
d3_init.o : ../Modules/atom.o
d3_init.o : ../Modules/ions_base.o
d3_init.o : ../Modules/mp.o
d3_init.o : ../Modules/uspp.o
d3_init.o : ../PH/phcom.o
d3_init.o : ../PW/pwcom.o
d3ionq.o : ../Modules/constants.o
d3ionq.o : ../Modules/io_global.o
d3ionq.o : ../Modules/kind.o
d3matrix.o : d3com.o
d3matrix.o : ../Modules/control_flags.o
d3matrix.o : ../Modules/ions_base.o
d3matrix.o : ../Modules/kind.o
d3matrix.o : ../PH/phcom.o
d3matrix.o : ../PW/pwcom.o
d3_readin.o : d3com.o
d3_init.o : d3com.o
d3_readin.o : ../Modules/control_flags.o
d3_readin.o : ../Modules/io_files.o
d3_readin.o : ../Modules/io_global.o
@ -68,12 +51,12 @@ d3_readin.o : ../Modules/ions_base.o
d3_readin.o : ../PH/phcom.o
d3_readin.o : ../PW/noncol.o
d3_readin.o : ../PW/pwcom.o
d3_recover.o : d3com.o
d3_readin.o : d3com.o
d3_recover.o : ../Modules/io_global.o
d3_recover.o : ../Modules/mp.o
d3_recover.o : ../PH/phcom.o
d3_recover.o : ../PW/pwcom.o
d3_setup.o : d3com.o
d3_recover.o : d3com.o
d3_setup.o : ../Modules/atom.o
d3_setup.o : ../Modules/constants.o
d3_setup.o : ../Modules/control_flags.o
@ -84,7 +67,7 @@ d3_setup.o : ../Modules/kind.o
d3_setup.o : ../Modules/mp_global.o
d3_setup.o : ../PH/phcom.o
d3_setup.o : ../PW/pwcom.o
d3_summary.o : d3com.o
d3_setup.o : d3com.o
d3_summary.o : ../Modules/atom.o
d3_summary.o : ../Modules/control_flags.o
d3_summary.o : ../Modules/io_global.o
@ -93,10 +76,31 @@ d3_summary.o : ../Modules/kind.o
d3_summary.o : ../Modules/uspp.o
d3_summary.o : ../PH/phcom.o
d3_summary.o : ../PW/pwcom.o
d3_summary.o : d3com.o
d3_symdyn.o : ../Modules/kind.o
d3_symdynph.o : ../Modules/constants.o
d3_symdynph.o : ../Modules/kind.o
d3toten.o : d3com.o
d3_valence.o : ../Modules/ions_base.o
d3_valence.o : ../Modules/kind.o
d3_valence.o : ../PH/phcom.o
d3_valence.o : ../PW/pwcom.o
d3_valence.o : d3com.o
d3com.o : ../Modules/kind.o
d3dyn_cc.o : ../Modules/functionals.o
d3dyn_cc.o : ../Modules/ions_base.o
d3dyn_cc.o : ../Modules/kind.o
d3dyn_cc.o : ../PH/phcom.o
d3dyn_cc.o : ../PW/pwcom.o
d3dyn_cc.o : d3com.o
d3ionq.o : ../Modules/constants.o
d3ionq.o : ../Modules/io_global.o
d3ionq.o : ../Modules/kind.o
d3matrix.o : ../Modules/control_flags.o
d3matrix.o : ../Modules/ions_base.o
d3matrix.o : ../Modules/kind.o
d3matrix.o : ../PH/phcom.o
d3matrix.o : ../PW/pwcom.o
d3matrix.o : d3com.o
d3toten.o : ../Modules/io_files.o
d3toten.o : ../Modules/io_global.o
d3toten.o : ../Modules/ions_base.o
@ -104,12 +108,7 @@ d3toten.o : ../Modules/kind.o
d3toten.o : ../Modules/version.o
d3toten.o : ../PH/phcom.o
d3toten.o : ../PW/pwcom.o
d3_valence.o : d3com.o
d3_valence.o : ../Modules/ions_base.o
d3_valence.o : ../Modules/kind.o
d3_valence.o : ../PH/phcom.o
d3_valence.o : ../PW/pwcom.o
d3vrho.o : d3com.o
d3toten.o : d3com.o
d3vrho.o : ../Modules/cell_base.o
d3vrho.o : ../Modules/constants.o
d3vrho.o : ../Modules/io_files.o
@ -119,29 +118,29 @@ d3vrho.o : ../Modules/uspp.o
d3vrho.o : ../Modules/wavefunctions.o
d3vrho.o : ../PH/phcom.o
d3vrho.o : ../PW/pwcom.o
d3vrho.o : d3com.o
davcio_drho2.o : ../Modules/io_global.o
davcio_drho2.o : ../Modules/kind.o
davcio_drho2.o : ../Modules/mp_global.o
davcio_drho2.o : ../Modules/mp.o
davcio_drho2.o : ../Modules/mp_global.o
davcio_drho2.o : ../PH/phcom.o
davcio_drho2.o : ../PW/para.o
davcio_drho2.o : ../PW/pwcom.o
dpsi_corr.o : d3com.o
dpsi_corr.o : ../Modules/kind.o
dpsi_corr.o : ../PH/phcom.o
dpsi_corr.o : ../PW/pwcom.o
dpsidpsidv.o : d3com.o
dpsi_corr.o : d3com.o
dpsidpsidv.o : ../Modules/ions_base.o
dpsidpsidv.o : ../Modules/kind.o
dpsidpsidv.o : ../PH/phcom.o
dpsidpsidv.o : ../PW/pwcom.o
dpsidvdpsi.o : d3com.o
dpsidpsidv.o : d3com.o
dpsidvdpsi.o : ../Modules/io_files.o
dpsidvdpsi.o : ../Modules/ions_base.o
dpsidvdpsi.o : ../Modules/kind.o
dpsidvdpsi.o : ../PH/phcom.o
dpsidvdpsi.o : ../PW/pwcom.o
dqrhod2v.o : d3com.o
dpsidvdpsi.o : d3com.o
dqrhod2v.o : ../Modules/io_files.o
dqrhod2v.o : ../Modules/ions_base.o
dqrhod2v.o : ../Modules/kind.o
@ -150,88 +149,88 @@ dqrhod2v.o : ../Modules/uspp.o
dqrhod2v.o : ../Modules/wavefunctions.o
dqrhod2v.o : ../PH/phcom.o
dqrhod2v.o : ../PW/pwcom.o
drho_cc.o : d3com.o
dqrhod2v.o : d3com.o
drho_cc.o : ../Modules/kind.o
drho_cc.o : ../PH/phcom.o
drho_cc.o : ../PW/pwcom.o
drhod2v.o : d3com.o
drhod2v.o : ../Modules/ions_base.o
drhod2v.o : ../Modules/kind.o
drhod2v.o : ../PH/phcom.o
drhod2v.o : ../PW/pwcom.o
drho_drc.o : d3com.o
drho_cc.o : d3com.o
drho_drc.o : ../Modules/atom.o
drho_drc.o : ../Modules/ions_base.o
drho_drc.o : ../Modules/kind.o
drho_drc.o : ../Modules/mp.o
drho_drc.o : ../PH/phcom.o
drho_drc.o : ../PW/pwcom.o
dvdpsi.o : d3com.o
drho_drc.o : d3com.o
drhod2v.o : ../Modules/ions_base.o
drhod2v.o : ../Modules/kind.o
drhod2v.o : ../PH/phcom.o
drhod2v.o : ../PW/pwcom.o
drhod2v.o : d3com.o
dvdpsi.o : ../Modules/ions_base.o
dvdpsi.o : ../Modules/uspp.o
dvdpsi.o : ../PH/phcom.o
dvdpsi.o : ../PW/pwcom.o
dvscf.o : d3com.o
dvdpsi.o : d3com.o
dvscf.o : ../Modules/atom.o
dvscf.o : ../Modules/ions_base.o
dvscf.o : ../Modules/kind.o
dvscf.o : ../PH/phcom.o
dvscf.o : ../PW/pwcom.o
gen_dpdvp.o : d3com.o
dvscf.o : d3com.o
gen_dpdvp.o : ../Modules/io_files.o
gen_dpdvp.o : ../Modules/ions_base.o
gen_dpdvp.o : ../Modules/kind.o
gen_dpdvp.o : ../Modules/wavefunctions.o
gen_dpdvp.o : ../PH/phcom.o
gen_dpdvp.o : ../PW/pwcom.o
gen_dwfc.o : d3com.o
gen_dpdvp.o : d3com.o
gen_dwfc.o : ../Modules/io_global.o
gen_dwfc.o : ../PH/phcom.o
gen_dwfc.o : ../PW/pwcom.o
gen_dwfc.o : d3com.o
incdrhoscf2.o : ../Modules/ions_base.o
incdrhoscf2.o : ../Modules/kind.o
incdrhoscf2.o : ../Modules/uspp.o
incdrhoscf2.o : ../Modules/wavefunctions.o
incdrhoscf2.o : ../PH/phcom.o
incdrhoscf2.o : ../PW/pwcom.o
openfild3.o : d3com.o
openfild3.o : ../Modules/control_flags.o
openfild3.o : ../Modules/io_files.o
openfild3.o : ../Modules/io_global.o
openfild3.o : ../Modules/mp_global.o
openfild3.o : ../PH/phcom.o
openfild3.o : ../PW/pwcom.o
print_clock_d3.o : d3com.o
openfild3.o : d3com.o
print_clock_d3.o : ../Modules/io_global.o
psymd0rho.o : d3com.o
print_clock_d3.o : d3com.o
psymd0rho.o : ../Modules/ions_base.o
psymd0rho.o : ../Modules/kind.o
psymd0rho.o : ../Modules/mp_global.o
psymd0rho.o : ../PH/phcom.o
psymd0rho.o : ../PW/para.o
psymd0rho.o : ../PW/pwcom.o
psymd0rho.o : d3com.o
qstar_d3.o : ../Modules/kind.o
read_ef.o : d3com.o
read_ef.o : ../Modules/io_global.o
read_ef.o : ../Modules/mp.o
read_ef.o : ../PW/pwcom.o
read_ef.o : d3com.o
rotate_and_add_d3.o : ../Modules/kind.o
set_d3irr.o : d3com.o
set_d3irr.o : ../Modules/control_flags.o
set_d3irr.o : ../Modules/ions_base.o
set_d3irr.o : ../Modules/kind.o
set_d3irr.o : ../PH/phcom.o
set_d3irr.o : ../PW/pwcom.o
set_efsh.o : d3com.o
set_d3irr.o : d3com.o
set_efsh.o : ../Modules/io_global.o
set_efsh.o : ../Modules/kind.o
set_efsh.o : ../PH/phcom.o
set_efsh.o : ../PW/pwcom.o
set_efsh.o : d3com.o
set_sym_irr.o : ../Modules/kind.o
set_sym_irr.o : ../Modules/mp_global.o
set_sym_irr.o : ../Modules/mp.o
set_sym_irr.o : ../Modules/mp_global.o
sgama_d3.o : ../Modules/kind.o
solve_linter_d3.o : d3com.o
solve_linter_d3.o : ../Modules/io_files.o
solve_linter_d3.o : ../Modules/io_global.o
solve_linter_d3.o : ../Modules/ions_base.o
@ -239,51 +238,52 @@ solve_linter_d3.o : ../Modules/kind.o
solve_linter_d3.o : ../Modules/wavefunctions.o
solve_linter_d3.o : ../PH/phcom.o
solve_linter_d3.o : ../PW/pwcom.o
stop_d3.o : d3com.o
solve_linter_d3.o : d3com.o
stop_d3.o : ../Modules/control_flags.o
stop_d3.o : ../Modules/io_files.o
stop_d3.o : ../Modules/mp_global.o
stop_d3.o : ../Modules/mp.o
stop_d3.o : ../Modules/mp_global.o
stop_d3.o : ../PH/phcom.o
stop_d3.o : ../PW/pwcom.o
symd0rho.o : ../Modules/kind.o
sym_def1.o : d3com.o
stop_d3.o : d3com.o
sym_def1.o : ../Modules/kind.o
sym_def1.o : ../PH/phcom.o
sym_def1.o : ../PW/pwcom.o
sym_def1.o : d3com.o
symd0rho.o : ../Modules/kind.o
trntnsc_3.o : ../Modules/kind.o
w_1gauss.o : ../Modules/kind.o
write_aux.o : d3com.o
write_aux.o : ../Modules/ions_base.o
write_aux.o : ../PH/phcom.o
write_aux.o : ../PW/pwcom.o
writed3dyn_5.o : d3com.o
write_aux.o : d3com.o
write_d3dyn.o : ../Modules/kind.o
write_igk.o : ../Modules/io_files.o
write_igk.o : ../PH/phcom.o
write_igk.o : ../PW/pwcom.o
writed3dyn_5.o : ../Modules/io_global.o
writed3dyn_5.o : ../Modules/ions_base.o
writed3dyn_5.o : ../Modules/kind.o
writed3dyn_5.o : ../PH/phcom.o
writed3dyn_5.o : ../PW/pwcom.o
write_d3dyn.o : ../Modules/kind.o
write_igk.o : ../Modules/io_files.o
write_igk.o : ../PH/phcom.o
write_igk.o : ../PW/pwcom.o
writed3dyn_5.o : d3com.o
allocate_d3.o : ../include/f_defs.h
bcast_d3_input.o : ../include/f_defs.h
ch_psi_all2.o : ../include/f_defs.h
close_open.o : ../include/f_defs.h
d0rhod2v.o : ../include/f_defs.h
d3dyn_cc.o : ../include/f_defs.h
d3_exc.o : ../include/f_defs.h
d3_init.o : ../include/f_defs.h
d3ionq.o : ../include/f_defs.h
d3_readin.o : ../include/f_defs.h
d3_recover.o : ../include/f_defs.h
d3_setup.o : ../include/f_defs.h
d3_summary.o : ../include/f_defs.h
d3_symdyn.o : ../include/f_defs.h
d3_symdynph.o : ../include/f_defs.h
d3toten.o : ../include/f_defs.h
d3_valence.o : ../include/f_defs.h
d3dyn_cc.o : ../include/f_defs.h
d3ionq.o : ../include/f_defs.h
d3toten.o : ../include/f_defs.h
d3vrho.o : ../include/f_defs.h
davcio_drho2.o : ../include/f_defs.h
dpsi_corr.o : ../include/f_defs.h
@ -291,8 +291,8 @@ dpsidpsidv.o : ../include/f_defs.h
dpsidvdpsi.o : ../include/f_defs.h
dqrhod2v.o : ../include/f_defs.h
drho_cc.o : ../include/f_defs.h
drhod2v.o : ../include/f_defs.h
drho_drc.o : ../include/f_defs.h
drhod2v.o : ../include/f_defs.h
dvdpsi.o : ../include/f_defs.h
dvscf.o : ../include/f_defs.h
gen_dpdvp.o : ../include/f_defs.h
@ -307,8 +307,8 @@ set_efsh.o : ../include/f_defs.h
set_sym_irr.o : ../include/f_defs.h
sgama_d3.o : ../include/f_defs.h
solve_linter_d3.o : ../include/f_defs.h
symd0rho.o : ../include/f_defs.h
sym_def1.o : ../include/f_defs.h
symd0rho.o : ../include/f_defs.h
trntnsc_3.o : ../include/f_defs.h
write_aux.o : ../include/f_defs.h
writed3dyn_5.o : ../include/f_defs.h

View File

@ -3500,5 +3500,16 @@ is the physical length of your box along the $x$ axis. You have to round
your result to the nearest larger integer.'' (info by Nicola Marzari)
\end{itemize}
\item {\em How can I calculate magnetic moments for each atom?}
"There is no 'right' way of defining the local magnetic moment around
an atom in a multi-atom system. However an approximate way to define
it is via the projected density of states on the atomic orbitals (code
{\tt projwfc.x}, see example08 for its use as a postprocessing tool).
This code generate many files with the density of states projected
on each atomic wavefunction of each atom and a BIG amount of data
on the standard output, the last few lines of which contain the
decomposition of Lowdin charges on angular momentum and spin component
of each atom."
\end{document}

View File

@ -1,4 +1,3 @@
a_h.o : cgcom.o
a_h.o : ../Modules/cell_base.o
a_h.o : ../Modules/constants.o
a_h.o : ../Modules/functionals.o
@ -7,8 +6,7 @@ a_h.o : ../Modules/uspp.o
a_h.o : ../Modules/wavefunctions.o
a_h.o : ../PW/becmod.o
a_h.o : ../PW/pwcom.o
cgcom.o : ../Modules/kind.o
cg_readin.o : cgcom.o
a_h.o : cgcom.o
cg_readin.o : ../Modules/io_files.o
cg_readin.o : ../Modules/io_global.o
cg_readin.o : ../Modules/ions_base.o
@ -16,11 +14,7 @@ cg_readin.o : ../Modules/kind.o
cg_readin.o : ../Modules/mp.o
cg_readin.o : ../PW/noncol.o
cg_readin.o : ../PW/pwcom.o
cg_setupdgc.o : cgcom.o
cg_setupdgc.o : ../Modules/functionals.o
cg_setupdgc.o : ../Modules/kind.o
cg_setupdgc.o : ../PW/pwcom.o
cg_setup.o : cgcom.o
cg_readin.o : cgcom.o
cg_setup.o : ../Modules/atom.o
cg_setup.o : ../Modules/functionals.o
cg_setup.o : ../Modules/io_files.o
@ -29,6 +23,12 @@ cg_setup.o : ../Modules/kind.o
cg_setup.o : ../Modules/mp_global.o
cg_setup.o : ../Modules/wavefunctions.o
cg_setup.o : ../PW/pwcom.o
cg_setup.o : cgcom.o
cg_setupdgc.o : ../Modules/functionals.o
cg_setupdgc.o : ../Modules/kind.o
cg_setupdgc.o : ../PW/pwcom.o
cg_setupdgc.o : cgcom.o
cgcom.o : ../Modules/kind.o
cgsolve.o : ../Modules/io_global.o
cgsolve.o : ../Modules/kind.o
d2ion.o : ../Modules/io_global.o
@ -38,45 +38,44 @@ dgcxc.o : ../Modules/kind.o
dgcxc_spin.o : ../Modules/functionals.o
dgcxc_spin.o : ../Modules/kind.o
dgradcorr.o : ../Modules/kind.o
dielec.o : cgcom.o
dielec.o : ../Modules/ions_base.o
dielec.o : ../PW/pwcom.o
drhodv.o : cgcom.o
dielec.o : cgcom.o
drhodv.o : ../PW/pwcom.o
dvpsi_e.o : cgcom.o
drhodv.o : cgcom.o
dvpsi_e.o : ../Modules/ions_base.o
dvpsi_e.o : ../Modules/kind.o
dvpsi_e.o : ../Modules/uspp.o
dvpsi_e.o : ../Modules/wavefunctions.o
dvpsi_e.o : ../PW/becmod.o
dvpsi_e.o : ../PW/pwcom.o
dvpsi_kb.o : cgcom.o
dvpsi_e.o : cgcom.o
dvpsi_kb.o : ../Modules/atom.o
dvpsi_kb.o : ../Modules/ions_base.o
dvpsi_kb.o : ../Modules/kind.o
dvpsi_kb.o : ../Modules/uspp.o
dvpsi_kb.o : ../Modules/wavefunctions.o
dvpsi_kb.o : ../PW/pwcom.o
dvpsi_kb.o : cgcom.o
dyndiar.o : ../Modules/io_global.o
dyndiar.o : ../Modules/kind.o
dynmatcc.o : cgcom.o
dynmat_init.o : ../Modules/ions_base.o
dynmat_init.o : ../PW/pwcom.o
dynmat_init.o : cgcom.o
dynmatcc.o : ../Modules/atom.o
dynmatcc.o : ../Modules/ions_base.o
dynmatcc.o : ../Modules/wavefunctions.o
dynmatcc.o : ../PW/pwcom.o
dynmat_init.o : cgcom.o
dynmat_init.o : ../Modules/ions_base.o
dynmat_init.o : ../PW/pwcom.o
dynmatcc.o : cgcom.o
generate_dynamical_matrix.o : ../Modules/kind.o
generate_effective_charges.o : ../Modules/kind.o
h_h.o : cgcom.o
h_h.o : ../Modules/kind.o
h_h.o : ../Modules/uspp.o
h_h.o : ../PW/becmod.o
h_h.o : ../PW/pwcom.o
macro.o : cgcom.o
h_h.o : cgcom.o
macro.o : ../PW/pwcom.o
phcg.o : cgcom.o
macro.o : cgcom.o
phcg.o : ../Modules/check_stop.o
phcg.o : ../Modules/control_flags.o
phcg.o : ../Modules/functionals.o
@ -87,27 +86,28 @@ phcg.o : ../Modules/mp.o
phcg.o : ../Modules/version.o
phcg.o : ../PW/noncol.o
phcg.o : ../PW/pwcom.o
phcg.o : cgcom.o
pw_dot.o : ../Modules/kind.o
pw_dot.o : ../PW/pwcom.o
rhod2vkb.o : cgcom.o
rhod2vkb.o : ../Modules/ions_base.o
rhod2vkb.o : ../Modules/uspp.o
rhod2vkb.o : ../Modules/wavefunctions.o
rhod2vkb.o : ../PW/pwcom.o
solve_e.o : cgcom.o
rhod2vkb.o : cgcom.o
solve_e.o : ../Modules/io_global.o
solve_e.o : ../Modules/wavefunctions.o
solve_e.o : ../PW/becmod.o
solve_e.o : ../PW/pwcom.o
solve_ph.o : cgcom.o
solve_e.o : cgcom.o
solve_ph.o : ../Modules/io_files.o
solve_ph.o : ../Modules/io_global.o
solve_ph.o : ../Modules/wavefunctions.o
solve_ph.o : ../PW/becmod.o
solve_ph.o : ../PW/pwcom.o
writedyn.o : cgcom.o
solve_ph.o : cgcom.o
writedyn.o : ../Modules/ions_base.o
writedyn.o : ../PW/pwcom.o
writedyn.o : cgcom.o
a_h.o : ../include/f_defs.h
cg_readin.o : ../include/f_defs.h
cg_setup.o : ../include/f_defs.h
@ -120,8 +120,8 @@ dvb_cc.o : ../include/f_defs.h
dvpsi_e.o : ../include/f_defs.h
dvpsi_kb.o : ../include/f_defs.h
dyndiar.o : ../include/f_defs.h
dynmatcc.o : ../include/f_defs.h
dynmat_init.o : ../include/f_defs.h
dynmatcc.o : ../include/f_defs.h
generate_dynamical_matrix.o : ../include/f_defs.h
generate_effective_charges.o : ../include/f_defs.h
h_h.o : ../include/f_defs.h

View File

@ -1,6 +1,6 @@
! autopilot.f90
!********************************************************************************
! autopilot.f90 Copyright (c) 2005 Targacept, Inc.
! autopilot.f90 Copyright (c) 2005 Targacept, Inc.
!********************************************************************************
! The Autopilot Feature suite is a user level enhancement that enables the
! following features:

View File

@ -577,7 +577,7 @@ MODULE input_parameters
noncolin, lspinorb, lambda, angle1, angle2, report, &
constrained_magnetization, B_field, fixed_magnetization, &
sic, sic_epsilon, force_pairing, sic_alpha, &
tot_charge, multiplicity, tot_magnetization
tot_charge, multiplicity, tot_magnetization
!=----------------------------------------------------------------------------=!
! ELECTRONS Namelist Input Parameters

View File

@ -7,8 +7,8 @@ autopilot.o : mp.o
autopilot.o : parser.o
basic_algebra_routines.o : kind.o
berry_phase.o : io_global.o
berry_phase.o : mp_global.o
berry_phase.o : mp.o
berry_phase.o : mp_global.o
berry_phase.o : recvec.o
berry_phase.o : stick_base.o
bfgs_module.o : basic_algebra_routines.o
@ -25,12 +25,12 @@ check_stop.o : input_parameters.o
check_stop.o : io_files.o
check_stop.o : io_global.o
check_stop.o : kind.o
check_stop.o : mp_global.o
check_stop.o : mp.o
check_stop.o : mp_global.o
clocks.o : io_global.o
clocks.o : kind.o
clocks.o : mp_global.o
clocks.o : mp.o
clocks.o : mp_global.o
constants.o : kind.o
constraints_module.o : basic_algebra_routines.o
constraints_module.o : cell_base.o
@ -55,8 +55,8 @@ fft_base.o : kind.o
fft_base.o : mp_global.o
fft_base.o : parallel_include.o
fft_base.o : task_groups.o
fft_scalar.o : kind.o
fft_scalar.o : kind.o
fft_types.o : io_global.o
functionals.o : io_global.o
functionals.o : kind.o
@ -64,8 +64,8 @@ griddim.o : fft_scalar.o
griddim.o : fft_types.o
griddim.o : io_global.o
griddim.o : kind.o
griddim.o : mp_global.o
griddim.o : mp.o
griddim.o : mp_global.o
input_parameters.o : kind.o
input_parameters.o : parameters.o
input_parameters.o : pres_ai_mod.o
@ -99,13 +99,13 @@ metadyn_base.o : metadyn_vars.o
metadyn_base.o : mp.o
metadyn_base.o : random_numbers.o
metadyn_base.o : xml_io_base.o
metadyn_io.o : ../iotk/src/iotk_module.o
metadyn_io.o : constants.o
metadyn_io.o : constraints_module.o
metadyn_io.o : input_parameters.o
metadyn_io.o : io_files.o
metadyn_io.o : io_global.o
metadyn_io.o : ions_base.o
metadyn_io.o : ../iotk/src/iotk_module.o
metadyn_io.o : kind.o
metadyn_io.o : metadyn_vars.o
metadyn_io.o : mp.o
@ -113,20 +113,20 @@ metadyn_io.o : xml_io_base.o
metadyn_vars.o : control_flags.o
metadyn_vars.o : input_parameters.o
metadyn_vars.o : kind.o
mp_global.o : mp.o
mp_global.o : parallel_include.o
mp_global.o : shmem_include.o
mp.o : io_global.o
mp.o : kind.o
mp.o : parallel_include.o
mp_global.o : mp.o
mp_global.o : parallel_include.o
mp_global.o : shmem_include.o
mp_wave.o : kind.o
mp_wave.o : parallel_include.o
parallel_include.o : kind.o
parallel_types.o : kind.o
parser.o : io_global.o
parser.o : kind.o
parser.o : mp_global.o
parser.o : mp.o
parser.o : mp_global.o
path_base.o : basic_algebra_routines.o
path_base.o : check_stop.o
path_base.o : constants.o
@ -139,8 +139,8 @@ path_base.o : ions_base.o
path_base.o : kind.o
path_base.o : metadyn_base.o
path_base.o : metadyn_vars.o
path_base.o : mp_global.o
path_base.o : mp.o
path_base.o : mp_global.o
path_base.o : path_formats.o
path_base.o : path_io_routines.o
path_base.o : path_opt_routines.o
@ -156,8 +156,8 @@ path_io_routines.o : io_files.o
path_io_routines.o : io_global.o
path_io_routines.o : ions_base.o
path_io_routines.o : kind.o
path_io_routines.o : mp_global.o
path_io_routines.o : mp.o
path_io_routines.o : mp_global.o
path_io_routines.o : path_formats.o
path_io_routines.o : path_reparametrisation.o
path_io_routines.o : path_variables.o
@ -180,12 +180,12 @@ path_variables.o : kind.o
pres_ai_mod.o : parameters.o
printout_base.o : io_global.o
printout_base.o : kind.o
printout_base.o : mp_global.o
printout_base.o : mp.o
pseudodata.o : kind.o
pseudodata.o : parameters.o
printout_base.o : mp_global.o
pseudo_types.o : kind.o
pseudo_types.o : parameters.o
pseudodata.o : kind.o
pseudodata.o : parameters.o
ptoolkit.o : io_global.o
ptoolkit.o : kind.o
ptoolkit.o : mp.o
@ -213,8 +213,8 @@ read_uspp.o : kind.o
read_uspp.o : parameters.o
read_uspp.o : uspp.o
recvec.o : kind.o
recvec.o : mp_global.o
recvec.o : mp.o
recvec.o : mp_global.o
shmem_include.o : kind.o
sic.o : io_global.o
sic.o : kind.o
@ -226,14 +226,14 @@ stick_base.o : control_flags.o
stick_base.o : fft_types.o
stick_base.o : io_global.o
stick_base.o : kind.o
stick_base.o : mp_global.o
stick_base.o : mp.o
stick_base.o : mp_global.o
task_groups.o : electrons_base.o
task_groups.o : fft_types.o
task_groups.o : io_global.o
task_groups.o : kind.o
task_groups.o : mp_global.o
task_groups.o : mp.o
task_groups.o : mp_global.o
task_groups.o : parallel_include.o
task_groups.o : parameters.o
timestep.o : kind.o
@ -243,17 +243,17 @@ uspp.o : parameters.o
uspp.o : random_numbers.o
wannier.o : kind.o
wave_base.o : kind.o
wave_base.o : mp_global.o
wave_base.o : mp.o
wave_base.o : mp_global.o
wave_base.o : random_numbers.o
wavefunctions.o : kind.o
xml_io_base.o : ../iotk/src/iotk_module.o
xml_io_base.o : constants.o
xml_io_base.o : io_files.o
xml_io_base.o : io_global.o
xml_io_base.o : ../iotk/src/iotk_module.o
xml_io_base.o : kind.o
xml_io_base.o : mp_global.o
xml_io_base.o : mp.o
xml_io_base.o : mp_global.o
xml_io_base.o : mp_wave.o
basic_algebra_routines.o : ../include/f_defs.h
constraints_module.o : ../include/f_defs.h

View File

@ -5,7 +5,7 @@
!
!Variable description
!--------------------
!MAXGRP: Maximum number of task-groups
!MAXGRP: Maximum number of task-groups
!--------------------------------------------
MODULE task_groups
@ -65,8 +65,8 @@ END SUBROUTINE DEALLOCATE_GROUPS
!========================================================================================
! ADDED SUBROUTINEs FOR TASK GROUP PARALLIZATION
! C. Bekas, IBM Research, Zurich
! - GROUPS: Define and initialize Task Groups
! - tg_ivfftw: Inverse FFT driver for Task Groups
! - GROUPS: Define and initialize Task Groups
! - tg_ivfftw: Inverse FFT driver for Task Groups
!=======================================================================================

View File

@ -10,9 +10,7 @@ apply_p.o \
apply_vel.o \
greenfunction.o \
h_psiq.o \
cg_psi.o \
ch_psi_all.o \
cgsolve_all.o \
sym_cart_tensor.o \
symmetrize_field.o \
test_sum_rule.o \
@ -63,6 +61,7 @@ MODULES = \
../Modules/path_opt_routines.o \
../Modules/path_io_routines.o \
../Modules/path_reparametrisation.o \
../Modules/pres_ai_mod.o \
../Modules/printout_base.o \
../Modules/pseudo_types.o \
../Modules/ptoolkit.o \
@ -85,13 +84,15 @@ MODULES = \
PWOBJS = ../PW/libpw.a
TLDEPS=bindir mods libs libiotk
PHOBJS = ../PH/libph.a
TLDEPS=bindir ph pw mods libs libiotk
all : tldeps magn.x
magn.x : $(NMROBJS) $(PWOBJS) $(LIBOBJS)
magn.x : $(NMROBJS) $(PWOBJS) $(PHOBJS) $(LIBOBJS)
$(MPIF90) $(LDFLAGS) -o $@ \
$(NMROBJS) $(MODULES) $(PWOBJS) $(LIBOBJS) $(LIBS)
$(NMROBJS) $(MODULES) $(PHOBJS) $(PWOBJS) $(LIBOBJS) $(LIBS)
- ( cd ../bin; ln -fs ../NMR_new/$@ . )
tldeps:

View File

@ -1,41 +0,0 @@
!
! Copyright (C) 2001 PWSCF group
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
! or http://www.gnu.org/copyleft/gpl.txt .
!
!
!-----------------------------------------------------------------
subroutine cg_psi (lda, n, m, psi, h_diag)
!-----------------------------------------------------------------
!
! This routine gives a preconditioning to the linear system solver.
! The preconditioning is diagonal in reciprocal space
!
!
USE kinds, only : DP
implicit none
integer :: lda, n, m
! input: the leading dimension of the psi vector
! input: the real dimension of the vector
! input: the number of vectors
complex(DP) :: psi (lda, m)
! inp/out: the vector to be preconditioned
real(DP) :: h_diag (lda, m)
! input: the preconditioning vector
integer :: k, i
! counter on bands
! counter on the elements of the vector
!
do k = 1, m
do i = 1, n
psi (i, k) = psi (i, k) * h_diag (i, k)
enddo
enddo
return
end subroutine cg_psi

View File

@ -1,238 +0,0 @@
!
! Copyright (C) 2001-2004 PWSCF group
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
! or http://www.gnu.org/copyleft/gpl.txt .
!
!
#include "f_defs.h"
!----------------------------------------------------------------------
subroutine cgsolve_all (h_psi, cg_psi, e, d0psi, dpsi, h_diag, &
ndmx, ndim, ethr, ik, kter, conv_root, anorm, nbnd)
!----------------------------------------------------------------------
!
! iterative solution of the linear system:
!
! ( h - e + Q ) * dpsi = d0psi (1)
!
! where h is a complex hermitean matrix, e is a real sca
! dpsi and d0psi are complex vectors
!
! on input:
! h_psi EXTERNAL name of a subroutine:
! h_psi(ndim,psi,psip)
! Calculates H*psi products.
! Vectors psi and psip should be dimensined
! (ndmx,nvec). nvec=1 is used!
!
! cg_psi EXTERNAL name of a subroutine:
! g_psi(ndmx,ndim,notcnv,psi,e)
! which calculates (h-e)^-1 * psi, with
! some approximation, e.g. (diag(h)-e)
!
! e real unperturbed eigenvalue.
!
! dpsi contains an estimate of the solution
! vector.
!
! d0psi contains the right hand side vector
! of the system.
!
! ndmx integer row dimension of dpsi, ecc.
!
! ndim integer actual row dimension of dpsi
!
! ethr real convergence threshold. solution
! improvement is stopped when the error in
! eq (1), defined as l.h.s. - r.h.s., becomes
! less than ethr in norm.
!
! on output: dpsi contains the refined estimate of the
! solution vector.
!
! d0psi is corrupted on exit
!
! revised (extensively) 6 Apr 1997 by A. Dal Corso & F. Mauri
! revised (to reduce memory) 29 May 2004 by S. de Gironcoli
!
#include "f_defs.h"
USE kinds, only : DP
implicit none
!
! first the I/O variables
!
integer :: ndmx, & ! input: the maximum dimension of the vectors
ndim, & ! input: the actual dimension of the vectors
kter, & ! output: counter on iterations
nbnd, & ! input: the number of bands
ik ! input: the k point
real(DP) :: &
e(nbnd), & ! input: the actual eigenvalue
anorm, & ! output: the norm of the error in the solution
h_diag(ndmx,nbnd), & ! input: an estimate of ( H - \epsilon )
ethr ! input: the required precision
complex(DP) :: &
dpsi (ndmx, nbnd), & ! output: the solution of the linear syst
d0psi (ndmx, nbnd) ! input: the known term
logical :: conv_root ! output: if true the root is converged
external h_psi, & ! input: the routine computing h_psi
cg_psi ! input: the routine computing cg_psi
!
! here the local variables
!
integer, parameter :: maxter = 200
! the maximum number of iterations
integer :: iter, ibnd, lbnd
! counters on iteration, bands
integer , allocatable :: conv (:)
! if 1 the root is converged
complex(DP), allocatable :: g (:,:), t (:,:), h (:,:), hold (:,:)
! the gradient of psi
! the preconditioned gradient
! the delta gradient
! the conjugate gradient
! work space
complex(DP) :: dcgamma, dclambda, ZDOTC
! the ratio between rho
! step length
! the scalar product
real(DP), allocatable :: rho (:), rhoold (:), eu (:), a(:), c(:)
! the residue
! auxiliary for h_diag
real(DP) :: kter_eff
! account the number of iterations with b
! coefficient of quadratic form
!
call start_clock ('cgsolve')
allocate ( g(ndmx,nbnd), t(ndmx,nbnd), h(ndmx,nbnd), hold(ndmx ,nbnd) )
allocate (a(nbnd), c(nbnd))
allocate (conv ( nbnd))
allocate (rho(nbnd),rhoold(nbnd))
allocate (eu ( nbnd))
! WRITE( stdout,*) g,t,h,hold
kter_eff = 0.d0
do ibnd = 1, nbnd
conv (ibnd) = 0
enddo
do iter = 1, maxter
!
! compute the gradient. can reuse information from previous step
!
if (iter == 1) then
call h_psi (ndim, dpsi, g, e, ik, nbnd)
do ibnd = 1, nbnd
call ZAXPY (ndim, (-1.d0,0.d0), d0psi(1,ibnd), 1, g(1,ibnd), 1)
enddo
endif
!
! compute preconditioned residual vector and convergence check
!
lbnd = 0
do ibnd = 1, nbnd
if (conv (ibnd) .eq.0) then
lbnd = lbnd+1
call ZCOPY (ndim, g (1, ibnd), 1, h (1, ibnd), 1)
call cg_psi(ndmx, ndim, 1, h(1,ibnd), h_diag(1,ibnd) )
rho(lbnd) = ZDOTC (ndim, h(1,ibnd), 1, g(1,ibnd), 1)
endif
enddo
kter_eff = kter_eff + DBLE (lbnd) / DBLE (nbnd)
#ifdef __PARA
call reduce (lbnd, rho )
#endif
do ibnd = nbnd, 1, -1
if (conv(ibnd).eq.0) then
rho(ibnd)=rho(lbnd)
lbnd = lbnd -1
anorm = sqrt (rho (ibnd) )
if (anorm.lt.ethr) conv (ibnd) = 1
endif
enddo
!
conv_root = .true.
do ibnd = 1, nbnd
conv_root = conv_root.and. (conv (ibnd) .eq.1)
enddo
if (conv_root) goto 100
!
! compute the step direction h. Conjugate it to previous step
!
lbnd = 0
do ibnd = 1, nbnd
if (conv (ibnd) .eq.0) then
!
! change sign to h
!
call DSCAL (2 * ndim, - 1.d0, h (1, ibnd), 1)
if (iter.ne.1) then
dcgamma = rho (ibnd) / rhoold (ibnd)
call ZAXPY (ndim, dcgamma, hold (1, ibnd), 1, h (1, ibnd), 1)
endif
!
! here hold is used as auxiliary vector in order to efficiently compute t = A*h
! it is later set to the current (becoming old) value of h
!
lbnd = lbnd+1
call ZCOPY (ndim, h (1, ibnd), 1, hold (1, lbnd), 1)
eu (lbnd) = e (ibnd)
endif
enddo
!
! compute t = A*h
!
call h_psi (ndim, hold, t, eu, ik, lbnd)
!
! compute the coefficients a and c for the line minimization
! compute step length lambda
lbnd=0
do ibnd = 1, nbnd
if (conv (ibnd) .eq.0) then
lbnd=lbnd+1
a(lbnd) = ZDOTC (ndim, h(1,ibnd), 1, g(1,ibnd), 1)
c(lbnd) = ZDOTC (ndim, h(1,ibnd), 1, t(1,lbnd), 1)
end if
end do
#ifdef __PARA
call reduce (lbnd, a)
call reduce (lbnd, c)
#endif
lbnd=0
do ibnd = 1, nbnd
if (conv (ibnd) .eq.0) then
lbnd=lbnd+1
dclambda = CMPLX ( - a(lbnd) / c(lbnd), 0.d0)
!
! move to new position
!
call ZAXPY (ndim, dclambda, h(1,ibnd), 1, dpsi(1,ibnd), 1)
!
! update to get the gradient
!
!g=g+lam
call ZAXPY (ndim, dclambda, t(1,lbnd), 1, g(1,ibnd), 1)
!
! save current (now old) h and rho for later use
!
call ZCOPY (ndim, h(1,ibnd), 1, hold(1,ibnd), 1)
rhoold (ibnd) = rho (ibnd)
endif
enddo
enddo
100 continue
kter = kter_eff
deallocate (eu)
deallocate (rho, rhoold)
deallocate (conv)
deallocate (a,c)
deallocate (g, t, h, hold)
call stop_clock ('cgsolve')
return
end subroutine cgsolve_all

View File

@ -7,7 +7,7 @@
!
!-----------------------------------------------------------------------
subroutine ch_psi_all (n, h, ah, e, ik, m)
subroutine ch_psi_all_nmr (n, h, ah, e, ik, m)
!-----------------------------------------------------------------------
!
! This routine applies the operator ( H - \epsilon S + alpha_pv P_v)
@ -54,8 +54,8 @@ subroutine ch_psi_all (n, h, ah, e, ik, m)
!
! compute the product of the hamiltonian with the h vector
!
call h_psiq (npwx, n, m, h, hpsi, spsi)
call h_psiq_nmr (npwx, n, m, h, hpsi, spsi)
!
call start_clock ('last')
!
! then we compute the operator H-epsilon S
@ -104,4 +104,4 @@ subroutine ch_psi_all (n, h, ah, e, ik, m)
call stop_clock ('last')
call stop_clock ('ch_psi')
return
end subroutine ch_psi_all
end subroutine ch_psi_all_nmr

View File

@ -36,7 +36,7 @@ SUBROUTINE greenfunction(ik, psi, g_psi, q)
integer :: ibnd, ig, lter
logical :: conv_root, q_is_zero
complex(dp), external :: ZDOTC
external ch_psi_all, cg_psi
external ch_psi_all_nmr, cg_psi
call start_clock ('greenf')
@ -122,7 +122,7 @@ SUBROUTINE greenfunction(ik, psi, g_psi, q)
g_psi(:,:) = (0.d0, 0.d0)
! solve linear system
call cgsolve_all (ch_psi_all, cg_psi, et(1,ik), psi, g_psi, &
call cgsolve_all (ch_psi_all_nmr, cg_psi, et(1,ik), psi, g_psi, &
h_diag, npwx, npw, thresh, ik, lter, conv_root, anorm, &
nbnd_occ(ik) )
!!write(stdout, '(5X,''cgsolve_all converged in '',I3,'' iterations'')') &

View File

@ -7,7 +7,7 @@
!
!
!-----------------------------------------------------------------------
subroutine h_psiq (lda, n, m, psi, hpsi, spsi)
subroutine h_psiq_nmr (lda, n, m, psi, hpsi, spsi)
!-----------------------------------------------------------------------
!
! This routine computes the product of the Hamiltonian
@ -99,4 +99,4 @@ subroutine h_psiq (lda, n, m, psi, hpsi, spsi)
call stop_clock ('h_psiq')
return
end subroutine h_psiq
end subroutine h_psiq_nmr

View File

@ -7,9 +7,6 @@ magnetic_kkterm.o : ../Modules/kind.o
magnetic_kkterm.o : ../Modules/wavefunctions.o
magnetic_kkterm.o : ../PH/phcom.o
magnetic_kkterm.o : ../PW/pwcom.o
nmr_mod.o : ../Modules/kind.o
nmr_mod.o : ../Modules/uspp.o
nmr_mod.o : ../PW/pwcom.o
nmr.o : ../Modules/cell_base.o
nmr.o : ../Modules/io_files.o
nmr.o : ../Modules/ions_base.o
@ -18,11 +15,14 @@ nmr.o : ../Modules/parameters.o
nmr.o : ../Modules/uspp.o
nmr.o : ../Modules/version.o
nmr.o : ../Modules/wavefunctions.o
nmr.o : nmr_mod.o
nmr.o : ../PH/phcom.o
nmr.o : ../PW/becmod.o
nmr.o : ../PW/paw.o
nmr.o : ../PW/pwcom.o
nmr.o : nmr_mod.o
nmr_mod.o : ../Modules/kind.o
nmr_mod.o : ../Modules/uspp.o
nmr_mod.o : ../PW/pwcom.o
solve_cg.o : ../Modules/kind.o
solve_cg.o : ../Modules/uspp.o
solve_cg.o : ../Modules/wavefunctions.o
@ -33,9 +33,9 @@ take_nloc_k_kq.o : ../Modules/ions_base.o
take_nloc_k_kq.o : ../Modules/kind.o
take_nloc_k_kq.o : ../Modules/uspp.o
take_nloc_k_kq.o : ../Modules/wavefunctions.o
take_nloc_k_kq.o : nmr_mod.o
take_nloc_k_kq.o : ../PH/phcom.o
take_nloc_k_kq.o : ../PW/becmod.o
take_nloc_k_kq.o : ../PW/pwcom.o
take_nloc_k_kq.o : nmr_mod.o
nmr.o : ../include/f_defs.h
solve_cg.o : ../include/f_defs.h

View File

@ -6,6 +6,7 @@
! or http://www.gnu.org/copyleft/gpl.txt .
!
!
#include "f_defs.h"
!----------------------------------------------------------------------
subroutine cgsolve_all (h_psi, cg_psi, e, d0psi, dpsi, h_diag, &
ndmx, ndim, ethr, ik, kter, conv_root, anorm, nbnd)

View File

@ -55,7 +55,7 @@ subroutine ch_psi_all (n, h, ah, e, ik, m)
! compute the product of the hamiltonian with the h vector
!
call h_psiq (npwx, n, m, h, hpsi, spsi)
!
call start_clock ('last')
!
! then we compute the operator H-epsilon S

View File

@ -188,7 +188,7 @@ subroutine gmressolve_all (h_psi, cg_psi, e, d0psi, dpsi, h_diag, &
endif
!
enddo
kter_eff = kter_eff + float (lbnd) / float (nbnd)
kter_eff = kter_eff + DBLE (lbnd) / DBLE (nbnd)
!
conv_root = .true.
do ibnd = 1, nbnd
@ -227,7 +227,7 @@ subroutine gmressolve_all (h_psi, cg_psi, e, d0psi, dpsi, h_diag, &
!
! compute hm(i,j)
! hm(i,j) = ZDOTC (ndim, w(1,ibnd), 1, v(1,ibnd,i), 1)
hm4para(1) = ZDOTC (ndim, w(1,ibnd), 1, v(1,ibnd,i), 1)
hm4para(1) = ZDOTC (ndim, w(1,ibnd), 1, v(1,ibnd,i), 1)
#ifdef __PARA
call reduce (2, hm4para )
#endif

View File

@ -147,12 +147,6 @@ compute_nldyn.o : ../Modules/kind.o
compute_nldyn.o : ../Modules/uspp.o
compute_nldyn.o : ../PW/pwcom.o
compute_nldyn.o : phcom.o
compute_qdipol.o : ../Modules/atom.o
compute_qdipol.o : ../Modules/constants.o
compute_qdipol.o : ../Modules/ions_base.o
compute_qdipol.o : ../Modules/kind.o
compute_qdipol.o : ../Modules/uspp.o
compute_qdipol.o : phcom.o
compute_weight.o : ../Modules/kind.o
compute_weight.o : ../PW/pwcom.o
compute_weight.o : phcom.o

View File

@ -14,13 +14,14 @@ subroutine polariz ( iw )
!
#include "f_defs.h"
USE io_global, ONLY : stdout
USE io_files, ONLY: iunigk
use pwcom
USE kinds, only : DP
use phcom
use cell_base, only : omega
implicit none
USE io_global, ONLY : stdout
USE io_files, ONLY : iunigk
USE pwcom
USE kinds, ONLY : DP
USE phcom
USE cell_base, ONLY : omega
!
IMPLICIT NONE
!
! I/O variables
!

View File

@ -73,7 +73,7 @@ subroutine setlocq (xq, lloc, lmax, numeric, mesh, msh, rab, r, &
! gx = modulus of g vectors
real(DP), external :: erf
! the erf function
integer :: i, ig, l, ipol, ir
integer :: i, ig, l, ir
! counters
!
if (.not.numeric) then

View File

@ -57,7 +57,7 @@ subroutine solve_e
logical :: conv_root, exst
! conv_root: true if linear system is converged
integer :: kter, iter0, ipol, ibnd, jbnd, iter, lter, &
integer :: kter, iter0, ipol, ibnd, iter, lter, &
ik, ig, irr, ir, is, nrec, ios
! counters
integer :: ltaver, lintercall

View File

@ -42,8 +42,8 @@ bands.o : ../Modules/constants.o
bands.o : ../Modules/io_files.o
bands.o : ../Modules/io_global.o
bands.o : ../Modules/ions_base.o
bands.o : ../Modules/mp_global.o
bands.o : ../Modules/mp.o
bands.o : ../Modules/mp_global.o
bands.o : ../Modules/uspp.o
bands.o : ../Modules/wavefunctions.o
bands.o : ../PW/noncol.o
@ -83,6 +83,14 @@ compute_sigma_avg.o : ../PW/pwcom.o
cube.o : ../Modules/kind.o
cubicspinsym.o : ../Modules/kind.o
cubicspinsym.o : ../PW/pwcom.o
d_matrix_nc.o : ../Modules/cell_base.o
d_matrix_nc.o : ../Modules/kind.o
d_matrix_nc.o : ../Modules/random_numbers.o
d_matrix_nc.o : ../PW/pwcom.o
d_matrix_so.o : ../Modules/cell_base.o
d_matrix_so.o : ../Modules/kind.o
d_matrix_so.o : ../Modules/random_numbers.o
d_matrix_so.o : ../PW/pwcom.o
dipole.o : ../Modules/cell_base.o
dipole.o : ../Modules/constants.o
dipole.o : ../Modules/io_files.o
@ -92,14 +100,6 @@ dipole.o : ../Modules/kind.o
dipole.o : ../Modules/parameters.o
dipole.o : ../Modules/wavefunctions.o
dipole.o : ../PW/pwcom.o
d_matrix_nc.o : ../Modules/cell_base.o
d_matrix_nc.o : ../Modules/kind.o
d_matrix_nc.o : ../Modules/random_numbers.o
d_matrix_nc.o : ../PW/pwcom.o
d_matrix_so.o : ../Modules/cell_base.o
d_matrix_so.o : ../Modules/kind.o
d_matrix_so.o : ../Modules/random_numbers.o
d_matrix_so.o : ../PW/pwcom.o
do_initial_state.o : ../Modules/cell_base.o
do_initial_state.o : ../Modules/io_global.o
do_initial_state.o : ../Modules/ions_base.o
@ -107,7 +107,6 @@ do_initial_state.o : ../Modules/kind.o
do_initial_state.o : ../Modules/parameters.o
do_initial_state.o : ../Modules/uspp.o
do_initial_state.o : ../PW/pwcom.o
dosg.o : ../Modules/kind.o
do_shift_ew.o : ../Modules/kind.o
dos.o : ../Modules/constants.o
dos.o : ../Modules/io_files.o
@ -116,6 +115,7 @@ dos.o : ../Modules/kind.o
dos.o : ../Modules/mp.o
dos.o : ../PW/noncol.o
dos.o : ../PW/pwcom.o
dosg.o : ../Modules/kind.o
efg.o : ../Modules/atom.o
efg.o : ../Modules/cell_base.o
efg.o : ../Modules/constants.o
@ -158,6 +158,15 @@ initial_state.o : ../Modules/parameters.o
initial_state.o : ../Modules/uspp.o
initial_state.o : ../Modules/wavefunctions.o
initial_state.o : ../PW/pwcom.o
local_dos.o : ../Modules/cell_base.o
local_dos.o : ../Modules/io_files.o
local_dos.o : ../Modules/ions_base.o
local_dos.o : ../Modules/kind.o
local_dos.o : ../Modules/mp.o
local_dos.o : ../Modules/uspp.o
local_dos.o : ../Modules/wavefunctions.o
local_dos.o : ../PW/noncol.o
local_dos.o : ../PW/pwcom.o
local_dos1d.o : ../Modules/cell_base.o
local_dos1d.o : ../Modules/ions_base.o
local_dos1d.o : ../Modules/uspp.o
@ -173,15 +182,6 @@ local_dos_mag.o : ../Modules/uspp.o
local_dos_mag.o : ../Modules/wavefunctions.o
local_dos_mag.o : ../PW/noncol.o
local_dos_mag.o : ../PW/pwcom.o
local_dos.o : ../Modules/cell_base.o
local_dos.o : ../Modules/io_files.o
local_dos.o : ../Modules/ions_base.o
local_dos.o : ../Modules/kind.o
local_dos.o : ../Modules/mp.o
local_dos.o : ../Modules/uspp.o
local_dos.o : ../Modules/wavefunctions.o
local_dos.o : ../PW/noncol.o
local_dos.o : ../PW/pwcom.o
openfil_pp.o : ../Modules/control_flags.o
openfil_pp.o : ../Modules/io_files.o
openfil_pp.o : ../Modules/io_global.o
@ -200,13 +200,13 @@ plan_avg.o : ../Modules/wavefunctions.o
plan_avg.o : ../PW/becmod.o
plan_avg.o : ../PW/noncol.o
plan_avg.o : ../PW/pwcom.o
plotband.o : ../Modules/io_global.o
plot_io.o : ../Modules/io_global.o
plot_io.o : ../Modules/kind.o
plot_whole_cell.o : ../Modules/kind.o
plotband.o : ../Modules/io_global.o
plotproj.o : ../Modules/kind.o
plotrho.o : ../Modules/io_global.o
plotrho.o : ../Modules/kind.o
plot_whole_cell.o : ../Modules/kind.o
poormanwannier.o : ../Modules/atom.o
poormanwannier.o : ../Modules/cell_base.o
poormanwannier.o : ../Modules/constants.o
@ -226,7 +226,6 @@ postproc.o : ../Modules/ions_base.o
postproc.o : ../Modules/kind.o
postproc.o : ../Modules/mp.o
postproc.o : ../PW/pwcom.o
projwfc.o : ../iotk/src/iotk_module.o
projwfc.o : ../Modules/atom.o
projwfc.o : ../Modules/cell_base.o
projwfc.o : ../Modules/constants.o
@ -240,6 +239,7 @@ projwfc.o : ../Modules/wavefunctions.o
projwfc.o : ../PW/becmod.o
projwfc.o : ../PW/noncol.o
projwfc.o : ../PW/pwcom.o
projwfc.o : ../iotk/src/iotk_module.o
punch_plot.o : ../Modules/cell_base.o
punch_plot.o : ../Modules/constants.o
punch_plot.o : ../Modules/io_global.o
@ -273,8 +273,8 @@ pw2wannier90.o : ../Modules/io_files.o
pw2wannier90.o : ../Modules/io_global.o
pw2wannier90.o : ../Modules/ions_base.o
pw2wannier90.o : ../Modules/kind.o
pw2wannier90.o : ../Modules/mp_global.o
pw2wannier90.o : ../Modules/mp.o
pw2wannier90.o : ../Modules/mp_global.o
pw2wannier90.o : ../Modules/random_numbers.o
pw2wannier90.o : ../Modules/uspp.o
pw2wannier90.o : ../Modules/wannier.o
@ -282,19 +282,19 @@ pw2wannier90.o : ../Modules/wavefunctions.o
pw2wannier90.o : ../PW/becmod.o
pw2wannier90.o : ../PW/noncol.o
pw2wannier90.o : ../PW/pwcom.o
pw_export.o : ../iotk/src/iotk_module.o
pw_export.o : ../Modules/io_files.o
pw_export.o : ../Modules/io_global.o
pw_export.o : ../Modules/ions_base.o
pw_export.o : ../Modules/kind.o
pw_export.o : ../Modules/mp_global.o
pw_export.o : ../Modules/mp.o
pw_export.o : ../Modules/mp_global.o
pw_export.o : ../Modules/mp_wave.o
pw_export.o : ../Modules/parameters.o
pw_export.o : ../Modules/version.o
pw_export.o : ../Modules/wavefunctions.o
pw_export.o : ../PW/becmod.o
pw_export.o : ../PW/pwcom.o
pw_export.o : ../iotk/src/iotk_module.o
qexml.o : ../iotk/src/iotk_module.o
smallgk.o : ../Modules/kind.o
start_postproc.o : ../Modules/version.o
@ -360,16 +360,16 @@ bands.o : ../include/f_defs.h
cgracsc.o : ../include/f_defs.h
chdens.o : ../include/f_defs.h
compute_ppsi.o : ../include/f_defs.h
dipole.o : ../include/f_defs.h
d_matrix_nc.o : ../include/f_defs.h
d_matrix_so.o : ../include/f_defs.h
dipole.o : ../include/f_defs.h
do_initial_state.o : ../include/f_defs.h
do_shift_ew.o : ../include/f_defs.h
dos.o : ../include/f_defs.h
elf.o : ../include/f_defs.h
local_dos.o : ../include/f_defs.h
local_dos1d.o : ../include/f_defs.h
local_dos_mag.o : ../include/f_defs.h
local_dos.o : ../include/f_defs.h
plan_avg.o : ../include/f_defs.h
plotband.o : ../include/f_defs.h
plotproj.o : ../include/f_defs.h

View File

@ -7,15 +7,15 @@
!
module wanpar
! nw: the number of the G vectors
! nit: the number of total iteration during searching
! nsd: the number of steepest descent iterations
! nit: the number of total iteration during searching
! nsd: the number of steepest descent iterations
! ibrav: the structure index, the same as ibrav in CP code.
integer :: nw, nit, nsd, ibrav
logical adapt, restart
! wfdt: time step during searching
! maxwfdt: the maximum time step during searching
! b1,b2,b3: the reciprocal lattice
! alat: the lattice parameter
! alat: the lattice parameter
! a1,a2,a3: the real-space lattice
real(kind=8) :: wfdt, maxwfdt, b1(3), b2(3), b3(3), alat
real(kind=8) :: a1(3), a2(3), a3(3), tolw
@ -29,14 +29,14 @@ module wanpar
! weight: the weight of each G vectors
real(kind=8), allocatable :: weight(:)
!
! These are the Input variables for Damped Dynamics
! These are the Input variables for Damped Dynamics
!
! q: imaginary mass of the Unitary Matrix
! dt: Time Step for damped dynamics
! cgordd: 1=conjugate gradient/SD
! any other number = damped dynamics
! fric: damping coefficient, b/w 0 and 1
! nsteps: Max No. of MD Steps
! q: imaginary mass of the Unitary Matrix
! dt: Time Step for damped dynamics
! cgordd: 1=conjugate gradient/SD
! any other number = damped dynamics
! fric: damping coefficient, b/w 0 and 1
! nsteps: Max No. of MD Steps
real(kind=8) :: q, dt, fric
integer :: cgordd, nsteps
@ -56,7 +56,7 @@ program wf
!
! Searching parameters are in the input file:
!
! cgordd wfdt maxwfdt nit nsd q dt fric nsteps
! cgordd wfdt maxwfdt nit nsd q dt fric nsteps
!
!
! The final unitary matrix Uall is output to fort.39.
@ -65,11 +65,11 @@ program wf
! Yudong Wu
! June 28,2001
!
! This code has been modified to include Damped dynamics to
! find the maximally localized wannier functions.
!
! Manu
! September 16,2001
! This code has been modified to include Damped dynamics to
! find the maximally localized wannier functions.
!
! Manu
! September 16,2001
!
!
! copyright MANU/YUDONG WU/NICOLA MARZARI/ROBERTO CAR
@ -83,10 +83,10 @@ program wf
complex(kind=8), allocatable :: O(:, :, :), Ospin(:, :, :)
real(kind=8), allocatable :: Uall(:,:), Uspin(:,:), u1(:,:)
read (5,*) cgordd, wfdt, maxwfdt, nit, nsd
read (5,*) cgordd, wfdt, maxwfdt, nit, nsd
read (5,*) q, dt, fric, adapt, nsteps, tolw
read (5,*) restart
!
! input the overlap matrix from fort.38
@ -211,9 +211,9 @@ program wf
end do
end do
deallocate(Uspin, Ospin)
end if
end if
endif
rewind 39
@ -223,7 +223,7 @@ program wf
end do
end do
! u1=matmul(Uall,transpose(Uall))
!u1=matmul(Uall,transpose(Uall))
! do i=1, n
! do j=1, n
@ -235,15 +235,15 @@ program wf
contains
!-------------------------------------------------------------------------
subroutine ddyn(m,Omat,Umat)
subroutine ddyn(m,Omat,Umat)
! (m,m) is the size of the matrix Ospin.
! Ospin is input overlap matrix.
! Uspin is the output unitary transformation.
! Rough guess for Uspin can be carried in.
!
!
! MANU
! SEPTEMBER 17, 2001
! MANU
! SEPTEMBER 17, 2001
!-------------------------------------------------------------------------
use wanpar
@ -287,8 +287,8 @@ contains
! do i=1,m
! Umat(i,i)=1.d0
! end do
U2=Umat*alpha
U2=Umat*alpha
!
! update Oc using the initial guess of Uspin
@ -304,8 +304,8 @@ contains
Oc(inw, :, :)=X1(:, :)
end do
U2=beta1
U3=beta1
U2=beta1
U3=beta1
oldspread=0.0
write(24, *) "spread: (unit \AA^2)"
@ -325,7 +325,7 @@ contains
temp=Aminus
! START ITERATIONS HERE
! START ITERATIONS HERE
do ini=1, nsteps
@ -340,16 +340,16 @@ contains
if(ABS(t0-oldt0).lt.tolw) then
write(6,*) "MLWF Generated at Step",ini
go to 241
end if
write(6,*) "MLWF Generated at Step",ini
go to 241
end if
if(adapt) then
if(oldt0.lt.t0) then
fric=fric/2.
A=Aminus
Aminus=temp
end if
if(oldt0.lt.t0) then
fric=fric/2.
A=Aminus
Aminus=temp
end if
end if
! calculate d(omega)/dA and store result in W
@ -366,21 +366,21 @@ contains
end do
end do
end do
! the verlet scheme to calculate A(t+dt)
Aplus=0.d0
Aplus=0.d0
do i=1,m
do j=i+1,m
Aplus(i,j)=Aplus(i,j)+(2*dt/(2*dt+fric))*(2*A(i,j) &
Aplus(i,j)=Aplus(i,j)+(2*dt/(2*dt+fric))*(2*A(i,j) &
-Aminus(i,j)+(dt*dt/q)*W(i,j)) + (fric/(2*dt+fric))*Aminus(i,j)
enddo
enddo
Aplus=Aplus-transpose(Aplus)
Aplus=(Aplus-A)
Aplus=Aplus-transpose(Aplus)
Aplus=(Aplus-A)
do i=1, m
do j=i,m
@ -402,7 +402,7 @@ contains
end do !d=exp(d)
! U=z*exp(d)*z+
!
!
U3=beta1
call ZGEMM ('N', 'N', m,m,m,alpha,z,m,d,m,beta1,U3,m)
U2=beta1
@ -436,7 +436,7 @@ contains
U2=beta1
U3=beta1
if(ABS(t0-oldt0).ge.tolw.and.ini.ge.nsteps) then
if(ABS(t0-oldt0).ge.tolw.and.ini.ge.nsteps) then
go to 241
end if
@ -516,10 +516,10 @@ contains
do i=1, m
write(26, '(3f11.6)') wfc(:,i)*autoaf
end do
write(6,*) "Friction =", fric
write(6,*) "Mass =", q
deallocate(wr, W)
@ -694,13 +694,13 @@ contains
schd=W
end if
!
! calculate the new d(Lambda) for the new Search Direction
! added by Manu. September 19, 2001
! calculate the new d(Lambda) for the new Search Direction
! added by Manu. September 19, 2001
!
! calculate slope=d(omiga)/d(lamda)
slope=SUM(schd**2)
!------------------------------------------------------------------------
! schd=schd*maxwfdt
! schd=schd*maxwfdt
do i=1, m
do j=i, m
wp1(i + (j-1)*j/2) = cmplx(0.0d0, schd(i,j))

View File

@ -237,7 +237,6 @@ vhpsi.o \
vhpsi_nc.o \
vloc_of_g.o \
vloc_psi.o \
vpack.o \
w0gauss.o \
w1gauss.o \
wfcinit.o \

View File

@ -451,4 +451,4 @@ SUBROUTINE compute_scf( fii, lii, stat )
!
END FUNCTION interrupt_run
!
END SUBROUTINE compute_scf
END SUBROUTINE compute_scf

File diff suppressed because it is too large Load Diff

View File

@ -91,7 +91,7 @@ subroutine set_pseudo_upf (is, upf)
do nb = 1, upf%nbeta
do mb = nb, upf%nbeta
ijv = mb * (mb-1) / 2 + nb
qfunc (1:upf%mesh, ijv, is) = upf%qfunc(1:upf%mesh, nb, mb)
qfunc (1:upf%mesh, ijv, is) = upf%qfunc(1:upf%mesh, nb, mb)
end do
end do
qfcoef(1:upf%nqf, 1:upf%nqlc, 1:upf%nbeta, 1:upf%nbeta, is ) = &

View File

@ -1,34 +0,0 @@
!
! Copyright (C) 2001 PWSCF group
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
! or http://www.gnu.org/copyleft/gpl.txt .
!
subroutine vpack (ndim, ndimx, nspin, vin, vout, iflag)
USE kinds
implicit none
integer :: ndim, ndimx, nspin, iflag, n
real(DP) :: vin (ndimx * nspin), vout (ndimx * nspin)
if (nspin.eq.1.or.ndim.eq.ndimx) return
if (iflag.eq.1) then
do n = 1, ndim
vin (n + ndim) = vin (n + ndimx)
vout (n + ndim) = vout (n + ndimx)
enddo
elseif (iflag.eq. - 1) then
do n = ndim, 1, - 1
vin (n + ndimx) = vin (n + ndim)
vout (n + ndimx) = vout (n + ndim)
enddo
do n = ndim + 1, ndimx
vin (n) = 0.d0
vout (n) = 0.d0
enddo
else
call errore ('vpack', ' wrong flag ', 1)
endif
return
end subroutine vpack

View File

@ -1,38 +1,37 @@
allocate_cond.o : condcom.o
allocate_cond.o : ../PW/noncol.o
allocate_cond.o : condcom.o
bessj.o : ../Modules/kind.o
compbs_2.o : ../Modules/kind.o
compbs.o : condcom.o
compbs.o : ../Modules/ions_base.o
compbs.o : ../PW/noncol.o
compbs.o : ../PW/pwcom.o
condcom.o : ../Modules/kind.o
condcom.o : ../Modules/parameters.o
cond_out.o : condcom.o
compbs.o : condcom.o
compbs_2.o : ../Modules/kind.o
cond_out.o : ../Modules/io_global.o
cond_out.o : ../Modules/ions_base.o
cond_out.o : ../PW/noncol.o
cond_out.o : ../PW/pwcom.o
do_cond.o : condcom.o
cond_out.o : condcom.o
condcom.o : ../Modules/kind.o
condcom.o : ../Modules/parameters.o
do_cond.o : ../Modules/io_files.o
do_cond.o : ../Modules/io_global.o
do_cond.o : ../Modules/ions_base.o
do_cond.o : ../Modules/mp.o
do_cond.o : ../PW/noncol.o
do_cond.o : ../PW/pwcom.o
do_cond.o : condcom.o
eigenchnl.o : ../Modules/kind.o
form_zk.o : ../Modules/kind.o
four.o : condcom.o
four.o : ../Modules/cell_base.o
four.o : ../Modules/constants.o
four.o : ../Modules/kind.o
four.o : ../Modules/parameters.o
four.o : condcom.o
free_mem.o : condcom.o
gep_x.o : condcom.o
gep_x.o : ../Modules/kind.o
gep_x.o : condcom.o
gramsh.o : ../Modules/kind.o
hev_ab.o : ../Modules/kind.o
init_cond.o : condcom.o
init_cond.o : ../Modules/atom.o
init_cond.o : ../Modules/io_files.o
init_cond.o : ../Modules/io_global.o
@ -41,81 +40,82 @@ init_cond.o : ../Modules/kind.o
init_cond.o : ../Modules/uspp.o
init_cond.o : ../PW/noncol.o
init_cond.o : ../PW/pwcom.o
init_gper.o : condcom.o
init_cond.o : condcom.o
init_gper.o : ../Modules/io_global.o
init_gper.o : ../PW/noncol.o
init_gper.o : ../PW/pwcom.o
init_orbitals.o : condcom.o
init_gper.o : condcom.o
init_orbitals.o : ../Modules/atom.o
init_orbitals.o : ../Modules/ions_base.o
init_orbitals.o : ../Modules/kind.o
init_orbitals.o : ../Modules/uspp.o
init_orbitals.o : ../PW/noncol.o
init_orbitals.o : ../PW/pwcom.o
init_orbitals.o : condcom.o
integrals.o : ../Modules/kind.o
jbloch.o : condcom.o
jbloch.o : ../Modules/kind.o
jbloch.o : ../PW/noncol.o
jbloch.o : condcom.o
kbloch.o : ../Modules/constants.o
kbloch.o : ../Modules/kind.o
local.o : condcom.o
local.o : ../Modules/cell_base.o
local.o : ../Modules/constants.o
local.o : ../Modules/io_files.o
local.o : ../Modules/io_global.o
local.o : ../Modules/kind.o
local.o : ../Modules/mp_global.o
local.o : ../Modules/mp.o
local.o : ../Modules/mp_global.o
local.o : ../Modules/parallel_include.o
local.o : ../PW/noncol.o
poten.o : condcom.o
local.o : condcom.o
poten.o : ../Modules/fft_scalar.o
poten.o : ../Modules/io_global.o
poten.o : ../Modules/mp.o
poten.o : ../PW/noncol.o
poten.o : ../PW/pwcom.o
print_clock_pwcond.o : condcom.o
poten.o : condcom.o
print_clock_pwcond.o : ../Modules/io_global.o
print_clock_pwcond.o : ../Modules/mp_global.o
print_clock_pwcond.o : condcom.o
rotproc.o : ../Modules/kind.o
rotproc.o : ../Modules/mp_global.o
rotproc.o : ../Modules/parallel_include.o
rotproc.o : ../PW/noncol.o
save_cond.o : condcom.o
save_cond.o : ../Modules/cell_base.o
save_cond.o : ../Modules/io_files.o
save_cond.o : ../Modules/kind.o
save_cond.o : ../Modules/parameters.o
save_cond.o : ../PW/noncol.o
save_cond.o : ../PW/pwcom.o
scatter_forw.o : condcom.o
save_cond.o : condcom.o
scatter_forw.o : ../Modules/cell_base.o
scatter_forw.o : ../Modules/constants.o
scatter_forw.o : ../Modules/parameters.o
scatter_forw.o : ../PW/noncol.o
summary_band.o : condcom.o
scatter_forw.o : condcom.o
summary_band.o : ../Modules/io_files.o
summary_band.o : ../Modules/io_global.o
summary_band.o : ../PW/noncol.o
summary_band.o : ../PW/pwcom.o
summary_tran.o : condcom.o
summary_band.o : condcom.o
summary_tran.o : ../Modules/io_files.o
summary_tran.o : ../Modules/kind.o
summary_tran.o : condcom.o
sunitary.o : ../Modules/io_global.o
sunitary.o : ../Modules/kind.o
transmit.o : condcom.o
transmit.o : ../Modules/io_files.o
transmit.o : ../Modules/io_global.o
transmit.o : ../PW/noncol.o
transmit.o : ../PW/pwcom.o
write_states.o : condcom.o
transmit.o : condcom.o
write_states.o : ../Modules/ions_base.o
write_states.o : ../Modules/kind.o
write_states.o : ../PW/noncol.o
write_states.o : ../PW/pwcom.o
write_states.o : condcom.o
allocate_cond.o : ../include/f_defs.h
compbs_2.o : ../include/f_defs.h
compbs.o : ../include/f_defs.h
compbs_2.o : ../include/f_defs.h
do_cond.o : ../include/f_defs.h
eigenchnl.o : ../include/f_defs.h
form_zk.o : ../include/f_defs.h

5
TODO
View File

@ -1,4 +1,4 @@
TODO LIST - November 2006
TODO LIST - December 2006
BUGS TO EXAMINE
@ -22,7 +22,7 @@ INSTALLATION/PORTING
COMMON
- uniform and clear values for constants in Modules/constants.f90
(almost finished)
- convert all single-precision constants to double precision
- check whether license is written in the header of the file
@ -135,6 +135,7 @@ PH, D3, Gamma
- stop with 'prefix.EXIT' and restart (PH now has it; D3 & Gamma do not
have any infrastructure for stopping like this)
Phonon restart is inefficient in some cases
DOCUMENTATION

View File

@ -1,184 +0,0 @@
!
! Copyright (C) 2002-2005 FPMD-CPV groups
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
! or http://www.gnu.org/copyleft/gpl.txt .
!
!==-----------------------------------------------------------------------==!
MODULE environment
!==-----------------------------------------------------------------------==!
#ifdef DFT_CP
USE kinds
USE io_files, ONLY: crash_file, crashunit, &
stop_file, stopunit
IMPLICIT NONE
SAVE
PRIVATE
REAL(DP) :: start_cclock_val
PUBLIC :: environment_start
PUBLIC :: environment_end
PUBLIC :: opening_date_and_time, closing_date_and_time
PUBLIC :: start_cclock_val
!==-----------------------------------------------------------------------==!
CONTAINS
!==-----------------------------------------------------------------------==!
SUBROUTINE environment_start( )
USE io_global, ONLY: stdout, meta_ionode
USE mp_global, ONLY: mpime, nproc
USE cp_version
LOGICAL :: texst
INTEGER :: nchar
CHARACTER(LEN=80) :: uname
CHARACTER(LEN=80) :: version_str
REAL(DP), EXTERNAL :: cclock
CHARACTER(LEN=6), EXTERNAL :: int_to_char
CALL init_clocks( .TRUE. )
CALL start_clock( 'CP' )
start_cclock_val = cclock( )
version_str = TRIM (version_number) // " - " // TRIM (version_date)
! ... search for file CRASH and delete it
IF( meta_ionode ) THEN
INQUIRE( FILE=TRIM(crash_file), EXIST=texst )
IF( texst ) THEN
OPEN( UNIT=crashunit, FILE=TRIM(crash_file), STATUS='OLD' )
CLOSE( UNIT=crashunit, STATUS='DELETE' )
END IF
END IF
! ... each processor other than me=1 opens its own standard output file,
! ... this is mainly for debugging, usually only ionode writes to stdout
IF( .NOT. meta_ionode ) THEN
uname = 'out.' // int_to_char( mpime )
nchar = INDEX(uname,' ') - 1
!
! useful for debugging purposes
! open( unit = stdout, file = uname(1:nchar),status='unknown')
!
open( unit = stdout, file='/dev/null', status='unknown' )
END IF
CALL opening_date_and_time( version_str )
#if defined __MPI
WRITE( stdout,100) nproc, mpime
100 FORMAT(3X,'MPI Parallel Build',/,3X,'Tasks =',I5,' This task id =',I5)
#else
WRITE( stdout,100)
100 FORMAT(3X,'Serial Build')
#endif
RETURN
END SUBROUTINE environment_start
!==-----------------------------------------------------------------------==!
SUBROUTINE environment_end( )
USE io_global, ONLY: stdout, meta_ionode
IF ( meta_ionode ) WRITE( stdout, * )
CALL stop_clock( 'CP' )
CALL print_clock( 'CP' )
CALL closing_date_and_time( )
IF( meta_ionode ) THEN
WRITE( stdout,'(A)') ' JOB DONE.'
WRITE( stdout,3335)
END IF
3335 FORMAT('=',78('-'),'=')
RETURN
END SUBROUTINE environment_end
!==-----------------------------------------------------------------------==!
SUBROUTINE opening_date_and_time( version_str )
USE io_global, ONLY: stdout, meta_ionode
CHARACTER(LEN=*), INTENT(IN) :: version_str
CHARACTER(LEN=9) :: cdate, ctime
CHARACTER(LEN=80) :: time_str
CALL date_and_tim( cdate, ctime )
time_str = 'This run was started on: ' // ctime // ' ' // cdate
! ... write program heading
IF( meta_ionode ) THEN
WRITE( stdout,3331)
WRITE( stdout,3332) version_str
WRITE( stdout,3331)
WRITE( stdout,3334) time_str
END IF
3331 FORMAT('=',78('-'),'=')
3332 FORMAT( /, 5X,'CP: variable-cell Car-Parrinello molecular dynamics',/&
& ,5X,'using norm-conserving and ultrasoft Vanderbilt pseudopotentials',//&
& ,5X,'Version: ',A60,/&
& ,5X,'Authors: Alfredo Pasquarello, Kari Laasonen, Andrea Trave, Roberto Car,',/&
& ,5X,' Paolo Giannozzi, Nicola Marzari, Carlo Cavazzoni, Guido Chiarotti,',/&
& ,5X,' Sandro Scandolo, Paolo Focher, Gerardo Ballabio, and others',/)
3334 FORMAT(/,3X,A60,/)
RETURN
END SUBROUTINE opening_date_and_time
!==-----------------------------------------------------------------------==!
SUBROUTINE closing_date_and_time( )
USE io_global, ONLY: stdout, meta_ionode
CHARACTER(LEN=9) :: cdate, ctime
CHARACTER(LEN=80) :: time_str
CALL date_and_tim( cdate, ctime )
time_str = 'This run was terminated on: ' // ctime // ' ' // cdate
IF( meta_ionode ) THEN
WRITE( stdout,*)
WRITE( stdout,3334) time_str
WRITE( stdout,3335)
END IF
3334 FORMAT(3X,A60,/)
3335 FORMAT('=',78('-'),'=')
RETURN
END SUBROUTINE closing_date_and_time
#endif
!==-----------------------------------------------------------------------==!
END MODULE environment
!==-----------------------------------------------------------------------==!

View File

@ -1,16 +1,11 @@
environment.o : ../CPV/cp_version.o
environment.o : ../Modules/io_files.o
environment.o : ../Modules/io_global.o
environment.o : ../Modules/kind.o
environment.o : ../Modules/mp_global.o
poles.o : ../Modules/cell_base.o
poles.o : ../Modules/electrons_base.o
poles.o : ../Modules/fft_base.o
poles.o : ../Modules/griddim.o
poles.o : ../Modules/ions_base.o
poles.o : ../Modules/kind.o
poles.o : ../Modules/mp_global.o
poles.o : ../Modules/mp.o
poles.o : ../Modules/mp_global.o
poles.o : ../PW/pwcom.o
read_input_vib.o : ../Modules/constants.o
read_input_vib.o : ../Modules/input_parameters.o
@ -82,8 +77,8 @@ vibstart.o : ../Modules/io_files.o
vibstart.o : ../Modules/io_global.o
vibstart.o : ../Modules/kind.o
vibstart.o : ../Modules/metadyn_base.o
vibstart.o : ../Modules/mp_global.o
vibstart.o : ../Modules/mp.o
vibstart.o : ../Modules/mp_global.o
vibstart.o : ../Modules/parameters.o
vibstart.o : ../Modules/path_base.o
vibstart.o : ../Modules/path_io_routines.o
@ -93,4 +88,5 @@ vibstart.o : ../PW/noncol.o
vibstart.o : ../PW/pwcom.o
vibstart.o : vibrations.o
read_input_vib.o : ../include/f_defs.h
vib_rdiagh.o : ../include/f_defs.h
vibstart.o : ../include/f_defs.h

View File

@ -5,7 +5,6 @@ include ../make.sys
VIB_OBJ = \
poles.o \
vibrations.o \
environment.o \
vib_rdiagh.o \
vib_rdiaghg.o \
read_input_vib.o \

View File

@ -5,7 +5,6 @@ include ../make.sys
VIB_OBJ = \
poles.o \
vibrations.o \
environment.o \
vib_rdiagh.o \
vib_rdiaghg.o \
read_input_vib.o \

View File

@ -5,7 +5,7 @@
! in the root directory of the present distribution,
! or http://www.gnu.org/copyleft/gpl.txt .
!
!#include "f_defs.h"
#include "f_defs.h"
!
!----------------------------------------------------------------------------
SUBROUTINE vib_rdiagh( n, h, ldh, e, v )

View File

@ -1,4 +1,4 @@
# Makefile for postprocessing (PP)
# Makefile for TF-VdW calculation.
include ../make.sys
@ -6,17 +6,13 @@ include ../make.sys
VdWOBJS = \
allocate_vdw.o \
cegterg.o \
cg_psi.o \
cgsolve_all.o \
check_v_eff.o \
ch_psi_all.o \
dv_of_drho.o \
dvpsi_e.o \
eff_pot.o \
gmressolve_all.o \
h_psiq.o \
incdrhoscf.o \
openfil_pp.o \
pbcg_psi.o \
polariz.o \
print_clock_vdw.o \
@ -25,6 +21,9 @@ start_vdw.o \
stop_vdw.o \
vdwcom.o
PPOBJS = \
../PP/openfil_pp.o
MODULES = \
../Modules/atom.o \
../Modules/basic_algebra_routines.o \
@ -71,13 +70,13 @@ PWOBJS = ../PW/libpw.a
PHOBJS = ../PH/libph.a
TLDEPS= bindir mods libs pw
TLDEPS= bindir mods libs pw ph pp
all : vdw.x
all : tldeps vdw.x
vdw.x : vdw.o $(VdWOBJS) $(PWOBJS) $(PHOBJS) $(MODULES) $(LIBOBJS)
vdw.x : vdw.o $(VdWOBJS) $(PPOBJS) $(PWOBJS) $(PHOBJS) $(MODULES) $(LIBOBJS)
$(MPIF90) $(LDFLAGS) -o $@ \
vdw.o $(VdWOBJS) $(MODULES) $(PHOBJS) $(PWOBJS) \
vdw.o $(VdWOBJS) $(MODULES) $(PPOBJS) $(PHOBJS) $(PWOBJS) \
$(LIBOBJS) $(LIBS)
- ( cd ../bin ; ln -fs ../VdW/$@ . )

View File

@ -11,7 +11,7 @@
#include "f_defs.h"
!
!----------------------------------------------------------------------------
SUBROUTINE cegterg( ndim, ndmx, nvec, nvecx, evc, &
SUBROUTINE cegterg_vdw( ndim, ndmx, nvec, nvecx, evc, &
ethr, overlap, e, btype, notcnv, iter )
!----------------------------------------------------------------------------
!
@ -73,8 +73,6 @@ SUBROUTINE cegterg( ndim, ndmx, nvec, nvecx, evc, &
! the product of H and psi
! the product of S and psi
COMPLEX(KIND=DP), EXTERNAL :: ZDOTC
! scalar product routine
COMPLEX(KIND=DP) :: eau
! auxiliary complex variable
REAL(KIND=DP), ALLOCATABLE :: ew(:)
! eigenvalues of the reduced hamiltonian
@ -405,4 +403,4 @@ SUBROUTINE cegterg( ndim, ndmx, nvec, nvecx, evc, &
!
RETURN
!
END SUBROUTINE cegterg
END SUBROUTINE cegterg_vdw

View File

@ -1,41 +0,0 @@
!
! Copyright (C) 2001 PWSCF group
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
! or http://www.gnu.org/copyleft/gpl.txt .
!
!
!-----------------------------------------------------------------
subroutine cg_psi (lda, n, m, psi, h_diag)
!-----------------------------------------------------------------
!
! This routine gives a preconditioning to the linear system solver.
! The preconditioning is diagonal in reciprocal space
!
!
USE kinds, only : DP
implicit none
integer :: lda, n, m
! input: the leading dimension of the psi vector
! input: the real dimension of the vector
! input: the number of vectors
complex(kind=DP) :: psi (lda, m)
! inp/out: the vector to be preconditioned
real(kind=DP) :: h_diag (lda, m)
! input: the preconditioning vector
integer :: k, i
! counter on bands
! counter on the elements of the vector
!
do k = 1, m
do i = 1, n
psi (i, k) = psi (i, k) * h_diag (i, k)
enddo
enddo
return
end subroutine cg_psi

View File

@ -1,237 +0,0 @@
!
! Copyright (C) 2001-2004 PWSCF group
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
! or http://www.gnu.org/copyleft/gpl.txt .
!
!
!----------------------------------------------------------------------
subroutine cgsolve_all (h_psi, cg_psi, e, d0psi, dpsi, h_diag, &
ndmx, ndim, ethr, ik, kter, conv_root, anorm, nbnd)
!----------------------------------------------------------------------
!
! iterative solution of the linear system:
!
! ( h - e + Q ) * dpsi = d0psi (1)
!
! where h is a complex hermitean matrix, e is a real sca
! dpsi and d0psi are complex vectors
!
! on input:
! h_psi EXTERNAL name of a subroutine:
! h_psi(ndim,psi,psip)
! Calculates H*psi products.
! Vectors psi and psip should be dimensined
! (ndmx,nvec). nvec=1 is used!
!
! cg_psi EXTERNAL name of a subroutine:
! g_psi(ndmx,ndim,notcnv,psi,e)
! which calculates (h-e)^-1 * psi, with
! some approximation, e.g. (diag(h)-e)
!
! e real unperturbed eigenvalue.
!
! dpsi contains an estimate of the solution
! vector.
!
! d0psi contains the right hand side vector
! of the system.
!
! ndmx integer row dimension of dpsi, ecc.
!
! ndim integer actual row dimension of dpsi
!
! ethr real convergence threshold. solution
! improvement is stopped when the error in
! eq (1), defined as l.h.s. - r.h.s., becomes
! less than ethr in norm.
!
! on output: dpsi contains the refined estimate of the
! solution vector.
!
! d0psi is corrupted on exit
!
! revised (extensively) 6 Apr 1997 by A. Dal Corso & F. Mauri
! revised (to reduce memory) 29 May 2004 by S. de Gironcoli
!
#include "f_defs.h"
USE kinds, only : DP
implicit none
!
! first the I/O variables
!
integer :: ndmx, & ! input: the maximum dimension of the vectors
ndim, & ! input: the actual dimension of the vectors
kter, & ! output: counter on iterations
nbnd, & ! input: the number of bands
ik ! input: the k point
real(kind=DP) :: &
e(nbnd), & ! input: the actual eigenvalue
anorm, & ! output: the norm of the error in the solution
h_diag(ndmx,nbnd), & ! input: an estimate of ( H - \epsilon )
ethr ! input: the required precision
complex(kind=DP) :: &
dpsi (ndmx, nbnd), & ! output: the solution of the linear syst
d0psi (ndmx, nbnd) ! input: the known term
logical :: conv_root ! output: if true the root is converged
external h_psi, & ! input: the routine computing h_psi
cg_psi ! input: the routine computing cg_psi
!
! here the local variables
!
integer, parameter :: maxter = 200
! the maximum number of iterations
integer :: iter, ibnd, lbnd
! counters on iteration, bands
integer , allocatable :: conv (:)
! if 1 the root is converged
complex(kind=DP), allocatable :: g (:,:), t (:,:), h (:,:), hold (:,:)
! the gradient of psi
! the preconditioned gradient
! the delta gradient
! the conjugate gradient
! work space
complex(kind=DP) :: dcgamma, dclambda, ZDOTC
! the ratio between rho
! step length
! the scalar product
real(kind=DP), allocatable :: rho (:), rhoold (:), eu (:), a(:), c(:)
! the residue
! auxiliary for h_diag
real(kind=DP) :: kter_eff
! account the number of iterations with b
! coefficient of quadratic form
!
call start_clock ('cgsolve')
allocate ( g(ndmx,nbnd), t(ndmx,nbnd), h(ndmx,nbnd), hold(ndmx ,nbnd) )
allocate (a(nbnd), c(nbnd))
allocate (conv ( nbnd))
allocate (rho(nbnd),rhoold(nbnd))
allocate (eu ( nbnd))
! WRITE( stdout,*) g,t,h,hold
kter_eff = 0.d0
do ibnd = 1, nbnd
conv (ibnd) = 0
enddo
do iter = 1, maxter
!
! compute the gradient. can reuse information from previous step
!
if (iter == 1) then
call h_psi (ndim, dpsi, g, e, ik, nbnd)
do ibnd = 1, nbnd
call ZAXPY (ndim, (-1.d0,0.d0), d0psi(1,ibnd), 1, g(1,ibnd), 1)
enddo
endif
!
! compute preconditioned residual vector and convergence check
!
lbnd = 0
do ibnd = 1, nbnd
if (conv (ibnd) .eq.0) then
lbnd = lbnd+1
call ZCOPY (ndim, g (1, ibnd), 1, h (1, ibnd), 1)
call cg_psi(ndmx, ndim, 1, h(1,ibnd), h_diag(1,ibnd) )
rho(lbnd) = ZDOTC (ndim, h(1,ibnd), 1, g(1,ibnd), 1)
endif
enddo
kter_eff = kter_eff + float (lbnd) / float (nbnd)
#ifdef __PARA
call reduce (lbnd, rho )
#endif
do ibnd = nbnd, 1, -1
if (conv(ibnd).eq.0) then
rho(ibnd)=rho(lbnd)
lbnd = lbnd -1
anorm = sqrt (rho (ibnd) )
if (anorm.lt.ethr) conv (ibnd) = 1
endif
enddo
!
conv_root = .true.
do ibnd = 1, nbnd
conv_root = conv_root.and. (conv (ibnd) .eq.1)
enddo
if (conv_root) goto 100
!
! compute the step direction h. Conjugate it to previous step
!
lbnd = 0
do ibnd = 1, nbnd
if (conv (ibnd) .eq.0) then
!
! change sign to h
!
call DSCAL (2 * ndim, - 1.d0, h (1, ibnd), 1)
if (iter.ne.1) then
dcgamma = rho (ibnd) / rhoold (ibnd)
call ZAXPY (ndim, dcgamma, hold (1, ibnd), 1, h (1, ibnd), 1)
endif
!
! here hold is used as auxiliary vector in order to efficiently compute t = A*h
! it is later set to the current (becoming old) value of h
!
lbnd = lbnd+1
call ZCOPY (ndim, h (1, ibnd), 1, hold (1, lbnd), 1)
eu (lbnd) = e (ibnd)
endif
enddo
!
! compute t = A*h
!
call h_psi (ndim, hold, t, eu, ik, lbnd)
!
! compute the coefficients a and c for the line minimization
! compute step length lambda
lbnd=0
do ibnd = 1, nbnd
if (conv (ibnd) .eq.0) then
lbnd=lbnd+1
a(lbnd) = ZDOTC (ndim, h(1,ibnd), 1, g(1,ibnd), 1)
c(lbnd) = ZDOTC (ndim, h(1,ibnd), 1, t(1,lbnd), 1)
end if
end do
#ifdef __PARA
call reduce (lbnd, a)
call reduce (lbnd, c)
#endif
lbnd=0
do ibnd = 1, nbnd
if (conv (ibnd) .eq.0) then
lbnd=lbnd+1
dclambda = CMPLX ( - a(lbnd) / c(lbnd), 0.d0)
!
! move to new position
!
call ZAXPY (ndim, dclambda, h(1,ibnd), 1, dpsi(1,ibnd), 1)
!
! update to get the gradient
!
!g=g+lam
call ZAXPY (ndim, dclambda, t(1,lbnd), 1, g(1,ibnd), 1)
!
! save current (now old) h and rho for later use
!
call ZCOPY (ndim, h(1,ibnd), 1, hold(1,ibnd), 1)
rhoold (ibnd) = rho (ibnd)
endif
enddo
enddo
100 continue
kter = kter_eff
deallocate (eu)
deallocate (rho, rhoold)
deallocate (conv)
deallocate (a,c)
deallocate (g, t, h, hold)
call stop_clock ('cgsolve')
return
end subroutine cgsolve_all

View File

@ -7,7 +7,7 @@
!
!-----------------------------------------------------------------------
subroutine ch_psi_all (n, h, ah, e, ik, m)
subroutine ch_psi_all_vdw (n, h, ah, e, ik, m)
!-----------------------------------------------------------------------
!
! This routine applies the operator ( H - \epsilon S + alpha_pv P_v)
@ -26,10 +26,10 @@ subroutine ch_psi_all (n, h, ah, e, ik, m)
! input: the number of bands
! input: the k point
complex(kind=DP) :: e (m)
complex(DP) :: e (m)
! input: the eigenvalue plus imaginary freq.
complex(kind=DP) :: h (npwx, m), ah (npwx, m)
complex(DP) :: h (npwx, m), ah (npwx, m)
! input: the vector
! output: the operator applied to the vector
!
@ -40,7 +40,7 @@ subroutine ch_psi_all (n, h, ah, e, ik, m)
! the point k+q
! counter on G vetors
complex(kind=DP), allocatable :: ps (:,:), hpsi (:,:), spsi (:,:)
complex(DP), allocatable :: ps (:,:), hpsi (:,:), spsi (:,:)
! scalar products
! the product of the Hamiltonian and h
! the product of the S matrix and h
@ -54,7 +54,7 @@ subroutine ch_psi_all (n, h, ah, e, ik, m)
!
! compute the product of the hamiltonian with the h vector
!
call h_psiq (npwx, n, m, h, hpsi, spsi)
call h_psiq_vdw (npwx, n, m, h, hpsi, spsi)
!
call start_clock ('last')
!
@ -112,4 +112,4 @@ subroutine ch_psi_all (n, h, ah, e, ik, m)
call stop_clock ('last')
call stop_clock ('ch_psi')
return
end subroutine ch_psi_all
end subroutine ch_psi_all_vdw

View File

@ -219,7 +219,7 @@ SUBROUTINE check_v_eff ( veff, charge )
vrs_ = vrs
vrs = veff
!
CALL cegterg( npw, npwx, nbnd, nbndx, evc_, ethr, &
CALL cegterg_vdw( npw, npwx, nbnd, nbndx, evc_, ethr, &
okvan, et(1,ik), btype, notconv, dav_iter )
!
avg_iter = avg_iter + dav_iter

View File

@ -7,14 +7,14 @@
!
!
!-----------------------------------------------------------------------
subroutine dv_of_drho (mode, dvscf, flag)
subroutine dv_of_drho_vdw (mode, dvscf, flag)
!-----------------------------------------------------------------------
!
! This routine computes the change of the self consistent potential
! due to the perturbation.
!
#include "f_defs.h"
use funct
use funct, only : dft_is_gradient, dmxc
use pwcom
USE kinds, only : DP
use phcom
@ -59,7 +59,7 @@ subroutine dv_of_drho (mode, dvscf, flag)
!
dvaux (:,:) = (0.d0, 0.d0)
fac = 1.d0 / float (nspin)
fac = 1.d0 / DBLE (nspin)
if (nlcc_any.and.flag) then
call addcore (mode, drhoc)
do is = 1, nspin
@ -141,4 +141,4 @@ subroutine dv_of_drho (mode, dvscf, flag)
call stop_clock ('dv_of_drho')
return
end subroutine dv_of_drho
end subroutine dv_of_drho_vdw

View File

@ -7,7 +7,7 @@
!
!
!----------------------------------------------------------------------
subroutine dvpsi_e (kpoint, ipol)
subroutine dvpsi_e_vdw (kpoint, ipol)
!----------------------------------------------------------------------
!
! On output: dvpsi contains P_c^+ x | psi_kpoint > in crystal axis
@ -251,4 +251,4 @@ subroutine dvpsi_e (kpoint, ipol)
!
return
!
end subroutine dvpsi_e
end subroutine dvpsi_e_vdw

View File

@ -1,315 +0,0 @@
!
! Copyright (C) 2001-2004 PWSCF group
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
! or http://www.gnu.org/copyleft/gpl.txt .
!
!
!----------------------------------------------------------------------
subroutine gmressolve_all (h_psi, cg_psi, e, d0psi, dpsi, h_diag, &
ndmx, ndim, ethr, ik, kter, conv_root, anorm, nbnd, m)
!----------------------------------------------------------------------
!
! iterative solution of the linear system by GMRES(m) method:
!
! ( h - e + Q ) * dpsi = d0psi (1)
!
! where h is a complex hermitean matrix, e is a complex sca
! dpsi and d0psi are complex vectors
!
! on input:
! h_psi EXTERNAL name of a subroutine:
! h_psi(ndim,psi,psip)
! Calculates H*psi products.
! Vectors psi and psip should be dimensined
! (ndmx,nvec). nvec=1 is used!
!
! cg_psi EXTERNAL name of a subroutine:
! g_psi(ndmx,ndim,notcnv,psi,e)
! which calculates (h-e)^-1 * psi, with
! some approximation, e.g. (diag(h)-e)
!
! e complex unperturbed eigenvalue plus
! imaginary frequency.
!
! dpsi contains an estimate of the solution
! vector.
!
! d0psi contains the right hand side vector
! of the system.
!
! ndmx integer row dimension of dpsi, ecc.
!
! ndim integer actual row dimension of dpsi
!
! ethr real convergence threshold. solution
! improvement is stopped when the error in
! eq (1), defined as l.h.s. - r.h.s., becomes
! less than ethr in norm.
!
! m integer # of basis vectors
!
! on output: dpsi contains the refined estimate of the
! solution vector.
!
! d0psi is corrupted on exit
!
! revised (extensively) 6 Apr 1997 by A. Dal Corso & F. Mauri
! revised (to reduce memory) 29 May 2004 by S. de Gironcoli
!
#include "f_defs.h"
USE kinds, only : DP
implicit none
!
! first the I/O variables
!
integer :: ndmx, & ! input: the maximum dimension of the vectors
ndim, & ! input: the actual dimension of the vectors
kter, & ! output: counter on iterations
nbnd, & ! input: the number of bands
ik, & ! input: the k point
m ! # of basic vector
real(kind=DP) :: &
anorm, & ! output: the norm of the error in the solution
ethr ! input: the required precision
complex(kind=DP) :: h_diag(ndmx,nbnd) ! input: an estimate of ( H - \epsilon - iu )
complex(kind=DP) :: &
e(nbnd), & ! input: the actual eigenvalue plus imaginary freq.
dpsi (ndmx, nbnd), & ! output: the solution of the linear syst
d0psi (ndmx, nbnd) ! input: the known term
logical :: conv_root ! output: if true the root is converged
external h_psi, & ! input: the routine computing h_psi
cg_psi ! input: the routine computing cg_psi
!
! here the local variables
!
integer, parameter :: maxter = 5000
! the maximum number of iterations
integer :: iter, ibnd, i, j, bnd
! counters on iteration, bands
! control variables
integer , allocatable :: conv (:)
! if 1 the root is converged
complex(kind=DP), allocatable :: r (:,:), v(:,:,:), w (:,:)!, zz(:,:), p(:,:), pp(:,:)
! the gradient of psi
! the preconditioned gradient
! the delta gradient
! the conjugate gradient
! work space
complex(kind=DP) :: bk, ak, ZDOTC
! the ratio between rho
! step length
! the scalar product
real(kind=DP) :: t
complex(kind=DP):: c, s, ei
real(kind=DP), allocatable :: bet (:)
real(kind=DP), allocatable :: res (:)
complex(kind=DP) :: hm (m+1,m), & ! the Hessenberg matrix
e1(m+1) ! unit vector
complex(kind=DP) :: hm4para(1) ! temp variable for hm in paralell calculation
! real(kind=DP), allocatable :: rho (:), rhoold (:), eu (:), a(:), c(:)
! the residue
! auxiliary for h_diag
real(kind=DP) :: kter_eff
! account the number of iterations with b
! coefficient of quadratic form
!
integer :: lbnd
!
!
!
call start_clock ('gmres_solve')
!
if (m .lt. 1) then
write(*,*) '# of basis vectors is less than 1. Stop'
stop
else if (m .gt. 30) then
write(*,*) '# of basis vectors is too large. Stop'
stop
endif
!
allocate ( r(ndmx,nbnd), v(ndmx,nbnd,m+1), w(ndmx,nbnd))
allocate (conv ( nbnd))
allocate (bet(nbnd), res(nbnd))
! WRITE( stdout,*) g,t,h,hold
kter_eff = 0.d0
do ibnd = 1, nbnd
conv (ibnd) = 0
enddo
!
do iter = 1, maxter
!
!print*, 'iter=', iter
do ibnd = 1, nbnd ! loop over bands
!
if (conv(ibnd) .eq. 0) then
!
! preliminary step to construct the basis set
!
! r = H*dpsi
call h_psi (ndim, dpsi(1,ibnd), r(1,ibnd), e(ibnd), ik, 1)
!print*,'dpsi',sum(dpsi),sum(d0psi)
!
! r = H*dpsi - d0psi
call ZAXPY (ndim, (-1.d0,0.d0), d0psi(1,ibnd), 1, r(1,ibnd), 1)
!print*,'r1',sum(dpsi),sum(d0psi)
! change the size of r : r = d0psi - H*dpsi
call DSCAL (2 * ndim, - 1.d0, r (1, ibnd), 1)
!print*,'r2',sum(dpsi),sum(d0psi)
! compute the preconditioned r : r = M^-1*r
call cg_psi(ndmx, ndim, 1, r(1,ibnd), h_diag(1,ibnd), 1 )
!print*,'r3',sum(dpsi),sum(d0psi)
! norm of pre. r : bet = |r|
bet(ibnd) = ZDOTC (ndim, r(1,ibnd), 1, r(1,ibnd), 1)
#ifdef __PARA
call reduce ( nbnd, bet )
#endif
bet(ibnd) = sqrt( bet(ibnd) )
!
endif
!
enddo
!
! check the convergence
!
lbnd = 0
do ibnd = 1, nbnd
!
if ( conv(ibnd) .eq. 0 ) then
lbnd = lbnd + 1
!if (mod(iter,10) .eq. 0) print*, iter, bet(ibnd), ethr
if (bet(ibnd) .lt. ethr) conv(ibnd) = 1
endif
!
enddo
kter_eff = kter_eff + float (lbnd) / float (nbnd)
!
conv_root = .true.
do ibnd = 1, nbnd
conv_root = conv_root .and. (conv (ibnd) .eq. 1)
enddo
if (conv_root) goto 100
!
!
!
do ibnd = 1, nbnd
!
if ( conv(ibnd) .eq. 0 ) then
!
hm (:,:) = (0.d0, 0.d0)
! normalize pre. r and keep in v(1)
call DSCAL (2 * ndim, 1.d0/bet(ibnd), r (1, ibnd), 1)
j = 1
call ZCOPY (ndim, r (1, ibnd), 1, v (1, ibnd, j), 1)
!print*,'v',sum(r(1:ndim,ibnd))
!
!
! loop to construct basis set
!
!
do j = 1, m
! w = A*v
call h_psi (ndim, v(1,ibnd,j), w(1,ibnd), e, ik, 1) ! NEED to be checked
!print*,'w1',sum(w(:,ibnd))
!
! compute w = M^-1*A*v
call cg_psi(ndmx, ndim, 1, w(1,ibnd), h_diag(1,ibnd), 1 )
!print*,'w2',sum(w(:,ibnd))
!print*,'h_diag',sum(h_diag)
!
do i = 1, j
!
! compute hm(i,j)
! hm(i,j) = ZDOTC (ndim, w(1,ibnd), 1, v(1,ibnd,i), 1)
hm4para(1) = ZDOTC (ndim, w(1,ibnd), 1, v(1,ibnd,i), 1)
#ifdef __PARA
call reduce (2, hm4para )
#endif
hm(i,j) = hm4para(1)
! w = w - hm_ij*v_i
call ZAXPY (ndim, -hm(i,j), v(1,ibnd,i), 1, w(1,ibnd), 1)
!
enddo
! compute hm(j+1,j)
! hm(j+1,j) = ZDOTC (ndim, w(1,ibnd), 1, w(1,ibnd), 1)
hm4para(1) = ZDOTC (ndim, w(1,ibnd), 1, w(1,ibnd), 1)
#ifdef __PARA
call reduce (2, hm4para )
#endif
hm(j+1,j) = hm4para(1)
! compute v(j+1)
call DSCAL (2 * ndim, 1.d0/real(hm(j+1,j)), w (1, ibnd), 1)
call ZCOPY (ndim, w (1, ibnd), 1, v (1, ibnd, j+1), 1)
!
enddo
!
! compute ym that minimize |beta*e_1 -hm*y|
!
! initilize vector e1
e1(1) = 1.d0 * bet(ibnd)
e1(2:m+1) = 0.d0
!
! transform hm to upper triangle matrix
do i = 1, m
!
t = sqrt( abs(hm(i,i))**2 + abs(hm(i+1,i))**2 )
c = hm(i,i) / t
s = hm(i+1,i) / t
!
do j = i, m
!
ei = hm(i,j)
hm(i,j) = hm(i,j) * c + hm(i+1,j) * s
hm(i+1,j) = - s * ei + c * hm(i+1,j)
enddo
!
ei = e1(i)
e1(i) = e1(i)*c + e1(i+1)*s
e1(i+1) = - ei*s + e1(i+1)*c
!
enddo
!
res(ibnd) = e1(m+1)
!
! back subtitution to find ym (kept in e1)
e1(m+1) = (0.d0, 0.d0)
e1(m) = e1(m) / hm(m,m)
!
do i = m-1, 1, -1
do j = m, i+1, -1
e1(i) = e1(i) - e1(j)*hm(i,j)
enddo
e1(i) = e1(i) / hm(i,i)
enddo
!
! compute the new dpsi
do i = 1, m
do j = 1, ndmx
dpsi(j, ibnd) = dpsi(j, ibnd) + e1(i)*v(j,ibnd,i)
enddo
enddo
!
end if
!
enddo ! of loop over bands
!
enddo ! loop over iteration
!
100 continue
kter = kter_eff
!
deallocate (bet, res)
deallocate (conv)
deallocate (r, v, w)
!
call stop_clock ('gmres_solve')
!
return
!
end subroutine gmressolve_all

View File

@ -7,7 +7,7 @@
!
!
!-----------------------------------------------------------------------
subroutine h_psiq (lda, n, m, psi, hpsi, spsi)
subroutine h_psiq_vdw (lda, n, m, psi, hpsi, spsi)
!-----------------------------------------------------------------------
!
! This routine computes the product of the Hamiltonian
@ -95,4 +95,4 @@ subroutine h_psiq (lda, n, m, psi, hpsi, spsi)
call stop_clock ('h_psiq')
return
end subroutine h_psiq
end subroutine h_psiq_vdw

View File

@ -6,7 +6,7 @@
! or http://www.gnu.org/copyleft/gpl.txt .
!
!-----------------------------------------------------------------------
subroutine incdrhoscf (drhoscf, weight, ik, mode)
subroutine incdrhoscf_vdw (drhoscf, weight, ik, mode)
!-----------------------------------------------------------------------
!
! This routine computes the change of the charge density due to the
@ -75,14 +75,14 @@ subroutine incdrhoscf (drhoscf, weight, ik, mode)
call cft3s (dpsic, nr1s, nr2s, nr3s, nrx1s, nrx2s, nrx3s, + 2)
do ir = 1, nrxxs
! drhoscf (ir) = drhoscf (ir) + wgt * conjg (psi (ir) ) * dpsic (ir)
drhoscf (ir) = drhoscf (ir) + wgt * real( conjg(psi(ir)) * dpsic (ir) )
! drhoscf (ir) = drhoscf (ir) + wgt * CONJG (psi (ir) ) * dpsic (ir)
drhoscf (ir) = drhoscf (ir) + wgt * REAL( CONJG(psi(ir)) * dpsic (ir) )
enddo
enddo
!print*,'drhoscf=', sum(abs(real(drhoscf))), sum(abs(aimag(drhoscf)))
!print*,'drhoscf=', sum(abs(REAL(drhoscf))), SUM(ABS(AIMAG(drhoscf)))
! call addusdbec (ik, wgt, dpsi, dbecsum)
deallocate (psi)
deallocate (dpsic)
call stop_clock ('incdrhoscf')
return
end subroutine incdrhoscf
end subroutine incdrhoscf_vdw

View File

@ -3,8 +3,10 @@ allocate_vdw.o : ../PW/pwcom.o
allocate_vdw.o : vdwcom.o
cegterg.o : ../Modules/io_global.o
cegterg.o : ../Modules/kind.o
cg_psi.o : ../Modules/kind.o
cgsolve_all.o : ../Modules/kind.o
ch_psi_all.o : ../Modules/kind.o
ch_psi_all.o : ../PH/phcom.o
ch_psi_all.o : ../PW/becmod.o
ch_psi_all.o : ../PW/pwcom.o
check_v_eff.o : ../Modules/cell_base.o
check_v_eff.o : ../Modules/constants.o
check_v_eff.o : ../Modules/control_flags.o
@ -16,10 +18,6 @@ check_v_eff.o : ../Modules/wavefunctions.o
check_v_eff.o : ../PW/g_psi_mod.o
check_v_eff.o : ../PW/pwcom.o
check_v_eff.o : vdwcom.o
ch_psi_all.o : ../Modules/kind.o
ch_psi_all.o : ../PH/phcom.o
ch_psi_all.o : ../PW/becmod.o
ch_psi_all.o : ../PW/pwcom.o
dv_of_drho.o : ../Modules/functionals.o
dv_of_drho.o : ../Modules/kind.o
dv_of_drho.o : ../PH/phcom.o
@ -36,12 +34,11 @@ dvpsi_e.o : vdwcom.o
eff_pot.o : ../Modules/io_files.o
eff_pot.o : ../Modules/io_global.o
eff_pot.o : ../Modules/kind.o
eff_pot.o : ../Modules/mp_global.o
eff_pot.o : ../Modules/mp.o
eff_pot.o : ../Modules/mp_global.o
eff_pot.o : ../Modules/uspp.o
eff_pot.o : ../PW/pwcom.o
eff_pot.o : vdwcom.o
gmressolve_all.o : ../Modules/kind.o
h_psiq.o : ../Modules/kind.o
h_psiq.o : ../Modules/wavefunctions.o
h_psiq.o : ../PH/phcom.o
@ -53,13 +50,6 @@ incdrhoscf.o : ../Modules/uspp.o
incdrhoscf.o : ../PH/phcom.o
incdrhoscf.o : ../PW/pwcom.o
incdrhoscf.o : vdwcom.o
openfil_pp.o : ../Modules/control_flags.o
openfil_pp.o : ../Modules/io_files.o
openfil_pp.o : ../Modules/io_global.o
openfil_pp.o : ../Modules/kind.o
openfil_pp.o : ../Modules/mp_global.o
openfil_pp.o : ../PW/noncol.o
openfil_pp.o : ../PW/pwcom.o
pbcg_psi.o : ../Modules/kind.o
polariz.o : ../Modules/cell_base.o
polariz.o : ../Modules/io_files.o
@ -90,7 +80,6 @@ stop_vdw.o : ../Modules/control_flags.o
stop_vdw.o : ../Modules/io_files.o
stop_vdw.o : ../Modules/mp.o
stop_vdw.o : ../Modules/parallel_include.o
vdwcom.o : ../Modules/kind.o
vdw.o : ../Modules/cell_base.o
vdw.o : ../Modules/io_files.o
vdw.o : ../Modules/io_global.o
@ -101,14 +90,13 @@ vdw.o : ../Modules/parser.o
vdw.o : ../PH/phcom.o
vdw.o : ../PW/pwcom.o
vdw.o : vdwcom.o
vdwcom.o : ../Modules/kind.o
allocate_vdw.o : ../include/f_defs.h
cegterg.o : ../include/f_defs.h
cgsolve_all.o : ../include/f_defs.h
check_v_eff.o : ../include/f_defs.h
ch_psi_all.o : ../include/f_defs.h
check_v_eff.o : ../include/f_defs.h
dv_of_drho.o : ../include/f_defs.h
dvpsi_e.o : ../include/f_defs.h
gmressolve_all.o : ../include/f_defs.h
incdrhoscf.o : ../include/f_defs.h
polariz.o : ../include/f_defs.h
solve_e.o : ../include/f_defs.h

View File

@ -1,48 +0,0 @@
!
! Copyright (C) 2001-2003 PWSCF group
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
! or http://www.gnu.org/copyleft/gpl.txt .
!
!
!----------------------------------------------------------------------------
SUBROUTINE openfil_pp()
!----------------------------------------------------------------------------
!
! ... This routine opens all files needed to the self consistent run,
! ... sets various file names, units, record lengths
!
USE kinds, ONLY : DP
USE io_global, ONLY : stdout
USE basis, ONLY : natomwfc
USE wvfct, ONLY : nbnd, npwx
USE ldaU, ONLY : lda_plus_U
use control_flags, only: twfcollect
USE io_files, ONLY : prefix, iunsat, iunwfc, &
iunigk, nwordwfc, nwordatwfc
USE mp_global, ONLY : kunit
USE noncollin_module, ONLY : npol
!
IMPLICIT NONE
!
LOGICAL :: exst
INTEGER :: ndr, kunittmp, ierr
REAL(DP) :: edum(1,1), wdum(1,1)
twfcollect=.false.
!
! ... nwordwfc is the record length for the direct-access file
! ... containing wavefunctions
!
nwordwfc = 2 * nbnd * npwx * npol
!
CALL diropn( iunwfc, 'wfc', nwordwfc, exst )
!
IF ( .NOT. exst ) THEN
call errore ('openfil_pp','file '//TRIM( prefix )//'.wfc'//' not found',1)
END IF
!
RETURN
!
END SUBROUTINE openfil_pp

View File

@ -7,7 +7,7 @@
!
!
!-----------------------------------------------------------------------
subroutine polariz ( iu )
subroutine polariz_vdw ( iu )
!-----------------------------------------------------------------------
!
! calculates the frequency dependent polarizability
@ -16,13 +16,13 @@ subroutine polariz ( iu )
USE io_global, ONLY : stdout
USE io_files, ONLY : iunigk
use pwcom
USE kinds, only : DP
use phcom
use cell_base, only : omega
USE pwcom
USE kinds, ONLY : DP
USE phcom
USE cell_base, ONLY : omega
USE eff_v, ONLY : nelecr, veff, et_c, dvext, dpsi_eff
implicit none
IMPLICIT NONE
!
! I/O variables
!
@ -105,4 +105,4 @@ subroutine polariz ( iu )
call stop_clock ('polariz')
return
end subroutine polariz
end subroutine polariz_vdw

View File

@ -7,7 +7,7 @@
!
!
!-----------------------------------------------------------------------
subroutine solve_e ( iu )
subroutine solve_e_vdw ( iu )
!-----------------------------------------------------------------------
!
! This routine is a driver for the solution of the linear system which
@ -95,7 +95,7 @@ subroutine solve_e ( iu )
character (len=256) :: flmixdpot
! the name of the file with the mixing potential
!
external ch_psi_all, pbcg_psi, cg_psi
external ch_psi_all_vdw, pbcg_psi, cg_psi
if (lsda) call errore ('solve_e', ' LSDA not implemented', 1)
@ -202,7 +202,7 @@ subroutine solve_e ( iu )
nrec = (ipol - 1) * nksq + ik
!
! computes/reads P_c^+ x psi_kpoint into dvpsi array
call dvpsi_e (ik, ipol)
call dvpsi_e_vdw (ik, ipol)
!
if (iter.eq.1) then
!
@ -292,7 +292,7 @@ subroutine solve_e ( iu )
!
conv_root = .true.
!
call gmressolve_all (ch_psi_all,pbcg_psi,et_c(1,ik),dvpsi,dpsi, &
call gmressolve_all (ch_psi_all_vdw,pbcg_psi,et_c(1,ik),dvpsi,dpsi, &
h_diag,npwx,npw,thresh,ik,lter,conv_root,anorm,nbnd_occ(ik), 4 )
!
ltaver = ltaver + lter
@ -312,7 +312,7 @@ subroutine solve_e ( iu )
weight = wk (ik)
weight = nelecr
!
call incdrhoscf (dvscfout(1,current_spin,ipol), weight, ik, 1)
call incdrhoscf_vdw (dvscfout(1,current_spin,ipol), weight, ik, 1)
!
enddo ! on perturbation
enddo ! on k points
@ -350,7 +350,7 @@ subroutine solve_e ( iu )
do ipol=1,3
if (fildrho.ne.' ') call davcio_drho(dvscfout(1,1,ipol),lrdrho, &
iudrho,ipol,+1)
call dv_of_drho (0, dvscfout (1, 1, ipol), .false.)
call dv_of_drho_vdw (0, dvscfout (1, 1, ipol), .false.)
enddo
#ifdef __PARA
call psyme (dvscfout)
@ -427,4 +427,4 @@ subroutine solve_e ( iu )
!
return
!
end subroutine solve_e
end subroutine solve_e_vdw

View File

@ -11,7 +11,7 @@
PROGRAM vdw
!-----------------------------------------------------------------------
!
! Program for calculating dynamic polarizability of a genrric finite system
! Program for calculating dynamic polarizability of a generic finite system
! (e.g., atoms, molecules,...) using TF-vW approximation.
! The two basic steps are:
! 1) read the output file produced by pw.
@ -78,8 +78,8 @@ PROGRAM vdw
i = nfs
freq_loop : DO WHILE ( i .ge. 1 )
!
call solve_e ( fiu(i) )
IF ( convt ) CALL polariz ( fiu(i) )
call solve_e_vdw ( fiu(i) )
IF ( convt ) CALL polariz_vdw ( fiu(i) )
i = i - 1
!
END DO freq_loop
@ -165,7 +165,7 @@ SUBROUTINE vdw_init ( )
200 CALL errore ('vdw', 'reading inputvdw namelist', ABS (ios) )
tmp_dir = trimcheck ( outdir )
!
! reading frequencies
! reading frequencies
!
READ (5, *, err = 10, iostat = ios) card
READ (5, *, err = 10, iostat = ios) nfs

View File

@ -1,140 +1,140 @@
add_exchange.o : ld1inc.o
add_exchange.o : ../Modules/constants.o
add_exchange.o : ../Modules/kind.o
all_electron.o : ld1inc.o
add_exchange.o : ld1inc.o
all_electron.o : ../Modules/kind.o
ascheqlocps.o : ../Modules/kind.o
all_electron.o : ld1inc.o
ascheq.o : ../Modules/kind.o
ascheqlocps.o : ../Modules/kind.o
ascheqps.o : ../Modules/kind.o
atomic_paw.o : ../Modules/functionals.o
atomic_paw.o : ../Modules/kind.o
atomic_paw.o : ../Modules/parameters.o
atomic_paw.o : parameters.o
c6_dft.o : ld1inc.o
c6_dft.o : ../Modules/constants.o
c6_dft.o : ../Modules/kind.o
c6_tfvw.o : ld1inc.o
c6_dft.o : ld1inc.o
c6_tfvw.o : ../Modules/constants.o
c6_tfvw.o : ../Modules/functionals.o
c6_tfvw.o : ../Modules/kind.o
c6_tfvw.o : ld1inc.o
cfdsol.o : ../Modules/kind.o
chargeps.o : ld1inc.o
compute_chi.o : ld1inc.o
compute_chi.o : ../Modules/kind.o
compute_chi.o : ld1inc.o
compute_det.o : ../Modules/kind.o
compute_phi.o : ld1inc.o
compute_phi.o : ../Modules/kind.o
compute_phi.o : ld1inc.o
compute_phipot.o : ld1inc.o
compute_phius.o : ld1inc.o
compute_solution.o : ../Modules/kind.o
descreening.o : ld1inc.o
dfx_new.o : ld1inc.o
dfx_new.o : ../Modules/constants.o
dfx_new.o : ../Modules/kind.o
dfx_new.o : ld1inc.o
dir_outward.o : ../Modules/kind.o
dirsol.o : ../Modules/kind.o
dmixp.o : ../Modules/kind.o
do_mesh.o : ../Modules/kind.o
drho0ofvx.o : ld1inc.o
drho0ofvx.o : ../Modules/constants.o
drho0ofvx.o : ../Modules/kind.o
drhoofv.o : ld1inc.o
drho0ofvx.o : ld1inc.o
drhoofv.o : ../Modules/constants.o
drhoofv.o : ../Modules/kind.o
dvex.o : ld1inc.o
drhoofv.o : ld1inc.o
dvex.o : ../Modules/constants.o
dvex.o : ../Modules/kind.o
dvex.o : ld1inc.o
el_config.o : ../Modules/kind.o
el_config.o : parameters.o
elsd.o : ld1inc.o
elsd.o : ../Modules/functionals.o
elsd.o : ../Modules/kind.o
elsdps.o : ld1inc.o
elsd.o : ld1inc.o
elsdps.o : ../Modules/functionals.o
elsdps.o : ld1inc.o
esic.o : ld1inc.o
exc_t.o : ../Modules/functionals.o
exc_t.o : ../Modules/kind.o
find_qi.o : ld1inc.o
find_qi.o : ../Modules/kind.o
find_qi.o : ld1inc.o
gener_pseudo.o : atomic_paw.o
gener_pseudo.o : ld1inc.o
green.o : ld1inc.o
green.o : ../Modules/kind.o
green.o : ld1inc.o
hartree.o : ../Modules/kind.o
int_0_inf_dr.o : ../Modules/kind.o
integrate_inward.o : ../Modules/kind.o
integrate_outward.o : ../Modules/kind.o
intref.o : ../Modules/kind.o
inward.o : ld1inc.o
inward.o : ../Modules/kind.o
ld1inc.o : atomic_paw.o
ld1inc.o : ../Modules/kind.o
ld1inc.o : parameters.o
ld1.o : ld1inc.o
inward.o : ld1inc.o
ld1.o : ../Modules/version.o
ld1.o : ld1inc.o
ld1_readin.o : ../Modules/functionals.o
ld1_readin.o : atomic_paw.o
ld1_readin.o : ld1inc.o
ld1_readin.o : ../Modules/functionals.o
ld1_setup.o : ld1inc.o
ld1_setup.o : ../Modules/functionals.o
ld1_setup.o : ld1inc.o
ld1_writeout.o : ../Modules/functionals.o
ld1_writeout.o : atomic_paw.o
ld1_writeout.o : ld1inc.o
ld1_writeout.o : ../Modules/functionals.o
ld1inc.o : ../Modules/kind.o
ld1inc.o : atomic_paw.o
ld1inc.o : parameters.o
lderiv.o : ld1inc.o
lderivps.o : ld1inc.o
lschps.o : ../Modules/kind.o
newd_at.o : ld1inc.o
new_potential.o : ld1inc.o
new_potential.o : ../Modules/constants.o
new_potential.o : ../Modules/functionals.o
new_potential.o : ../Modules/kind.o
new_potential.o : ld1inc.o
newd_at.o : ld1inc.o
nodenum.o : ../Modules/kind.o
normalize.o : ld1inc.o
occ_spin.o : ../Modules/kind.o
outward.o : ld1inc.o
outward.o : ../Modules/kind.o
outward.o : ld1inc.o
pseudovloc.o : ld1inc.o
read_newpseudo.o : ld1inc.o
read_newpseudo.o : ../Modules/functionals.o
read_newpseudo.o : ld1inc.o
read_pseudo.o : ../Modules/kind.o
read_pseudoupf.o : ld1inc.o
read_pseudoupf.o : ../Modules/functionals.o
read_pseudoupf.o : ../Modules/pseudo_types.o
read_pseudoupf.o : ../Modules/read_upf.o
read_pseudoupf.o : ld1inc.o
run_pseudo.o : atomic_paw.o
run_pseudo.o : ld1inc.o
run_test.o : ld1inc.o
scf.o : ld1inc.o
scf.o : ../Modules/constants.o
scf.o : ld1inc.o
seriebes.o : ../Modules/kind.o
series.o : ../Modules/kind.o
set_rho_core.o : ld1inc.o
set_sl3.o : ../Modules/kind.o
sic_correction.o : ld1inc.o
sic_correction.o : ../Modules/constants.o
sic_correction.o : ../Modules/functionals.o
starting_potential.o : ../Modules/kind.o
sic_correction.o : ld1inc.o
start_potps.o : ld1inc.o
test_bessel.o : ld1inc.o
starting_potential.o : ../Modules/kind.o
test_bessel.o : ../Modules/kind.o
test_bessel.o : ld1inc.o
trou.o : ../Modules/kind.o
trou.o : ../Modules/random_numbers.o
vdpack.o : ../Modules/kind.o
vext.o : ../Modules/kind.o
vpack.o : ../Modules/kind.o
vxcgc.o : ../Modules/functionals.o
vxcgc.o : ../Modules/kind.o
vxc_t.o : ../Modules/functionals.o
vxc_t.o : ../Modules/kind.o
vxcgc.o : ../Modules/functionals.o
vxcgc.o : ../Modules/kind.o
write_cpmd.o : ../Modules/functionals.o
write_cpmd.o : ../Modules/kind.o
write_paw_recon.o : ld1inc.o
write_pseudo.o : ../Modules/kind.o
write_results.o : ld1inc.o
write_results.o : ../Modules/functionals.o
write_resultsps.o : ld1inc.o
write_results.o : ld1inc.o
write_resultsps.o : ../Modules/functionals.o
write_upf.o : ld1inc.o
write_resultsps.o : ld1inc.o
write_upf.o : ../Modules/functionals.o
write_upf.o : ../Modules/kind.o
write_upf.o : ld1inc.o
test_bessel.o : ../include/f_defs.h

View File

@ -1,5 +1,9 @@
#!/bin/sh
# make sure there is no locale setting creating unneeded differences.
LC_ALL=C
export LC_ALL
# pwdiff.sh -- script for checking outputs of PWscf examples
# checking is done in three steps: preprocess, diff against reference
# data, postprocess

View File

@ -29443,7 +29443,7 @@ CIBM PREFER SCALAR
* End of ZGESVD
*
END
SUBROUTINE ZBDSQR( UPLO, N, NCVT, NRU, NCC, D, E, VT, LDVT, U,
SUBROUTINE ZBDSQR( UPLO, N, NCVT, NRU, NCC, D, E, VT, LDVT, U,
$ LDU, C, LDC, RWORK, INFO )
*
* -- LAPACK routine (version 3.0) --
@ -30177,7 +30177,7 @@ CIBM PREFER SCALAR
*
END
SUBROUTINE ZGEBRD( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, LWORK,
SUBROUTINE ZGEBRD( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, LWORK,
$ INFO )
*
* -- LAPACK routine (version 3.0) --
@ -32492,7 +32492,7 @@ CIBM PREFER SCALAR
* End of ZUNMLQ
*
END
SUBROUTINE DLASQ2( N, Z, INFO )
SUBROUTINE DLASQ2( N, Z, INFO )
*
* -- LAPACK routine (version 3.0) --
* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
@ -34134,7 +34134,7 @@ CIBM PREFER SCALAR
* End of ZUNML2
*
END
SUBROUTINE DLAS2( F, G, H, SSMIN, SSMAX )
SUBROUTINE DLAS2( F, G, H, SSMIN, SSMAX )
*
* -- LAPACK auxiliary routine (version 3.0) --
* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,

View File

@ -1,5 +1,9 @@
#!/bin/sh
# make sure there is no locale setting creating unneeded differences.
LC_ALL=C
export LC_ALL
echo "creating catalog file for Intel compiler v.6 and earlier..."
topdir=`pwd`

View File

@ -1,6 +1,10 @@
#!/bin/sh
# includedep.sh -- script that computes dependencies on preprocessor includes
# make sure there is no locale setting creating unneeded differences.
LC_ALL=C
export LC_ALL
# files whose dependencies must be computed
sources=`echo *.c *.f90 |
sed 's/\*\.c//g

View File

@ -1,5 +1,9 @@
#!/bin/sh
# make sure there is no locale setting creating unneeded differences.
LC_ALL=C
export LC_ALL
echo "creating catalog file for Intel compiler v.6 and earlier..."
topdir=`pwd`

View File

@ -1,6 +1,10 @@
#!/bin/sh
# includedep.sh -- script that computes dependencies on preprocessor includes
# make sure there is no locale setting creating unneeded differences.
LC_ALL=C
export LC_ALL
# files whose dependencies must be computed
sources=`echo *.c *.f90 |
sed 's/\*\.c//g

View File

@ -1,6 +1,10 @@
#!/bin/sh
# compute dependencies for the PWscf directory tree
# make sure there is no locale setting creating unneeded differences.
LC_ALL=C
export LC_ALL
# run from directory where this script is
cd `echo $0 | sed 's/\(.*\)\/.*/\1/'` # extract pathname
TOPDIR=`pwd`

View File

@ -1,6 +1,10 @@
#!/bin/sh
# moduledep.sh -- script that computes dependencies on Fortran 90 modules
# make sure there is no locale setting creating unneeded differences.
LC_ALL=C
export LC_ALL
# files whose dependencies must be computed
sources=`echo *.f90 |
sed 's/\*\.f90//g'` # remove the "*.f90" that remains

View File

@ -1,6 +1,10 @@
#!/bin/sh
# namedep.sh -- script that computes dependencies on Fortran 90 modules
# make sure there is no locale setting creating unneeded differences.
LC_ALL=C
export LC_ALL
# first argument is mandatory
if test $# = 0
then

View File

@ -1,6 +1,10 @@
#!/bin/sh
# compute dependencies for the PWscf directory tree
# make sure there is no locale setting creating unneeded differences.
LC_ALL=C
export LC_ALL
# run from directory where this script is
cd `echo $0 | sed 's/\(.*\)\/.*/\1/'` # extract pathname
TOPDIR=`pwd`

View File

@ -1,6 +1,10 @@
#!/bin/sh
# moduledep.sh -- script that computes dependencies on Fortran 90 modules
# make sure there is no locale setting creating unneeded differences.
LC_ALL=C
export LC_ALL
# files whose dependencies must be computed
sources=`echo *.f90 |
sed 's/\*\.f90//g'` # remove the "*.f90" that remains

View File

@ -1,6 +1,10 @@
#!/bin/sh
# namedep.sh -- script that computes dependencies on Fortran 90 modules
# make sure there is no locale setting creating unneeded differences.
LC_ALL=C
export LC_ALL
# first argument is mandatory
if test $# = 0
then

View File

@ -8,8 +8,8 @@
! Program is designed to map the Fermi Surface using XCrySDen
! See www.xcrysden.org
!
! Eyvaz Isaev, 2004-2005
! eyvaz_isaev@yahoo.com, e.isaev@misis.ru, Eyvaz.Isaev@fysik.uu.se
! Eyvaz Isaev, 2004-2005
! eyvaz_isaev@yahoo.com, e.isaev@misis.ru, Eyvaz.Isaev@fysik.uu.se
! Theoretical Physics Department,
! Moscow State Institute of Steel and Alloys
!

View File

@ -1,4 +1,9 @@
#!/bin/sh -x
# make sure there is no locale setting creating unneeded differences.
LC_ALL=C
export LC_ALL
#
VERSION=3.2
TARGET_MACHINE=cibs.sns.it:public_html/public/