Molpro
Molpro is a collection of ab initio programs for molecular electronic structure calculations.
OpenMP
Part of Molpro's code can make use of OpenMP as a mechanism for parallelisation, although in the Molpro documentation this is not advised.
If one does, nevertheless, want to use OpenMPl, the following script shows how the job must be configured.
#!/bin/bash
#SBATCH --job-name=molpro_openmp
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=4
#SBATCH --mem-per-cpu=8000
#SBATCH --nodes=1-1
#SBATCH --partition=main
#SBATCH --mail-type=end
#SBATCH --qos=standard
#SBATCH --time=7-00:00:00
export INPUT=example.inp
module purge
module add Molpro/mpp-2019.1.0.linux_x86_64_openmp
module add NBO
export NBOEXE=${EBNBOROOT}/bin/nbo7.i8.exe
export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK}
export INTDIR=/localscratch/${USER}/molpro/int.${SLURM_JOBID}
mkdir -p ${INTDIR}
export WFUDIR=/localscratch/${USER}/molpro/wfu.${SLURM_JOBID}
mkdir -p ${WFUDIR}
export SCRATCHDIR=/localscratch/${USER}/molpro/tmp.${SLURM_JOBID}
if [ -d ${SCRATCHDIR} ]; then
echo "${SCRATCHDIR} exists; double job start; exit"
exit 1
fi
mkdir -p ${SCRATCHDIR}
export PROJECT=`pwd`
cd ${PROJECT}
molpro -n ${SLURM_CPUS_PER_TASK} -d ${SCRATCHDIR} -I${INTDIR} -W${WFUDIR} ${PROJECT}/${INPUT}
## Clean up
if [ -s ${SCRATCHDIR} ]; then
echo "Data left in ${SCRATCHDIR}; Please remove it manually!"
else
rmdir ${SCRATCHDIR}
fi