Commit Graph

29 Commits

Author SHA1 Message Date
cavazzon 6a3a3538c7 - more BGL porting
- some fixes for self interaction correction


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3018 c92efa57-630b-4861-b058-cf58834340f0
2006-04-13 21:38:16 +00:00
cavazzon c7bd96d697 - changes needed for blue gene porting
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2867 c92efa57-630b-4861-b058-cf58834340f0
2006-03-05 23:02:36 +00:00
cavazzon 0cbd417269 - charge density is now read and written in CP/FPMD trough xml subroutine
- 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
2006-02-19 23:29:28 +00:00
cavazzon ce6a4f3316 - fft scatter (alltoallv), transpose (alltoall), itranspose (isend/irecv)
made interchangeable (see Module/fft_base and CPV/fftdrv for more detail)
- obsolete files removed


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2832 c92efa57-630b-4861-b058-cf58834340f0
2006-02-16 22:39:29 +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
cavazzon 193516156e - clean-ups, comments and merging
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1829 c92efa57-630b-4861-b058-cf58834340f0
2005-04-22 15:23:19 +00:00
cavazzon cfc3aa9fcc - lighter and more robust iotk modules
- new pw_export


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1588 c92efa57-630b-4861-b058-cf58834340f0
2005-01-28 16:24:33 +00:00
giannozz f6c7dd48e0 Added optimized support for ALTIX machines - contributed by Martin Hilgeman
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1545 c92efa57-630b-4861-b058-cf58834340f0
2005-01-07 12:57:41 +00:00
cavazzon 1b938fa669 - work on FPMD for the merging with CP ( grid dimension )
- bug fix ( ion randomization )
- SIC updated
carlo


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1378 c92efa57-630b-4861-b058-cf58834340f0
2004-10-14 08:38:05 +00:00
cavazzon acb5aa20a0 - ifort complains about using a data structure from a module
without using its datatype definition


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1187 c92efa57-630b-4861-b058-cf58834340f0
2004-08-27 10:34:12 +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 3044c07b12 Direct references to mpif.h replaced by USE parallel_include.
C.S.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@981 c92efa57-630b-4861-b058-cf58834340f0
2004-06-17 09:29:03 +00:00
sbraccia 7359b6ca2f The array of communicators was non necessary (thanks to SdG): removed everywhere.
Fixed a serious bug in para.f90 (introduced in the last commit).
C.S.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@744 c92efa57-630b-4861-b058-cf58834340f0
2004-03-24 16:30:44 +00:00
sbraccia 2a99b6fdac 1) An experimental parallelization of NEB images has been implemented.
This required a deep modification of the parallelism in PWscf:
there are two new communicators (intra_image_comm and inter_image_comm) and the
existing "pool" communicators (intra_pool_comm and inter_pool_comm) are now vectors
of length given by the number of parallel images. #ifdef __PARA is no longer
needed because all "parallel" variables are always initialized for a serial run
and all parallel routines are, in the case of a serial run, dummy routines.
The wrappers to MPI routines used only by PWscf are in the PW/para.f90 file.
The others (mp_***) are in the Modules/mp.f90. All explicit referencies to mpif.h
should be replaced by an "USE parallel_include" (in a serial run parallel_include
is simply a dummy module).

2) The extrapolation of both potential and wavefunctions has been rewritten in
order to be smarter than before: on the basis of the required extrapolation
order, on the basis of the history and on the basis of which files are really
present on the disk, the algorithm chooses the extrapolation order.
All the algorithms in which ions are moved can use the extrapolation.

These are both unstable features: I need the help of everybody to test them.

C.S.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@742 c92efa57-630b-4861-b058-cf58834340f0
2004-03-24 09:36:50 +00:00
profeta 815b7622ee misplaced 'implicit none' makes ifc stop
PP Makefile did not find neb object


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@688 c92efa57-630b-4861-b058-cf58834340f0
2004-03-01 15:38:01 +00:00
cavazzon 2b9008ea8a - More merging between CP and FPMD
- some common NEB modules moved to Modules directory
  others NEB modules will be moved soon


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@687 c92efa57-630b-4861-b058-cf58834340f0
2004-02-29 23:30:07 +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
cavazzon bb4db10003 - FPMD prepared for NEB
- variables in module pwcom/varie moved to Modules/control_flags
- module PW/format moved to Modules/format
- in module PW/supercell added workaround for AUTOMATIC variable and
  AIX compilers
