routines that find the symmetry of a system, are in module symm_base;
module symme contains only routines for symmetrization of the various
quantities.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@6403 c92efa57-630b-4861-b058-cf58834340f0
add plugins dir (and related modif to Makefile) for "external applications"
add released wannier90 (from www.wannier90.org) in plugins
small modif exx example
small bug fixed in nscf calc save_in_cbands for compilation with -DEXX
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5927 c92efa57-630b-4861-b058-cf58834340f0
removed, a few REAL transformed into DBLE. Note that my previos statement
about REAL is overblown: REAl(C) is perfectly safe if C is a double precision
complex number. All changes should be safe.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5793 c92efa57-630b-4861-b058-cf58834340f0
for a bug, before I realized that there were two copies of "gamma_only",
I wasted two more hours to iuse a single value of "gamma_only" (the one
oin control_flags).
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4468 c92efa57-630b-4861-b058-cf58834340f0
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
"nkstot" is always the total number of k-points, summed on all pools;
"nks" is defined only after pools are initialized and is the number of
k-points on the current pool. Previously there was some confusion due
to the redefinition of nks. It seems to work with no side effects, but
- it is untested for EXX
- the X phonon in Ni (example 2) does not work, but it doesn't seem
to be related with this change
The commented lines in h_psi_meta made compilation fail on sp5.
How this was happening I don't know: it must be related to the
pre-processing of CMPLX (see include/f_defs,h). Maybe we should
get rid of it. In the meantime I removed the offending lines.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3787 c92efa57-630b-4861-b058-cf58834340f0
- correct an unquoted string (iosys) in PW/input.f90:483
(this was the cause of tonight compilation failere)
- correct a few incorrect format strings
- make more use of the constants module and thus
provide more consistent units. NOTE, this has some
numerical changes in the outputs, as in some places
rather low precision and inconsistent numbers were
used for unit conversion.
- convert all(?) single precision constants to double
using the attached little perl program.
exceptions: efermi.f90 (as it is supposed to be rewritten
anyways), plotbands.f90 (it uses single precision everywhere,
which may result in saving a significant amount of memory,
so i converted the two double precision constants to single).
Unused routine 'set_fft_grid' removed
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3602 c92efa57-630b-4861-b058-cf58834340f0
(he claims it is more tested); documentation updated (sort of)
- routines find_free_unit, delete_if_present, moved from 'parser'
to 'io_files' (it is a more natural place)
- routines int_to_char moved from 'parser' to flib/ (it is quite
unrelated with the rest of the module)
- routine trimcheck moved from flib/ to 'io_files' (more natural place)
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2753 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