USPP managed with OpenACC
See issue #390 (closed) and merge request !1575 (merged) for shared libraries linking errors
See merge request !1554 (merged) to have the BEEF functional work with this branch
This branch contains:
- init_us_2 and init_us_2_gpu merged (init_us_2_gpu removed);
- init_us_2 is now a in a new module to allow optional arguments;
- vkb_d removed and vkb on gpu is now managed with OpenACC directives;
- --enable-openacc is set true by default in configure;
- a couple of fixes have been done in all other codes to comply with these changes.
One relevant note is that when the -acc flag was specified in CUDA_F90FLAGS and LDFLAGS some executables of the QE suite failed to compile (e.g. tddfpt, neb, gwl, etc..), due to the fact that some files had the same names of other files throughout the code, e.g. NEB/src/input.f90 was in conflict with PW/src/input.f90, TDDFPT/src/mix_pot.f90 was in conflict with LR_MODULES/mix_pot.f90...
This has been fixed by renaming one of the "duplicated" files.
There was also another issue due to the fact that turbo_spectrum.o appeared twice in the compilation line:
mpif90 turbo_spectrum.o libtddfpt.a -o exe
one explicitely and the other one inside libtddfpt.a.
This has been fixed by removing turbo_spectrum.o from libtddfpt.a in TDDFPT/src/Makefile