.. index::
   single: Program; CMOCORR
   single: CMOCORR

.. _UG\:sec\:cmocorr:

:program:`cmocorr` |extramark|
==============================

.. warning::

   This program is not available in |openmolcas|

.. only:: html

  .. contents::
     :local:
     :backlinks: none

.. _UG\:sec\:cmocorr_description:

Description
-----------

.. xmldoc:: <MODULE NAME="CMOCORR">
            %%Description:
            <HELP>
            The CMOCORR program compares the orbital spaces of two orbitals files.
            </HELP>

The :program:`CMOCORR` is a small utility that is used to compare
orbital spaces for two orbital vector files. This is useful for checking
that a calculation has maintained the orbital spaces intended by the user.

.. _UG\:sec\:cmocorr_dependencies:

Dependencies
------------

The :program:`CMOCORR` program requires two orbitals files as input
generated by any of the modules that produces orbitals.

.. index::
   pair: Files; CMOCORR

.. _UG\:sec\:cmocorr_files:

Files
-----

Input files
...........

Two orbitals files with the names :file:`CMOREF` and :file:`CMOCHK`
are needed by the program, and it is the responsability of the
user to make the proper links to these files, no links are
done automatically.

Output files
............

There are no output files.

.. index::
   pair: Input; CMOCORR

.. _UG\:sec\:cmocorr_input:

Input
-----

Below follows a description of the input to :program:`CMOCORR`
The input for each module is preceded by its name like: ::

  &CMOCORR

Argument(s) to a keyword, either individual or composed by several entries,
can be placed in a separated line or in the same line separated by a semicolon.
If in the same line, the first argument requires an equal sign after the
name of the keyword. Note that all character in a keyword is necessary,
not only the first four.

.. class:: keywordlist

:kword:`DoMetric`
  Compare the metric of the two files.
  If the files correspond to different geometries the metric will be different.

  .. xmldoc:: <GROUP MODULE="CMOCORR" NAME="COMPARE" APPEAR="Compare" KIND="BOX" LEVEL="BASIC" WINDOW="INPLACE">

  .. xmldoc:: <KEYWORD MODULE="CMOCORR" NAME="DOME" APPEAR="Metric" KIND="SINGLE" LEVEL="BASIC" EXCLUSIVE="DOSP,DOOR">
              %%Keyword: DoMetric <basic>
              <HELP>
              Compare the metric of the two files.
              If the files correspond to different geometries the metric will be different.
              </HELP>
              </KEYWORD>

:kword:`DoSpaces`
  Compare the orbitals spaces of the two files.
  This keyword implies :kword:`DoMetric`.

  .. xmldoc:: <KEYWORD MODULE="CMOCORR" NAME="DOSP" APPEAR="Orbital spaces" KIND="SINGLE" LEVEL="BASIC" EXCLUSIVE="DOME,DOOR">
              %%Keyword: DoSpaces <basic>
              <HELP>
              Compare the orbitals spaces of the two files.
              This keyword implies DoMetric.
              </HELP>
              </KEYWORD>

:kword:`DoOrbitals`
  Compare the orbitals one by one in the two files.
  This keyword implies :kword:`DoMetric` and :kword:`DoSpaces`.

  .. xmldoc:: <KEYWORD MODULE="CMOCORR" NAME="DOOR" APPEAR="Orbitals" KIND="SINGLE" LEVEL="BASIC" EXCLUSIVE="DOME,DOSP">
              %%Keyword: DoOrbitals <basic>
              <HELP>
              Compare the orbitals one by one in the two files.
              This keyword implies DoMetric and DoSpaces.
              </HELP>
              </KEYWORD>

  .. xmldoc:: </GROUP>

:kword:`sortcmo`
  Sort the orbitals according to the type index.
  This might be necessary if one of the files are created by :program:`LUSCUS` for example.

  .. xmldoc:: <KEYWORD MODULE="CMOCORR" NAME="SORT" APPEAR="Sort orbitals" KIND="SINGLE" LEVEL="BASIC">
              %%Keyword: SortCMO <basic>
              <HELP>
              Sort the orbitals according to the type index.
              This might be necessary if one of the files are created by LUSCUS for example.
              </HELP>
              </KEYWORD>

:kword:`Thresholds`
  This keyword is followed by two parameters, :math:`t_1` and :math:`t_2`, the first specifying at what overlap
  to report that orbitals from the two files have a small overlap. In addition, orbitals in the reference
  file with best match is located. The second parameter is similar, but no search for matching orbitals
  is done. The defaults are :math:`t_1`\=0.6 and :math:`t_2`\=0.8.

  .. xmldoc:: <KEYWORD MODULE="CMOCORR" NAME="THRE" APPEAR="Thresholds" KIND="REALS" SIZE="2" LEVEL="BASIC" DEFAULT_VALUES="0.6,0.8">
              %%Keyword: Thresholds <basic>
              <HELP>
              Overlap values (two numbers) below which orbitals from the two files will be reported as having small overlap.
              For the first number the best match in the reference file is located, for the second number no search is done.
              </HELP>
              </KEYWORD>

:kword:`End of input`
  This keyword terminates the reading of the input.

  .. xmldoc:: <KEYWORD MODULE="CMOCORR" NAME="END" APPEAR="End of input" KIND="SINGLE" LEVEL="BASIC">
              %%Keyword: End of input <basic>
              <HELP>
              This keyword terminates the reading of the input.
              </HELP>
              </KEYWORD>

Input examples
..............

First we have the bare minimum of input. This will only check that the files
have the same number of orbitals and symmetries. ::

  &CMOCORR

The next example is almost as simple, and all checks are perfomed. ::

  &CMOCORR
  DoOrbitals

.. xmldoc:: </MODULE>
