aradi / SCPC-Method

21 stars 14 forks source link

vasp.6.2.0 compiling issue #4

Closed Staystrongman closed 3 years ago

Staystrongman commented 3 years ago

Hello,

When I try to compile the scpc version of vasp.6.2.1, I met the following issue:

if [ ! -d build/std ] ; then mkdir build/std ; fi; cp src/makefile src/.objects src/makedeps.awk makefile.include build/std ; make -C build/std VERSION=std cleandependencies -j1 make[1]: Entering directory '/home/ruishen/DFT_codes/vasp.6.2.0-scpc/build/std' rm -f .depend make[1]: Leaving directory '/home/ruishen/DFT_codes/vasp.6.2.0-scpc/build/std' make -C build/std VERSION=std all make[1]: Entering directory '/home/ruishen/DFT_codes/vasp.6.2.0-scpc/build/std' rsync -ru ../../src/lib . cp makefile.include lib make -C lib -j1 make[2]: Entering directory '/home/ruishen/DFT_codes/vasp.6.2.0-scpc/build/std/lib' make libdmy.a make[3]: Entering directory '/home/ruishen/DFT_codes/vasp.6.2.0-scpc/build/std/lib' make[3]: 'libdmy.a' is up to date. make[3]: Leaving directory '/home/ruishen/DFT_codes/vasp.6.2.0-scpc/build/std/lib' make[2]: Leaving directory '/home/ruishen/DFT_codes/vasp.6.2.0-scpc/build/std/lib' rsync -ru ../../src/parser . cp makefile.include parser make -C parser -j1 make[2]: Entering directory '/home/ruishen/DFT_codes/vasp.6.2.0-scpc/build/std/parser' make libparser.a make[3]: Entering directory '/home/ruishen/DFT_codes/vasp.6.2.0-scpc/build/std/parser' make[3]: 'libparser.a' is up to date. make[3]: Leaving directory '/home/ruishen/DFT_codes/vasp.6.2.0-scpc/build/std/parser' make[2]: Leaving directory '/home/ruishen/DFT_codes/vasp.6.2.0-scpc/build/std/parser' rsync -u ../../src/.F ../../src/.inc . rm -f vasp ; make vasp ; cp vasp ../../bin/vasp_std

make[2]: Entering directory '/home/ruishen/DFT_codes/vasp.6.2.0-scpc/build/std' mpiifort -free -names lowercase -assume byterecl -w -xHOST -O3 -xHOST -I/home/ruishen/intel/oneapi/mkl/2021.3.0/include/fftw -I/home/ruishen/DFT_codes/dl_mg_3.0/lib -I/home/ruishen/DFT_codes/pspfft/1.0/include -c scpc.f90 scpc.F(1124): error #7013: This module file was not generated by any release of this compiler. [PSPFFT] use pspfft ----------^ scpc.F(1129): error #6457: This derived type name has not been declared. [ARRAYREAL_3D_BASE] type(arrayReal_3d_base) :: ar(3) -----------^ scpc.F(1131): error #6457: This derived type name has not been declared. [VARIABLEARRAYREAL_3D_GROUPBASE] type(variableArrayReal_3d_groupBase) :: var(1) -----------^ scpc.F(1133): error #6683: A kind type parameter must be a compile-time constant. [KR] real(kr) :: cellWidth(3) -----------^ scpc.F(1134): error #6457: This derived type name has not been declared. [PSPFFT_FORM] type(pspfft_form), pointer :: ps -----------^ scpc.F(1172): error #7013: This module file was not generated by any release of this compiler. [DL_MG] use DL_mg ----------^ scpc.F(1136): error #6458: This name must be the name of a variable with a derived type (structure type). [AR] allocate(ar(1)%data(scpc_set%mgx, scpc_set%mgy, scpc_set%mgz)) ---------------^ scpc.F(1137): error #6458: This name must be the name of a variable with a derived type (structure type). [AR] allocate(ar(2)%data(scpc_set%mgx, scpc_set%mgy, scpc_set%mgz)) ---------------^ scpc.F(1138): error #6458: This name must be the name of a variable with a derived type (structure type). [AR] allocate(ar(3)%data(scpc_set%mgx, scpc_set%mgy, scpc_set%mgz)) ---------------^ scpc.F(1140): error #6458: This name must be the name of a variable with a derived type (structure type). [AR] ar(1)%data = myrho ------^ scpc.F(1140): error #6366: The shapes of the array expressions do not conform. ar(1)%data = myrho ------^ scpc.F(1141): error #6458: This name must be the name of a variable with a derived type (structure type). [AR] ar(2)%data = 0.0_q ------^ scpc.F(1142): error #6458: This name must be the name of a variable with a derived type (structure type). [AR] ar(3)%data = 0.0_q ------^ scpc.F(1150): error #6404: This name does not have a type, and must have an explicit type. [VAR] call initialize(var(1), ar, variableOption = variablename) ----------------------^ scpc.F(1150): error #6632: Keyword arguments are invalid without an explicit interface. [VARIABLEOPTION] call initialize(var(1), ar, variableOption = variablename) ----------------------------------^ scpc.F(1152): error #6515: This function, which is specified as the left side of an assignment statement, is invalid. [VAR] var(1)%data(3)%data = var(1)%data(1)%data ------^ scpc.F(1152): error #6837: The leftmost part-ref in a data-ref can not be a function reference. [VAR] var(1)%data(3)%data = var(1)%data(1)%data ----------------------------^ scpc.F(1152): error #6158: The structure-name is invalid or is missing. [VAR] var(1)%data(3)%data = var(1)%data(1)%data ----------------------------^ scpc.F(1154): error #6404: This name does not have a type, and must have an explicit type. [PS] call create(ps, cellWidth, ntotalCells, MPI_comm_self) ------------------^ scpc.F(1156): error #6837: The leftmost part-ref in a data-ref can not be a function reference. [VAR] call solve(ps, var(1)%data(3:3)) ---------------------^ scpc.F(1156): error #6158: The structure-name is invalid or is missing. [VAR] call solve(ps, var(1)%data(3:3)) ---------------------^ scpc.F(1159): error #6837: The leftmost part-ref in a data-ref can not be a function reference. [VAR] mypot = var(1)%data(3)%data --------------^ scpc.F(1159): error #6158: The structure-name is invalid or is missing. [VAR] mypot = var(1)%data(3)%data --------------^ scpc.F(1163): error #6837: The leftmost part-ref in a data-ref can not be a function reference. [AR] if (allocated(ar(1)%data)) deallocate(ar(1)%data) --------------------^ scpc.F(1163): error #6158: The structure-name is invalid or is missing. [AR] if (allocated(ar(1)%data)) deallocate(ar(1)%data) --------------------^ scpc.F(1163): error #6830: The argument of the ALLOCATED intrinsic cannot be a constant or an expression. if (allocated(ar(1)%data)) deallocate(ar(1)%data) --------------------^ scpc.F(1163): error #6515: This function, which is specified as the left side of an assignment statement, is invalid. [AR] if (allocated(ar(1)%data)) deallocate(ar(1)%data) --------------------------------------------^ scpc.F(1164): error #6837: The leftmost part-ref in a data-ref can not be a function reference. [AR] if (allocated(ar(2)%data)) deallocate(ar(2)%data) --------------------^ scpc.F(1164): error #6158: The structure-name is invalid or is missing. [AR] if (allocated(ar(2)%data)) deallocate(ar(2)%data) --------------------^ scpc.F(1164): error #6830: The argument of the ALLOCATED intrinsic cannot be a constant or an expression. if (allocated(ar(2)%data)) deallocate(ar(2)%data) --------------------^ scpc.f90(1842): catastrophic error: Too many errors, exiting compilation aborted for scpc.f90 (code 1) makefile:181: recipe for target 'scpc.o' failed make[2]: [scpc.o] Error 1 make[2]: Leaving directory '/home/ruishen/DFT_codes/vasp.6.2.0-scpc/build/std' cp: cannot stat 'vasp': No such file or directory makefile:146: recipe for target 'all' failed make[1]: [all] Error 1 make[1]: Leaving directory '/home/ruishen/DFT_codes/vasp.6.2.0-scpc/build/std' makefile:6: recipe for target 'std' failed make: *** [std] Error 2

