Examples of derived data input

Example input for a GAUSSIAN

A gaussian function used in theoretical chemistry is defined by its position in three dimension space, its exponent, and its angular momentum quantum number. These are held in variables pos, ex, and l. Valid keyword input for one GAUSSIAN piece of data is:

{ pos= 0.0 0.0 0.0 ex= 3.0 l= 2 put }

or:

{
  l=    2 
  ex=   3.0  
  pos=  0.0 0.0 0.0 
  put
}

Note that the last keyword put is not a data keyword, but would actually cause an operation to be performed---in this case, outputting the data to an output file stdout.

Remember also that in the above, line breaks are not significant. The ordering of the data keywords above corresponds to the standard input data order. Thus, valid plain style input for one GAUSSIAN piece of data is:

{ 2  3.0  0.0 0.0 0.0 }

However, such an input line would only be used when inputting a list of GAUSSIAN data, i.e. for a GAUSSIANVEC.

Example input for a SHELL

A shell is a collection of gaussian functions with the same position and angular momentum, summed together after being weighted by some "contraction coefficients".

For efficiency reasons, a shell is not represented as a list of "gaussian data", since there would be some duplicated information. Instead, a shell is stored in TONTO by the following variables: its "angular momentum" l, an INT, the exponents of each gaussian function, ex, a REALVEC, the contraction coefficients, cc, also a REALVEC, the number of contractions coefficients, n_cc, an INT, and the number of different functions in the shell, n_comp.

Not all this information is inputted. For example, n_comp is currently evaluated from the variable l. Further, some information is inputted in a form which does not agree with the way that the information is stored. For example, there is a data keyword l, but this has type STR. It is valid to enter an integer, such as "2" after the l data keyword---it will be converted to an INT and stored in the variable l. However, you could also input "d", since it is commonly understood that "d" usually means a function with angular momentum 2.

It should also be noted when reading the documentation for the ex= or cc= data keywords, that these keywords can be used only after the n_cc= keyword.

Here then is some valid keyword style input for a SHELL piece of information:

{
  l=    D
  n_cc= 3
  ex=   1.0 2.0 3.0
  cc=   0.1 0.2 0.3
}

We can also enter the data like this:

{
  l=    D
  n_cc= 3
  ex,cc= 1.0 0.1 2.0 0.2 3.0 0.3
}

Here, the data keyword "ex,cc=" indicates that components of the ex vector and cc vector are to be entered simultaneously, component-wise, in pairs: the first element of ex, then the first element of cc, the second element of ex, and then the second element of cc, and so on. This is called interleaved vector input, and is represented in the documentation by a data type declaration like this:

ex,cc= REALVEC(n_cc),REALVEC(n_cc)

Enter the exponents ex= and contraction coefficients cc= for the gaussian shell in alternating style.

The n_cc within the REALVEC(n_cc) symbol indicates that the arrays ex and cc have length equal to the SHELL component variable n_cc.

Finally, since the default input data order is l= n_cc= ex,cc=, a valid plain-style input equivalent to the last example is:

{
 D 3
 1.0 0.1 
 2.0 0.2 
 3.0 0.3
}