GIPAW updated to comply with the new radial_grids module. (D.C.)

git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4185 c92efa57-630b-4861-b058-cf58834340f0
This commit is contained in:
ceresoli 2007-08-28 13:07:34 +00:00
parent b3d5bb38c5
commit cb84f0dc10
6 changed files with 49 additions and 59 deletions

View File

@ -28,19 +28,20 @@ write_tensor_field.o \
efg.o
MODULES = \
../Modules/atom.o \
../Modules/autopilot.o \
../Modules/basic_algebra_routines.o \
../Modules/bfgs_module.o \
../Modules/berry_phase.o \
../Modules/bfgs_module.o \
../Modules/cell_base.o \
../Modules/check_stop.o \
../Modules/clocks.o \
../Modules/constants.o \
../Modules/constraints_module.o \
../Modules/control_flags.o \
../Modules/descriptors.o \
../Modules/dspev_drv.o \
../Modules/electrons_base.o \
../Modules/fft_base.o \
../Modules/fft_scalar.o \
@ -52,34 +53,34 @@ MODULES = \
../Modules/ions_base.o \
../Modules/ions_nose.o \
../Modules/kind.o \
../Modules/metadyn_base.o \
../Modules/metadyn_io.o \
../Modules/metadyn_vars.o \
../Modules/metagga.o \
../Modules/mp_global.o \
../Modules/mp_wave.o \
../Modules/mp.o \
../Modules/parallel_include.o \
../Modules/parameters.o \
../Modules/parser.o \
../Modules/metagga.o \
../Modules/metadyn_base.o \
../Modules/metadyn_io.o \
../Modules/metadyn_vars.o \
../Modules/path_base.o \
../Modules/path_formats.o \
../Modules/path_variables.o \
../Modules/path_opt_routines.o \
../Modules/path_io_routines.o \
../Modules/path_reparametrisation.o \
../Modules/parallel_include.o \
../Modules/parameters.o \
../Modules/parser.o \
../Modules/printout_base.o \
../Modules/pseudo_types.o \
../Modules/ptoolkit.o \
../Modules/random_numbers.o \
../Modules/read_cards.o \
../Modules/read_namelists.o \
../Modules/read_uspp.o \
../Modules/read_upf.o \
../Modules/read_uspp.o \
../Modules/recvec.o \
../Modules/shmem_include.o \
../Modules/splinelib.o \
../Modules/stick_base.o \
../Modules/shmem_include.o \
../Modules/task_groups.o \
../Modules/timestep.o \
../Modules/upf_to_internal.o \
@ -87,7 +88,9 @@ MODULES = \
../Modules/version.o \
../Modules/wavefunctions.o \
../Modules/wave_base.o \
../Modules/xml_io_base.o
../Modules/xml_io_base.o \
../Modules/zhpev_drv.o
PWOBJS = ../PW/libpw.a

View File

