The make for VASP with vastcode v3.0b, VASP 5.3.2, Intel v2013.0.079 gives warnings:
mpif90 -free -names lowercase -assume byterecl -O2 -ip -c dimer.f90
dimer.F(79): warning #5117: Bad # preprocessor line
#if defined(MPI_CHAIN)
------^
dimer.F(82): warning #5117: Bad # preprocessor line
#endif
------^
then fails with
fpp -f_com=no -free -w0 chain.F chain.f90 -DMPI -DHOST=\"LinuxIFC\" -DIFC -DCACHE_SIZE=4000 -DPGF90 -Davoidalloc -DNGZhalf -DMPI_BLOCK=8000 -Duse_collective
chain.F(686): #error: #endif without #if.
make: *** [chain.o] Error 1
Any advice on a fix appreciated.
Thanks
compiling vastcode v3.0b, VASP 5.3.2, Intel v2013.0.079
Moderator: moderators
Re: compiling vastcode v3.0b, VASP 5.3.2, Intel v2013.0.079
Can you try preprocessing with cpp, just to help debug this. Perhaps the fpp has some stricter criteria about preprocessor compiler directives.
Re: compiling vastcode v3.0b, VASP 5.3.2, Intel v2013.0.079
Reverting to cpp, by commenting out the second CPP line in the Makefile:
CPP_ = ./preprocess <$*.F | /usr/bin/cpp -P -C -traditional >$*$(SUFFIX)
# this release should be fpp clean
# we now recommend fpp as preprocessor
# if this fails go back to cpp
#bham CPP_=fpp -f_com=no -free -w0 $*.F $*$(SUFFIX)
fixes this.
Thanks
CPP_ = ./preprocess <$*.F | /usr/bin/cpp -P -C -traditional >$*$(SUFFIX)
# this release should be fpp clean
# we now recommend fpp as preprocessor
# if this fails go back to cpp
#bham CPP_=fpp -f_com=no -free -w0 $*.F $*$(SUFFIX)
fixes this.
Thanks
Re: compiling vastcode v3.0b, VASP 5.3.2, Intel v2013.0.079
Ok, great. We'll clean up the code so that it is fpp compatible in the next version.
Re: compiling vastcode v3.0b, VASP 5.3.2, Intel v2013.0.079
Could you update this call when an fpp-happy version is released so I know that I can install it and revert to the vasp default way of doing things?
Thanks
Thanks
Re: compiling vastcode v3.0b, VASP 5.3.2, Intel v2013.0.079
I had this problem as well (before seeing this thread), and I seem to have solved it and the subsequent similar problems by removing all spaces before preprocessor directives in chain.F and dimer.F.
(To do this automatically, you can run the following command on the VTST files before you copy them into the VASP directory.)
sed -i 's/^[ ]\+#/#/' chain.F dimer.F
(To do this automatically, you can run the following command on the VTST files before you copy them into the VASP directory.)
sed -i 's/^[ ]\+#/#/' chain.F dimer.F