43 INTEGER :: bse_spin_config = 0, &
44 bse_diag_method = 0, &
48 num_print_exc_descr = 0, &
49 screening_method = 0, &
50 num_buffer_states = 0, &
52 num_guess_transitions = 0, &
53 max_subspace_factor = 0, &
54 matvec_block_columns = -1, &
57 convergence_criterion = 0, &
60 REAL(kind=
dp) :: eps_res = 0.0_dp, &
61 memory_budget_gb = 0.0_dp, &
62 eps_energy = 0.0_dp, &
64 screening_factor = 0.0_dp, &
65 bse_cutoff_occ = 0.0_dp, &
66 bse_cutoff_empty = 0.0_dp
67 LOGICAL :: do_bse = .false., &
68 bse_debug_print = .false., &
69 print_directional_exc_descr = .false., &
70 print_directional_crosscorrelation = .false., &
71 use_ks_energies = .false.
73 REAL(kind=
dp) :: bse_spectrum_freq_step_size = 0.0_dp, &
74 bse_spectrum_freq_start = 0.0_dp, &
75 bse_spectrum_freq_end = 0.0_dp
76 LOGICAL :: bse_print_spectrum = .false.
77 REAL(kind=
dp),
DIMENSION(:),
POINTER :: bse_eta_spectrum_list => null()
80 LOGICAL :: do_nto_analysis = .false., &
81 explicit_nto_list = .false.
82 REAL(kind=
dp) :: eps_nto_eigval = 0.0_dp, &
83 eps_nto_osc_str = 0.0_dp
84 INTEGER :: num_print_exc_ntos = 0
85 INTEGER,
DIMENSION(:),
POINTER :: bse_nto_state_list => null()
86 INTEGER,
DIMENSION(:),
ALLOCATABLE :: bse_nto_state_list_final
89 LOGICAL :: do_tda = .false., &
91 do_fulldiag = .false., &
93 INTEGER :: nspins = 0, &
100 INTEGER,
DIMENSION(:),
ALLOCATABLE :: homo_red, virt_red, homo_full, &
103 REAL(kind=
dp),
DIMENSION(:, :),
ALLOCATABLE :: eigenval_dft, eigenval_qp
105 TYPE(
cp_fm_type),
DIMENSION(:),
ALLOCATABLE :: fm_s_ia, fm_s_ij, fm_s_ab, &
106 fm_s_bar_ia, fm_s_bar_ij
110 TYPE(
dbcsr_p_type),
DIMENSION(:),
POINTER :: matrix_dipole_ao => null(), &
111 matrix_quadpole_ao => null()
112 REAL(kind=
dp),
DIMENSION(3) :: multipole_ref_point = 0.0_dp
142 IF (
ALLOCATED(bse_env%homo_red))
DEALLOCATE (bse_env%homo_red)
143 IF (
ALLOCATED(bse_env%virt_red))
DEALLOCATE (bse_env%virt_red)
144 IF (
ALLOCATED(bse_env%homo_full))
DEALLOCATE (bse_env%homo_full)
145 IF (
ALLOCATED(bse_env%gw_corr_lev_virt))
DEALLOCATE (bse_env%gw_corr_lev_virt)
146 IF (
ALLOCATED(bse_env%eigenval_dft))
DEALLOCATE (bse_env%eigenval_dft)
147 IF (
ALLOCATED(bse_env%eigenval_qp))
DEALLOCATE (bse_env%eigenval_qp)
148 IF (
ALLOCATED(bse_env%bse_nto_state_list_final))
DEALLOCATE (bse_env%bse_nto_state_list_final)
149 NULLIFY (bse_env%para_env, bse_env%subsys, bse_env%pw_env, bse_env%dft_control, bse_env%mos, &