Various compilation problems after last changes fixed.

There is one left in PWCOND, related to arrays betar*
Misc small changes here and there


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4317 c92efa57-630b-4861-b058-cf58834340f0
This commit is contained in:
giannozz 2007-10-06 13:50:02 +00:00
parent f00cf0db1f
commit e0378cf043
11 changed files with 55 additions and 46 deletions

View File

@ -12,7 +12,7 @@ SUBROUTINE d3_init
!
USE ions_base, ONLY : nat, ntyp => nsp
USE pwcom
USE uspp_param, ONLY : vloc_at, zp
USE uspp_param, ONLY : upf
USE atom, ONLY: numeric, msh, rgrid
USE phcom
USE d3com
@ -61,8 +61,8 @@ SUBROUTINE d3_init
work = 0.d0
DO nt = 1, ntyp
CALL setlocq (work, lloc(nt), lmax(nt), numeric(nt), &
rgrid(nt)%mesh, msh(nt), rgrid(nt)%rab, rgrid(nt)%r, vloc_at(1,nt), &
cc(1,nt), alpc(1,nt), nlc(nt), nnl(nt), zp(nt), aps(1,0,nt), &
rgrid(nt)%mesh, msh(nt), rgrid(nt)%rab, rgrid(nt)%r, upf(nt)%vloc,&
cc(1,nt), alpc(1,nt), nlc(nt), nnl(nt), upf(nt)%zp, aps(1,0,nt), &
alps(1,0,nt), tpiba2, ngm, g, omega, vlocg0(1,nt) )
ENDDO
ENDIF

View File

@ -184,7 +184,6 @@ printout_base.o : kind.o
printout_base.o : mp.o
printout_base.o : mp_global.o
pseudo_types.o : kind.o
pseudo_types.o : parameters.o
pseudo_types.o : radial_grids.o
pseudodata.o : kind.o
pseudodata.o : parameters.o

View File

@ -16,9 +16,9 @@ MODULE parameters
!
INTEGER, PARAMETER :: &
ntypx = 10, &! max number of different types of atom
ntypx = 3 , &! max number of different types of atom
npsx = ntypx, &! max number of different PPs (obsolete)
npk = 40000, &! max number of k-points
npk = 2000, &! max number of k-points
lmaxx = 3, &! max non local angular momentum (l=0 to lmaxx)
nchix = 6, & ! max number of atomic wavefunctions per atom
nwfsx = 14 ! max number of beta functions per atom

View File

@ -41,7 +41,7 @@ SUBROUTINE phq_init()
USE wavefunctions_module, ONLY : evc
USE kinds, ONLY : DP
USE noncollin_module, ONLY : noncolin, npol
USE uspp_param, ONLY : vloc_at, zp
USE uspp_param, ONLY : upf
USE phcom
!
IMPLICIT NONE
@ -97,8 +97,8 @@ SUBROUTINE phq_init()
DO nt = 1, ntyp
!
CALL setlocq( xq, lloc(nt), lmax(nt), numeric(nt), rgrid(nt)%mesh, &
msh(nt), rgrid(nt)%rab, rgrid(nt)%r, vloc_at(1,nt), &
cc(1,nt), alpc(1,nt), nlc(nt), nnl(nt), zp(nt), &
msh(nt), rgrid(nt)%rab, rgrid(nt)%r, upf(nt)%vloc, &
cc(1,nt), alpc(1,nt), nlc(nt), nnl(nt), upf(nt)%zp, &
aps(1,0,nt), alps(1,0,nt), tpiba2, ngm, g, omega, &
vlocq(1,nt) )
!

View File

