File buffers.f90 contains replacements - with different names and syntax -
for diropn (open_buffer) and davcio (get_buffer, save_buffer). If you have
better names, please go ahead. Works for a single buffer right now.
Pitfalls: nwordwfc is now defined as the number of complex words, no longer
of real words, but only in PW/, so mixing routines from PW with routines from
other codes may run into trouble (although I didn't see any side effect).
Restart may no longer work in some specific cases.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3800 c92efa57-630b-4861-b058-cf58834340f0
conversion to real => DBLE
(including real part of a complex number)
conversion to complex => CMPLX
complex conjugate => CONJG
imaginary part => AIMAG
All functions are uppercase.
CMPLX is preprocessed by f_defs.h and performs an explicit cast:
#define CMPLX(a,b) cmplx(a,b,kind=DP)
This implies that 1) f_defs.h must be included whenever a CMPLX is present,
2) CMPLX should stay in a single line, 3) DP must be defined.
All occurrences of real, float, dreal, dfloat, dconjg, dimag, dcmplx
removed - please do not reintroduce any of them.
Tested only with ifc7 and g95 - beware unintended side effects
Maybe not the best solution (explicit casts everywhere would be better)
but it can be easily changed with a script if the need arises.
The following code might be used to test for possible trouble:
program test_intrinsic
implicit none
integer, parameter :: dp = selected_real_kind(14,200)
real (kind=dp) :: a = 0.123456789012345_dp
real (kind=dp) :: b = 0.987654321098765_dp
complex (kind=dp) :: c = ( 0.123456789012345_dp, 0.987654321098765_dp)
print *, ' A = ', a
print *, ' DBLE(A)= ', DBLE(a)
print *, ' C = ', c
print *, 'CONJG(C)= ', CONJG(c)
print *, 'DBLE(c),AIMAG(C) = ', DBLE(c), AIMAG(c)
print *, 'CMPLX(A,B,kind=dp)= ', CMPLX( a, b, kind=dp)
end program test_intrinsic
Note that CMPLX and REAL without a cast yield single precision numbers on
ifc7 and g95 !!!
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2133 c92efa57-630b-4861-b058-cf58834340f0
Old parallel variables me and mypool have been replaced by me_pool ( = ( me - 1 ) ) and my_pool_id ( = ( mypool - 1) ), defined in mp_global.
The old combination ( me == 1 .AND. mypool == 1 ) used in the I/O should be replaced by the logical variable ionode.
All parallel variables (communicators included) are properly defined in the serial case too, so that "#ifdef __PARA" is not
needed.
C.S.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1338 c92efa57-630b-4861-b058-cf58834340f0
1) f_defs.h for definitions to be included in FORTRAN files ONLY
2) c_defs.h for definitions to be included in C files ONLY
C.S.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1012 c92efa57-630b-4861-b058-cf58834340f0
new module uspp_param, shared between PW and CP (in file Modules/uspp.f90)
The flag newpseudo is no longer used to decide whether states with oc=0 are
bound or not: for those states, and only for the old RRKJ format, oc is set
to a negative value, and this signals that they are not bound. Not elegant
but simpler than it used to be. The converter to UPF format did not include
those states anyway. Beware unexpected side effects!
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@914 c92efa57-630b-4861-b058-cf58834340f0
- ^M removed from pseudo files
- wavefunctions arrais moved to module
wavefunctions_module, common to all codes
this is required to reduce duplicated subroutine
- new lapack subroutine, called from PWCOND,
added to lib/lapack.f lib/lapack_ibm.f
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@381 c92efa57-630b-4861-b058-cf58834340f0
contributed by Adriano Mosca Conte,
added to the repository.
The non collinear code has required
a new module "wavefunctions" containing
"psic" and "evc", that no longer belong
to pwcom.
use: cvs update -d
there's a new example (example13), that is not
yet complete, I'm waiting for the appropriate
pseudopotential from Adriano
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@322 c92efa57-630b-4861-b058-cf58834340f0
last fixatom atoms (with the same input procedure as the bfgs
minimization).
- LDA+U part has been modified in order run also in the not
spin-polarized case (some testing still neeeded).
- Davidson diagonalization returns best estimate for
eigenvalues and eigenvectors also in the case that not all
roots have converged. This is more consistent and should
somehow alleviate the problem of WARNING messages in scf and
band structure run.
- Number of beta function in pseudopotentials increased to 8.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@130 c92efa57-630b-4861-b058-cf58834340f0
Symmetrization of occupation matrix ns needed for LDA+U
calculations used incorrectly d2 matrices instead of their
transponse. Similar error corrected also in PP/projwave.f90
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@97 c92efa57-630b-4861-b058-cf58834340f0
localized orbitals. Hubbard_l=0,1,2,3 are now possible.
It has been tested that calculations done for Hubbard_l=2
are reproduced. More testing on non-d material needed.
SdG + Gabriele Balducci
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@57 c92efa57-630b-4861-b058-cf58834340f0