23 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'gw_auto_ri_types'
30 REAL(kind=
dp) :: occ_energy_window = -1.0_dp
31 REAL(kind=
dp) :: neighbor_radius = -1.0_dp
32 LOGICAL :: enabled = .false.
33 REAL(kind=
dp) :: ri_ao_ratio = -1.0_dp
38 LOGICAL :: ready = .false.
39 INTEGER,
ALLOCATABLE :: sizes_opt_ri(:)
45 REAL(kind=
dp),
ALLOCATABLE :: u_pp_ab(:)
46 INTEGER :: ab_block_count = 0
47 INTEGER,
ALLOCATABLE :: ab_atom_a(:), ab_atom_b(:)
48 INTEGER,
ALLOCATABLE :: ab_first_p_a(:), ab_first_p_b(:)
49 INTEGER,
ALLOCATABLE :: ab_size_opt_ri_to_a(:)
50 INTEGER,
ALLOCATABLE :: ab_size_ref_ri(:)
51 INTEGER,
ALLOCATABLE :: ab_size_opt_ri(:)
52 INTEGER,
ALLOCATABLE :: u_pp_ab_offset(:)
65 CHARACTER(LEN=*),
PARAMETER :: routinen =
'auto_ri_release'
71 IF (
ALLOCATED(auto_ri%sizes_opt_RI))
DEALLOCATE (auto_ri%sizes_opt_RI)
72 IF (
ALLOCATED(auto_ri%AB_atom_A))
DEALLOCATE (auto_ri%AB_atom_A)
73 IF (
ALLOCATED(auto_ri%AB_atom_B))
DEALLOCATE (auto_ri%AB_atom_B)
74 IF (
ALLOCATED(auto_ri%AB_first_p_A))
DEALLOCATE (auto_ri%AB_first_p_A)
75 IF (
ALLOCATED(auto_ri%AB_first_p_B))
DEALLOCATE (auto_ri%AB_first_p_B)
76 IF (
ALLOCATED(auto_ri%AB_size_opt_RI_to_A))
DEALLOCATE (auto_ri%AB_size_opt_RI_to_A)
77 IF (
ALLOCATED(auto_ri%AB_size_ref_RI))
DEALLOCATE (auto_ri%AB_size_ref_RI)
78 IF (
ALLOCATED(auto_ri%AB_size_opt_RI))
DEALLOCATE (auto_ri%AB_size_opt_RI)
79 IF (
ALLOCATED(auto_ri%U_Pp_AB_offset))
DEALLOCATE (auto_ri%U_Pp_AB_offset)
80 IF (
ALLOCATED(auto_ri%U_Pp_AB))
DEALLOCATE (auto_ri%U_Pp_AB)
83 auto_ri%AB_block_count = 0
84 auto_ri%ready = .false.
Central dispatch for basic hooks.
subroutine, public timeset(routinen, handle)
Start timer.
subroutine, public timestop(handle)
Stop timer.
represent a full matrix distributed on many processors
Input and persistent data for automatic RI basis optimization.
subroutine, public auto_ri_release(auto_ri)
Releases all data owned by an optimized AUTO_RI basis.
Defines the basic variable types.
integer, parameter, public dp