9 USE iso_c_binding,
ONLY: c_char,&
14 #include "../base/base_uses.f90"
20 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'cp_dlaf_utils_api'
34 CHARACTER(len=*),
PARAMETER :: routinen =
'cp_dlaf_initialize'
35 INTEGER,
PARAMETER :: dlaf_argc = 1, pika_argc = 1
37 CHARACTER(len=5, kind=C_CHAR),
ALLOCATABLE,
TARGET :: dlaf_argv(:), pika_argv(:)
39 TYPE(c_ptr),
ALLOCATABLE,
DIMENSION(:) :: dlaf_argv_ptr, pika_argv_ptr
41 SUBROUTINE dlaf_init(pika_argc, pika_argv, dlaf_argc, dlaf_argv) bind(C, name='dlaf_initialize')
42 IMPORT :: c_ptr, c_int
43 TYPE(c_ptr),
DIMENSION(*) :: pika_argv
44 TYPE(c_ptr),
DIMENSION(*) :: dlaf_argv
45 INTEGER(kind=c_int),
value :: pika_argc
46 INTEGER(kind=c_int),
value :: dlaf_argc
47 END SUBROUTINE dlaf_init
50 CALL timeset(routinen, handle)
53 ALLOCATE (pika_argv(pika_argc))
54 pika_argv(1) =
"dlaf"//c_null_char
55 ALLOCATE (dlaf_argv(dlaf_argc))
56 dlaf_argv(1) =
"dlaf"//c_null_char
58 ALLOCATE (pika_argv_ptr(pika_argc))
59 pika_argv_ptr(1) = c_loc(pika_argv(1))
60 ALLOCATE (dlaf_argv_ptr(dlaf_argc))
61 dlaf_argv_ptr(1) = c_loc(dlaf_argv(1))
63 CALL dlaf_init(pika_argc, pika_argv_ptr, dlaf_argc, dlaf_argv_ptr)
66 mark_used(pika_argv_ptr)
69 mark_used(dlaf_argv_ptr)
83 CHARACTER(len=*),
PARAMETER :: routinen =
'cp_dlaf_finalize'
87 SUBROUTINE dlaf_finalize_aux() &
88 bind(c, name=
'dlaf_finalize')
89 END SUBROUTINE dlaf_finalize_aux
92 CALL timeset(routinen, handle)
95 CALL dlaf_finalize_aux()
109 INTEGER,
INTENT(IN) :: blacs_context
111 CHARACTER(len=*),
PARAMETER :: routinen =
'cp_dlaf_create_grid'
115 SUBROUTINE dlaf_create_grid(blacs_contxt) &
116 bind(c, name=
'dlaf_create_grid_from_blacs')
118 INTEGER(KIND=C_INT),
VALUE :: blacs_contxt
122 CALL timeset(routinen, handle)
125 CALL dlaf_create_grid(blacs_context)
127 mark_used(blacs_context)
128 cpabort(
"CP2K compiled without the DLA-Future library.")
131 CALL timestop(handle)
142 INTEGER,
INTENT(IN) :: blacs_context
144 CHARACTER(len=*),
PARAMETER :: routinen =
'cp_dlaf_free_grid'
148 SUBROUTINE dlaf_free_grid(blacs_contxt) &
149 bind(c, name=
'dlaf_free_grid')
151 INTEGER(KIND=C_INT),
VALUE :: blacs_contxt
155 CALL timeset(routinen, handle)
158 CALL dlaf_free_grid(blacs_context)
160 mark_used(blacs_context)
161 cpabort(
"CP2K compiled without the DLA-Future library.")
164 CALL timestop(handle)
subroutine, public cp_dlaf_create_grid(blacs_context)
Create DLA-Future grid from BLACS context.
subroutine, public cp_dlaf_finalize()
Finalize DLA-Future and pika runtime.
subroutine, public cp_dlaf_free_grid(blacs_context)
Free DLA-Future grid corresponding to BLACS context.
subroutine, public cp_dlaf_initialize()
Initialize DLA-Future and pika runtime.