- simplified ionic positions management in FPMD ( many staff moved to
Modules/ions_base.f90
- sort_gvec.f90 ( a part of ggen common to FPMD and CP )
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@794 c92efa57-630b-4861-b058-cf58834340f0
PW: nqfm => nqfx, some us variables and aainit moved to Modules/uspp.f90 (new)
CP: lx, lqx => lqmax, lix => lmaxx+1, variables moved, aainit not yet merged
invmat moved to flib/ and merged with invmat3 of CP/FPMD,
rndm and ylmr2 moved to flib/ in rranf.f90
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@793 c92efa57-630b-4861-b058-cf58834340f0
and linked by all codes.
Now in case of severe error, errore writes its message also to the file 'CRASH'
that is closed before aborting, this to avoid information loss in those
systems that do not flush open streams, when the code is stopped through
a call to MPI_ABORT
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@750 c92efa57-630b-4861-b058-cf58834340f0
I do not include NEB dynamics modules in this version,
because I want to wait for common neb modules,
to be built as soon as this version has been released
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@617 c92efa57-630b-4861-b058-cf58834340f0
NEB like dynamics.
Note that iosys has been split into two subroutines:
read_input_file and iosys.
The first routine simply calls read_namelists
and read_cards to read in the stdin, and do not perform any initialization.
The second (iosys) do not read anythings but copy values from input_parameters
to local variables.
read_input_file is called from the new main program.
iosys is called from the cprmain subroutine (the old main program).
This is the scheme of FPMD.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@600 c92efa57-630b-4861-b058-cf58834340f0
- ^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
variable wf_collect added to the control namelist.
This logical variable will be used in pw to
collect wave funcions at the end of a parallel run.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@295 c92efa57-630b-4861-b058-cf58834340f0
- substitution of USE ... with USE ... ONLY ...
- directories and filenames moved to io_files,
common to all codes
- clean up in control_flags
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@290 c92efa57-630b-4861-b058-cf58834340f0
From now on, all new input variables should be added
to this module, and then copied to the code internal
variables in the input.f90 subroutine
The namelists and cards parsers are in :
Modules/read_namelists.f90 and Modules/read_cards.f90
files input_parameters.f90 read_namelists.f90 read_cards.f90
are shared by all codes, while each code has its own version
of input.f90 ( used to copy input values into internals variables ).
EXAMPLE:
suppose you need to add a new input variable called "pippo"
to the namelist control, then:
1) add pippo to the input_parameters.f90 file containing the
namelist control
INTEGER :: pippo = 0
NAMELIST / control / ....., pippo
remember: always set an initialization value!
2) add pippo to the control_default subroutine
( cantained in module read_namelists.f90 )
subroutine control_default( prog )
...
IF( prog == 'PW' ) pippo = 10
...
end subroutine
this routine set the default value for pippo,
that could vary with the code
3) add pippo to the control_bcast subroutine
( cantained in module read_namelists.f90 )
subroutine control_bcast( )
...
call mp_bcast( pippo )
...
end subroutine
4) add pippo to the control_checkin subroutine
( cantained in module read_namelists.f90 )
subroutine control_checking( prog )
...
IF( pippo < 0 ) &
CALL error(' control_checkin ',' variable pippo less than 0 ', 1 )
...
end subroutine
5) Copy the value of pippo in the code internal variables
( file input.f90 )
subroutine iosys()
use input_parameters, only: ...., pippo
use pwcom, only: ....., myvar
...
call read_namelists( 'PW' )
...
myvar = pippo
...
end subroutine
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@282 c92efa57-630b-4861-b058-cf58834340f0
PRIVATE keyword added to all FPMD source files,
variables that have to be known outside the module
are explicitly declared as PUBLIC
CPV:
now CP uses the same input parser as FPMD
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@267 c92efa57-630b-4861-b058-cf58834340f0
This sub. share the input parsers (read_namelist and read_cards)
with FPMD. Soon it will be possible to initialize and call all
CP subroutines within FPMD, and viceversa.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@259 c92efa57-630b-4861-b058-cf58834340f0
io_base: strings with the name of the data sections added to the
restart file, this will allow R/W of data sections in any order
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@257 c92efa57-630b-4861-b058-cf58834340f0
new hpsort that should solve the problems with the unique
g vectors ordering, d1, d2, d3 eliminated from ggens of all
the codes.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@253 c92efa57-630b-4861-b058-cf58834340f0
and used by all codes,
as common latgen it has been used the one contained in CPV,
sice this version solve some problems related to left-handed cell
new common module ions_base with ionic basic variables
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@247 c92efa57-630b-4861-b058-cf58834340f0
Band extraction moved out of PP/pp.x, into PP/bands.x
Band plotting program (PP/plotband.f90) added
Misc corrections
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@244 c92efa57-630b-4861-b058-cf58834340f0
intel compiler bug workaround: it seems that the intel compiler
does not set the save attribute to the module variables unless
there is an explicit initialization, this only for module not directly
accessible to the main (if they are not in the same directory).
The workaround is to set an initial value for all variables
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@243 c92efa57-630b-4861-b058-cf58834340f0
Calls to allocate_fft, ggen moved out of setup.f90
Minor change in mix_rho to reduce memory use
CPV: Exch_corr: gradr not deallocated in some cases
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@175 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
- Startup subroutines of all codes now calls
mp_start and mp_env mp module subroutines instead of
mpi_... directly. This is a first step in the direction
of hiding the communications within a few basic modules.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@120 c92efa57-630b-4861-b058-cf58834340f0
- Some common parameters that were defined in different places for different codes,
has been move to Modules/parameters
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@106 c92efa57-630b-4861-b058-cf58834340f0
write(6,'('' so un corno '')') => write(6,'(" so un corno ")')
underscore characters must be prodected in manual.tex file if they should
not be interpreted
__FFTW => \_\_FFTW and similia
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@100 c92efa57-630b-4861-b058-cf58834340f0
all FPMD related subs moved back to FPMD directory.
2) All Make.fpmd... merged with Make.cp... and removed.
3) "use parameter .." added to all cft_3 subroutines .
4) hpsort.f90 erf.f90 simpson.f90 moved to flib .
everything seem to compile fine,
at least on IBM
carlo
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@67 c92efa57-630b-4861-b058-cf58834340f0
- some new pseudo
- some new cp_examples
- NEW shared module constants, this is the merge of FPMD and PW constants module
- NEW fpmd2upf pseudo converter (from fpmd format to upf )
carlo
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@22 c92efa57-630b-4861-b058-cf58834340f0