Commit Graph

30 Commits

Author SHA1 Message Date
giannozz 3cd50d0257 More cleanup: spelling of Quantum ESPRESSO, CMPLX explicitly cast, f_defs.h
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
2009-08-01 17:48:59 +00:00
dalcorso 9ee2377238 Cleanup of the phonon code. In the noncollinear case, the spin
indeces are calculated only once, not in every routine.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5380 c92efa57-630b-4861-b058-cf58834340f0
2009-02-04 17:18:31 +00:00
cavazzon 6e6630adbe - reduce replaced by mp_sum
- sub. reduce, removed from para!


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4826 c92efa57-630b-4861-b058-cf58834340f0
2008-04-20 21:23:37 +00:00
giannozz bdae2b6cb1 Cleanup of wavefunction initialization. Since I wasted two hours hunting
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
2007-11-22 14:23:04 +00:00
degironc fab8c49e9c scf_mod again..
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4382 c92efa57-630b-4861-b058-cf58834340f0
2007-11-01 11:19:31 +00:00
giannozz 76aafc384e Added the possibility to perform calculations using the true Coulomb
potential instead of a pseudopotential. May or may not work! only for pw.x
and only for people knowing what they are doing. It requires the generation
of a fake UPF pseudo containing a radial grid, atomic wavefunctions, little
else, using the modified version of ld1.x (option "write_coulomb=.true.").


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4374 c92efa57-630b-4861-b058-cf58834340f0
2007-10-29 13:47:45 +00:00
giannozz 92d2c02c40 Old BHS potentials removed everywhere
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4345 c92efa57-630b-4861-b058-cf58834340f0
2007-10-16 15:07:42 +00:00
giannozz 216c32ccd3 The following pseudopotential-related variables in module uspp_param:
zp, psd, dion, betar, jjj, qqq, qfunc, qfcoef, vloc_at, rinner,
   nbeta, kkbeta, nqf, nqlc, lll, tvanp
have been replaced by the corresponding variables in structure 'upf'.
There shouldn't be any side effects, but who knows. There is still a
copy of the above variables that will be removed sooner or later.
Basically : variable([i,j,k,..,]n) => upf(n)%variable [(i,j,k,..)]
Note that upf%qfunc has for the time being three indices instead of two,
and that upf%kkbeta is the analogous of kkbeta and not what it used to be.
The logic of this operation will be clearer when it will be completed


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4308 c92efa57-630b-4861-b058-cf58834340f0
2007-10-05 09:26:23 +00:00
degironc 6da8252f73 a radial_grid_type is introduced in Modules and used in atomic-related part
many changes but results are identical before and after.
sdg


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4127 c92efa57-630b-4861-b058-cf58834340f0
2007-08-12 00:08:53 +00:00
giannozz 054e721960 Misc pseudopotential cleanup: upf_to_internal merged between CP and PW;
PAW-related stuff extracted and put into the paw module; various checks
moved to more appropriate places; initialization of obsolete variables
lloc and lmax moved elsewhere; variable zp moved to uspp_param.
All PP-reading subroutines (too many) read zp, not zv; zv is set later.
Summary for pseudopotentials unified and purged of printout of
obsolete/unused/unset variables.
PW/readin.f90 renamed to something more suggestive of what it does
(PW/read_pseudo.f90). Module PW/upf_to_internal.f90 moved to Modules/,
routine upf2internal removed from CPV/read_pseudo.f90.
Harmless error in berry phase + a few bad formats in GIPAW fixed.
Dependencies and Makefiles updated.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3851 c92efa57-630b-4861-b058-cf58834340f0
2007-03-18 19:24:56 +00:00
giannozz 3a98e2d9d4 More patches from Axel:
- 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
2006-12-14 08:53:47 +00:00
cavazzon 25b02439aa - fix for NLCC contribution to forces and stress
- more BGL porting
- clean-ups


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3020 c92efa57-630b-4861-b058-cf58834340f0
2006-04-18 07:33:11 +00:00
dalcorso 588942e2c9 Stress in the noncollinear/spin-orbit case added.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2801 c92efa57-630b-4861-b058-cf58834340f0
2006-02-10 15:02:48 +00:00
giannozz f533b052d5 dbl => DP (defined as previously dbl was)
syntax for declarations: real(DP), without "kind="


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2135 c92efa57-630b-4861-b058-cf58834340f0
2005-08-28 14:09:42 +00:00
giannozz bf4bfe222f General cleanup of intrinsic functions:
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
2005-08-26 17:44:42 +00:00
sbraccia 0caeadbd7b Machine-dependent definitions are now contained in two different files (both in /include):
1) f_defs.h  for definitions to be included in FORTRAN files ONLY
   2) c_defs.h  for definitions to be included in C       files ONLY