@ -20,7 +20,7 @@ subroutine init_cond (nregion, flag)
USE pwcom
USE io_files, ONLY : save_file
USE noncollin_module, ONLY : noncolin, npol
USE uspp_param, ONLY : nbrx, nbeta, lll, betar, tvanp
USE uspp_param, ONLY : upf, nbetam
USE atom, ONLY: rgrid
USE ions_base, ONLY : atm, nat, ityp, ntyp => nsp, tau
USE cond
@ -49,7 +49,7 @@ subroutine init_cond (nregion, flag)
if (abs(ecut2d).le.eps) ecut2d = ecutwfc
allocate ( ztot(nrztot+1) )
allocate ( rsph(nbrx, npsx) )
allocate ( rsph(nbetam, ntyp) )
allocate ( dwid(5) )
allocate ( nrzreg(4) )
@ -107,14 +107,14 @@ subroutine init_cond (nregion, flag)
!
mmax = 0
do nt=1, ntyp
do ib=1, nbeta(nt)
mmax = max(mmax, lll(ib, nt))
do ib=1, upf(nt)%nbeta
mmax = max(mmax, upf(nt)%lll(ib))
bmax=0.d0
do ir=2, rgrid(nt)%mesh
bmax=max(bmax, betar(ir,ib,nt)/rgrid(nt)%r(ir))
bmax=max(bmax, upf(nT)%beta(ir,ib)/rgrid(nt)%r(ir))
enddo
ir=rgrid(nt)%mesh
do while (abs(betar(ir,ib,nt)/rgrid(nt)%r(ir)).le.epsbeta*bmax)
do while (abs(upf(nt)%beta(ir,ib)/rgrid(nt)%r(ir)).le.epsbeta*bmax)
ir=ir-1
enddo
rsph(ib,nt)=rgrid(nt)%r(ir)/alat
@ -128,12 +128,12 @@ subroutine init_cond (nregion, flag)
! the problem with the spheres crossing or not the boundaries)
!
do nt=1, ntyp
if (tvanp(nt)) then
if (upf(nt)%tvanp) then
bmax=0.d0
do ib=1, nbeta(nt)
do ib=1, upf(nt)%nbeta
bmax=max(bmax, rsph(ib,nt))
enddo
do ib=1, nbeta(nt)
do ib=1, upf(nt)%nbeta
rsph(ib,nt)=bmax
enddo
endif
@ -202,8 +202,8 @@ subroutine init_cond (nregion, flag)
write(stdout, '(/,5x,''type ibeta ang. mom.'', &
& '' radius (a_0 units)'')')
write(stdout, '(7x,a6,3x,i3,7x,i3,14x,f12.4)') &
& ( ( atm(nt), ib, lll(ib,nt), rsph(ib,nt), &
& ib=1,nbeta(nt) ), nt=1,ntyp)
& ( ( atm(nt), ib, upf(nt)%lll(ib), rsph(ib,nt), &
& ib=1,upf(nt)%nbeta ), nt=1,ntyp)
!-----------------------------

View File

