为基于 BLAS/LAPACK 的线性代数过程提供状态/错误处理派生类型。所有过程都是纯的。 (规范) 版本:实验性
用于线性代数例程错误处理的固定存储状态变量
版本:实验性
错误状态处理:如果用户在输出时请求了错误状态变量,只需将其返回给用户。否则,在发生错误时停止程序。
版本:实验性
用于比较错误状态与整型标志的运算符的接口
类型 | 可见性 | 属性 | 名称 | 初始 | |||
---|---|---|---|---|---|---|---|
integer(kind=ilp), | public, | parameter | :: | LINALG_ERROR | = | -2_ilp | |
integer(kind=ilp), | public, | parameter | :: | LINALG_INTERNAL_ERROR | = | -3_ilp | |
integer(kind=ilp), | public, | parameter | :: | LINALG_SUCCESS | = | 0_ilp |
状态返回类型 |
integer(kind=ilp), | public, | parameter | :: | LINALG_VALUE_ERROR | = | -1_ilp |
错误创建消息,带位置位置
创建没有消息的状态
添加位置
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | where_at |
位置 |
||
integer, | intent(in) | :: | flag |
输入错误标志 |
||
class(*), | intent(in), | optional, | dimension(..) | :: | a1 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a2 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a3 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a4 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a5 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a6 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a7 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a8 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a9 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a10 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a11 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a12 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a13 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a14 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a15 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a16 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a17 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a18 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a19 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a20 |
可选的秩无关参数 |
错误创建消息,来自 N 个输入变量(数字或字符串)
设置错误标志
设置链
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | flag |
输入错误标志 |
||
class(*), | intent(in), | optional, | dimension(..) | :: | a1 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a2 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a3 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a4 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a5 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a6 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a7 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a8 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a9 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a10 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a11 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a12 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a13 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a14 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a15 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a16 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a17 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a18 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a19 |
可选的秩无关参数 |
class(*), | intent(in), | optional, | dimension(..) | :: | a20 |
可选的秩无关参数 |
将错误状态与整型标志进行比较
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
type(linalg_state_type), | intent(in) | :: | err | |||
integer, | intent(in) | :: | flag |
将整型标志与错误状态进行比较
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | flag | |||
type(linalg_state_type), | intent(in) | :: | err |
将错误状态与整型标志进行比较
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
type(linalg_state_type), | intent(in) | :: | err | |||
integer, | intent(in) | :: | flag |
将整型标志与错误状态进行比较
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | flag | |||
type(linalg_state_type), | intent(in) | :: | err |
将错误状态与整型标志进行比较
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
type(linalg_state_type), | intent(in) | :: | err | |||
integer, | intent(in) | :: | flag |
将整型标志与错误状态进行比较
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | flag | |||
type(linalg_state_type), | intent(in) | :: | err |
比较运算符
将错误状态与整型标志进行比较
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
type(linalg_state_type), | intent(in) | :: | err | |||
integer, | intent(in) | :: | flag |
将整型标志与错误状态进行比较
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | flag | |||
type(linalg_state_type), | intent(in) | :: | err |
将错误状态与整型标志进行比较
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
type(linalg_state_type), | intent(in) | :: | err | |||
integer, | intent(in) | :: | flag |
将整型标志与错误状态进行比较
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | flag | |||
type(linalg_state_type), | intent(in) | :: | err |
将错误状态与整型标志进行比较
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
type(linalg_state_type), | intent(in) | :: | err | |||
integer, | intent(in) | :: | flag |
将整型标志与错误状态进行比较
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | flag | |||
type(linalg_state_type), | intent(in) | :: | err |
linalg_state_type
定义了线性代数例程的状态返回类型。状态包含一个状态标志、一个注释和一个过程说明符,可用于标记错误发生的位置
类型 | 可见性 | 属性 | 名称 | 初始 | |||
---|---|---|---|---|---|---|---|
character(len=MSG_LENGTH), | public | :: | message | = | repeat(' ', MSG_LENGTH) |
与当前状态关联的消息 |
|
integer(kind=ilp), | public | :: | state | = | LINALG_SUCCESS |
当前退出状态 |
|
character(len=NAME_LENGTH), | public | :: | where_at | = | repeat(' ', NAME_LENGTH) |
状态更改的位置 |
private pure function new_state (where_at, flag, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) | 错误创建消息,带位置位置 创建没有消息的状态 添加位置 |
private pure function new_state_nowhere (flag, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) | 错误创建消息,来自 N 个输入变量(数字或字符串) 设置错误标志 设置链 |
procedure, public :: destroy => state_destroy | ../../ 清理 |
procedure, public :: error => state_is_error | |
procedure, public :: ok => state_is_ok | ../../ 状态属性 |
procedure, public :: print => state_print | ../../ 打印错误消息 |
procedure, public :: print_msg => state_message |
流程控制:在输出标志存在的情况下,返回它;否则,在发生错误时停止
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
type(linalg_state_type), | intent(in) | :: | ierr | |||
type(linalg_state_type), | intent(out), | optional | :: | ierr_out |