PGI Guide to Molpro

This guide is intended to help PGI customers install, build, and run a complete system of ab initio programs for molecular electronic structure calculations (MOLPRO) from source files using PGI 5.2 compilers on a 64-bit Linux system.

Version Information
  This guide was created for MOLPRO serial version 2002.6 when building from the source files using PGI Release 5.2-1 pgf90 on a 64-bit AMD64 system running Linux. This guide does not cover the non-relocatable pre-built binaries version of MOLPRO.
Application Notes
  Information about MOLPRO can be found at the MOLPRO home page.
From the MOLPRO Home page:

"MOLPRO is a complete system of ab initio programs for molecular electronic structure calculations, designed and maintained by H.-J. Werner and P. J. Knowles, and containing contributions from a number of other authors. As distinct from other commonly used quantum chemistry packages, the emphasis is on highly accurate computations, with extensive treatment of the electron correlation problem through the multiconfiguration-reference CI, coupled cluster and associated methods. Using recently developed integral-direct local electron correlation methods, which significantly reduce the increase of the computational cost with molecular size, accurate ab initio calculations can be performed for much larger molecules than with most other programs."

Obtaining the Source Code and License
  MOLPRO source code, binaries and documentation are copyrighted materials and may only be distributed under licence. A valid licence key from MOLPRO is required before you may use the MOLPRO program. To obtain the MOLPRO distribution materials, please visit the MOLPRO home page or contact molpro@molpro.net.
Prerequisites
 
  • A Fortran 90 and GNU C compiler.
  • Approximately 200Mb free disk space for use during compilation.
  • At least one large scratch file system for the program I/O.
  • GNU make
Configuration and Set-up Information
 
  1. Ensure that pgf90 is in your shell's PATH.
  2. Unzip and untar the MOLPRO package in your build directory.
  3. cd into the new molpro2002.6 directory
  4. Run the following command to configure:
    ./configure -pgf90
    This will create the CONFIG file. Note you may need to enter information during this configuration such as whether large files are supported, the location of BLAS library, where the MOLPRO executable and its library will be installed, and your MOLPRO license key. Example of the configuration:
    mymachine% ./configure -pgf90
    
    Building program for processor type=amd64
    Program may not run on athlon/p3/p4 systems
    You can choose another processor type using the athlon|p3|p4 options
    
    Machine architecture is unix unix-i8 unix-linux unix-linux-x86_64
    Do you want to use large files? (y/n, default y) 
    y
    Using large files
    pgf90 Rel 5.2-1
    searching for blas libraries...
    BLASLIB=
     Object library exists
    Enter max number of atoms [ 200]: 200
    Enter max number of valence orbitals [ 300]: 300
    Enter max number of basis functions [2000]: 2000
    
    If you wish to use a system BLAS library, please give the maximum
    level (0, 1, 2, 3) of BLAS to be supplied by the system
    (default 0): 
    0
    Installed binaries directory [/usr/local/bin]
    
    Installed auxiliary directory [/usr/local/lib/molpro-Linux-x86_64-i8-2002.6]
    
    parse-x86_64-unknown-linux-gnu-i8.o.gz is your object.
    CONFIG file created; please inspect and edit if necessary before proceeding
    
  5. Check the CONFIG file to make sure the information is as expected. You may edit the CONFIG file directly to fix any errors. Note that -i8 should be present in the 64-bit compiler options. We recommend using "-fastsse -Mnoflushz" for best performance. -Mnoflushz must be added when compile with -fastsse. See Known Issues below. We've included an example CONFIG file for use with 64-bit pgf90.
Building MOLPRO
  Once the configuration is set and CONFIG file is created.

In MOLPRO base directory, type:
make
-j can be used to speed up compilation time for multiple CPUs system.
Running MOLPRO
  Tuning MOLPRO
MOLPRO can be tuned for a particular system by running the following command from the base MOLPRO directory. The tuning determines which version of a routine, blas or MOLPRO, gives the best performance and appends the tuning results to "bin/molpro.rc".
make tuning
Running the test cases
In directory testjobs, type

Run a small subset of tests:
make quicktest
Run most tests except some long ones:
make test
Run all tests:
make bigtest

These commands can also be issued in the MOLPRO base directory.

Running the benchmark
In directory bench, type:
./configure
You only need to do this once.

To run all benchmarks, type:
runbench 1 1 *.com *.bigcom >& runbench.log &
To run an individual benchmark, i,e., small3.com ,type:
runbench 1 1 small3.com
Each job appends the timings to bench.tab. Timings are also listed in a table at the end of each output.
Verifying Correctness
  MOLPRO is a "self-check" program since a program will only run to completion if no errors occur. For test cases, if the test runs without errors, an *.out file will be created in directory testjobs . If an error does occur, an *.errout file will be created. For benchmarks, if a program runs without errors, timings should be listed in each output as well as appended at the end of bench.tab file.
Known Issues and Limitations
  The following are a list of MOLPRO known issues when using the PGI compilers with options "-fastsse -Mnoflushz".
  • When compile with -fastsse, -Mnoflushz must be added. -Mflushz causes infinite loop in utilities/cnvrt.exe.
  • aucs4k2, cppopt, cpp, incl_pl, incl_sf, tlbr2_opt, tlbr_ecp_forc, and tlbr_mp2_dft_so tests fail because of an optimization error in src/argos/arpseu.f (subroutine:rad2). Inset a line "cpgi$r opt=1" before subroutine rad2 to avoid the errors.
  • au2o_optecp, au2o_optdftecp1, au2o_optdftecp2,and cr2_ecp_forces tests fail due to optimization error in src/forces/angkraft.f(subroutine:qpasykraft) and src/argos/arpseu.f(subroutine:rad2). Insert a line "cpgi$r opt=1" before those two subroutines to avoid the errors.
  • All eom tests fail due to compiler optimization error in src/seward/qzit.f (subroutine:qzit, line:116). Insert a line "cpgi$r opt=1" before subroutine qzit to avoid the errors.
  • h2o_optrs2 and cn_optrs2av tests fail due to optimization error (-Mvect=sse) in src/mrci/cigam23h.f(subroutine:cigam0i). Insert a line "cpgi$r opt=O2 to avoid the errors.
Click me