Line data Source code
1 : !--------------------------------------------------------------------------------------------------!
2 : ! CP2K: A general program to perform molecular dynamics simulations !
3 : ! Copyright 2000-2025 CP2K developers group <https://cp2k.org> !
4 : ! !
5 : ! SPDX-License-Identifier: GPL-2.0-or-later !
6 : !--------------------------------------------------------------------------------------------------!
7 :
8 : ! **************************************************************************************************
9 : !> \par History
10 : !> none
11 : ! **************************************************************************************************
12 : MODULE dg_types
13 :
14 : USE dg_rho0_types, ONLY: dg_rho0_create,&
15 : dg_rho0_release,&
16 : dg_rho0_type
17 : #include "../base/base_uses.f90"
18 :
19 : IMPLICIT NONE
20 :
21 : ! Information on the assignment function for Ewald
22 : ! **************************************************************************************************
23 : TYPE dg_type
24 : PRIVATE
25 : TYPE(dg_rho0_type), POINTER :: dg_rho0 => NULL()
26 : END TYPE dg_type
27 :
28 : CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'dg_types'
29 :
30 : PRIVATE
31 : PUBLIC :: dg_type, dg_get, &
32 : dg_set, dg_release, &
33 : dg_create
34 :
35 : CONTAINS
36 :
37 : ! **************************************************************************************************
38 : !> \brief Get the dg_type
39 : !> \param dg ...
40 : !> \param dg_rho0 ...
41 : !> \version 1.0
42 : ! **************************************************************************************************
43 62111 : SUBROUTINE dg_get(dg, dg_rho0)
44 : TYPE(dg_type), POINTER :: dg
45 : TYPE(dg_rho0_type), OPTIONAL, POINTER :: dg_rho0
46 :
47 62111 : IF (PRESENT(dg_rho0)) dg_rho0 => dg%dg_rho0
48 :
49 62111 : END SUBROUTINE dg_get
50 :
51 : ! **************************************************************************************************
52 : !> \brief create the dg structure
53 : !> \param dg ...
54 : !> \version 1.0
55 : ! **************************************************************************************************
56 4271 : SUBROUTINE dg_create(dg)
57 : TYPE(dg_type), INTENT(OUT) :: dg
58 :
59 4271 : CALL dg_rho0_create(dg%dg_rho0)
60 :
61 4271 : END SUBROUTINE dg_create
62 :
63 : ! **************************************************************************************************
64 : !> \brief releases the given dg_type
65 : !> \param dg the dg_type to release
66 : !> \par History
67 : !> 04.2003 created [fawzi]
68 : !> \author fawzi
69 : !> \note
70 : !> see doc/ReferenceCounting.html
71 : ! **************************************************************************************************
72 4271 : SUBROUTINE dg_release(dg)
73 : TYPE(dg_type), INTENT(INOUT) :: dg
74 :
75 4271 : CALL dg_rho0_release(dg%dg_rho0)
76 4271 : END SUBROUTINE dg_release
77 :
78 : ! **************************************************************************************************
79 : !> \brief Set the double grid environment
80 : !> \param dg ...
81 : !> \param dg_rho0 ...
82 : !> \version 1.0
83 : ! **************************************************************************************************
84 0 : SUBROUTINE dg_set(dg, dg_rho0)
85 : TYPE(dg_type), POINTER :: dg
86 : TYPE(dg_rho0_type), OPTIONAL, POINTER :: dg_rho0
87 :
88 0 : IF (PRESENT(dg_rho0)) THEN
89 0 : CALL dg_rho0_release(dg%dg_rho0)
90 0 : dg%dg_rho0 => dg_rho0
91 : END IF
92 0 : END SUBROUTINE dg_set
93 :
94 0 : END MODULE dg_types
|