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 : !> \brief Definition of the type to handle the 1/R^3 residual integral part 10 : !> \author Teodoro Laino [tlaino] - 12.2008 11 : ! ************************************************************************************************** 12 : MODULE semi_empirical_expns3_types 13 : 14 : USE kinds, ONLY: dp 15 : #include "./base/base_uses.f90" 16 : 17 : IMPLICIT NONE 18 : PRIVATE 19 : 20 : ! ************************************************************************************************** 21 : !> \brief 1/R^3 expansion type 22 : !> \author Teodoro Laino [tlaino] - 12.2008 23 : ! ************************************************************************************************** 24 : TYPE semi_empirical_expns3_type 25 : REAL(KIND=dp) :: core_core = -1.0_dp 26 : REAL(KIND=dp), DIMENSION(9) :: e1b = -1.0_dp, e2a = -1.0_dp 27 : REAL(KIND=dp), DIMENSION(81) :: w = -1.0_dp 28 : END TYPE semi_empirical_expns3_type 29 : 30 : ! ************************************************************************************************** 31 : !> \brief 1/R^3 expansion type: array of pointers 32 : !> \author Teodoro Laino [tlaino] - 12.2008 33 : ! ************************************************************************************************** 34 : TYPE semi_empirical_expns3_p_type 35 : TYPE(semi_empirical_expns3_type), POINTER :: expns3 => NULL() 36 : END TYPE semi_empirical_expns3_p_type 37 : 38 : ! *** Global parameters *** 39 : CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'semi_empirical_expns3_types' 40 : 41 : PUBLIC :: semi_empirical_expns3_p_type, & 42 : semi_empirical_expns3_create, & 43 : semi_empirical_expns3_release 44 : 45 : CONTAINS 46 : 47 : ! ************************************************************************************************** 48 : !> \brief Allocate semi-empirical 1/R^3 expansion type 49 : !> \param expns3 ... 50 : !> \author Teodoro Laino [tlaino] - 12.2008 51 : ! ************************************************************************************************** 52 0 : SUBROUTINE semi_empirical_expns3_create(expns3) 53 : TYPE(semi_empirical_expns3_type), POINTER :: expns3 54 : 55 0 : CPASSERT(.NOT. ASSOCIATED(expns3)) 56 0 : ALLOCATE (expns3) 57 0 : expns3%core_core = 0.0_dp 58 0 : expns3%e1b = 0.0_dp 59 0 : expns3%e2a = 0.0_dp 60 0 : expns3%w = 0.0_dp 61 0 : END SUBROUTINE semi_empirical_expns3_create 62 : 63 : ! ************************************************************************************************** 64 : !> \brief Deallocate the semi-empirical type 65 : !> \param expns3 ... 66 : !> \author Teodoro Laino [tlaino] - 12.2008 67 : ! ************************************************************************************************** 68 0 : SUBROUTINE semi_empirical_expns3_release(expns3) 69 : TYPE(semi_empirical_expns3_type), POINTER :: expns3 70 : 71 0 : IF (ASSOCIATED(expns3)) THEN 72 0 : DEALLOCATE (expns3) 73 : END IF 74 0 : END SUBROUTINE semi_empirical_expns3_release 75 : 76 0 : END MODULE semi_empirical_expns3_types