- 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
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
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
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
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
- 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
- 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
..... 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
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
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