提问人:user991852 提问时间:10/19/2011 最后编辑:Vladimir F Героям славаuser991852 更新时间:1/12/2022 访问量:570
打开语句中 buffered='yes' 处的语法错误
Syntax error at buffered='yes' in an open statement
问:
我正在编写一个 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..
答:
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
评论
character*256
character(len=256) :: filename