@ -475,7 +475,7 @@ subroutine efg_correction ( efg_corr_tens )
USE kinds, ONLY : dp
USE uspp, ONLY : ap
USE parameters, ONLY : lmaxx, ntypx
USE atom, ONLY : r,rab,msh
USE atom, ONLY : rgrid
USE gvect, ONLY : g,ngm,ecutwfc
USE klist, ONLY : nks, xk, wk
USE cell_base, ONLY : tpiba2
@ -548,9 +548,9 @@ subroutine efg_correction ( efg_corr_tens )
* paw_recon(nt)%aephi(il2)%psi(j) &
- paw_recon(nt)%psphi(il1)%psi(j) &
* paw_recon(nt)%psphi(il2)%psi(j) ) &
/ r(j,nt) ** 3
/ rgrid(nt)%r(j) ** 3
end do
call simpson(nrc,work,rab(:,nt),at_efg(il1,il2,nt))
call simpson(nrc,work,rgrid(nt)%rab,at_efg(il1,il2,nt))
!!!print*, nt, il1, il2, at_efg(il1,il2,nt)
end do
end do
@ -673,7 +673,7 @@ subroutine fermi_contact_reconstruction ( fc_recon, fc_recon_zora )
USE kinds, ONLY : dp
USE uspp, ONLY : ap
USE parameters, ONLY : lmaxx, ntypx
USE atom, ONLY : r,rab,msh
USE atom, ONLY : rgrid
USE gvect, ONLY : g,ngm,ecutwfc, gg
USE klist, ONLY : nks, xk, wk
USE cell_base, ONLY : tpiba2
@ -742,7 +742,7 @@ subroutine fermi_contact_reconstruction ( fc_recon, fc_recon_zora )
kkpsi = paw_recon(nt)%aephi(1)%kkpsi
allocate ( work(kkpsi) )
IF ( ABS ( r(1,nt) ) < 1e-8 ) THEN
IF ( ABS ( rgrid(nt)%r(1) ) < 1e-8 ) THEN
r_first = 2
ELSE
r_first = 1
@ -766,14 +766,14 @@ subroutine fermi_contact_reconstruction ( fc_recon, fc_recon_zora )
* paw_recon(nt)%aephi(il2)%psi(j) &
- paw_recon(nt)%psphi(il1)%psi(j) &
* paw_recon(nt)%psphi(il2)%psi(j) ) &
/ r(j,nt) ** 2 / fpi
/ rgrid(nt)%r(j) ** 2 / fpi
end do
at_efg(il1,il2,nt) = work(2)
IF ( iverbosity > 100 ) THEN
do j = r_first, nrc
write(1010+nt,*) r(j,nt), work(j) !* fpi
write(1010+nt,*) rgrid(nt)%r(j), work(j) !* fpi
end do
write(1010+nt,*) ""
END IF
@ -788,10 +788,10 @@ subroutine fermi_contact_reconstruction ( fc_recon, fc_recon_zora )
* paw_recon(nt)%aephi(il2)%psi(r_first) &
- paw_recon(nt)%psphi(il1)%psi(r_first) &
* paw_recon(nt)%psphi(il2)%psi(r_first) ) &
/ r(r_first,nt) ** 2 / fpi &
* 2 / ( fpi * r(j,nt) ** 2 * r_Thomson &
* ( 1 + 2 * r(j,nt) / r_Thomson ) ** 2 ) &
* r(j,nt) ** 2
/ rgrid(nt)%r(r_first) ** 2 / fpi &
* 2 / ( fpi * rgrid(nt)%r(j) ** 2 * r_Thomson &
* ( 1 + 2 * rgrid(nt)%r(j) / r_Thomson ) ** 2 ) &
* rgrid(nt)%r(j) ** 2
end do
! ! Dirac delta function
@ -821,12 +821,12 @@ subroutine fermi_contact_reconstruction ( fc_recon, fc_recon_zora )
IF ( iverbosity > 100 ) THEN
do j = r_first, nrc
write(1000+nt,*) r(j,nt), work(j) !* fpi
write(1000+nt,*) rgrid(nt)%r(j), work(j) !* fpi
end do
write(1000+nt,*) ""
END IF
CALL simpson(nrc,work,rab(:,nt),at_efg_zora(il1,il2,nt))
CALL simpson(nrc,work,rgrid(nt)%rab(:nrc),at_efg_zora(il1,il2,nt))
IF ( iverbosity > 100 ) THEN
write(6,'(A,2i6,2F10.5)') "DDD: ", &
@ -925,7 +925,7 @@ end subroutine fermi_contact_reconstruction
subroutine delta_Thomson_radial_ft ( delta_t )
USE kinds, ONLY : dp
USE atom, ONLY : r,rab,msh
USE atom, ONLY : rgrid
USE gvect, ONLY : ngm, gg
USE ions_base, ONLY : ntyp => nsp, atm
USE constants, ONLY : pi, fpi
@ -949,7 +949,7 @@ subroutine delta_Thomson_radial_ft ( delta_t )
do nt = 1, ntyp
allocate ( work(msh(nt)), f_radial(msh(nt)) )
allocate ( work(rgrid(nt)%mesh), f_radial(rgrid(nt)%mesh) )
! Thomson's delta function
@ -957,17 +957,17 @@ subroutine delta_Thomson_radial_ft ( delta_t )
! Terms r(j,nt) ** 2 from the definition of delta_Thomson
! and the radial volume element r^2 in integral cancel each other
DO j = 1, msh(nt)
DO j = 1, rgrid(nt)%mesh
f_radial(j) = 2 / ( fpi * r_Thomson &
* ( 1 + 2 * r(j,nt) / r_Thomson ) ** 2 )
* ( 1 + 2 * rgrid(nt)%r(j) / r_Thomson ) ** 2 )
END DO
DO gv = 1, ngm
! Thomson delta function
work = 0.0_dp
do j = 1, msh(nt)
gr = SQRT(gg(gv)) * tpiba * r(j,nt)
do j = 1, rgrid(nt)%mesh
gr = SQRT(gg(gv)) * tpiba * rgrid(nt)%r(j)
IF ( gr < 1.0e-8 ) THEN
work(j) = f_radial(j) * fpi
ELSE
@ -975,7 +975,7 @@ subroutine delta_Thomson_radial_ft ( delta_t )
END IF
end do
CALL simpson(msh(nt),work,rab(:,nt),delta_t(gv,nt))
CALL simpson(rgrid(nt)%mesh,work,rgrid(nt)%rab,delta_t(gv,nt))
IF ( iverbosity > 100 ) THEN
write(1020+nt,*) SQRT(gg(gv))*tpiba, delta_t(gv,nt)

