这应该很简单,但我无法在Fortran中读取浮点数.我的程序test.f看起来像这样:
PROGRAM TEST
open(UNIT=1,FILE='test.inp')
read(1,'(f3.0)')line
STOP
END
Run Code Online (Sandbox Code Playgroud)
输入文件test.inp只包含一个浮点数:1.2
现在编译我的testfile很好,但是当我运行它时我得到一个错误:
在test.f文件的第4行(unit = 1,file ='test.inp')
Fortran运行时错误:格式化传输中项目1的预期REAL,得到INTEGER
(F3.0)
^
我尝试了不同的代码修改,并搜索错误消息,但没有结果.任何帮助将不胜感激!
问候,弗兰克
您的变量line隐式定义为整数.这不适用于f编辑描述符.如果要读取整数,请使用i编辑描述符(i3例如).否则声明line为数学"f"描述符是真实的.
注意旁边:.0不是问题,因为如果Fortran获得带小数点的数字,则忽略描述符中的.0部分.它仅在输入没有小数的数字时使用,然后使用desciptor中小数点后面的数字将小数点添加到正确的位置.对于F8.5,123456789被读为123.45678.更多内容请访问http://software.intel.com/sites/products/documentation/hpc/compilerpro/en-us/fortran/lin/compiler_f/lref_for/source_files/pghredf.htm.