- PH Makefile added rbecmod.o


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@468 c92efa57-630b-4861-b058-cf58834340f0
2004-01-07 22:54:02 +00:00
cavazzon d6d6eef8a0 - common subroutine sph_bes linked to the CP in place
of bess
- FPMD clean up and some performance issues


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@218 c92efa57-630b-4861-b058-cf58834340f0
2003-05-26 22:02:26 +00:00
cavazzon a5d1d4085f bug fix in serial transpose (used by FPMD)
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@217 c92efa57-630b-4861-b058-cf58834340f0
2003-05-24 16:56:48 +00:00
cavazzon f56b9ef4d0 - also FPMD now is linked to the
same fft scalar drivers as CPV and PWSCF


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@216 c92efa57-630b-4861-b058-cf58834340f0
2003-05-23 09:39:48 +00:00
cavazzon 23aec87a2f - more performance issues
- ifdef __PARA removed from the main subroutine of PW, Gamma, D3, PP, PH
  now startup is called both for serial and parallel codes.
- cfts_3 included in fft_scalar ( tested for __AIX )
- module pencils in serial executions is no more needed


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@189 c92efa57-630b-4861-b058-cf58834340f0
2003-04-28 07:23:04 +00:00
cavazzon 616b483f36 Performance issues and Harware Performance Monitor
interface for Power4 processor ( can by switched on defining __HPM )


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@187 c92efa57-630b-4861-b058-cf58834340f0
2003-04-24 22:10:04 +00:00
cavazzon 609a2863fe More cleaning and updating from the IBM SP4
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@177 c92efa57-630b-4861-b058-cf58834340f0
2003-04-21 22:11:41 +00:00
cavazzon 45858fb8bd Small fixes in Makefiles (consequence of the directory change of clocks.f90)
..... fixed by PG few minutes ago!
PW interfaced to Module/fft_scalar.f90 when __FFTW is defined.
Extensive tests of parallel and serial execution for all codes,
has been done on ALPHA system.
In pw_examples/example6 found a problem in parallel execution with 4 procs,
related to stdin (I've got an end of file on stdin), no problem
for the serial execution.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@176 c92efa57-630b-4861-b058-cf58834340f0
2003-04-21 21:29:49 +00:00
cavazzon 4831aaabac FPMD:
cleaning + removing of redundant files ( now in Modules )
  now FPMD rely entirely on Module/fft_scalar and Module/fft_base

CPV:
  fft drivers, in the parallel case, now rely entirely on fft_scalar
  CPV depends on FFTW only through fft_scalar which in turn calls
  the wrappers contained in clib/fft_sticks, in other words CPV and
  FPMD are now completely isolated from FFTW primitives.

PW:
  clocks.f90  moved to Modules
  scnds.f90   moved to flib

  When __AIX is defined PW now uses Module/fft_scalar drivers too.
  For testing and debugging, usage of fft_scalar or
  cft_sp drivers can be selected, for the time being, defining or undefining the
  __FFT_MODULE_DRV macro in the cft3.f90 and cft3s.f90 files.

  fft_scatter has been moved to Module/fft_base, file PW/fft_scatter.f90
  is still there for testing and debugging


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@170 c92efa57-630b-4861-b058-cf58834340f0
2003-04-20 22:22:26 +00:00
cavazzon 1b9a9caa6b Working on FFTs, added module fft_scalar that will
contain all scalar fft drivers


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@157 c92efa57-630b-4861-b058-cf58834340f0
2003-04-17 21:43:54 +00:00
cavazzon 5c35e55713 Work in progress with the FFTs.
I've added a new module, fft_types, containing
a structure for the fft data layout description, this is
common to all cades and independent to a particular grid.
This data structure will be used in few general high level fft drivers.
Another module, fft_base, contains the scatter algorithms,
and low level fft auxiliary functions.
Test with the new data structure are being done with CP and FPMD.
Yet another module, fft_scalar (not yet in the repository),
will contain the scalar wrapper to the machine specific ffts


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@149 c92efa57-630b-4861-b058-cf58834340f0
2003-04-08 22:36:18 +00:00