16#include "./base/base_uses.f90"
24 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'qs_dftb_types'
29 CHARACTER(LEN=default_string_length) :: typ =
""
30 CHARACTER(LEN=default_string_length) :: name =
""
31 LOGICAL :: defined = .false.
33 REAL(kind=
dp) :: zeff = -1.0_dp
34 INTEGER :: natorb = -1
36 REAL(kind=
dp),
DIMENSION(0:3) :: skself = -1.0_dp
37 REAL(kind=
dp),
DIMENSION(0:3) :: occupation = -1.0_dp
38 REAL(kind=
dp),
DIMENSION(0:3) :: eta = -1.0_dp
39 REAL(kind=
dp) :: energy = -1.0_dp
40 REAL(kind=
dp) :: cutoff = -1.0_dp
41 REAL(kind=
dp) :: xi = -1.0_dp, di = -1.0_dp
42 REAL(kind=
dp) :: rcdisp = -1.0_dp
43 REAL(kind=
dp) :: dudq = -1.0_dp
48 REAL(kind=
dp) :: dgrd = -1.0_dp
50 INTEGER :: ngrdcut = -1
52 INTEGER :: n_urpoly = -1
53 REAL(kind=
dp) :: urep_cut = -1.0_dp
54 REAL(kind=
dp),
DIMENSION(10) :: urep = -1.0_dp
58 REAL(kind=
dp) :: s_cut = -1.0_dp
59 REAL(kind=
dp),
DIMENSION(3) :: srep = -1.0_dp
60 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: spxr => null()
61 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: scoeff => null()
62 REAL(kind=
dp),
DIMENSION(2) :: surr = -1.0_dp
63 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: fmat => null()
64 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: smat => null()
66 REAL(kind=
dp) :: xij = -1.0_dp, dij = -1.0_dp
67 REAL(kind=
dp) :: x0ij = -1.0_dp
68 REAL(kind=
dp) :: a = -1.0_dp, b = -1.0_dp, c = -1.0_dp
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)
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))
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)
...