There is a newer version of the record available.

Published December 15, 2020 | Version 3.0.1
Software Open

GBTOlib: a high-performance library for evaluation of molecular integrals

  • 1. Charles University, Prague, Czech Republic
  • 2. The Open University, Milton Keynes, United Kingdom


This is the first public release of the GBTOlib library. This library is used by the UKRmol+ codes but has a general applicability and has been written to allow interfacing with other codes.


  • Evaluation of molecular integrals in the basis of atom-centered Gaussian orbitals and center-of-mass centered B-splines and/or Gaussians.

  • The center-of-mass (i.e. continuum) basis can be built from either Gaussians, B-splines or a combination of the two.

  • An arbitrary angular momentum for the continuum basis.

  • Transformation of the atomic integrals into basis of molecular orbitals.

  • Orbital orthogonalization using Gramm-Schmidt and/or Symmetric orthogonalization.

  • Flexible configuration of the library allowing it to be ran on various machines ranging from single-node workstations to massively-parallel HPC architectures.

  • Possibility to configure the library to use quadruple precision arithmetics and achieve higher than double precision of the actual integrals calculated.

  • Input of molecular geometry, Gaussian basis and orbitals via the standard MOLDEN file.

Notes for version 3.0

  • The main improvement in this version is the implementation of the MPI (distributed) evaluation of the mixed BTO/GTO integrals and the subsequent sparse integral transformation. In principle this allows to run arbitrarily large calculations using BTOs without an intermediate I/O only by increasing the total number of nodes (total memory) available for the calculation.
  • Version 3.0.1 resolves illegal memory accesses that may appear in calculations using threading (see below).

Features added in this version:

  • Implemented MPI evaluation of the mixed BTO/GTO integrals.
  • Implemented MPI version of the sparse integral transformation.
  • Renaming of the modules to ensure unique and uniform naming: all GBTOlib modules now carry the _gbl suffix.
  • Optional calculation of exponentially damped dipole matrix elements implemented for all types of atomic integrals; new parameter in namelist process_control
  • scatci_integrals now allows reuse of previously calculated AO/MO using basis_input in namelist process_control to indicate file path; allows sign-consistent calculations
  • Molecular orbitals in the Molden format can now be written even if BTO basis is used (only GTO contribution considered); this is mostly useful in connection with UKRmol+ to write out the Dyson orbitals from calculations including BTOs.
  • Backward compatibility with v1.0 integral files implemented
  • scatci_integrals now exits early if integral file exists
  • Verbosity control for GBTOlib implemented and keyword added to redirect output to terminal
  • Some keywords added to documentation
  • Some improvements to memory allocation
  • Changes to what is/is not printed by default: different verbosity levels (1-4) can now be selected using the 'verbosity' flag in the namelist process_control for scatci_integrals.
  • Change of intent of some variables; avoids compiler warning when compiling with Intel Fortran 2020
  • Minimal basis test for H2 added
  • Bugs corrected:
    • to prevent memory leak in free_scattering_gbl module
    • accurate memory allocation in routine eval_CGTO_shell_pair_pw_expansion to avoid invalid memory acces
    • to avoid integer overflow (in routine eval_boys) in LP64 mode
    • so evaluation of amplitudes for irreducible representations without orbitals is skipped
    • in integrals_D2h_photoionization_CC_parallel test when 32-bit MPI library is used
    • when writing of a MOLDEN file when equivalent atoms are presentand when the order of the atoms does not match the order of the centers of the GTOs in the basis.

Bugfixes in v 3.0.1

  • Fixed illegal memory accesses when threading due to incorrect use of thread-unsafe routines for spherical harmonics (cgto_pw_expansions_mod.f90, bto_gto_integrals_mod.f90).
    • This fix included optimizations of the range of angular momenta for which some intermediate quantities are needed.
  • Fixed a bug in saving of the GTO basis set and the molecular orbitals to disk (molden_mod.f90). This affected UKRmol+ photoionization calculations for molecules with an atom on the center of mass (i.e. coinciding with the center of the continuum basis set).
  • Added tests for mixed BTO/GTO basis sets and for molecules with an atom on the center of mass.


Software development supported by EPSRC, CCPQ, UK-AMOR and others.


Files (8.5 MB)

Name Size Download all
4.3 MB Preview Download
4.2 MB Preview Download

Additional details

Related works

Is part of
Software: 10.5281/zenodo.4120705 (DOI)
Software: 10.5281/zenodo.4120626 (DOI)
Is referenced by
Software documentation: 10.1016/j.cpc.2019.107092 (DOI)
Software documentation: 10.1016/j.cpc.2019.107062 (DOI)