(git:374b731)
Loading...
Searching...
No Matches
damping_dipole_types.F
Go to the documentation of this file.
1!--------------------------------------------------------------------------------------------------!
2! CP2K: A general program to perform molecular dynamics simulations !
3! Copyright 2000-2024 CP2K developers group <https://cp2k.org> !
4! !
5! SPDX-License-Identifier: GPL-2.0-or-later !
6!--------------------------------------------------------------------------------------------------!
7
8! **************************************************************************************************
9!> \author Rodolphe Vuilleumier (29.12.2009)
10! **************************************************************************************************
12
13 USE kinds, ONLY: default_string_length,&
14 dp
15#include "../base/base_uses.f90"
16
17 IMPLICIT NONE
18
19 PRIVATE
20
21! *** Global parameters (only in this module)
22
23 CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'damping_dipole_types'
24
25! *** Global public parameters
26
27 INTEGER, PUBLIC, PARAMETER :: no_damping = -1, &
29
30! *** Define the damping types ***
31! **************************************************************************************************
33 CHARACTER(LEN=default_string_length) :: atm_name1 = "", atm_name2 = ""
34 CHARACTER(LEN=default_string_length) :: dtype = ""
35 INTEGER :: order = -1
36 REAL(kind=dp) :: bij = 0.0_dp, cij = 0.0_dp
37 END TYPE damping_info_type
38! **************************************************************************************************
40 INTEGER :: itype = no_damping
41 INTEGER :: order = 1
42 REAL(kind=dp) :: bij = huge(0.0_dp), cij = 0.0_dp
43 END TYPE damping_type
44
46 TYPE(damping_type), DIMENSION(:), POINTER :: damp => null()
47 END TYPE
48
49! **************************************************************************************************
50
51! *** Public data types ***
52
54
55! *** Public subroutines ***
56
58
59CONTAINS
60
61! **************************************************************************************************
62!> \brief Creates Data-structure that contains damping information
63!> \param damping ...
64!> \param nkinds ...
65!> \author Rodolphe Vuilleumier
66! **************************************************************************************************
67 SUBROUTINE damping_p_create(damping, nkinds)
68 TYPE(damping_p_type), POINTER :: damping
69 INTEGER, INTENT(IN) :: nkinds
70
71 cpassert(.NOT. ASSOCIATED(damping))
72 ALLOCATE (damping)
73 ALLOCATE (damping%damp(nkinds))
74
75 END SUBROUTINE damping_p_create
76! **************************************************************************************************
77!> \brief Release Data-structure that contains damping information
78!> \param damping ...
79!> \author Rodolphe Vuilleumier [RV]
80! **************************************************************************************************
81 SUBROUTINE damping_p_release(damping)
82 TYPE(damping_p_type), POINTER :: damping
83
84 IF (ASSOCIATED(damping)) THEN
85 IF (ASSOCIATED(damping%damp)) THEN
86 DEALLOCATE (damping%damp)
87 END IF
88 DEALLOCATE (damping)
89 END IF
90 NULLIFY (damping)
91
92 END SUBROUTINE damping_p_release
93
94! **************************************************************************************************
95END MODULE damping_dipole_types
integer, parameter, public tang_toennies
integer, parameter, public no_damping
subroutine, public damping_p_release(damping)
Release Data-structure that contains damping information.
subroutine, public damping_p_create(damping, nkinds)
Creates Data-structure that contains damping information.
Defines the basic variable types.
Definition kinds.F:23
integer, parameter, public dp
Definition kinds.F:34
integer, parameter, public default_string_length
Definition kinds.F:57