16 #include "./base/base_uses.f90"
24 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'qs_dftb_types'
27 TYPE qs_dftb_atom_type
29 CHARACTER(LEN=default_string_length) :: typ
30 CHARACTER(LEN=default_string_length) :: name
36 REAL(KIND=
dp),
DIMENSION(0:3) :: skself
37 REAL(KIND=
dp),
DIMENSION(0:3) :: occupation
38 REAL(KIND=
dp),
DIMENSION(0:3) :: eta
39 REAL(KIND=
dp) :: energy
40 REAL(KIND=
dp) :: cutoff
41 REAL(KIND=
dp) :: xi, di
42 REAL(KIND=
dp) :: rcdisp
44 END TYPE qs_dftb_atom_type
47 TYPE qs_dftb_pairpot_type
53 REAL(KIND=
dp) :: urep_cut
54 REAL(KIND=
dp),
DIMENSION(10) :: urep
58 REAL(KIND=
dp) :: s_cut
59 REAL(KIND=
dp),
DIMENSION(3) :: srep
60 REAL(KIND=
dp),
DIMENSION(:, :),
POINTER :: spxr
61 REAL(KIND=
dp),
DIMENSION(:, :),
POINTER :: scoeff
62 REAL(KIND=
dp),
DIMENSION(2) :: surr
63 REAL(KIND=
dp),
DIMENSION(:, :),
POINTER :: fmat
64 REAL(KIND=
dp),
DIMENSION(:, :),
POINTER :: smat
66 REAL(KIND=
dp) :: xij, dij
68 REAL(KIND=
dp) :: a, b, c
69 END TYPE qs_dftb_pairpot_type
73 PUBLIC :: qs_dftb_atom_type, qs_dftb_pairpot_type, &
83 TYPE(qs_dftb_pairpot_type),
DIMENSION(:, :), &
88 IF (
ASSOCIATED(pairpot))
THEN
89 DO i = 1,
SIZE(pairpot, 1)
90 DO j = 1,
SIZE(pairpot, 2)
91 NULLIFY (pairpot(i, j)%spxr, pairpot(i, j)%scoeff, &
92 pairpot(i, j)%smat, pairpot(i, j)%fmat)
107 TYPE(qs_dftb_pairpot_type) :: pairpot
108 INTEGER,
INTENT(IN) :: ngrd, llm, spdim
111 pairpot%spdim = spdim
115 ALLOCATE (pairpot%spxr(spdim, 2))
117 ALLOCATE (pairpot%scoeff(spdim, 4))
120 ALLOCATE (pairpot%fmat(ngrd, llm))
122 ALLOCATE (pairpot%smat(ngrd, llm))
131 TYPE(qs_dftb_pairpot_type),
DIMENSION(:, :), &
134 INTEGER :: i, j, n1, n2
136 IF (
ASSOCIATED(pairpot))
THEN
137 n1 =
SIZE(pairpot, 1)
138 n2 =
SIZE(pairpot, 2)
141 IF (
ASSOCIATED(pairpot(i, j)%spxr))
THEN
142 DEALLOCATE (pairpot(i, j)%spxr)
144 IF (
ASSOCIATED(pairpot(i, j)%scoeff))
THEN
145 DEALLOCATE (pairpot(i, j)%scoeff)
147 IF (
ASSOCIATED(pairpot(i, j)%smat))
THEN
148 DEALLOCATE (pairpot(i, j)%smat)
150 IF (
ASSOCIATED(pairpot(i, j)%fmat))
THEN
151 DEALLOCATE (pairpot(i, j)%fmat)
Defines the basic variable types.
integer, parameter, public dp
integer, parameter, public default_string_length
Definition of the DFTB parameter types.
subroutine, public qs_dftb_pairpot_init(pairpot)
...
subroutine, public qs_dftb_pairpot_create(pairpot, ngrd, llm, spdim)
...
subroutine, public qs_dftb_pairpot_release(pairpot)
...