Molcas 8.2 for PRIMERGY

Webpage

http://www.molcas.org/

Version

8.2

Tools for Compiling

  • Intel Compiler 17.0.4.196
  • Intel MPI 2017.4.196
  • Intel MKL 2017.4.196

Necessary Files for Compiling

  • molcas82.tar.gz
  • license.dat

Attention

  • Compile option "-xSSE4.2" is set because verification  would be failed with "-xAVX".
  • Unless ./configure is executed twice, the built-in blas routine is used.
  • For compatibility with  Intel MPI, we modified some integer variables to 8 byte integer type.

Procedure of Compiling

#!/bin/csh -f
umask 022
set file_molcas=/home/users/${USER}/build/molcas82/molcas82.tar.gz
set file_license=/home/users/${USER}/build/molcas82/license.dat
set work=/work/users/${USER}
set prefix=/local/apl/pg/molcas82
#------------------------------------------------------------------------------
source /opt/intel/compilers_and_libraries_2017.4.196//linux/bin/compilervars.csh intel64
#------------------------------------------------------------------------------
cd ${work}
if (-d molcas82) then
  rm -rf molcas82
endif
tar xzf ${file_molcas}
cd molcas82
cp ${file_license} .
chmod 644 license.dat
chmod 700 src
mkdir bin
cp sbin/molcas.driver bin/molcas
chmod +x bin/molcas
#
sed -i "s/-O2/-O2 -xSSE4.2/" cfg/intel.comp   # ... ?
#
setenv PATH ${prefix}/bin:$PATH
setenv MOLCAS_NPROCS 1
# (Workaround) Need to execute './configure' twice.
#---
./configure -compiler intel -parallel -mpiroot ${I_MPI_ROOT} -mpirun ${I_MPI_ROOT}/intel64/bin/mpirun -blas MKL -blas_lib '-mkl -static-intel' -noprompt
./configure -compiler intel -parallel -mpiroot ${I_MPI_ROOT} -mpirun ${I_MPI_ROOT}/intel64/bin/mpirun -blas MKL -blas_lib '-mkl -static-intel' -noprompt
# (Workaround for parallel compilation)
sed -i 's/all: build/all: build\nutils: ${UTILS}/' Makefile
sed -i 's/^\${UTILS}: .*/${UTILS}: ${DIRS} ${EXTERNALS} ${MODULES}/' Makefile
sed -i 's/\${UTILS} \$/utils $/' Makefile
# (Workaround for intel compiler)
sed -i 's/\(SUBROUTINE CHO_SETMAXSHL.*\)/\1\n\!DIR\$ NOOPTIMIZE/' src/cholesky_util/cho_setmaxshl.f
sed -i 's/INTEGER\*4 NPROCS/INTEGER*8 NPROCS/' src/caspt2/chovec_io.f
sed -i 's/INTEGER\*4 IERROR4/INTEGER*8 IERROR4/' src/caspt2/chovec_io.f
sed -i 's/integer\*4 :: rc4, ierr4/integer*8 :: rc4, ierr4/' src/system_util/xabort.f
#
make Driver
# Alternative command "make -j 12 utils"
grep -E '^UTILS' Makefile | sed 's/UTILS *= //' | xargs -P 12 -n 1 make
# Alternative command "make -j 12 build"
grep -E '^PROGRAMS' Makefile | sed 's/PROGRAMS = //' | xargs -P 12 -n 1 make
make build
setenv MOLCAS_NPROCS 4
molcas verify