LCOV - code coverage report
Current view: top level - src/fm - cp_dlaf_utils_api.F (source / functions) Hit Total Coverage
Test: CP2K Regtests (git:dc8eeee) Lines: 8 22 36.4 %
Date: 2025-05-15 08:34:30 Functions: 2 5 40.0 %

          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             : MODULE cp_dlaf_utils_api
       9             : 
      10             : #include "../base/base_uses.f90"
      11             : 
      12             : #if defined(__DLAF)
      13             :    USE dlaf_fortran, ONLY: dlaf_create_grid_from_blacs, &
      14             :                            dlaf_finalize, &
      15             :                            dlaf_free_grid, &
      16             :                            dlaf_free_all_grids, &
      17             :                            dlaf_initialize
      18             : #endif
      19             : 
      20             :    IMPLICIT NONE
      21             : 
      22             :    PRIVATE
      23             : 
      24             :    CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'cp_dlaf_utils_api'
      25             : 
      26             :    PUBLIC :: cp_dlaf_initialize, cp_dlaf_finalize
      27             :    PUBLIC :: cp_dlaf_create_grid, cp_dlaf_free_grid, cp_dlaf_free_all_grids
      28             : 
      29             : CONTAINS
      30             : 
      31             : ! **************************************************************************************************
      32             : !> \brief Initialize DLA-Future and pika runtime
      33             : !> \author Rocco Meli
      34             : !> \author Mikael Simberg
      35             : !> \author Mathieu Taillefumier
      36             : ! **************************************************************************************************
      37           0 :    SUBROUTINE cp_dlaf_initialize()
      38             :       CHARACTER(len=*), PARAMETER :: routineN = 'cp_dlaf_initialize'
      39             : 
      40             :       INTEGER                                            :: handle
      41             : 
      42           0 :       CALL timeset(routineN, handle)
      43             : #if defined(__DLAF)
      44             :       CALL dlaf_initialize()
      45             : #endif
      46           0 :       CALL timestop(handle)
      47           0 :    END SUBROUTINE cp_dlaf_initialize
      48             : 
      49             : ! **************************************************************************************************
      50             : !> \brief Finalize DLA-Future and pika runtime
      51             : !> \author Rocco Meli
      52             : !> \author Mikael Simberg
      53             : !> \author Mathieu Taillefumier
      54             : ! **************************************************************************************************
      55        9158 :    SUBROUTINE cp_dlaf_finalize()
      56             :       CHARACTER(len=*), PARAMETER                        :: routineN = 'cp_dlaf_finalize'
      57             : 
      58             :       INTEGER                                            :: handle
      59             : 
      60        9158 :       CALL timeset(routineN, handle)
      61             : #if defined(__DLAF)
      62             :       CALL dlaf_finalize()
      63             : #endif
      64        9158 :       CALL timestop(handle)
      65        9158 :    END SUBROUTINE cp_dlaf_finalize
      66             : 
      67             : ! **************************************************************************************************
      68             : !> \brief Create DLA-Future grid from BLACS context
      69             : !> \param blacs_context ...
      70             : !> \author Rocco Meli
      71             : !> \author Mikael Simberg
      72             : !> \author Mathieu Taillefumier
      73             : ! **************************************************************************************************
      74           0 :    SUBROUTINE cp_dlaf_create_grid(blacs_context)
      75             :       INTEGER, INTENT(IN)                                :: blacs_context
      76             : 
      77             :       CHARACTER(len=*), PARAMETER :: routineN = 'cp_dlaf_create_grid'
      78             : 
      79             :       INTEGER                                            :: handle
      80             : 
      81           0 :       CALL timeset(routineN, handle)
      82             : #if defined(__DLAF)
      83             :       CALL dlaf_create_grid_from_blacs(blacs_context)
      84             : #else
      85             :       MARK_USED(blacs_context)
      86           0 :       CPABORT("CP2K compiled without the DLA-Future library.")
      87             : #endif
      88           0 :       CALL timestop(handle)
      89           0 :    END SUBROUTINE cp_dlaf_create_grid
      90             : 
      91             : ! **************************************************************************************************
      92             : !> \brief Free DLA-Future grid corresponding to BLACS context
      93             : !> \param blacs_context ...
      94             : !> \author Rocco Meli
      95             : !> \author Mikael Simberg
      96             : !> \author Mathieu Taillefumier
      97             : ! **************************************************************************************************
      98           0 :    SUBROUTINE cp_dlaf_free_grid(blacs_context)
      99             :       INTEGER, INTENT(IN)                                :: blacs_context
     100             : 
     101             :       CHARACTER(len=*), PARAMETER                        :: routineN = 'cp_dlaf_free_grid'
     102             : 
     103             :       INTEGER                                            :: handle
     104             : 
     105           0 :       CALL timeset(routineN, handle)
     106             : #if defined(__DLAF)
     107             :       CALL dlaf_free_grid(blacs_context)
     108             : #else
     109             :       MARK_USED(blacs_context)
     110           0 :       CPABORT("CP2K compiled without the DLA-Future library.")
     111             : #endif
     112           0 :       CALL timestop(handle)
     113           0 :    END SUBROUTINE cp_dlaf_free_grid
     114             : 
     115             : ! **************************************************************************************************
     116             : !> \brief Free all DLA-Future grids
     117             : !> \author Rocco Meli
     118             : ! **************************************************************************************************
     119        9158 :    SUBROUTINE cp_dlaf_free_all_grids()
     120             :       CHARACTER(len=*), PARAMETER :: routineN = 'cp_dlaf_free_all_grids'
     121             : 
     122             :       INTEGER                                            :: handle
     123             : 
     124        9158 :       CALL timeset(routineN, handle)
     125             : #if defined(__DLAF)
     126             :       CALL dlaf_free_all_grids()
     127             : #endif
     128        9158 :       CALL timestop(handle)
     129        9158 :    END SUBROUTINE cp_dlaf_free_all_grids
     130             : 
     131             : END MODULE cp_dlaf_utils_api

Generated by: LCOV version 1.15