There is a newer version of this record available.

Software Open Access

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

Mašín, Zdeněk; Benda, Jakub; Gorfinkiel, Jimena

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
4.3 MB Download
4.2 MB Download
All versions This version
Views 38867
Downloads 447190
Data volume 1.9 GB805.2 MB
Unique views 31461
Unique downloads 23146


Cite as