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 : #:include '../common/cp_linked_list.fypp'
9 :
10 : MODULE cp_linked_list_xc_deriv
11 : USE xc_derivative_types, ONLY: xc_derivative_type, xc_derivative_p_type
12 : #include "../base/base_uses.f90"
13 :
14 : #:mute
15 : #:set nametype1 = ['xc_deriv']
16 : #:set type1 = ['TYPE(xc_derivative_type), POINTER']
17 : #:set type1in = type1
18 : #:set type1out = type1
19 :
20 : #:set eq = ['=>']
21 : #:set arrayeq = eq
22 : #:set type1arrayEl = ['type(xc_derivative_p_type)']
23 : #:set arrayEl = ['%deriv']
24 :
25 : #:def get_private_routines()
26 : ! **************************************************************************************************
27 : !> \brief private compare function
28 : !> \param el1 ...
29 : !> \param el2 ...
30 : !> \return ...
31 : ! **************************************************************************************************
32 : function cp_sll_deriv_less_q(el1, el2) result(res)
33 : type(xc_derivative_type), INTENT(IN) :: el1, el2
34 : logical :: res
35 :
36 : integer :: i
37 :
38 : res = size(el1%split_desc) < size(el2%split_desc)
39 : if (size(el1%split_desc) == size(el2%split_desc)) then
40 : do i = 1, size(el1%split_desc)
41 : if (el1%split_desc(i) /= el2%split_desc(i)) then
42 : res = el1%split_desc(i) < el2%split_desc(i)
43 : exit
44 : end if
45 : end do
46 : end if
47 : end function
48 : #:enddef
49 :
50 : #:set private_routines = get_private_routines()
51 : #:set default_init = [' => NULL()']
52 : #:endmute
53 :
54 14320381 : $:inst(nametype1, type1, type1in, type1out, eq, arrayeq, type1arrayEl, arrayEl, private_routines, default_init)
55 0 : END MODULE
|