首页/文章/ 详情

【开发经验】Abaqus Fortran子程序开发中如何打印警告及错误提示消息

1年前浏览3577

在子程序执行过程中,可以分别从Abaqus/StandardAbaqus/Explicit用户子程序中调用应用程序STDB_ABQERRXPLB_ABQERR,向Abaqus/Standard的消息文件(.msg)或Abaqus / Explicit的状态文件( .sta)输出提示消息、警告或者错误消息等,以辅助程序的调试。



1 调用格式


调用形式如下:

STDB_ABQERR警告/错误提示应用程序调用格式:

1.  C

2.        DIMENSION INTV(*),REALV(*)

3.        CHARACTER*8 CHARV(*)

4.        ...

5.        CALLSTDB_ABQERR(LOP,STRING,INTV,REALV,CHARV)


XPLB_ABQERR警告/错误提示信息调用格式:

1.  C

2.        DIMENSION INTV(*),REALV(*)

3.        CHARACTER*8 CHARV(*)

4.        ...

5.        CALLXPLB_ABQERR(LOP,STRING,INTV,REALV,CHARV)


2 变量定义

STDB_ABQERRXPLB_ABQERR应用程序中,参数的定义如下:

1LOP:代表的是发出消息的类型。当消息类型为提示类消息,则将LOP设置为1;如果要发出警告消息,则设置LOP=-1;如果要发出错误消息但仍然保持分析的继续,则设置LOP=-2;如果要发出错误消息并且立即停止分析,则设置LOP =-3

2STRING:要发布的具体消息字符串,用单引号界定,最长为500个字符。如果字符串过长,单行无法写完,则应使用双正斜杠(//)运算符将多行长字符串连接起来,每行都需要包含在单引号之间。另外,还可以分别使用%I、%R和%S在消息内引用整数、实数或字符变量。整数、实数或字符变量分别通过INTVREALVCHARV进行变量声明并传递到应用程序中。

3INTV:输出消息中包含的整数变量组。变量STRING中的第一个整数变量%I对应INTV1),第二个整数变量对应INTV2),依此类推。

4REALV:输出消息中的实数变量组。变量STRING中的第一个实变量%R对应REALV1),第二个实变量%R对应REALV2),依此类推。

5CHARV:输出消息中的字符串变量数组,单个变量最多8个字符长度,变量STRING中第一个字符串变量%S对应CHARV1),第二个字符串变量对应CHARV2),依此类推。


3 应用实例


应用实例1:消息中不包含变量

1.  c

2.        jStatus = 1

3.        call vgetvrm( 'LE', rData, jData, cData,jStatus )

4.  c

5.      if( jStatus .ne. 0 ) then

6.         call xplb_abqerr(-2,'Utility routineVGETVRM '//

7.     *     'failed to get variable.',0,0.0,' ')

8.         call xplb_exit

9.      end if

 

应用实例2:消息中包含变量

1.  c

2.        if (nstatev .lt. n_svd_Required) then

3.            call xplb_abqerr(-2,'Subroutine VUMATrequires the '//

4.       *      'specification of %I state variables. Check the '//

5.       *      'definition of *DEPVAR in the input file.',

6.       *      n_svd_Required,0.0,' ')

7.            call xplb_exit

8.        end if





来源:易木木响叮当
ACTAbaqusUM
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-06-12
最近编辑:1年前
易木木响叮当
硕士 有限元爱好者
获赞 207粉丝 226文章 326课程 2
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