LCOV - code coverage report
Current view: top level - src/motion - mdctrl_methods.F (source / functions) Coverage Total Hit
Test: CP2K Regtests (git:936074a) Lines: 85.7 % 7 6
Test Date: 2025-12-04 06:27:48 Functions: 100.0 % 1 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 A common interface (wrapper) for a callback into the md_run loop.
      10              : !>        Currently this is only used by the glbopt machinery, but its meant
      11              : !>        to be extended if others need to control the md_run loop, too.
      12              : !>
      13              : !> \par History
      14              : !>      11.2012 created [Ole]
      15              : !> \author Ole
      16              : ! **************************************************************************************************
      17              : MODULE mdctrl_methods
      18              :    USE glbopt_callback,                 ONLY: glbopt_md_callback
      19              :    USE md_environment_types,            ONLY: md_environment_type
      20              :    USE mdctrl_types,                    ONLY: mdctrl_type
      21              : #include "../base/base_uses.f90"
      22              : 
      23              :    IMPLICIT NONE
      24              :    PRIVATE
      25              : 
      26              :    PUBLIC :: mdctrl_callback
      27              : 
      28              :    CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'mdctrl_methods'
      29              : 
      30              : CONTAINS
      31              : 
      32              : ! **************************************************************************************************
      33              : !> \brief This is called by md_run for each step during during its main-loop.
      34              : !> \param mdctrl data which is passed on to the wrapped client-routine
      35              : !> \param md_env contains the current state of the md_run
      36              : !> \param should_stop can be used to abort the md_run
      37              : ! **************************************************************************************************
      38         2689 :    SUBROUTINE mdctrl_callback(mdctrl, md_env, should_stop)
      39              :       TYPE(mdctrl_type), POINTER                         :: mdctrl
      40              :       TYPE(md_environment_type), POINTER                 :: md_env
      41              :       LOGICAL, INTENT(inout)                             :: should_stop
      42              : 
      43         2689 :       CPASSERT(ASSOCIATED(md_env))
      44         2689 :       CPASSERT(ASSOCIATED(mdctrl))
      45              : 
      46         2689 :       IF (ASSOCIATED(mdctrl%glbopt)) THEN
      47         2689 :          CALL glbopt_md_callback(mdctrl%glbopt, md_env, should_stop)
      48              : 
      49              :          !ELSE IF(ASSOCIATED(mdctrl%your_own_hook)) THEN ...
      50              : 
      51              :       ELSE
      52            0 :          CPABORT("mdctrl_callback: No hook found.")
      53              :       END IF
      54              : 
      55         2689 :    END SUBROUTINE mdctrl_callback
      56              : 
      57              : END MODULE mdctrl_methods
      58              : 
        

Generated by: LCOV version 2.0-1