My makefile is included here:

Precompiler options

CPP_OPTIONS= -DHOST=\"LinuxIFC\"\ -DMPI -DMPI_BLOCK=8000 -Duse_collective \ -DscaLAPACK \ -DCACHE_SIZE=4000 \ -Davoidalloc \ -Dvasp6 \ -Duse_bse_te \ -Dtbdyn \ -Dfock_dblbuf \ -DSCPC \

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

FC = mpiifort FCL = mpiifort -mkl=sequential

FREE = -free -names lowercase

FFLAGS = -assume byterecl -w -xHOST OFLAG = -O3 -xHOST OFLAG_IN = $(OFLAG) DEBUG = -O0

MKL_PATH = $(MKLROOT)/lib/intel64 BLAS = LAPACK = BLACS = -lmkl_blacs_intelmpi_lp64 SCALAPACK = $(MKL_PATH)/libmkl_scalapack_lp64.a $(BLACS)

OBJECTS = fftmpiw.o fftmpi_map.o fft3dlib.o fftw3d.o

INCS =-I$(MKLROOT)/include/fftw

LLIBS = $(SCALAPACK) $(LAPACK) $(BLAS)

SCPC METHOD

LIBEXT = /home/ruishen/DFT_codes DLMGROOT = $(LIBEXT)/dl_mg_3.0 PSPFFTROOT = $(LIBEXT)/pspfft/1.0 INCS +=-I$(DLMGROOT)/lib INCS +=-I$(PSPFFTROOT)/include LLIBS +=-Wl,--start-group $(DLMGROOT)/lib/libdlmg.a -Wl,--end-group LLIBS +=-Wl,--start-group $(PSPFFTROOT)/lib/libpspfft.a -Wl,--end-group

SCPC METHOD

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 getshmem.o

For the parser library

CXX_PARS = icpc LLIBS += -lstdc++

Normally no need to change this

SRCDIR = ../../src BINDIR = ../../bin

================================================

GPU Stuff

I used Intel oneAPI suite for compiling. What could lead to this problem and what should I do to compile it successfully? Thanks a lot for your kind help!

isobestico commented 3 years ago

Dear user,

I have checked your long post and I've also verified that you have added -DSCPC and modified the makefile to point to your own compilation of pspfft and dl_mg. However, there still have something wrong with your compilation setup.

One possible issue is that you have compiled dl_mg and pspfft with different compiler rather than intel, this is what the error reported to you.

scpc.F(1124): error #7013: This module file was not generated by any release of this compiler. [PSPFFT] use pspfft

You have to compile and install the external libraries using exactly the same compiler you are going to use to compile VASP.