View File

@ -611,7 +611,6 @@ CONTAINS
!====================================================================
SUBROUTINE relativistic_mass_correction ( rmc_gipaw )
USE atom, ONLY : r, rab
USE ions_base, ONLY : nat, ityp, ntyp => nsp
USE gipaw_module, ONLY : radial_integral_rmc
@ -674,7 +673,6 @@ CONTAINS
!====================================================================
SUBROUTINE diamagnetic_correction ( diamagnetic_tensor )
USE atom, ONLY : r, rab
USE ions_base, ONLY : nat, ityp, ntyp => nsp
USE gipaw_module, ONLY : radial_integral_diamagnetic_so

View File

@ -323,7 +323,7 @@ CONTAINS
! paw_becp, paw_nkb
USE paw, ONLY : paw_recon, paw_nkb, paw_vkb, paw_becp, &
read_recon, read_recon_paratec
USE atom, ONLY : r, rab
USE atom, ONLY : rgrid
!</apsi>
@ -429,10 +429,10 @@ CONTAINS
!
do j = 1, nrc
work(j) = (paw_recon(nt)%aephi(il1)%psi(j)*paw_recon(nt)%aephi(il2)%psi(j)-&
paw_recon(nt)%psphi(il1)%psi(j)*paw_recon(nt)%psphi(il2)%psi(j))/r(j,nt)
paw_recon(nt)%psphi(il1)%psi(j)*paw_recon(nt)%psphi(il2)%psi(j))/rgrid(nt)%r(j)
enddo
CALL simpson( nrc, work, rab(:nrc,nt), &
CALL simpson( nrc, work, rgrid(nt)%rab(:nrc), &
radial_integral_diamagnetic(il1,il2,nt) )
!
@ -445,10 +445,10 @@ CONTAINS
work(j) = &
( paw_recon(nt)%aephi(il1)%psi(j) * paw_recon(nt)%aephi(il2)%psi(j) &
- paw_recon(nt)%psphi(il1)%psi(j) * paw_recon(nt)%psphi(il2)%psi(j) ) &
/ r(j,nt) ** 3
/ rgrid(nt)%r(j) ** 3
end do
call simpson( nrc, work, rab(:,nt), &
call simpson( nrc, work, rgrid(nt)%rab(:nrc), &
radial_integral_paramagnetic(il1,il2,nt) )
if (iverbosity > 10) then
write(stdout,*) "WWW1: ", l2, il1, il2, &
@ -464,9 +464,9 @@ CONTAINS
! g tensor, relativistic mass correction
!
ALLOCATE ( kinetic_aephi ( kkpsi ), kinetic_psphi ( kkpsi ) )
CALL radial_kinetic_energy ( l2, r(:nrc,nt), &
CALL radial_kinetic_energy ( l2, rgrid(nt)%r(:nrc), &
paw_recon(nt)%aephi(il2)%psi(:nrc), kinetic_aephi(:nrc) )
CALL radial_kinetic_energy ( l2, r(:nrc,nt), &
CALL radial_kinetic_energy ( l2, rgrid(nt)%r(:nrc), &
paw_recon(nt)%psphi(il2)%psi(:nrc), kinetic_psphi(:nrc) )
do j = 1, nrc
@ -475,7 +475,7 @@ CONTAINS
end do
DEALLOCATE ( kinetic_aephi, kinetic_psphi )
CALL simpson ( nrc, work, rab(:,nt), &
CALL simpson ( nrc, work, rgrid(nt)%rab(:nrc), &
radial_integral_rmc(il1,il2,nt) )
if (iverbosity > 10) then
write(stdout,*) "WWW2: ", l2, il1, il2, &
@ -484,10 +484,10 @@ CONTAINS
ALLOCATE ( aephi_dvloc_dr ( nrc ), psphi_dvloc_dr ( nrc ) )
CALL radial_derivative ( r(:nrc,nt), &
CALL radial_derivative ( rgrid(nt)%r(:nrc), &
paw_recon(nt)%gipaw_ae_vloc(:nrc), &
aephi_dvloc_dr(:nrc) )
CALL radial_derivative ( r(:nrc,nt), &
CALL radial_derivative ( rgrid(nt)%r(:nrc), &
paw_recon(nt)%gipaw_ps_vloc(:nrc), &
psphi_dvloc_dr ( :nrc ) )
@ -498,10 +498,10 @@ CONTAINS
work(j) = ( paw_recon(nt)%aephi(il1)%psi(j) * aephi_dvloc_dr(j) &
* paw_recon(nt)%aephi(il2)%psi(j) - paw_recon(nt)%psphi(il1)%psi(j) &
* psphi_dvloc_dr(j) * paw_recon(nt)%psphi(il2)%psi(j) ) &
* r(j,nt)
* rgrid(nt)%r(j)
end do
call simpson( nrc, work, rab(:,nt), &
call simpson( nrc, work, rgrid(nt)%rab(:nrc), &
radial_integral_diamagnetic_so(il1,il2,nt) )
if (iverbosity > 10) then
write(stdout,*) "WWW3: ", l2, il1, il2, &
@ -515,18 +515,10 @@ CONTAINS
work(j) = ( paw_recon(nt)%aephi(il1)%psi(j) * aephi_dvloc_dr(j) &
* paw_recon(nt)%aephi(il2)%psi(j) - paw_recon(nt)%psphi(il1)%psi(j) &
* psphi_dvloc_dr(j) * paw_recon(nt)%psphi(il2)%psi(j) ) &
/ r(j,nt)
/ rgrid(nt)%r(j)
end do
if (iverbosity > 10) then
if ( l1 == 0 ) then
do j = 1, nrc
write(90,*) r(j,nt), work(j)*r(j,nt)**2
end do
write(90,*) ""
end if
end if
call simpson( nrc,work,rab(:,nt), &
call simpson( nrc,work,rgrid(nt)%rab(:nrc), &
radial_integral_paramagnetic_so(il1,il2,nt) )
if (iverbosity > 10) then
write(stdout,*) "WWW4: ", l2, il1, il2, &

View File

@ -49,7 +49,6 @@ efg.o : ../PW/buffers.o
efg.o : ../PW/paw.o
efg.o : ../PW/pwcom.o
efg.o : gipaw_module.o
g_tensor_crystal.o : ../Modules/atom.o
g_tensor_crystal.o : ../Modules/cell_base.o
g_tensor_crystal.o : ../Modules/io_files.o
g_tensor_crystal.o : ../Modules/io_global.o
@ -119,7 +118,6 @@ j_para.o : gipaw_module.o
stop_code.o : ../Modules/kind.o
stop_code.o : ../Modules/mp.o
stop_code.o : ../Modules/parallel_include.o
suscept_crystal.o : ../Modules/atom.o
suscept_crystal.o : ../Modules/cell_base.o
suscept_crystal.o : ../Modules/io_files.o
suscept_crystal.o : ../Modules/io_global.o

View File

@ -386,7 +386,6 @@ CONTAINS
!====================================================================
SUBROUTINE diamagnetic_correction ( diamagnetic_tensor )
USE atom, ONLY : r, rab
USE ions_base, ONLY : nat, ityp, ntyp => nsp
USE gipaw_module, ONLY : radial_integral_diamagnetic