cable_error_handler_base.F90 Source File


Source Code

module cable_error_handler_base_mod
  use iso_fortran_env, only: error_unit
  implicit none
  private
  public :: cable_error_handler_base_t

  type cable_error_handler_base_t
  contains
    procedure :: log_message => cable_error_handler_base_log_message
    procedure :: abort => cable_error_handler_base_abort
  end type cable_error_handler_base_t

contains

  subroutine cable_error_handler_base_log_message(this, message, file, line)
    class(cable_error_handler_base_t), intent(in) :: this
    character(len=*), intent(in) :: message
    character(len=*), intent(in) :: file
    integer, intent(in) :: line
    character(5) :: line_string

    write (line_string, "(I5)") line
    write (error_unit, *) "Error: " // file // ":" // "L" // trim(adjustl(line_string)) // ": " // message

  end subroutine cable_error_handler_base_log_message

  subroutine cable_error_handler_base_abort(this)
    class(cable_error_handler_base_t), intent(inout) :: this
    error stop 1
  end subroutine

end module