如何打开和阅读文件

时间:2015-05-12 14:26:19

标签: fortran fortran90 fortran77 fortran95

我有这个Fortran代码,它从外部文件中读取两列数据:

  PRINT*, ' Q1                Q2  '
  DO 2 J = 1, NPTS
  READ(20,*) Q1(J),Q2(J)

  WRITE(*,98) Q1(J),Q2(J)

所以使用了文件20,但它似乎不喜欢我在文件中使用的任何名称,所以问题是,我应该将文件命名为什么?顺便说一下,这是.txt

1 个答案:

答案 0 :(得分:3)

您不是read来自文件,而是来自units。因此,如果您要在示例中读取单元20,则需要先使用该单元打开文件。这通常使用open语句完成,如评论中所述。对于名为yourfile.txt的文件,您的程序将会读取

  OPEN( unit=20, file='yourfile.txt',  status='old', &
        action='read', iostat=stat )
  if(stat /= 0) stop 'Could not open file'

  PRINT*, ' Q1                Q2  '

  DO 2 J = 1, NPTS
    READ(20,*) Q1(J),Q2(J)

    WRITE(*,98) Q1(J),Q2(J)
    ! ...

如果您没有先打开文件,至少gfortranifort会尝试从名为fort.<unit>的文件中读取fort.20。但是,我无法在标准中找到该行为的参考。

请勿忘记在阅读后关闭文件,并尽量避免使用固定的单位号码。如果您的编译器支持它,请在打开文件时使用newunit=说明符。