We implemented the new vdW-DF type functionals vdW-DF3-opt1, vdW-DF3-opt2, and
vdW-DF-C6. For purposes of non-local functional implementation and evaluation,
we also grouped similar implementations into ranges for the "inlc" variable. To
this end, we have reserved inlc=1 to inlc=25 for vdW-DF development and we
moved rVV10 to inlc=26. This allows for a cleaner code when parsing through the
various non-local functionals. In addition, we have removed all instances of
"inlc" and "get_inlc" in several source files where they are no longer needed.
This work was performed by T. Thonhauser and is supported by NSF Grant No.
1712425.
The old restriction on allocatable arrays in derived type no longer applies,
so all pointers in the derived-type upf variables are converted to allocatable
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!
1. FLUSH is an intrisic function
2. to continuate a string, you must end the firt line AND start the second with an '&'
3. missing comma in format string
- to avoid unneeded dependencies: currently each and every code that initializes mpi depends upon LAXlib,
including those that never diagonalize a matrix (e.g., ld1.x). This is completely ridiculous.
- to be free to choose the parallelization of linear algebra after data is read and metabolized.
It used to be done like that some time ago, by the way.
IMPORTANT NOTICE: all codes that use parallelization of linear algebra MUST explicitly call mp_start_diag.
Currently this is done by: cp.x, pw.x, neb.x, ph.x, projwfc.x. All other codes cannot currently use linear
algebra parallelization (linear algebra will run on 1 processor).
impossible clashes with LIBS as defined by the OS or as used by the configure's
of external libraries (e.g. FoX, for which one such problem has been reported)
Since github and gitlab just distribute a snapshot of the git repository,
these files must be in the repository as well. NOTA BENE:
All changes MUST GO TO *.tex or *.def FILES, NOT to these files!
Also note that the "make doc" machinery produces also *.xml files and
latex2html converted html versions of latex files. I don't think they belong
to the repository (latex files should maybe be replaced by md files)
in ld1_writeout a ios variable was passed to
errore as IERR flag without initialization. When the program is
compiled with PGI this usually causes an unwanted stop.
Added write out of upf files with pp_pseudo schema:
ld1 can now write with the pp_pseudo schema if the use_xsd logical
variable is given in the inputp namelist with value .true.
writing routines have been somewhat reorganized, the write_upf_module
provides now the interface for both writing routines, actual code is
instead in two specific modules. The pseudo_config type and the
nullify_pseudo config subroutine have been moved in pseudo_types.f90
write_upf_v2.f90 modified to use FoX libraries instead of iotk
cleanup and documentation added.