LCOV - code coverage report
Current view: top level - src/motion - space_groups_types.F (source / functions) Coverage Total Hit
Test: CP2K Regtests (git:42dac4a) Lines: 95.0 % 20 19
Test Date: 2025-07-25 12:55:17 Functions: 33.3 % 3 1

            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              : !> \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              : ! **************************************************************************************************
      14              : MODULE space_groups_types
      15              : 
      16              :    USE cell_types,                      ONLY: cell_release,&
      17              :                                               cell_type
      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              : 
      27              :    TYPE spgr_type
      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              : 
      61              :    PUBLIC :: spgr_type, release_spgr_type
      62              : 
      63              : CONTAINS
      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         2011 :    SUBROUTINE release_spgr_type(spgr)
      73              : 
      74              :       TYPE(spgr_type), POINTER                           :: spgr
      75              : 
      76         2011 :       IF (ASSOCIATED(spgr)) THEN
      77              : 
      78         2011 :          IF (ALLOCATED(spgr%rotations)) THEN
      79           14 :             DEALLOCATE (spgr%rotations)
      80              :          END IF
      81         2011 :          IF (ALLOCATED(spgr%rotations_subset)) THEN
      82           14 :             DEALLOCATE (spgr%rotations_subset)
      83              :          END IF
      84         2011 :          IF (ALLOCATED(spgr%translations)) THEN
      85           14 :             DEALLOCATE (spgr%translations)
      86              :          END IF
      87         2011 :          IF (ALLOCATED(spgr%atype)) THEN
      88           14 :             DEALLOCATE (spgr%atype)
      89              :          END IF
      90         2011 :          IF (ALLOCATED(spgr%eqatom)) THEN
      91           14 :             DEALLOCATE (spgr%eqatom)
      92              :          END IF
      93         2011 :          IF (ALLOCATED(spgr%lop)) THEN
      94           14 :             DEALLOCATE (spgr%lop)
      95              :          END IF
      96         2011 :          IF (ALLOCATED(spgr%lat)) THEN
      97           14 :             DEALLOCATE (spgr%lat)
      98              :          END IF
      99              : 
     100         2011 :          CALL cell_release(spgr%cell_ref)
     101              : 
     102         2011 :          DEALLOCATE (spgr)
     103              :       END IF
     104              : 
     105         2011 :    END SUBROUTINE release_spgr_type
     106              : 
     107            0 : END MODULE space_groups_types
        

Generated by: LCOV version 2.0-1