@ -26,8 +26,8 @@ subroutine init_orbitals (zlen, bd1, bd2, z, nrz, rsph, lsr)
use lsda_mod, only: nspin
use noncollin_module, only : noncolin
use spin_orb, only: lspinorb
use ions_base, only : atm, nat, ityp, tau
use uspp_param, only : nbrx, nbeta, lll, betar, tvanp, dion
use ions_base, only : atm, nat, ityp, tau, nsp
use uspp_param, only : upf, nbetam, betar
use uspp, only : deeq, deeq_nc, qq, qq_so
use atom, only : rgrid
@ -39,12 +39,12 @@ subroutine init_orbitals (zlen, bd1, bd2, z, nrz, rsph, lsr)
integer, allocatable :: orbind(:,:), tblm(:,:), cros(:,:), natih(:,:)
real(DP), parameter :: eps=1.d-8
real(DP) :: ledge, redge, ledgel, redgel, ledger, redger, &
bd1, bd2, zlen, z(nrz+1), rsph(nbrx, npsx)
bd1, bd2, zlen, z(nrz+1), rsph(nbetam, nsp)
real(DP), allocatable :: taunew(:,:), zpseu(:,:,:)
complex(DP), allocatable :: zpseu_nc(:,:,:,:)
allocate ( orbind(nat,nbrx) )
allocate ( orbind(nat,nbetam) )
orbind = -1
!---------------------
@ -55,7 +55,7 @@ subroutine init_orbitals (zlen, bd1, bd2, z, nrz, rsph, lsr)
rnocros = 0
do na = 1, nat
nt = ityp(na)
do ib = 1, nbeta(nt)
do ib = 1, upf(nt)%nbeta
ledge = tau(3,na)-rsph(ib,nt)
ledgel = ledge-zlen
ledger = ledge+zlen
@ -65,32 +65,32 @@ subroutine init_orbitals (zlen, bd1, bd2, z, nrz, rsph, lsr)
if (ledge.le.bd1.and.redge.gt.bd2) &
call errore ('init_orbitals','Too big atomic spheres',1)
if (ledge.gt.bd1.and.redge.le.bd2) then
noins = noins+2*lll(ib,nt)+1
noins = noins+2*upf(nt)%lll(ib)+1
orbind(na,ib) = 0
elseif(ledge.le.bd1.and.redge.gt.bd1) then
lnocros = lnocros+2*lll(ib,nt)+1
lnocros = lnocros+2*upf(nt)%lll(ib)+1
orbind(na,ib) = 1
if(ledger.le.bd2.and.redger.gt.bd2) then
rnocros = rnocros+2*lll(ib,nt)+1
rnocros = rnocros+2*upf(nt)%lll(ib)+1
orbind(na,ib) = 2
endif
elseif(ledger.le.bd2.and.redger.gt.bd2) then
rnocros = rnocros+2*lll(ib,nt)+1
rnocros = rnocros+2*upf(nt)%lll(ib)+1
orbind(na,ib) = 3
elseif(ledge.le.bd2.and.redge.gt.bd2) then
rnocros = rnocros+2*lll(ib,nt)+1
rnocros = rnocros+2*upf(nt)%lll(ib)+1
orbind(na,ib) = 4
if(ledgel.le.bd1.and.redgel.gt.bd1) then
lnocros = lnocros+2*lll(ib,nt)+1
lnocros = lnocros+2*upf(nt)%lll(ib)+1
orbind(na,ib) = 5
endif
elseif(ledgel.le.bd1.and.redgel.gt.bd1) then
lnocros = lnocros+2*lll(ib,nt)+1
lnocros = lnocros+2*upf(nt)%lll(ib)+1
orbind(na,ib) = 6
endif
@ -122,8 +122,8 @@ subroutine init_orbitals (zlen, bd1, bd2, z, nrz, rsph, lsr)
do na = 1, nat
nt = ityp(na)
ih = 0
do ib = 1, nbeta(nt)
do m = 1,2*lll(ib,nt) + 1
do ib = 1, upf(nt)%nbeta
do m = 1,2*upf(nt)%lll(ib) + 1
ih = ih+1
if(orbind(na,ib).eq.0) then
ioins = ioins+1
@ -131,7 +131,7 @@ subroutine init_orbitals (zlen, bd1, bd2, z, nrz, rsph, lsr)
natih(2,ioins)=ih
tblm(1,ioins) = nt
tblm(2,ioins) = ib
tblm(3,ioins) = lll(ib,nt)
tblm(3,ioins) = upf(nt)%lll(ib)
tblm(4,ioins) = m
do ipol = 1, 3
taunew(ipol,ioins)=tau(ipol,na)
@ -144,7 +144,7 @@ subroutine init_orbitals (zlen, bd1, bd2, z, nrz, rsph, lsr)
natih(2,ilocros)=ih
tblm(1,ilocros) = nt
tblm(2,ilocros) = ib
tblm(3,ilocros) = lll(ib,nt)
tblm(3,ilocros) = upf(nt)%lll(ib)
tblm(4,ilocros) = m
do ipol = 1, 3
taunew(ipol,ilocros)=tau(ipol,na)
@ -157,7 +157,7 @@ subroutine init_orbitals (zlen, bd1, bd2, z, nrz, rsph, lsr)
natih(2,irocros)=ih
tblm(1,irocros) = nt
tblm(2,irocros) = ib
tblm(3,irocros) = lll(ib,nt)
tblm(3,irocros) = upf(nt)%lll(ib)
tblm(4,irocros) = m
do ipol = 1, 2
taunew(ipol,irocros)=tau(ipol,na)
@ -171,7 +171,7 @@ subroutine init_orbitals (zlen, bd1, bd2, z, nrz, rsph, lsr)
natih(2,irocros)=ih
tblm(1,irocros) = nt
tblm(2,irocros) = ib
tblm(3,irocros) = lll(ib,nt)
tblm(3,irocros) = upf(nt)%lll(ib)
tblm(4,irocros) = m
do ipol = 1, 3
taunew(ipol,irocros)=tau(ipol,na)
@ -184,7 +184,7 @@ subroutine init_orbitals (zlen, bd1, bd2, z, nrz, rsph, lsr)
natih(2,ilocros)=ih
tblm(1,ilocros) = nt
tblm(2,ilocros) = ib
tblm(3,ilocros) = lll(ib,nt)
tblm(3,ilocros) = upf(nt)%lll(ib)
tblm(4,ilocros) = m
do ipol = 1, 2
taunew(ipol,ilocros)=tau(ipol,na)
@ -271,7 +271,7 @@ subroutine init_orbitals (zlen, bd1, bd2, z, nrz, rsph, lsr)
do iorb = orbin, orbfin
nt = tblm(1,iorb)
ib = tblm(2,iorb)
if(tvanp(nt).or.lspinorb) then
if(upf(nt)%tvanp.or.lspinorb) then
na = natih(1,iorb)
ih = natih(2,iorb)
do iorb1 = orbin, orbfin

