- Parallelization of some beta.dot.c arrays to reduce the
memory requirement of the code when using many processors
- cleanup in wannier functions related subroutines
- various cleanup
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5346 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
- enhanced restart procedure, with disk_io='high'
more stuff is saved to restart dir, this is required
for post-processing and pw.x codes.
- wave functions are read following the iotk link, without
explicitly open the file, this increases the possibility
for interoperability and backward compatibility.
- added input parameter saverho (to control the saving of charge density),
disk_io has a more general meaning
- merging of the subroutine that computes dekin stress component
- atomic wave function occupations factors ( "oc" ) now
are copied to internal "atom" module.
- various cleanups
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3322 c92efa57-630b-4861-b058-cf58834340f0
first step needed to parallelize neb over images also for CP.
Next we need to add the right communicator to all communications
- subroutine reduce substituted everywhere with mp_sum
- mp_sum for array with 4dims added in mp.f90
- workaround for xlf compiler, it has problems compiling file with
initialization of large array in the definition line,
see Modules/input_parameters.f90 , initialization moved to
Modules/read_cards.f90 .
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2946 c92efa57-630b-4861-b058-cf58834340f0
- the logic of the combined index for US PP is now the same everywhere
(i.e in PW, CP, and in the pseudopotential format):
do iv=1,N
do jv=iv,N
ijv=jv*(jv-1)/2+iv
(in PW the indices are called nb, mb). In order to get ijv from (iv,jv):
if (iv > jv) then
ijv=iv*(iv-1)/2+jv
else
ijv=jv*(jv-1)/2+iv
end if
- the above change also fixes a serious bug affecting Vanderbilt US PP
in UPF format (only half of the qfcoef array was present, but not the
good half)
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2916 c92efa57-630b-4861-b058-cf58834340f0
PLEASE NOTE: the logic for packed index is as follows everywhere
do i=1,N
do j=1,i
ij = (i-1)*i/2 + j
This is equivalent to
ij = 0
do i=1,N
do j=1,i
ij = ij + 1
This is not (yet) the same as used in PW, though
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2871 c92efa57-630b-4861-b058-cf58834340f0
- CP/FPMD post processing updated, charge and states written in xsf/grd format
- CP rhoofr moved to file chargedensity.f90
- merged from_scratch subroutine
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2839 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
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
COMPLEX(KIND=dbl) FUNCTION somefunction( )
USE kinds, only: dbl
He want to see:
FUNCTION somefunction()
USE kinds, only: dbl
COMPLEX(KIND=dbl) :: somefunction
The second is for sure a correct construct, but
honestly I don't remember if the first is wrong,
it seems not, then most probably the error is a pgi bug!
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1946 c92efa57-630b-4861-b058-cf58834340f0
by both CP and FPMD
- Now FPMD and CP use the same random wave functions initialization,
which is also independent from the number of processors,
very useful for debugging.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1836 c92efa57-630b-4861-b058-cf58834340f0
- initialization (both code uses the same ggen)
- now FPMD initializes the small-boxes too (required for untrasoft pseudo)
- print out
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1186 c92efa57-630b-4861-b058-cf58834340f0