General program structure
This chapter gives an overview of the most important features of Molpro. For the new user, it is essential to understand the strategies and conventions described in this section, in particular the meaning of files and records, and the use of symmetry. This chapter will focus on general aspects; detailed information about each command will be given in later chapters. Information about commands and parameters can also be obtained using the Molpro help facility (see section molpro help).
Input structure
A typical MOLPRO input has the following structure:
***,title !title (optional)
memory,4,m !memory specification (optional)
file,1,name.int !permanent named integral file (optional)
file,2,name.wfu !permanent named wavefunction file (optional)
gprint,options !global print options (optional)
gthresh,options !global thresholds (optional)
gdirect[,options] !global direct (optional)
gexpec,opnames !global definition of one-electron operators (optional)
basis=basisname !basis specification. If not present, cc-pVDZ is used
geometry={...} !geometry specification
var1=value,var2=value,... !setting variables for geometry and/or wavefunction definitions
{command,options !program or procedure name
directive,data,option !directives for command (optional)
...
} !end of command block
--- !end of input (optional)
If the memory card is given, it should be the first card (after the optional title card). If any file cards are given, they should follow immediately. The order of basis, geometry, gprint, gdirect, gthresh, gexpec, and variable definitions is arbitrary. It is possible to call several programs one after each other. It is also possible to redefine basis set and/or geometry between the call to programs; the program will recognize automatically if the integrals have to be recomputed.
Files
Molpro uses three sequential text files, namely the input file, the output file, and the punch file. The punch file is a short form of the output which contains the most important data and results, such as geometries, energies, dipole moments, etc. The punch file can be processed by the separate program READPUN, which selects specific results by keywords and is able to produce ordered tables in user supplied format. Furthermore, there are up to 9 binary Molpro files available, each one known to the program simply by its number (1 to 9). By default, they are temporary files, usually allocated dynamically by the program, but they can be connected to permanent files with the FILE command. Each file is direct access, and word addressable (word=64 bit usually), but is organised in records of any length. The name, address and length of each record is held in a directory at the start of the file.
File 1 is the main file, holding basis set, geometry, and the one and two electron integrals. By default, file 2 is the dump file and used to store the wavefunction information, i.e. orbitals, CI coefficients, and density matrices. File 3 is an auxiliary file which can be used in addition to file 2 for restart purposes. Often files 1 and 2 (and 3) are declared as permanent files (see FILE) to enable restarts. Storing the wavefunction information on file 2 is useful, since the integral file is overwritten at each new geometry, while the orbitals and CI coefficients of one calculation can be used as a starting guess for the next calculation at a neighbouring geometry. Files 4 to 8 are used as scratch space, e.g., for sorting the integrals, storage of transformed integrals and of the CI vectors. These files should normally not be made permanent.
Note that the file name appearing in molpro input is always converted to lower case on unix machines.
Records
Record names are positive integers, and are usually referred to in the format record.file, e.g., 2100.2 means the record called 2100 on file 2. Note that these names are quite arbitrary, and their numerical values have nothing to do with the order of the records in the file. Record names $\le$ 2000 are reserved for standard quantities (e.g. integrals, properties etc.) and you should never use these in an input, unless you know exactly what you are doing. Some important default records to remember are
- 2100 RHF dump record (closed and open-shell)
- 2200 UHF dump record
- 2140 MCSCF dump record
- 4100 CPHF restart information
- 5000 MCSCF gradient information
- 5100 CP-MCSCF gradient information
- 5200 MP2 gradient information
- 5300 Hessian restart information
- 5400 Frequencies restart information
- 6300 Domain restart information
If an input contains several wavefunction calculations of the same type, e.g., several MCSCF calculations with different active spaces, the record number will be increased by 1 for each calculation of the same type. Thus, the results of the first SCF calculation in an input are stored in dump record 2100.2, the second SCF in record 2101.2, the first MCSCF in 2140.2, the second MCSCF in 2141.2 and so on. Note that these numbers refer to the occurrence in the input and not on the order in which the calculations are performed in the actual run. If an input or part of it is repeated using DO loops, this ensures that each calculation will start with the orbitals from the corresponding orbitals from the previous cycle, as long as the order of the commands in the input remains unchanged. If for instance the first SCF would be skipped in the second cycle using some IF / ENDIF structure, the second SCF would still use record 2101.2. Thus, under most circumstances the program defaults are appropriate, and the user does not have to specify the records.
After a restart this logic will still work correctly if the number and sequence of SCF and MCSCF commands is kept unchanged. Thus, if you want to skip certain parts of the input after a restart, it is recommended to use IF / ENDIF structures or the GOTO command rather than to delete or comment certain commands. If for some reason this is not possible, the START and ORBITAL directives can be used to specify explicitely the records to be used.
In general we recommend the use of program defaults whenever possible, since this minimizes the probability of input errors and frustration!
After completion of each program step, Molpro prints a summary of the records on each file.
Restart
Information from the permanent files is automatically recovered in subsequent calculations. This can be controlled using the RESTART directive.
Data set manipulation
It is possible to truncate files and rename or copy records using the DATA command. Several standard matrix operations can be performed with MATROP, e.g., printing records, linearly combining or multiplying matrices, or forming the trace of a product of two matrices.
Memory allocation
Molpro can allocate memory dynamically as required by the user. Thus it is not necessary to maintain different versions of the program with different memory sizes. There are two ways to specify the memory: (1) MEMORY card in Molpro input file; (2) options -m or --memory or -M in the Molpro command line. The latter method is recommended. Please refer to sections memory specifications for more details and important information regarding parallel processing.
If memory is specified using both methods at the same time, MEMORY card will take precedence. If both ways are omitted, the program will use a default memory size (currently it is $32000000$ words, i.e. 256 MB). Please note that: (1) memory specification is in megawords. 1 word is 8 bytes (i.e., the memory size to store one double precision data). (2) memory specification is for each process.
Memory directive in the input file
MEMORY,[STACK=]m,[GA=G],[Total=M],[GA_PREALLOC=$0|1$]
By default, all memory specifications are in megawords. The numbers (m, G, M) can be appended by a scaling unit, which can be K, M, or G (case insensitive). If the unit is K, the specification is assumed to be in kilowords ($10^3$ words), M means megawords ($10^6$ words), and G means gigawords ($10^9$ words). Blanks or commas have to be inserted between the number and the unit, i.e., 100 m or 100,m are possible specifications of the memory size.
Examples:
MEMORY,90requests 90 000 000 words of memoryMEMORY,500 Krequests 500 000 words of memoryMEMORY,2 Mrequests 2 000 000 words of memoryMEMORY,100,Mrequests 100 000 000 words of memorymemory,100 mrequests 100 000 000 words of memoryMEMORY,1 grequests $10^9$ words of memory
Optionally, the requested GA space or the total allocatable memory (stack memory + GA) can be used. These options have the same meaning and effect as the -G and -M command line options, cf. section memory specifications. GA_PREALLOC=0 or GA_PREALLOC=1 disables or enables GA preallocation, respectively (see sections GA Installation notes and memory specifications).
Memory option in command line
-m $|$ --memory nscale
The scale (k, m, g and K, M, G) is case sensitive, lower case for decimal and upper case for binary. k, m, g stand for 1000, 1000 000 and $10^9$; K, M, G stand for $2^{10}$, $2^{20}$ and $2^{30}$.
Examples:
-m 1krequests 1000 words of memory-m 1Krequests 1024 words of memory-m 1mrequests 1000000 words of memory-m 1Mrequests 1048576 words of memory-m 1grequests $10^9$ words of memory-m 1Grequests $2^{30}$ words of memory
For more information please refer to section memory specifications.
Memory in parallel
The memory specification is for each process. So the total requested memory in parallel calculation will be the specified memory amount multiplied by the number of compute processes. For example, specifying $100 * 10^6$ words for a job with 4 compute processes:
memory,100,min input file-m 100min command line
the total requested memory will be $100 * 10^6 * 8 * 4 = 3.2 * 10^9$ bytes.
In addition, some methods need an significant amount of global array (GA) memory. Please refer to sections GA Installation notes and memory specifications for important information regarding parallel processing.
Multiple passes through the input
It is possible to perform loops over parts of the input using DO loops, very much as in FORTRAN programs. DO loops may be nested to any reasonable depth. This can be conveniently used, for instance, to compute automatically whole potential energy surfaces.
Symmetry
Molpro can use Abelian point group symmetry only. For molecules with degenerate symmetry, an Abelian subgroup must be used — e.g., $C_{2v}$ or $D_{2h}$ for linear molecules. The symmetry group which is used is defined in the integral input by combinations of the symmetry elements $x$, $y$, and $z$, which specify which coordinate axes change sign under the corresponding generating symmetry operation. It is usually wise to choose $z$ to be the unique axis where appropriate (essential for $C_2$ and $C_{2h}$). The possibilities in this case are shown in Table symmetry.
Normally, Molpro determines the symmetry automatically, and rotates and translates the molecule accordingly. However, explicit symmetry specification is sometimes useful to fix the orientation of the molecule or to use lower symmetries.
| The symmetry generators for the point groups | |
|---|---|
| Generators | Point group |
| (null card) | $C_1$ (i.e. no point group symmetry) |
X (or Y or Z) | $C_s$ |
XY | $C_2$ |
XYZ | $C_i$ |
X,Y | $C_{2v}$ |
XY,Z | $C_{2h}$ |
XZ,YZ | $D_2$ |
X,Y,Z | $D_{2h}$ |
The irreducible representations of each group are numbered 1 to 8. Their ordering is important and given in the tables below. Also shown in the tables are the transformation properties of products of $x$, $y$, and $z$. $s$ stands for an isotropic function, e.g., $s$ orbital, and for these groups, this gives also the transformation properties of $x^2$, $y^2$, and $z^2$. Orbitals or basis functions are generally referred to in the format number.irrep, i.e. 3.2 means the third orbital in the second irreducible representation of the point group used.
| Numbering of the irreducible representations in $D_{2h}$ | ||
|---|---|---|
| No. | Name | Function |
| $D_{2h}$ | ||
| 1 | $A_{g}$ | $s$ |
| 2 | $B_{3u}$ | $x$ |
| 3 | $B_{2u}$ | $y$ |
| 4 | $B_{1g}$ | $xy$ |
| 5 | $B_{1u}$ | $z$ |
| 6 | $B_{2g}$ | $xz$ |
| 7 | $B_{3g}$ | $yz$ |
| 8 | $A_{u}$ | $xyz$ |
| Numbering of the irreducible representations in the four-dimensional groups | ||||||
|---|---|---|---|---|---|---|
| No. | Name | Function | Name | Function | Name | Function |
| $C_{2v}$ | $C_{2h}$ | $D_2$ | ||||
| 1 | $A_1$ | $s, z$ | $A_g$ | $s, xy$ | $A$ | $s$ |
| 2 | $B_1$ | $x, xz$ | $A_u$ | $z$ | $B_3$ | $x, yz$ |
| 3 | $B_2$ | $y, yz$ | $B_u$ | $x, y$ | $B_2$ | $y, xz$ |
| 4 | $A_2$ | $xy$ | $B_g$ | $xz, yz$ | $B_1$ | $xy$ |
| Numbering of the irreducible representations in the two-dimensional groups | ||||||
|---|---|---|---|---|---|---|
| No. | Name | Function | Name | Function | Name | Function |
| $C_{s}$ | $C_{2}$ | $C_{i}$ | ||||
| 1 | $A^{'}$ | $s, x, y, xy$ | $A$ | $s, z, xy$ | $A_g$ | $s, xy, xz, yz$ |
| 2 | $A^{''}$ | $z, xz, yz$ | $B$ | $x, y, xz, yz$ | $A_u$ | $x, y, z$ |
Defining the wavefunction (WF)
In all program modules where such information is required, the total symmetry of the $N$-electron wavefunction is defined on WF (wavefunction) cards in the following way:
WF,nelec,irrep,spin
or, alternatively
WF,[NELEC=nelec],[SYM[METRY]=irrep],[spin=spin],[CHARGE=charge]
where nelec is the total number of electrons, irrep is the number of the irreducible representation, and spin equals $2 \times S$, where $S$ is the total spin quantum number. Instead of nelec also charge can be given, which specifies the total charge of the molecule. For instance, for a calculation in $C_{2v}$ symmetry with 10 electrons, WF,10,3,0 denotes a $^1B_2$ state, and WF,10,1,2 a $^3A_1$ state. The charge can also be defined by setting the variable CHARGE:
SET,CHARGE=charge
This charge will be used in all energy calculations following this input. Note that SET is required, since CHARGE is a system variable (cf. section system variables).
Although in principle each program unit requires a WF command, in practice it is seldom necessary to give it. The program remembers the information on the WF card, and so one might typically specify the information in an SCF calculation, but then not in subsequent MCSCF or CI calculations; this also applies across restarts. nelec defaults to the sum of the nuclear charges. Molpro attempts to find the ground state configuration from the Aufbau principle and sets spin and irrep correspondingy; thus in many cases, it is not necessary to specify a WF card at all.
If the WF directive is given outside an command input block, it is treated as global, i.e., the given values are used for all subsequent calculations. Setting the variables NELEC, SPIN, or SYMMETRY, has the same effect giving these on a global WF directive. If the global WF directive is given after the variable definition, the values of the variables are replaced by the values given on the WF directive. Vice versa, if a variable definition follows a global WF directive, the new value of the variable is used in the following. Note that WF input cards in command blocks have preference over global WF directives or input variables.
Defining orbital subspaces (OCC,CLOSED,CORE,FROZEN)
In the SCF, MCSCF, and CI programs it may be necessary to specify how many orbitals in each symmetry are occupied (or internal in CI), and which of these are core or closed shell (doubly occupied in all CSFs). This information is provided on the OCC, CORE, and CLOSED cards in the following way:
OCC,$m_1,m_2,\ldots,m_8$; CORE,$co_1,co_2,\ldots,co_8$; CLOSED,$cl_1,cl_2,\ldots,cl_8$; FROZEN,$fr_1,fr_2,\ldots,fr_8$;
where $m_i$ is the number of occupied orbitals (including core/frozen and closed), $co_i$ the number of core orbitals, and $cl_i$ is the number of closed-shell orbitals (including the core orbitals) in the irreducible representation $i$. In general, $m_i \ge
cl_i$, and $cl_i \ge co_i$. It is assumed that these numbers refer to the first orbitals in each irrep. FROZEN only exists in the MCSCF program and denotes frozen core orbitals that are not optimized (note that in older Molpro versions frozen core orbitals were denoted CORE).
For CORE the following special input possibilities exists (only in the MRCI and Coupled-Cluster programs):
CORE,SMALL
CORE,MIXED
CORE,LARGE
CORE,SYM1=spdf,SYM2=spdf,…
SMALL means that all atomic orbitals are correlated for which the cc-pwCVXZ basis are optimized (typically one additional shell of each angular momentum below the valence shell). For $n$d transition metals, the $n$s, $(n+1)$s, $n$p, $n$d orbitals are correlated.
MIXED corresponds to SMALL but the next lower s and p shells of the p-block elements are not correlated.
Note that until Molpro 2021.3, the 2s and 2p shells of the second-row elements Al - Ar were correlated with MIXED, but for consistency this has been changed in 2021.4. The old behaviour can be recovered using MIXED_OLD.
LARGE means that no inner shells are correlated (default). In transition metals the outermost d-shell and in f-elements the outermost f-shell are treated as valence and always correlated.
The most general core definition is possible using the last possibility, where SYM1, SYM2 etc are atomic symbols and spdf are the numbers of core orbitals at the given atom for each angular momentum. For example, for bromine CORE,Br=21 is equivalent to CORE,SMALL, CORE,Br=32 is equivalent to CORE,MIXED, and CORE,Br=321 is equivalent to CORE,LARGE. Trailing zeros are optional, i.e. Br=3200, 320, or 32 are equivalent. Atom-specific core specifications cannot exceed the number of large core orbitals for each angular momentum.
Optionally, SMALL, MIXED, or LARGE can be followed by specifications for individual atoms. In this case these default apply to all atoms that are not explicitly specified.
The table below summarizes the number of shells that are not correlated with the three core-orbital specifications. The cases where mixed and small differ are shown as italic. Note that for the post-d p-block elements “mixed” includes correlation of the outermost d-shell, which is not the case for the large core. For calculations including outer core orbitals the correlation consistent CVXZ or (preferably) wCVXZ basis sets [K. A. Peterson, and T. H. Dunning Jr., J. Chem. Phys. 117, 10548–10560 (2002)] should be used. But note these are not appropriate to correlate inner-shell core electrons.
| Number of shells | ||||||
|---|---|---|---|---|---|---|
| Elements | Outer core | Valence | All occupied | Large core | Small core | Mixed core |
| (spdf) | (spdf) | (spdf) | (spdf) | |||
| Z=1,2 | 1s | (1000) | (0000) | (0000) | (0000) | |
| Z=3-4 | 1s | 2s | (2000) | (1000) | (0000) | (0000) |
| Z=5-10 | 1s | 2s2p | (2100) | (1000) | (0000) | (1000) |
| Z=11-12 | 2s2p | 3s | (3100) | (2100) | (1000) | (1000) |
| Z=13-18 | 2s2p | 3s3p | (3200) | (2100) | (1000) | (2100) |
| Z=19-20 | 3s3p | 4s | (4200) | (3200) | (2100) | (2100) |
| Z=21-30 | 3s3p | 4s3d | (4210) | (3200) | (2100) | (2100) |
| Z=31-36 | 3s3p3d | 4s4p | (4310) | (3210) | (2100) | (3200) |
| Z=37-38 | 4s4p | 5s | (5310) | (4310) | (3210) | (3210) |
| Z=39-48 | 4s4p | 5s4d | (5320) | (4310) | (3210) | (3210) |
| Z=49-54 | 4s4p4d | 5s5p | (5420) | (4320) | (3210) | (4310) |
| Z=55-56 | 5s5p | 6s | (6420) | (5420) | (4320) | (4320) |
| Z=57-71 | 4s4p4d | 5s6s5p5d4f | (6431) | (4320) | (3210) | (3210) |
| Z=72-80 | 5s5p | 6s5d | (6431) | (5421) | (4321) | (4321) |
| Z=81-86 | 5s5p5d | 6s6p | (6531) | (5431) | (4321) | (5421) |
| Z=87-88 | 6s6p | 7s | (7531) | (6531) | (5431) | (5431) |
| Z=89-103 | 5s5p5d | 6s7s6p6d5f | (7542) | (5431) | (4321) | (4321) |
| Z=104-112 | 6s6p | 7s6d | (7542) | (6532) | (5432) | (5432) |
| Z=113-118 | 6s6p6d | 7s7p | (7642) | (6542) | (5432) | (5432) |
The program automatically checks if the orbitals with the lowest orbital energies correspond to the requested core orbitals, and if necessary orbitals are swapped as required. Within the set of core orbitals, this check can only be performed if SMALL or MIXED is given. If one specifies the absolute number of core orbitals the check is not possible since the program does not know which type the core orbitals should have.
Note that the OCC and CLOSED cards have slightly different meanings in the SCF, MCSCF and CI or CCSD programs. In SCF and MCSCF, occupied orbitals are those which occur in any of the CSFs. In electron correlation methods (CI, MPn, CCSD etc), however, OCC denotes the orbitals which are occupied in any of the reference CSFs. In the MCSCF, FROZEN orbitals are doubly occupied in all CSFs and frozen (not optimized), while closed denotes all doubly occupied orbitals (frozen plus optimized). In the CI and CCSD programs, core orbitals are those which are not correlated and closed orbitals are those which are doubly occupied in all reference CSFs.
OCC, CORE and CLOSED directives are generally required in each program module where they are relevant; however, the program remembers the most recently used values, and so the directives may be omitted if the orbital spaces are not to be changed from their previous values. Note that this information is also preserved across restarts. Note also, as with the WF information, sensible defaults are assumed for these orbital spaces. For full details, see the appropriate program description.
The orbital spaces may also be defined outside command blocks, and then the directive is treated as global, i.e., it is used in all subsequent programs. Spaces specific to certain wavefunction types can be defined by specifiying the program name with a CONTEXT option, e.g.,
OCC,4,2,1,CONTEXT=MULTI
Alternatively, the context can be appended to the directive name with an underscore. For example
OCC_MULTI,4,2,1
is equivalent to the previous form.
The occupation and core settings are usually molecule specific and depend on the symmetry and charges. They can also change if dummy atoms are defined. Therefore, global settings should be used with care. In molpro2021.4 or later it is possible to specify global core types (CORE,SMALL|MIXED|LARGE); these work also if the molecule or symmetry changes, or if dummy atoms are used. Specifying core orbitals in this way is preferable since the orbitals are appropriately reordered, if necessary (see above). Note that contexts cannot be given if core types are given; also atom-specific core definitions are only possible within command blocks.
Local input given within command blocks has preference over global input.
Selecting orbitals and density matrices (ORBITAL, DENSITY)
[sec:orbitals] As outlined in section records, the information for each SCF or MCSCF calculation is stored in a dump record. Dump records contain orbitals, density matrices, orbital energies, occupation numbers, fock matrices and other information as wavefunction symmetries etc. Subsequent calculation can access the orbitals and density matrices from a particular record using the ORBITAL and DENSITY directives, respectively. These input cards have the same structure in all programs. The general format of the ORBITAL and DENSITY directives is as follows:
ORBITAL[,[RECORD=]record] [,[TYPE=]orbtype] [,STATE=state] [,SYM[METRY]=symmetry]]
DENSITY[,[RECORD=]record] [,[TYPE=]dentype] [,STATE[B]=stateb] [,SYM[B]=symb] [,SPIN[B]=spinb] [,MS2[B]=ms2b] [,STATEK=statek] [,SYMK=symk] [,SPINK=spink] [,MS2K=ms2k] [,[N]ELEC=nelec] [,SET=iset]
where the (optional) specifications can be used to select specific orbitals or densities, if several different orbital sets are stored in the same record. If a specification is not given, it is not checked and the last written set that fullfills all other criteria is used. The meaning of the individual specifications are as follows:
- orbtype Orbital type. This can be one of
CANONICAL: canonical or pseudo-canonical orbitals;
NATURAL: natural orbitals;
LOCAL: localized orbitals;
LOCAL(PM): localized Pipek-Mezey orbitals;
LOCAL(BOYS): localized Boys orbitals;
PROJECTED: projected virtual orbitals used in local calculations.
Without further specification, the most recently computed orbitals of the specified type are used. If the orbital type is not specified, the program will try to find the most suitable orbitals automatically. For instance, in MRCI calculations NATURAL orbitals will be used preferentially if available; MRPT (CASPT2) calculations will first search for CANONICAL orbitals, and local calculations will first look for LOCAL orbitals. Therefore, in most cases the orbital type needs not to be specified.
- state Specifies a particular state in the form $istate.isym$. For instance, 2.1 refers to the second state in symmetry 1. This can be used if density matrices or natural orbitals have been computed for different states in a state-averaged CASSCF calculation. If not given, the last written orbitals are used. A state-averaged density can be selected using
STATE=AV[ERAGED]. The specification of $isym$ is optional; it can also be defined using theSYMMETRYkey. - dentype Density type. This can be one of
CHARGE: charge density;
SPIN: UHF spin density;
TRANSITION: transition density matrix;
The default is CHARGE.
- symmetry Specifies a particular state symmetry. Alternatively, the state symmetry can be specified using
STATE(see above). - spin Spin quantum number, i.e. 0 for singlet, 1/2 for doublet, 1 for triplet, etc. Alternatively
MS2can be used. - ms2 $2 M_S$, i.e. 0 for singlet, 1 for doublet, 2 for triplet etc. Alternatively,
SPINcan be used. - nelec Number of electrons.
- iset Set number of orbitals. The orbital sets are numbered in the order they are stored.
In some cases (e.g. in MATROP) transition density matrices can be specified. In this case STATEB, SYMB, MS2B, SPINB refer to the bra state and STATEK, SYMK, MS2K, SPINK refer to the ket state. If bra and ket differ, TYPE=TRANSITION is implied, and SYMMETRY is automatically set to the product symmetry of bra and ket. If STATEK, SYMK, MS2K, SPINK are not given, they are assumed to be equal to the corresponding bra quantities. See section matrix operations for examples.
If OVL is specified, the starting orbitals are obtained by maximizing the overlap with previous orbitals. By default, this is used if the basis dimension of the previous orbitals is different then the current one. If OVL is specified this procedure is used even if the basis dimensions are the same, which is occasionally useful if the contraction scheme changed.
If NOCHECK is specified, some consistency checks for finding correct orbitals are skipped, and error messages like “ORBITALS CORRESPOND TO DIFFERENT GEOMETRY” are ignored.
If IGNORE_ERROR is specified, MPn or triples calculations can be forced with other than canonical orbitals. Note that this can lead to meaningless results! Note that in MULTI IGNORE_ERROR must be given on the START directive, since in this program ORBITAL is used to define the new orbitals.
If any of the above options are given, they must be obeyed strictly, i.e., the program aborts if the request cannot be fulfilled.
Examples:
ORBITAL,2100.2 !Use SCF orbitals ORBITAL,2140.2 !Use (state-averaged) MCSCF orbitals ORBITAL,2140.2,CANONICAL !use canonical MCSCF orbitals ORBITAL,2140.2,NATURAL,STATE=2.1 !use natural MCSCF orbitals for second state in sym. 1
Plugins
Molpro can host suitably prepared external programs as “plugins”. They are launched using MPI’s spawn mechanism, and therefore the user must take care of any job-scheduling constraints on the number and placement of MPI processes. The following syntax in the input file will cause the plugin to be launched.
PLUGIN,COMMAND=command,PROCS=procs
command is the name of the executable of the plugin. It can be given as an absolute path name, or a relative path. If it is a simple name (no / characters), it will be searched for in the same directory as Molpro’s executable, and this will be the normal mode of use. If the plugin is not found, and command does not have a filename suffix, then the suffix .exe will be assumed.
PROCS=procs specifies the number of processes for the plugin, and can be omitted, in which case the number is the same as in the host Molpro instance.
Example:
PLUGIN, COMMAND='Block', PROCS=128
Most plugins work by requesting the information they need from Molpro. This is typically information about the molecule and hamiltonian, plus an input file consisting of options. For some plugins, Molpro is aware of the structure of this input file, and will construct it by merging user-specified options with defaults. For example,
GLOBAL,FCIQMC,TIME=20,CALCRDMONFLY=3 PLUGIN,COMMAND='neci'
Summary of keywords known to the controlling program
This is a summary of all keywords presently implemented in the controlling program. Each module knows further keywords, which are described in the chapters about the individual programs. For detailed information about the use of the commands listed below, consult the following chapters.
- Program control:
**indicates start of a new calculationMEMORYallocates dynamic memoryPUNCHopens a punch fileFILEconnects units to permanent filesRESTARTrecovers file informationINCLUDEincludes other input filesBASIScan be used to define default basis setsGEOMETRYcan be used to specify the geometryZMATcan be used to define the Z-matrixPARALLELcan be used to control parallelizationSTATUSchecks status of program stepsPRINT,GPRINTcontrols global print levelsTHRESH,GTHRESHcontrols global thresholdsDIRECT,GDIRECTflags direct computation of integrals and for setting direct optionsEXPEC,GEXPECcontrols computation of expectation valuesTEXTprints textEXITstops executionDOcontrols do loopsENDDOend of do loopsIFcontrols conditional actionsELSEIFcontrols conditional actionsENDIFend ofIF blockGOTOused to skip part of input and for loops over inputLABELno actionDATAdata set managementDELETE,ERASEdata set deletionMATROPperforms matrix operationsGRIDDefine gridCUBEDump data to gridCARTESIANUse cartesian basis functionsSPHERICALUse spherical harmonic basis functionsUSERcalls user-supplied subroutine---last line of input
- Variables:
SETsets variables (obsolete)SETIsets variables or numbers to their inverse (obsolete)SETAsets variable arrays (obsolete)CLEARclears variablesCLEARALLclears all variablesGETVARrecovers variables from fileSHOWdisplays the values of variablesTABLEprints tables
- Wave function optimization:
INTcalls the machine default integral program. This is optional and needs not to be given.LSINTcalls the spin-orbit integral programCPPcompute core polarization potential integralsHForRHFcalls spin-restricted Hartree-Fock program (open or closed shell)UHFcalls spin-unrestricted Hartree-Fock programDFTcalls the density functional programKS,RKScall the Kohn-Sham spin restricted density functional programUKScall the Kohn-Sham spin-unrestricted density functional programMULTI,MCSCF, orCASSCFcalls MCSCF/CASSCF programCASVBcalls the CASVB valence bond programCI,MRCI, orCI-PROcalls internally contracted MRCI program (only pairs contracted)CICorMRCICcalls the faster internally contracted MRCI program (pairs and singles contracted)CIPT2calls internally contracted CIPT2 programACPF,AQCCcalls internally contracted MR-ACPF programCEPAcalls single-reference CEPA program (closed- or open-shell)RS2,RS3calls internally contracted multireference perturbation theory program (only pairs contracted)CASPT2orRS2Ccalls faster program for internally contracted multireference perturbation theoryNEVPT2calls NEVPT2 programMP2calls closed-shell MP2 programMP3calls closed-shell MP3 programMP4calls closed-shell MP4 programCISDcalls closed-shell CISD programCCSDcalls closed-shell coupled cluster programDCSDcalls closed-shell distringusihable cluster programBCCDcalls closed-shell Brueckner CCD programQCI,QCSIDcalls closed-shell quadratic configuration interaction programUCCSDcalls spin-unrestricted open-shell coupled cluster program (based on RHF reference function)RCCSDcalls spin-restricted open-shell coupled cluster program (based on RHF reference function)FCIorFULLCIcalls determinant based full CI program
- Local correlation methods:
LMP2calls closed-shell PAO-LMP2 programLMP3calls closed-shell PAO-LMP3 programLMP4calls closed-shell PAO-LMP4 programLCISDcalls closed-shell PAO-LCISD programLCCSDcalls closed-shell PAO-LCCSD programPNO-LMP2calls PNO-LMP2 programPNO-LCCSDcalls PNO-LCCSD program, equivalent toPNO-RCCSDPNO-RCCSDcalls PNO-RCCSD programPNO-UCCSDcalls PNO-UCCSD programPNO-CASPT2calls PNO-CASPT2 program
- Explicitly correlated methods:
MP2-R12calls MP2-R12 programMP2-F12calls MP2-F12 programCCSD-F12calls CCSD-F12 programLMP2-R12calls PAO-LMP2-R12 programLMP2-F12calls PAO-LMP2-F12 programLCCSD-F12calls PAO-LCCSD-F12 programPNO-LMP2-F12calls PNO-LMP2-F12 programPNO-LCCSD-F12calls PNO-LCCSD-F12 program, equivalent toPNO-RCCSD-F12PNO-RCCSD-F12calls PNO-RCCSD-F12 programPNO-UCCSD-F12calls PNO-UCCSD-F12 programRS2-F12calls explicitly correlated multireference perturbation theory programMRCI-F12calls explicitly correlated internally contracted MRCI program
- Orbital manipulation:
LOCALIcalls orbital localization programMERGEcalls orbital manipulation program
- Properties and wavefunction analysis:
POPcalls population analysis programDMAcalls distributed multipole analysis programIBBAorIBOcalls intrinsic bond orbital analysis programPROPERTYcalls properties programDIPadds dipole field to $h$QUADadds quadrupole field to $h$LATTICEread or disable lattice of point charges- Gradients and geometry optimization:
FORCEScalls gradient programOPTGperforms automatic geometry optimizationMINperforms energy minimization with respect to some parametersPUTprint or write geometry to a fileHESSIANcalculate HessianFREQUENCYcalculate vibrational frequenciesMASSdefine atomic massesDDRevaluates approximate non-adiabatic coupling matrix elements
The command names for single reference coupled cluster methods QCISD, CCSD, LQCISD, LCCSD, PNO-LCCSD, PNO-RCCSD, PNO-UCCSD (including the explicitly correlated variants) can be appended by (T) and then a perturbative correction for triple excitations will be computed (e.g., CCSD(T), PNO-LCCSD(T)-F12 etc.)
HF, KS, UHF, UKS, MP2, CCSD, MCSCF, RS2, and all PAO-based local correlation methods can be prepended by DF- to invoke density fitting (PNO always implies density fitting).
HF, KS, UHF, UKS can be pretended by LDF- to invoke local density fitting approximations.
Molpro help
The help command can be used to obtain a short description of commands, input parameters, and variables. The syntax is:
HELP,set,name,[keys]
where set is either COMMAND, VARIABLE, or the name of the input set (e.g., THRESH, PRINT, LOCAL, EOM, CFIT), and name is the name of the parameter. If name is blank, all parameters of the set are shown. Optionally, keys can be specified to request specific information (e.g., short_description, long_description, default_value, type, program). If keys are not given, short_description is assumed.
- examples/help.inp
***,demonstrate help facility in Molpro help,command,help !print help about help help,thresh,energy !print help about threshold energy help,thresh,energy,default_value !print help about threshold energy and its default help,thresh !print short description of all thresholds help,thresh,nonexistent !this does not exist and gives an error message
Currently, help is only available for a limited number of parameters and commands. However, the database will be extended in the near future.