C.S.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1012 c92efa57-630b-4861-b058-cf58834340f0
2004-06-25 17:25:37 +00:00
sbraccia d1579c66ec Removed references (not yet everywhere) to module basis for those variables already in module ions_base.
C.S.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@953 c92efa57-630b-4861-b058-cf58834340f0
2004-06-12 13:44:18 +00:00
giannozz 4a5732790a Part of the variables for ultrasoft pseudopotentials have been moved to a
new module uspp_param, shared between PW and CP (in file Modules/uspp.f90)
The flag newpseudo is no longer used to decide whether states with oc=0 are
bound or not: for those states, and only for the old RRKJ format, oc is set
to a negative value, and this signals that they are not bound. Not elegant
but simpler than it used to be. The converter to UPF format did not include
those states anyway. Beware unexpected side effects!


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@914 c92efa57-630b-4861-b058-cf58834340f0
2004-05-26 11:04:07 +00:00
giannozz 150ae509f3 more pseudopotential cleanup
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@824 c92efa57-630b-4861-b058-cf58834340f0
2004-04-27 13:44:55 +00:00
giannozz 6c76b02482 Pseudopotential cleanup: vnl => vloc_at
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@818 c92efa57-630b-4861-b058-cf58834340f0
2004-04-26 07:25:01 +00:00
sbraccia 764ce7f663 References to brilz replaced everywhere by cell_base.
There are still references to pwcom: please do not use pwcom in new code !!!
C.S.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@760 c92efa57-630b-4861-b058-cf58834340f0
2004-04-02 10:30:15 +00:00
giannozz 0b1a5c9fd8 Extensive module cleanup: DP moved from wrong place (parameters) to the
correct place (kinds); module "varie" replaced by "control_flags" (not
yet in pwcom, though) - many many files changed.
64-bit cpus (Opteron, maybe Itanium) should now work if __LINUX64 is defined


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@513 c92efa57-630b-4861-b058-cf58834340f0
2004-01-23 15:08:03 +00:00
giannozz cd8242ad9a Some cleanup
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@486 c92efa57-630b-4861-b058-cf58834340f0
2004-01-15 15:50:19 +00:00
cavazzon c5d8ff2f66 - unit 6 replaced by stdout in CPV
- ^M removed from pseudo files
- wavefunctions arrais moved to module
  wavefunctions_module, common to all codes
  this is required to reduce duplicated subroutine
- new lapack subroutine, called from PWCOND,
  added to lib/lapack.f lib/lapack_ibm.f


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@381 c92efa57-630b-4861-b058-cf58834340f0
2003-11-09 10:42:50 +00:00
sbraccia 24ce939aeb Unit stdout (set in Modules/io_global.f90) is used to write on standard output
instead of 6 or *.
C.S.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@365 c92efa57-630b-4861-b058-cf58834340f0
2003-11-04 10:53:05 +00:00
cavazzon 1d34b5c0a8 non collinear spin version of PW,
contributed by Adriano Mosca Conte,
added to the repository.
The non collinear code has required
a new module "wavefunctions" containing
"psic" and "evc", that no longer belong
to pwcom.

use: cvs update -d

there's a new example (example13), that is not
yet complete, I'm waiting for the appropriate
pseudopotential from Adriano


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@322 c92efa57-630b-4861-b058-cf58834340f0
2003-10-03 14:01:11 +00:00
degironc c830a68c37 22 apr 2003 All setv statements in PW repalaced by f90 constructs.
Minor changes in PW & PH (code readability).


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@178 c92efa57-630b-4861-b058-cf58834340f0
2003-04-22 16:03:45 +00:00
giannozz 9e3a2de758 Support for lahey compiler added: "error" renamed to "errore", "rnd" to "rndx"
bug in io_base fixed
PARA => __PARA
cinterpolate moved into interpolate


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@86 c92efa57-630b-4861-b058-cf58834340f0
2003-02-21 14:57:00 +00:00
giannozz d852392cab module allocate, calls to mallocate, mfree removed
pointers replaced by allocatable whenever possible


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@56 c92efa57-630b-4861-b058-cf58834340f0
2003-02-07 16:04:36 +00:00
giannozz ac9f2144c0 O-sesame
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2 c92efa57-630b-4861-b058-cf58834340f0
2003-01-19 21:58:50 +00:00