A few procedures must be defined.
beadpot defines the method for computing the potential energy of a single bead geometry.
beadgrad gives the method for computing the gradient for a bead using the force command.
beadfreq1, beadfreq2 and beadfreq3 define methods for computing frequencies of the transition state/well minimum, of the initial (pre-optimized) ring-polymer beads and of the final (optimized) beads.
Because the procedure beadfreq1 is only called once directly after beadpot, it is not necessary to recalculate the wavefunction in this case.
For the tunnelling-splitting calculations, beadfreq2 is not used as the L-BFGS optimization proceeds without a Hessian.