qrupdate-ng 1.2.0
Loading...
Searching...
No Matches
Error Handling

Routines for error handling. More...

Collaboration diagram for Error Handling:

Classes

interface  qrupdate_error::error_handler_if
 Abstract interface for custom error handlers. More...

Functions

subroutine qrupdate_error::qrupdate_set_error (p_handler)
 Sets the custom error handler.
subroutine qrupdate_error::qrupdate_set_error_data (p_aux)
 Sets auxiliary data for the error handler.
subroutine qrupdate_error::qrupdate_xerror (srname, info)
 Dispatches error reporting to the handler.

Detailed Description

Routines for error handling.

Since qrupdate 1.2.0, the way of handling errors changed a bit. Instead of calling xerbla from LAPACK/BLAS, a user defined handler can registered. If this is not done, xerbla is called as before. See qrupdate_set_error for details.

Function Documentation

◆ qrupdate_set_error()

subroutine qrupdate_error::qrupdate_set_error ( procedure(error_handler_if), intent(in), pointer p_handler)

Sets the custom error handler.

Parameters
[in]p_handler
   !>          p_handler is a procedure pointer conforming to the
   !>          error_handler_if interface.
   !> 

Definition at line 52 of file qrupdate_error.f90.

◆ qrupdate_set_error_data()

subroutine qrupdate_error::qrupdate_set_error_data ( class(*), pointer p_aux)

Sets auxiliary data for the error handler.

Parameters
[in]p_aux
   !>          p_aux is a pointer to a polymorphic object (class(*))
   !>          that will be passed to the error handler.
   !> 

Definition at line 65 of file qrupdate_error.f90.

◆ qrupdate_xerror()

subroutine qrupdate_error::qrupdate_xerror ( character(len=*), intent(in) srname,
integer, intent(in) info )

Dispatches error reporting to the handler.

This subroutine checks if a custom error handler has been set via qrupdate_set_error. If so, it calls that handler with the provided routine name, error code, and any set auxiliary data. Otherwise, it falls back to the standard LAPACK xerbla routine.

Parameters
[in]srname
!>          srname is CHARACTER(LEN=*)
!>          The name of the routine that encountered the error.
!> 
[in]info
!>          info is INTEGER
!>          The error code.
!> 

Definition at line 88 of file qrupdate_error.f90.