subroutine calc_n_triples() ! this routine calculates the number of "important" triples ! from the samples singles and doubles amplitudes: ! essentiall calulating T1 * T2 integer :: i, j, ia(2, 1), jk_cd(2, 2) do i = 1, cc_ops(1)%n_ops ! for each t_i^a i have to check if a double excitation is ! possible on top of it.. if (.not. cc_ops(1)%set_flag(i) == 1) cycle ia = cc_ops(1)%get_ex(i) do j = 1, cc_ops(2)%n_ops ! i also have to check if the amplitute was set if (.not. cc_ops(2)%set_flag(j) == 1) cycle jk_cd = cc_ops(2)%get_ex(j) ! check if the operators fit.. if (any(ia(1, 1) == jk_cd(1, :)) .or. any(ia(2, 1) == jk_cd(2, :))) then cycle end if ! if it fits increase the triples counter: est_triples = est_triples + 1 end do end do end subroutine calc_n_triples