2024-07-25 10:27:17 +02:00

1162 lines
53 KiB
Bash
Executable File

#!/bin/bash
shopt -qs extglob
###############################################################
#
# bash script to build MRCC executables
#
###############################################################
###############################################################
#
# functions used in the build.mrcc script
# to print messages
#
###############################################################
###############################################################
# (evident) called at the begining of build.mrcc
# if there are no command line parameters present
# ||
# ||
# \/
f_print_help(){
echo "########################################################################"
# echo "Usage: build.mrcc compiler [-i32|64] [-pMPI|OMP] [-g] [-d] [-Q]"
echo "Usage:"
echo " build.mrcc <compiler> [-i32|64] [-pMPI|OMP] [-g] [-d] [-f<folder>] [-l<library>] [-L<path>] [-nomkl] [-s]"
echo " where <compiler> can be:"
echo " Intel - Intel compiler;"
echo " GNU - GNU compiler;"
echo " PGF - Portland Group Fortran compiler;"
echo " G95 - G95 Fortran 95 compiler and MKL;"
echo " PATH - Pathscale compiler;"
echo " HP - HP Fortran Compiler;"
echo " DEC - Compaq Fortran Compiler (DEC machines);"
echo " XLF - XL Fortran Compiler (IBM machines);"
echo " Solaris10 - Sun Solaris10 and Studio10 Fortran Compiler (AMD64)."
echo
echo "Optional arguments:"
echo " -i Length of integer variables: 32 or 64 bits. Default: 64 for 64-bit"
echo " machines; 32 otherwise."
echo " -p Generates parallel code using MPI (available with PGF, Intel, GNU"
echo " and Solaris10) or OpenMP (available with PGF, Intel, GNU, and HP)"
echo " technologies. Default: no parallelization."
echo " -g Codes are compiled with debugging option"
echo " -d Codes are compiled for development, no optimization is performed"
echo " -f Specifies the installation folder. Executables, basis set"
echo " libraries, etc. will be copied to directory <folder>"
echo " -l mrcc is linked with an external library, for more details see the"
echo " manual"
echo " -L Adds <path> to the library search path when linking"
echo " -nomkl Turns off linking with Intel MKL library when the Intel "
echo " compiler is used"
echo " -s mrcc is linked statically"
# echo " -Q The Q5Cost libraries are linked"
# echo " -h print out this message and exit"
echo
echo "Example:"
echo " To compile the program with Intel compiler for OpenMP parallel"
echo " execution and to install it to the /prog/mrcc directory run"
echo " build.mrcc as"
echo " build.mrcc Intel -pOMP -f/prog/mrcc"
echo "########################################################################"
}
###############################################################
# (evident) called to print out error messages
# mainly used when the not-supported combinations are checked
# ||
# ||
# \/
f_print_error(){
echo "ERROR: $2 is not supported for $1! "
}
###############################################################
# source the function definitions used in this script
# ||
# ||
# \/
#. build.mrcc.functions.messages
. build.mrcc.config
clear
echo "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"
echo
echo -en "\\033[0;32m"
echo " MRCC installation "
echo -en "\\033[0;39m"
echo
if [ $# -lt 1 ]; # at least the compiler system is need to be specified
then
f_print_help;
exit;
fi
###############################################################
# set the default values
# ||
# ||
# \/
export bstat="yes" #build status
fls=""
para=""
debug=""
devel=""
q5cost=""
ompopt=""
intopt=""
extralibs=""
libxclib=""
libxcinc=""
pcmlib=""
pcminc=""
pcmfiles=""
pcmobj=""
xalloc="xalloc.c"
machine="unknown"
kernel="unknown"
omp="off"
mpi="off"
mpi_impl=""
static="off"
usemkl="on"
test /bin/uname && machine="`uname -m`"
test /bin/uname && kernel="`uname -s`"
mrccstuff="hessgrad embedgrad mrcc_manager mrcc_manager_main mrcc goldstone lambda sacc pert combin mem qsorti xmrcc xlambda xpert xmem dcommunicate3 dmrcc domain flush mrcc_f12 integ ecp teint dfint df3int dfintloc df2intsubs dfint_triplets brasub intsub hrrspher dfint_triplets_rangesep intsub_rangesep df2intsubs_rangesep ellip orbloc boys localize mulli scf_embed scf fock diis ccsd uccsd minp ovirt prop propcore denschol pml bopu drpa ldrpa loccis drpagrad dft calcorb calcorbd calcorbh func pssp semint_shc laplace qmmod_handler qmmod_moselect qmmod_embed qmmod_huziqmmm qmmod optim basopt cis cis2 geomopt compmod z2c freqdrv assembly mp2f12 oneint oneint_sh oneint_shc nucint nucint_shc onein1 onein1_sh onein1_shc nuceq1 nuceq1_shc nucat1 nucat1_shc mulint_shc intsub_ader hrrsub_ader intsub_bder hrrsub_bder intsub_cder hrrsub_cder brasub_1der ketsub_1der rearrsubs sphersubs dfintder1c dprscr dprscrsubs dfint_triplets_3der intsub_3der hrrsub_3der brasub_3der derspher_3der ccsdmain local driver uccsdmain ldfzvec ldfgrad subspace_solver"
mrccexe="dmrcc mrcc xmrcc goldstone integ scf orbloc ccsd uccsd ovirt minp prop drpa cis mp2f12 mulli qmmod dirac_mointegral_export"
if [ x$kernel == "xDarwin" ];
then machine="x86_64"
fi
if ([ x$machine == "xi386" ] || [ x$machine == "xi686" ] || [ x$machine == "xPower Macintosh" ]);
then int="INT32"
else int="INT64"
fi
echo $* > build.info_new
rebuild="no"
#???
test -f build.info || rebuild="yes"
#rebuild="no"
#if [ -f build.info ] || [ x$rebuild == "xyes" ]; then echo "???"
#fi
if [ x$rebuild == "xno" ];
then
if [ `diff build.info build.info_new | wc -l | sed "s/ //g"` != "0" ]; #???
then rebuild="yes"
fi
fi
mv build.info_new build.info
###############################################################
# processing the optional arguments
# ||
# ||
# \/
ii=0
for i in $*
do
ii=`expr $ii + 1`
if [ $ii -gt 1 ];
then
arv=`echo $i | sed 's/-.//' | sed 's/\///g'`
if [ x$arv == 'x' -o x$i == "x-nomkl" ];
then arg=$i
else arg=`echo $i | sed 's/\///g' | sed "s/$arv//g" | sed "s/=.*//g"`
fi
case $arg in
"-i") int="INT"$arv;;
"-p") para=`echo $arv | sed "s/=.*//"`
case $para in
"OMP")
omp="on";;
"OpenMP")
omp="on";;
"MPI")
mpi="on";
mrccexe="$mrccexe dmrcc_mpi mrcc_mpi xmrcc_mpi ccsd_mpi scf_mpi drpa_mpi mrcc_manager";
mpi_impl=`echo $arv | sed "s/MPI//" | sed "s/=//"`;;
esac ;;
"-g") debug="-g";;
"-d") devel="on";;
"-f") instdir=`echo $i | sed 's/-.//g'`;;
"-L") extralibs="$extralibs $i";;
"-l") case $arv in
"libxc")
libxcinc="-DLIBXC -I$LIBS_LIBXC/include";
libxclib="-L$LIBS_LIBXC/lib -lxcf03 -lxc -lm";
test -d $LIBS_LIBXC/lib64 && libxclib="-L$LIBS_LIBXC/lib64 -lxcf03 -lxc -lm";;
"pcm")
pcminc="-DPCM";
test -d $LIBS_PCM/lib64 && pcmlib="-L$LIBS_PCM/lib64 -lpcm" || pcmlib="-L$LIBS_PCM/lib -lpcm";
mrccstuff="$mrccstuff pcmsolver pcm"
pcmfiles="pcmsolver pcm";
pcmobj="pcmsolver.o pcm.o";;
*)
extralibs="$extralibs $i";;
esac ;;
"-nomkl") usemkl="off";;
"-Q") q5cost="on";;
"-s") static="on";;
"-h") print_help; exit;;
* ) echo "Unknown option $i"; exit;;
esac
fi
done
if [ "x$pcmlib" != "x" -a x$static != "x" ]
then
pcmlib="$pcmlib -lstdc++ -lz"
pcmlibmpi="-Bstatic $pcmlib -Bdynamic -lstdc++" # -lz"
# pcmlib="$pcmlib /usr/lib/gcc/x86_64-linux-gnu/5.4.0/libgfortran.a"
# pcmlib="$pcmlib -lquadmath"
fi
if [ x$mpi == "xon" ]
then
mpiopts="-DMPI"
if [ x$mpi_impl == "x" -a $1 == "Intel" ]
then
mpi_impl="IntelMPI"
fi
if [ x$mpi_impl == "xIntelMPI" ]
then
compileropts="$compileropts -DINTELMPI"
fi
if [ x$mpi_impl == "xOpenMPI" ]
then
compileropts="$compileropts -DOPENMPI"
fi
fi
###############################################################
# setup options for the selected compiler system
# the appropriate functions are defined in
# the build.mrcc.functions.compilers file
# ||
# ||
# \/
case $1 in
"GNU" ) f_GNU;;
"Intel" ) f_Intel;;
"PGF" ) f_PGF;;
"G95" ) f_G95;;
"PATH" ) f_PATH;;
"HP" ) f_HP;;
"DEC" ) f_DEC;;
"XLF" ) f_XLF;;
"Solaris10" ) f_Solaris10;;
* ) f_Unknown;;
esac
compileropts="$compileropts $debug -D$1 -D$int "
compileroptsmpi="$compileroptsmpi $debug -D$1 -D$int "
ccompileropts="$ccompileropts $debug -D$1 -D$int "
if [ x$omp == "xon" ];
then
ompopt="$ompopt -DOMP "
compopt="$compopt -DOMP "
fi
if [ x$q5cost != "x" ];
then
compileropts="$compileropts -I$HDF5PATH -I$Q5COSTPATH/include -DQ5Cost "
ccompileropts="$ccompileropts -DQ5Cost "
extralibs="$extralibs -L$Q5COSTPATH/lib/ -lq5cost -L$HDF5PATH -lhdf5_fortran -lhdf5 "
fi
ccompileroptsmpi="$ccompileropts -DSTATIC"
echo "Fortran compiler: $fortran "
if [ x$mpi == "xon" ];
then
echo "MPI wrapper compiler: $fortranmpi"
fi
#echo `$fortran -dumpversion`
echo "C compiler: $ccompiler "
#echo `$ccompiler -dumpversion`
echo "FC options: ${compileropts##+([[:space:]])}"
echo "CC options: ${ccompileropts##+([[:space:]])}"
if [ x$instdir != "x" ];
then
echo "Installation directory: $instdir"
fi
echo
###############################################################
# invalid and unsupported combinations of options are checked
# ||
# ||
# \/
# ERRORS ######################################################
if (([ x$int == "xINT64" ]) && ([ x$1 == "xDEC" ] || [ x$1 == "xXLF" ]));
then
f_print_error $1 "i64";
exit;
fi
if ([ x$int == "xINT32" ] && [ x$1 == "xSolaris10" ]);
then
f_print_error $1 "i32";
exit;
fi
if (([ x$omp == "xon" ]) && ([ x$1 != "xPGF" ] && [ x$1 != "xIntel" ] && [ x$1 != "xHP" ] && [ x$1 != "xPATH" ] && [ x$1 != "xGNU" ]));
then
f_print_error $1 "OpenMP";
exit;
fi
if (([ x$mpi == "xon" ]) && ([ x$1 != "xPGF" ] && [ x$1 != "xIntel" ] && [ x$1 != "xSolaris10" ] && [ x$1 != "xGNU" ]));
then
f_print_error $1 "MPI";
exit;
fi
if (([ x$q5cost == "xon" ]) && ([ x$1 == "xGNU" ]));
then
echo "ERROR: The Q5Cost library cannot be used with Fortran 77 compilers! "
exit;
fi
# WARNINGS #############################################################
if (([ x$q5cost == "xon" ]) && ([ x$(`set | grep -i HDF5PATH`) == "x" ]));
then
echo "WARNING: please set the HDF5PATH environmental variable! "
exit;
fi
if (([ x$q5cost == "xon" ]) && ([ x$(`set | grep -i Q5COSTPATH`) == "x" ]));
then
echo "WARNING: please set the Q5COSTPATH environmental variable! "
exit;
fi
#if (([ x$omp == "xon" ]) && ([ x$1 = "xGNU" ]));
#then
#echo "WARNING: OMP directives will be converted to lowercase, if it is necessary!"
#./build.mrcc.changecase.sh tolower
#fi
# Compiling to create object files #####################################
for i in $mrccstuff
do
ii=$i.f
test -f $i.f90 && ii=$i.f90
test -f $i.F90 && ii=$i.F90
tt=$rebuild
test $ii -nt $i.o -o build.mrcc -nt $i.o && tt="yes"
test MRCCCOMMON -nt $i.o && grep MRCCCOMMON $ii &> /dev/null && tt="yes"
if ([ x$i == "xccsd" -o x$i == "xccsdmain" -o x$i == "xcombin" -o x$i == "xdrpa" -o x$i == "xldrpa" -o x$i == "xmrcc" -o x$i == "xlambda" -o x$i == "xpert" -o x$i == "xdcommunicate3" -o x$i == "xxmrcc" -o x$i == "xxpert" -o x$i == "xscf" -o x$i == "xfock" -o x$i == "xteint" -o x$i == "xdf3int" -o x$i == "xdft" -o x$i == "xhessgrad" -o x$i == "xdmrcc" -o x$i == "xdriver" ] && [ x$mpi == "xon" ]) ;
then
test $ii -nt ${i}_mpi.o -o build.mrcc -nt ${i}_mpi.o && tt="yes"
test -f ${i}_mpi.o || tt="yes"
test MRCCCOMMON -nt ${i}_mpi.o && grep MRCCCOMMON $ii &> /dev/null && tt="yes"
fi
test -f $i.o || tt="yes"
test -f $ii || export bstat="no"
if [ x$mpi == "xon" ];
then
if [ x$i == "xccsd" -o x$i == "xldrpa" ];
then
test manager.mod -nt ${i}_mpi.o && tt="yes"
fi
if [ x$i == "xmrcc_manager_main" ];
then
test manager.mod -nt ${i}.o && tt="yes"
fi
fi
if [ x$i == "xscf" ];
then
test SCFCOMMON -nt scf.o && tt="yes"
test common_mod.mod -nt scf.o && tt="yes"
test mcscf.mod -nt scf.o && tt="yes"
test scf_embed.mod -nt scf.o && tt="yes"
fi
if [ x$i == "xqmmod" ];
then
test qmmod_handler.mod -nt qmmod.o && tt="yes"
test qmmod_moselect.mod -nt qmmod.o && tt="yes"
test qmmod_memory_handler.mod -nt qmmod.o && tt="yes"
test qmmod_embed.f -nt qmmod.o && tt="yes"
test qmmod_huziqmmm.f -nt qmmod.o && tt="yes"
fi
if [ x$i == "xpssp" ];
then
test common_mod.mod -nt pssp.o && tt="yes"
fi
if [ x$i == "xhessgrad" ];
then
test SCFCOMMON -nt hessgrad.o && tt="yes"
test MRCCCOMMON -nt hessgrad.o && tt="yes"
test common_mod.mod -nt hessgrad.o && tt="yes"
test mcscf.mod -nt hessgrad.o && tt="yes"
fi
if [ x$i == "xldfgrad" ];
then
test common_mod.mod -nt ldfgrad.o && tt="yes"
fi
if [ x$i == "xldfzvec" ];
then
test common_mod.mod -nt ldfzvec.o && tt="yes"
test domain.mod -nt ldfzvec.o && tt="yes"
fi
if [ x$i == "xprop" ];
then
test embed_grad.mod -nt prop.o && tt="yes"
test common_mod.mod -nt prop.o && tt="yes"
test domain.mod -nt prop.o && tt="yes"
fi
if [ x$i == "xsubspace_solver" ];
then
test common_mod.mod -nt subspace_solver.o && tt="yes"
fi
if [ x$i == "xteint" ];
then
test common_mod.mod -nt teint.o && tt="yes"
fi
if [ x$i == "xdfint" ];
then
test list_doublets.f -nt dfint.o && tt="yes"
test df2intvars.f -nt dfint.o && tt="yes"
test df2intvars_uc.f -nt dfint.o && tt="yes"
test list_triplets.f -nt dfint.o && tt="yes"
test dfvariables_IN_ijk_kc.f -nt dfint.o && tt="yes"
test dfvariables_OUT_ijk_kc.f -nt dfint.o && tt="yes"
test dfvariables_GHP_kc.f -nt dfint.o && tt="yes"
test dfint_call_kc.f -nt dfint.o && tt="yes"
test dfvariables_IN_ijk.f -nt dfint.o && tt="yes"
test dfvariables_OUT_ijk.f -nt dfint.o && tt="yes"
test dfvariables_GHP.f -nt dfint.o && tt="yes"
test dfint_call.f -nt dfint.o && tt="yes"
test dprimcalc_call.f -nt dfint.o && tt="yes"
test dfvariables_der.f -nt dfint.o && tt="yes"
test dfvariables_der_kc.f -nt dfint.o && tt="yes"
test dfvariables_der_IN.f -nt dfint.o && tt="yes"
test dfvariables_der_OUT.f -nt dfint.o && tt="yes"
test list_derinter.f -nt dfint.o && tt="yes"
test list_der1triplets.f -nt dfint.o && tt="yes"
test list_der3triplets.f -nt dfint.o && tt="yes"
test df_primcalc_call.f -nt dfint.o && tt="yes"
test list_triplets_rangesep.f -nt dfint.o && tt="yes"
test list_doublets_rangesep.f -nt dfint.o && tt="yes"
fi
if [ x$i == "xdfint_triplets" ];
then
test dfint_beg_kc_IN_ijk.f -nt dfint_triplets.o && tt="yes"
test dfint_mid_kc_IN_ijk.f -nt dfint_triplets.o && tt="yes"
test dfint_end_kc_IN_ijk.f -nt dfint_triplets.o && tt="yes"
test icontr_general.f -nt dfint_triplets.o && tt="yes"
test dfint_beg_kc_OUT_ijk.f -nt dfint_triplets.o && tt="yes"
test dfint_mid_kc_OUT_ijk.f -nt dfint_triplets.o && tt="yes"
test dfint_end_kc_OUT_ijk.f -nt dfint_triplets.o && tt="yes"
test rysrw_3_vars.f -nt dfint_triplets.o && tt="yes"
test rysrw_3_sub.f -nt dfint_triplets.o && tt="yes"
test rysrw_4_vars.f -nt dfint_triplets.o && tt="yes"
test rysrw_4_sub.f -nt dfint_triplets.o && tt="yes"
test dfint_beg_IN_ijk.f -nt dfint_triplets.o && tt="yes"
test dfint_mid_IN_ijk.f -nt dfint_triplets.o && tt="yes"
test dfint_end_IN_ijk.f -nt dfint_triplets.o && tt="yes"
test dfint_beg_OUT_ijk.f -nt dfint_triplets.o && tt="yes"
test dfint_mid_OUT_ijk.f -nt dfint_triplets.o && tt="yes"
test dfint_end_OUT_ijk.f -nt dfint_triplets.o && tt="yes"
test dfint_beg_kc_GHP_ijk.f -nt dfint_triplets.o && tt="yes"
test dfint_mid_kc_GHP_ijk.f -nt dfint_triplets.o && tt="yes"
test dfint_beg_GHP_ijk.f -nt dfint_triplets.o && tt="yes"
test dfint_mid_GHP_ijk.f -nt dfint_triplets.o && tt="yes"
fi
if [ x$i == "xdfint_triplets_rangesep" ];
then
test dfint_beg_kc_IN_ijk.f -nt dfint_triplets.o && tt="yes"
test dfint_mid_kc_IN_ijk.f -nt dfint_triplets.o && tt="yes"
test dfint_end_kc_IN_ijk.f -nt dfint_triplets.o && tt="yes"
test icontr_general.f -nt dfint_triplets.o && tt="yes"
test dfint_beg_kc_OUT_ijk.f -nt dfint_triplets.o && tt="yes"
test dfint_mid_kc_OUT_ijk.f -nt dfint_triplets.o && tt="yes"
test dfint_end_kc_OUT_ijk.f -nt dfint_triplets.o && tt="yes"
test dfint_beg_IN_ijk.f -nt dfint_triplets.o && tt="yes"
test dfint_mid_IN_ijk.f -nt dfint_triplets.o && tt="yes"
test dfint_end_IN_ijk.f -nt dfint_triplets.o && tt="yes"
test dfint_beg_OUT_ijk.f -nt dfint_triplets.o && tt="yes"
test dfint_mid_OUT_ijk.f -nt dfint_triplets.o && tt="yes"
test dfint_end_OUT_ijk.f -nt dfint_triplets.o && tt="yes"
fi
if [ x$i == "xdfint_triplets_3der" ];
then
test dfint_beg_kc_IN_der.f -nt dfint_triplets_3der.o && tt="yes"
test dfint_mid_kc_IN_der.f -nt dfint_triplets_3der.o && tt="yes"
test dfint_end_kc_IN_der.f -nt dfint_triplets_3der.o && tt="yes"
test icontr_general.f -nt dfint_triplets_3der.o && tt="yes"
test dfint_beg_kc_OUT_der.f -nt dfint_triplets_3der.o && tt="yes"
test dfint_mid_kc_OUT_der.f -nt dfint_triplets_3der.o && tt="yes"
test dfint_end_kc_OUT_der.f -nt dfint_triplets_3der.o && tt="yes"
test dfint_beg_IN_der.f -nt dfint_triplets_3der.o && tt="yes"
test dfint_mid_IN_der.f -nt dfint_triplets_3der.o && tt="yes"
test dfint_end_IN_der.f -nt dfint_triplets_3der.o && tt="yes"
test dfint_beg_OUT_der.f -nt dfint_triplets_3der.o && tt="yes"
test dfint_mid_OUT_der.f -nt dfint_triplets_3der.o && tt="yes"
test dfint_end_OUT_der.f -nt dfint_triplets_3der.o && tt="yes"
fi
if [ x$i == "xintsub" ];
then
test rysrw_3_sub.f -nt intsub.o && tt="yes"
test rysrw_3_vars.f -nt intsub.o && tt="yes"
test rysrw_4_sub.f -nt intsub.o && tt="yes"
test rysrw_4_vars.f -nt intsub.o && tt="yes"
fi
if [ x$i == "xdf2intsubs_rangesep" ];
then
test dfint_beg_tc.f -nt df2intsubs.o && tt="yes"
test dfint_beg_tc_uc.f -nt df2intsubs.o && tt="yes"
test dfint_mid_tc.f -nt df2intsubs.o && tt="yes"
test dfint_mid_tc_uc.f -nt df2intsubs.o && tt="yes"
test dfint_end_tc.f -nt df2intsubs.o && tt="yes"
test dfint_end_tc_uc.f -nt df2intsubs.o && tt="yes"
fi
if [ x$i == "xdf2intsubs" ] || [ x$i == "xdf2intsubs_rangesep" ];
then
test dfint_beg_tc.f -nt df2intsubs.o && tt="yes"
test dfint_beg_tc_uc.f -nt df2intsubs.o && tt="yes"
test dfint_mid_tc.f -nt df2intsubs.o && tt="yes"
test dfint_mid_tc_uc.f -nt df2intsubs.o && tt="yes"
test dfint_end_tc.f -nt df2intsubs.o && tt="yes"
test dfint_end_tc_uc.f -nt df2intsubs.o && tt="yes"
fi
if [ x$i == "xdfintder1c" ];
then
test dfint1der_beg.f -nt dfintder1c.o && tt="yes"
test dfint1der_kc_beg.f -nt dfintder1c.o && tt="yes"
test dfint1der_mid1.f -nt dfintder1c.o && tt="yes"
test dfint1der_mid1_ab.f -nt dfintder1c.o && tt="yes"
test dfint1der_mid2.f -nt dfintder1c.o && tt="yes"
test dfint1der_mid2_kc.f -nt dfintder1c.o && tt="yes"
test dfint1der_end1.f -nt dfintder1c.o && tt="yes"
test dfint1der_end1_kc.f -nt dfintder1c.o && tt="yes"
test dfint1der_end2.f -nt dfintder1c.o && tt="yes"
fi
if [ x$i == "xdprscrsubs" ];
then
test list_dprscrinter.f -nt dprscrsubs.o && tt="yes"
test list_dprsubs.f -nt dprscrsubs.o && tt="yes"
test dprscr_abab_template.f -nt dprscrsubs.o && tt="yes"
fi
if [ x$i == "xccsd" ];
then
test ccsd_io.f -nt ccsd.o && tt="yes"
test ccsd_pt.f -nt ccsd.o && tt="yes"
test ccsd_dfdirect.f -nt ccsd.o && tt="yes"
fi
if [ x$i == "xuccsd" ];
then
test uccsd_taaa_beg.f -nt uccsd.o && tt="yes"
test uccsd_taaa_end.f -nt uccsd.o && tt="yes"
test uccsd_tabb_beg.f -nt uccsd.o && tt="yes"
test uccsd_tabb_end.f -nt uccsd.o && tt="yes"
fi
if [ x$tt == "xyes" ];
then
if ([ x$i == "xdmrcc" -o x$i == "xovirt" -o x$i == "xoptim" -o x$i == "xbasopt" -o x$i == "xgeomopt" -o x$i == "xcompmod" -o x$i == "xdriver" ]);
then
if [ x$i == "xdmrcc" -o x$i == "xdriver" ] && [ x$mpi == "xon" ]
then
echo "Compiling ${i}_mpi with options $preprocopt $compileroptsmpi $mpiopts"
$fortranmpi $preprocopt $compileroptsmpi $mpiopts -o ${i}_mpi.o -c $ii || export bstat="no"
fi
echo "Compiling $i with options $preprocopt $compileropts"
$fortran $preprocopt $compileropts -c $ii || export bstat="no"
elif ([ x$i == "xmrcc_manager" -o x$i == "xmrcc_manager_main" ] && [ x$mpi == "xon" ]);
then
echo "Compiling $i with options $preprocopt $compileroptsmpi $mpiopts"
$fortranmpi $preprocopt $compileroptsmpi $mpiopts -c $ii || export bstat="no"
elif ([ x$i == "xccsd" -o x$i == "xccsdmain" -o x$i == "xcombin" -o x$i == "xdrpa" -o x$i == "xldrpa" -o x$i == "xmrcc" -o x$i == "xlambda" -o x$i == "xpert" -o x$i == "xdcommunicate3" -o x$i == "xxmrcc" -o x$i == "xxpert" -o x$i == "xscf" -o x$i == "xfock" -o x$i == "xteint" -o x$i == "xdf3int" -o x$i == "xdft" -o x$i == "xhessgrad" ] && [ x$mpi == "xon" ]) ;
then
echo "Compiling ${i}_mpi with options $preprocopt $compileroptsmpi $mpiopts $ompopt $libxcinc $pcminc"
$fortranmpi $preprocopt $compileroptsmpi $mpiopts $ompopt $libxcinc $pcminc -o ${i}_mpi.o -c $ii || export bstat="no"
echo "Compiling $i with options $preprocopt $compileropts $ompopt $libxcinc $pcminc"
$fortran $preprocopt $compileropts $ompopt $libxcinc $pcminc -c $ii || export bstat="no"
else
echo "Compiling $i with options $preprocopt $compileropts $ompopt $libxcinc $pcminc"
$fortran $preprocopt $compileropts $ompopt $libxcinc $pcminc -c $ii || export bstat="no"
fi
fi
done
echo
# C routines ###########################################################
test -f $xalloc || export bstat="no"
test -f MRCCCOMMON || export bstat="no"
tt=$rebuild
test $xalloc -nt xalloc.o -o build.mrcc -nt xalloc.o && tt="yes"
test -f xalloc.o || tt="yes"
if [ x$tt == "xyes" ];
then
echo "Compiling xalloc with options $ccompileropts"
$ccompiler $ccompileropts -c $xalloc || export bstat="no"
fi
test -f intio.c || export bstat="no"
test -f MRCCCOMMON || export bstat="no"
tt=$rebuild
test intio.c -nt intio.o -o build.mrcc -nt intio.o && tt="yes"
test -f intio.o || tt="yes"
if [ x$tt == "xyes" ];
then
echo "Compiling intio with options $ccompileropts"
$ccompiler $ccompileropts -c intio.c || export bstat="no"
fi
test -f signal.c || export bstat="no"
tt=$rebuild
test signal.c -nt signal.o -o build.mrcc -nt signal.o && tt="yes"
test -f signal.o || tt="yes"
if [ x$tt == "xyes" ];
then
echo "Compiling signal with options $ccompileropts"
$ccompiler $ccompileropts -c signal.c || export bstat="no"
fi
test -f cfunc.c || export bstat="no"
tt=$rebuild
test cfunc.c -nt cfunc.o -o build.mrcc -nt cfunc.o && tt="yes"
test -f cfunc.o || tt="yes"
if [ x$tt == "xyes" ];
then
echo "Compiling cfunc with options $ccompileropts"
$ccompiler $ccompileropts -c cfunc.c || export bstat="no"
fi
if [ x$mpi == "xon" ]; then
test -f cfunc.c || export bstat="no"
tt=$rebuild
test cfunc.c -nt cfunc_mpi.o -o build.mrcc -nt cfunc_mpi.o && tt="yes"
test -f cfunc_mpi.o || tt="yes"
if [ x$tt == "xyes" ];
then
echo "Compiling cfunc with options $ccompileroptsmpi"
$ccompiler $ccompileroptsmpi -o cfunc_mpi.o -c cfunc.c || export bstat="no"
fi
fi
echo
#
#/bin/rm -f mrcc dmrcc xmrcc goldstone
#
# Linking goldstone ####################################################
tt=$rebuild
test -f goldstone || tt="yes"
for i in `echo "goldstone.o mem.o xalloc.o combin.o signal.o qsorti.o cfunc.o"`
do
test $i -nt goldstone && tt="yes"
done
if [ x$tt == "xyes" ];
then
if (([ "x$extralibs" != "x" ]) || ([ "x$linpacklib" != "x" ]));
then echo "Linking goldstone with libraries: $linpacklib $extralibs"
else echo "Linking goldstone"
fi
$fortran $compileropts $ompopt -o goldstone goldstone.o mem.o xalloc.o combin.o signal.o qsorti.o cfunc.o $linpacklib $extralibs || export bstat="no"
fi
# Linking mrcc #########################################################
tt=$rebuild
test -f mrcc || tt="yes"
for i in `echo "mrcc.o lambda.o pert.o mrcc_f12.o mem.o xalloc.o combin.o signal.o $fls sacc.o dcommunicate3.o cfunc.o"`
do
test $i -nt mrcc && tt="yes"
done
if [ x$tt == "xyes" ];
then
if (([ "x$extralibs" != "x" ]) || ([ "x$linpacklib" != "x" ]));
then echo "Linking mrcc with libraries: $linpacklib $extralibs"
else echo "Linking mrcc"
fi
$fortran $compileropts $ompopt -o mrcc mrcc.o lambda.o pert.o mrcc_f12.o mem.o xalloc.o combin.o signal.o $fls sacc.o dcommunicate3.o cfunc.o $linpacklib $extralibs || export bstat="no"
fi
# Linking mrcc_mpi #####################################################
if [ x$mpi == "xon" ]; then
tt=$rebuild
test -f mrcc_mpi || tt="yes"
for i in `echo "mrcc_mpi.o lambda_mpi.o pert_mpi.o mrcc_f12.o mem.o xalloc.o combin_mpi.o signal.o $fls sacc.o dcommunicate3_mpi.o cfunc_mpi.o"`
do
test $i -nt mrcc_mpi && tt="yes"
done
if [ x$tt == "xyes" ];
then
if (([ "x$extralibs" != "x" ]) || ([ "x$linpacklib" != "x" ]));
then echo "Linking mrcc_mpi with libraries: $linpacklib $extralibs"
else echo "Linking mrcc_mpi"
fi
$fortranmpi $compileroptsmpi $ompopt -o mrcc_mpi mrcc_mpi.o lambda_mpi.o pert_mpi.o mrcc_f12.o mem.o xalloc.o combin_mpi.o signal.o $fls sacc.o dcommunicate3_mpi.o cfunc_mpi.o $linpacklib $extralibs || export bstat="no"
fi
fi
# Linking integ ########################################################
tt=$rebuild
test -f integ || tt="yes"
for i in `echo "integ.o teint.o ldfgrad.o domain.o ecp.o dfint.o df3int.o diis.o dfintloc.o df2intsubs.o hrrspher.o dfint_triplets.o brasub.o intsub.o intsub_ader.o hrrsub_ader.o intsub_bder.o hrrsub_bder.o intsub_cder.o hrrsub_cder.o brasub_1der.o ketsub_1der.o rearrsubs.o sphersubs.o dfintder1c.o dprscr.o dprscrsubs.o dfint_triplets_3der.o intsub_3der.o hrrsub_3der.o brasub_3der.o derspher_3der.o dfint_triplets_rangesep.o intsub_rangesep.o df2intsubs_rangesep.o ellip.o calcorb.o mem.o xalloc.o combin.o signal.o intio.o z2c.o oneint.o oneint_sh.o oneint_shc.o nucint.o nucint_shc.o onein1.o onein1_sh.o onein1_shc.o nuceq1.o nuceq1_shc.o nucat1.o nucat1_shc.o mulint_shc.o cfunc.o boys.o pml.o localize.o denschol.o bopu.o $fls"`
do
test $i -nt integ && tt="yes"
done
if [ x$tt == "xyes" ];
then
if (([ "x$extralibs" != "x" ]) || ([ "x$linpacklib" != "x" ]) || ([ "x$libxclib" != "x" ]));
then echo "Linking integ with libraries: $linpacklib $extralibs $libxclib"
else echo "Linking integ"
fi
$fortran $compileropts $ompopt -o integ integ.o teint.o ldfgrad.o domain.o ecp.o dfint.o df3int.o diis.o dfintloc.o df2intsubs.o hrrspher.o dfint_triplets.o brasub.o intsub.o intsub_ader.o hrrsub_ader.o intsub_bder.o hrrsub_bder.o intsub_cder.o hrrsub_cder.o brasub_1der.o ketsub_1der.o rearrsubs.o sphersubs.o dfintder1c.o dprscr.o dprscrsubs.o dfint_triplets_3der.o intsub_3der.o hrrsub_3der.o brasub_3der.o derspher_3der.o dfint_triplets_rangesep.o intsub_rangesep.o df2intsubs_rangesep.o ellip.o calcorb.o mem.o xalloc.o combin.o signal.o intio.o z2c.o oneint.o oneint_sh.o oneint_shc.o nucint.o nucint_shc.o onein1.o onein1_sh.o onein1_shc.o nuceq1.o nuceq1_shc.o nucat1.o nucat1_shc.o mulint_shc.o cfunc.o boys.o pml.o localize.o denschol.o bopu.o $fls $linpacklib $extralibs $libxclib || export bstat="no"
fi
# Linking scf ##########################################################
tt=$rebuild
test -f scf || tt="yes"
for i in `echo "scf.o fock.o scf_embed.o hessgrad.o diis.o teint.o ldfgrad.o domain.o ecp.o dfint.o df3int.o dfintloc.o df2intsubs.o hrrspher.o dfint_triplets.o brasub.o intsub.o intsub_ader.o hrrsub_ader.o intsub_bder.o hrrsub_bder.o intsub_cder.o hrrsub_cder.o brasub_1der.o ketsub_1der.o rearrsubs.o sphersubs.o dfintder1c.o dprscr.o dprscrsubs.o dfint_triplets_3der.o intsub_3der.o hrrsub_3der.o brasub_3der.o derspher_3der.o dfint_triplets_rangesep.o intsub_rangesep.o df2intsubs_rangesep.o ellip.o dft.o calcorb.o calcorbd.o calcorbh.o func.o pssp.o semint_shc.o mem.o xalloc.o combin.o signal.o intio.o denschol.o pml.o bopu.o nucint.o nucint_shc.o oneint_sh.o onein1.o onein1_sh.o onein1_shc.o nuceq1.o nuceq1_shc.o nucat1.o nucat1_shc.o mulint_shc.o cfunc.o oneint.o oneint_shc.o boys.o localize.o $fls $pcmobj"`
do
test $i -nt scf && tt="yes"
done
if [ x$tt == "xyes" ];
then
if (([ "x$extralibs" != "x" ]) || ([ "x$linpacklib" != "x" ]) || ([ "x$libxclib" != "x" ]) || ([ "x$pcmlib" != "x" ]));
then echo "Linking scf with libraries: $linpacklib $extralibs $libxclib $pcmlib"
else echo "Linking scf"
fi
$fortran $compileropts $ompopt -o scf scf.o fock.o scf_embed.o hessgrad.o diis.o teint.o ldfgrad.o domain.o ecp.o dfint.o df3int.o dfintloc.o df2intsubs.o hrrspher.o dfint_triplets.o brasub.o intsub.o intsub_ader.o hrrsub_ader.o intsub_bder.o hrrsub_bder.o intsub_cder.o hrrsub_cder.o brasub_1der.o ketsub_1der.o rearrsubs.o sphersubs.o dfintder1c.o dprscr.o dprscrsubs.o dfint_triplets_3der.o intsub_3der.o hrrsub_3der.o brasub_3der.o derspher_3der.o dfint_triplets_rangesep.o intsub_rangesep.o df2intsubs_rangesep.o ellip.o dft.o calcorb.o calcorbd.o calcorbh.o func.o pssp.o semint_shc.o mem.o xalloc.o combin.o signal.o intio.o denschol.o pml.o bopu.o nucint.o nucint_shc.o oneint_sh.o onein1.o onein1_sh.o onein1_shc.o nuceq1.o nuceq1_shc.o nucat1.o nucat1_shc.o mulint_shc.o cfunc.o oneint.o oneint_shc.o boys.o localize.o $fls $pcmobj $linpacklib $extralibs $libxclib $pcmlib|| export bstat="no"
fi
# Linking scf_mpi ######################################################
if [ x$mpi == "xon" ]; then
tt=$rebuild
test -f scf_mpi || tt="yes"
for i in `echo "scf_mpi.o fock_mpi.o scf_embed.o hessgrad_mpi.o diis.o teint_mpi.o ecp.o ldfgrad.o domain.o dfint.o df3int_mpi.o dfintloc.o df2intsubs.o hrrspher.o dfint_triplets.o brasub.o intsub.o intsub_ader.o hrrsub_ader.o intsub_bder.o hrrsub_bder.o intsub_cder.o hrrsub_cder.o brasub_1der.o ketsub_1der.o rearrsubs.o sphersubs.o dfintder1c.o dprscr.o dprscrsubs.o dfint_triplets_3der.o intsub_3der.o hrrsub_3der.o brasub_3der.o derspher_3der.o dfint_triplets_rangesep.o intsub_rangesep.o df2intsubs_rangesep.o ellip.o dft_mpi.o calcorb.o calcorbd.o calcorbh.o func.o pssp.o semint_shc.o mem.o xalloc.o combin_mpi.o signal.o intio.o denschol.o pml.o bopu.o nucint.o nucint_shc.o oneint_sh.o onein1.o onein1_sh.o onein1_shc.o nuceq1.o nuceq1_shc.o nucat1.o nucat1_shc.o mulint_shc.o cfunc_mpi.o oneint.o oneint_shc.o boys.o localize.o $fls $pcmobj"`
do
test $i -nt scf_mpi && tt="yes"
done
if [ x$tt == "xyes" ];
then
if (([ "x$extralibs" != "x" ]) || ([ "x$linpacklib" != "x" ]) || ([ "x$libxclib" != "x" ]) || ([ "x$pcmlib" != "x" ]));
then echo "Linking scf_mpi with libraries: $linpacklib $extralibs $libxclib $pcmlib"
else echo "Linking scf_mpi"
fi
$fortranmpi $compileroptsmpi $ompopt -o scf_mpi scf_mpi.o fock_mpi.o scf_embed.o hessgrad_mpi.o diis.o teint_mpi.o ecp.o domain.o ldfgrad.o dfint.o df3int_mpi.o dfintloc.o df2intsubs.o hrrspher.o dfint_triplets.o brasub.o intsub.o intsub_ader.o hrrsub_ader.o intsub_bder.o hrrsub_bder.o intsub_cder.o hrrsub_cder.o brasub_1der.o ketsub_1der.o rearrsubs.o sphersubs.o dfintder1c.o dprscr.o dprscrsubs.o dfint_triplets_3der.o intsub_3der.o hrrsub_3der.o brasub_3der.o derspher_3der.o dfint_triplets_rangesep.o intsub_rangesep.o df2intsubs_rangesep.o ellip.o dft_mpi.o calcorb.o calcorbd.o calcorbh.o func.o pssp.o semint_shc.o mem.o xalloc.o combin_mpi.o signal.o intio.o denschol.o pml.o bopu.o nucint.o nucint_shc.o oneint_sh.o onein1.o onein1_sh.o onein1_shc.o nuceq1.o nuceq1_shc.o nucat1.o nucat1_shc.o mulint_shc.o cfunc_mpi.o oneint.o oneint_shc.o boys.o localize.o $fls $pcmobj $linpacklib $extralibs $libxclib $pcmlibmpi || export bstat="no"
fi
fi
# Linking ovirt ########################################################
tt=$rebuild
test -f ovirt || tt="yes"
for i in `echo "ovirt.o intio.o combin.o signal.o cfunc.o $fls"`
do
test $i -nt ovirt && tt="yes"
done
if [ x$tt == "xyes" ];
then
if (([ "x$extralibs" != "x" ]) || ([ "x$linpacklib" != "x" ]));
then echo "Linking ovirt with libraries: $linpacklib $extralibs"
else echo "Linking ovirt"
fi
$fortran $compileropts $ompopt -o ovirt ovirt.o intio.o combin.o signal.o cfunc.o $fls $linpacklib $extralibs || export bstat="no"
fi
# Linking orbloc #######################################################
tt=$rebuild
test -f orbloc || tt="yes"
for i in `echo "orbloc.o mem.o xalloc.o combin.o signal.o denschol.o pml.o cfunc.o boys.o localize.o $fls"`
do
test $i -nt orbloc && tt="yes"
done
if [ x$tt == "xyes" ];
then
if (([ "x$extralibs" != "x" ]) || ([ "x$linpacklib" != "x" ]));
then echo "Linking orbloc with libraries: $linpacklib $extralibs"
else echo "Linking orbloc"
fi
$fortran $compileropts $ompopt -o orbloc orbloc.o mem.o xalloc.o combin.o signal.o denschol.o pml.o cfunc.o boys.o localize.o $fls $linpacklib $extralibs || export bstat="no"
fi
# Linking mulli #######################################################
tt=$rebuild
test -f mulli || tt="yes"
for i in `echo "mulli.o mem.o xalloc.o combin.o signal.o bopu.o cfunc.o $fls"`
do
test $i -nt mulli && tt="yes"
done
if [ x$tt == "xyes" ];
then
if (([ "x$extralibs" != "x" ]) || ([ "x$linpacklib" != "x" ]));
then echo "Linking mulli with libraries: $linpacklib $extralibs"
else echo "Linking mulli"
fi
$fortran $compileropts $ompopt -o mulli mulli.o mem.o xalloc.o combin.o signal.o bopu.o cfunc.o $fls $linpacklib $extralibs || export bstat="no"
fi
# Linking prop #########################################################
tt=$rebuild
test -f prop || tt="yes"
for i in `echo "prop.o propcore.o denschol.o diis.o teint.o ecp.o dfint.o df3int.o ldfzvec.o ldfgrad.o domain.o dfintloc.o df2intsubs.o hrrspher.o dfint_triplets.o brasub.o intsub.o intsub_ader.o hrrsub_ader.o intsub_bder.o hrrsub_bder.o intsub_cder.o hrrsub_cder.o brasub_1der.o ketsub_1der.o rearrsubs.o sphersubs.o dfintder1c.o dprscr.o dprscrsubs.o dfint_triplets_3der.o intsub_3der.o hrrsub_3der.o brasub_3der.o derspher_3der.o dfint_triplets_rangesep.o intsub_rangesep.o df2intsubs_rangesep.o ellip.o dft.o calcorb.o calcorbd.o calcorbh.o func.o pssp.o semint_shc.o pml.o mem.o xalloc.o combin.o signal.o intio.o nucint.o nucint_shc.o oneint_sh.o onein1.o onein1_sh.o onein1_shc.o nuceq1.o nuceq1_shc.o nucat1.o nucat1_shc.o mulint_shc.o cfunc.o oneint.o oneint_shc.o boys.o localize.o bopu.o hessgrad.o embedgrad.o fock.o subspace_solver.o $fls $pcmobj"`
do
test $i -nt prop && tt="yes"
done
if [ x$tt == "xyes" ];
then
if (([ "x$extralibs" != "x" ]) || ([ "x$linpacklib" != "x" ]) || ([ "x$libxclib" != "x" ]) || ([ "x$pcmlib" != "x" ]) );
then echo "Linking prop with libraries: $linpacklib $extralibs $libxclib $pcmlib"
else echo "Linking prop"
fi
$fortran $compileropts $ompopt -o prop prop.o propcore.o denschol.o diis.o teint.o ecp.o dfint.o df3int.o ldfzvec.o ldfgrad.o domain.o dfintloc.o df2intsubs.o hrrspher.o dfint_triplets.o brasub.o intsub.o intsub_ader.o hrrsub_ader.o intsub_bder.o hrrsub_bder.o intsub_cder.o hrrsub_cder.o brasub_1der.o ketsub_1der.o rearrsubs.o sphersubs.o dfintder1c.o dprscr.o dprscrsubs.o dfint_triplets_3der.o intsub_3der.o hrrsub_3der.o brasub_3der.o derspher_3der.o dfint_triplets_rangesep.o intsub_rangesep.o df2intsubs_rangesep.o ellip.o dft.o calcorb.o calcorbd.o calcorbh.o func.o pssp.o semint_shc.o pml.o mem.o xalloc.o combin.o signal.o intio.o nucint.o nucint_shc.o oneint_sh.o onein1.o onein1_sh.o onein1_shc.o nuceq1.o nuceq1_shc.o nucat1.o nucat1_shc.o mulint_shc.o cfunc.o oneint.o oneint_shc.o boys.o localize.o bopu.o hessgrad.o embedgrad.o fock.o subspace_solver.o $fls $pcmobj $linpacklib $extralibs $libxclib $pcmlib|| export bstat="no"
fi
# Linking ccsd #########################################################
tt=$rebuild
test -f ccsd || tt="yes"
for i in `echo "ccsd.o ccsdmain.o diis.o laplace.o mem.o xalloc.o combin.o signal.o assembly.o cfunc.o $fls"`
do
test $i -nt ccsd && tt="yes"
done
if [ x$tt == "xyes" ];
then
if (([ "x$extralibs" != "x" ]) || ([ "x$linpacklib" != "x" ]));
then echo "Linking ccsd with libraries: $linpacklib $extralibs"
else echo "Linking ccsd"
fi
$fortran $compileropts $ompopt -o ccsd ccsd.o ccsdmain.o diis.o laplace.o mem.o xalloc.o combin.o signal.o assembly.o cfunc.o $fls $linpacklib $extralibs || export bstat="no"
fi
# Linking ccsd_mpi #####################################################
if ([ x$mpi == "xon" ]) ;
then
tt=$rebuild
test -f ccsd_mpi || tt="yes"
for i in `echo "ccsd_mpi.o ccsdmain_mpi.o diis.o laplace.o mem.o xalloc.o combin_mpi.o signal.o assembly.o cfunc_mpi.o mrcc_manager.o manager.mod $fls"`
do
test $i -nt ccsd_mpi && tt="yes"
done
if [ x$tt == "xyes" ];
then
if (([ "x$extralibs" != "x" ]) || ([ "x$linpacklib" != "x" ]));
then echo "Linking ccsd_mpi with libraries: $linpacklib $extralibs"
else echo "Linking ccsd_mpi"
fi
$fortranmpi $compileroptsmpi $ompopt -o ccsd_mpi ccsd_mpi.o ccsdmain_mpi.o diis.o laplace.o mem.o xalloc.o combin_mpi.o signal.o assembly.o cfunc_mpi.o mrcc_manager.o $fls $linpacklib $extralibs || export bstat="no"
fi
fi
# Linking uccsd ########################################################
tt=$rebuild
test -f uccsd || tt="yes"
for i in `echo "uccsd.o uccsdmain.o diis.o mem.o xalloc.o combin.o assembly.o signal.o laplace.o cfunc.o driver.o $fls"`
do
test $i -nt uccsd && tt="yes"
done
if [ x$tt == "xyes" ];
then
if (([ "x$extralibs" != "x" ]) || ([ "x$linpacklib" != "x" ]));
then echo "Linking uccsd with libraries: $linpacklib $extralibs"
else echo "Linking uccsd"
fi
$fortran $compileropts $ompopt -o uccsd uccsd.o uccsdmain.o diis.o mem.o xalloc.o combin.o assembly.o signal.o laplace.o cfunc.o driver.o $fls $linpacklib $extralibs || export bstat="no"
fi
# Linking xmrcc ########################################################
tt=$rebuild
test -f xmrcc || tt="yes"
for i in `echo "xmrcc.o xlambda.o xpert.o xmem.o combin.o signal.o xalloc.o cfunc.o $fls"`
do
test $i -nt xmrcc && tt="yes"
done
if [ x$tt == "xyes" ];
then
if (([ "x$extralibs" != "x" ]) || ([ "x$linpacklib" != "x" ]));
then echo "Linking xmrcc with libraries: $linpacklib $extralibs"
else echo "Linking xmrcc"
fi
$fortran $compileropts $ompopt -o xmrcc xmrcc.o xlambda.o xpert.o xmem.o combin.o signal.o xalloc.o cfunc.o $fls $linpacklib $extralibs || export bstat="no"
fi
# Linking xmrcc_mpi ####################################################
if [ x$mpi == "xon" ]; then
tt=$rebuild
test -f xmrcc_mpi || tt="yes"
for i in `echo "xmrcc_mpi.o xlambda.o xpert_mpi.o xmem.o combin.o signal.o xalloc.o cfunc.o $fls"`
do
test $i -nt xmrcc_mpi && tt="yes"
done
if [ x$tt == "xyes" ];
then
if (([ "x$extralibs" != "x" ]) || ([ "x$linpacklib" != "x" ]));
then echo "Linking xmrcc_mpi with libraries: $linpacklib $extralibs"
else echo "Linking xmrcc_mpi"
fi
$fortran $compileropts $ompopt -o xmrcc_mpi xmrcc_mpi.o xlambda.o xpert_mpi.o xmem.o combin.o signal.o xalloc.o cfunc.o $fls $linpacklib $extralibs || export bstat="no"
fi
fi
# Linking drpa #########################################################
tt=$rebuild
test -f drpa || tt="yes"
for i in `echo "drpa.o ldrpa.o loccis.o drpagrad.o laplace.o teint.o ldfgrad.o ecp.o dfint.o df3int.o dfintloc.o df2intsubs.o hrrspher.o dfint_triplets.o brasub.o intsub.o intsub_ader.o hrrsub_ader.o intsub_bder.o hrrsub_bder.o intsub_cder.o hrrsub_cder.o brasub_1der.o ketsub_1der.o rearrsubs.o sphersubs.o dfintder1c.o dprscr.o dprscrsubs.o dfint_triplets_3der.o intsub_3der.o hrrsub_3der.o brasub_3der.o derspher_3der.o dfint_triplets_rangesep.o intsub_rangesep.o df2intsubs_rangesep.o ellip.o dft.o calcorb.o calcorbd.o calcorbh.o func.o mem.o xalloc.o combin.o signal.o intio.o bopu.o assembly.o oneint.o oneint_sh.o oneint_shc.o onein1.o onein1_sh.o onein1_shc.o nuceq1.o nuceq1_shc.o nucat1.o nucat1_shc.o mulint_shc.o ccsd.o diis.o local.o driver.o cfunc.o uccsd.o boys.o pml.o localize.o denschol.o $fls"`
do
test $i -nt drpa && tt="yes"
done
if [ x$tt == "xyes" ];
then
if (([ "x$extralibs" != "x" ]) || ([ "x$linpacklib" != "x" ]) || ([ "x$libxclib" != "x" ]));
then echo "Linking drpa with libraries: $linpacklib $extralibs $libxclib"
else echo "Linking drpa"
fi
$fortran $compileropts $ompopt -o drpa drpa.o ldrpa.o loccis.o drpagrad.o laplace.o teint.o ldfgrad.o ecp.o dfint.o df3int.o dfintloc.o df2intsubs.o hrrspher.o dfint_triplets.o brasub.o intsub.o intsub_ader.o hrrsub_ader.o intsub_bder.o hrrsub_bder.o intsub_cder.o hrrsub_cder.o brasub_1der.o ketsub_1der.o rearrsubs.o sphersubs.o dfintder1c.o dprscr.o dprscrsubs.o dfint_triplets_3der.o intsub_3der.o hrrsub_3der.o brasub_3der.o derspher_3der.o dfint_triplets_rangesep.o intsub_rangesep.o df2intsubs_rangesep.o ellip.o dft.o calcorb.o calcorbd.o calcorbh.o func.o mem.o xalloc.o combin.o signal.o intio.o bopu.o assembly.o oneint.o oneint_sh.o oneint_shc.o onein1.o onein1_sh.o onein1_shc.o nuceq1.o nuceq1_shc.o nucat1.o nucat1_shc.o mulint_shc.o ccsd.o diis.o local.o driver.o cfunc.o uccsd.o boys.o pml.o localize.o denschol.o $fls $linpacklib $extralibs $libxclib || export bstat="no"
fi
# Linking drpa_mpi #########################################################
if ([ x$mpi == "xon" ]) ;
then
tt=$rebuild
test -f drpa_mpi || tt="yes"
for i in `echo "drpa_mpi.o ldrpa_mpi.o loccis.o drpagrad.o laplace.o teint_mpi.o ldfgrad.o ecp.o dfint.o df3int_mpi.o dfintloc.o df2intsubs.o hrrspher.o dfint_triplets.o brasub.o intsub.o intsub_ader.o hrrsub_ader.o intsub_bder.o hrrsub_bder.o intsub_cder.o hrrsub_cder.o brasub_1der.o ketsub_1der.o rearrsubs.o sphersubs.o dfintder1c.o dprscr.o dprscrsubs.o dfint_triplets_3der.o intsub_3der.o hrrsub_3der.o brasub_3der.o derspher_3der.o dfint_triplets_rangesep.o intsub_rangesep.o df2intsubs_rangesep.o ellip.o dft.o calcorb.o calcorbd.o calcorbh.o func.o mem.o xalloc.o combin_mpi.o signal.o intio.o bopu.o assembly.o oneint.o oneint_sh.o oneint_shc.o onein1.o onein1_sh.o onein1_shc.o nuceq1.o nuceq1_shc.o nucat1.o nucat1_shc.o mulint_shc.o ccsd_mpi.o diis.o local.o driver_mpi.o cfunc_mpi.o uccsd.o mrcc_manager.o manager.mod boys.o pml.o localize.o denschol.o $fls"`
do
test $i -nt drpa_mpi && tt="yes"
done
if [ x$tt == "xyes" ];
then
if (([ "x$extralibs" != "x" ]) || ([ "x$linpacklib" != "x" ]) || ([ "x$libxclib" != "x" ]));
then echo "Linking drpa_mpi with libraries: $linpacklib $extralibs $libxclib"
else echo "Linking drpa_mpi"
fi
$fortranmpi $compileroptsmpi $ompopt -o drpa_mpi drpa_mpi.o ldrpa_mpi.o loccis.o drpagrad.o laplace.o teint_mpi.o ldfgrad.o ecp.o dfint.o df3int_mpi.o dfintloc.o df2intsubs.o hrrspher.o dfint_triplets.o brasub.o intsub.o intsub_ader.o hrrsub_ader.o intsub_bder.o hrrsub_bder.o intsub_cder.o hrrsub_cder.o brasub_1der.o ketsub_1der.o rearrsubs.o sphersubs.o dfintder1c.o dprscr.o dprscrsubs.o dfint_triplets_3der.o intsub_3der.o hrrsub_3der.o brasub_3der.o derspher_3der.o dfint_triplets_rangesep.o intsub_rangesep.o df2intsubs_rangesep.o ellip.o dft.o calcorb.o calcorbd.o calcorbh.o func.o mem.o xalloc.o combin_mpi.o signal.o intio.o bopu.o assembly.o oneint.o oneint_sh.o oneint_shc.o onein1.o onein1_sh.o onein1_shc.o nuceq1.o nuceq1_shc.o nucat1.o nucat1_shc.o mulint_shc.o ccsd_mpi.o diis.o local.o driver_mpi.o cfunc_mpi.o uccsd.o mrcc_manager.o boys.o pml.o localize.o denschol.o $fls $linpacklib $extralibs $libxclib || export bstat="no"
fi
fi
# Linking cis #########################################################
tt=$rebuild
test -f cis || tt="yes"
for i in `echo "cis.o cis2.o diis.o laplace.o teint.o ldfgrad.o bopu.o ecp.o dfint.o df3int.o dfintloc.o df2intsubs.o hrrspher.o dfint_triplets.o brasub.o intsub.o intsub_ader.o hrrsub_ader.o intsub_bder.o hrrsub_bder.o intsub_cder.o hrrsub_cder.o brasub_1der.o ketsub_1der.o rearrsubs.o sphersubs.o dfintder1c.o dprscr.o dprscrsubs.o dfint_triplets_3der.o intsub_3der.o hrrsub_3der.o brasub_3der.o derspher_3der.o dfint_triplets_rangesep.o intsub_rangesep.o df2intsubs_rangesep.o ellip.o calcorb.o mem.o xalloc.o combin.o signal.o dft.o calcorbd.o calcorbh.o func.o pssp.o semint_shc.o intio.o nucint.o nucint_shc.o oneint_sh.o onein1.o onein1_sh.o onein1_shc.o nuceq1.o nuceq1_shc.o nucat1.o nucat1_shc.o mulint_shc.o cfunc.o oneint.o oneint_shc.o boys.o pml.o localize.o denschol.o $fls"`
do
test $i -nt cis && tt="yes"
done
if [ x$tt == "xyes" ];
then
if (([ "x$extralibs" != "x" ]) || ([ "x$linpacklib" != "x" ]) || ([ "x$libxclib" != "x" ]));
then echo "Linking cis with libraries: $linpacklib $extralibs $libxclib"
else echo "Linking cis"
fi
$fortran $compileropts $ompopt -o cis cis.o cis2.o diis.o laplace.o teint.o ldfgrad.o bopu.o ecp.o dfint.o df3int.o dfintloc.o df2intsubs.o hrrspher.o dfint_triplets.o brasub.o intsub.o intsub_ader.o hrrsub_ader.o intsub_bder.o hrrsub_bder.o intsub_cder.o hrrsub_cder.o brasub_1der.o ketsub_1der.o rearrsubs.o sphersubs.o dfintder1c.o dprscr.o dprscrsubs.o dfint_triplets_3der.o intsub_3der.o hrrsub_3der.o brasub_3der.o derspher_3der.o dfint_triplets_rangesep.o intsub_rangesep.o df2intsubs_rangesep.o ellip.o calcorb.o mem.o xalloc.o combin.o signal.o dft.o calcorbd.o calcorbh.o func.o pssp.o semint_shc.o intio.o nucint.o nucint_shc.o oneint_sh.o onein1.o onein1_sh.o onein1_shc.o nuceq1.o nuceq1_shc.o nucat1.o nucat1_shc.o mulint_shc.o cfunc.o oneint.o oneint_shc.o boys.o pml.o localize.o denschol.o $fls $linpacklib $extralibs $libxclib || export bstat="no"
fi
# Linking mp2f12 #######################################################
tt=$rebuild
test -f mp2f12 || tt="yes"
for i in `echo "mp2f12.o diis.o teint.o ldfgrad.o domain.o ecp.o dfint.o df3int.o dfintloc.o domain.o df2intsubs.o hrrspher.o dfint_triplets.o brasub.o intsub.o intsub_ader.o hrrsub_ader.o intsub_bder.o hrrsub_bder.o intsub_cder.o hrrsub_cder.o brasub_1der.o ketsub_1der.o rearrsubs.o sphersubs.o dfintder1c.o dprscr.o dprscrsubs.o dfint_triplets_3der.o intsub_3der.o hrrsub_3der.o brasub_3der.o derspher_3der.o dfint_triplets_rangesep.o intsub_rangesep.o df2intsubs_rangesep.o ellip.o mem.o xalloc.o combin.o signal.o semint_shc.o intio.o nucint.o nucint_shc.o oneint_sh.o onein1.o onein1_sh.o onein1_shc.o nuceq1.o nuceq1_shc.o nucat1.o nucat1_shc.o mulint_shc.o cfunc.o boys.o pml.o localize.o denschol.o bopu.o $fls"`
do
test $i -nt mp2f12 && tt="yes"
done
if [ x$tt == "xyes" ];
then
if (([ "x$extralibs" != "x" ]) || ([ "x$linpacklib" != "x" ]) || ([ "x$libxclib" != "x" ]));
then echo "Linking mp2f12 with libraries: $linpacklib $extralibs $libxclib"
else echo "Linking mp2f12"
fi
$fortran $compileropts $ompopt -o mp2f12 mp2f12.o diis.o teint.o ldfgrad.o domain.o ecp.o dfint.o df3int.o dfintloc.o df2intsubs.o hrrspher.o dfint_triplets.o brasub.o intsub.o intsub_ader.o hrrsub_ader.o intsub_bder.o hrrsub_bder.o intsub_cder.o hrrsub_cder.o brasub_1der.o ketsub_1der.o rearrsubs.o sphersubs.o dfintder1c.o dprscr.o dprscrsubs.o dfint_triplets_3der.o intsub_3der.o hrrsub_3der.o brasub_3der.o derspher_3der.o dfint_triplets_rangesep.o intsub_rangesep.o df2intsubs_rangesep.o ellip.o mem.o xalloc.o combin.o signal.o semint_shc.o intio.o nucint.o nucint_shc.o oneint_sh.o onein1.o onein1_sh.o onein1_shc.o nuceq1.o nuceq1_shc.o nucat1.o nucat1_shc.o mulint_shc.o cfunc.o oneint.o oneint_shc.o boys.o pml.o localize.o denschol.o bopu.o $fls $linpacklib $extralibs $libxclib || export bstat="no"
fi
# Linking minp #########################################################
tt=$rebuild
test -f minp || tt="yes"
for i in `echo "minp.o combin.o signal.o cfunc.o $fls"`
do
test $i -nt minp && tt="yes"
done
if [ x$tt == "xyes" ];
then
if (([ "x$extralibs" != "x" ]) || ([ "x$linpacklib" != "x" ]) || ([ "x$libxclib" != "x" ]));
then echo "Linking minp with libraries: $linpacklib $extralibs $libxclib"
else echo "Linking minp"
fi
$fortran $compileropts $ompopt -o minp minp.o combin.o signal.o cfunc.o $fls $linpacklib $extralibs $libxclib || export bstat="no"
fi
# Linking qmmod ########################################################
tt=$rebuild
test -f qmmod || tt="yes"
for i in `echo "qmmod.o qmmod_handler.o qmmod_moselect.o qmmod_embed.o qmmod_huziqmmm.o combin.o signal.o mem.o xalloc.o bopu.o cfunc.o $fls"`
do
test $i -nt qmmod && tt="yes"
done
if [ x$tt == "xyes" ];
then
if (([ "x$extralibs" != "x" ]) || ([ "x$linpacklib" != "x" ]));
then echo "Linking qmmod with libraries: $linpacklib $extralibs"
else echo "Linking qmmod"
fi
$fortran $compileropts $ompopt -o qmmod qmmod.o qmmod_handler.o qmmod_moselect.o qmmod_embed.o qmmod_huziqmmm.o combin.o signal.o mem.o xalloc.o bopu.o cfunc.o $fls $linpacklib $extralibs || export bstat="no"
fi
# Linking dirac_mointegral_export ######################################
tt=$rebuild
test dirac_mointegral_export.F90 -nt dirac_mointegral_export && tt="yes"
if [ x$tt == "xyes" ];
then
$fortran $compileropts -o dirac_mointegral_export dirac_mointegral_export.F90 cfunc.o
fi
# Linking dmrcc ########################################################
tt=$rebuild
test -f dmrcc || tt="yes"
for i in `echo "dmrcc.o basopt.o geomopt.o optim.o combin.o signal.o z2c.o freqdrv.o cfunc.o compmod.o driver.o $fls"`
do
test $i -nt dmrcc && tt="yes"
done
if [ x$tt == "xyes" ];
then
if (([ "x$extralibs" != "x" ]) || ([ "x$linpacklib" != "x" ]));
then echo "Linking dmrcc with libraries: $linpacklib $extralibs"
else echo "Linking dmrcc"
fi
$fortran $compileropts $ompopt -o dmrcc dmrcc.o basopt.o geomopt.o optim.o combin.o signal.o z2c.o freqdrv.o cfunc.o compmod.o driver.o $fls $linpacklib $extralibs || export bstat="no"
fi
# Linking dmrcc_mpi ####################################################
if ([ x$mpi == "xon" ]) ;
then
tt=$rebuild
test -f dmrcc_mpi || tt="yes"
for i in `echo "dmrcc_mpi.o basopt.o geomopt.o optim.o combin_mpi.o signal.o z2c.o freqdrv.o cfunc_mpi.o compmod.o driver_mpi.o $fls"`
do
test $i -nt dmrcc_mpi && tt="yes"
done
if [ x$tt == "xyes" ];
then
if (([ "x$extralibs" != "x" ]) || ([ "x$linpacklib" != "x" ]));
then echo "Linking dmrcc_mpi with libraries: $linpacklib $extralibs"
else echo "Linking dmrcc_mpi"
fi
$fortranmpi $compileroptsmpi $ompopt -o dmrcc_mpi dmrcc_mpi.o basopt.o geomopt.o optim.o combin_mpi.o signal.o z2c.o freqdrv.o cfunc_mpi.o compmod.o driver_mpi.o $fls $linpacklib $extralibs || export bstat="no"
fi
fi
# Linking mrcc_manager #################################################
if ([ x$mpi == "xon" ]) ;
then
tt=$rebuild
test -f mrcc_manager || tt="yes"
for i in `echo "mrcc_manager_main.o mrcc_manager.o manager.mod cfunc_mpi.o combin_mpi.o signal.o $fls"`
do
test $i -nt mrcc_manager && tt="yes"
done
if [ x$tt == "xyes" ];
then
if (([ "x$extralibs" != "x" ]) || ([ "x$linpacklib" != "x" ]));
then echo "Linking mrcc_manager with libraries: $linpacklib $extralibs"
else echo "Linking mrcc_manager"
fi
$fortranmpi $compileroptsmpi -o mrcc_manager mrcc_manager_main.o mrcc_manager.o cfunc_mpi.o combin_mpi.o signal.o $fls $linpacklib $extralibs || export bstat="no"
fi
fi
# Check if compilation is successful ###################################
for i in $mrccexe
do
test -f $i || export bstat="no"
done
if [ x$bstat == "xyes" ];
then
if [ x$instdir != "x" ];
then
test -d $instdir || mkdir $instdir
for i in $mrccexe
do
cp $i $instdir
done
cp -r BASIS/ MTEST/ $instdir
fi
echo
echo
echo -en "\\033[0;32m"
echo " MRCC has been installed successfully! "
echo -en "\\033[0;39m"
echo "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"
echo
else
echo
echo -en "\\033[0;31m"
echo " Installation of MRCC failed! "
echo -en "\\033[0;39m"
echo "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"
echo
fi
exit;