Module "spin_orb" merged into "noncollin_module": there is little logic in
having two small modules ("upf_spinorb" is the other one) for a handful of
spin-orbit related variables. Morever "noncollin_module" and "spin_orb" are
almost everywhere USEd together.
BEWARE: may break external codes using QE routines.
The list of all general-purpose modules is defined once and for all in make.inc
and used everywhere. Can be further improved. IMPORTANT: re-run configure!
questionable usefulness) in upf%grid%, and finally another one in module atom,
pointing to the former, or vice versa. The latter was set when the pseudo file
were read. I don't think this makes sense, so I removed upf%grid and set up the
grid in module atom after the upf variable is read.
BEWARE: not sure I correctly decyphered the (il)logic of grids in atomic/src/.
Additionally: fixed a few more glitches in the broadcast of upf%.
Most of the changes consist in small updates to Makefile and make.depend and
in the replacement of module "parameters" with "upf_params" whenever variables
lmaxx and lqmax are USEd. Routine "read_pseudo" moved back to Modules/;
"simpsn" moved to upflib/; a copy of "matches" temporarily added to upflib/
Note that everything compiles (except EPW) but nothing has been tested yet!
- mp_world and world_comm should be used only in MPI initialization,
not directly in codes - replaced by mp_images and intra_image_comm
(except in a few cases whose usage is unclear to me)
- mp_global should be used only to provide initialization routines
mp_startup, mp_global_end
- specific mp_* modules should be used for parallelization level on *
(* = images, pools, bands, orhtoh, ...)
Nothing actually changes (I hope) but things will look cleaner if the module
for the required parallelization level is USEd instead of a generic one that
does too meny things at the same time. The final goal of this operation is to
better disentangle the various parallelization levels and to have a better
organized, more granular MPI initialization that does not introduces artificial
and meaningless dependencies. Not done for: PHonon, CPV, TDDFPT, GWW, EPW
uneeded relinking; the mysterious "tldeps" machinery modified accordingly;
added explicit dependencies to GWW targets to prevent (once again) problems
with make -j (seems to work now). make.depend updated (once again).