(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
- Changed format when writing a copy of the UPF file: for some reason
the free format adds an initial blank character, causing the program
to fail when reading (in fixed format) additional info for spin-orbit.
Format A is now used when writing, free format when reading. (AdC)
- More preprocessing cleanup and documentation: anybody having access
to weird machines is kindly requested to verify if things work
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2732 c92efa57-630b-4861-b058-cf58834340f0
- Many ortho auxiliary functions (tauset, rhoset, sigset, calphi, updatc)
are now in common between FPMD/CP, and moved to module ortho_base.f90
- In FPMD, three index vectors, related to real space like charge and potential
have been substituted with single index vector like in CP, for compatibility
and efficiency.
- Bug fix in pwtools/matdyn.f90 a logical variable was used in place of a
character variable
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2694 c92efa57-630b-4861-b058-cf58834340f0
If ibrav=0 ph.x write also at(3,3) and symm_type and so do q2.x and matdyn.x
It could actually be simpler to always write/read at(3,3) and symm_type and
forget about ibrav and celldm ...
latgen modified so that it deals properly with ibrav=0 case.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2543 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
A file containing information on the q-point grid is written by ph.x
and read by q2r.x, thus making the process less clumsy
The phonon code does not restart automatically any longer unless instructed
to do so by setting input variable "recover"
Misc cleanup
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2039 c92efa57-630b-4861-b058-cf58834340f0