Visible to Intel only — GUID: GUID-CCD9240B-E4C0-4BC8-BBE9-57FDB9207500
Visible to Intel only — GUID: GUID-CCD9240B-E4C0-4BC8-BBE9-57FDB9207500
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 (see "Values of the mode Parameter").
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.