Molpro 2025.3.0

Webpage

https://www.molpro.net/

Version

2025.3.0

Build Environment

  • GCC 13.3.1 (gcc-toolset-13)
  • Intel MPI 2021.14.1
  • Eigen 3.4.0
  • OpenBLAS 0.3.29 (lp64) 

Files Required

  • molpro-2025.3.0.tar.gz
  • ga-5.9.tar.gz
  • hdf5-1.14.6.tar.gz
  • token

Patch files:

  • work.patch
  • patch-argos-binput.F
  • patch-cic-ItfFortranInt.h
  • patch-common_modules-common_cconf
    • Some parameter values for large CI calculations and default path of temporary directory were changed.
    • Patch files are available in /apl/molpro/2025.1.0/patches.

Build Procedure

Global Arrays 5.9

#!/bin/sh

GA_VERSION=5.9
GA_TARBALL=/home/users/${USER}/Software/GlobalArrays/${GA_VERSION}/ga-${GA_VERSION}.tar.gz

WORKDIR=/gwork/users/${USER}
INSTALL_DIR=/apl/molpro/2025.3.0/ga-5.9

PARALLEL=12

#-------------------------------------------------------------------------
umask 0022
ulimit -s unlimited

export LANG=
export LC_ALL=C
export OMP_NUM_THREADS=1

cd ${WORKDIR}
if [ -d ga-${GA_VERSION} ]; then
 mv ga-${GA_VERSION} ga_tmp
 rm -rf ga_tmp &
fi
if [ -d ${INSTALL_DIR} ]; then
 rm -rf ${INSTALL_DIR}
fi

module -s purge
module -s load gcc-toolset/13
module -s load intelmpi/2021.14.1

tar xf ${GA_TARBALL}
cd ga-${GA_VERSION}

export CFLAGS="-mpc80"
export FFLAGS="-mpc80"
export FCFLAGS="-mpc80"
export CXXFLAGS="-mpc80"

./autogen.sh
CC=mpicc CXX=mpicxx FC=mpif90 ./configure \
   --prefix=${INSTALL_DIR} \
   --with-mpi-pr \
   --enable-i8 \
   --with-blas=no \
   --with-lapack=no \
   --with-scalapack=no \
   --disable-f77

make -j${PARALLEL}
make install
make check

HDF5 1.14.6

#!/bin/sh

MOLPRO_VERSION=2025.3.0
VERSION=1.14.6
INSTALL_PREFIX=/apl/molpro/2025.3.0/hdf5-${VERSION}

BASEDIR=/home/users/${USER}/Software/HDF5/${VERSION}
TARBALL=${BASEDIR}/hdf5-${VERSION}.tar.gz
WORKDIR=/gwork/users/${USER}

PARALLEL=16
export LANG=C

#---------------------------------------------------------------------
umask 0022

module -s purge
module -s load gcc-toolset/13
module -s load intelmpi/2021.14.1

cd ${WORKDIR}
if [ -d hdf5-${VERSION} ]; then
 mv hdf5-${VERSION} hdf5-erase
 rm -rf hdf5-erase &
fi

tar zxf ${TARBALL}
cd hdf5-${VERSION}
mkdir build && cd build
cmake .. \
     -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \
     -DHDF5_BUILD_FORTRAN=ON \
     -DHDF5_ENABLE_PARALLEL=ON \
     -DMPIEXEC_MAX_NUMPROCS=${PARALLEL}
make -j${PARALLEL}
make install
make test

Molpro 2025.3.0

#!/bin/sh

MOLPRO_VERSION=2025.3.0
MOLPRO_DIRNAME=molpro-${MOLPRO_VERSION}
BASEDIR=/home/users/${USER}/Software/Molpro/${MOLPRO_VERSION}
MOLPRO_TARBALL=${BASEDIR}/${MOLPRO_DIRNAME}.tar.gz

