Fortran 的常规错误消息

在现实世界里,编程逻辑中会不可避免地出现遗漏和错误。执行分析时,如果出现未捕获的错误,则会显示 Fortran 的常规消息,且分析将会停止。例如,forrtl: 严重 (605): 未格式化文件的结构非法。

大多数情况下,错误消息并无用处,因为 Fortran 消息面向程序开发人员,可能不存在解决方法。在某些情况下,可以根据错误消息和以下附加信息合理推测出错原因。然后,通过调整输入,您可以避免错误并获得结果。

提示:

无论您能否绕过该问题,均应创建原始模型的存档,并将该存档以及有助于识别问题的任何说明发送给技术支持人员。有关详细信息,请参见如何获得帮助页面。如果可能,请创建包含结果的存档(使所有文件均包括在内)。如果包含结果的存档太大,请仅发送模型存档,同时发送日志文件。(有关文件及其位置的列表,请参见文件扩展名页面。)

Fortran 错误

下表提供了一些更常见的错误错误代号(可能有数百个)。第一列列出了处理器返回的错误代号。

第二列的第一行提供了显示的消息(在 forrtl: 之后),其中包括严重级别、消息编号和消息文本。第二列的第二行包含消息的解释(摘自供应商提供的 Fortran 手册)以及特定于 Autodesk Simulation 的任何已知说明。

编号 严重级别、编号和消息文本;解释
9

严重 (9): 访问文件的权限被拒绝

请检查指定文件的权限并确认能否创建或写入该文件?文件属性是否设置为只读?接下来,请检查该文件所在的文件夹的权限,并确认未将文件夹设置为只读。

作为另一测试,请使用一个具有完整管理员权限的帐户登录到计算机。

22

严重 (22): 输入记录太长

读取的记录超出打开文件时指定的显式或默认记录长度。

在某些情况下,如果分配的内存太高,临时文件可能会过大。请尝试分配更少的内存,但这会创建更多较小的临时文件。(分配的内存在“设置”“设置”“参数”对话框下的某处设置。)

24

严重 (24): 文件在读取时结束

通常,此错误消息还包括单元号,这通常是临时文件。例如,文件在读取时结束,单元 76 表示 .t76 文件存在问题。该软件要求此文件的长度超过此数字。

在某些情况下,模型设置或输入问题将导致文件的长度为 0 字节,因此稍后尝试读取该文件会导致此错误。

问题的另一根源是该文件不存在。

29

严重 (29): 找不到文件

在打开操作期间,找不到具有指定名称的文件。如果文件是用户指定的文件,请确保它位于正确的文件夹中。

43

严重 (43): 文件名规范错误

为 OPEN 或 INQUIRE 语句提供的路径名或文件名不可接受。此外,该问题还可能与磁盘空间不足相关。

157

严重 (157): 程序异常 - 访问冲突

程序尝试在没有适当访问权限的虚拟地址(例如,只读或受保护的内存地址)中进行读取或写入。

模型求解大小可能超出计算机限制。请减小模型尺寸,或在 TEMP 目录驻留的计算机驱动器上提供更多可用磁盘空间,或者增加计算机的 RAM。如果这无法避免该问题,则问题可能是由其他错误导致的。

用于保存模型的文件夹或文件名本身可能包含非法字符。请尝试将模型保存到其他更靠近根目录的文件夹和其他文件名。请使用较短的文件夹名称和文件名,且仅使用字母和数字。

159

严重 (159): 程序异常 - 断点

Fortran 运行库在程序中遇到断点。

此问题的根源之一是文件变得非常大。请减小模型尺寸或输出结果的频率。例如,在瞬态热传递分析中,输出更少的时间步,使结果文件变得更小。

164

严重 (164): 程序异常 - 整数被零除

在整数算术运算过程中,尝试除以零。请找到并更正导致整数被零除的源代码。

在极端情况下,模型可能太小!例如,模态分析需要求解中的自由度数超过正在求解的模式数。如果测试模式只有少数几个自由节点(其他节点可能受约束),可能无法求解模态分析。

168

严重 (168): 程序异常 - 非法指令

程序尝试执行无效指令。这是操作系统错误。

170

严重 (170): 程序异常 - 堆栈溢出

执行程序时,Fortran 运行库检测到堆栈溢出。

模型可能太大。

605

严重 (605): 未格式化文件的结构非法

已使用指定的格式打开文件,但其内部物理结构不正确或不一致。可能的原因:文件是在其他模式中或由非 Fortran 程序创建的。

或者,处理器创建的临时文件之一(.t*,位于 modelname.ds_data 文件夹中)可能超出限制。例如,文件可能大于 2 GB。

613

严重 (613): 遇到文件结尾

程序尝试读取的数据超过文件包含的数量。

620

严重 (620): 从未格式化记录读取的字节过多

程序尝试从未格式化文件读取的数据超过当前记录包含的数量。如果程序是从未格式化的直接文件读取数据,则尝试读取比由 RECL 选项指定的固定记录长度更多的数据。如果程序是从为格式化的顺序文件读取数据,则尝试读取比写入记录的数量更多的数据。