The idea is that module funct contains data defining the DFT functional in use
and a number of functions and subroutines to manage them.
Data are PRIVATE and are (shuold be) accessed and set only by function calls.
Basic drivers to compute XC quantities are also included.
It should be the main place where definitions for and calculation of xc
functionals are centralized.
In CPV printout [A.U.] replaced by [HARTREE A.U.] in many places.
stefano
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2411 c92efa57-630b-4861-b058-cf58834340f0
written and read. Added some consistency checks. Postprocessing programs
not yet working (at least not all of them).
C.S.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2144 c92efa57-630b-4861-b058-cf58834340f0
pwscf set of drivers that read the xml punch file.
Now the postprocessing codes that use the read_file routine to read the punch
file should work (please check).
C.S.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2138 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
all files open by seqopn.f90 and diropn.f90 in the TMP_DIR have the
general form "prefix"."extension" where extension is the only part of
the filename passed as an argument. This should avoid conflicts between
different jobs running at the same time and sharing the same TMP_DIR
(provided they have different prefixes ...)
All examples (from 1 to 26) give the same output as before on my pc.
Please let me know if you notice unexpected behaviours.
stefano
PS: example26 apparently does nothing (even giving the command run_example 7)..
As it uses cp.x which does not use seqopn/diropn routines this behaviour
cannot be due to the present changes.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1963 c92efa57-630b-4861-b058-cf58834340f0
exchange stuff.
These features can be obtained by compiling with -DEXX added to DFLAGS
in make.sys
***** DO NOT USE FOR ANY PRODUCTION RUN. *****
Stefano and Antonio
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1883 c92efa57-630b-4861-b058-cf58834340f0
noncolinear and spin-orbit cases. pwnc.x is no more needed and the
directory PWNC and all its files will be removed.
Step one: added to PW the noncolinear routines that have not been
merged, changes on all the Makefiles.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1537 c92efa57-630b-4861-b058-cf58834340f0
- Few more functionals has been added to file more_functionals.f90
since in PW BLYP/LSDA were not implemented .
In the same file, temporary, are stored old CP90 subroutines
for testing purpose ( in CP functionals were vectorized!! ).
The small program PP/xctest.f90 can be used to make a comparative
test between new and old routines, in case someone suspect a problem
there.
- buon anno!
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1533 c92efa57-630b-4861-b058-cf58834340f0
in particular (modenum.ne.0) stands for iswitch = -4 now: is it OK?
unused show_memory routine also removed
documentation updated
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1503 c92efa57-630b-4861-b058-cf58834340f0
(to be tested). Makefile and ChangeLog cleanup
Per favore scrivete qualcosa nel ChangeLog quando fate qualcosa
e verificate che tutto compile quando aggiungete roba - PG
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1413 c92efa57-630b-4861-b058-cf58834340f0
- iotk_scan in iotk_module had a mixed up 'intent' statement.
- sun ultra fire 3 compiler warnings
- cleanup in filename length (brought to 256)
- cleanup in include files
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1399 c92efa57-630b-4861-b058-cf58834340f0
added example for phonon DOS; version number updated to 2.1 (PG)
Please start testing and debugging the next version, i.e., this one.
Note that reference data have to be updated for all examples.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1039 c92efa57-630b-4861-b058-cf58834340f0
is now within ph.x possible.
New input variables:
lnscf: if .true. the nscf and phonon run are done in one single run
ldisp: if .true. calculation of dyn. matrices for dispersion
nq1, nq2, nq3: q-point mesh
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1017 c92efa57-630b-4861-b058-cf58834340f0