打开语句中 buffered='yes' 处的语法错误

Syntax error at buffered='yes' in an open statement

提问人:user991852 提问时间:10/19/2011 最后编辑:Vladimir F Героям славаuser991852 更新时间:1/12/2022 访问量:570

问:

我正在编写一个 Fortran 程序,其中一行是这样写的

open(unit=un1,file=filenm,form='unformatted',buffered='yes',status='replace',buffercount=127)

我已经定义了

character*256 filenm.
un1=11

但我仍然收到错误

"Syntax error at or near =" in that line..
福特兰 fortran90

评论

2赞 Stefano Borini 10/19/2011
就像笔记一样,已经过时了。您应该使用character*256character(len=256) :: filename

答:

5赞 Vladimir F Героям слава 10/19/2011 #1

问题出在 ,它不是标准的 Fortran,而是某些供应商扩展,您的编译器无法识别它。我只会删除它并删除(在评论中提到)。buffered='yes'buffercount=127

现代编译器和操作系统允许通过其他方式控制这些东西(外部 I/O 缓冲)。例如,在 gfortran 中使用环境变量 https://gcc.gnu.org/onlinedocs/gfortran/Runtime.html#Runtime

评论

0赞 user991852 10/19/2011
谢谢。。我还删除了buffered='yes'以及buffercount=127,因此该错误消失了,但是新错误“派生类型尚未声明 - t_openfilename”已出现在line中type(T_OPENFILENAME) ofn
0赞 M. S. B. 10/19/2011
有关派生类型的错误消息t_openfilename未声明。仅使用导致错误的源代码行,我们只能猜测。您需要先声明该类型,然后才能使用它。为什么不见了?您是否缺少定义它的文件?
0赞 user991852 10/19/2011
感谢您的回复.......其实我是电气出身的。.我正在尝试为我的项目学习 Fortran......请告诉我任何好的参考资料,我将从中获得“类型命令”的知识
0赞 Stefano Borini 10/19/2011
@user991852:重要,非常重要:学习 Fortran 95,以及旧 F77 结构和新结构之间的区别。不要使用旧的构造。学会阅读它们(如果你有旧代码需要理解),但不要使用它们。特别是,切勿在模块外部使用公共资源、名称列表或代码。始终在例程参数中使用隐式 none 和 intent 规范。
0赞 M. S. B. 10/19/2011
参考资料:我推荐梅特卡夫、里德和科恩的《Fortran 95/2003 Explained》一书。概述,但可能太简短而无法学习:en.wikipedia.org/wiki/Fortran_95_language_features