Additions have been made to PW/src/dynamics_module.f90, and to PW/src/input.f90 to allow for options svr (or SVR, or Svr) as ion_temperature (IONS card).
Furthermore, 2 functions were added to Modules/random_numbers.f90: the first function to calculate \sum_i R^2, where R is drawn from the normal distribution,
the second to draw a gamma-distributed random number.
No previous code was touched in this commit, only new functions and cases added.
I updated changelog and documentation.
TODO: future issue and commit, if needed, to implementent SVR to fcp.f90 and vcsmd.f90. Both should be fairly straightforward!
1. parallelization on atoms in DFT-D2 made uniform with other cases
2. phonon check added: gamma_gama tricks and el-ph are incompatible
3. cleaning shell cleaned up
name qexsd_readschema. Still not working for CP: it requires a way to read
CP-specific stuff without introducing CP-specific variables. Note: the routine
is now a function returning an error code (-1: no input, 0: all right, 1: no
file, 2-4: error reading general, parallel, output objects) that must be tested
in the calling program.
Routines filling xml objects: qexsd_init_*, with QE variables passed as
arguments, taken out from qexsd_module and moved to a separate qexsd_init
module in file Modules/qexsd_init.f90. In the process, some unused variables
have been removed and make.depend updated.
No true changes and no side effect expected, just some re-ordering.
There are still some qexsd_init_* routines that either follow a different
logic, or that are called inside routines in qexsd_module (notably: general,
parallel, timing info, MD steps) that write the xml file, or that contain
references to QE modules. These will be fixed sooner or later.
* The printout of ibrav in xml data file could be wrong if the
initializing routine had to be called multiple times because of the
missed iinitialization of optional pointers to NULL pointer.
* to describe cases with ibrav < 0 the new boolean attribute
use_alternative_axes has been added to the atomic_structure element
in the xml schema, ibrav < 0 corresponds to bravais_index = abs(ibrav)
and use_alternative_axes = .true.
* more pointers to optional arguments are now initialized run time for
the same reason
cause strange crashes in spin-polarized phonon calculations.
In spite of a recent extensive review, the phonon makefile did not have all
needed dependencies in place: changes to Modules/ were ignored by "make ph"
Copy of the xml tags into QE variables is now performed by same routines
in qexsd_copy for both PW and CP. Initialization of occupations is done
in new routine "set_occupations" both when reading from file and when
starting from input data.