GBTOlib: library for evaluation of molecular integrals in mixed Gaussian / B-spline basis  111
Todo List
Subprogram bto_gto_integrals_mod::BTO_GTO_one_electron_integrals (cms_bto, cgto, nuclei, integrals)
this routine can be called only if the CGTO is indeed non-negligible on the BTO grid otherwise the routine radial_grid_CGTO will not work
Subprogram special_functions_gbl::cfp_sph_to_cart_mapping (l, m, c, i_exp, j_exp, k_exp)
the construction of the coefficient list (the summations) should be included along the lines of sph_shell_to_cart_shell
Subprogram bto_gto_integrals_mod::BTO_GTO_one_electron_integrals (cms_bto, cgto, nuclei, integrals)
make sure the integrals are calculated only for rad. b-splines starting from cms_btoind_0_der!!!!
Subprogram special_functions_gbl::cfp_zhar (SH, X, Y, Z, L)
{add error checking for case L > size(SH(,:))}
Subprogram bto_gto_integrals_mod::omp_radial_integrals_legendre_bsplines (cms_bto, bspline_start_end_r2, legendre_rad, max_l_legendre, r2, w2, n2_total_points, r1, w1, n1_total_points, R_l_ints)
Parts of this routine can be ran only once such as the evaluation of the B-spline pairs on the r2 quadrature grid.
Module bto_integrals_mod
Add checking that the radial quadratures have high enough order to get exact results. Integrals involving radial B-splines with a non-zero derivative at r=A (i.e. at the origin of the B-spline grid) are not evaluated.
Subprogram utils_gbl::search_string (unit_no, string, rew, fmted)

Add a test if the input unit is open for formatted reading.

Add a test for unformatted unit which should search for a string not present on the file. I encountered a case in which err > 0 was returned rather than err < 0 (end of file reached).

Module utils
rewrite xermsg using variables defined as private in this module and get rid of the helper routines that cause the doxygen graphs to be very messy!!!
Subprogram utils::search_string (unit_no, string, rew, fmted)

Add a test if the input unit is open for formatted reading.

Add a test for unformatted unit which should search for a string not present on the file. I encountered a case in which err > 0 was returned rather than err < 0 (end of file reached).

Type vnl_module::vnl_integrand

implement a Chebyshev approximation of the Vnl in the range where the recurrence is inaccurate.

calculate the Vnl solving a system of equations with starting values determined using the Chebyshev approx.

Subprogram molden_const_gbl::angstrom_to_au
move this constant to phys_const module?
Module bto_integrals_gbl
Add checking that the radial quadratures have high enough order to get exact results. Integrals involving radial B-splines with a non-zero derivative at r=A (i.e. at the origin of the B-spline grid) are not evaluated.
Subprogram const_gbl::tile
define l1_cache_size and use it to manage sizes of the buffers: check if the source-target buffers fit inside the cache. If not then reallocate them (if possible) to their minimal sizes.
Subprogram data_file_gbl::data_file_obj::open => open_data_file
The unit number associated to the file should be returned by this function - this will allow me to get rid of get_unit_no below.
Subprogram gto_routines_gbl::nari_tail (xc, yc, zc, l_a, l_b, np_a, np_b, alp_a, alp_b, ccf_a, ccf_b, cnorm_a, norms_a, cnorm_b, norms_b, rmat_radius, na_tail)
Make xc,yc,zc arrays so I can calculate all NAI tails at once saving CPU time since all terms except Rc and Xlm(Rc) are the same!
Subprogram gto_routines_gbl::eri_tail_shell (tgt_prop, tgt_pair, l_a_tgt, l_b_tgt, l_a, l_b, np_a, np_b, alp_a, alp_b, ccf_a, ccf_b, norms_a, norms_b, rmat_radius, swap_ab_cd, eri_tail_int)
The whole eri tail calculation can be improved on since all of the couplings are the same as for NARI hence the eri tails should be precalculated reverting the loop so that the properties are in the inner loop and the continuum functions the outer loop. This should speed things up considerably.
Type integral_data
the first line of read/write should include version number of the object to ensure I can tell if I am reading things correctly.
Subprogram special_functions_gbl::cfp_nlm (INorm, L)
{add error checking for case l > size(INorm(,:))}
Subprogram special_functions_gbl::cfp_resh (SH, X, Y, Z, L)
{add error checking for case L > size(SH(,:))}
Subprogram special_functions_gbl::cfp_solh (SH, x, y, z, L)
{add error checking for case L > size(SH(,:))}
Subprogram special_functions_gbl::cfp_zhar (SH, X, Y, Z, L)
{rewrite the algorithm to calculate zlm directly using Helgaker's algorithm for the scaled solid harmonics rather than by calculating Slm first and then renormalizing}