12#include "./base/base_uses.f90"
20 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'hartree_local_types'
27 REAL(
dp) :: ecoul_1_h = 0.0_dp, &
36 DIMENSION(:),
POINTER :: ecoul_1c => null()
60 INTEGER,
INTENT(IN) :: natom
64 IF (
ASSOCIATED(ecoul_1c))
THEN
65 CALL deallocate_ecoul_1center(ecoul_1c)
68 ALLOCATE (ecoul_1c(natom))
71 ALLOCATE (ecoul_1c(iat)%Vh1_h)
72 NULLIFY (ecoul_1c(iat)%Vh1_h%r_coef)
73 ALLOCATE (ecoul_1c(iat)%Vh1_s)
74 NULLIFY (ecoul_1c(iat)%Vh1_s%r_coef)
83 SUBROUTINE deallocate_ecoul_1center(ecoul_1c)
89 natom =
SIZE(ecoul_1c, 1)
92 IF (
ASSOCIATED(ecoul_1c(iat)%Vh1_h%r_coef))
THEN
93 DEALLOCATE (ecoul_1c(iat)%Vh1_h%r_coef)
95 DEALLOCATE (ecoul_1c(iat)%Vh1_h)
97 IF (
ASSOCIATED(ecoul_1c(iat)%Vh1_s%r_coef))
THEN
98 DEALLOCATE (ecoul_1c(iat)%Vh1_s%r_coef)
100 DEALLOCATE (ecoul_1c(iat)%Vh1_s)
104 DEALLOCATE (ecoul_1c)
106 END SUBROUTINE deallocate_ecoul_1center
119 IF (
PRESENT(ecoul_1c)) ecoul_1c => hartree_local%ecoul_1c
131 ALLOCATE (hartree_local)
133 NULLIFY (hartree_local%ecoul_1c)
145 IF (
ASSOCIATED(hartree_local))
THEN
146 IF (
ASSOCIATED(hartree_local%ecoul_1c))
THEN
147 CALL deallocate_ecoul_1center(hartree_local%ecoul_1c)
150 DEALLOCATE (hartree_local)
164 SUBROUTINE set_ecoul_1c(ecoul_1c, iatom, ecoul_1_h, ecoul_1_s, ecoul_1_z, ecoul_1_0)
167 INTEGER,
INTENT(IN),
OPTIONAL :: iatom
168 REAL(
dp),
INTENT(IN),
OPTIONAL :: ecoul_1_h, ecoul_1_s, ecoul_1_z, &
171 IF (
PRESENT(iatom))
THEN
172 IF (
PRESENT(ecoul_1_h)) ecoul_1c(iatom)%ecoul_1_h = ecoul_1_h
173 IF (
PRESENT(ecoul_1_s)) ecoul_1c(iatom)%ecoul_1_s = ecoul_1_s
174 IF (
PRESENT(ecoul_1_0)) ecoul_1c(iatom)%ecoul_1_0 = ecoul_1_0
175 IF (
PRESENT(ecoul_1_z)) ecoul_1c(iatom)%ecoul_1_z = ecoul_1_z
191 IF (
PRESENT(ecoul_1c)) hartree_local%ecoul_1c => ecoul_1c
subroutine, public get_hartree_local(hartree_local, ecoul_1c)
...
subroutine, public set_hartree_local(hartree_local, ecoul_1c)
...
subroutine, public allocate_ecoul_1center(ecoul_1c, natom)
...
subroutine, public hartree_local_release(hartree_local)
...
subroutine, public set_ecoul_1c(ecoul_1c, iatom, ecoul_1_h, ecoul_1_s, ecoul_1_z, ecoul_1_0)
...
subroutine, public hartree_local_create(hartree_local)
...
Defines the basic variable types.
integer, parameter, public dp