Developer Reference

  • 2020.2
  • 07/15/2020
  • Public Content
Contents

vmlSetErrorCallBack

Sets the additional error handler callback function and gets the old callback function.

Syntax

oldcallback
=
vmlseterrorcallback
(
callback
)
Include Files
  • mkl_vml.f90
Input Parameters
Name
Description
callback
Address of the callback function.
The callback function has the following format:
INTEGER FUNCTION ERRFUNC(par)
TYPE (ERROR_STRUCTURE) par
! ...
! user error processing
! ...
ERRFUNC = 0
! if ERRFUNC= 0 - standard VM error handler
! is called after the callback
! if ERRFUNC != 0 - standard VM error handler
! is not called
END
The passed error structure is defined as follows:
TYPE ERROR_STRUCTURE SEQUENCE
INTEGER*4 ICODE
INTEGER*4 IINDEX
REAL
*8 DBA1
REAL
*8 DBA2
REAL
*8 DBR1
REAL
*8 DBR2
CHARACTER(64) CFUNCNAME
INTEGER*4 IFUNCNAMELEN
REAL
*8 DBA1IM
REAL
*8 DBA2IM
REAL
*8 DBR1IM
REAL
*8 DBR2IM
END TYPE ERROR_STRUCTURE
Output Parameters
Name
Type
Description
oldcallback
INTEGER
Address of the former callback function.
This function does not have a FORTRAN 77 interface due to the use of internal structures.
Description
The callback function is called on each VM mathematical function error if
VML_ERRMODE_CALLBACK
error mode is set .
Use the
vmlSetErrorCallBack()
function if you need to define your own callback function instead of default empty callback function.
The input structure for a callback function contains the following information about the error encountered:
  • the input value that caused an error
  • location (array index) of this value
  • the computed result value
  • error code
  • name of the function in which the error occurred.
You can insert your own error processing into the callback function. This may include correcting the passed result values in order to pass them back and resume computation. The standard error handler is called after the callback function only if it returns
0
.

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804