PATCH0=${BASEDIR}/work.patch
PATCH1=${BASEDIR}/patch-argos-binput.F
PATCH2=${BASEDIR}/patch-cic-ItfFortranInt.h
PATCH3=${BASEDIR}/patch-common_modules-common_cconf

TOKEN=${BASEDIR}/token

WORKDIR=/gwork/users/${USER}
INSTALLDIR=/apl/molpro/${MOLPRO_VERSION}
GA_ROOT=${INSTALLDIR}/ga-5.9
HDF5_ROOT=${INSTALLDIR}/hdf5-1.14.6

PARALLEL=12

#------------------------------------------
umask 0022
ulimit -s unlimited

export LANG=
export LC_ALL=C
export OMP_NUM_THREADS=2

cd $WORKDIR
if [ -d ${MOLPRO_DIRNAME} ]; then
 mv ${MOLPRO_DIRNAME} molpro_tmp
 rm -rf molpro_tmp &
fi

module -s purge
module -s load gcc-toolset/13
module -s load intelmpi/2021.14.1
module -s load eigen/3.4.0
module -s load openblas/0.3.29-lp64

cd ${WORKDIR}
tar xf ${MOLPRO_TARBALL}
cd ${MOLPRO_DIRNAME}

patch -p0 < ${PATCH0}
patch -p0 < ${PATCH1}
patch -p0 < ${PATCH2}
patch -p0 < ${PATCH3}

export CFLAGS="-mpc80"
export FFLAGS="-mpc80"
export FCFLAGS="-mpc80"
export CXXFLAGS="-mpc80"
export CPPFLAGS="-I${GA_ROOT}/include -I${HDF5_ROOT}/include"
export LDFLAGS="-L${GA_ROOT}/lib -L${HDF5_ROOT}/lib"

export F77=mpif90
export F90=mpif90
export FC=mpif90
export CC=mpicc
export CXX=mpicxx
export MPIF77=mpif90
export MPICC=mpicc
export MPICXX=mpicxx

export PATH="${GA_ROOT}/bin:${PATH}" # where ga-config resides
export PATH="${HDF5_ROOT}/bin:${PATH}" # where h5pcc resides
export LD_LIBRARY_PATH="${HDF5_ROOT}/lib:${LD_LIBRARY_PATH}"

./configure --prefix=${INSTALLDIR} \
           --enable-aims \
           --enable-slater \
           --enable-openmp \
           --with-lapack="-L/apl/openblas/0.3.29/lp64/lib -lopenblas"

make -j ${PARALLEL}
cp ${TOKEN} lib/.token

make install
MOLPRO_OPTIONS="" make quicktest
MOLPRO_OPTIONS="-n2" make test

cp -a testjobs ${INSTALLDIR}/molpro*
cp -a bench ${INSTALLDIR}/molpro*

Tests

All test tests of GA and Molpro were passed successfully.

MPI_TEST_H5_f90_ph5_f90_filtered_writes_no_sel test of HDF5-1.14.6 failed. Test log is available in /apl/molpro/2025.3.0/hdf5-1.14.6/testlog.

Notes

  • OpenBLAS is employed as a BLAS library, since OpenBLAS version shows better performance than MKL one for some jobs.
  • GCC14 + GA-5.9.2 + Intel MPI 2021.16.1 version sometimes hung at the very beginning stage if large number of MPI processes are employed (confirmed with 64 MPI procs).
    • The cause is unknown. The affected jobs appear to have entered a deadlock during the initialization of GA.
    • The specific conditions under which it occurs have not yet been determined.
    • This issue has not been observed for GCC13 + GA-5.9 + Intel MPI 2021.14.1 build so far.
  • HDF5 with parallel support is required for this version.
  • We attempted to build Molpro with cmake, but the build failed.
    • GMB can be enabled only via cmake? Configure does not have an option for GMB.
  • GA also supports build with cmake. However, that build does not install ga-config?
    • (Tested with GA-5.9.2.  Not tested with GA-5.9.)