# Notes on Implementation

## Adding Data Files

If a new data file is required, it must be assigned a new channel in channels.inc which is allocated in mctdh/default.F. The file is then opened in propwf/opendat.F, taking care of the difference between a new calculation (file is simply opened at the start) and a continuation run (file is opened as "old" and repositioned to the end). The file is then closed in mctdh/closedat.F.

## Point DVR

The idea of a point DVR is to keep a DOF fixed at a specified value allowing the dynamics to take place on a specified cut through the potential surfaces.

In gendvr a "DVR" with a single point is set up. This DOF is, however, not included into the dynamical system so is not allocated to a mode in einsbas.F.

In genoper, in heingabe the point DVR is allocated to the "Hamiltonian coefficient mode", mkoe. This is a "mode" that contains scalar quantities, hence vgdim,gdim and ngdim = 1 for all DOFs in mkoe.

Any KE terms for a point DVR are removed in delkepnt.

For sepaarble potential terms, the value of the coefficient calculated in htmsetup includes the value of the potential term for the point DVR.

For non-separable terms, the calculation of the potential is controlled by the grid array. As the point DVR DOF is included in the grid definition, the N-dimensional potential is calculated on an N-1 dimensional grid with the desired coordinate value for the cut.