19 #include "../base/base_uses.f90"
25 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'space_groups_types'
28 LOGICAL :: keep_space_group = .false.
29 LOGICAL :: symlib = .false.
30 LOGICAL :: print_atoms = .false.
32 INTEGER :: istriz = -1
33 REAL(KIND=
dp) :: eps_symmetry = 1.0e-4_dp
34 INTEGER :: nparticle = 0
35 INTEGER :: nparticle_sym = 0
38 INTEGER :: n_shell = 0
39 INTEGER :: n_atom_sym = 0
40 INTEGER :: n_core_sym = 0
41 INTEGER :: n_shell_sym = 0
42 INTEGER,
DIMENSION(:),
ALLOCATABLE :: atype
43 INTEGER,
DIMENSION(:, :),
ALLOCATABLE :: eqatom
44 LOGICAL,
DIMENSION(:),
ALLOCATABLE :: lop, lat
45 REAL(KIND=
dp),
DIMENSION(3) :: pol = 0.0_dp
47 INTEGER :: space_group_number = 0
48 CHARACTER(len=11) :: international_symbol =
""
49 CHARACTER(len=6) :: pointgroup_symbol =
""
50 CHARACTER(len=7) :: schoenflies =
""
51 INTEGER :: n_operations = 0
52 INTEGER :: n_reduced_operations = 0
53 INTEGER :: n_operations_subset = 0
54 INTEGER,
DIMENSION(:, :, :),
ALLOCATABLE :: rotations
55 INTEGER,
DIMENSION(:, :, :),
ALLOCATABLE :: rotations_subset
56 REAL(KIND=
dp),
DIMENSION(:, :),
ALLOCATABLE :: translations
57 TYPE(cell_type),
POINTER :: cell_ref => null()
73 TYPE(spgr_type),
POINTER :: spgr
75 IF (
ASSOCIATED(spgr))
THEN
77 IF (
ALLOCATED(spgr%rotations))
THEN
78 DEALLOCATE (spgr%rotations)
80 IF (
ALLOCATED(spgr%rotations_subset))
THEN
81 DEALLOCATE (spgr%rotations_subset)
83 IF (
ALLOCATED(spgr%translations))
THEN
84 DEALLOCATE (spgr%translations)
86 IF (
ALLOCATED(spgr%atype))
THEN
87 DEALLOCATE (spgr%atype)
89 IF (
ALLOCATED(spgr%eqatom))
THEN
90 DEALLOCATE (spgr%eqatom)
92 IF (
ALLOCATED(spgr%lop))
THEN
95 IF (
ALLOCATED(spgr%lat))
THEN
Handles all functions related to the CELL.
subroutine, public cell_release(cell)
releases the given cell (see doc/ReferenceCounting.html)
Defines the basic variable types.
integer, parameter, public dp
Space Group Symmetry Type Module (version 1.0, Ferbruary 12, 2021)
subroutine, public release_spgr_type(spgr)
Release the SPGR type.