Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Fortran输出错误:lib-2_Fortran_Output - Fatal编程技术网

Fortran输出错误:lib-2

Fortran输出错误:lib-2,fortran,output,Fortran,Output,我在使用商业程序(Abaqus)执行Fortran子程序时出错。我使用了一些write语句将结果打印到外部文本文件中。 e、 g.将一些整数值打印到现有文件: OPEN(UNIT=304,FILE="full_path_to_file/outputs.txt",position="append") WRITE(304,*) KINC,NOEL,NPT 我得到这个错误: UNRECOVERABLE error on system request lib-2: No such file or di

我在使用商业程序(Abaqus)执行Fortran子程序时出错。我使用了一些write语句将结果打印到外部文本文件中。 e、 g.将一些整数值打印到现有文件:

OPEN(UNIT=304,FILE="full_path_to_file/outputs.txt",position="append")
WRITE(304,*) KINC,NOEL,NPT
我得到这个错误:

UNRECOVERABLE error on system request
lib-2: No such file or directory
Encountered during an OPEN of unit 101
Fortran unit 101 is not connected
我调查了文档,在互联网上搜索了很多关于
lib-2
的东西,以及Fortran输出文件单元,但没有成功。此外,我还更改了单元号,但这个错误与特定的单元号无关。 如果有人知道这一点,能给我一些关于这个错误的起源以及如何解决它的提示,我将非常感激

谢谢

mubee.

lib-2不是什么标准,它只是一个特定于编译器的东西(您没有提到您的编译器)。文件存在吗?你有正确的工作目录吗?如果你尝试

OPEN(UNIT=304,FILE="full_path_to_file/outputs.txt",status="replace")

,您应该看到,一个新文件出现在哪里,您的文件应该放在哪里以便添加到其中。

您的代码片段显示了对Fortran单元304的写入,但错误消息是关于Fortran单元101的。最大可能的单元数有编译器特定的限制。也许304对于编译器来说太大了。还是其他地方的代码使用了101单元?查找使用单元号101的open语句,并查看该open语句试图打开的文件。编译器是否会通知您导致问题的语句的行号


对评论的回应:如果您将写入更改为“写入(*,*)”,会发生什么?那么这个计划有效吗?如果是这样的话,这表明公开声明存在问题。您确定文件的路径正确吗?程序是否具有写入该目录的权限?尝试删除路径并打开当前目录中的文件。如果您可以访问其他Fortran编译器,请尝试一下,看看它是否为您提供了更有用的错误消息。

我有AMD硬件和AMD的Open64编译器套件(包括OpenF90 Fortran编译器),我使用的是Ubuntu 12.04。该文件已存在,并且未被任何其他程序使用。路径也是正确的,如果我在这个商业程序中使用Intel的IFORT(在Windows上),子例程可以运行文件。您尝试过我的调试建议吗?是的,我尝试过使用
status=“replace”
,也尝试过使用其他
status
选项,但不幸的是,没有一个选项起作用。。。这个错误可能是由主软件程序引起的吗?我怀疑你只是路径错误。看起来您知道Abaqus运行在一个临时目录中,所以您必须提供完整的路径,但您应该在代码中显示实际使用的内容。(我假设你没有“完整路径到文件”。)实际上,我有两条写语句,第一条写语句将数据打印到单元号为101的文件,第二条写语句将数据打印到单元号为304的文件。一旦遇到第一个write语句,此分析就会终止。(我忘了抄写所有的声明)。但是,我使用了许多单位编号,错误持续存在:(如果你真的陷入困境,你可能会发现一件有用的事情是编写你自己的主调用程序来调用你的用户子例程进行调试。另一种想法是,你是否在每次调用子例程时都打开文件?是否关闭它?这对性能来说是一件坏事,但可能是与打开一个已经打开的单元有关的错误此软件的indows版本(我与Intel的Visual Fortran一起安装)这个子程序运行得很好;和其他使用ifort的Linux机器一样,
ifort
+Abaqus也可以很好地将数据写入外部文件!!但是在使用**Open64编译器套件**的Linux平台上,这个软件的Linux版本在将数据写入外部文件方面有问题!!我仍在试图弄清楚它是否正确兼容性问题(Abaqus+Open64编译器套件)??