我尝试使用gfortran编译我的代码。我收到了这个错误:
**INQUIRE(inpunit,flen=iflen)
1
Error: Syntax error in INQUIRE statement at (1)**
此代码之前是用lahey编译的。通过快速研究,我发现,与lahey相比,INQUIRE的参数在gfortran中具有不同的含义。
我的问题是,当使用gfortran这个语句是正确的,以获得与Lahey相同的功能:
**INQUIRE(inpunit,RECL=iflen) **
这两个陈述是否相似?谢谢
不,这两者完全不同。
flen=
是Leahy编译器特有的非标准扩展,它返回文件的长度。
recl=
是文件中的最大记录长度(如果文件已连接 - 打开,否则为0)https://software.intel.com/en-us/fortran-compiler-developer-guide-and-reference-inquire-recl-specifier
要符合标准,你应该使用size=
。请注意,结果将在文件存储单元中。 Gfortran使用字节,但其他编译器可能使用4字节字。见What is a good way to get file size in bytes using Fortran (ifort)? Find input file size in fortran90