Initialize the DBCSR library using internal loggers and timer callbacks We do not need this routine within the library, so we keep the communicator as a handle and convert it here to a communicator type
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | mp_comm | |||
integer, | intent(in), | optional | :: | io_unit | ||
integer, | intent(in), | optional | :: | accdrv_active_device_id |
SUBROUTINE dbcsr_init_lib_def(mp_comm, io_unit, accdrv_active_device_id) !! Initialize the DBCSR library using internal loggers and timer callbacks !! We do not need this routine within the library, so we keep the communicator as a handle !! and convert it here to a communicator type INTEGER, INTENT(IN) :: mp_comm INTEGER, INTENT(IN), OPTIONAL :: io_unit, accdrv_active_device_id TYPE(mp_comm_type) :: my_mp_comm IF (is_initialized) THEN ! Update ext_io_unit IF (.NOT. ASSOCIATED(logger) .AND. PRESENT(io_unit)) ext_io_unit = io_unit RETURN END IF CALL my_mp_comm%set_handle(mp_comm) CALL dbcsr_init_lib_pre(my_mp_comm, io_unit, accdrv_active_device_id) ! ! Declare loggers CALL dbcsr_logger_create(logger, mp_env=mp_env, & default_global_unit_nr=ext_io_unit, & close_global_unit_on_dealloc=.FALSE.) CALL dbcsr_add_default_logger(logger) CALL dbcsr_logger_release(logger) ! abort/warn hooks CALL dbcsr_error_handling_setup() ! timeset/timestop hooks CALL timings_register_hooks() ! timer environment CALL add_mp_perf_env() CALL add_timer_env() ! CALL dbcsr_init_lib_low() END SUBROUTINE dbcsr_init_lib_def