psmp build - error with Intel compiler

Ondrej Marsalek ondrej.... at gmail.com
Wed Jan 5 19:54:09 CET 2011


Dear all,

I am trying to build a psmp version of CP2K, the 2_1 branch, checked
out on 2011-01-03. I use the Intel compiler, version 11.1.073. Other
factors don't seem to be important, but if they are, I'll provide more
information. Without OpenMP, the build is just fine (passes all tests)
with an otherwise identical arch file.

Unfortunately, with OpenMP, I get the following error:


mpif90 -openmp -c -D__INTEL -D__FFTSG -D__parallel -D__BLACS
-D__SCALAPACK -D__FFTW3 -D__LIBINT -D__HAS_ISO_C_BINDING
-I/home/marsalek/opt/fftw-3.2.2-intel/double/include -heap-arrays 64
-msse3 -free -O3 -funroll-loops
-D__COMPILE_ARCH="\"Linux-x86-64-intel\"" -D__COMPILE_DATE="\"Wed Jan
5 19:26:17 CET 2011\"" -D__COMPILE_HOST="\"oxygen\""
-D__COMPILE_LASTCVS="\"D/lib////\""
/home/marsalek/build/cp2k-2_1/cp2k/makefiles/../src/lib/dbcsr_methods.F
/home/marsalek/build/cp2k-2_1/cp2k/makefiles/../src/lib/dbcsr_methods.F(1181):
error #7636: This statement or directive is not permitted within the
body of an OpenMP SINGLE directive
    FORALL (t = 1:nrows)
----^
/home/marsalek/build/cp2k-2_1/cp2k/makefiles/../src/lib/dbcsr_methods.F(1183):
error #7636: This statement or directive is not permitted within the
body of an OpenMP SINGLE directive
    END FORALL
----^
compilation aborted for
/home/marsalek/build/cp2k-2_1/cp2k/makefiles/../src/lib/dbcsr_methods.F
(code 1)


I have found this discussion:

http://software.intel.com/en-us/forums/showthread.php?t=77885

and based on that I have moved the offending FORALL outside the SINGLE
directive. The build went fine but I have not run the tests yet. Is
the compiler (version) to blame, or should this be fixed in CP2K?

Thanks,
Ondrej



More information about the CP2K-user mailing list