Modules/error_handler.f90 . Not really an elegant solution, since
the module in error_handler is never used and subroutine "errore"
is not in the module, but better than it used to be. All makefiles
and make.depend updated (fixes yesterday's linking error as well).
Minor changes here and there as well.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4591 c92efa57-630b-4861-b058-cf58834340f0
Apparently the reason is insufficient stack size, but it may not be sufficient
to use command "limits" o "ulimit", because the stack size seems to be reset
either by queueing systems or by the code itself. A C routine that removes
stack limits has been added and is called at the beginning of the run.
Fixed format error in printout of parameters for Berendsen thermostat (Eduardo)
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3954 c92efa57-630b-4861-b058-cf58834340f0
the starting wavefunctions from the atomic ones for a single k-point
without reading or writing anything is now available.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3652 c92efa57-630b-4861-b058-cf58834340f0
- disable locales via use of LC_ALL=C in all shell scripts
(which will hopefully make sorted lists more consistent
between people running with different locales).
- remove redundant files from PW, NMR_new, VdW, VIB;
rename subroutines if their functionality is noI
unchanged from the original source it was taken from.
- corresponding updates to Makefiles and dependencies.
- whitespace cleanups (eleminate remaining tabs).
- a few more float->DBLE
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3596 c92efa57-630b-4861-b058-cf58834340f0
in analogy to evc.
Apparently swfcatom_nc was used but not allocated in noncollinear
calculations with LDA+U (not sure it was implemented, though)
There is still something I don't understand in wfcinit: the starting
wavefunctions needs to be set to 0 for n>npw at the end of the routine,
while it should be sufficient to clean them at the beginning. This might
be a sign that we are overwriting a zone that should not be overwritten.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3582 c92efa57-630b-4861-b058-cf58834340f0
The include file for C routines is generated by configure,
in a way that should be very general and robust. Beware:
you need to re-run configure to regenerate include/c_defs.h
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3423 c92efa57-630b-4861-b058-cf58834340f0
Preprocessing flag -D__FFTMKL8 must be used (configure hasn't been
configured for this case). Whoever has access to MKL v.8 is invited
to try and to report if it works better than FFTW. Note from the author:
"it requires a minor bug correction in the MKL. It has been submitted
to Intel and will be integrated in their next release."
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3203 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
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