gpt4 book ai didi

dynamic - Fortran:命名输出文件时出现 "output statement overflows record"错误

转载 作者:行者123 更新时间:2023-12-02 10:10:52 25 4
gpt4 key购买 nike

我尝试动态写入不同的文件名(例如“output_0001.txt”“output_0002.txt”),但反复出现以下错误:

forrtl: severe (66): output statement overflows record, unit -5, file
Internal Formatted Write

我尝试将“文件名”字符数组扩展到过大的长度,但它仍然不起作用。不知道为什么我的字符串会太大皱眉表情符号如果我将“文件名”更改为静态字符数组,那么它就可以正常工作。有什么想法吗?

我的代码如下:

character(30)::filename
...
write(filename, fmt = "(2A, I0.4, A)") out_file_basename, "_", i, ".dat"
open(unit = 3, file = filename)

最佳答案

根据您的评论,您有类似的内容

character(30)::filename, out_file_basename
...
write(filename, fmt = "(2A, I0.4, A)") out_file_basename, "_", i, ".dat"

这将是一个问题。从其他上下文来看,这可能很容易解决。

有区别

character(len=30) out_file_basename
out_file_basename = "output" ! Or from get_command_argument
write(filename, fmt = "(2A, I0.4, A)") out_file_basename, "_", i, ".dat"

write(filename, fmt = "(2A, I0.4, A)") "output", "_", i, ".dat"

区别在于 out_file_basename 用 24 个空格填充(长度为 30),而文字 "output" 则没有填充(长度为 6)。在第一个中,您需要一个长度至少为 39 的字符变量。

简单的解决方案是修剪 out_file_basename 中的所有空格:

write(filename, fmt = "(2A, I0.4, A)") TRIM(out_file_basename), "_", i, ".dat"

但为了安全起见,您希望文件名足够大。

关于dynamic - Fortran:命名输出文件时出现 "output statement overflows record"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29463305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com