Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Fortran 如何打开和读取文件_Fortran_Fortran90_Fortran77_Fortran95 - Fatal编程技术网

Fortran 如何打开和读取文件

Fortran 如何打开和读取文件,fortran,fortran90,fortran77,fortran95,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。您不从文件中读取,而是从单元中读取。所以,如果您想像在您的示例中那样从单元20读取数据,您需要首先使用

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

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

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

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

您不从文件中读取
,而是从
单元中读取
。所以,如果您想像在您的示例中那样从单元
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)
    ! ...
如果不先打开文件,至少要尝试从名为
fort.
的文件中读取
gfortran
ifort
,在您的情况下是
fort.20
。不过,我在标准中找不到这种行为的参考


读取后不要忘记关闭文件,并尽量避免使用固定的单元号。如果编译器支持,请在打开文件时使用
newunit=
说明符

您不从文件中读取
,而是从
单元中读取
。所以,如果您想像在您的示例中那样从单元
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)
    ! ...
如果不先打开文件,至少要尝试从名为
fort.
的文件中读取
gfortran
ifort
,在您的情况下是
fort.20
。不过,我在标准中找不到这种行为的参考


读取后不要忘记关闭文件,并尽量避免使用固定的单元号。如果编译器支持,请在打开文件时使用
newunit=
说明符

打开(unit=20,file=“what you want”)(放在循环2之前)如何打开第20单元?只要你能正确地打开文件,你叫它什么并不重要。打开(unit=20,file=“what you want”)(放在循环之前2)你是如何打开第20单元的?只要正确打开文件,文件的名称并不重要。