LCOV - code coverage report
Current view: top level - src/subsys - damping_dipole_types.F (source / functions) Hit Total Coverage
Test: CP2K Regtests (git:4dc10b3) Lines: 12 13 92.3 %
Date: 2024-11-21 06:45:46 Functions: 2 5 40.0 %

          Line data    Source code
       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 Rodolphe Vuilleumier (29.12.2009)
      10             : ! **************************************************************************************************
      11             : MODULE damping_dipole_types
      12             : 
      13             :    USE kinds,                           ONLY: default_string_length,&
      14             :                                               dp
      15             : #include "../base/base_uses.f90"
      16             : 
      17             :    IMPLICIT NONE
      18             : 
      19             :    PRIVATE
      20             : 
      21             : ! *** Global parameters (only in this module)
      22             : 
      23             :    CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'damping_dipole_types'
      24             : 
      25             : ! *** Global public parameters
      26             : 
      27             :    INTEGER, PUBLIC, PARAMETER :: no_damping = -1, &
      28             :                                  tang_toennies = 1
      29             : 
      30             : ! *** Define the damping types ***
      31             : ! **************************************************************************************************
      32             :    TYPE damping_info_type
      33             :       CHARACTER(LEN=default_string_length)   :: atm_name1 = "", atm_name2 = ""
      34             :       CHARACTER(LEN=default_string_length)   :: dtype = ""
      35             :       INTEGER                                 :: order = -1
      36             :       REAL(KIND=dp)                           :: bij = 0.0_dp, cij = 0.0_dp
      37             :    END TYPE damping_info_type
      38             : ! **************************************************************************************************
      39             :    TYPE damping_type
      40             :       INTEGER :: itype = no_damping
      41             :       INTEGER :: order = 1
      42             :       REAL(KIND=dp) :: bij = HUGE(0.0_dp), cij = 0.0_dp
      43             :    END TYPE damping_type
      44             : 
      45             :    TYPE damping_p_type
      46             :       TYPE(damping_type), DIMENSION(:), POINTER :: damp => NULL()
      47             :    END TYPE
      48             : 
      49             : ! **************************************************************************************************
      50             : 
      51             : ! *** Public data types ***
      52             : 
      53             :    PUBLIC :: damping_info_type, damping_type
      54             : 
      55             : ! *** Public subroutines ***
      56             : 
      57             :    PUBLIC :: damping_p_type, damping_p_create, damping_p_release
      58             : 
      59             : CONTAINS
      60             : 
      61             : ! **************************************************************************************************
      62             : !> \brief Creates Data-structure that contains damping information
      63             : !> \param damping ...
      64             : !> \param nkinds ...
      65             : !> \author Rodolphe Vuilleumier
      66             : ! **************************************************************************************************
      67          10 :    SUBROUTINE damping_p_create(damping, nkinds)
      68             :       TYPE(damping_p_type), POINTER                      :: damping
      69             :       INTEGER, INTENT(IN)                                :: nkinds
      70             : 
      71          10 :       CPASSERT(.NOT. ASSOCIATED(damping))
      72          10 :       ALLOCATE (damping)
      73          52 :       ALLOCATE (damping%damp(nkinds))
      74             : 
      75          10 :    END SUBROUTINE damping_p_create
      76             : ! **************************************************************************************************
      77             : !> \brief Release Data-structure that contains damping information
      78             : !> \param damping ...
      79             : !> \author Rodolphe Vuilleumier [RV]
      80             : ! **************************************************************************************************
      81       31999 :    SUBROUTINE damping_p_release(damping)
      82             :       TYPE(damping_p_type), POINTER                      :: damping
      83             : 
      84       31999 :       IF (ASSOCIATED(damping)) THEN
      85          10 :          IF (ASSOCIATED(damping%damp)) THEN
      86          10 :             DEALLOCATE (damping%damp)
      87             :          END IF
      88          10 :          DEALLOCATE (damping)
      89             :       END IF
      90       31999 :       NULLIFY (damping)
      91             : 
      92       31999 :    END SUBROUTINE damping_p_release
      93             : 
      94             : ! **************************************************************************************************
      95           0 : END MODULE damping_dipole_types

Generated by: LCOV version 1.15