wiki:InputFile

How to write an input file for CONVIV

Read statement 1 : sym_name, sym

character(len=3) :: sym_name
logical :: sym

sym_name : Symmetry group in Schoenflies notation or "NaG" standing for "not a group"
sym : Flag for symmetry usage

  • true : take in account symmetry in calculations
  • false : use symmetry information in print out only

Read statement 2 : pot_fmt, fn

character(len=8) :: pot_fmt
character(len=256) :: fn

pot_fmt : file format "EXTENDED" or "COMPACT"
fn : Path of the PES + kinetic terms file


Read statement 3 : fnrot

character(len=64) :: fnrot

fnrot : Path to observable coefficients file. If energy level calculation only write "norot".


Read statement 4 : title

character(len=64) :: title

title : job title


Read statement 5 : nstep

integer :: nstep

nstep : number of VMFCI steps after step 0. nstep must be set to 0 if only step 0 is to be performed.


Read statement 6 : poten, n_window

logical :: poten
integer :: n_window

poten : Flag for printout information

- true : print debug information in output file
- false : print only regular output information

n_window : number of wave number windows. The eigenvectors whose eigenvalues fall in the windows will be printed out if poten is true


(in do_loop from i=1 to n_window)

Read statement 7 :windlow(i), [[span(style=color: #FF0000, windup(i)

real(8) :: windlow(i),windup(i)

windlow(i) : lower bound for ith window (in cm-1).
windup(i) : upper bound for ith window (in cm-1).

(end-loop i)


(in do_loop from i=0 to nstep)

read statement 8 : rest(i)

character(len=3) :: rest(i)

rest(i) : controls restart facilities

  • "NO" or "no" means no restart for step i
  • "OUT" or "out" means save step i for restart (useful in case of accidental or voluntary interruption of a hierarchical VMFCI calculation).
    Also used at the last step, if everything is contracted, to save an observable integral file.
  • "IN" or "in" means restart from step i

(if rest(i) is "IN", "in", "OUT" or "out")

read statement 9 : fnr

character(len=64) :: fnr

fnr : filename for restart file of step i

(end-loop i)


( if "NaG" in Read statement 1 )

Read statement 10 : nos

integer :: nos

nos : gives the number of modes.


Read statement 11 : ncon

integer, dimension(:), pointer :: ncon

ncon : vector of length nos containing the degeneracies of the modes.


NO Read statement 12 : irrep

irrep : irreductible representation symbols are set to "NaI" standing for "not an irreductible representation"

( else )

Read statement 10 : nblevdege

integer :: nblevdege

nblevdeg : gives the numbers of distinct degeneracies among the modes.


(in do_loop from i=1 to nblevdege)

Read statement 11 : modegn

integer, dimension(2) :: modegn

modegn(1) : is a degeneracy value (must be given in increasing order)
modegn(2) : is the number of modes with degeneracy value equal to modegn(1)

(end-loop i)


Read statement 12 : irrep

character(len=3), dimension(:), pointer :: irrep

irrep : irreductible representation symbols of the modes. A pointer whose length equals the number of modes.

( end if )


(in do-loop i= 1 to dim(irrep))

Read statement 13 : basis(i)%type, basis(i)%size

character(len=3) :: basis(i)%type
integer :: basis(i)%size

basis(i)%type : basis set type for mode i.
Available types are: HO harmonic potential eigenfunctions, MOR Morse potential eigenfunctions, KRA Kratzer potential eigenfunctions, TPT Trigonometric Pösch-Teller potential eigenfunctions, CHE Chebyshev polynomials
basis(i)%size : Maximum quantum number +1 for the basis functions of mode i. If the mode is non-degenerate, it is the size of the basis set.
In the case of a Chebyshev basis, it is the number of quadrature points used for integration of matrix elements.


Read statement 14 : basis(i)%param

Real(8), dimension(:), Pointer :: basis(i)%param

basis(i)%param : vector of parameters defining the basis functions for mode i. The basis functions are constructed as eigenfunctions of a model Hamiltonian whose potential is determined by this vector of parameters.

  • For harmonic oscillator (HO) basis functions, the dimension of basis(i)%param is 2:
    • basis(i)%param(1) : harmonic wave number in cm-1 (if 0.0 use the quadratic force constant of the Hamiltonian to determine its value),
    • basis(i)%param(2) : shift of model potential minimum with respect to the molecule equilibrium geometry in a.u. (defaut is 0.0),
  • For Morse (MOR) basis functions, the dimension of basis(i)%param is 2:
    • basis(i)%param(1) : width of the Morse potential in a.u.,
    • basis(i)%param(2) : well depth, D, of the Morse potential in cm-1.,

(if 0.0 or less is entered in these fields, the values of the Morse potential of the mode entered in the Hamiltonian file, if any, will be used)

  • For Kratzer (KRA) basis functions, the dimension of basis(i)%param is 2:
    • basis(i)%param(1) : well depth of the Kratzer potential in cm-1,
    • basis(i)%param(2) : mass-weighted equilibrium position (a.u.) of the initial modified Kratzer potential: basis(i)%param(1) * (Q-basis(i)%param(2))2 / Q2

(if 0.0 or less is entered in these fields, the values of the Kratzer potential of the mode entered in the Hamiltonian file, if any, will be used)

  • For Trigonometric Pösch-Teller (TPT) basis functions, the dimension of basis(i)%param is 2:
    • basis(i)%param(1) : scaling parameter (a.u.) controling the periodicity of the potential on [-pi/(2*basis(i)%param(1),pi/(2*basis(i)%param(2)]
    • basis(i)%param(2) : strength parameter (a.u.) of the TPT potential: 1/2 *basis(i)%param(1)2 * basis(i)%param(2) *(basis(i)%param(2) -1)/Cos(basis(i)%param(1) *Q)2

(if 0.0 or less is entered in these fields, the values of the TPT potential of the mode entered in the Hamiltonian file, if any, will be used)

  • For Chebyshev polynomial (CHE) basis functions, the dimension ofbasis(i)%param is 0, there is no parameter implemented.

(end-loop i)


Read statement 15 : j1

integer, dimension(:) :: j1

j1(i) : Approximate number of eigenpairs to be found by the diagonalizer for mode i. If 0 finds all eigenpairs. (i=1, to dim(irrep))


(in do-loop i= 1 to nstep)

Read statement 16 :ncontr

integer :: ncontr

ncontr : number of contractions


Read statement 16 :ncontr

integer :: ncontr

ncontr : number of contractions


(in do-loop j= 1 to ncontr)

Read statement 17 : ncon(j)

integer :: ncon(j)

ncon(j) : number of components of contraction j


Read statement 18 : icon(j)%comp

integer, dimension(:) :: icon(j)%comp

icon(j)%comp : contraction number in step i-1 of component k of contraction j in step i (k=1 to ncon(j))


Read statement 19 : constraint_set(j)%nb_constraints

integer :: constraint_set(j)%nb_constraints

constraint_set(j)%nb_constraints : number of constraints to be imposed for contraction j


(in do-loop l= 1 to constraint_set(j)%nb_constraints)

Read statement 20 : constraint_set(j)%coeff(l)%coord, constraint_set(j)%threshold(l)

real(8), dimension(:) :: constraint_set(j)%coeff(l)%coord
real(8) :: constraint_set(j)%threshold(l)

constraint_set(j)%coeff(l)%coord : coefficient in the convex combination of component energies for component k for constraint l of contraction j in step i
constraint_set(j)%threshold(l) : energy threshold on the convex combination of component energies for constraint l of contraction j in step i

(end-loop l)

(end-loop j)


Read statement 21 : j1

integer, dimension(:) :: j1

j1(j) : Approximate number of eigenpairs to be found by the diagonalizer for contraction j in step i. If 0 finds all eigenpairs.

(end-loop i)


Go up

Back to Welcome Page

Last modified 2 years ago Last modified on Feb 28, 2020 11:41:12 AM