Hello community, here is the log from the commit of package quantum-espresso for openSUSE:Factory checked in at 2019-11-30 10:35:44 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/quantum-espresso (Old) and /work/SRC/openSUSE:Factory/.quantum-espresso.new.26869 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "quantum-espresso" Sat Nov 30 10:35:44 2019 rev:6 rq:746231 version:6.4.1 Changes: -------- --- /work/SRC/openSUSE:Factory/quantum-espresso/quantum-espresso.changes 2019-11-06 14:05:58.304777602 +0100 +++ /work/SRC/openSUSE:Factory/.quantum-espresso.new.26869/quantum-espresso.changes 2019-11-30 10:36:18.316179945 +0100 @@ -1,0 +2,55 @@ +Thu Nov 7 00:52:39 UTC 2019 - Atri Bhattacharya <badshah400@gmail.com> + +- Add backports-6.4.1.git-diff: Backported fixes for version + 6.4.1 from upstream: + * Bug in spin-polarized meta-GGA + * Unphysical fractional translations (tau/n with n/=2,3,4,6) + were not explicitly discarded, thus leading in unfortunate + cases to strange values for FFT factors and grids. Also: if + "nosym" is true, inversion symmetry flag (invsym) and info on + FFT factors (fft_fact) must also be reset + * PPACF wasn't working any longer in v.6.4 and 6.4.1 for nspin=2 + and for hybrid functionals + * option "write_unkg" of pw2wannier90.f90 wasn't working as + expected + * Input parameters (for restarting DFPT+U calculations) + read_dns_bare and d2ns_type were missing in the PH input + namelist, and moreover they were not broadcasted. + +------------------------------------------------------------------- +Thu Nov 7 00:48:21 UTC 2019 - Atri Bhattacharya <badshah400@gmail.com> + +- Update to version 6.4.1: + * A warning is issued if the lattice parameter seems to be a + conversion factor instead of a true lattice parameter. + * A warning is issued if ibrav=0 is used for systems having + symmetry. + * [HP] the code was not working correctly when fractional + translations were present + * [HP] there was a bug in the case when either there is only one + k point, or when k pools are used and some of the pools have + only one k point. + * Restart of ph.x with 2D boundary conditions has been fixed + (see gitlab issue #102 (closed)) + * XML file correctly written if tetrahedra are used (see gitlab + issue #103 (closed)) +- Major changes since last packaged version including backward + incomaptible changes: See + * https://gitlab.com/QEF/q-e/-/tags/qe-6.0.0 + * https://gitlab.com/QEF/q-e/-/tags/qe-6.1.0 + * https://gitlab.com/QEF/q-e/-/tags/qe-6.2.0 + * https://gitlab.com/QEF/q-e/wikis/Releases/Quantum-Espresso-6.3-Release-Notes + * https://gitlab.com/QEF/q-e/wikis/Releases/Quantum-Espresso-6.4-Release-Notes +- Drop patches no longer compatible or needed with updated + version: + * quantum_espresso_do_not_set_xlf_for_powerpc.patch + * quantum_espresso_add_ppc64le_archi_to_configure.patch + * espresso-implicit-pointer-decl.patch + +------------------------------------------------------------------- +Thu Nov 7 00:06:36 UTC 2019 - Atri Bhattacharya <badshah400@gmail.com> + +- Fix unresolvable status for openSUSE < 1550 where openmpi1 is + still called openmpi. + +------------------------------------------------------------------- Old: ---- PHonon-5.1.2.tar.gz atomic-5.1.2.tar.gz espresso-5.1.2.tar.gz espresso-implicit-pointer-decl.patch neb-5.1.2.tar.gz pwcond-5.1.2.tar.gz quantum_espresso_add_ppc64le_archi_to_configure.patch quantum_espresso_do_not_set_xlf_for_powerpc.patch tddfpt-5.1.2.tar.gz xspectra-5.1.2.tar.gz New: ---- backports-6.4.1.git-diff q-e-qe-6.4.1.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ quantum-espresso.spec ++++++ --- /var/tmp/diff_new_pack.ENR0zU/_old 2019-11-30 10:36:20.332179703 +0100 +++ /var/tmp/diff_new_pack.ENR0zU/_new 2019-11-30 10:36:20.332179703 +0100 @@ -23,28 +23,24 @@ %define _openmpi 1 %endif +%if 0%{?suse_version} >= 1550 %define omp_ver 1 +%else +%define omp_ver %{nil} +%endif %define _mpi %{?_openmpi:openmpi}%{omp_ver} %{?_mvapich2:mvapich2} Name: quantum-espresso -Version: 5.1.2 +Version: 6.4.1 Release: 0 Summary: A suite for electronic-structure calculations and materials modeling License: GPL-2.0-only Group: Productivity/Scientific/Physics Url: http://www.quantum-espresso.org -Source0: http://qe-forge.org/gf/download/frsrelease/185/753/espresso-%{version}.tar.gz -Source1: http://qe-forge.org/gf/download/frsrelease/185/760/neb-%{version}.tar.gz -Source2: http://qe-forge.org/gf/download/frsrelease/185/755/PHonon-%{version}.tar.gz -Source3: http://qe-forge.org/gf/download/frsrelease/185/756/pwcond-%{version}.tar.gz -Source4: http://qe-forge.org/gf/download/frsrelease/185/752/atomic-%{version}.tar.gz -Source5: http://qe-forge.org/gf/download/frsrelease/185/758/tddfpt-%{version}.tar.gz -Source6: http://qe-forge.org/gf/download/frsrelease/185/757/xspectra-%{version}.tar.gz -# PATCH-FIX-UPSTREAM espresso-implicit-pointer-decl.patch -Patch0: espresso-implicit-pointer-decl.patch -Patch1: quantum_espresso_add_ppc64le_archi_to_configure.patch -Patch2: quantum_espresso_do_not_set_xlf_for_powerpc.patch +Source0: https://gitlab.com/QEF/q-e/-/archive/qe-%{version}/q-e-qe-%{version}.tar.bz2 +# PATCH-FIX-UPSTREAM backports-6.4.1.git-diff badshah400@gmail.com -- Backported fixes for version 6.4.1 from upstream +Patch0: https://gitlab.com/QEF/q-e/wikis/uploads/3e4b6d3844989c02d0ebb03a935e1976/ba... BuildRequires: fdupes BuildRequires: fftw3-devel BuildRequires: gcc-fortran @@ -56,7 +52,7 @@ BuildRequires: mvapich2-devel %endif BuildRoot: %{_tmppath}/%{name}-%{version}-build -ExcludeArch: ppc +ExclusiveArch: x86_64 %description Quantum ESPRESSO is an integrated suite of Open-Source computer codes for @@ -99,13 +95,7 @@ %endif %prep -%setup -q -n espresso-%{version} -%setup -q -n espresso-%{version} -a1 -a2 -a3 -a5 -a4 -a6 -%patch0 -p1 -%ifarch ppc64 ppc64le -%patch1 -p1 -%patch2 -p1 -%endif +%autosetup -p1 -n q-e-qe-%{version} echo "prepare parallel builds: %_mpi" set -- * @@ -152,18 +142,21 @@ %files %defattr(-,root,root) -%doc License README +%doc README.md +%license License %{_bindir}/*.x %files openmpi %defattr(-,root,root) -%doc License README +%doc README.md +%license License %{_libdir}/mpi/gcc/openmpi%{omp_ver}/bin/*.x %if 0%{?sles_version} %files mvapich2 %defattr(-,root,root) -%doc License README +%doc README.md +%license License %{_libdir}/mpi/gcc/mvapich2/bin/*.x %endif ++++++ backports-6.4.1.git-diff ++++++ diff --git a/FFTXlib/fft_types.f90 b/FFTXlib/fft_types.f90 index c0d56bf4e..8d66c2e8a 100644 --- a/FFTXlib/fft_types.f90 +++ b/FFTXlib/fft_types.f90 @@ -853,6 +853,7 @@ CONTAINS SUBROUTINE realspace_grid_init( dfft, at, bg, gcutm, fft_fact ) ! ! ... Sets optimal values for dfft%nr[123] and dfft%nr[123]x + ! ... If input dfft%nr[123] are non-zero, leaves them unchanged ! ... If fft_fact is present, force nr[123] to be multiple of fft_fac([123]) ! USE fft_support, only: good_fft_dimension, good_fft_order @@ -876,28 +877,29 @@ CONTAINS dfft%nr2 = int ( sqrt (gcutm) * sqrt (at(1, 2)**2 + at(2, 2)**2 + at(3, 2)**2) ) + 1 dfft%nr3 = int ( sqrt (gcutm) * sqrt (at(1, 3)**2 + at(2, 3)**2 + at(3, 3)**2) ) + 1 - !write (6,*) sqrt(gcutm)*sqrt(at(1,1)**2 + at(2,1)**2 + at(3,1)**2) , dfft%nr1 - !write (6,*) sqrt(gcutm)*sqrt(at(1,2)**2 + at(2,2)**2 + at(3,2)**2) , dfft%nr2 - !write (6,*) sqrt(gcutm)*sqrt(at(1,3)**2 + at(2,3)**2 + at(3,3)**2) , dfft%nr3 +#if defined (__DEBUG) + write (6,*) sqrt(gcutm)*sqrt(at(1,1)**2 + at(2,1)**2 + at(3,1)**2) , dfft%nr1 + write (6,*) sqrt(gcutm)*sqrt(at(1,2)**2 + at(2,2)**2 + at(3,2)**2) , dfft%nr2 + write (6,*) sqrt(gcutm)*sqrt(at(1,3)**2 + at(2,3)**2 + at(3,3)**2) , dfft%nr3 +#endif ! CALL grid_set( dfft, bg, gcutm, dfft%nr1, dfft%nr2, dfft%nr3 ) ! + IF ( PRESENT(fft_fact) ) THEN + dfft%nr1 = good_fft_order( dfft%nr1, fft_fact(1) ) + dfft%nr2 = good_fft_order( dfft%nr2, fft_fact(2) ) + dfft%nr3 = good_fft_order( dfft%nr3, fft_fact(3) ) + ELSE + dfft%nr1 = good_fft_order( dfft%nr1 ) + dfft%nr2 = good_fft_order( dfft%nr2 ) + dfft%nr3 = good_fft_order( dfft%nr3 ) + ENDIF #if defined (__DEBUG) ELSE WRITE( stdout, '( /, 3X,"Info: using nr1, nr2, nr3 values from input" )' ) #endif END IF - - IF (PRESENT(fft_fact)) THEN - dfft%nr1 = good_fft_order( dfft%nr1, fft_fact(1) ) - dfft%nr2 = good_fft_order( dfft%nr2, fft_fact(2) ) - dfft%nr3 = good_fft_order( dfft%nr3, fft_fact(3) ) - ELSE - dfft%nr1 = good_fft_order( dfft%nr1 ) - dfft%nr2 = good_fft_order( dfft%nr2 ) - dfft%nr3 = good_fft_order( dfft%nr3 ) - END IF - + ! dfft%nr1x = good_fft_dimension( dfft%nr1 ) dfft%nr2x = dfft%nr2 dfft%nr3x = good_fft_dimension( dfft%nr3 ) diff --git a/PHonon/PH/bcast_ph_input.f90 b/PHonon/PH/bcast_ph_input.f90 index 6d8078c1b..4b454872a 100644 --- a/PHonon/PH/bcast_ph_input.f90 +++ b/PHonon/PH/bcast_ph_input.f90 @@ -42,6 +42,7 @@ subroutine bcast_ph_input ( ) USE YAMBO, ONLY : elph_yambo,dvscf_yambo ! YAMBO < USE elph_tetra_mod, ONLY : lshift_q + USE ldaU_ph, ONLY : read_dns_bare, d2ns_type implicit none ! @@ -67,6 +68,7 @@ subroutine bcast_ph_input ( ) call mp_bcast (only_wfc, meta_ionode_id, world_comm ) call mp_bcast (only_init, meta_ionode_id, world_comm ) call mp_bcast (search_sym, meta_ionode_id, world_comm) + call mp_bcast (read_dns_bare, meta_ionode_id, world_comm) ! YAMBO > call mp_bcast (elph_yambo, meta_ionode_id, world_comm) call mp_bcast (dvscf_yambo, meta_ionode_id, world_comm) @@ -119,6 +121,7 @@ subroutine bcast_ph_input ( ) call mp_bcast (tmp_dir, meta_ionode_id, world_comm ) call mp_bcast (prefix, meta_ionode_id, world_comm ) call mp_bcast (electron_phonon, meta_ionode_id, world_comm ) + call mp_bcast (d2ns_type, meta_ionode_id, world_comm ) ! ! derived type (one bit at a time) ! diff --git a/PHonon/PH/dynmat_hub_bare.f90 b/PHonon/PH/dynmat_hub_bare.f90 index 0d57abcbc..22b932cb6 100644 --- a/PHonon/PH/dynmat_hub_bare.f90 +++ b/PHonon/PH/dynmat_hub_bare.f90 @@ -82,6 +82,8 @@ SUBROUTINE dynmat_hub_bare ! CALL start_clock ( 'dynmat_hub_bare' ) ! + ios = 0 + ! ldim = 2*Hubbard_lmax + 1 ! ALLOCATE (dyn_hub_bare(3*nat,3*nat)) diff --git a/PHonon/PH/dynmat_hub_scf.f90 b/PHonon/PH/dynmat_hub_scf.f90 index 363327c2b..86c51f37c 100644 --- a/PHonon/PH/dynmat_hub_scf.f90 +++ b/PHonon/PH/dynmat_hub_scf.f90 @@ -118,7 +118,7 @@ SUBROUTINE dynmat_hub_scf (irr, nu_i0, nper) ! interrupted before the call of this routine) ! IF (rec_code_read==10) THEN - WRITE(stdout,*) 'rec_code_read', rec_code_read + !WRITE(stdout,*) 'rec_code_read', rec_code_read CALL dnsq_scf (nper, lmetq0, nu_i0, irr, .true.) ENDIF ! diff --git a/PHonon/PH/phq_readin.f90 b/PHonon/PH/phq_readin.f90 index 57ed4dd3e..088044227 100644 --- a/PHonon/PH/phq_readin.f90 +++ b/PHonon/PH/phq_readin.f90 @@ -119,7 +119,7 @@ SUBROUTINE phq_readin() elph_nbnd_min, elph_nbnd_max, el_ph_ngauss, & el_ph_nsigma, el_ph_sigma, electron_phonon, & q_in_band_form, q2d, qplot, low_directory_check, & - lshift_q + lshift_q, read_dns_bare, d2ns_type ! tr2_ph : convergence threshold ! amass : atomic masses diff --git a/PP/src/ppacf.f90 b/PP/src/ppacf.f90 index c7b5e9ef6..a55d6649f 100644 --- a/PP/src/ppacf.f90 +++ b/PP/src/ppacf.f90 @@ -58,6 +58,7 @@ PROGRAM do_ppacf USE vdW_DF_scale, ONLY : xc_vdW_DF_ncc, xc_vdW_DF_spin_ncc, & get_q0cc_on_grid, get_q0cc_on_grid_spin USE vasp_xml, ONLY : readxmlfile_vasp + USE symm_base, ONLY : fft_fact ! IMPLICIT NONE @@ -217,9 +218,7 @@ PROGRAM do_ppacf IF (code_num == 1) THEN ! tmp_dir=TRIM(outdir) -! CALL read_xml_file_internal(.TRUE.) CALL read_file() - ! Check exchange correlation functional iexch = get_iexch() icorr = get_icorr() @@ -685,6 +684,7 @@ PROGRAM do_ppacf DEALLOCATE ( igk_buf, gk ) ! ! CALL setup() + fft_fact(:)=1 CALL exx_grid_init() CALL exx_mp_init() CALL exx_div_check() diff --git a/PP/src/pw2wannier90.f90 b/PP/src/pw2wannier90.f90 index d9e2c870e..5d977a4f0 100644 --- a/PP/src/pw2wannier90.f90 +++ b/PP/src/pw2wannier90.f90 @@ -1162,7 +1162,7 @@ SUBROUTINE pw2wan_set_symm (nsym, sr, tvec) ! ! Uses nkqs and index_sym from module pw2wan, computes rir ! - USE symm_base, ONLY : s, ftau, allfrac + USE symm_base, ONLY : s, ft, allfrac USE fft_base, ONLY : dffts USE cell_base, ONLY : at, bg USE wannier, ONLY : rir, read_sym @@ -1174,8 +1174,8 @@ SUBROUTINE pw2wan_set_symm (nsym, sr, tvec) INTEGER , intent(in) :: nsym REAL(DP) , intent(in) :: sr(3,3,nsym), tvec(3,nsym) REAL(DP) :: st(3,3), v(3) - INTEGER, allocatable :: s_in(:,:,:), ftau_in(:,:) - !REAL(DP), allocatable:: ftau_in(:,:) + INTEGER, allocatable :: s_in(:,:,:) + REAL(DP), allocatable:: ft_in(:,:) INTEGER :: nxxs, nr1,nr2,nr3, nr1x,nr2x,nr3x INTEGER :: ikq, isym, i,j,k, ri,rj,rk, ir LOGICAL :: ispresent(nsym) @@ -1189,7 +1189,7 @@ SUBROUTINE pw2wan_set_symm (nsym, sr, tvec) nxxs = nr1x*nr2x*nr3x ! ! sr -> s - ALLOCATE(s_in(3,3,nsym), ftau_in(3,nsym)) + ALLOCATE(s_in(3,3,nsym), ft_in(3,nsym)) IF(read_sym ) THEN IF(allfrac) THEN call errore("pw2wan_set_symm", "use_all_frac = .true. + read_sym = .true. not supported", 1) @@ -1199,17 +1199,17 @@ SUBROUTINE pw2wan_set_symm (nsym, sr, tvec) st = transpose( matmul(transpose(bg), transpose(sr(:,:,isym))) ) s_in(:,:,isym) = nint( matmul(transpose(at), st) ) v = matmul(transpose(bg), tvec(:,isym)) - ftau_in(1,isym) = nint(v(1)*nr1) - ftau_in(2,isym) = nint(v(2)*nr2) - ftau_in(3,isym) = nint(v(3)*nr3) + ft_in(1,isym) = v(1) + ft_in(2,isym) = v(2) + ft_in(3,isym) = v(3) END DO - IF( any(s(:,:,1:nsym) /= s_in(:,:,1:nsym)) .or. any(ftau_in(:,1:nsym) /= ftau(:,1:nsym)) ) THEN + IF( any(s(:,:,1:nsym) /= s_in(:,:,1:nsym)) .or. any(ft_in(:,1:nsym) /= ft(:,1:nsym)) ) THEN write(stdout,*) " Input symmetry is different from crystal symmetry" write(stdout,*) END IF ELSE s_in = s(:,:,1:nsym) - ftau_in = ftau(:,1:nsym) + ft_in = ft(:,1:nsym) END IF ! IF(.not. allocated(rir)) ALLOCATE(rir(nxxs,nsym)) @@ -1240,7 +1240,7 @@ SUBROUTINE pw2wan_set_symm (nsym, sr, tvec) ENDDO ENDDO ENDDO - DEALLOCATE(s_in, ftau_in) + DEALLOCATE(s_in, ft_in) END SUBROUTINE pw2wan_set_symm !----------------------------------------------------------------------- @@ -4142,7 +4142,7 @@ SUBROUTINE write_parity ! 0-th Order IF ( (abs(g_abc(1,igv) - 0.d0) <= eps6) .and. & (abs(g_abc(2,igv) - 0.d0) <= eps6) .and. & - (abs(g_abc(3,igv)) - 0.d0 <= eps6) ) THEN ! 1 + (abs(g_abc(3,igv) - 0.d0) <= eps6) ) THEN ! 1 num_G(mpime+1) = num_G(mpime+1) + 1 ig_idx(num_G(mpime+1))=igv CYCLE @@ -4150,21 +4150,21 @@ SUBROUTINE write_parity ! 1st Order IF ( (abs(g_abc(1,igv) - 1.d0) <= eps6) .and. & (abs(g_abc(2,igv) - 0.d0) <= eps6) .and. & - (abs(g_abc(3,igv)) - 0.d0 <= eps6) ) THEN ! x + (abs(g_abc(3,igv) - 0.d0) <= eps6) ) THEN ! x num_G(mpime+1) = num_G(mpime+1) + 1 ig_idx(num_G(mpime+1))=igv CYCLE ENDIF IF ( (abs(g_abc(1,igv) - 0.d0) <= eps6) .and. & (abs(g_abc(2,igv) - 1.d0) <= eps6) .and. & - (abs(g_abc(3,igv)) - 0.d0 <= eps6) ) THEN ! y + (abs(g_abc(3,igv) - 0.d0) <= eps6) ) THEN ! y num_G(mpime+1) = num_G(mpime+1) + 1 ig_idx(num_G(mpime+1))=igv CYCLE ENDIF IF ( (abs(g_abc(1,igv) - 0.d0) <= eps6) .and. & (abs(g_abc(2,igv) - 0.d0) <= eps6) .and. & - (abs(g_abc(3,igv)) - 1.d0 <= eps6) ) THEN ! z + (abs(g_abc(3,igv) - 1.d0) <= eps6) ) THEN ! z num_G(mpime+1) = num_G(mpime+1) + 1 ig_idx(num_G(mpime+1))=igv CYCLE @@ -4172,63 +4172,63 @@ SUBROUTINE write_parity ! 2nd Order IF ( (abs(g_abc(1,igv) - 2.d0) <= eps6) .and. & (abs(g_abc(2,igv) - 0.d0) <= eps6) .and. & - (abs(g_abc(3,igv)) - 0.d0 <= eps6) ) THEN ! x^2 + (abs(g_abc(3,igv) - 0.d0) <= eps6) ) THEN ! x^2 num_G(mpime+1) = num_G(mpime+1) + 1 ig_idx(num_G(mpime+1))=igv CYCLE ENDIF IF ( (abs(g_abc(1,igv) - 1.d0) <= eps6) .and. & (abs(g_abc(2,igv) - 1.d0) <= eps6) .and. & - (abs(g_abc(3,igv)) - 0.d0 <= eps6) ) THEN ! xy + (abs(g_abc(3,igv) - 0.d0) <= eps6) ) THEN ! xy num_G(mpime+1) = num_G(mpime+1) + 1 ig_idx(num_G(mpime+1))=igv CYCLE ENDIF IF ( (abs(g_abc(1,igv) - 1.d0) <= eps6) .and. & (abs(g_abc(2,igv) + 1.d0) <= eps6) .and. & - (abs(g_abc(3,igv)) - 0.d0 <= eps6) ) THEN ! xy + (abs(g_abc(3,igv) - 0.d0) <= eps6) ) THEN ! xy num_G(mpime+1) = num_G(mpime+1) + 1 ig_idx(num_G(mpime+1))=igv CYCLE ENDIF IF ( (abs(g_abc(1,igv) - 1.d0) <= eps6) .and. & (abs(g_abc(2,igv) - 0.d0) <= eps6) .and. & - (abs(g_abc(3,igv)) - 1.d0 <= eps6) ) THEN ! xz + (abs(g_abc(3,igv) - 1.d0) <= eps6) ) THEN ! xz num_G(mpime+1) = num_G(mpime+1) + 1 ig_idx(num_G(mpime+1))=igv CYCLE ENDIF IF ( (abs(g_abc(1,igv) - 1.d0) <= eps6) .and. & (abs(g_abc(2,igv) - 0.d0) <= eps6) .and. & - (abs(g_abc(3,igv)) + 1.d0 <= eps6) ) THEN ! xz + (abs(g_abc(3,igv) + 1.d0) <= eps6) ) THEN ! xz num_G(mpime+1) = num_G(mpime+1) + 1 ig_idx(num_G(mpime+1))=igv CYCLE ENDIF IF ( (abs(g_abc(1,igv) - 0.d0) <= eps6) .and. & (abs(g_abc(2,igv) - 2.d0) <= eps6) .and. & - (abs(g_abc(3,igv)) - 0.d0 <= eps6) ) THEN ! y^2 + (abs(g_abc(3,igv) - 0.d0) <= eps6) ) THEN ! y^2 num_G(mpime+1) = num_G(mpime+1) + 1 ig_idx(num_G(mpime+1))=igv CYCLE ENDIF IF ( (abs(g_abc(1,igv) - 0.d0) <= eps6) .and. & (abs(g_abc(2,igv) - 1.d0) <= eps6) .and. & - (abs(g_abc(3,igv)) - 1.d0 <= eps6) ) THEN ! yz + (abs(g_abc(3,igv) - 1.d0) <= eps6) ) THEN ! yz num_G(mpime+1) = num_G(mpime+1) + 1 ig_idx(num_G(mpime+1))=igv CYCLE ENDIF IF ( (abs(g_abc(1,igv) - 0.d0) <= eps6) .and. & (abs(g_abc(2,igv) - 1.d0) <= eps6) .and. & - (abs(g_abc(3,igv)) + 1.d0 <= eps6) ) THEN ! yz + (abs(g_abc(3,igv) + 1.d0) <= eps6) ) THEN ! yz num_G(mpime+1) = num_G(mpime+1) + 1 ig_idx(num_G(mpime+1))=igv CYCLE ENDIF IF ( (abs(g_abc(1,igv) - 0.d0) <= eps6) .and. & (abs(g_abc(2,igv) - 0.d0) <= eps6) .and. & - (abs(g_abc(3,igv)) - 2.d0 <= eps6) ) THEN ! z^2 + (abs(g_abc(3,igv) - 2.d0) <= eps6) ) THEN ! z^2 num_G(mpime+1) = num_G(mpime+1) + 1 ig_idx(num_G(mpime+1))=igv CYCLE @@ -4236,133 +4236,133 @@ SUBROUTINE write_parity ! 3rd Order IF ( (abs(g_abc(1,igv) - 3.d0) <= eps6) .and. & (abs(g_abc(2,igv) - 0.d0) <= eps6) .and. & - (abs(g_abc(3,igv)) - 0.d0 <= eps6) ) THEN ! x^3 + (abs(g_abc(3,igv) - 0.d0) <= eps6) ) THEN ! x^3 num_G(mpime+1) = num_G(mpime+1) + 1 ig_idx(num_G(mpime+1))=igv CYCLE ENDIF IF ( (abs(g_abc(1,igv) - 2.d0) <= eps6) .and. & (abs(g_abc(2,igv) - 1.d0) <= eps6) .and. & - (abs(g_abc(3,igv)) - 0.d0 <= eps6) ) THEN ! x^2y + (abs(g_abc(3,igv) - 0.d0) <= eps6) ) THEN ! x^2y num_G(mpime+1) = num_G(mpime+1) + 1 ig_idx(num_G(mpime+1))=igv CYCLE ENDIF IF ( (abs(g_abc(1,igv) - 2.d0) <= eps6) .and. & (abs(g_abc(2,igv) + 1.d0) <= eps6) .and. & - (abs(g_abc(3,igv)) - 0.d0 <= eps6) ) THEN ! x^2y + (abs(g_abc(3,igv) - 0.d0) <= eps6) ) THEN ! x^2y num_G(mpime+1) = num_G(mpime+1) + 1 ig_idx(num_G(mpime+1))=igv CYCLE ENDIF IF ( (abs(g_abc(1,igv) - 2.d0) <= eps6) .and. & (abs(g_abc(2,igv) - 0.d0) <= eps6) .and. & - (abs(g_abc(3,igv)) - 1.d0 <= eps6) ) THEN ! x^2z + (abs(g_abc(3,igv) - 1.d0) <= eps6) ) THEN ! x^2z num_G(mpime+1) = num_G(mpime+1) + 1 ig_idx(num_G(mpime+1))=igv CYCLE ENDIF IF ( (abs(g_abc(1,igv) - 2.d0) <= eps6) .and. & (abs(g_abc(2,igv) - 0.d0) <= eps6) .and. & - (abs(g_abc(3,igv)) + 1.d0 <= eps6) ) THEN ! x^2z + (abs(g_abc(3,igv) + 1.d0) <= eps6) ) THEN ! x^2z num_G(mpime+1) = num_G(mpime+1) + 1 ig_idx(num_G(mpime+1))=igv CYCLE ENDIF IF ( (abs(g_abc(1,igv) - 1.d0) <= eps6) .and. & (abs(g_abc(2,igv) - 2.d0) <= eps6) .and. & - (abs(g_abc(3,igv)) - 0.d0 <= eps6) ) THEN ! xy^2 + (abs(g_abc(3,igv) - 0.d0) <= eps6) ) THEN ! xy^2 num_G(mpime+1) = num_G(mpime+1) + 1 ig_idx(num_G(mpime+1))=igv CYCLE ENDIF IF ( (abs(g_abc(1,igv) - 1.d0) <= eps6) .and. & (abs(g_abc(2,igv) + 2.d0) <= eps6) .and. & - (abs(g_abc(3,igv)) - 0.d0 <= eps6) ) THEN ! xy^2 + (abs(g_abc(3,igv) - 0.d0) <= eps6) ) THEN ! xy^2 num_G(mpime+1) = num_G(mpime+1) + 1 ig_idx(num_G(mpime+1))=igv CYCLE ENDIF IF ( (abs(g_abc(1,igv) - 1.d0) <= eps6) .and. & (abs(g_abc(2,igv) - 1.d0) <= eps6) .and. & - (abs(g_abc(3,igv)) - 1.d0 <= eps6) ) THEN ! xyz + (abs(g_abc(3,igv) - 1.d0) <= eps6) ) THEN ! xyz num_G(mpime+1) = num_G(mpime+1) + 1 ig_idx(num_G(mpime+1))=igv CYCLE ENDIF IF ( (abs(g_abc(1,igv) - 1.d0) <= eps6) .and. & (abs(g_abc(2,igv) - 1.d0) <= eps6) .and. & - (abs(g_abc(3,igv)) + 1.d0 <= eps6) ) THEN ! xyz + (abs(g_abc(3,igv) + 1.d0) <= eps6) ) THEN ! xyz num_G(mpime+1) = num_G(mpime+1) + 1 ig_idx(num_G(mpime+1))=igv CYCLE ENDIF IF ( (abs(g_abc(1,igv) - 1.d0) <= eps6) .and. & (abs(g_abc(2,igv) + 1.d0) <= eps6) .and. & - (abs(g_abc(3,igv)) - 1.d0 <= eps6) ) THEN ! xyz + (abs(g_abc(3,igv) - 1.d0) <= eps6) ) THEN ! xyz num_G(mpime+1) = num_G(mpime+1) + 1 ig_idx(num_G(mpime+1))=igv CYCLE ENDIF IF ( (abs(g_abc(1,igv) - 1.d0) <= eps6) .and. & (abs(g_abc(2,igv) + 1.d0) <= eps6) .and. & - (abs(g_abc(3,igv)) + 1.d0 <= eps6) ) THEN ! xyz + (abs(g_abc(3,igv) + 1.d0) <= eps6) ) THEN ! xyz num_G(mpime+1) = num_G(mpime+1) + 1 ig_idx(num_G(mpime+1))=igv CYCLE ENDIF IF ( (abs(g_abc(1,igv) - 1.d0) <= eps6) .and. & (abs(g_abc(2,igv) - 0.d0) <= eps6) .and. & - (abs(g_abc(3,igv)) - 2.d0 <= eps6) ) THEN ! xz^2 + (abs(g_abc(3,igv) - 2.d0) <= eps6) ) THEN ! xz^2 num_G(mpime+1) = num_G(mpime+1) + 1 ig_idx(num_G(mpime+1))=igv CYCLE ENDIF IF ( (abs(g_abc(1,igv) - 1.d0) <= eps6) .and. & (abs(g_abc(2,igv) - 0.d0) <= eps6) .and. & - (abs(g_abc(3,igv)) + 2.d0 <= eps6) ) THEN ! xz^2 + (abs(g_abc(3,igv) + 2.d0) <= eps6) ) THEN ! xz^2 num_G(mpime+1) = num_G(mpime+1) + 1 ig_idx(num_G(mpime+1))=igv CYCLE ENDIF IF ( (abs(g_abc(1,igv) - 0.d0) <= eps6) .and. & (abs(g_abc(2,igv) - 3.d0) <= eps6) .and. & - (abs(g_abc(3,igv)) - 0.d0 <= eps6) ) THEN ! y^3 + (abs(g_abc(3,igv) - 0.d0) <= eps6) ) THEN ! y^3 num_G(mpime+1) = num_G(mpime+1) + 1 ig_idx(num_G(mpime+1))=igv CYCLE ENDIF IF ( (abs(g_abc(1,igv) - 0.d0) <= eps6) .and. & (abs(g_abc(2,igv) - 2.d0) <= eps6) .and. & - (abs(g_abc(3,igv)) - 1.d0 <= eps6) ) THEN ! y^2z + (abs(g_abc(3,igv) - 1.d0) <= eps6) ) THEN ! y^2z num_G(mpime+1) = num_G(mpime+1) + 1 ig_idx(num_G(mpime+1))=igv CYCLE ENDIF IF ( (abs(g_abc(1,igv) - 0.d0) <= eps6) .and. & (abs(g_abc(2,igv) - 2.d0) <= eps6) .and. & - (abs(g_abc(3,igv)) + 1.d0 <= eps6) ) THEN ! y^2z + (abs(g_abc(3,igv) + 1.d0) <= eps6) ) THEN ! y^2z num_G(mpime+1) = num_G(mpime+1) + 1 ig_idx(num_G(mpime+1))=igv CYCLE ENDIF IF ( (abs(g_abc(1,igv) - 0.d0) <= eps6) .and. & (abs(g_abc(2,igv) - 1.d0) <= eps6) .and. & - (abs(g_abc(3,igv)) - 2.d0 <= eps6) ) THEN ! yz^2 + (abs(g_abc(3,igv) - 2.d0) <= eps6) ) THEN ! yz^2 num_G(mpime+1) = num_G(mpime+1) + 1 ig_idx(num_G(mpime+1))=igv CYCLE ENDIF IF ( (abs(g_abc(1,igv) - 0.d0) <= eps6) .and.& (abs(g_abc(2,igv) - 1.d0) <= eps6) .and. & - (abs(g_abc(3,igv)) + 2.d0 <= eps6) ) THEN ! yz^2 + (abs(g_abc(3,igv) + 2.d0) <= eps6) ) THEN ! yz^2 num_G(mpime+1) = num_G(mpime+1) + 1 ig_idx(num_G(mpime+1))=igv CYCLE ENDIF IF ( (abs(g_abc(1,igv) - 0.d0) <= eps6) .and. & (abs(g_abc(2,igv) - 0.d0) <= eps6) .and. & - (abs(g_abc(3,igv)) - 3.d0 <= eps6) ) THEN ! z^3 + (abs(g_abc(3,igv) - 3.d0) <= eps6) ) THEN ! z^3 num_G(mpime+1) = num_G(mpime+1) + 1 ig_idx(num_G(mpime+1))=igv CYCLE diff --git a/PP/src/vasp_read_chgcar_mod.f90 b/PP/src/vasp_read_chgcar_mod.f90 index c5187e024..536f5344c 100644 --- a/PP/src/vasp_read_chgcar_mod.f90 +++ b/PP/src/vasp_read_chgcar_mod.f90 @@ -64,7 +64,6 @@ MODULE vasp_read_chgcar INTEGER :: ngxf, ngyf, ngzf, nalloc INTEGER :: ispin, iat, iz, ixy, nread REAL(DP), ALLOCATABLE :: rho_r_(:,:), atomom(:) - REAL(DP), ALLOCATABLE :: rho_r_up(:), rho_r_dn(:) CHARACTER(LEN=80) :: errmsg ! ierr = 0 @@ -102,15 +101,6 @@ MODULE vasp_read_chgcar END DO CLOSE(iunchg) - IF(nspin==2) THEN - ALLOCATE(rho_r_up(dfftp%nr1x*dfftp%nr2x*dfftp%nr3x)) - ALLOCATE(rho_r_dn(dfftp%nr1x*dfftp%nr2x*dfftp%nr3x)) - rho_r_up=0.5_DP*(rho_r_(:,1)+rho_r_(:,2)) - rho_r_dn=0.5_DP*(rho_r_(:,1)-rho_r_(:,2)) - rho_r_(:,1)=rho_r_up - rho_r_(:,2)=rho_r_dn - DEALLOCATE(rho_r_up, rho_r_dn) - END IF END IF ! CALL mp_bcast( atm, ionode_id, intra_image_comm ) DO ispin = 1, nspin diff --git a/PW/src/setup.f90 b/PW/src/setup.f90 index 276588917..92543ddce 100644 --- a/PW/src/setup.f90 +++ b/PW/src/setup.f90 @@ -137,7 +137,7 @@ SUBROUTINE setup() IF (ecutfock /= 4*ecutwfc) CALL infomsg & ('setup','Warning: US/PAW use ecutfock=4*ecutwfc, ecutfock ignored') IF ( lmd .OR. lbfgs ) CALL errore & - ('setup','forces for hybrid functionals + US/PAW not implemented') + ('setup','forces for hybrid functionals + US/PAW not implemented',1) IF ( noncolin ) CALL errore & ('setup','Noncolinear hybrid XC for USPP not implemented',1) END IF @@ -519,7 +519,11 @@ SUBROUTINE setup() ! ! ... nosym: do not use any point-group symmetry (s(:,:,1) is the identity) ! - IF ( nosym ) nsym = 1 + IF ( nosym ) THEN + nsym = 1 + invsym = .FALSE. + fft_fact(:) = 1 + END IF ! IF ( nsym > 1 .AND. ibrav == 0 ) CALL infomsg('setup', & 'DEPRECATED: symmetry with ibrav=0, use correct ibrav instead') diff --git a/PW/src/symm_base.f90 b/PW/src/symm_base.f90 index 9d6cabf5c..4106be76a 100644 --- a/PW/src/symm_base.f90 +++ b/PW/src/symm_base.f90 @@ -515,11 +515,14 @@ SUBROUTINE sgam_at ( nat, tau, ityp, sym, no_z_inv) ! ! ft_ is in crystal axis and is a valid fractional translation ! only if ft_(i)=0 or ft_(i)=1/n, with n=2,3,4,6 - ! The check below is less strict: n must be integer ! DO i=1,3 IF ( ABS (ft_(i)) > eps2 ) THEN - ftaux(i) = ABS (1.0_dp/ft_(i) - NINT(1.0_dp/ft_(i)) ) + ftaux(i) = ABS (1.0_dp/ft_(i) - NINT(1.0_dp/ft_(i)) ) + nfrac = NINT(1.0_dp/ABS(ft_(i))) + IF ( ftaux(i) < eps2 .AND. nfrac /= 2 .AND. & + nfrac /= 3 .AND. nfrac /= 4 .AND. nfrac /= 6 ) & + ftaux(i) = 2*eps2 ELSE ftaux(i) = 0.0_dp END IF diff --git a/PW/src/v_of_rho.f90 b/PW/src/v_of_rho.f90 index 7782924f1..295da64fe 100644 --- a/PW/src/v_of_rho.f90 +++ b/PW/src/v_of_rho.f90 @@ -221,7 +221,7 @@ SUBROUTINE v_xc_meta( rho, rho_core, rhog_core, etxc, vtxc, v, kedtaur ) ! spin-polarised case ! rhoup = ( rho%of_r(k, 1) + rho%of_r(k, 2) )*0.5d0 - rhodw = ( rho%of_r(k, 2) - rho%of_r(k, 2) )*0.5d0 + rhodw = ( rho%of_r(k, 1) - rho%of_r(k, 2) )*0.5d0 rh = rhoup + rhodw