(git:374b731)
Loading...
Searching...
No Matches
mixed_energy_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 fschiff
10!> \date 11.06
11! **************************************************************************************************
13
14 USE kinds, ONLY: dp
15#include "./base/base_uses.f90"
16
17 IMPLICIT NONE
18 CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'mixed_energy_types'
19 PRIVATE
20
21! **************************************************************************************************
23 REAL(kind=dp) :: pot
24 REAL(kind=dp) :: kin
25 END TYPE mixed_energy_type
26
27! **************************************************************************************************
29 REAL(kind=dp), DIMENSION(:, :), POINTER :: forces
30 END TYPE mixed_force_type
31
32! Public data types
33 PUBLIC :: mixed_energy_type, &
35
36! Public subroutines
37 PUBLIC :: allocate_mixed_energy, &
39
40CONTAINS
41
42! **************************************************************************************************
43!> \brief Allocate and/or initialise a mixed energy data structure.
44!> \param mixed_energy ...
45!> \date 11.06
46!> \author fschiff
47!> \version 1.0
48! **************************************************************************************************
49 SUBROUTINE allocate_mixed_energy(mixed_energy)
50 TYPE(mixed_energy_type), POINTER :: mixed_energy
51
52 IF (.NOT. ASSOCIATED(mixed_energy)) THEN
53 ALLOCATE (mixed_energy)
54 END IF
55 CALL init_mixed_energy(mixed_energy)
56 END SUBROUTINE allocate_mixed_energy
57
58! **************************************************************************************************
59!> \brief Deallocate a mixed energy data structure.
60!> \param mixed_energy ...
61!> \date 11.06
62!> \author fschiff
63!> \version 1.0
64! **************************************************************************************************
65 SUBROUTINE deallocate_mixed_energy(mixed_energy)
66 TYPE(mixed_energy_type), POINTER :: mixed_energy
67
68 IF (ASSOCIATED(mixed_energy)) THEN
69 DEALLOCATE (mixed_energy)
70 END IF
71 END SUBROUTINE deallocate_mixed_energy
72
73! **************************************************************************************************
74!> \brief ...
75!> \param mixed_energy ...
76! **************************************************************************************************
77 SUBROUTINE init_mixed_energy(mixed_energy)
78 TYPE(mixed_energy_type), POINTER :: mixed_energy
79
80 IF (ASSOCIATED(mixed_energy)) THEN
81 mixed_energy%pot = 0.0_dp
82 ELSE
83 CALL cp_abort(__location__, &
84 "The mixed_energy pointer is not associated "// &
85 "and cannot be initialised")
86 END IF
87 END SUBROUTINE init_mixed_energy
88
89END MODULE mixed_energy_types
Defines the basic variable types.
Definition kinds.F:23
integer, parameter, public dp
Definition kinds.F:34
subroutine, public allocate_mixed_energy(mixed_energy)
Allocate and/or initialise a mixed energy data structure.
subroutine, public deallocate_mixed_energy(mixed_energy)
Deallocate a mixed energy data structure.