在Fortran中打开和读取文件

时间:2018-08-08 10:34:07

标签: fortran

open(NEWUNIT=fId, file=trim(filename), iostat=ierr, action='READ')                                                                           
    if (ierr /= 0) return
    read(fID,'(A)') dataArray
    close(fId)

此代码是将完整的数据读取到文件中并将其保存在数组中还是仅读取一行?

1 个答案:

答案 0 :(得分:1)

考虑

character(len=10) name(5)
read(*,'(A)') name

将整个数组包含在输入修饰中与按顺序指定数组元素的方式相同:

read(*,'(A)') name(1), name(2), name(3), name(4), name(5)

输入语句将尝试读取五个值,每个值均根据编辑描述符A。结果发生的事情取决于各种事情。

格式还原表示当传输一个值时,文件位于下一条记录(行)上。因此,在这里假设文件至少有两行,则读取第一行的前10个“字符”并将其放入name(1)中。然后,读取第二行的前10个“字符”,并将其放入name(2)中。只要行仍然存在,等等。

情况(假设不会出现错误):

  • 行数与数组的元素数一样:所有行都被读入数组(但仅与变量的字符长度一样长);
  • 行数多于元素数:仅读取等于记录数的行数;
  • 元素多于行:文件结束条件发生,并且数组name变得不确定。