Page 1 of 1

Syntax error in vasp.6.4.1 minimax_functions1D.F

Posted: Wed May 17, 2023 10:00 am
by amihai_silverman1
I try to compile vasp.6.4.1std on a centos 7 cluster with
compilers: intel_oneapi2022, gcc11.2, openmpi-4.1.1.

I use makefile.include.intel_ompi_mkl_omp with a few modifications (makefile.include is attached below).
I get a syntax error.
Your help is required, Thanks.



mpif90 -fopenmp -free -w -O2 -I/usr/local/intel_oneapi2022/mkl/2022.0.2/include/fftw -I/usr/include -c minimax_functions1D.f90
minimax_functions1D.F:365:132:

365 | ZP(2)= -QDPP(1)/QDPP(12) + QDPP(3)*Z**2/QDPP(40) - (QDPP(17)*Z**4)/QDPP(672)
|
1
Error: Syntax error in argument list at (1)
minimax_functions1D.F:445:132:

445 | D2_F_BETA_LRS= -QDPP(1)/QDPP(12) + QDPP(3)*Z**2/QDPP(40) - (QDPP(17)*Z**4)/QDPP(672)
|
1
Error: Syntax error in argument list at (1)
make[2]: *** [minimax_functions1D.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory `/home/amihai/src/vasp.6.4.1/build/std'
cp: cannot stat ‘vasp’: No such file or directory
make[1]: *** [all] Error 1
make[1]: Leaving directory `/home/amihai/src/vasp.6.4.1/build/std'
make: *** [std] Error 2




]$ cat makefile.include
# Default precompiler options
CPP_OPTIONS = -DHOST=\"LinuxIFC\" \
-DMPI -DMPI_BLOCK=8000 -Duse_collective \
-DscaLAPACK \
-DCACHE_SIZE=4000 \
-Davoidalloc \
-Dvasp6 \
-Duse_bse_te \
-Dtbdyn \
-Dfock_dblbuf \
-D_OPENMP

CPP = fpp -f_com=no -free -w0 $*$(FUFFIX) $*$(SUFFIX) $(CPP_OPTIONS)

FC = mpif90 -fopenmp
FCL = mpif90

FREE = -free

FFLAGS = -w

OFLAG = -O2
OFLAG_IN = $(OFLAG)
DEBUG = -O0

OBJECTS = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o
OBJECTS_O1 += fftw3d.o fftmpi.o fftmpiw.o
OBJECTS_O2 += fft3dlib.o

# For what used to be vasp.5.lib
CPP_LIB = $(CPP)
FC_LIB = $(FC)
CC_LIB = icc
CFLAGS_LIB = -O
FFLAGS_LIB = -O1
FREE_LIB = $(FREE)

OBJECTS_LIB = linpack_double.o

# For the parser library
CXX_PARS = icpc
LLIBS = -lstdc++

##
## Customize as of this point! Of course you may change the preceding
## part of this file as well if you like, but it should rarely be
## necessary ...
##

# When compiling on the target machine itself, change this to the
# relevant target when cross-compiling for another architecture
#VASP_TARGET_CPU ?= -xHOST
#FFLAGS += $(VASP_TARGET_CPU)

# Intel MKL for FFTW, BLAS, LAPACK, and scaLAPACK
# (Note: for Intel Parallel Studio's MKL use -mkl instead of -qmkl)
FCL += -mkl
MKLROOT ?= /usr/local/intel_oneapi2022/mkl/2022.0.2
INCS =-I$(MKLROOT)/include/fftw

# Use a separate scaLAPACK installation (optional but recommended in combination with OpenMPI)
# Comment out the two lines below if you want to use scaLAPACK from MKL instead
##SCALAPACK_ROOT ?= /path/to/your/scalapack/installation
##LLIBS += -L${SCALAPACK_ROOT}/lib -lscalapack

# HDF5-support (optional but strongly recommended)
CPP_OPTIONS+= -DVASP_HDF5
#HDF5_ROOT ?= /path/to/your/hdf5/installation
#LLIBS += -L$(HDF5_ROOT)/lib -lhdf5_fortran
LLIBS += -L/usr/lib64 -lhdf5_fortran
INCS += -I/usr/include

# For the VASP-2-Wannier90 interface (optional)
#CPP_OPTIONS += -DVASP2WANNIER90
#WANNIER90_ROOT ?= /path/to/your/wannier90/installation
#LLIBS += -L$(WANNIER90_ROOT)/lib -lwannier

# For the fftlib library (hardly any benefit in combination with MKL's FFTs)
#CPP_OPTION += -Dsysv
#FCL = mpif90 fftlib.o -qmkl
#CXX_FFTLIB = icpc -qopenmp -std=c++11 -DFFTLIB_USE_MKL -DFFTLIB_THREADSAFE
#INCS_FFTLIB = -I./include -I$(MKLROOT)/include/fftw
#LIBS += fftlib

Re: Syntax error in vasp.6.4.1 minimax_functions1D.F

Posted: Fri May 19, 2023 2:18 pm
by andreas.singraber
Hello!

First of all, is there a specific reason for your choice of the template makefile.include.intel_ompi_mkl_omp? This will combine the Intel compiler with OpenMPI and Intel's MKL, built with OpenMP support. Are you sure you want to avoid Intel's MPI? An all-Intel build will be much simpler (makefile.include.intel_omp template).

In any case, your modifications of the template make me suspect that your mpif90 is not using the Intel compiler and hence the compilation fails. Can you please check and report what the following commands return:

Code: Select all

mpif90 --version
mpif90 -show
You need to make sure that mpif90 is actually an alias to the the Intel compiler while at the same time using OpenMPI include paths.

Also please note that your OpenMPI version 4.1.1 is affected by a bug, see the footnote on our Toolchains Wiki page:
A bug in OpenMPI versions 4.0.4-4.1.1 causes a memory leak in some ScaLAPACK calls. This mainly affects long molecular-dynamics runs. This issue is fixed as of openmpi-4.1.2.
Best,
Andreas Singraber

Re: Syntax error in vasp.6.4.1 minimax_functions1D.F

Posted: Sun May 21, 2023 5:59 am
by amihai_silverman1
Thank you so much for your instant reply,
Compilation using makefile.include.intel completed properly.
Is there an advantage to the code performance if it is built with OpenMP ?

Amihai