Merge branch 'rinner_again' into 'develop'

Rinner again

See merge request QEF/q-e!1091
This commit is contained in:
giannozz 2020-09-10 17:17:44 +00:00
commit db419cfd7a
5 changed files with 12 additions and 11 deletions

View File

@ -5,6 +5,7 @@ Fixed in dev version:
* Bug in Hubbard forces and stress for bands parallelization (when nproc_pool>nbnd) * Bug in Hubbard forces and stress for bands parallelization (when nproc_pool>nbnd)
* Crash in the calculation of Z* with ultrasoft PP when the number of bands * Crash in the calculation of Z* with ultrasoft PP when the number of bands
is larger than the number of occupied bands (thanks to Sasha Fonari) is larger than the number of occupied bands (thanks to Sasha Fonari)
* Crash in matdyn.x when ibrav=0 (thanks to Sasha Fonari)
Incompatible changes in dev version: Incompatible changes in dev version:
* FoX no longer used to read and write pseudopotential files * FoX no longer used to read and write pseudopotential files

View File

@ -330,7 +330,6 @@ SUBROUTINE latgen_lib(ibrav,celldm,a1,a2,a3,omega, ierr, errormsg)
a3(3) =-a1(3) a3(3) =-a1(3)
ELSEIF (ibrav == -13) THEN ELSEIF (ibrav == -13) THEN
errormsg='BEWARE: axis for ibrav=-13 changed, see documentation!' errormsg='BEWARE: axis for ibrav=-13 changed, see documentation!'
!CALL infomsg('latgen','BEWARE: axis for ibrav=-13 changed, see documentation!')
! !
! One face centered monoclinic lattice unique axis b ! One face centered monoclinic lattice unique axis b
! !
@ -368,7 +367,7 @@ SUBROUTINE latgen_lib(ibrav,celldm,a1,a2,a3,omega, ierr, errormsg)
a3(2)=celldm(1)*celldm(3)*(celldm(4)-celldm(5)*celldm(6))/singam a3(2)=celldm(1)*celldm(3)*(celldm(4)-celldm(5)*celldm(6))/singam
a3(3)=celldm(1)*celldm(3)*term a3(3)=celldm(1)*celldm(3)*term
! !
ELSE ELSE IF (ibrav /= 0) THEN
! !
errormsg='nonexistent bravais lattice' errormsg='nonexistent bravais lattice'
ierr=ABS(ibrav) ierr=ABS(ibrav)

View File

@ -480,11 +480,10 @@ SUBROUTINE upf_bcast(upf, ionode, ionode_id, comm)
ELSE ELSE
ALLOCATE( upf%qfunc (upf%mesh, upf%nbeta*(upf%nbeta+1)/2) ) ALLOCATE( upf%qfunc (upf%mesh, upf%nbeta*(upf%nbeta+1)/2) )
ENDIF ENDIF
ALLOCATE( upf%rinner( upf%nqlc ) )
IF(upf%nqf <= 0) THEN IF(upf%nqf <= 0) THEN
ALLOCATE( upf%rinner(1) )
ALLOCATE( upf%qfcoef(1,1,1,1) ) ALLOCATE( upf%qfcoef(1,1,1,1) )
ELSE ELSE
ALLOCATE( upf%rinner( upf%nqlc ) )
ALLOCATE( upf%qfcoef( upf%nqf, upf%nqlc, & ALLOCATE( upf%qfcoef( upf%nqf, upf%nqlc, &
upf%nbeta, upf%nbeta ) ) upf%nbeta, upf%nbeta ) )
END IF END IF

View File

@ -21,9 +21,10 @@ PROGRAM ibrav2cell
! !
NAMELIST /system/ ibrav, celldm, angle NAMELIST /system/ ibrav, celldm, angle
WRITE(*,*) "This code reads a &system/ namelist from standard input" WRITE(*,*) "This code reads a &system/ namelist from standard input"
WRITE(*,*) "containing ibrav and celldm(1..6) as in INPUT_PW." WRITE(*,*) "containing only ibrav and celldm(1..6) as in INPUT_PW,"
WRITE(*,*) "If you specify three angles as angle(1..3) in degrees, the cell" WRITE(*,*) "and optionally, three angles as angle(1..3) (in degrees)."
WRITE(*,*) "will be rotated accordingly around the three cartesian axis" WRITE(*,*) "If you specify the three angles, the cell will be rotated "
WRITE(*,*) "accordingly around the three cartesian axis"
READ(*,system) READ(*,system)
CALL latgen( ibrav, celldm, at(:,1), at(:,2), at(:,3), omega ) CALL latgen( ibrav, celldm, at(:,1), at(:,2), at(:,3), omega )
! !

View File

@ -399,16 +399,17 @@ CONTAINS
! !
! read polinomial coefficients for Q_ij expansion at small radius ! read polinomial coefficients for Q_ij expansion at small radius
! !
IF ( upf%nqlc == 0 ) upf%nqlc = 2*upf%lmax+1
ALLOCATE( upf%rinner( upf%nqlc ) )
IF ( v2 .AND. upf%nqf > 0) THEN IF ( v2 .AND. upf%nqf > 0) THEN
ALLOCATE ( upf%qfcoef(upf%nqf, upf%nqlc, upf%nbeta, upf%nbeta) ) ALLOCATE ( upf%qfcoef(upf%nqf, upf%nqlc, upf%nbeta, upf%nbeta) )
CALL xmlr_opentag('PP_QFCOEF') CALL xmlr_opentag('PP_QFCOEF')
READ(iun,*) upf%qfcoef READ(iun,*) upf%qfcoef
CALL xmlr_closetag ()
ALLOCATE( upf%rinner( upf%nqlc ) )
CALL xmlr_readtag('PP_RINNER',upf%rinner) CALL xmlr_readtag('PP_RINNER',upf%rinner)
CALL xmlr_closetag ()
ELSE IF ( upf%nqf == 0 ) THEN ELSE IF ( upf%nqf == 0 ) THEN
ALLOCATE( upf%rinner(1), upf%qfcoef(1,1,1,1) ) ALLOCATE( upf%qfcoef(1,1,1,1) )
upf%rinner = 0.0_dp; upf%qfcoef =0.0_dp upf%qfcoef =0.0_dp
ENDIF ENDIF
! !
! Read augmentation charge Q_ij ! Read augmentation charge Q_ij