elpa_autotune_impl.F90 1.23 KB
Newer Older
1
2
3
4
5
6
#include "config-f90.h"

module elpa_autotune_impl
  use elpa_abstract_impl
  use, intrinsic :: iso_c_binding
  implicit none
Andreas Marek's avatar
Andreas Marek committed
7
#ifdef ENABLE_AUTOTUNING
8
9
  type, extends(elpa_autotune_t) :: elpa_autotune_impl_t
    class(elpa_abstract_impl_t), pointer :: parent => NULL()
10
    integer :: current = 0
11
12
    real(kind=C_DOUBLE) :: min_val = 0.0_C_DOUBLE
    integer :: min_loc = 0
13
    integer :: cardinality = 0
14
15
16
17
18
19
20
21
22
    integer :: level = 0
    integer :: domain = 0
    contains
      procedure, public :: print => elpa_autotune_print
      procedure, public :: destroy => elpa_autotune_destroy
  end type

  contains

23
24
25
    !> \brief function to print the autotuning
    !> Parameters
    !> \param   self  class(elpa_autotune_impl_t) the allocated ELPA autotune object
26
27
28
    subroutine elpa_autotune_print(self)
      implicit none
      class(elpa_autotune_impl_t), intent(in) :: self
29
      !print *, "Print me"
30
31
    end subroutine

32
33
34
    !> \brief function to destroy an elpa autotune object
    !> Parameters
    !> \param   self  class(elpa_autotune_impl_t) the allocated ELPA autotune object
35
36
37
38
39
    subroutine elpa_autotune_destroy(self)
      implicit none
      class(elpa_autotune_impl_t), intent(inout) :: self
      ! nothing to do atm
    end subroutine
Andreas Marek's avatar
Andreas Marek committed
40
#endif
41
end module