(git:97501a3)
Loading...
Searching...
No Matches
space_groups_types.F
Go to the documentation of this file.
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!> \brief Space Group Symmetry Type Module (version 1.0, Ferbruary 12, 2021)
10!> \par History
11!> Pierre-André Cazade [pcazade] 02.2021 - University of Limerick
12!> \author Pierre-André Cazade (first version)
13! **************************************************************************************************
15
16 USE cell_types, ONLY: cell_release,&
18 USE kinds, ONLY: dp
19#include "../base/base_uses.f90"
20
21 IMPLICIT NONE
22
23 PRIVATE
24
25 CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'space_groups_types'
26
28 LOGICAL :: keep_space_group = .false.
29 LOGICAL :: show_space_group = .false.
30 LOGICAL :: symlib = .false.
31 LOGICAL :: print_atoms = .false.
32 INTEGER :: iunit = -1
33 INTEGER :: istriz = -1
34 REAL(kind=dp) :: eps_symmetry = 1.0e-4_dp
35 INTEGER :: nparticle = 0
36 INTEGER :: nparticle_sym = 0
37 INTEGER :: n_atom = 0
38 INTEGER :: n_core = 0
39 INTEGER :: n_shell = 0
40 INTEGER :: n_atom_sym = 0
41 INTEGER :: n_core_sym = 0
42 INTEGER :: n_shell_sym = 0
43 INTEGER, DIMENSION(:), ALLOCATABLE :: atype
44 INTEGER, DIMENSION(:, :), ALLOCATABLE :: eqatom
45 LOGICAL, DIMENSION(:), ALLOCATABLE :: lop, lat
46 REAL(kind=dp), DIMENSION(3) :: pol = 0.0_dp
47 !SPGLIB
48 INTEGER :: space_group_number = 0
49 CHARACTER(len=11) :: international_symbol = ""
50 CHARACTER(len=6) :: pointgroup_symbol = ""
51 CHARACTER(len=7) :: schoenflies = ""
52 INTEGER :: n_operations = 0
53 INTEGER :: n_reduced_operations = 0
54 INTEGER :: n_operations_subset = 0
55 INTEGER, DIMENSION(:, :, :), ALLOCATABLE :: rotations
56 INTEGER, DIMENSION(:, :, :), ALLOCATABLE :: rotations_subset
57 REAL(kind=dp), DIMENSION(:, :), ALLOCATABLE :: translations
58 TYPE(cell_type), POINTER :: cell_ref => null()
59 END TYPE spgr_type
60
62
63CONTAINS
64
65! **************************************************************************************************
66!> \brief Release the SPGR type
67!> \param spgr The SPGR type
68!> \par History
69!> 01.2020 created [pcazade]
70!> \author Pierre-André Cazade (first version)
71! **************************************************************************************************
72 SUBROUTINE release_spgr_type(spgr)
73
74 TYPE(spgr_type), POINTER :: spgr
75
76 IF (ASSOCIATED(spgr)) THEN
77
78 IF (ALLOCATED(spgr%rotations)) THEN
79 DEALLOCATE (spgr%rotations)
80 END IF
81 IF (ALLOCATED(spgr%rotations_subset)) THEN
82 DEALLOCATE (spgr%rotations_subset)
83 END IF
84 IF (ALLOCATED(spgr%translations)) THEN
85 DEALLOCATE (spgr%translations)
86 END IF
87 IF (ALLOCATED(spgr%atype)) THEN
88 DEALLOCATE (spgr%atype)
89 END IF
90 IF (ALLOCATED(spgr%eqatom)) THEN
91 DEALLOCATE (spgr%eqatom)
92 END IF
93 IF (ALLOCATED(spgr%lop)) THEN
94 DEALLOCATE (spgr%lop)
95 END IF
96 IF (ALLOCATED(spgr%lat)) THEN
97 DEALLOCATE (spgr%lat)
98 END IF
99
100 CALL cell_release(spgr%cell_ref)
101
102 DEALLOCATE (spgr)
103 END IF
104
105 END SUBROUTINE release_spgr_type
106
107END MODULE space_groups_types
Handles all functions related to the CELL.
Definition cell_types.F:15
subroutine, public cell_release(cell)
releases the given cell (see doc/ReferenceCounting.html)
Definition cell_types.F:559
Defines the basic variable types.
Definition kinds.F:23
integer, parameter, public dp
Definition kinds.F:34
Space Group Symmetry Type Module (version 1.0, Ferbruary 12, 2021)
subroutine, public release_spgr_type(spgr)
Release the SPGR type.
Type defining parameters related to the simulation cell.
Definition cell_types.F:55