I used a makefile.nec provided with the source code.
Here is a list of options I used:
Code: Select all
-DNECSX -Ddo_loops -Duse_collective -DEXP_TIME -DCACHE_SIZE -Dsingle_BLAS -Dkind8
-DMPI -DNGZhalf -Dvector -DUSE_ERF -Davoidalloc
Another source of errors was replacement by preprocessor of all instances of ERRF(x) with ERF(x). This is normal behavior if preprocessor variable USE_ERF is set. However, the coding in some places is done without taking it into account. The line
Code: Select all
REAL(q), EXTERNAL :: ERRF
Code: Select all
REAL(q), EXTERNAL :: ERF()
Code: Select all
#if ! defined(USE_ERF)
REAL(q), EXTERNAL :: ERRF
#endif
Mysterious thing happened with acfdt.F: all instances of SX were replaced with 1. Obviously it should be preprocessor who did it, but I was unable to find where it was done (certainly not in symbol.inc or in the acfdt.F itself). To overcome the problem I just renamed SX to sxx.
Then compilation went through and I confronted with link errors.
The name GGA91_WB_RY was not defined. This subroutine should be called if preprocessor variable vector is defined.
However, in VASP 5.2 this branch of code was probably not tested yet and the code for it is absent.
As an auxiliary solution I've copied related code from the old version, but I am sure that it is not the right decision. Here the changes from vasp-group are required.
Similar situation is with fftmpi.F. Calls to subroutines fftmakeplan, fftini, fftwav and fft3d are not resolved.
Help from the vasp developers is highly appreciated!