View File

@ -33,7 +33,7 @@ subroutine read_pseudoupf
!
! Local variables
!
integer :: nb, ios
integer :: nb, mb, ijv, ios
TYPE (pseudo_upf) :: upf
!
!
@ -113,8 +113,12 @@ subroutine read_pseudoupf
!
if (pseudotype.eq.3) then
qq(1:nbeta,1:nbeta) = upf%qqq(1:upf%nbeta,1:upf%nbeta)
qvan (1:grid%mesh, 1:nbeta, 1:nbeta) = &
upf%qfunc(1:upf%mesh,1:upf%nbeta,1:upf%nbeta)
do nb = 1, upf%nbeta
do mb = nb, upf%nbeta
ijv = mb * (mb-1) / 2 + nb
qvan (1:grid%mesh, nb, mb) = upf%qfunc(1:upf%mesh, ijv)
end do
end do
else
qq=0.0_dp
qvan=0.0_dp

View File

@ -75,7 +75,7 @@ Hardware/Compiler:
__SX6 Nec sx-6 vector machines (Nec compiler)
__PGI Portland Group compiler (workarounds for compiler bugs)
__INTEL Intel ifc and ifort compilers (workaround for compiler
bugs, in iotk/include/iotk_config.h only)
bugs and for insufficient stack size)
__XD1 Specialized code for Cray XD1
OS:
Parallel execution:

View File

@ -1,3 +1,4 @@
ev.o : ../Modules/constants.o
ev.o : ../Modules/kind.o
ev.o : ../Modules/random_numbers.o
metadyn_pp.o : ../Modules/constants.o

View File

@ -1,4 +1,8 @@
Automatic tests for pw.x - edit and run "check-pw.x.j"
Tests are intended to verify that a specified feature works.
They are NOT intended to be realistic calculations!
Do not use tests as samples for realistic calculations
Use the examples in the examples/ subdirectory instead.
name system what is tested
@ -51,9 +55,10 @@ vc-relax As Variable-cell optimization at zero pressure
neb H NEB calculation for the H2+H proton exchange
Automatic, manual, no choice of the climbing image
Old RRKJ format
metadyn Si+H Metadynamics
Tests are still missing for:
forces with core corrections
old PP formats: van, nc
dft: blyp, pw91, lda+U, metaGGA
calculation: bands, vc-md, metadynamics
calculation: bands, vc-md

View File

@ -6,7 +6,7 @@ fhi2upf.o : write_upf.o
fpmd2upf.o : ../Modules/kind.o
fpmd2upf.o : ../Modules/parameters.o
fpmd2upf.o : ../Modules/parser.o
fpmd2upf.o : ../Modules/pseudo_types.o
fpmd2upf.o : ../Modules/radial_grids.o
fpmd2upf.o : write_upf.o
ncpp2upf.o : ../Modules/functionals.o
ncpp2upf.o : write_upf.o